Skip to content

[Stage 1] Establish the v2 workspace and package baseline #318

Description

@draedful

Goal

Establish the workspace, package, build, and prerelease baseline required for the v2 modular architecture without splitting public runtime features yet.

All Stage 1 work targets v2. During this stage, main remains the stable, maintenance-only v1 line. A relevant v1 change is synchronized manually according to #316.

At the end of this stage, the library lives in a pnpm workspace, development applications consume package boundaries, private implementation packages are bundled into public artifacts, and the v2 release workflow has published a consumer-verified 2.x prerelease under next.

Stage 1 starts after #315, #314, #313, #317, #312, and #316 are complete. It does not wait for release/v1 or final cutover.

Exit criteria

  • pnpm is the only package manager used on v2 and clean installs use a frozen lockfile.
  • The public @gravity-ui/graph package lives in packages/graph and can be packed independently.
  • Every public entry point present at the approved split commit or added by an approved synchronized v1 contract change is preserved or intentionally migrated.
  • Storybook and E2E are private workspace projects consuming public package entry points.
  • Packed artifacts pass isolated vanilla JavaScript, React, and applicable Playwright consumer checks.
  • Production artifacts and export maps are explicit and validated.
  • The private scheduler workspace package is bundled into @gravity-ui/graph and absent from published dependencies.
  • release-v2.yml publishes from v2 using the monorepo package graph.
  • An approved 2.x prerelease is published under next and installed successfully from npm.
  • No private workspace package is published or exposed as an unresolved runtime dependency.
  • Package-boundary rules and CI prevent source-path bypasses.
  • Drift from main is checked before the Stage 1 prerelease.
  • Every child issue leaves the library buildable, testable, and ready for the next migration step.

Execution order

  1. Adopt pnpm and verify the current root package tarball.
  2. Move @gravity-ui/graph into packages/graph.
  3. Extract Storybook and E2E into private workspace projects.
  4. Normalize the production build and export map.
  5. Extract the private scheduler package and prove inlining.
  6. Migrate and validate the v2 release workflow for the monorepo.
  7. Enforce workspace boundaries and finalize v2 CI gates.

Related

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions