Skip to content
Draft
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
8 changes: 5 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ VitePress build. It is also what CI runs, on every pull request
- every `require("@cap2ui5/cds-plugin")` or `import { … } from
"@cap2ui5/cds-plugin"` **inside a code fence** names only what the package
really exports (and two dead packages are reported, in either form: the
port's `abap2UI5/…` and the plugin's withdrawn old name `cap2ui5`),
port's `abap2UI5/…` and the plugin's old name `cap2ui5`, deprecated on npm),
- every `cds.requires.cap2ui5.<option>` is an option the plugin defines (and
0.1.0's `cds.cap2ui5.<option>` is reported as the deprecated place),
- every `1.x.y` release number is the pinned runtime release,
Expand Down Expand Up @@ -66,8 +66,10 @@ On npm since 2026-09-29: `@cap2ui5/cds-plugin@0.3.1` (Node ≥ 22, peer
`@sap/cds` ≥ 9), published by the npm organisation `cap2ui5`, and
`@cap2ui5/samples@0.1.0`. The plugin pins `@abap2ui5/node-runtime@1.145.0`
(on npm since 2026-09-27) **exactly**. Up to 0.2.0 the plugin was the unscoped
package `cap2ui5`; it is withdrawn from npm (0.2.0 never reached it), so the
site names it only as the old name. What did NOT change name: the
package `cap2ui5`. On npm that name is now only a deprecated notice,
`cap2ui5@0.1.1`, whose `require` throws and whose bin exits naming
`@cap2ui5/cds-plugin` (0.2.0 never reached npm), so the site names it only as
the old name. What did NOT change name: the
configuration `cds.requires.cap2ui5`, `cds add cap2ui5`, the bin
`npx cap2ui5 abap2js`, the entity `cap2ui5.Drafts` and the logger `cap2ui5`. The runtime package was renamed from
`@abap2ui5/runtime` before its first publish — the old name never existed on
Expand Down
3 changes: 2 additions & 1 deletion docs/guide/ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ All three are on npm: `@cap2ui5/cds-plugin` 0.3.1 (Node ≥ 22, `@sap/cds` ≥ 9
`@abap2ui5/node-runtime` 1.145.0 (Node ≥ 22), which the plugin pins exactly,
and `@cap2ui5/samples` 0.1.0. `npm add @cap2ui5/cds-plugin` installs the first two — see the
[Quickstart](./getting-started). Up to 0.2.0 the plugin was the unscoped
package `cap2ui5`, which is withdrawn from npm.
package `cap2ui5`. On npm that name is now a deprecated notice (0.1.1) and
nothing else: requiring it throws an error that names `@cap2ui5/cds-plugin`.

## What the plugin does and does not own

Expand Down
5 changes: 3 additions & 2 deletions docs/guide/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@ Your own `server.js`, if you have one, is not touched. Nothing is generated
into your repository, and there are no frontend files to serve.

::: info Coming from the package `cap2ui5`
Up to 0.2.0 the plugin was the unscoped package `cap2ui5`, which is withdrawn
from npm. A project that has it swaps it:
Up to 0.2.0 the plugin was the unscoped package `cap2ui5`. On npm that name is
now a deprecated notice that only throws an error naming the new package. A
project that has it swaps it:

```bash
npm rm cap2ui5 && npm add @cap2ui5/cds-plugin
Expand Down
15 changes: 8 additions & 7 deletions scripts/verify-refs.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@
* package actually exports, and a "@cap2ui5/cds-plugin/<sub>" specifier
* lands on a file that exists. Two dead packages are reported by name,
* in either form: "abap2UI5/…", the port's package, and "cap2ui5", the
* plugin's name up to 0.2.0, withdrawn from npm.
* plugin's name up to 0.2.0, now a deprecated notice on npm.
* 5. every plugin option named as `cds.requires.cap2ui5.<key>` is a key the plugin
* really defines, every three-part release number (1.x.y) is the runtime
* release the checkout pins or an allowlisted historical number, and a
* `"@cap2ui5/cds-plugin": "^x.y.z"` a page tells a reader to write is a
* range the plugin's own version actually falls in (and a dependency on
* the withdrawn `"cap2ui5"` is reported whatever its range).
* the deprecated `"cap2ui5"` is reported whatever its range).
*
* Check 4 exists because the first three did not see the largest defect this
* site ever had. Fenced blocks were skipped wholesale as "examples, not
Expand Down Expand Up @@ -221,8 +221,9 @@ const PLUGIN_VERSION = (() => {
} catch { return null; }
})();
const CAP2UI5_DEP_RE = /"@cap2ui5\/cds-plugin"\s*:\s*"[~^]?(\d+\.\d+)\.[\dx]+"/g;
// The unscoped package `cap2ui5` was withdrawn from npm with 0.3.0 - a
// dependency on it is a line a reader cannot install, whatever its range.
// The unscoped package `cap2ui5` is, since 0.3.0, only a deprecated notice on
// npm whose require( ) throws - a dependency on it installs nothing a reader
// can use, whatever its range.
const WITHDRAWN_DEP_RE = /"cap2ui5"\s*:\s*"[~^]?\d/g;
const minor = (v) => String(v).split(".").slice(0, 2).join(".");

Expand Down Expand Up @@ -268,7 +269,7 @@ const RELEASE_RE = /\b1\.\d{2,3}\.\d+\b/g;
const CLASS_RE = /`(z2ui5_(?:cl|if|cx)_[a-z0-9_]+)(?![a-z0-9_])/gi;
// require("@cap2ui5/cds-plugin"), require("@cap2ui5/cds-plugin/lib/…"), and two
// dead packages: the port's `abap2UI5` and the plugin's own old name `cap2ui5`,
// withdrawn from npm with 0.3.0.
// a deprecated notice on npm since 0.3.0.
const PKG = "@cap2ui5/cds-plugin";
const REQUIRE_RE = /require\(\s*["'`](@cap2ui5\/cds-plugin|cap2ui5|abap2UI5)(?:\/([^"'`]+))?["'`]\s*\)/gi;
// `const { defineApp, t } = require("@cap2ui5/cds-plugin")` — the names, not just the path
Expand Down Expand Up @@ -326,7 +327,7 @@ for (const file of markdownFiles(DOCS)) {
}

for (const m of line.matchAll(WITHDRAWN_DEP_RE)) {
add(file, n, `tells a reader to depend on "cap2ui5", which was withdrawn from npm `
add(file, n, `tells a reader to depend on "cap2ui5", which is only a deprecated notice on npm `
+ `- the package is "${PKG}"`);
}

Expand Down Expand Up @@ -362,7 +363,7 @@ for (const file of markdownFiles(DOCS)) {
continue;
}
if (pkg.toLowerCase() === "cap2ui5") {
add(file, n, `${how} "${spec}" is the plugin's OLD name, withdrawn from npm - `
add(file, n, `${how} "${spec}" is the plugin's OLD name, only a deprecated notice on npm - `
+ `the package is "${PKG}"`);
continue;
}
Expand Down
Loading