Skip to content

Commit 1a1241c

Browse files
bpamiriPeter Amiri
andauthored
fix(cli): repoint 15 dead v4-0-0-snapshot and 3.1.0 guide URLs at live v4 pages (#3281)
* fix(cli): repoint 15 dead v4-0-0-snapshot and 3.1.0 guide URLs at live v4 pages The pre-GA v4-0-0-snapshot docs slug was retired at GA, killing every templated guide URL still carrying it — including working-with-wheels/* paths that only ever existed in the v3 tree. Freshly scaffolded apps shipped comments and READMEs linking 404s, and two runtime CLI messages (Module.cfc install pointer, Doctor.cfc remediation) printed dead links. Repointed at live guides.wheels.dev/v4-0-0/ pages (every target curl-verified 200 before the swap): - scaffold config/settings.cfm + environment.cfm -> core-concepts/environments-and-configuration/ - scaffold config/routes.cfm + both ConfigRoutes.txt templates -> basics/routing/ - mailers/jobs/plugins template READMEs -> digging-deeper/sending-email/, background-jobs/, packages/ (also fixes the bare wheels.dev domain that should be guides.wheels.dev) - Module.cfc + Doctor.cfc runtime messages -> start-here/installing/ - cli/README.md -> command-line-tools/ - cli/src analyze/code.cfc report footer (wheels.dev/3.1.0 era) -> command-line-tools/wheels-commands/code-quality/ - demo app config/settings.cfm + environment.cfm (wheels.dev/3.1.0 era) -> core-concepts/environments-and-configuration/ ConfigRoutesStaleDocUrlSpec updated: its 'canonical' routing URL was itself the dead snapshot slug; now pins basics/routing/ and gains a structural guard that scans cli/lucli/templates/ plus the known runtime-message files for any reintroduction of retired URL shapes (v4-0-0-snapshot, wheels.dev/3.1.0, cfwheels.org-era hosts). Verified: wheels.tests.specs.cli suite passes locally on Lucee 7 + SQLite (127 specs) including the rewritten guard. Signed-off-by: Peter Amiri <petera@pai.com> * ci: install git before checkout in the CommandBox smoke container The commandbox-install-smoke job has failed with exit 127 on every run since it was added: the ortussolutions/commandbox image ships without git, so actions/checkout falls back to the REST-API tarball — which honors .gitattributes export-ignore, and this repo export-ignores tools/ and cli/. The workspace therefore never contained the build scripts and templates the job exists to test. Install git before checkout so it performs a real clone, and assert post-checkout that tools/build/scripts/prepare-base.sh is present so any future fallback is named precisely instead of failing as a missing-file error three steps later. Signed-off-by: Peter Amiri <petera@pai.com> * fix: repoint the demo app routes.cfm guide URL and cover it in the guard Addresses the wheels-bot review finding: config/routes.cfm:4 still shipped a retired wheels.dev/3.1.0 URL — the one file its two same-directory siblings' fix missed — and the new structural guard's extraFiles list didn't cover it, so the guard passed green while a dead link shipped. Repointed to guides.wheels.dev/v4-0-0/basics/routing/ (matching the scaffold template) and added config/routes.cfm to the guard's extraFiles. Also adds the changelog fragment the review noted was missing for this user-facing fix. Signed-off-by: Peter Amiri <petera@pai.com> --------- Signed-off-by: Peter Amiri <petera@pai.com> Co-authored-by: Peter Amiri <petera@pai.com>
1 parent 334a719 commit 1a1241c

18 files changed

Lines changed: 107 additions & 40 deletions

File tree

.github/workflows/commandbox-install-smoke.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,27 @@ jobs:
8080
# Pin the version the prepare scripts stamp into the artifacts.
8181
PKG_VERSION: "0.0.0-cismoke"
8282
steps:
83+
# The CommandBox image ships without git, and actions/checkout without git
84+
# falls back to the REST-API tarball — which honors .gitattributes
85+
# export-ignore, and this repo export-ignores tools/ and cli/. That left
86+
# this job's workspace without the very build scripts and templates it
87+
# exists to test (prepare-base.sh: No such file or directory, exit 127,
88+
# on every run since the job was added). Install git BEFORE checkout so
89+
# it performs a real clone.
90+
- name: Ensure git is available (checkout must not fall back to the export-ignored tarball)
91+
run: |
92+
command -v git >/dev/null 2>&1 || {
93+
apt-get update -y && apt-get install -y --no-install-recommends git ca-certificates
94+
}
95+
git --version
96+
8397
- uses: actions/checkout@v5
8498

99+
- name: Assert the export-ignored paths actually checked out
100+
run: |
101+
test -f tools/build/scripts/prepare-base.sh || {
102+
echo "::error::tools/ missing from workspace — checkout fell back to the export-ignored tarball again"; exit 1; }
103+
85104
# curl + jq are the only host tools the probes need; the CommandBox image
86105
# is Debian-based but minimal. Install defensively (no-op if present).
87106
- name: Ensure curl is available
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Repointed 16 dead `v4-0-0-snapshot`- and `3.1.0`-era guide URLs at live `guides.wheels.dev/v4-0-0/` pages: the scaffolded app's `config/settings.cfm`/`routes.cfm`/`environment.cfm` comments, three template READMEs (mailers/jobs/plugins), both `ConfigRoutes.txt` templates, two runtime CLI messages (`Module.cfc` install pointer, `Doctor.cfc` remediation), `cli/README.md`, the analyze report footer, and the demo app's config. `ConfigRoutesStaleDocUrlSpec` now structurally guards the template tree and known runtime-message files against reintroducing retired URL shapes.

cli/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Both installers depend only on Java 21, which is pulled in automatically.
2323

2424
## Commands
2525

26-
See [the CLI command guides](https://guides.wheels.dev/v4-0-0-snapshot/command-line-tools/) or run `wheels --help` in your terminal.
26+
See [the CLI command guides](https://guides.wheels.dev/v4-0-0/command-line-tools/) or run `wheels --help` in your terminal.
2727

2828
## Template Customization
2929

@@ -40,4 +40,4 @@ To customize a template:
4040
2. Modify it to match your needs
4141
3. The CLI will automatically use your custom template
4242

43-
See the [Template System Guide](https://guides.wheels.dev/v4-0-0-snapshot/command-line-tools/) for detailed documentation.
43+
See the [Template System Guide](https://guides.wheels.dev/v4-0-0/command-line-tools/) for detailed documentation.

cli/lucli/Module.cfc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6429,7 +6429,7 @@ component extends="modules.BaseModule" {
64296429
out(" unzip wheels-core-<version>.zip -d ~/.wheels/modules/wheels/vendor/");
64306430
out(" wheels new #appName#");
64316431
out("");
6432-
out("See: https://guides.wheels.dev/v4-0-0-snapshot/start-here/installing/");
6432+
out("See: https://guides.wheels.dev/v4-0-0/start-here/installing/");
64336433

64346434
throw(
64356435
type="Wheels.FrameworkNotFound",

cli/lucli/services/Doctor.cfc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ component {
660660
recs,
661661
"Install or reinstall the Wheels CLI with a complete distribution, "
662662
& "or set WHEELS_FRAMEWORK_PATH to a vendor/wheels/ directory. "
663-
& "See: https://guides.wheels.dev/v4-0-0-snapshot/start-here/installing/"
663+
& "See: https://guides.wheels.dev/v4-0-0/start-here/installing/"
664664
);
665665
} else if (findNoCase("Missing required directory", combined)) {
666666
arrayAppend(recs, "Run 'wheels new' to scaffold a complete project structure");

cli/lucli/templates/app/app/jobs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ wheels generate migration create_wheels_jobs_table
4848
wheels migrate latest
4949
```
5050

51-
See [Background Jobs](https://wheels.dev/v4-0-0-snapshot/digging-deeper/) in the guides for retries, backoff, priority queues, and the monitoring dashboard.
51+
See [Background Jobs](https://guides.wheels.dev/v4-0-0/digging-deeper/background-jobs/) in the guides for retries, backoff, priority queues, and the monitoring dashboard.

cli/lucli/templates/app/app/mailers/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ set(mailerSettings = {
3131
});
3232
```
3333

34-
See [Sending Email](https://wheels.dev/v4-0-0-snapshot/digging-deeper/sending-email/) in the guides for the full walkthrough.
34+
See [Sending Email](https://guides.wheels.dev/v4-0-0/digging-deeper/sending-email/) in the guides for the full walkthrough.

cli/lucli/templates/app/app/plugins/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ wheels stop && wheels start
1717

1818
Note: the install verb is `add`, not `install`.
1919

20-
See [Packages](https://wheels.dev/v4-0-0-snapshot/digging-deeper/) in the guides for details.
20+
See [Packages](https://guides.wheels.dev/v4-0-0/digging-deeper/packages/) in the guides for details.
2121

2222
## Migrating from a 3.x plugin
2323

cli/lucli/templates/app/app/snippets/ConfigRoutes.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// Use this file to add routes to your application and point the root route to a controller action.
44
// Don't forget to issue a reload request (e.g. reload=true) after making changes.
5-
// See https://guides.wheels.dev/v4-0-0-snapshot/handling-requests-with-controllers/routing for more info.
5+
// See https://guides.wheels.dev/v4-0-0/basics/routing/ for more info.
66

77
mapper()
88
// CLI-Appends-Here

cli/lucli/templates/app/config/environment.cfm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use this file to set the current environment for your application.
33
// You can set it to "development", "testing", "maintenance" or "production".
44
// Don't forget to issue a reload request (e.g. reload=true) after making changes.
5-
// See https://guides.wheels.dev/v4-0-0-snapshot/working-with-wheels/switching-environments for more info.
5+
// See https://guides.wheels.dev/v4-0-0/core-concepts/environments-and-configuration/ for more info.
66
77
// Below, we have set it to "development" for you since that is convenient when you are building your application.
88
// We recommend that you change this to "production" when you're running your application live.

0 commit comments

Comments
 (0)