summaryrefslogtreecommitdiff
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* ability to run multiple tasks via bash/zsh braces expansion (#104) fixes #31Nikolay Tatarinov2018-01-105-49/+415
|
* Tidy up `Cross` implementationLi Haoyi2018-01-081-37/+24
|
* Simplify `Evaluator.Mapping` and consolidate logic within the `Segments` ↵Li Haoyi2018-01-0817-102/+105
| | | | data-type
* Consolidate `Cross` and `CrossModule`, eliminate now-unused ↵Li Haoyi2018-01-087-200/+33
| | | | `map`/`flatMap`/`filter` APIs
* Swap over to a new, concise `CrossModule[T](..cases)` macro syntax that ↵Li Haoyi2018-01-075-66/+76
| | | | automatically propagates the `ctx` for you
* Generate the `Segments` list at definition time rather than discovery time, ↵Li Haoyi2018-01-0718-270/+217
| | | | | | | | by propagating implicits throughout the tree of nested `mill.Module`s This currently adds some annoying boilerplate to the definition of cross/abstract modules, which can probably be removed using Macros. The `Segments` mapping generated by discovery is still present and used in a few places, though it will be removed
* Break out `Module.scala` from `Task.scala`Li Haoyi2018-01-077-65/+69
|
* Get `--help` workingLi Haoyi2018-01-071-2/+16
|
* Remove `--repl` flag, running `mill` without a task selector now drops you ↵Li Haoyi2018-01-071-11/+3
| | | | into a REPL just like SBT
* First pass at implicitly propagating a `def basePath: Path` up the `Module` ↵Li Haoyi2018-01-0714-99/+190
| | | | | | | | hierarchy, which each module receives and extends. One constraint is that now must define your abstract modules as `trait`s rather than `class`es, or otherwise add an implicit `ctx: ModuleCtx` parameter to your class definition. So far this lets us remove some explicit `basePath` definitions in `build.sc`. Proper handling of `basePath` in `CrossModule`s is future work
* Forward bulk output to `stderr` when `--show` is called, reserving `stdout` ↵Li Haoyi2018-01-057-35/+92
| | | | for the shown JSON blob
* First pass at a ticker-based progress logger to reduce the spamminess of the ↵Li Haoyi2018-01-046-25/+99
| | | | console
* tweak cross pprinterLi Haoyi2018-01-031-1/+1
|
* First pass at providing new pretty-prints for build ↵Li Haoyi2018-01-0316-39/+144
| | | | `Module`s/`Target`s/`Cross`s in the Mill REPL, making use of `sourcecode.*` values captured and definition-site and contextual information made available in the build `Mirror`
* Swap over to new `CrossModule` class to simplify the cross module syntaxLi Haoyi2018-01-023-1/+6
|
* Make `--watch` properly handle the case where the evaluator is cached, where ↵Li Haoyi2018-01-023-44/+52
| | | | previously it would forget the `build.sc` files it was meant to watch
* fix-test-compilationLi Haoyi2018-01-011-2/+8
|
* Fix `idea` project generation, and make `Result.Exception` display the ↵Li Haoyi2018-01-015-9/+10
| | | | offending stack trace so they're easier to debug
* don't fail with match error on empty selector (#98)Nikolay Tatarinov2018-01-011-2/+4
|
* return non zero return code when task fails in batch mode (#97)Nikolay Tatarinov2018-01-021-1/+2
|
* = core use NonFatal (#95)kerr2018-01-011-2/+4
|
* Pipe in stdin and stderr. We still need to figure out a policy for how ↵Li Haoyi2018-01-014-8/+14
| | | | stderr/stdout map to the various `Logger` levels, but for now this shuts up the integration tests
* Silence IntegrationTest stdoutLi Haoyi2018-01-012-6/+13
|
* Split Acyclic/Jawn/BetterFiles tests into their own `integration/` test suite.Li Haoyi2018-01-013-12/+15
| | | | | | 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
* Make sure we properly catch exceptions when a `Task` returning an explicit ↵Li Haoyi2017-12-311-0/+2
| | | | `Result[T]` instead throws an exception
* fix #57 implement eval function to evaluate multiple tasks via replrockjam2017-12-312-0/+3
|
* Split out generic `T.input` tasks from the `T.source` helpers, allowing ↵Li Haoyi2017-12-314-20/+55
| | | | `T.source` to behave as before but `T.input` can be used for other things. Fixes https://github.com/lihaoyi/mill/issues/77
* - Convert `T.source` into a generic `Target` that flushes the cache every timeLi Haoyi2017-12-3111-76/+138
| | | | | | - Prepare `T.ctx().base: Path` that `Task`s (including `T.source`) can use to find a "default" path for source files. - Simplify `Cacher`
* Swap out awkward quasiquotes in `Task` macros in exchange for `reify`/`splice`Li Haoyi2017-12-302-20/+60
|
* `Core` -> `core`, for consistency with SBT naming schemesLi Haoyi2017-12-301-5/+5
| | | | | | | | `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-305-14/+43
| | | | `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-293-33/+28
| | | | `Target` within a single folder
* Assign different overrides of a Target different cache directories and ↵Li Haoyi2017-12-297-37/+88
| | | | paths, to fix https://github.com/lihaoyi/mill/issues/86
* Merge pull request #67 from lihaoyi/scalajsRoman Timushev2017-12-291-0/+29
|\ | | | | Scala.js support
| * Move TestEvaluator to coreRoman Timushev2017-12-291-0/+29
| |
* | More tidying up in TaskLi Haoyi2017-12-291-55/+61
|/
* Tidy up Task.scala macros...Li Haoyi2017-12-292-21/+65
|
* Kill old `LabelledTarget` classesLi Haoyi2017-12-2910-95/+65
|
* WIP Migrating `Target` name/pickler generation from the `Mirror` discovery ↵Li Haoyi2017-12-2910-80/+157
| | | | into the `Target` definitions themselves. Haven't deleted the old/unused `Mirror` data structures yet...
* First pass at generating CLI output when you run `Target`s, based on their ↵Li Haoyi2017-12-283-17/+59
| | | | return values, converted to JSON
* Properly propagate failures in task evaluation to the ammonite script runnerLi Haoyi2017-12-282-13/+15
|
* fix repl flagLi Haoyi2017-12-281-2/+5
|
* Generate zipmap definitions for higher arities (#81)Duncan Mak2017-12-273-109/+12
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* Slightly simplify `test.sh` matrix and cache more evaluators in ↵Li Haoyi2017-12-261-16/+0
| | | | `HelloWorldTests`, to try and speed up `test.sh` runs
* Simplify `MainRunner` and `RunScript` codeLi Haoyi2017-12-264-54/+49
|
* Greatly simplify `CustomCodeWrapper`Li Haoyi2017-12-263-36/+15
|
* - Shift `MappingCtx` into a magic `LoaderCtx` `Loader` to avoid circular ↵Li Haoyi2017-12-267-27/+28
| | | | | | | | 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-2510-33/+45
| | | | Tasks, for usage within `GenIdea` and similar
* Refactor `mill.Main` to avoid going through Ammonite's main-method-dispatch ↵Li Haoyi2017-12-257-184/+297
| | | | system
* Remove `Router.scala`, whose changes have been upstreamed into the Ammonite ↵Li Haoyi2017-12-246-450/+88
| | | | | | 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