-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove Ammonite as a dependency, handle script running and bootstrapping ourselves #2377
Merged
Merged
Changes from 66 commits
Commits
Show all changes
208 commits
Select commit
Hold shift + click to select a range
ebf0cc8
./mill -i -w dev.run example/example-1 foo.run passes, printing Hello…
lihaoyi eb243fd
remove the ammonite dependency, keep ammonite-util for now
lihaoyi 658343a
break up MillMain
lihaoyi c86bd71
try to properly propagate watched paths
lihaoyi 592073a
basic file watching works again
lihaoyi 6005df4
minor cleanup
lihaoyi 884fdae
remove final ammonite dependencies
lihaoyi 69e2ebd
first file and ivy import work
lihaoyi 58dc796
.
lihaoyi 7e9f902
generate import trees
lihaoyi 2a1b48f
get most tests compiling, except for entrypoint.test
lihaoyi 47090d7
everything compiles
lihaoyi 5551be7
fix ScriptTestSuite base path
lihaoyi a20bd9b
add moduledefs plugin to MillBootstrapModule to fix mill.integration…
lihaoyi 40e502b
copy enclosing mill launcher to have proper file extension to make Zi…
lihaoyi 5a9c3d9
vendor Ammonite's LineNumberPlugin, with some basic tests
lihaoyi 672cb4b
consolidate integration tests under integration/ folder
lihaoyi 5c16771
normalize MILL_BSP_WORKER mill module classpath handling in tests
lihaoyi 1e95378
fix integration JavaCompileJarTests
lihaoyi c4011eb
Merge branch 'main' into remove-ammonite
lihaoyi eba011b
mill.integration.local.ForeignBuildsTest.checkProjectPaths and half o…
lihaoyi c3c346a
rest of mill.integration.local.ForeignBuildsTest now pass
lihaoyi d9bcb45
mill.integration.local.GenIdeaTests passes
lihaoyi f63ed25
remove old MILL_BUILD_LIBRARIES property
lihaoyi 6f3c388
fix mill.eval.JavaCompileJarTests.javac
lihaoyi b020c83
commit moved iml files
lihaoyi 8a66e46
first few ScriptsInvalidationTests pass
lihaoyi e2fc232
ScriptsInvalidationForeignTests and ScriptsInvalidationTests now pass
lihaoyi c31a85f
GenIdeaExtendedTests passes
lihaoyi 7d204cb
fix
lihaoyi d6edcc0
avoid uniqueness error
lihaoyi 2f96862
fix BspInstallDebugTest
lihaoyi d6b9835
update workflows
lihaoyi 1612eac
Fix handling of scripts with shebang lines or leading comments
lihaoyi 63cea8d
add entrypoint to testArgs to dev.assembly
lihaoyi bf0d376
try to fix URL -> Path conversion on Windows
lihaoyi ece13bc
fix java 8
lihaoyi 69cb89d
add more debugging logs
lihaoyi 66eb2a1
fix-quotes
lihaoyi 61cade2
more debugging
lihaoyi b45fdca
more debugging
lihaoyi eeb088e
fixcompile
lihaoyi 8ac8819
fixcompile
lihaoyi b9b02d5
moredebugging
lihaoyi 805c7e0
more debugging
lihaoyi a1a94d1
debug
lihaoyi 5ef72bf
debug
lihaoyi 06b18a4
.
lihaoyi 6541de0
.
lihaoyi d4fc01a
.
lihaoyi 333aec8
cleanup
lihaoyi 2201193
add back utest debugging
lihaoyi f9b0c59
more debugging
lihaoyi 3887098
revert example changes
lihaoyi f64ddd0
.
lihaoyi 29430fa
try different way of counting MILL_USER_CODE_START_MARKER that is rob…
lihaoyi 770bcef
different way of copying mill-launcher.jar to try and avoid windows c…
lihaoyi 3e8e471
use different mill-launcher jars for every mill version
lihaoyi 0e3e5eb
add guard around copy-mill-launcher logic to try and avoid windows pe…
lihaoyi f5905a1
try to fix compile error positioning problems
lihaoyi 6936c72
debug ParseErrorTests
lihaoyi 83dc681
.
lihaoyi 859e4fc
.
lihaoyi b08bb20
fixcompile
lihaoyi 4fe5994
simplify ParseErrorTests
lihaoyi 7e8eeb4
.
lihaoyi 6968a66
tweaks
lihaoyi 84ed12c
tweaks
lihaoyi 7572c31
cleanup
lihaoyi a57fb9c
cleanup
lihaoyi 705b4a3
try to re-organize MillBootstrap.scala
lihaoyi 71c4285
bootstrap -> boot, consolidate watched logic
lihaoyi e1531b5
cleanup
lihaoyi 9dcbdb2
kill AmmoniteUtils
lihaoyi bcc01a8
tweak file discovery and watching logic
lihaoyi a9ea03c
.
lihaoyi 06c9f2d
fixbuild
lihaoyi 62b38dc
add MILL_VERSION support
lihaoyi 2833f0f
.
lihaoyi a113a1f
fix tests
lihaoyi 3029b43
fix MillBuildModule.millSourcePath
lihaoyi 4ac1e98
.
lihaoyi 4b251af
properly manage evaluator state in the watchLoop
lihaoyi b2b64ca
simplify import graph handling
lihaoyi a5ebff1
remove unused EvaluatoreState#rootModule field, which can anyway be r…
lihaoyi b1f566d
remove systemProperties from EvaluatorState
lihaoyi c0d0f41
metabuild refactor compiles, doesn't pass any tests yet
lihaoyi 404dbb7
basic meta-builds and meta-meta-builds now work
lihaoyi 96c3d03
add first MetaMetaBuildTests
lihaoyi 5405c55
metabuild refactor compiles, doesn't pass any tests yet
lihaoyi 4b674d2
wip trying to adjust file paths
lihaoyi 463de44
add MetaMetaBuildTests for compile and runtime errors
lihaoyi 394ec47
remove [mill-build] prefix from errors
lihaoyi f776f13
custom top-level modules
lihaoyi ee99d4c
some invalidation tests pass
lihaoyi 9b85004
integration.local tests pass
lihaoyi 8ed5647
merge
lihaoyi eb6110e
remove ScriptTestSuite
lihaoyi 42390f3
rename forked-server -> server
lihaoyi 2c2226b
rename forked-server -> server
lihaoyi 30b4a0d
simplify EvalResult
lihaoyi 5270206
.
lihaoyi 5782b00
fix github actions
lihaoyi 94bd39f
rename MultiEvaluatorState -> RunnerState
lihaoyi 088284d
fix ordering of previousEvalStates
lihaoyi ed6e243
fix integration tests
lihaoyi 449668e
Fix mill.integration.server.MetaMetaBuildTests
lihaoyi 4061e3f
simplify
lihaoyi ef3c6a5
simplify
lihaoyi 4cc82f3
persist mill process in integration.server.test until end of each tes…
lihaoyi f657f7f
fix tests
lihaoyi 1132540
add watched paths testing to the MultiLevelModuleTests
lihaoyi c6240d8
simplify MultiLevelBuildTests
lihaoyi e683d18
comment
lihaoyi dac3fff
cleanup
lihaoyi cf45f30
add TopLevelModuleTests
lihaoyi 3a23867
remove dead TerminalGroup
lihaoyi f79b497
wip trying to fix and test bootstrap caching
lihaoyi ca518b9
basically works
lihaoyi 11141e9
classloader invalidation mostly works again...
lihaoyi 2a99bb1
re-introduce grand-parent-build classpath hash
lihaoyi 914170c
comment
lihaoyi f88bad7
wip
lihaoyi a1caa6b
.
lihaoyi 6ab2317
quick PathRefs for MillBuildModul#unmanagedClasspath
lihaoyi e093627
merge
lihaoyi 3fb75aa
cleanup-build-sc
lihaoyi 1e6306a
move script hashing out of evaluator fast path
lihaoyi 2556cec
.
lihaoyi 0bf0c17
.
lihaoyi 49c0e26
add error message for missing build file and MissingBuildFileTests
lihaoyi 98cd69f
try to fix MultiLevelBuildTests on windows
lihaoyi 9182df5
merge
lihaoyi da1c914
wip
lihaoyi 4bf3d73
fix genidea tests
lihaoyi 04686f6
make debug flag work in forked integration tests
lihaoyi feeb191
all tests pass
lihaoyi 3d41495
tests-pass
lihaoyi 226694a
.
lihaoyi 7155332
comment
lihaoyi ab912c0
cleanup
lihaoyi 70e3bda
fix
lihaoyi 51c6247
fix
lihaoyi 4bde7a3
fix
lihaoyi 9cb76f2
tweak paths
lihaoyi 86d97d8
update patch file
lihaoyi 4783286
update ci scripts
lihaoyi 26b954b
update ci scripts
lihaoyi c05b727
fixes
lihaoyi 9683392
add invalid-meta-module, multiple-top-level-modules test cases
lihaoyi ed7dfdf
split up integration tests into smaller jobs
lihaoyi 64fee00
add tests to 5-scala-publish repo
lihaoyi b309547
wip re-organizing examples folder
lihaoyi c4be342
example-tests-pass
lihaoyi db2fcc4
.
lihaoyi 386ad88
BuildModule
lihaoyi 0a4a361
update CI
lihaoyi a62c6b7
fixes
lihaoyi e4426f5
example explanations
lihaoyi 2fbfc53
split IntegrationTestModule and IntegrationTestCrossModule
lihaoyi b122666
.
lihaoyi 7b3d4e3
fix-patch
lihaoyi b6cde25
.
lihaoyi 41a6c95
more comments
lihaoyi 85c96fe
get example tests passing
lihaoyi 84300f7
add assembly to the examples
lihaoyi 6c0048d
break up example into subfolders
lihaoyi 95737c5
add version-specific test sources
lihaoyi 809c7c0
.
lihaoyi c8f4e80
update patch file
lihaoyi 0074d25
add common-overrides and custom-tasks examples
lihaoyi 91b3638
more web examples
lihaoyi 1d190fc
5-webapp-scalajs-shared
lihaoyi 7839169
fix fork
lihaoyi 1a43868
.
lihaoyi b09ece3
fixes
lihaoyi fc31c48
fixes
lihaoyi 2e05d5b
finally cleanup
lihaoyi 122ffc3
try to get CI green
lihaoyi 58e4dd5
reduce build matrix
lihaoyi b57ae36
reduce build matrix more
lihaoyi 038e3f0
.
lihaoyi 319d163
more stripping build matrix
lihaoyi 077b8b9
tidying
lihaoyi 7e1437a
add 3-import-file-ivy example
lihaoyi 01f5ac9
fixes
lihaoyi 34693da
make use of generatedSources in 4-mill-build-folder
lihaoyi ae05f1e
fix
lihaoyi 7124998
example readme
lihaoyi ea7314e
tweak-comment
lihaoyi 24e401b
.
lihaoyi e91b41e
better error
lihaoyi 3210acc
fix
lihaoyi e6308fc
.
lihaoyi c49dbaa
standardize naming on RootModule
lihaoyi 4ad7200
.
lihaoyi d9f3ebd
fix
lihaoyi 0ad2efb
try-fix
lihaoyi 1bc24f4
remove windows assembly from examples
lihaoyi 41921ef
try to fudge windows paths
lihaoyi 17f4907
.
lihaoyi 101718f
debug
lihaoyi f24b4ac
debug
lihaoyi d070d7e
.
lihaoyi 63affbf
.
lihaoyi 97f896a
.
lihaoyi a3976ee
.
lihaoyi 76abe80
.
lihaoyi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<plugin> | ||
<name>mill-linenumber-plugin</name> | ||
<classname>mill.linenumbers.LineNumberPlugin</classname> | ||
</plugin> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can see how it improves the testability, but I'd rather get rid of the
millProjectModule
hack altogether. It weakens the way Mill consumes project modules / plugins, and may be even a security vulnerability. Just using a local repo in the process of testings is definitely more time consuming, but it disables this attack vector and also runs tests under more realistic conditions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I'm willing to give up purely local testing. The test pyramid is a pyramid, with both faster/lower-fidelity tests at the bottom and slower/higher-fidelity tests at the top. In this case we basically get both cases for free.
If there's a security concern, we should spell it out and find some way to mitigate it, but I'm sure that we can find a solution without giving up the ability to do local testing entirely
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's understandable. We could hook into the resolve instead, and just feed all known jars directly. The potential injection is the smaller concern for me, it's rather the fact that we load the jars in a complete different way; e.g. when resolving via coursier, there might come different transitive deps as those we assemble in our build.
But this is a orthogonal issue, so let's not continue this thinking here. I'll open a placeholder dicussion, where we can outline alternatives which are easier to maintain as the current setup in
build.sc
, which I don't like so much.