Internal Library Release Workflow
Version and document the internal library, provide a migration guide for breaking changes, publish to the private registry, and announce to internal consumers.
Objective
Release an internal library so consuming teams can upgrade with clear guidance.
Environment
- A private package registry
- Internal communication channels
Steps
1. Version semantically and document the public
Version semantically and document the public surface change.
Expected state: Consumers understand the change.
2. Write a migration guide for any
Write a migration guide for any breaking change.
Expected state: Upgrading has a path.
3. Publish to the private registry
Publish to the private registry with provenance.
Expected state: Consumers can install a trusted build.
4. Announce to consuming teams and track
Announce to consuming teams and track upgrade adoption.
Expected state: Migration is visible.
Decision points
Major bump or a compatible shim?
- Shim then major
- Major directly
Offer a compatible shim when many consumers are slow; a direct major break forces simultaneous migration.
Publish from CI or locally?
- CI with provenance
- Local
CI with provenance; internal does not mean provenance is optional.
Expected outcome
A versioned internal library published with a migration guide and adoption tracked by consuming teams.
Verification
Confirm the published version installs from the private registry and that consuming teams can complete the migration using the guide.
Cleanup
Record the release and follow up on teams that have not upgraded.
Overview
Release an internal library so consuming teams can upgrade with clear guidance. Confirm the published version installs from the private registry and that consuming teams can complete the migration using the guide.
Steps
- Version semantically and document the public surface change. Expected state: Consumers understand the change.
- Write a migration guide for any breaking change. Expected state: Upgrading has a path.
- Publish to the private registry with provenance. Expected state: Consumers can install a trusted build.
- Announce to consuming teams and track upgrade adoption. Expected state: Migration is visible.
npm publish --registry https://npm.internal.example.com
# announce and track adoption in the internal channel
Verification
- A versioned internal library published with a migration guide and adoption tracked by consuming teams.
Decision points
- Major bump or a compatible shim? Options: Shim then major; Major directly. Recommended: Offer a compatible shim when many consumers are slow; a direct major break forces simultaneous migration.
- Publish from CI or locally? Options: CI with provenance; Local. Recommended: CI with provenance; internal does not mean provenance is optional.