Skip to content

docs(ci): establish the GravityGraph v2 Stage 0 baseline#335

Draft
draedful wants to merge 10 commits into
mainfrom
codex/stage-0-v2-baseline
Draft

docs(ci): establish the GravityGraph v2 Stage 0 baseline#335
draedful wants to merge 10 commits into
mainfrom
codex/stage-0-v2-baseline

Conversation

@draedful

@draedful draedful commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Establish the repository-side Stage 0 baseline for independent Gravity Graph v1 and v2 development and release lines.

  • define the v1 maintenance, v2 development, manual synchronization, cutover, rollback, and deprecation policy;
  • add contributor routing and issue/pull-request templates for v1, v2, sync, release, and cutover work;
  • protect the actual packed v1 contract with isolated vanilla and React 17/18 consumers, declaration validation, assets checks, and a public API baseline;
  • split CI, preview, and release routing for main, future v2, and future release/v1;
  • add fail-before-release branch/version/prerelease/dist-tag guards and keep post-cutover routes inactive;
  • add machine-readable ruleset expectations, a GET-only verifier, offline safety tests, and an administrator runbook.

Branch and release safety

Validation

  • npm run test:package-contract
    • packed @gravity-ui/graph@1.11.3;
    • 311 tarball files;
    • isolated vanilla and React 17/18 consumers;
    • TypeScript, runtime JS, CSS, declarations, exports, assets, and public API baseline.
  • npm run typecheck
  • npm run test
    • 31 suites passed;
    • 339 tests passed, 4 skipped, 6 todo.
  • node .github/release-routing/validate.mjs check-workflows
  • node .github/rulesets/verify.mjs --self-test
  • git diff --check

Required external gates

Before creating v2:

  1. assign the repository administrator and record the bypass decision in [Stage 0.4] Prepare and verify rulesets for main and v2 #317, starting with no bypass;
  2. activate and verify rulesets for main and the future v2 ref;
  3. merge this baseline after all required checks pass;
  4. record the exact resulting main SHA in [Stage 0.1] Define the v1 maintenance, v2 release, synchronization, and cutover policy #315 and [Stage 0.5] Create and validate the protected v2 development branch #312;
  5. create v2 from that exact SHA and immediately verify effective protection.

Related: #310, #312, #313, #314, #315, #316, #317.

Summary by Sourcery

Establish a Stage 0 baseline for parallel v1 maintenance and v2 development by formalizing branch/release policy, strengthening CI and release safety checks, and protecting the published v1 package contract.

Enhancements:

  • Extend CI and E2E workflows to run on both main and v2 branches and introduce a dedicated package contract job that validates release routing and the published artifact.
  • Split the previous unified release workflow into separate guarded workflows for v1 and v2 with explicit branch, version, prerelease, and dist-tag validation and distinct preview routing.
  • Add an automated validator for release-routing configuration and an offline ruleset verifier to enforce expected protection and required checks.
  • Enhance the build pipeline to normalize declaration files and enforce a stable public API baseline for the v1 package contract.

CI:

  • Add contributor-facing issue and pull-request templates to capture v1/v2 routing intent, synchronization records, and release/cutover evidence.

Documentation:

  • Document the v1/v2 branch, release, synchronization, and cutover policy, contributor routing rules, and ruleset administration/runbooks, and link them from the main README and CONTRIBUTING guide.

Tests:

  • Introduce a package-contract test suite that builds and packs the library, validates exports, declarations, assets, and public API, and exercises vanilla and React 17/18 consumers to guard the v1 npm contract.

@gravity-ui-bot

Copy link
Copy Markdown
Contributor

Preview is ready.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants