@rehearsal-db/core 0.1.0-beta.17 → 0.1.0-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -1
- package/README.md +1 -0
- package/dist/package.json +1 -2
- package/docs/README.md +1 -0
- package/docs/releasing.md +13 -8
- package/docs/stability.md +69 -0
- package/package.json +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,25 @@ a Changelog, and versions will follow Semantic Versioning after the package exis
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## [0.1.0-beta.18] - 2026-10-08
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- A concise stability contract now defines the supported public surface, defects that
|
|
13
|
+
block the first stable release, and the exact beta-to-RC-to-stable promotion gate.
|
|
14
|
+
- Automated release-policy tests cover beta, release-candidate, stable, malformed, and
|
|
15
|
+
mismatched GitHub release metadata.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Protected OIDC publication now supports both prerelease and stable versions. Beta and
|
|
20
|
+
release-candidate versions update `beta`; once a stable version exists they cannot
|
|
21
|
+
replace `latest`. Stable publication updates `latest` without rewriting `beta`.
|
|
22
|
+
- npm channel selection lives only in the protected release workflow instead of static
|
|
23
|
+
package metadata, and missing beta.16 and beta.17 changelog comparisons are restored.
|
|
24
|
+
- Vitest's locked patch release is updated from 5.0.2 to 5.0.3 after the complete CI
|
|
25
|
+
matrix passed.
|
|
26
|
+
|
|
8
27
|
## [0.1.0-beta.17] - 2026-10-08
|
|
9
28
|
|
|
10
29
|
### Added
|
|
@@ -525,7 +544,10 @@ a Changelog, and versions will follow Semantic Versioning after the package exis
|
|
|
525
544
|
publication uses short-lived trusted OIDC, and every release tag must already exist on
|
|
526
545
|
protected `main`.
|
|
527
546
|
|
|
528
|
-
[Unreleased]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.
|
|
547
|
+
[Unreleased]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.18...HEAD
|
|
548
|
+
[0.1.0-beta.18]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.17...v0.1.0-beta.18
|
|
549
|
+
[0.1.0-beta.17]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.16...v0.1.0-beta.17
|
|
550
|
+
[0.1.0-beta.16]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.15...v0.1.0-beta.16
|
|
529
551
|
[0.1.0-beta.15]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.14...v0.1.0-beta.15
|
|
530
552
|
[0.1.0-beta.14]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.13...v0.1.0-beta.14
|
|
531
553
|
[0.1.0-beta.13]: https://github.com/Ddupasquier/rehearsal-db/compare/v0.1.0-beta.12...v0.1.0-beta.13
|
package/README.md
CHANGED
|
@@ -155,6 +155,7 @@ Reference:
|
|
|
155
155
|
- [Runtime and local identity policies](docs/runtime-policies.md)
|
|
156
156
|
- [Glossary](docs/glossary.md)
|
|
157
157
|
- [Repository architecture](docs/architecture.md)
|
|
158
|
+
- [Stability and the first stable release](docs/stability.md)
|
|
158
159
|
- [Release process](docs/releasing.md)
|
|
159
160
|
|
|
160
161
|
## Getting support
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rehearsal-db/core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Safely rehearse PostgreSQL and Supabase migrations against sanitized, production-shaped data.",
|
|
6
6
|
"repository": {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"homepage": "https://ddupasquier.github.io/rehearsal-db/",
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public",
|
|
16
|
-
"tag": "beta",
|
|
17
16
|
"provenance": true
|
|
18
17
|
},
|
|
19
18
|
"type": "module",
|
package/docs/README.md
CHANGED
package/docs/releasing.md
CHANGED
|
@@ -58,16 +58,21 @@ The independent Rehearsal Test Lab is the primary pre-release consumer environme
|
|
|
58
58
|
Real product integrations provide additional compatibility evidence; they do not
|
|
59
59
|
replace the package-owned release gate or Test Lab.
|
|
60
60
|
|
|
61
|
-
The workflow publishes
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
`npm install @rehearsal-db/core` command current.
|
|
65
|
-
`latest`
|
|
61
|
+
The workflow publishes beta and release-candidate versions under the `beta` dist-tag.
|
|
62
|
+
While Rehearsal has no stable release, it also moves `latest` to the same reviewed
|
|
63
|
+
prerelease. This keeps the npm package page and the ordinary
|
|
64
|
+
`npm install @rehearsal-db/core` command current. A stable version publishes under
|
|
65
|
+
`latest` without changing `beta`; after that point, later prereleases update only `beta`
|
|
66
|
+
and cannot replace the stable `latest` line. The GitHub prerelease setting must agree
|
|
67
|
+
with the package version or preparation fails.
|
|
68
|
+
|
|
69
|
+
The objective promotion checklist and compatibility boundary live in
|
|
70
|
+
[Stability and the first stable release](stability.md).
|
|
66
71
|
|
|
67
72
|
The trusted publisher allows `npm dist-tag` only so this workflow can maintain those two
|
|
68
|
-
tags without a stored npm token. A manual workflow run from `main` can repair the
|
|
69
|
-
for the exact
|
|
70
|
-
|
|
73
|
+
tags without a stored npm token. A manual workflow run from `main` can repair the correct
|
|
74
|
+
channel for the exact version currently recorded in `package.json`; it cannot publish a
|
|
75
|
+
package or select a different version. The protected `npm` environment still supplies
|
|
71
76
|
the human approval gate.
|
|
72
77
|
|
|
73
78
|
Creating the repository, passing CI, extracting the engine, merging a release branch,
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Stability and the first stable release
|
|
2
|
+
|
|
3
|
+
Rehearsal leaves beta when the workflow it already promises is dependable. Stable
|
|
4
|
+
`0.1.0` does not require every planned database, desktop interface, or paid feature.
|
|
5
|
+
|
|
6
|
+
## What becomes a compatibility promise
|
|
7
|
+
|
|
8
|
+
Starting with `0.1.0`, Rehearsal treats these documented surfaces as public:
|
|
9
|
+
|
|
10
|
+
- CLI command names, flags, JSON result fields, and exit categories in
|
|
11
|
+
[CLI commands](commands.md);
|
|
12
|
+
- `rehearsal.config.mjs` schema version 1 and the policy formats documented in
|
|
13
|
+
[Configuration](configuration.md), [Sanitization](sanitization.md), and
|
|
14
|
+
[Runtime and identity policies](runtime-policies.md);
|
|
15
|
+
- package entry points and generated declarations listed in
|
|
16
|
+
[TypeScript](typescript.md);
|
|
17
|
+
- supported Node.js, operating-system, Docker, Supabase, and PostgreSQL boundaries in
|
|
18
|
+
[COMPATIBILITY.md](https://github.com/Ddupasquier/rehearsal-db/blob/main/COMPATIBILITY.md);
|
|
19
|
+
- non-destructive ownership, confirmation, credential, and hosted-access guarantees in
|
|
20
|
+
[Security model](security-model.md).
|
|
21
|
+
|
|
22
|
+
Patch releases may fix defects and improve messages without changing those contracts.
|
|
23
|
+
A future breaking contract change requires a version that clearly communicates it under
|
|
24
|
+
Semantic Versioning. Internal source files, terminal decoration, exact prose, temporary
|
|
25
|
+
file names, and undocumented package paths are not compatibility promises.
|
|
26
|
+
|
|
27
|
+
## What blocks a release candidate
|
|
28
|
+
|
|
29
|
+
An issue blocks `0.1.0-rc.1` when it can cause any of the following within a supported
|
|
30
|
+
configuration:
|
|
31
|
+
|
|
32
|
+
- data loss, credential exposure, hosted-system access, or mutation outside resources
|
|
33
|
+
that Rehearsal can prove it owns;
|
|
34
|
+
- an incorrect baseline, migration set, verification result, or successful status;
|
|
35
|
+
- failure of clean installation, supported-version upgrade, restore, reset, cleanup, or
|
|
36
|
+
interruption recovery;
|
|
37
|
+
- a documented CLI, configuration, policy, or TypeScript contract behaving differently
|
|
38
|
+
from its reference;
|
|
39
|
+
- a supported Node.js, Supabase, PostgreSQL, macOS, or Linux path failing its maintained
|
|
40
|
+
automated gate.
|
|
41
|
+
|
|
42
|
+
Cosmetic improvements, new database families, production-shaped sampling, the VS Code
|
|
43
|
+
extension, desktop work, and commercial capabilities do not block the first stable
|
|
44
|
+
release.
|
|
45
|
+
|
|
46
|
+
## Promotion sequence
|
|
47
|
+
|
|
48
|
+
1. Ship beta.18 with only stability, release-safety, upgrade, and documentation work.
|
|
49
|
+
2. Freeze broad feature development on the release branch.
|
|
50
|
+
3. Publish `0.1.0-rc.1` from protected `main` through the reviewed npm environment.
|
|
51
|
+
4. Run the complete Rehearsal Test Lab gate twice from clean isolated workspaces.
|
|
52
|
+
5. Perform one final package-only upgrade in a real consumer. The consumer must use the
|
|
53
|
+
published package rather than duplicate Rehearsal machinery.
|
|
54
|
+
6. Keep the candidate available for at least seven calendar days. Restart the window if
|
|
55
|
+
a blocking package change is required.
|
|
56
|
+
7. Publish `0.1.0` only when no blocking issue remains and the accepted registry artifact
|
|
57
|
+
matches the tested artifact exactly.
|
|
58
|
+
|
|
59
|
+
Test Lab is the primary verification system. A real consumer is the final compatibility
|
|
60
|
+
check, not a replacement for package-owned coverage. Real Google or GitHub consent does
|
|
61
|
+
not need to run on every build unless authentication behavior changes.
|
|
62
|
+
|
|
63
|
+
## npm channels
|
|
64
|
+
|
|
65
|
+
Beta and release-candidate versions publish under the `beta` tag. Before a stable
|
|
66
|
+
release exists, `latest` follows that reviewed prerelease so the ordinary install command
|
|
67
|
+
remains useful. Once stable `0.1.0` exists, `latest` stays on the stable line and `beta`
|
|
68
|
+
continues to identify the newest prerelease. Stable publication never rewrites the
|
|
69
|
+
`beta` tag.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rehearsal-db/core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Safely rehearse PostgreSQL and Supabase migrations against sanitized, production-shaped data.",
|
|
6
6
|
"repository": {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"homepage": "https://ddupasquier.github.io/rehearsal-db/",
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public",
|
|
16
|
-
"tag": "beta",
|
|
17
16
|
"provenance": true
|
|
18
17
|
},
|
|
19
18
|
"type": "module",
|