Context
DataLab-Web occasionally needs functionality that has already been merged into develop in Sigima but is not yet available in a published Sigima release.
The current example is the annotation API work used by DataLab-Web before Sigima 1.3.0 is released. PR #17 temporarily replaced the normal Sigima requirement with a source archive pinned to commit:
4442ada873655f63fabd14369fd11170f75a28b4
and added a helper (scripts/build_sigima_wheel.py) plus duplicated CI steps to build a Pyodide-installable wheel from that snapshot.
This is a legitimate integration need and is likely to happen again. However, it should be made explicit and safe rather than treated as an ad-hoc dependency override.
Goal
Introduce a lightweight, reproducible mechanism for DataLab-Web to consume a specific Sigima development snapshot when required, while ensuring that released DataLab-Web builds always use an explicitly published Sigima version.
The mechanism should preserve two properties:
- development can consume Sigima features before the next Sigima release;
- CI remains reproducible by pinning an immutable commit SHA rather than tracking
Sigima/develop directly.
Proposed direction
- Keep a stable Sigima requirement for normal builds/releases.
- Introduce a single explicit development override (for example
SIGIMA_DEV_REF, VITE_SIGIMA_DEV_REF, or equivalent) containing a full Sigima commit SHA when cross-repository integration requires an unreleased snapshot.
- Centralize this override in one place instead of embedding a direct GitHub archive requirement in
requirements-dev.txt and duplicating the build logic conceptually across workflows.
- Keep building a wheel for Pyodide as long as this is required, but treat that as the standard snapshot mechanism rather than a one-off workaround.
- Add a release guard: release workflows must fail if a Sigima development snapshot override is still active.
- When the corresponding Sigima version is published, remove the development override and pin DataLab-Web to the published version that was actually qualified.
If this pattern becomes frequent, consider moving the source-snapshot wheel build logic to Sigima itself (e.g. a reusable/composite GitHub Action), so consumers only specify the Sigima SHA and Sigima remains responsible for building a correct wheel.
Immediate cleanup for Sigima 1.3.0
Once Sigima 1.3.0 is published:
Non-goal
This is not about publishing Sigima release candidates or development versions to PyPI. The target use case is earlier in the development cycle: consuming a specific, already-merged commit from Sigima/develop before the next Sigima release is ready.
Context
DataLab-Web occasionally needs functionality that has already been merged into
developin Sigima but is not yet available in a published Sigima release.The current example is the annotation API work used by DataLab-Web before Sigima 1.3.0 is released. PR #17 temporarily replaced the normal Sigima requirement with a source archive pinned to commit:
4442ada873655f63fabd14369fd11170f75a28b4and added a helper (
scripts/build_sigima_wheel.py) plus duplicated CI steps to build a Pyodide-installable wheel from that snapshot.This is a legitimate integration need and is likely to happen again. However, it should be made explicit and safe rather than treated as an ad-hoc dependency override.
Goal
Introduce a lightweight, reproducible mechanism for DataLab-Web to consume a specific Sigima development snapshot when required, while ensuring that released DataLab-Web builds always use an explicitly published Sigima version.
The mechanism should preserve two properties:
Sigima/developdirectly.Proposed direction
SIGIMA_DEV_REF,VITE_SIGIMA_DEV_REF, or equivalent) containing a full Sigima commit SHA when cross-repository integration requires an unreleased snapshot.requirements-dev.txtand duplicating the build logic conceptually across workflows.If this pattern becomes frequent, consider moving the source-snapshot wheel build logic to Sigima itself (e.g. a reusable/composite GitHub Action), so consumers only specify the Sigima SHA and Sigima remains responsible for building a correct wheel.
Immediate cleanup for Sigima 1.3.0
Once Sigima 1.3.0 is published:
4442ada...snapshot with the published Sigima 1.3.0 dependency;Non-goal
This is not about publishing Sigima release candidates or development versions to PyPI. The target use case is earlier in the development cycle: consuming a specific, already-merged commit from
Sigima/developbefore the next Sigima release is ready.