summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main/scala
Commit message (Collapse)AuthorAgeFilesLines
* `Core` -> `core`, for consistency with SBT naming schemesLi Haoyi2017-12-3015-1521/+0
| | | | | | | | `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)
* Make use of `T.command`s `T.ctx().dest` in `ScalaPlugin#test.test` and ↵Li Haoyi2017-12-302-23/+79
| | | | `forkTest`, and allow users to dump the structured JSON test results via `--show`
* Re-organize `out/` directory to keep all files related to a particular ↵Li Haoyi2017-12-291-2/+2
| | | | `Target` within a single folder
* Cross-publish for ScalaJSRoman Timushev2017-12-291-14/+17
|
* ScalaJS pluginRoman Timushev2017-12-291-2/+2
|
* Kill old `LabelledTarget` classesLi Haoyi2017-12-291-2/+2
|
* Cache scala compiler jars in a separate classloader from the compiler plugin ↵Li Haoyi2017-12-262-7/+21
| | | | jars, since the compiler jars change much less frequently and the code can thus be kept hot rather than being discarded each time
* - Shift `MappingCtx` into a magic `LoaderCtx` `Loader` to avoid circular ↵Li Haoyi2017-12-261-5/+9
| | | | | | | | dependencies between `Ctx` -> `Discovered` -> `Task` - `mill idea` works now using `GenIdea` as a standalone `T.command` making use of the new contextually-available `Mapping` - Limit implicit `ReplApplyHandler` to `--repl` only, to avoid it kicking in if `build.sc` scripts are screwed up and adding further confusion
* WIP: provide Mapping as a Ctx argument that can be accessed from within ↵Li Haoyi2017-12-251-5/+4
| | | | Tasks, for usage within `GenIdea` and similar
* prepare mill-bridges to be published to maven central (#78)Nikolay Tatarinov2017-12-242-5/+8
|
* Fix Idea project for cross-modules (#80)Roman Timushev2017-12-241-3/+11
|
* Merge branch 'master' of github.com:lihaoyi/millLi Haoyi2017-12-2010-17/+673
|\
| * Add Sonatypype publishing;rockjam2017-12-2011-255/+544
| | | | | | | | now you can publish your module with `mill run MyModule.publish --credentials $SONATYPE_CREDENTIALS --gpgPassphrase $GPG_PASSPHRASE`
| * publishLocal - looks like it worksdos652017-12-205-2/+352
| |
| * Report errors when dependency resolution fails (#71)Grant2017-12-182-17/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Report errors when dependency resolution fails Function `Lib.reolveDependencies` now checks the result of the coursier dependency resolution for errors. The return value of the fuction is now a `Result[Seq[PathRef]]` and errors are signaled by returning an instance of Failure when errors occur while resolving dependencies. `ScalaModule` now has a new task called `resolve` which allows for triggering dependency resolution directly from the cmd line like: `mill run resolve`. `ResolveDepsTests` was added to verify failed resolution is properly detected and reported. * Remove type signatures in ScalaModule.scala * Updates from PR comments
* | Remove implicit `Discovered.apply[T]` method. This forces people to pass ↵Li Haoyi2017-12-201-12/+8
|/ | | | around their generated `Discovered.make` structures by hand, making it harder to accidentally generate the same `Discovered` twice and slow down runtime/compilation
* - Swap `Task.traverse` implementation to match behavior of other `traverse` ↵Li Haoyi2017-12-181-16/+13
| | | | | | | | implementations, added a `Task.sequence` that does what `traverse` used to do - Added a `test.sh` script to easily kick off self-hosted unit test runs - Tweak `ScalaModule` to fall back to the old behavior of including the transitive classpath during compilation
* - Remove `GenIdea` dependency on compiled output (fixes ↵Li Haoyi2017-12-171-3/+4
| | | | | | https://github.com/lihaoyi/mill/issues/59) - Add missing flag to fix downloading of source jars for IntelliJ
* Bump Ammonite version in `build.sc` to fix upickle bugLi Haoyi2017-12-171-5/+5
| | | | Move `assembly`/`releaseAssembly` targets out of the stub `ScalaModule`, to take advantage of the new top-level `Target` support
* fix build.sc to build itself with newer version of ammonite (#70)Nikolay Tatarinov2017-12-171-2/+2
|
* upgrade to new version of uPickle/AmmoniteLi Haoyi2017-12-161-3/+8
|
* Ensure `ScalaModule#resources` files are properly propagated through ↵Li Haoyi2017-12-151-1/+1
| | | | classpath of downstream modules, so they appear in downstream `assembly`s. Necessary to make `AutoOverridePlugin` work in the mill-build mill executable
* Move `Evaluator`s to be long lived, and make tests passLi Haoyi2017-12-142-6/+14
|
* First pass at implementing long-lived `Worker` objects. These currently are ↵Li Haoyi2017-12-131-11/+17
| | | | | | managed by the `Evaluator`, which is now a stateful object that shouldn't be thrown away every time. We still need to update the code/test-suite to make the `Evaluator` hang around in between `evaluate` calls
* Skip missing source directoriesRoman Timushev2017-12-131-1/+1
|
* Resolve compiler bridge jar (#45)Roman Timushev2017-12-112-11/+23
| | | | | | * Resolve compiler bridge jar * Create a release artifact
* Implement a `SbtScalaModule` helper trait, to conveniently set up the ↵Li Haoyi2017-12-102-189/+206
| | | | | | default source/test locations for builds using SBT project layout Also split out plain-old-Scala-logic in `Lib` from inheritable traits in `ScalaModule`, since `ScalaModule` was getting a bit unwieldy
* fix console command; add interactiveSubprocess in Jvm (#52)Nikolay Tatarinov2017-12-091-2/+2
|
* Add support for compiler plugins and enable acyclic plugin in buildTin Pavlinic2017-12-091-2/+10
|
* robustify gen-idea against pre-existing filesLi Haoyi2017-12-081-1/+1
|
* pass compile analysis of projectDeps to zinc, fixes #29rockjam2017-12-071-30/+50
|
* Explicitly pass built compiler-bridge jar locations from the build system ↵Li Haoyi2017-12-062-10/+16
| | | | | | | | 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
* Hackily speed up repeated Scala compiles by keeping a global cache of hot ↵Li Haoyi2017-12-051-22/+11
| | | | ScalaInstance/Classloader instances around between compiles
* merge cross-bridge into masterLi Haoyi2017-12-053-53/+65
|\
| * Avoid `inheritIO` in `Jvm.subprocess`, and instead feed it into the proper ↵Li Haoyi2017-12-041-3/+3
| | | | | | | | `log.outputStream`
| * Standardize on a `mill.util.Logger` classLi Haoyi2017-12-043-12/+19
| |
| * Make more stuff use the implicit `T.ctx()`Li Haoyi2017-12-041-3/+1
| |
| * - Make `T.ctx()` available implicitlyLi Haoyi2017-12-041-15/+13
| | | | | | | | | | - Convert `ScalaModule.{compile,assembly}` to use the new implicit `T.ctx()` - Add a `log: PrintStream` to the `T.ctx()`, in preparation for per-task logging
| * Flesh out `bridges` pre-compilation in Mill build, getting the ↵Li Haoyi2017-12-041-4/+6
| | | | | | | | | | | | | | | | | | | | 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-2/+12
| | | | | | | | | | | | 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
* | swap run and runMain commandsrockjam2017-11-301-2/+2
| |
* | implment runMain commandrockjam2017-11-301-0/+5
| |
* | mainClass supportrockjam2017-11-301-1/+2
|/
* - Re-enable zinc compiler cache, since the OOMing it used to cause seems to ↵Li Haoyi2017-11-281-40/+66
| | | | | | | | have gone away (???) - DRY up our dependency resolution code in `ScalaModule` with a `resolveDeps` helper - Separate `scalaCompilerClasspath` from `compileClasspath`, and only pass `scalaCompilerClasspath` to the Zinc classloader
* Acyclic cross-version tests are runningLi Haoyi2017-11-271-7/+22
|
* Get acyclic's tests running after compilation failures, fixing a ↵Li Haoyi2017-11-261-1/+2
| | | | metadata.mill.json invalidation bug
* Acyclic test suite works now that we can fork and set a proper working ↵Li Haoyi2017-11-262-8/+45
| | | | directory, but only when run alone (???)
* Isolate TestRunner classloader to try and get AcyclicTests working...Li Haoyi2017-11-261-1/+3
|
* upgrade zinc 1.0.3 -> 1.0.5 (#26)Nikolay Tatarinov2017-11-261-2/+2
|
* Cleaner logging of Zinc activities. (#25)Iulian Dragos2017-11-261-12/+4
| | | | | | | | | | | | * Bust caches when the build itself has changed. Use the Ammonite classloader to check if the classpath has changed Fix #7 * Cleaner logging of Zinc activities. Removed printlns and bumped up the Zinc log level to Info. This show the nice `Compiling <n> Scala sources` messages, and the useless `Done compiling` line at the end.