pgserve 1.1.1-rc.1 → 1.1.2
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/.github/workflows/release.yml +2 -44
- package/AGENTS.md +7 -0
- package/package.json +1 -1
- package/scripts/release.cjs +13 -5
|
@@ -105,11 +105,10 @@ jobs:
|
|
|
105
105
|
git push origin HEAD:${{ github.ref_name }}
|
|
106
106
|
git push origin --tags
|
|
107
107
|
|
|
108
|
-
# Build:
|
|
108
|
+
# Build & Publish: Always build and publish (npm_tag comes from version job)
|
|
109
109
|
build:
|
|
110
110
|
name: Build & Publish
|
|
111
111
|
needs: version
|
|
112
|
-
if: needs.version.outputs.is_promote != 'true'
|
|
113
112
|
uses: ./.github/workflows/build-all-platforms.yml
|
|
114
113
|
with:
|
|
115
114
|
version: ${{ needs.version.outputs.version }}
|
|
@@ -117,52 +116,11 @@ jobs:
|
|
|
117
116
|
ref: ${{ needs.version.outputs.tag }}
|
|
118
117
|
secrets: inherit
|
|
119
118
|
|
|
120
|
-
# Promote: Just update npm tags (no rebuild)
|
|
121
|
-
promote:
|
|
122
|
-
name: Promote to Latest
|
|
123
|
-
needs: version
|
|
124
|
-
if: needs.version.outputs.is_promote == 'true'
|
|
125
|
-
runs-on: ubuntu-latest
|
|
126
|
-
environment: npm-publish
|
|
127
|
-
|
|
128
|
-
steps:
|
|
129
|
-
- name: Setup Node.js
|
|
130
|
-
uses: actions/setup-node@v4
|
|
131
|
-
with:
|
|
132
|
-
node-version: '20'
|
|
133
|
-
registry-url: 'https://registry.npmjs.org'
|
|
134
|
-
|
|
135
|
-
- name: Get RC version from @next tag
|
|
136
|
-
id: get-rc
|
|
137
|
-
run: |
|
|
138
|
-
RC_VERSION=$(npm view pgserve@next version 2>/dev/null || echo "")
|
|
139
|
-
if [ -z "$RC_VERSION" ]; then
|
|
140
|
-
echo "No RC version found at @next tag"
|
|
141
|
-
exit 1
|
|
142
|
-
fi
|
|
143
|
-
echo "rc_version=$RC_VERSION" >> $GITHUB_OUTPUT
|
|
144
|
-
echo "Found RC version: $RC_VERSION"
|
|
145
|
-
|
|
146
|
-
- name: Promote @next to @latest
|
|
147
|
-
run: |
|
|
148
|
-
echo "Promoting pgserve@${{ steps.get-rc.outputs.rc_version }} to @latest"
|
|
149
|
-
npm dist-tag add pgserve@${{ steps.get-rc.outputs.rc_version }} latest
|
|
150
|
-
env:
|
|
151
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
152
|
-
|
|
153
|
-
- name: Verify promotion
|
|
154
|
-
run: |
|
|
155
|
-
LATEST=$(npm view pgserve@latest version)
|
|
156
|
-
echo "Latest version is now: $LATEST"
|
|
157
|
-
if [ "$LATEST" != "${{ steps.get-rc.outputs.rc_version }}" ]; then
|
|
158
|
-
echo "Warning: Version mismatch after promotion"
|
|
159
|
-
fi
|
|
160
|
-
|
|
161
119
|
# GitHub Release: Create release with changelog
|
|
162
120
|
github-release:
|
|
163
121
|
name: Create GitHub Release
|
|
164
122
|
needs: [version, build]
|
|
165
|
-
if: always() && needs.version.result == 'success' &&
|
|
123
|
+
if: always() && needs.version.result == 'success' && needs.build.result == 'success'
|
|
166
124
|
runs-on: ubuntu-latest
|
|
167
125
|
permissions:
|
|
168
126
|
contents: write
|
package/AGENTS.md
CHANGED
|
@@ -188,9 +188,16 @@ Before editing ANY implementation file, Base Genie must check:
|
|
|
188
188
|
|
|
189
189
|
**Protocol:** `@.genie/spells/orchestration-boundary-protocol.md`
|
|
190
190
|
|
|
191
|
+
**Release Workflow Protocol:**
|
|
192
|
+
- ❌ Never manually trigger `workflow_dispatch` for releases
|
|
193
|
+
- ❌ Never manually bump version in package.json
|
|
194
|
+
- ✅ Always use PR with `rc` or `stable` label - release.yml auto-triggers on merge
|
|
195
|
+
- ✅ Version bumping is automated by scripts/release.cjs
|
|
196
|
+
|
|
191
197
|
**Documented Violations:**
|
|
192
198
|
- Bug #168, task b51db539, 2025-10-21 (duplicate implementation)
|
|
193
199
|
- 2025-10-26 (claimed release implementation steps without investigating automation)
|
|
200
|
+
- 2025-12-08 (manually set version to 1.1.0 + triggered workflow_dispatch → version jumped to 1.1.1-rc.1)
|
|
194
201
|
|
|
195
202
|
### 4. Task State Optimization - Live State, Not Documentation 🔴 CRITICAL
|
|
196
203
|
**Rule:** Task state is ephemeral runtime data, not permanent documentation
|
package/package.json
CHANGED
package/scripts/release.cjs
CHANGED
|
@@ -89,12 +89,20 @@ function bumpRcVersion(currentVersion) {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function promoteToStable(currentVersion) {
|
|
92
|
-
// 1.0.9-rc.2 -> 1.0.9
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
95
|
-
|
|
92
|
+
// If RC version: 1.0.9-rc.2 -> 1.0.9
|
|
93
|
+
const rcMatch = currentVersion.match(/^(\d+\.\d+\.\d+)-rc\.\d+$/);
|
|
94
|
+
if (rcMatch) {
|
|
95
|
+
return rcMatch[1];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// If already stable: 1.1.1 -> 1.1.2 (bump patch for new stable release)
|
|
99
|
+
const stableMatch = currentVersion.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
100
|
+
if (stableMatch) {
|
|
101
|
+
const [, major, minor, patch] = stableMatch;
|
|
102
|
+
return `${major}.${minor}.${parseInt(patch) + 1}`;
|
|
96
103
|
}
|
|
97
|
-
|
|
104
|
+
|
|
105
|
+
throw new Error(`Invalid version format: ${currentVersion}`);
|
|
98
106
|
}
|
|
99
107
|
|
|
100
108
|
function createTag(version) {
|