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 8 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
Comment on lines +52 to +56
#### `vegafusion`


> [!WARNING]
> *TODO: Find out how the constraint for `vegafusion` is decided*
Copy link
Member Author

Choose a reason for hiding this comment

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

@jonmmease do you have any thoughts on what should go here?

AFAIK we haven't documented this before - but it seems like something that would be helpful if you weren't available

Copy link
Contributor

Choose a reason for hiding this comment

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

The VegaFusion constraint isn't tied to the Vega-Lite version (since VegaFusion works at the Vega level). In theory it could be connected to the Vega version, but Vega has been so stable that this hasn't come up in practice.

I think the VegaFusion version constraint is determined by the API we depend on, just like a regular Python dependency.

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