Skip to content

Configure bumpver for Concourse release pipeline#2996

Open
blarghmatey wants to merge 2 commits intomasterfrom
configure-bumpver
Open

Configure bumpver for Concourse release pipeline#2996
blarghmatey wants to merge 2 commits intomasterfrom
configure-bumpver

Conversation

@blarghmatey
Copy link
Copy Markdown
Member

What are the relevant tickets?

N/A

Description (What does it do?)

Adds [tool.bumpver] configuration to pyproject.toml so the Concourse
release pipeline can update the application version automatically on each
release.

The new version format is YYYY.MM.DD.N (e.g., 2026.04.16.1), which
replaces the previous semver-style version strings. This is required by the
Concourse release resource workflow being rolled out in
mitodl/ol-infrastructure#4506.

The VERSION constant in Django settings is updated to the initial release
format version as part of this change.

How can this be tested?

  1. With bumpver installed (pip install bumpver), run bumpver update --dry from the repo root and confirm it shows the expected diff with no errors.
  2. Check that VERSION in Django settings matches current_version in pyproject.toml.

Additional Context

Part of the Concourse release pipeline modernization — migrating from the Doof
Slack bot to a Concourse-native release workflow using GitHub Issues as
production gates.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the versioning scheme in main/settings.py to a date-based format and introduces bumpver configuration in pyproject.toml for automated version management. A review comment suggests including pyproject.toml in the bumpver file patterns to ensure the project's metadata version stays in sync with the application version.

Comment thread pyproject.toml Outdated
Comment thread main/settings.py Outdated
Comment thread main/settings.py Outdated
Comment thread pyproject.toml Outdated
Comment thread main/settings.py Outdated
Comment thread pyproject.toml
@zawan-ila
Copy link
Copy Markdown
Contributor

@blarghmatey This still needs to remove the problematic test. Secondly, why can't we do a uv lock instead of manually modding the lock file. It just feels icky to be modding a file that is supposed to be autogenerated. In case the lock file is valid, I dont think a uv lock would be problematic in any way? Thirdly, please update the testing instructions in case they change with the new package.

@blarghmatey
Copy link
Copy Markdown
Member Author

The reason for not running a uv lock is that it can inadvertantly change the locked values of other dependencies. The version of the project in the lockfile is immaterial since it never actually gets built and "installed" at all, so modifying the version in the lockfile directly is actually the cleanest option with the lowest overhead and lowest potential for unintended consequences.

- Add bump-my-version configuration to pyproject.toml with CalVer format
- Track version in pyproject.toml [project] section
- Track version in uv.lock
- Replace test_semantic_version with test_bump_my_version_format

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@zawan-ila zawan-ila left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@blarghmatey There are a couple unrelated changes here that we should undo:-

  1. We should not remove the external key from the tool.ruff.lint table in pyproject.toml. That is required to prevent ruff from removing the ORM001 and ORM002 noqas. By default, ruff complains about codes it does not understand. Please also restore the noqas in websites/serializers.py
  2. In pyproject.toml, we downgrade a number of completely unrelated dependencies. Please restore the current versions from master.

Feel free to merge after addressing the above comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants