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.
@@ -105,11 +105,10 @@ jobs:
105
105
  git push origin HEAD:${{ github.ref_name }}
106
106
  git push origin --tags
107
107
 
108
- # Build: Build all platforms (skip for promote)
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' && (needs.build.result == 'success' || needs.build.result == 'skipped')
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgserve",
3
- "version": "1.1.1-rc.1",
3
+ "version": "1.1.2",
4
4
  "description": "Embedded PostgreSQL server with true concurrent connections - zero config, auto-provision databases",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -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 match = currentVersion.match(/^(\d+\.\d+\.\d+)-rc\.\d+$/);
94
- if (!match) {
95
- throw new Error(`Cannot promote: ${currentVersion} is not an RC version`);
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
- return match[1];
104
+
105
+ throw new Error(`Invalid version format: ${currentVersion}`);
98
106
  }
99
107
 
100
108
  function createTag(version) {