chisel
chisel copied to clipboard
use versionfile for mill
Reference: https://mill-build.com/mill/contrib/versionfile.html
This provide a unified version management target for future releasing.
After switch to mill, I'd like to store all dependency versions to version
folder for reference, CI bump and review.
Contributor Checklist
- [ ] Did you add Scaladoc to every public function/method?
- [ ] Did you add at least one test demonstrating the PR?
- [ ] Did you delete any extraneous printlns/debugging code?
- [ ] Did you specify the type of improvement?
- [ ] Did you add appropriate documentation in
docs/src
? - [ ] Did you request a desired merge strategy?
- [ ] Did you add text to be included in the Release Notes for this change?
Type of Improvement
- Feature (or new API)
- API modification
- API deprecation
- Backend code generation
- Performance improvement
- Bugfix
- Documentation or website-related
- Dependency update
- Internal or build-related (includes code refactoring/cleanup)
Desired Merge Strategy
- Squash: The PR will be squashed and merged (choose this if you have no preference).
- Rebase: You will rebase the PR onto master and it will be merged with a merge commit.
Release Notes
Reviewer Checklist (only modified by reviewer)
- [ ] Did you add the appropriate labels? (Select the most appropriate one based on the "Type of Improvement")
- [ ] Did you mark the proper milestone (Bug fix:
3.6.x
,5.x
, or6.x
depending on impact, API modification or big change:7.0
)? - [ ] Did you review?
- [ ] Did you check whether all relevant Contributor checkboxes have been checked?
- [ ] Did you do one of the following when ready to merge:
- [ ] Squash: You/ the contributor
Enable auto-merge (squash)
, clean up the commit message, and label withPlease Merge
. - [ ] Merge: Ensure that contributor has cleaned up their commit history, then merge with
Create a merge commit
.
- [ ] Squash: You/ the contributor
With the current SBT flow, every push to main publishes a SNAPSHOT based on the current commit. That wouldn't work with a version file.
Similarly, the current flow for tagged releases uses the git tag as the version. We could use a version file but that would require making an extra commit for every release that isn't needed in the current flow.
With the current SBT flow, every push to main publishes a SNAPSHOT based on the current commit. That wouldn't work with a version file. Similarly, the current flow for tagged releases uses the git tag as the version. We could use a version file but that would require making an extra commit for every release that isn't needed in the current flow.
Yes, we should dig out a way to maintain version in mill, this is just an example, we can override functions in the VersionFileModule
trait, or even get rid of it. This is just for discussion.