Skip to content

[Stage 1.5] Extract the private scheduler package and prove inlining #321

Description

@draedful

Parent: #318

Goal

Prove the private-package delivery model with a real internal package while keeping scheduler concepts available through the public graph contract.

The scheduler package exists only to enforce ownership and dependency direction. It must not become a published runtime dependency.

Scope

  • Move the scheduler implementation into a private workspace package under packages/scheduler.
  • Mark the scheduler package private and exclude it from publication.
  • Make packages/graph consume the scheduler implementation through an explicit workspace dependency.
  • Keep ESchedulerPriority and the supported schedule, debounce, and throttle contracts exported from @gravity-ui/graph.
  • Keep Storybook, E2E, and Page Objects dependent only on @gravity-ui/graph.
  • Configure the production build to inline the private scheduler implementation into the public graph artifact.
  • Inspect the packed manifest and generated JavaScript for unresolved private-package imports.

Acceptance criteria

  • packages/scheduler is private and cannot be published by the release workflow.
  • @gravity-ui/graph remains the public owner and export surface for ESchedulerPriority.
  • Page Objects import scheduler concepts only from @gravity-ui/graph.
  • The @gravity-ui/graph tarball has no published dependency on the private scheduler package.
  • Generated graph artifacts contain no unresolved import of the private scheduler package.
  • Isolated vanilla JavaScript and React consumers pass without workspace access.
  • Unit, Storybook, and E2E checks remain green.

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