-
-
Notifications
You must be signed in to change notification settings - Fork 584
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
Switch to hatch-vcs for versioning #4802
base: develop
Are you sure you want to change the base?
Switch to hatch-vcs for versioning #4802
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #4802 +/- ##
========================================
Coverage 98.69% 98.69%
========================================
Files 303 303
Lines 23258 23258
========================================
Hits 22955 22955
Misses 303 303 ☔ View full report in Codecov by Sentry. |
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.
Look at the "update_version.py" script in PyBaMM. A bunch of files are updated. For this to work you also need to get the other updated files working for releases.
Files like the change log will still need to be update for each release
Thanks for the heads-up, @kratman! I'll look into the |
pyproject.toml
Outdated
[tool.hatch.version] | ||
source = "vcs" |
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.
Can we move this down to the already existing tool.hatch
section?
[tool.hatch.version] | |
source = "vcs" | |
[tool.hatch] | |
version.source = "vcs" | |
build.hooks.vcs.version-file = "src/pybamm/_version.py" |
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.
Sure, I'll move it to the tool.hatch
section.
- Move hatch-vcs config to `tool.hatch` in `pyproject.toml` - Switch to `_version.py` for versioning with hatch-vcs - Remove manual `version.py` updates, using git tags instead
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.
@vidipsingh let us know when this is ready to review (by marking it as ready to review/un-draft).
version_file_path = os.path.join(pybamm.root_dir(), "src", "pybamm", "_version.py") | ||
with open(version_file_path, "w") as f: | ||
f.write(f'__version__ = "{release_version}"\n') | ||
|
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 writing to this file is the right idea, as the file is supposed to be ignored in version control – hatch-vcs infers the version from the Git tag.
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.
Was about to write that but I am guessing it is not ready for a review yet (the PR will require revamping the release workflow too)
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.
Yup, just a bit of pre-emptive feedback so that @vidipsingh's work can proceed in the right direction :)
Sure, will do that. |
Description
This PR implements
hatch-vcs
for versioning, enabling automatic versioning based on Git tags.Related to: #4742
Type of change
Key checklist:
$ pre-commit run
(or$ nox -s pre-commit
) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)$ python -m pytest
(or$ nox -s tests
)$ python -m pytest --doctest-plus src
(or$ nox -s doctests
)You can run integration tests, unit tests, and doctests together at once, using
$ nox -s quick
.Further checks: