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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions