Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
'@objectstack/spec': patch
---

fix(spec): `os migrate meta` guidance for the `rest-*`, `analytics-*`, `view-*`, `package-*`, `object-*`, `sharing-*`, `audit-*`, `flow-*` and `http-*` migration entries states each lesson in words instead of citing tracker numbers

Clause-②: no

The ADR-0087 semantic entries of the `rest-*` family (the retired OpenAPI 3.1 block, the
endpoint `handlerStatus` marker, the REST server's dead config keys and the REST plugin
durations renamed with their unit), the `analytics-*` family (the retired query envelope,
the unknown-key refusals on cubes, and the closed date-range vocabulary and two-bound
window), the `view-*` family (the filter value shaped by its operator and its array and
absent-value refusals, the retired view-management protocol, the page-size default and the
judged overlay `options` bag), the `package-*` family (the explicit all-tenants uninstall,
the retired unmounted contract-map entries and rollback response, and the strict wrapped
install body), the `object-*` family (the array `sort` on object blocks, the converged grid
`data`, the rule-array `defaultFilters` and the index unknown-key refusal), the `sharing-*`
family (the retired `SharingExecutionContext` type and the reconciled rule recipients), the
`audit-*` family (the audit-log action values no writer produced), the `flow-*` family (the
retry count, the decision-branch and edge refusals, first-match edge branching and blank
predicate slots) and the `http-*` family (the retired error counter and server runtime
vocabulary) are printed by `os migrate meta` as the header, `why:` and `verify:` lines of a
manual change. Their text sent the reader to issue-tracker, decision-batch and ruling-record
numbers — some of which no longer resolve, and some in another repository — for what a
ruling, measurement or fix had decided; it now says what was decided, in the sentence being
read. ADR ids are kept. Two entries of other families are corrected the same way:
`api-error-retry-after-unit-in-key` now dates the population ruling its clause describes,
and `inline-grid-column-currency-scale-refused` names its two currency rulings by date
instead of by record number.

Text only: no entry id, `from` / `to`, conversion or matching logic changes, and the chain
rewrites exactly what it rewrote before. One entry's `surface` (the header line of
`flow-edge-condition-evaluated-slot-source-required`) drops the two tracker numbers it
carried and names nothing else differently. The generated migration registry,
`spec-changes.json` and the protocol upgrade guide carry the same text.
34 changes: 17 additions & 17 deletions docs/protocol-upgrade-guide.md

Large diffs are not rendered by default.

40 changes: 39 additions & 1 deletion packages/cli/test/migrate-meta-engine-guidance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
* of the COVERED families (`engine-*`, `ui-*`, `plugin-*`, `driver-*`,
* `kernel-*`, `system-*`, `datasource-*`, `filter-*`, `action-*`, `data-*`,
* `element-*`, `field-*`, `export-*`, `api-*`, `dataset-*`, `hook-*`,
* `metadata-*`) states each lesson in words and carries no tracker number.
* `metadata-*`, `rest-*`, `analytics-*`, `view-*`, `package-*`, `object-*`,
* `sharing-*`, `audit-*`, `flow-*`, `http-*`, `inline-*`) states each lesson in
* words and carries no tracker number.
*
* ## What this pins
*
Expand Down Expand Up @@ -78,6 +80,8 @@ const COVERED_PREFIXES = [
'engine-', 'ui-', 'plugin-', 'driver-', 'kernel-', 'system-',
'datasource-', 'filter-', 'action-', 'data-', 'element-',
'field-', 'export-', 'api-', 'dataset-', 'hook-', 'metadata-',
'rest-', 'analytics-', 'view-', 'package-', 'object-', 'sharing-',
'audit-', 'flow-', 'http-', 'inline-',
];

/**
Expand All @@ -91,10 +95,16 @@ const REWRITTEN = [
'action-descriptor-resume-authority-default-flip',
'action-engine-facade-find-query-envelope',
'action-session-roles-to-positions',
'analytics-authorable-unknown-keys-refused',
'analytics-date-range-array-two-bounds-required',
'analytics-query-request-envelope-retired',
'analytics-time-dimension-date-range-vocabulary-closed',
'api-assembled-entry-split',
'api-error-retry-after-unit-in-key',
'api-runtime-config-durations-unit-in-key',
'api-runtime-create-withdrawn',
'audit-log-action-enum-retired',
'audit-log-action-restore-retired',
'data-driver-find-stream-retired',
'data-driver-query-omit-object',
'data-engine-batch-retired',
Expand Down Expand Up @@ -148,9 +158,17 @@ const REWRITTEN = [
'filter-query-face-comparands-refused-at-save',
'filter-regex-options-retired',
'filter-text-operator-declared-type-refused',
'flow-decision-branch-expression-absent-refused',
'flow-decision-edge-branching-first-match',
'flow-edge-condition-evaluated-slot-source-required',
'flow-predicate-slot-blank-string-refused',
'flow-retry-max-retries-required',
'hook-context-session-roles-retired',
'hook-register-empty-object-target-refused',
'hook-register-undispatched-lifecycle-event-refused',
'http-request-errors-total-retired',
'http-server-runtime-vocabulary-retired',
'inline-grid-column-currency-scale-refused',
'kernel-compatibility-matrix-estimated-migration-time-unit-in-key',
'kernel-context-preview-mode-retired',
'kernel-event-bus-retention-unit-in-key',
Expand All @@ -165,6 +183,14 @@ const REWRITTEN = [
'metadata-manager-config-cache-ttl-unit-in-key',
'metadata-manager-config-inert-cache-keys-retired',
'metadata-plugin-additional-types-retired',
'object-block-sort-item-array',
'object-grid-data-view-data-converged',
'object-grid-default-filters-rule-array',
'object-index-unknown-keys-refused',
'package-api-contracts-unmounted-entries-retired',
'package-install-request-unknown-keys-refused',
'package-rollback-response-retired',
'package-uninstall-explicit-all-tenants',
'plugin-activation-events-retired',
'plugin-auto-restart-never-reinitialised',
'plugin-manifest-contributes-dead-members-retired',
Expand All @@ -175,6 +201,12 @@ const REWRITTEN = [
'plugin-runtime-family-retired',
'plugin-security-scan-result-surface-retired',
'plugin-security-scanner-retired',
'rest-api-endpoint-handler-status-retired',
'rest-api-plugin-durations-unit-in-key',
'rest-server-config-dead-keys-retired',
'rest-server-openapi31-block-removed',
'sharing-execution-context-retired',
'sharing-rule-recipient-reconcile',
'system-cache-durations-unit-in-key',
'system-collaboration-durations-unit-in-key',
'system-failover-health-check-interval-unit-in-key',
Expand All @@ -199,6 +231,12 @@ const REWRITTEN = [
'ui-record-blocks-unknown-keys-refused',
'ui-reference-rail-unknown-keys-refused',
'ui-widget-i18n-family-retired',
'view-filter-rule-absent-value-refused',
'view-filter-rule-scalar-operator-array-refused',
'view-filter-rule-value-shaped-by-operator',
'view-management-protocol-retired',
'view-overlay-options-bag-judged',
'view-pagination-page-size-default-50',
];

interface FamilyEntry {
Expand Down
Loading
Loading