@newly/cli 0.2.202 → 0.2.203

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.
@@ -7,7 +7,7 @@ export function releaseControlRequest(file) {
7
7
  const value = JSON.parse(readFileSync(file, 'utf8'));
8
8
  if (!value || typeof value !== 'object' || Array.isArray(value) || typeof value.reason !== 'string' || !value.reason.trim()
9
9
  || !Number.isSafeInteger(value.expectedRevision) || Number(value.expectedRevision) < 0
10
- || !['bootstrap', 'enroll', 'announce', 'override', 'pause', 'resume', 'rollback', 'defer'].includes(String(value.action))) {
10
+ || !['bootstrap', 'enroll', 'announce', 'override', 'record-activation', 'pause', 'resume', 'rollback', 'defer'].includes(String(value.action))) {
11
11
  throw new Error('Request needs action, reason and expectedRevision from the current release-control status');
12
12
  }
13
13
  return value;
@@ -21,6 +21,6 @@ export function releaseText(channels) {
21
21
  const channel = channels.find(item => item.channel === name);
22
22
  return channel
23
23
  ? `${name.padEnd(13)} ${channel.version} r${channel.revision} by ${channel.promotedBy} at ${channel.promotedAt}${channel.digest ? ` ${channel.digest}` : ''}`
24
- : `${name.padEnd(13)} unset (hosts use their inventory pin)`;
25
- }).join('\n');
24
+ : `${name.padEnd(13)} unset`;
25
+ }).join('\n') + '\nRetired channels: expectations and targets come only from `runcloud fleet release-control status`.';
26
26
  }
@@ -334,13 +334,13 @@ export function registerRunCloudFleet(program) {
334
334
  requireFleetReadAccess(result.coverage.reason);
335
335
  console.log(JSON.stringify({ coverage: result.coverage, items: result.items.map(eventEvidence) }, null, 2));
336
336
  }));
337
- fleet.command('releases').description('Show the serve-sim release channel each pool runs (admin read)')
337
+ fleet.command('releases').description('Show the retired serve-sim release channels as history; targets live in `fleet release-control status` (admin read)')
338
338
  .option('--json', 'Structured channel records')
339
339
  .action(opts => action(async () => {
340
340
  const { channels, unavailable } = await listReleaseChannels(credentialsClient());
341
341
  console.log(opts.json ? JSON.stringify({ unavailable, channels }, null, 2) : `${unavailable ? 'Warning: release storage was partly unavailable\n' : ''}${releaseText(channels)}`);
342
342
  }));
343
- fleet.command('promote <channel> <version>').description('Point one pool (ios|android/dev|prod) at a serve-sim build; audited admin write, no host is touched')
343
+ fleet.command('promote <channel> <version>').description('Retired: the API refuses channel promotions. Announce a rollout or record an activation with `fleet release-control apply`')
344
344
  .requiredOption('--reason <text>', 'Why this build is promoted; kept in the audit history')
345
345
  .option('--digest <sha256>', 'Artifact content digest, sha256:<64 hex>').option('--artifact <ref>', 'Where the artifact comes from, e.g. gh-run:<id>')
346
346
  .action((channel, version, opts) => action(async () => {
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const CLI_VERSION = '0.2.202';
1
+ export const CLI_VERSION = '0.2.203';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newly/cli",
3
- "version": "0.2.202",
3
+ "version": "0.2.203",
4
4
  "description": "Develop, provision, and deploy Newly backends from your terminal",
5
5
  "homepage": "https://newly.app",
6
6
  "repository": {