-
Notifications
You must be signed in to change notification settings - Fork 631
Migrate SBT to mill #3357
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
base: main
Are you sure you want to change the base?
Migrate SBT to mill #3357
Conversation
a2d94d0
to
4dc1688
Compare
.github/workflows/test.yml
Outdated
needs: [ci, std, integration, doc, website, scala-cli-template] | ||
needs: [test, mima, doc, website, scala-cli-template] |
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.
Splitting out mima
from CI is a good idea, but do not combine ci
, std
, and integration
, they are split on purpose because then they can run in parallel on separate runners and CI is a lot faster.
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 see, I think integration
can keep, but std
seem only exist one test, so I prefer moving it to integration
.
.github/workflows/test.yml
Outdated
- name: Setup GPG (for Publish) | ||
uses: olafurpg/setup-gpg@v3 | ||
- name: Publish | ||
run: sbt ci-release | ||
run: ./mill -i io.kipp.mill.ci.release.ReleaseModule/publishAll |
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.
Does this do the right thing for publishing SNAPSHOTs vs. publishing actual releases?
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.
Also publishAll
is almost certainly not right, see the unipublish
in SBT, we are intentionally only publishing 2 projects, the plugin and unipublish. Unipublish combines the build artifacts of all subprojects into a single jar (not a fat jar, regular dependencies remain dependencies). There is no support for this built-in (I asked on Gitter) so it will require some manual logic in the mill build just like I had to write in the SBT build.
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 see, I can custom and rewrite that publish flow in mill.
But I'm out of office this week, will do it next week.
question to @jackkoenig, How do I handle the |
Discussed in the dev-meeting, we should keep the website content and migrate to other static website generator. |
9a1cf5f
to
9096425
Compare
Maintaining two build system is a burden. This PR migrates SBT to Mill for simpler build flow management. There are things to be done:
Contributor Checklist
docs/src
?Type of Improvement
Desired Merge Strategy
Release Notes
Reviewer Checklist (only modified by reviewer)
3.5.x
or3.6.x
depending on impact, API modification or big change:5.0.0
)?Enable auto-merge (squash)
, clean up the commit message, and label withPlease Merge
.Create a merge commit
.