From fec4873df2ff7399e654b4388951e3a3fe8dee88 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 6 Nov 2026 15:34:21 +0000 Subject: [PATCH 1/2] Quickstart: which tag for which system, and the two-week-old numbers Step 1 gets a table - 7.50 and newer, 7.02 to 7.4x, ABAP Cloud - with what to pull for each and how a tag is chosen in abapGit, and says that the release GitHub marks Latest is only the one published last: the -702 build of a version is published after the version itself. The sample count leaves the prose (the catalogue counts itself), the tutorial has twelve steps, not ten. /docs/get_started/ answers with the Quickstart instead of a 404, and the site publishes a sitemap. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_014YZFmFUSt4hnK572fuJp8R --- docs/.vitepress/config.mjs | 3 +++ docs/get_started/about.md | 2 +- docs/get_started/quickstart.md | 20 ++++++++++++++++---- docs/public/get_started/index.html | 23 +++++++++++++++++++++++ 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 docs/public/get_started/index.html diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 1ff6a892..dab03d75 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -46,6 +46,9 @@ export default defineConfig({ * The raw markdown is unaffected: publicDir copies the files regardless of * whether they are also treated as pages. */ srcExclude: ["public/**"], + // /docs/sitemap.xml, one entry per page: the root's robots.txt + // (abap2UI5/abap2UI5.github.io) names it next to the sister sites' ones. + sitemap: { hostname: SITE_URL }, head: [ ["link", { rel: "shortcut icon", href: "/docs/favicon.ico" }], [ diff --git a/docs/get_started/about.md b/docs/get_started/about.md index 46e2c2c2..3dce6aee 100644 --- a/docs/get_started/about.md +++ b/docs/get_started/about.md @@ -30,7 +30,7 @@ A finished app looks like any other UI5 app, because it is one — a selection s ![An abap2UI5 app: a selection form above a table of invoices, with a dialog editing one row](/tutorials/walkthrough-preview.webp) -→ *The [Tutorial](/tutorials/) grows exactly this app in ten steps, each one a complete class you can run in the browser — then takes it to production, and under unit tests* +→ *The [Tutorial](/tutorials/) grows exactly this app in twelve steps, each one a complete class you can run in the browser — then takes it to production, and under unit tests* ## Background Since launching in 2023, abap2UI5 has grown from a small side project into a community-driven framework. The framework absorbs frontend complexity, so you can focus on business logic with your existing ABAP skills. Each app ships as an [abapGit](https://abapgit.org) project, so installation across systems needs no separate frontend deployment. diff --git a/docs/get_started/quickstart.md b/docs/get_started/quickstart.md index df6110ba..1f2ded33 100644 --- a/docs/get_started/quickstart.md +++ b/docs/get_started/quickstart.md @@ -12,7 +12,7 @@ No system at hand? Two ways to see abap2UI5 run before anything is installed: framework in your browser: write ABAP on the left, watch the app run on the right, nothing to install. - The [**sample catalog**](https://abap2ui5.github.io/samples-site/) - lists over 700 working apps, each with its ABAP printed in full and a + lists hundreds of working apps, each with its ABAP printed in full and a button that runs it - a live demo of every pattern the cookbook describes. Both are also where to send a colleague who wants to see it before reading on. @@ -35,9 +35,21 @@ Four things the three steps below assume: ## 1. Install the Framework via abapGit Pull [abap2UI5](https://github.com/abap2UI5/abap2UI5) with -[abapGit](https://abapgit.org). For anything beyond a first look, pull a -[release](https://github.com/abap2UI5/abap2UI5/releases/) rather than `main` — -see [Productive Usage](/configuration/productive_usage) for why. +[abapGit](https://abapgit.org). Which branch or tag depends on the system: + +| Your system | What to pull | Where it is explained | +| --- | --- | --- | +| ABAP 7.50 or newer, on premise or private cloud | The newest tag without a suffix, `X.Y.Z` - or `main` for a first look | [Versioning](/configuration/versioning) | +| ABAP 7.02 to 7.4x | The same version with the suffix `-702`, `X.Y.Z-702` - a downported build of the same release | [Downporting](/advanced/downporting) | +| BTP ABAP Environment or S/4 Public Cloud | The newest tag without a suffix, with abapGit for Eclipse | [S/4 Public Cloud](/configuration/s4_public_cloud) | + +On the [releases page](https://github.com/abap2UI5/abap2UI5/releases/) every +version appears twice, once with the suffix and once without; the one GitHub +marks *Latest* is not the newer, only the one published last. In abapGit a tag +is chosen on the repository's page: *Branch* → *Switch* → *Tags*, or the tag +typed into the *Branch* field of the online repository. For anything beyond a +first look, pull a tag rather than `main` - see +[Productive Usage](/configuration/productive_usage) for why. ![abapGit repository installation screen for abap2UI5](/get_started/image.webp) diff --git a/docs/public/get_started/index.html b/docs/public/get_started/index.html new file mode 100644 index 00000000..bda6a213 --- /dev/null +++ b/docs/public/get_started/index.html @@ -0,0 +1,23 @@ + + + + + + Page moved - abap2UI5 + + + + + + +

+ Getting started with abap2UI5 begins at the + Quickstart. +

+ + From 38113021e7e3e446647aeaebc82998de9bc9a855 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 7 Nov 2026 11:20:45 +0000 Subject: [PATCH 2/2] Point every install page at the Quickstart's tag table; unique anchors The downporting, installation, S/4 Public Cloud, transport, versioning and About pages said 'pull the 702 branch' or 'pull a release' without which one; they name the tag (X.Y.Z or X.Y.Z-702) and link the table. The runbook link in Sizing used an anchor VitePress never generates. The CAP section of Agents repeated three headings of the add-on section and got anchors with -1 suffixes; they say CAP now. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_014YZFmFUSt4hnK572fuJp8R --- docs/advanced/agents.md | 6 +++--- docs/advanced/downporting.md | 4 ++-- docs/configuration/installation.md | 2 +- docs/configuration/s4_public_cloud.md | 2 +- docs/configuration/sizing.md | 2 +- docs/configuration/transport.md | 12 +++++++----- docs/configuration/versioning.md | 4 +++- docs/get_started/about.md | 4 ++-- 8 files changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/advanced/agents.md b/docs/advanced/agents.md index 9bb61e24..d0d2d84a 100644 --- a/docs/advanced/agents.md +++ b/docs/advanced/agents.md @@ -393,7 +393,7 @@ Instead of `true`, an object configures it: A key the endpoint does not know is refused at start, because a misspelled `forbidden` would otherwise leave the event open. -### Opting an app in +### Opting a CAP app in A JavaScript app opts in where it is defined, with the `agent` option of `defineApp`, and classifies its events there: @@ -413,7 +413,7 @@ the app on the screen and the app the session was started with, so a popup an app calls is covered by that app's rules. An action classified `confirm` or `forbidden` carries `"policy"` in the snapshot. -### Security model +### Security model of the CAP endpoint - **Off by default**, and an app is reachable only when it opted in or the configuration names it. @@ -463,7 +463,7 @@ restart are lost, as a browser tab's are. Only the newest session of its line, with its draft not expired, is restored, and only for the user whose agent reached it. -### Connecting a client +### Connecting a client to CAP ```sh claude mcp add --transport http bookshop http://localhost:4004/rest/root/z2ui5/mcp \ diff --git a/docs/advanced/downporting.md b/docs/advanced/downporting.md index 26d6518a..97ab1834 100644 --- a/docs/advanced/downporting.md +++ b/docs/advanced/downporting.md @@ -7,7 +7,7 @@ description: abap2UI5 below ABAP 7.50 - the downported branch supports NetWeaver abap2UI5 works right away on ABAP 7.50 and later. On an earlier release, install the downported version, which supports R/3 NetWeaver 7.02 and later. ## Branch -To install on an older system, use the `702` branch: +To install on an older system, use the `702` branch - or rather its tag, `X.Y.Z-702`, which the [Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit) table names next to the tag of every other system: | Branch | System | |-----------| ----------------------------| | main | S/4 Public Cloud, BTP ABAP Environment, S/4 Private Cloud, S/4 On-Premise, R/3 NetWeaver ≥7.50 | @@ -17,7 +17,7 @@ Some sample projects and other repositories also ship a downported version. Chec ## Installation The installation on an old release follows the normal [Quickstart](/get_started/quickstart) flow with two adjustments: -1. Pull the `702` branch with abapGit — abapGit itself is 7.02-compatible, so deployment to old ECC machines works the same way as everywhere else +1. Pull the `X.Y.Z-702` tag with abapGit (the `702` branch itself is force-pushed on every rebuild, so a tag is what to pin) — abapGit itself is 7.02-compatible, so deployment to old ECC machines works the same way as everywhere else 2. Create the HTTP handler (SICF service) with the 7.02-compatible handler syntax instead of the modern snippet After that, call your HTTP handler from the browser and abap2UI5 is ready for use — even on your old machine. diff --git a/docs/configuration/installation.md b/docs/configuration/installation.md index 45a61bc3..ddfa8ae2 100644 --- a/docs/configuration/installation.md +++ b/docs/configuration/installation.md @@ -20,7 +20,7 @@ The setup in `S/4 On-Premise` matches `S/4 Private Cloud`. Follow the [Fiori Lau The setup matches `S/4 Private Cloud`. Depending on your release, you might also be able to add the apps to Launchpads. Follow the [Fiori Launchpad](/configuration/launchpad) guide. ## R/3 NetWeaver (<7.50) -For R/3 NetWeaver versions below 7.50, install the downported version with syntax tweaks for earlier releases. abap2UI5 runs on releases as far back as 7.02. See [Downporting](/advanced/downporting) for details. +For R/3 NetWeaver versions below 7.50, install the downported version with syntax tweaks for earlier releases. abap2UI5 runs on releases as far back as 7.02. The tag to pull is `X.Y.Z-702`, the downported build of the same release - the [Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit) table lists it next to the tag of every other system. See [Downporting](/advanced/downporting) for details. ## BTP ABAP Environment The setup in `BTP ABAP Environment` matches `S/4 Public Cloud`. Follow the [S/4 Public Cloud](/configuration/s4_public_cloud) guide. diff --git a/docs/configuration/s4_public_cloud.md b/docs/configuration/s4_public_cloud.md index 377a7d2e..bbe55267 100644 --- a/docs/configuration/s4_public_cloud.md +++ b/docs/configuration/s4_public_cloud.md @@ -16,7 +16,7 @@ covers both. To install abap2UI5, follow these steps: S/4 Public Cloud supports only the ADT abapGit version. abap2UI5 contains only classes, interfaces, and tables, so you can pull it without issues. -Use the standard installation process with [abapGit for Eclipse](https://eclipse.abapgit.org/). +Use the standard installation process with [abapGit for Eclipse](https://eclipse.abapgit.org/), and pull the newest tag without a suffix, `X.Y.Z` - the [Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit) table says which tag belongs to which system. ::: warning **Two choices you cannot change later without relinking** **Folder logic must be `PREFIX`.** It is what `.abapgit.xml` declares, and the repository's package tree is built for it. diff --git a/docs/configuration/sizing.md b/docs/configuration/sizing.md index f19fdf4e..bf9f6a9e 100644 --- a/docs/configuration/sizing.md +++ b/docs/configuration/sizing.md @@ -88,7 +88,7 @@ expiry the one the exit holds. The number to watch in operation is the row count against this estimate; a count well above it means the cleanup is not running (no app has been started for a while) or that an app writes much larger rows than assumed - the cockpit's *Drafts & Housekeeping* tab shows -both ([Basis Runbook](/configuration/runbook#the-draft-table-z2ui5_t_01)). +both ([Basis Runbook](/configuration/runbook#the-draft-table-z2ui5-t-01)). Two things the estimate ignores, on purpose: a stateful app writes rows only on the paths that keep a bookmarkable draft, and the cleanup is a `DELETE` diff --git a/docs/configuration/transport.md b/docs/configuration/transport.md index d2a09461..fdb940e6 100644 --- a/docs/configuration/transport.md +++ b/docs/configuration/transport.md @@ -23,11 +23,13 @@ what does not travel and is set per system instead. | The Admin Cockpit (optional) | package of its own, tables `Z2UI5_T_CK_*` | yes; its administrators and settings are table rows and are set per system | | Your apps | one class per app, plus the texts, tables and other objects it uses | yes | -Pull the framework with the folder logic `PREFIX` that its `.abapgit.xml` -declares; the sub-package names are derived from the root package you pick, -and a long root name leaves the deeper ones no room (the package name is -capped at 30 characters) - [S/4 Public Cloud](/configuration/s4_public_cloud) -shows the dialog. +Pull the framework - a release tag, the one the +[Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit) +table names for the system - with the folder logic `PREFIX` that its +`.abapgit.xml` declares; the sub-package names are derived from the root +package you pick, and a long root name leaves the deeper ones no room (the +package name is capped at 30 characters) - +[S/4 Public Cloud](/configuration/s4_public_cloud) shows the dialog. ## The Order diff --git a/docs/configuration/versioning.md b/docs/configuration/versioning.md index c32d1b03..a5e6728b 100644 --- a/docs/configuration/versioning.md +++ b/docs/configuration/versioning.md @@ -97,7 +97,9 @@ rest. `npx @abap2ui5/linter src --fix-dry-run` shows what it would change. 3. **Pull the tag** on the development system: in abapGit, switch the repository to the new tag and pull. Pull a tag, not `main` - `main` may - carry an API no release has yet. + carry an API no release has yet. Which tag belongs to which system + (`X.Y.Z`, or `X.Y.Z-702` below 7.50) is the table in the + [Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit). 4. **The frontend, if a BSP is installed.** An installation that only uses the ICF node has nothing else to pull: the frontend is embedded in the package (`src/01/03`). An installation with the frontend as a BSP in the diff --git a/docs/get_started/about.md b/docs/get_started/about.md index 3dce6aee..06ddba89 100644 --- a/docs/get_started/about.md +++ b/docs/get_started/about.md @@ -80,8 +80,8 @@ Works with both ABAP Cloud and Standard ABAP: - S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP) - R/3 NetWeaver AS ABAP 7.02 or later (Standard ABAP) -Below 7.50 you pull the `702` branch instead of `main` — same features, generated -from it automatically. See [Downporting](/advanced/downporting). +Below 7.50 you pull the `X.Y.Z-702` tag instead of `X.Y.Z` — same features, generated +from `main` automatically; the [Quickstart](/get_started/quickstart#_1-install-the-framework-via-abapgit) table says which tag belongs to which system. See [Downporting](/advanced/downporting). ### UI5 Versions The frontend is UI5 itself, loaded at bootstrap like it is for any other UI5 app. abap2UI5 bootstraps OpenUI5 from its public CDN by default; a single exit points it at SAPUI5, at a pinned version, or at the UI5 already delivered by your own system — which is what a system without internet access uses. `1.71` is the oldest supported release, and every change is tested against UI5 2.x as well.