@7n/rules 1.49.7 → 1.49.8

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.49.8] - 2026-07-26
4
+
5
+ ### Changed
6
+
7
+ - release: @7n/llm-lib@2.9.6, @7n/rules@1.49.7
8
+
3
9
  ## [1.49.7] - 2026-07-26
4
10
 
5
11
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@7n/rules",
3
- "version": "1.49.7",
3
+ "version": "1.49.8",
4
4
  "description": "CLI еталонних правил і skills (префікс n-): синк у репозиторій, дельта-lint, конформність",
5
5
  "keywords": [
6
6
  "cli",
@@ -4,7 +4,7 @@
4
4
  * у CI на `main` (n-rules-release-design, варіант A). Сам нічого не публікує.
5
5
  */
6
6
  import { existsSync } from 'node:fs'
7
- import { readFile, rm, writeFile } from 'node:fs/promises'
7
+ import { appendFile, readFile, rm, writeFile } from 'node:fs/promises'
8
8
  import { join } from 'node:path'
9
9
  import { env } from 'node:process'
10
10
 
@@ -225,6 +225,18 @@ export async function release(opts = {}) {
225
225
  return released
226
226
  }
227
227
 
228
+ /**
229
+ * Передає GitHub Actions перелік workspace-ів, для яких release справді створив
230
+ * нову версію. Publish-кроки використовують його замість broad path-filter-а,
231
+ * щоб не викликати npm publish для пакетів без нового релізу.
232
+ * @param {Array<{ ws: string }>} released фактично випущені workspaces
233
+ * @returns {Promise<void>} завершення запису або no-op поза GitHub Actions
234
+ */
235
+ async function writeReleasedWorkspacesOutput(released) {
236
+ if (!env.GITHUB_OUTPUT) return
237
+ await appendFile(env.GITHUB_OUTPUT, `workspaces=${JSON.stringify(released.map(({ ws }) => ws))}\n`)
238
+ }
239
+
228
240
  /**
229
241
  * @param {string[]} _args аргументи CLI (наразі без опцій)
230
242
  * @param {import('./release.mjs').ReleaseOpts} [opts] опції для тестів (cwd, date, runGit, push)
@@ -237,6 +249,7 @@ export async function runReleaseCli(_args, opts = {}) {
237
249
  // через `env:` на кроці — поле, якого немає в канонічному сніпеті, тож subset-перевірка не ламається.
238
250
  const push = opts.push ?? (env.N_RULES_RELEASE_PUSH ?? env.N_CURSOR_RELEASE_PUSH) !== '0'
239
251
  const released = await release({ ...opts, push })
252
+ await writeReleasedWorkspacesOutput(released)
240
253
  if (released.length === 0) {
241
254
  console.log('release: немає змін для релізу')
242
255
  } else {