Mill Docker Jib Plugin #3900
Replies: 1 comment 2 replies
-
Welcome to the Mill community and ecosystem! Please tag your Github project with I really appreciate your feedback. Yet, to keep focus and improve over time it's better to open separate issues, so we don't loose track and can discuss each issue separately. Regarding the mill-integrationtest project. I haven't found the time to test, whether it is still workng with Mill 0.12. It should, but if not, I intend to keep it working for a while (PRs welcome). Aas long as there are plugins build against older Mill versions, there is no replacement in Mill Testkit. Generally, I think Mill Testkit is great alternative. I added some verbose output in the past, but it somehow vanished in later changes. I didn't find the time to look into that. But having a verbose mode, maybe enabled via a Java system property, would be nice. |
Beta Was this translation helpful? Give feedback.
-
Hi Mill Community,
I'm a big fan of mill and been using it for my private toy projects since a while now. While I don't feel its yet managable by non-scala experienced users nor stable enough (which is the reason I never introduced it in my work setting) I definitely hope that it will be soon.
Having to deal with Gradle, Maven and even Ant (don't ask 🙈) always makes it a delight working with Mill again.
As a first step to try to contribute to Mills future I tried myself on writing a mill plugin to learn more mill internals. Hopefully as a first step to contribute more later...
The plugin
The plugin can be found here:
Mill Docker Jib (artifact not published yet)
I'm still working on it - particularly getting some more testing in and the items listed under future work.
Happy to get any feedback.
If it's ok I would make a pull request to add it to the Third Party Plugins ?
Might also be worth mentioning the alternatives (native image, this one etc) on the contrib page?
Feedback / Questions for Mill
Itest vs Testkit
I assume the mill-integrationtest Plugin is obsolete with 0.12.x and the introduction of testkit?
Maybe a remark on the repo would be good @lefou - i started with your great plugin and didn't immediately figure out about the new built in testkit
Docu broken link
https://mill-build.org/mill/0.11.12/index.html (From the dropdown)
T macro stuff
I ran into various smaller issues - one I discussed with @lihaoyi on discord. The beauty of Mill for me is how easy it is to reproduce whats going on with the File based build output and the dependency graph.
The Task macros break that feeling as there suddenly is "magic".
Of course one can figure it out eventually as a scala veteran - but I'm afraid for non-Scala or beginner Scala users certain macro errors will definitely be very frustrating.
The simplest "gotcha" is just type inference e.g.
def foo: T[Seq[String]] = Seq.empty
The bracket vs no brackets on e.g. Commands (its documented in the docs)
E.g. it took me a moment to realize when you need the extra brackets in e.g.:
def println1() = T.command{ println("Hello World") } def println2() = T.command{ println("Hello World 2") } def both() = T.command{ val x = println1()(); val y = println2()(); x }
In my plugin I had the case where I wanted to pass a function around - that caused all sorts of issues. A minimal version of the issue can be seen here. In the end I managed - but had to do a strange tail calling like here
Again - all solvable - but I feel thats currently the biggest "magic" part of mill.
As such I'm curious to see how this changes with #3369
Scalafmt
I switched to .mill file extension - might be worth mentioning that one needs to add it to the file list at the moment. (or upgrade to latest RC of scalafmt)
Cross
When running a test on e.g [0.12.1] it will still compile [0.12.0] assuming both a part of the cross. (compile both - test only the one specified)
Testkit
Example Tester
Would be nice if the output was somehow visible in he "non-error" case. E.g in a log file.
Of course this is only for plugin writers who will figure out other ways - but was searching a bit at first to see if i can get the output somewhere.
The windows hardcoded paths are a bit iffy - then again I guess the chances of someone developing a plugin in pure windows are close to zero :P
Having an out folder in the Example project breaks the test (e.g. actually running the example by hand)
Remarks
Beta Was this translation helpful? Give feedback.
All reactions