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

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

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 110 in 5aec51e

[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
vegafusion = "1.5.0" # https://github.com/vega/vegafusion
vl-convert-python = "1.7.0" # https://github.com/vega/vl-convert

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
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