Skip to content

Configure bumpver for Concourse release pipeline#492

Open
blarghmatey wants to merge 2 commits into
mainfrom
configure-bumpver
Open

Configure bumpver for Concourse release pipeline#492
blarghmatey wants to merge 2 commits into
mainfrom
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.

Comment thread main/settings.py Outdated
Comment thread main/settings.py Outdated
Comment thread pyproject.toml
Copy link
Copy Markdown
Member

@mbertrand mbertrand left a comment

Choose a reason for hiding this comment

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

Sentry comments need to be addressed to fix the failing version check unit test

- 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

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to enable automated application version updates in the Concourse release pipeline by moving to a calver scheme and adding version-bump tool configuration, while also aligning Django’s VERSION constant with the package version.

Changes:

  • Switch project.version (and Django settings.VERSION) from semver-style to a calver-style version string.
  • Add version bump configuration under pyproject.toml to update version strings across pyproject.toml, main/settings.py, and uv.lock.
  • Update settings tests to validate the version format against the bump configuration.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.

File Description
pyproject.toml Updates project version, adjusts a dependency pin, changes ruff ignore list, and adds version-bump tool configuration.
main/settings.py Updates the Django VERSION constant to the new version format.
main/settings_test.py Replaces semantic-version validation with a test that checks the configured calver parsing pattern and matches pyproject.toml.
uv.lock Updates the learn-ai package version entry and includes additional dependency resolution changes.
Comments suppressed due to low confidence (1)

pyproject.toml:199

  • PLC0415 was removed from ruff’s ignore list, but the codebase still contains imports outside module top-level (e.g., main/urls.py has import debug_toolbar under if settings.DEBUG:). With PL rules enabled, this change is likely to introduce new lint failures. Either re-add PLC0415 to lint.ignore, or update the affected files to comply (e.g., move imports to top-level or add targeted # noqa: PLC0415).
    "N806",
    "N999",
    "PIE804",
    "RET505",
    "RET506",
    "RET507",
    "RET508",

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pyproject.toml
Comment on lines +217 to +221
[tool.bumpversion]
commit = false
tag = false
parse = "(?P<release>(?:[1-9][0-9]{3})\\.(?:1[0-2]|[1-9])\\.(?:3[0-1]|[12][0-9]|[1-9]))\\.(?P<build>\\d+)"
serialize = ["{release}.{build}"]
Comment thread pyproject.toml
Comment on lines 39 to +42
"langchain-core>=1.1.0,<2",
"langchain-litellm>=0.6.1,<0.7",
"langchain-openai>=1.1.0,<2",
"langgraph==1.0.10",
"langgraph==1.0.4",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should be reverted back to 1.0.10

Comment thread main/settings.py
from openapi.settings_spectacular import open_spectacular_settings

VERSION = "0.30.0"
VERSION = "2026.4.16.1"
Comment thread pyproject.toml
Comment on lines +220 to +224
parse = "(?P<release>(?:[1-9][0-9]{3})\\.(?:1[0-2]|[1-9])\\.(?:3[0-1]|[12][0-9]|[1-9]))\\.(?P<build>\\d+)"
serialize = ["{release}.{build}"]

[tool.bumpversion.parts.release]
calver_format = "{YYYY}.{MM}.{DD}"
Copy link
Copy Markdown
Member

@mbertrand mbertrand left a comment

Choose a reason for hiding this comment

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

The other copilot review comments seem worth addressing too.

Comment thread pyproject.toml
Comment on lines 39 to +42
"langchain-core>=1.1.0,<2",
"langchain-litellm>=0.6.1,<0.7",
"langchain-openai>=1.1.0,<2",
"langgraph==1.0.10",
"langgraph==1.0.4",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should be reverted back to 1.0.10

Comment thread pyproject.toml
"N806",
"N999",
"PIE804",
"PLC0415",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Removing this led to many pre-commit errors about imports. Either the imports will need to be moved or this line will need to be added back.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants