summaryrefslogtreecommitdiff
path: root/build.sbt
Commit message (Collapse)AuthorAgeFilesLines
* Split Acyclic/Jawn/BetterFiles tests into their own `integration/` test suite.Li Haoyi2018-01-011-14/+59
| | | | | | Those tests now download a snapshot of the relevant git repo rather than vendoring the files, and use a bare `build.sc` instead of having the build object be included in the test classpath. Tests pass using `sbt integration/test`, but `mill integration.test` still doesn't work
* `Core` -> `core`, for consistency with SBT naming schemesLi Haoyi2017-12-301-10/+10
| | | | | | | | `ScalaPlugin` -> `scalalib`, to avoid confusion with Scala compiler plugins `ScalaModule` -> `module`, to be used via `scalalib.Module`, avoid unnecessary duplication in th name prefix `plugin` -> `moduledefs`, to more accurately describe what it does (since it includes `Cacher` as well)
* Assign different overrides of a Target different cache directories and ↵Li Haoyi2017-12-291-2/+3
| | | | paths, to fix https://github.com/lihaoyi/mill/issues/86
* Fix running ScalaJS plugin tests from SBTRoman Timushev2017-12-291-1/+1
|
* ScalaJS plugin buildRoman Timushev2017-12-291-3/+38
|
* Convert `build.sbt` to use ivy-resolved Ammonite to run `shared.sc`, instead ↵Li Haoyi2017-12-281-32/+33
| | | | of shelling out
* get --repl working with bin/test:runLi Haoyi2017-12-281-1/+5
|
* Move all the source generation logic into a `shared.sc` file to avoid ↵Li Haoyi2017-12-281-129/+18
| | | | | | | | duplication DRY it up internally Move the Bridge downloading logic into `shared.sc` as well, and swap the subprocesses for in-memory processing using scalaj-http and ZipInputStream
* Generate zipmap definitions for higher arities (#81)Duncan Mak2017-12-271-0/+112
| | | | | | | | | | | | | | | | | | | | | | | | * Remove method defns for zipMap/zip that will be generated. The trait Applyer will now extend from ApplyerGenerated which will contain the code-generated definitions. * Script to generate code for Applicative * Generate the zip methods in Target * Generate zip methods in ApplicativeTests * Make sure the full 22-arities are generated * Move code generator into build.sc. Remove generate.sc from directories where code will be generated. * Generate code as part of the SBT also * Properly wire up the test sources * Generate all the code in one place
* Simplify manual testing using SBTLi Haoyi2017-12-261-2/+3
|
* Remove `Router.scala`, whose changes have been upstreamed into the Ammonite ↵Li Haoyi2017-12-241-7/+8
| | | | | | master branch Remove the `out/run.sc` entrypoint script, using Ammonite's new `codeWrapper` API to synthesize the necessary wrapper/forwarder objects to substitute it
* bump ammonite version in build.sbtLi Haoyi2017-12-171-1/+1
|
* bump ammonite versionLi Haoyi2017-12-161-2/+1
|
* upgrade to new version of uPickle/AmmoniteLi Haoyi2017-12-161-2/+4
|
* remove unused MILL_COMPILER_PLUGIN flagLi Haoyi2017-12-151-2/+1
|
* First pass at using a compiler plugin to remove the need for the `override` ↵Li Haoyi2017-12-151-1/+27
| | | | | | | | keyword when overriding a field within a `mill.Module` This only applies to `mill.Module`s, not overrides elsewhere which still require the keyword. `mill.Module`s tend to have lots and lots of overriding, so the keyword is basically noise. Also includes the necessary build changes to enable the locally-built Scalac plugin when compiling the test suite. Note that no changes are necessary for the executable assembly, because the `scalac-plugin.xml` will be included in the assembly and get picked up by the Ammonite scalac plugin classloader automatically
* Allow `classPathSig` to be injected into `Evaluator`, and in ↵Li Haoyi2017-12-131-2/+2
| | | | | | | | `ReplApplyHandler` keep using the same one every time to avoid busting caches due to REPL commands being added to the classpath Reverts https://github.com/lihaoyi/mill/pull/60, which seems to break `mill.scalaplugin.AcyclicTests.scala2123` (reproducible in master) Tweak `build.sbt` to properly set the forked test working directory in `test-only` as well as `test`
* Move assemble to a separate moduleRoman Timushev2017-12-131-1/+6
|
* Explicitly pass built compiler-bridge jar locations from the build system ↵Li Haoyi2017-12-061-27/+27
| | | | | | | | into Mill as JVM properties. This makes the dependency between the compiler-bridge jar and the Mill executable explicit, allowing us to swap out the locations compiler-bridge jars (which end up in different places, depending on whether you're building with SBT or Mill) or eventually making them load from Maven Central in a "release" Mill executable Since Mill (and uTest) both do not support SBT-style test arguments, we need to use `forkTest` instead of `test` to run the Mill tests passing the compiler-jar locations as JVM props. This necessitated some fixes to make `forkTest` behave properly
* force test:compile during scalaplugin/test:assembly, to make sure bridge ↵Li Haoyi2017-12-061-0/+4
| | | | jars get build for use by the executable
* Flesh out `bridges` pre-compilation in Mill build, getting the ↵Li Haoyi2017-12-041-8/+1
| | | | | | | | | | cross-minor-version `AcyclicTests` running using the `mill` test runner Fixed `Discovered` to only pick up public `Target`s, which makes it skip things like the `super$compile` of an overriden `compile` target. Split up `sources` and `allSources` TBD how to properly switch the `compilerBridgeJar` between the different output paths of SBT's compile-dir and Mill's compile-dir, and eventually to a maven-central artifact too
* Cross building acyclic now works, using a locally compiled cross-versioned ↵Li Haoyi2017-12-041-1/+69
| | | | | | compiler-bridge.jar. For now just hardcode the Scala versions we want to support as part of the build; we can figure out how to do the runtime download&compile thing later
* Tweak readme, fix SBT executable assembly prefixLi Haoyi2017-11-271-1/+1
|
* upgrade zinc 1.0.3 -> 1.0.5 (#26)Nikolay Tatarinov2017-11-261-2/+2
|
* Strip out `play-json` dependency in favor of `upickle`, which we are forced ↵Li Haoyi2017-11-151-1/+0
| | | | to use anyway due to Ammonite. Saves us from classloading play-json and Jackson, shaving off a few hundred ms from the cold no-op runtime
* First pass at cleaning up `build.sc` file syntaxLi Haoyi2017-11-151-1/+7
|
* First sketch at SBT test integration worksLi Haoyi2017-11-111-1/+2
|
* rename forge -> millLi Haoyi2017-11-101-3/+3
|
* Forked `ammonite.main.Router` into `forge.discover.Router`, to let us ↵Li Haoyi2017-11-051-1/+9
| | | | | | generate routes purely based on a type `T`, as part of the target discovery process. We defer the need for a concrete value of type `T` later until we need to evaluate the route. Eventually this should go upstream into ammonite itself, but forking is easier for now
* Turn on `lihaoyi:acyclic` plugin, enforce it, and break up whatever import ↵Li Haoyi2017-11-051-1/+6
| | | | cycles exist
* Split up forge into `scalaplugin` an `core` subprojects, to allow us to use ↵Li Haoyi2017-11-031-23/+32
| | | | | | the `T#apply` macro in the implementation of `scalaplugin.Subproject` Also needed to implement inter-`Subproject` dependencies so the `MetacircularTests` can continue to support the new layout
* Sketched out `MetacircularTests` using `scalaplugin.Subproject`; still ↵Li Haoyi2017-10-311-1/+0
| | | | doesn't compile
* Got Zinc working on the test bench, compiling forge's own projectLi Haoyi2017-10-291-31/+2
|
* First builds work going through an Ammonite script, currently run using `sbt ↵Li Haoyi2017-10-291-0/+9
| | | | "~run src/test/examples/javac/build.sc`
* Bump versionsLi Haoyi2017-10-291-2/+2
|
* Serialization using play-json now mostly in placeLi Haoyi2017-10-261-1/+2
| | | | "pure" targets which depend only on their inputs are modeled but their evaluation semantics aren't fleshed out
* - Basic dirty-checking of targets works; targets can now request to be ↵Li Haoyi2017-10-221-0/+2
| | | | | | | | | | recomputed independent of their inputs - Split out `Target` and `TargetOps`, so `Target` can be a pristine description of what a subclass needs to implement - Convert targets from `case class`es into normal `class`s, since none of the case class functionality is useful - Disable parallel execution in tests, since we don't really need it right now and it jumbles up incremental test reporting
* update to utest 0.6.0, enable stacktrace highlightingLi Haoyi2017-10-221-2/+2
|
* rename hbt -> forgeLi Haoyi2017-10-221-3/+3
|
* Add `StaticContext` macro to let us distinguish top-level targets from ↵Li Haoyi2017-10-211-0/+2
| | | | dynamically generated targets
* - Convert example workflow to `javac` since `scalac` is slowLi Haoyi2017-10-191-1/+2
| | | | | - Implement `Target.Subprocess`, and use it inside `compileAll` - Move `Main` workflow into `HbtTests`, to be run using uTest
* Basic evaluator that creates classfiles and a jar now worksLi Haoyi2017-10-181-1/+4
|
* Include Tarjan's algorithm, for doing a topological sort which elegantly ↵Li Haoyi2017-10-171-0/+3
| | | | handles cycles
* Fleshed out basic implementationsLi Haoyi2017-10-161-0/+33
|
* first commitLi Haoyi2017-10-161-0/+5