Skip to content
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

refactor: Centralize Vega project versioning #3720

Merged
merged 17 commits into from
Jan 6, 2025
Merged

Conversation

dangotbanned
Copy link
Member

@dangotbanned dangotbanned commented Dec 22, 2024

Description

This PR seeks to simplify version bumps of projects we depend on within the https://github.com/vega org.

The new process I'm proposing is documented in https://github.com/vega/altair/blob/5aec51ef8eaf345936436abddd903ea87b86b968/NOTES_FOR_MAINTAINERS.md.
In short, we bump versions in pyproject.toml and they propagate to everywhere they were previously manually maintained:

altair/pyproject.toml

Lines 103 to 107 in 0c3c220

[tool.altair.vega]
# Minimum/exact versions, for projects under the `vega` organization
vega-datasets = "v2.11.0" # https://github.com/vega/vega-datasets
vega-embed = "6" # https://github.com/vega/vega-embed
vega-lite = "v5.20.1" # https://github.com/vega/vega-lite

Note

Since resolving (#3720 (comment)), vl-convert-python and vegafusion versions are sourced directly from [project.optional-dependencies].

The new module https://github.com/vega/altair/blob/5aec51ef8eaf345936436abddd903ea87b86b968/tools/versioning.py handles said propagation.

Motivation

Vega-Lite

I think it was unintentional, but we missed a vega-lite bump in https://github.com/vega/altair/releases/tag/v5.5.0.
We're still on https://github.com/vega/vega-lite/releases/tag/v5.20.1 but we should be on https://github.com/vega/vega-lite/releases/tag/v5.21.0 and now the latest is https://github.com/vega/vega-lite/releases/tag/v5.23.0

Additionally, these appear to be out-of-sync?

vl-convert

altair/pyproject.toml

Lines 56 to 58 in 1208c5d

[project.optional-dependencies]
save = [
"vl-convert-python>=1.7.0",

def import_vl_convert() -> ModuleType:
min_version = "1.6.0"

VegaFusion

"vegafusion[embed]>=1.6.6",

def import_vegafusion() -> ModuleType:
min_version = "1.5.0"

Future

I'm planning to pin vega-datasets for (#3631).

There are also likely to be a lot of version changes coming up as a result of (vega/vega#3990).
IMO having a single, highly visible place to update will make this process hopefully painless for us

Tasks

- Defines `[tool.altair.vega]` in `pyproject.toml`
- Adds tooling to propagate these versions throughout `altair`
@dangotbanned dangotbanned changed the title refactor: Centralize vega project versioning refactor: Centralize Vega project versioning Dec 23, 2024
Single entrypoint for both `pyproject.toml` and `vl_convert` sourced versions
@dangotbanned dangotbanned marked this pull request as ready for review December 23, 2024 18:29
@dangotbanned dangotbanned requested review from jonmmease, joelostblom, mattijn and binste and removed request for jonmmease December 23, 2024 18:29
pyproject.toml Outdated Show resolved Hide resolved
@dangotbanned
Copy link
Member Author

I'm gonna merge this and shift focus towards (#3723) which mainly needs to touch the same docs to finish off.

When anyone is available again, please don't hesitate to reach out if you have any issues/suggestions

@dangotbanned dangotbanned enabled auto-merge (squash) January 6, 2025 19:22
@dangotbanned dangotbanned merged commit 367993e into main Jan 6, 2025
25 checks passed
@dangotbanned dangotbanned deleted the vega-versioning branch January 7, 2025 15:17
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.

2 participants