Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
547 commits
Select commit Hold shift + click to select a range
bd2b487
fix(job): match the EnqueueFailed hint to the deferred enqueue (#4312)
bpamiri Oct 5, 2026
7a89e85
feat(model): run IN lists past SQL Server's parameter limit as one ST…
bpamiri Oct 5, 2026
914231f
perf: memoise pluralize() and singularize() per application (#4184)
bpamiri Oct 5, 2026
242d6c3
feat(cli): wheels migrate unlock shows and clears the migration lock …
bpamiri Oct 5, 2026
70644ec
test(mapper): migrate mapper-area specs to shared route helpers (PR2)…
bpamiri Oct 5, 2026
9c540f9
fix(model): take SQL Server advisory locks for the session, outside a…
bpamiri Oct 5, 2026
752eebe
docs(changelog): drop trailing periods added to nine fragments (#4328)
bpamiri Oct 5, 2026
61e1b05
fix(test): auto-detect TestClient/BrowserTest base URL from the serve…
bpamiri Oct 5, 2026
d6831b0
test(dispatch,global,security): migrate leak-class specs to shared ro…
bpamiri Oct 5, 2026
727c33b
feat(model): run long date and timestamp IN lists on SQL Server throu…
bpamiri Oct 5, 2026
c325b7a
fix(model): take MySQL and PostgreSQL advisory locks with the shared …
bpamiri Oct 5, 2026
b4b5ed6
fix(model): retry a failed SQL Server probe after a back-off (#4332)
bpamiri Oct 5, 2026
b5ccb4e
fix(model): release withAdvisoryLock(transaction=true) lock when the …
bpamiri Oct 5, 2026
e88227a
fix(model): compare SQL Server date and time conditions in the column…
bpamiri Oct 5, 2026
7e82f21
docs(changelog): fold the abort-release fix into the transaction-lock…
bpamiri Oct 5, 2026
c9722ed
fix(model): roll back a Wheels transaction when the request ends with…
bpamiri Oct 5, 2026
5e04f3f
docs(web/guides): abort inside a Wheels transaction rolls back on Box…
bpamiri Oct 5, 2026
179125c
fix(core): run abort-surviving cleanup in a catch-free finally; guard…
bpamiri Oct 5, 2026
ca4db7b
refactor(model): drop the redundant abort rollback from the transacti…
bpamiri Oct 5, 2026
35fa491
docs(web): bring the wheels.dev home page up to date with 4.x (#4339)
bpamiri Oct 5, 2026
f75dc78
feat(cli): wheels lookup searches the API reference and guides offlin…
bpamiri Oct 5, 2026
e127df7
feat(web): self-host the Inter and JetBrains Mono brand fonts (#4341)
bpamiri Oct 5, 2026
b5b6eb0
fix(cli): migrate unlock's refusal names the holder and --force in it…
bpamiri Oct 5, 2026
60f3af3
fix(model): read the sort direction in an order string whatever its c…
bpamiri Oct 5, 2026
58667cc
fix(web): keep the packages grid inside the page; add italic Inter an…
bpamiri Oct 5, 2026
987c3ae
feat(cli): wheels new writes .mcp.json and .opencode.json by default …
bpamiri Oct 5, 2026
a31fb4c
docs: refresh context7.json versions and folders (#4351)
bpamiri Oct 5, 2026
85ae232
docs(cli): show the full .opencode.json entry in the MCP integration …
bpamiri Oct 5, 2026
ca1ea83
feat(model): report what the last save wrote with savedChanges() (#4349)
bpamiri Oct 5, 2026
033f834
feat(web): llms.txt, llms-full.txt, llms-small.txt and per-page Markd…
bpamiri Oct 5, 2026
1bce259
fix(test): warn when a test run switches the live application's datas…
bpamiri Oct 5, 2026
b2c0cc8
fix(web): return a real 404 for unknown paths on wheels.dev, blog and…
bpamiri Oct 5, 2026
a01ae17
fix(test): match the test-runner path prefix only in the test-context…
bpamiri Oct 5, 2026
f3f7967
feat(test): $testClient().fromAddress() sets the request client addre…
bpamiri Oct 5, 2026
435c778
build(web): make the astro specifiers match the Astro 6 the sites bui…
bpamiri Oct 5, 2026
1993b8b
build: refresh tooling lockfiles (#4363)
bpamiri Oct 5, 2026
7dafd74
docs(examples): bring the example READMEs to Wheels 4.x and drop twee…
bpamiri Oct 5, 2026
bf6d57e
docs(web): name the right version on the 4.1 and 4.2 guides landing p…
bpamiri Oct 5, 2026
5c2746d
test(cli): NewPinnedPortsSpec judges a moved shutdown port by the CLI…
bpamiri Oct 5, 2026
59c4049
ci(rustcfml): skip known-bad engine releases in the version check; lo…
bpamiri Oct 5, 2026
b745451
feat(cli): wheels jobs enqueue adds a job from the command line, now …
bpamiri Oct 5, 2026
8d6d799
test: put back the model class state four specs change (#4365)
bpamiri Oct 5, 2026
726b400
feat(test): assert how many SQL statements a spec's call sends (#4357)
bpamiri Oct 5, 2026
5845af8
docs: cover soft delete, dependents, bulk writes, channels and upgrad…
bpamiri Oct 5, 2026
2ddcd28
perf(plugins): skip $initializeMixins work when the class has no mixi…
bpamiri Oct 5, 2026
33e258f
fix(test): isolate the testbox/tests_testbox runner URLs and refuse u…
bpamiri Oct 5, 2026
8afa24a
fix(controller): cookie-stored CSRF tokens work on Adobe CF (#4380)
bpamiri Oct 5, 2026
af79953
feat(model): add escapeForLike() to escape LIKE wildcards in a search…
bpamiri Oct 5, 2026
006710f
feat(events): development errors as JSON or Markdown for agents and s…
bpamiri Oct 5, 2026
0efe228
fix(model): skip commit callbacks when callbacks = false (#4378)
bpamiri Oct 5, 2026
eb99bc9
fix(model): run insertAll() and upsertAll() batches in one transactio…
bpamiri Oct 5, 2026
1252e48
feat(model): add public forgetCachedQueries() to clear the per-reques…
bpamiri Oct 5, 2026
fe819db
docs(web/blog): 2.x to 4.x: why it's two passes, and the map
bpamiri Oct 5, 2026
24fab28
build(web): upgrade Astro to 7 and Starlight to 0.42 (#4362)
bpamiri Oct 5, 2026
a5c5a4e
fix(cli): deploy binds space-form values, rejects an unknown role, pr…
bpamiri Oct 5, 2026
f9200c3
ci: pin GitHub-hosted Linux jobs to ubuntu-24.04 (#4402)
bpamiri Oct 5, 2026
3067d1f
fix(cli): start changes nothing when it has nothing to start, and hon…
bpamiri Oct 5, 2026
1de7926
fix(cli): deploy build push honours the builder block; logs and prune…
bpamiri Oct 5, 2026
42d1d29
test(channel): stop creating MockBox's stub directory in a channel sp…
bpamiri Oct 5, 2026
f966923
fix(cli): surface runner errors, exit non-zero on refusals, and fix c…
bpamiri Oct 5, 2026
0735e92
chore(docs): auto-refresh blog visual baseline after content change (…
wheels-bot[bot] Oct 5, 2026
3d34720
fix(docs): run verify:docs and its harness tests in a throwaway CLI h…
bpamiri Oct 5, 2026
791d77c
docs(cli): align command-line guides with actual CLI behaviour (#4404)
bpamiri Oct 5, 2026
ec87099
fix(cli): upgrade check dates the renderPage rename to 2.0 and flags …
bpamiri Oct 5, 2026
848a7d6
fix(migrator): stop migrate diff misreporting SQLite date columns and…
bpamiri Oct 5, 2026
0412b95
fix(cli): show applied-at in db status and correct command help text …
bpamiri Oct 5, 2026
e168f29
test(cli): point the test-runner endpoint spec at a small spec direct…
bpamiri Oct 5, 2026
18dde9f
docs: note bulk-write transactions and callbacks=false in the app gui…
bpamiri Oct 5, 2026
3988455
fix(migrator): read the pre-3.0 null column option as an alias of all…
bpamiri Oct 5, 2026
49c638e
fix(model): clearChangeInformation(property) refreshes only that prop…
bpamiri Oct 5, 2026
af18152
test(model): fix escapeForLikeSpec adapter-restore when the key was a…
bpamiri Oct 5, 2026
f1be9dc
fix(test): restore processRequest() state on every exit, not only on …
bpamiri Oct 5, 2026
7aeb4e3
fix(docs): remove the verify:docs CLI home on Ctrl-C, keep downloads …
bpamiri Oct 5, 2026
fc2585e
docs(web/blog): announce the first 2.x to 4.x series post (#4442)
bpamiri Oct 5, 2026
5cdd658
feat: add appCacheFetch() and friends for caching your own data (#4388)
bpamiri Oct 5, 2026
886b616
docs(blog): record discussion announcements (#4446)
wheels-bot[bot] Oct 5, 2026
6473785
fix(model): quote order="table.column" the way order="column" is quot…
bpamiri Oct 5, 2026
d7ad970
feat(test): add a clock seam and travelTo() for deterministic time te…
bpamiri Oct 5, 2026
90bfaa9
fix(docs): start the fixture server before tutorial CLI steps that ne…
bpamiri Oct 5, 2026
50a9cc5
fix(docs): bound every harness command so a stuck wheels can't hang t…
bpamiri Oct 6, 2026
47308cc
fix(sse): resume from the lastEventId url param and trim the events f…
bpamiri Oct 6, 2026
43d052b
fix(cli): cover subfolder models in migrate diff and write the seed s…
bpamiri Oct 6, 2026
0acd228
fix(di): key the Injector's circular-dependency guard per thread (#4449)
bpamiri Oct 6, 2026
a722945
fix(model): clear the whole per-request query cache on any ORM write …
bpamiri Oct 6, 2026
1056eea
fix(docs): run the verify-docs counts test serially and show its outp…
bpamiri Oct 6, 2026
9fc4177
docs(cli): describe deploy build, logs and prune as they now work (#4…
bpamiri Oct 6, 2026
ee93247
fix(model): keep soft deletes reversible and make softDelete=false a …
bpamiri Oct 6, 2026
648d3c8
fix(docs): stagger wheels JVM starts so concurrent blocks don't race …
bpamiri Oct 6, 2026
f64bc0c
feat(model): report unknown arguments to framework declarations (#4393)
bpamiri Oct 6, 2026
05eeac7
feat(job): enqueue(transactional = false) survives a rollback (#4400)
bpamiri Oct 6, 2026
d74df20
fix(controller): read the flash cookie's value when this request wrot…
bpamiri Oct 6, 2026
32b1bdd
fix(model): dependent deletes follow callbacks = false; check depende…
bpamiri Oct 6, 2026
b4b611b
docs(test): describe recorded queries and appCache keys accurately in…
bpamiri Oct 6, 2026
29d87d0
docs: softDelete=false alone purges already soft-deleted rows (#4454)
bpamiri Oct 6, 2026
735bf0f
docs: order="table.column" is quoted like order="column" (#4456)
bpamiri Oct 6, 2026
ae1bbe5
docs: note callbacks=false and declare-time checks for dependent= (#4…
bpamiri Oct 6, 2026
f5c9025
feat(test): TestClient sends the CSRF token to protected actions, lik…
bpamiri Oct 6, 2026
141644a
feat(model): foreignType on polymorphic associations (#4398)
bpamiri Oct 6, 2026
c610da9
fix(model): polymorphic associations find underscore-shaped columns (…
bpamiri Oct 6, 2026
78851a3
docs(web): use a variable receiver for wheels.Job in the 4.2 job exam…
bpamiri Oct 6, 2026
d825b50
docs: use named arguments in the agent-docs examples and fix the 4.1 …
bpamiri Oct 6, 2026
d9dd420
test: guard against method calls on a parenthesized new (#4462)
bpamiri Oct 6, 2026
cc40e8e
fix(controller): carry the CSRF cookie in base64url so no engine can …
bpamiri Oct 6, 2026
240c81c
docs: polymorphic associations now resolve underscore-shaped columns …
bpamiri Oct 6, 2026
9d869ea
docs(web/blog): Pass 1: 2.x to 3.0, the layout move
bpamiri Oct 6, 2026
67fb202
chore(docs): auto-refresh blog visual baseline after content change (…
wheels-bot[bot] Oct 6, 2026
3686d31
docs(web/blog): announce the second 2.x to 4.x series post (#4466)
bpamiri Oct 6, 2026
b83975f
docs(blog): record discussion announcements (#4468)
wheels-bot[bot] Oct 6, 2026
f67eeda
docs(web/blog): Pass 2: 3.x to 4.1 with `wheels upgrade check`
bpamiri Oct 7, 2026
cfb68d8
chore(docs): auto-refresh blog visual baseline after content change (…
wheels-bot[bot] Oct 7, 2026
8b87be6
docs(web/blog): announce the third 2.x to 4.x series post (#4472)
bpamiri Oct 7, 2026
b723c9c
docs(blog): record discussion announcements (#4474)
wheels-bot[bot] Oct 7, 2026
420ffb4
fix(job): fence job completion, retry and failure with a per-claim to…
bpamiri Oct 7, 2026
ba2d9a1
feat(job): de-duplicate enqueue with uniqueKey (#4488)
bpamiri Oct 8, 2026
bff44fe
fix: build app paths from public/Application.cfc's own directory (#4500)
bpamiri Oct 8, 2026
c575f04
feat(job): heartbeat() and idempotency-aware reaping (#4490)
bpamiri Oct 8, 2026
7a4f74a
feat(job): per-host concurrency cap, drain/resume and JobRunner.tick(…
bpamiri Oct 8, 2026
631f1a8
feat(cli): wheels jobs drain [--wait] and resume for deploys (#4492)
bpamiri Oct 8, 2026
47ce1a8
fix(job): run processQueue() through the job worker (#4495)
bpamiri Oct 8, 2026
d1b8df2
feat(job): recurring schedules (cron and intervals) with one job per …
bpamiri Oct 8, 2026
3a76104
fix(job): explain uniqueKey index failures on old SQL Server levels (…
bpamiri Oct 8, 2026
db327a1
ci: let the install smoke accept a LuCLI tested with the release line…
bpamiri Oct 8, 2026
79df940
test(cli): keep the shared sshd fixture independent of the checkout t…
bpamiri Oct 8, 2026
e63973b
feat(job): exclusive jobs and concurrency keys on a shared lease lock…
bpamiri Oct 8, 2026
f3ed23b
ci: update brew after tapping homebrew/core in the Linuxbrew install …
bpamiri Oct 8, 2026
87bbd01
feat(job): lifecycle hooks, an app-wide failure hook, and a stored re…
bpamiri Oct 8, 2026
368535c
docs(web/blog): The file the upgrade doesn't touch: `public/Applicati…
bpamiri Oct 8, 2026
5b293a4
docs(web/blog): announce the fourth 2.x to 4.x series post (#4511)
bpamiri Oct 8, 2026
89ec145
chore(docs): auto-refresh blog visual baseline after content change (…
wheels-bot[bot] Oct 8, 2026
d009c42
docs(blog): record discussion announcements (#4514)
wheels-bot[bot] Oct 8, 2026
1c0ff9a
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 8, 2026
a6c2d00
fix(job): reclaim a job when its heartbeats stop, not only after 2x i…
bpamiri Oct 8, 2026
7f4dc07
fix(cli): let wheels jobs work run each job with its own timeout (#4518)
bpamiri Oct 8, 2026
c284bc0
feat(cli): wheels jobs install and jobsAutoCreateTables (#4499)
bpamiri Oct 8, 2026
405e6b0
feat(job): run job schedules from the worker poll and JobRunner.tick(…
bpamiri Oct 8, 2026
be711e6
ci: pin the LuCLI runtime to wheels-dev/LuCLI 0.6.2.3 (#4519)
bpamiri Oct 9, 2026
85f0d8c
feat(job): token-gated /wheels/jobs/tick route and wheels jobs tick (…
bpamiri Oct 9, 2026
aa1ea2e
fix(job): store job timestamps in UTC on the database's clock (#4521)
bpamiri Oct 9, 2026
3a810db
docs(web): add the 4.2 "Running Jobs on Multiple Servers" guide (#4501)
bpamiri Oct 9, 2026
3b03968
ci: run the core suite on SQLite with the engine JVM in America/New_Y…
bpamiri Oct 9, 2026
056404d
feat(job): configure the jobs tick route's batch size, timeout and qu…
bpamiri Oct 9, 2026
c3f96d7
fix(job): run a cron step on a single value to the end of the field (…
bpamiri Oct 9, 2026
915a96c
fix(job): report a missing job schema from inside a PostgreSQL transa…
bpamiri Oct 9, 2026
5a0627d
fix(migrator): run a CockroachDB migration step's transaction at seri…
bpamiri Oct 9, 2026
a8443c3
docs(router): note that constraint regexes use single backslashes in …
bpamiri Oct 9, 2026
df14b5e
ci: evaluate RustCFML prereleases in the daily version check (#4534)
bpamiri Oct 9, 2026
e3e6466
fix(job): convert epoch timestamps to local time correctly on RustCFM…
bpamiri Oct 9, 2026
8267db1
ci: file a rejected RustCFML release even when the stable fallback fa…
bpamiri Oct 9, 2026
96b31d5
fix(model): name a where= value that has no model column to bind agai…
bpamiri Oct 9, 2026
b2ebab1
fix(controller): include the global helpers when each controller obje…
bpamiri Oct 9, 2026
cba28f4
docs(web/blog): Validation conditions now fail closed: migrating your…
bpamiri Oct 9, 2026
cc7e93f
chore(docs): auto-refresh blog visual baseline after content change (…
wheels-bot[bot] Oct 9, 2026
f2f8eba
docs(web/blog): announce the fifth 2.x to 4.x series post (#4538)
bpamiri Oct 9, 2026
b55e2a8
ci: mirror the Docker Hub images CI pulls to GHCR (#4540)
bpamiri Oct 9, 2026
ad1e7b4
docs(blog): record discussion announcements (#4542)
wheels-bot[bot] Oct 9, 2026
0fc0f7f
ci: dry-check the mirror list on PRs and write tags only after merge …
bpamiri Oct 9, 2026
fda214f
ci: pin peter-evans/create-pull-request to v8.1.1 (supports actions/c…
bpamiri Oct 10, 2026
7de48c5
chore(rustcfml): bump engine pin to v0.730.0 (#4545)
bpamiri Oct 10, 2026
c3665d9
test(cli): stop NewShutdownPortSpec racing on the chosen port (#4548)
bpamiri Oct 10, 2026
c1e1f81
docs(api): add the 4.2.0 API reference JSON and v4-2-0 tree (#4550)
bpamiri Oct 11, 2026
ef1ef0b
docs(web): make the 4.2 guides, API reference and home page links cur…
bpamiri Oct 11, 2026
1c8ea50
chore(release): promote changelog fragments into 4.2.0 (#4549)
bpamiri Oct 11, 2026
2cbc6c4
chore(release): list the 4.2.0 security fixes with their advisories (…
bpamiri Oct 11, 2026
7ce2eb6
fix(controller): require the CSRF cookie payload struct, not any JSON…
bpamiri Oct 11, 2026
256f87b
chore(release): date 4.2.0 for 2026-10-11, the day it was released (#…
bpamiri Oct 11, 2026
8778b86
docs: list v4.2.0 as the current release for Context7 (#4556)
bpamiri Oct 12, 2026
1e875f6
chore: bump develop snapshot target to 4.2.1 (#4555)
github-actions[bot] Oct 12, 2026
b6e85d3
docs(web/blog): Wheels 4.2.0 is out (#4557)
bpamiri Oct 12, 2026
8bc0869
docs(web/blog): announce the 4.2.0 release post (#4558)
bpamiri Oct 12, 2026
1338ae0
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
1c861df
docs(blog): record discussion announcements (#4563)
wheels-bot[bot] Oct 12, 2026
d0809cb
Merge main into develop after the 4.2.0 release (ours): develop is au…
bpamiri Oct 12, 2026
44b6c88
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
bf4fa4b
Merge pull request #4566 from wheels-dev/peter/merge-main-into-develo…
bpamiri Oct 12, 2026
5a63b66
docs(web): add AI coding-agent results page at /ai (#4559)
bpamiri Oct 12, 2026
6a2eef6
docs(web/blog): We ran a dozen AI coding agents at real Wheels featur…
bpamiri Oct 12, 2026
5a3d926
build(docker): keep engine server homes on per-engine named volumes (…
bpamiri Oct 12, 2026
ee3fac4
docs(web/blog): announce the AI coding agents post (#4568)
bpamiri Oct 12, 2026
911e2ae
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
6b15f8b
docs(blog): record discussion announcements (#4572)
wheels-bot[bot] Oct 12, 2026
5dbc1da
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
89fb5ce
feat(web): add AI to the top navigation (#4574)
bpamiri Oct 12, 2026
9fcc17c
feat(web): add an AI-results callout to the home page (#4576)
bpamiri Oct 12, 2026
188160e
ci: commit only the bump files in the auto-bump PRs (#4578)
bpamiri Oct 12, 2026
fe7cee8
ci(rustcfml): --write-baseline rewrites the baseline's provenance not…
bpamiri Oct 12, 2026
4b729b1
chore(rustcfml): bump engine pin to v0.732.0 (#4577)
github-actions[bot] Oct 12, 2026
6be5e36
docs(web/blog): Replacing your 2.x plugins: packages, `super<name>`, …
bpamiri Oct 12, 2026
992d615
docs(web/blog): announce the sixth 2.x to 4.x series post (#4580)
bpamiri Oct 12, 2026
fc2778c
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
90c8dfc
docs(blog): record discussion announcements (#4583)
wheels-bot[bot] Oct 12, 2026
e57ee44
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 12, 2026
c4f8c00
docs(web/blog): From RocketUnit to WheelsTest, and why your suite is …
bpamiri Oct 13, 2026
cf4479b
chore(docs): auto-refresh blog visual baseline after content change […
wheels-bot[bot] Oct 13, 2026
84ae6f3
docs(web/blog): announce the seventh 2.x to 4.x series post (#4586)
bpamiri Oct 13, 2026
5e2a5a0
docs(blog): record discussion announcements (#4589)
wheels-bot[bot] Oct 13, 2026
32a4aaa
build(cli): pin LuCLI 0.6.2.4 (#4591)
bpamiri Oct 14, 2026
e7eac24
test: stage the SQLite driver into the Lucee Express a local run uses…
bpamiri Oct 14, 2026
f030f38
ci: verify the SQLite JDBC download before installing it into Lucee (…
bpamiri Oct 14, 2026
d64de7e
chore(deps): update Lucee to 7.0.5.41 (#4592)
bpamiri Oct 14, 2026
11ad366
test: fetch the onboarding SQLite driver through the verified helper …
bpamiri Oct 14, 2026
d700df5
fix(cache): keep argument names in the $hashedKey fallback encoding (…
bpamiri Oct 14, 2026
cb023eb
build(docker): verify the SQLite JDBC jar's SHA-256 in the Lucee test…
bpamiri Oct 14, 2026
432ae4e
fix(model): double the closing delimiter in quoted identifiers (#4600)
bpamiri Oct 14, 2026
e29312f
test(env): pin .env value-type parsing beyond the numeric-1 case (#4602)
bpamiri Oct 15, 2026
231af0c
fix(web/blog): unescape quoted announcement values in the Discussion …
bpamiri Oct 15, 2026
666c09c
docs(cli): correct the deploy e2e fixture README's Keys paragraph (#4…
bpamiri Oct 15, 2026
fa9570e
fix(config): coerce .env values to numbers only when they are plain i…
bpamiri Oct 15, 2026
a149b85
fix(web): let long inline code wrap so posts don't scroll sideways on…
bpamiri Oct 15, 2026
ba1ff86
ci: log the URL and status when engine image downloads fail (#4612)
bpamiri Oct 16, 2026
35ceae7
ci: pull CI and test base images from the GHCR mirror (#4543)
bpamiri Oct 16, 2026
6e4915d
fix(web): wrap markdown tables in an accessible scroll region (#4605)
bpamiri Oct 19, 2026
9cb098d
fix(web): restore table semantics on the guides and API sites (#4615)
bpamiri Oct 19, 2026
a40177e
test(tools): let the local test scripts run from a CLI home other tha…
bpamiri Oct 19, 2026
69fe845
test(tools): use WHEELS_HOME when LUCLI_HOME names a default CLI home…
bpamiri Oct 19, 2026
e22a3eb
chore(test): keep test-local.sh state out of the shared /tmp in overr…
bpamiri Oct 19, 2026
0eae7ff
fix(web): contain wide code examples on API reference pages (#4621)
bpamiri Oct 19, 2026
a34d0dc
docs(api): render the telField example on multiple lines (#4622)
bpamiri Oct 19, 2026
ea14851
test(wheelstest): pin that gate-skipped browser specs are reported as…
bpamiri Oct 20, 2026
1ab638c
chore(rustcfml): bump engine pin to v0.738.1 (#4614)
github-actions[bot] Oct 20, 2026
e7ccfb6
build(deps): bump vite from 8.3.2 to 8.3.4 in /tools/docker/testui (#…
dependabot[bot] Oct 21, 2026
63a8e36
chore(rustcfml): bump engine pin to v0.738.4 (#4626)
github-actions[bot] Oct 21, 2026
e7437cd
fix(model): quote H2 identifiers in the datasource's fold case (#4628)
bpamiri Oct 21, 2026
0d1fef8
chore(rustcfml): bump engine pin to v0.741.0 (#4630)
github-actions[bot] Oct 22, 2026
3eca1d1
test: make migration-lock and rate-limiter timing specs deterministic…
bpamiri Oct 22, 2026
2b1a8a6
perf(model): read resetPropertiesStructKeyCase once per properties() …
bpamiri Oct 23, 2026
fc7aae8
ci: cache Lucee Express and Maven downloads, stop wiping the server d…
bpamiri Oct 23, 2026
121a1b7
fix(controller): handle null values in renderWith() JSON rendering an…
michaeldiederich Oct 23, 2026
36e2e2a
docs(web/guides): add Groundmail to the SMTP providers table (#4635)
Ktryberceo Oct 23, 2026
1df65b2
fix(model): keep comma-bearing SQL functions intact in select and gro…
bpamiri Oct 23, 2026
bbce616
chore(rustcfml): bump engine pin to v0.742.2 (#4645)
github-actions[bot] Oct 26, 2026
7ada9de
fix(model): normalize extra query-column keys in $queryRowToStruct (#…
bpamiri Oct 26, 2026
511dd17
fix(testing): honor allowTestsAgainstPrimaryDatasource for an omitted…
bpamiri Oct 26, 2026
1048cb4
fix(model): key JOIN memo by identifier case and extract H2 classifie…
bpamiri Oct 28, 2026
e5db922
fix(engineAdapters): upper-case by walking characters, not regex repl…
bpamiri Oct 28, 2026
8013e50
fix(controller): render null XML values and coerce null date-select v…
bpamiri Oct 28, 2026
a641d7a
fix: remove \l/\U replacement case flags from names and flash keys (#…
bpamiri Oct 28, 2026
536db81
test(4629): cover the classifier none branch and scope the reserved-w…
bpamiri Oct 28, 2026
1f0d2d3
fix(migrator): quote H2 DDL identifiers in the datasource fold case (…
bpamiri Oct 28, 2026
56dae87
fix(migrator): quote PostgreSQL/CockroachDB DDL identifiers lowercase…
bpamiri Oct 28, 2026
78b3ef2
fix(migrator): quote Oracle DDL identifiers uppercase (#4656)
bpamiri Oct 29, 2026
ab6070d
fix(test): give the CLI suite request's mktemp an explicit template (…
bpamiri Oct 30, 2026
5f6f82a
ci: run the CLI suite when its request helpers change (#4662)
bpamiri Oct 30, 2026
b6b0a23
docs(cli): document what wheels analyze checks (#4663)
bpamiri Oct 30, 2026
0ac9e32
fix(cli): match analyze todo-comment markers as whole words (#4660)
bpamiri Oct 30, 2026
f3da493
fix(cli): detect analyze todo markers in block and doc comments (#4664)
bpamiri Oct 30, 2026
5f78043
build(deps-dev): bump fast-uri from 3.1.8 to 3.1.9 (#4658)
dependabot[bot] Oct 30, 2026
15a7362
chore(rustcfml): bump engine pin to v0.744.0 (#4659)
github-actions[bot] Oct 30, 2026
3d779e1
docs(migrator): document reserved-word identifiers in migrations (#4665)
bpamiri Oct 30, 2026
4c782de
fix(test): export LUCLI_HOME whenever an isolated CLI home is in effe…
bpamiri Oct 30, 2026
04bcda8
chore(release): promote changelog fragments into 4.2.1 (#4667)
bpamiri Oct 30, 2026
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
59 changes: 52 additions & 7 deletions .github/actions/setup-wheels-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,32 @@ runs:
- name: Install LuCLI
uses: ./.github/actions/setup-lucli

- name: Cache Lucee Express
id: express-cache
uses: actions/cache@v5
with:
path: ~/.lucli/express
key: lucee-express-${{ runner.os }}-${{ hashFiles('tools/ci/lucee.ci.json', 'lucee.json', 'cli/lucli/templates/app/lucee.json') }}
restore-keys: |
lucee-express-${{ runner.os }}-

- name: Report Lucee Express cache
shell: bash
run: echo "Lucee Express cache hit=${{ steps.express-cache.outputs.cache-hit || 'false' }}"

- name: Cache Lucee Maven repository
id: maven-cache
uses: actions/cache@v5
with:
path: ${{ runner.temp }}/.lucee-mvn
key: lucee-mvn-${{ runner.os }}-${{ hashFiles('.env', 'tools/ci/lucee.ci.json', 'lucee.json') }}
restore-keys: |
lucee-mvn-${{ runner.os }}-

- name: Report Lucee Maven cache
shell: bash
run: echo "Lucee Maven cache hit=${{ steps.maven-cache.outputs.cache-hit || 'false' }}"

- name: Create test databases
shell: bash
run: |
Expand Down Expand Up @@ -81,13 +107,13 @@ runs:
- name: Download SQLite JDBC driver
shell: bash
run: |
curl -sL --retry 3 --retry-delay 2 --retry-all-errors "https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.50.3.0/sqlite-jdbc-3.50.3.0.jar" \
-o /tmp/sqlite-jdbc.jar
bash tools/ci/fetch-sqlite-jdbc.sh /tmp/sqlite-jdbc.jar

- name: Start Lucee server
shell: bash
env:
WHEELS_PORT: ${{ inputs.port }}
LUCEE_MAVEN_LOCAL_REPOSITORY: ${{ runner.temp }}/.lucee-mvn
run: |
cp tools/ci/lucee.ci.json lucee.json

Expand All @@ -112,20 +138,19 @@ runs:
shell: bash
env:
WHEELS_PORT: ${{ inputs.port }}
LUCEE_MAVEN_LOCAL_REPOSITORY: ${{ runner.temp }}/.lucee-mvn
run: |
LUCEE_LIB=$(find ~/.lucli/express -path "*/lib/ext" -type d 2>/dev/null | head -1)
if [ -z "$LUCEE_LIB" ]; then
LUCEE_LIB=$(find ~/.lucli/express -maxdepth 2 -name "lib" -type d 2>/dev/null | head -1)
fi
if [ -n "$LUCEE_LIB" ]; then
cp /tmp/sqlite-jdbc.jar "$LUCEE_LIB/"
echo "SQLite JDBC installed to: $LUCEE_LIB"
else
if [ -z "$LUCEE_LIB" ]; then
echo "::error::Could not find Lucee lib directory"
find ~/.lucli/express -type d | head -20
exit 1
fi

# Stop the first (Express-downloading) start before touching the install.
kill $(cat /tmp/lucli-server.pid) 2>/dev/null || true
lucli server stop 2>/dev/null || true
for i in $(seq 1 15); do
Expand All @@ -137,14 +162,34 @@ runs:
fuser -k "${WHEELS_PORT}/tcp" 2>/dev/null || true
sleep 2

nohup lucli server run --port="${WHEELS_PORT}" --force > /tmp/lucli-server.log 2>&1 &
# Install the driver after the stop, so the restart picks it up.
cp /tmp/sqlite-jdbc.jar "$LUCEE_LIB/"
echo "SQLite JDBC installed to: $LUCEE_LIB"

# No --force here: keep ~/.lucli/servers (and the Lucee extensions installed in it).
nohup lucli server run --port="${WHEELS_PORT}" > /tmp/lucli-server.log 2>&1 &
echo $! > /tmp/lucli-server.pid

echo "Waiting for Lucee to restart..."
RESTARTED=0
for i in $(seq 1 60); do
if curl -s -o /dev/null --connect-timeout 2 --max-time 3 "http://localhost:${WHEELS_PORT}/" 2>/dev/null; then
echo "Lucee restarted with SQLite JDBC"
RESTARTED=1
break
fi
sleep 2
done
if [ "$RESTARTED" != "1" ]; then
echo "::error::Lucee did not restart"
cat /tmp/lucli-server.log
exit 1
fi

H2_EXT=$(find ~/.lucli/servers -iname '*h2*' 2>/dev/null | head -5)
if [ -n "$H2_EXT" ]; then
echo "H2 extension preserved after the no-force restart:"
echo "$H2_EXT"
else
echo "::warning::No H2 extension found under ~/.lucli/servers after the no-force restart"
fi
5 changes: 5 additions & 0 deletions .github/workflows/bump-develop-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,13 @@ jobs:
jq '.version' wheels.json

- name: Open bump PR
# add-paths: commit only wheels.json, whatever else is in the tree.
# CI: a PR opened with GITHUB_TOKEN does not trigger workflows. Whoever
# handles the bump PR pushes a commit (an empty one is fine) to its
# branch to start CI.
uses: peter-evans/create-pull-request@v8.1.1
with:
add-paths: wheels.json
branch: "auto-bump/develop-${{ env.NEW_VERSION }}"
title: "chore: bump develop snapshot target to ${{ env.NEW_VERSION }}"
body: |
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/cold-start-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,13 @@ jobs:
disable: true
YAML
cat "$OVERRIDE"
echo "COMPOSE_FILE=compose.yml:$OVERRIDE" >> "$GITHUB_ENV"
# compose.ci.yml re-binds each engine's .engine/<engine> home to the
# host, reversing the named volume in compose.yml, so the log-collection
# step can read ./.engine/<engine> on the host. (No-op for engines not
# in the override, e.g. lucee7.)
echo "COMPOSE_FILE=compose.yml:compose.ci.yml:$OVERRIDE" >> "$GITHUB_ENV"
echo "SMOKE_OUT_DIR=$RUNNER_TEMP/cold-start-artifacts" >> "$GITHUB_ENV"
COMPOSE_FILE="compose.yml:$OVERRIDE" docker compose config "${{ matrix.engine }}" | grep -A2 'healthcheck:' || true
COMPOSE_FILE="compose.yml:compose.ci.yml:$OVERRIDE" docker compose config "${{ matrix.engine }}" | grep -A2 'healthcheck:' || true

# The probes run in development (config/environment.cfm as checked in):
# `/` renders the welcome page and /wheels/core/tests is available. Point
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/commandbox-install-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
# for ForgeBox publishing (its "Install CommandBox" step), just containerized
# so the box server boots in the same userland it serves from.
container:
image: ortussolutions/commandbox:latest
image: ghcr.io/wheels-dev/mirror/ortussolutions/commandbox:latest
env:
# Throwaway values for the CI app; not secrets.
SMOKE_RELOAD_PASSWORD: "wheels-dev"
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/compat-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ jobs:
fail-fast: false
matrix: ${{ fromJSON(needs.plan.outputs.matrix) }}
env:
# Re-bind each engine's .engine/<engine> home to the host (compose.ci.yml),
# reversing the named volume in compose.yml: this job downloads the Oracle
# JDBC driver into ./.engine/<engine> on the host before `docker compose
# up`, so the engine must read that path through the bind mount. Job-level
# so every `docker compose` call (build, up, crash-recovery up) layers it.
COMPOSE_FILE: compose.yml:compose.ci.yml
# The engine container's time zone (compose.yml reads it; UTC when empty, as on every leg
# but the TZ lanes). Job-level so a crash-recovery `docker compose up` keeps it too.
# EngineTimeZoneSpec fails the leg if the JVM or the engine didn't take it.
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/compat-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ jobs:
- cfengine: lucee7
database: h2
env:
# Re-bind each engine's .engine/<engine> home to the host (compose.ci.yml),
# reversing the named volume in compose.yml, so CI's host-side engine-home
# access keeps working. Harmless for engines not in the override.
COMPOSE_FILE: compose.yml:compose.ci.yml
PORT_boxlang: 60001
PORT_adobe2023: 62023
PORT_lucee7: 60007
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
# vendor/wheels/migrator/, Seeder.cfc, JobWorker.cfc what CliBridge calls
# Wider framework boot breakage is caught by the core suite, which is
# required on its own.
PATTERN='^(cli/lucli/|tools/test-cli-local\.sh$|tools/ci/testbox_results\.py$|tools/ci/test_testbox_results\.py$|tools/ci/fallback_port_sentinel\.py$|tools/ci/test_fallback_port_sentinel\.py$|tools/ci/testbox_junit\.py$|tools/ci/test_testbox_junit\.py$|tools/ci/fixtures/testbox/|tools/deploy-[^/]*\.sh$|tools/deploy-dry-run-normalize\.py$|\.github/workflows/deploy-ci\.yml$|\.github/actions/setup-lucli/|tools/lucli\.json$|lucee\.json$|public/|config/|app/(events|global|migrator)/|vendor/wheels/(public/|Public\.cfc$|events/|wheelstest/|migrator/|Seeder\.cfc$|JobWorker\.cfc$))'
PATTERN='^(cli/lucli/|tools/test-cli-local\.sh$|tools/ci/testbox_results\.py$|tools/ci/test_testbox_results\.py$|tools/ci/fallback_port_sentinel\.py$|tools/ci/test_fallback_port_sentinel\.py$|tools/ci/testbox_junit\.py$|tools/ci/test_testbox_junit\.py$|tools/ci/cli-suite-request\.sh$|tools/ci/fetch-sqlite-jdbc\.sh$|tools/ci/fixtures/testbox/|tools/deploy-[^/]*\.sh$|tools/deploy-dry-run-normalize\.py$|\.github/workflows/deploy-ci\.yml$|\.github/actions/setup-lucli/|tools/lucli\.json$|lucee\.json$|public/|config/|app/(events|global|migrator)/|vendor/wheels/(public/|Public\.cfc$|events/|wheelstest/|migrator/|Seeder\.cfc$|JobWorker\.cfc$))'
if [ "$EVENT_NAME" = "pull_request" ]; then
# fetch-depth: 0 already holds the base commit; fetch it (with full
# history, never --depth) only if it is somehow missing.
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/distribution-install-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -526,9 +526,9 @@ jobs:
matrix:
include:
- label: "rocky 10, rpm 4.19"
image: rockylinux/rockylinux:10
image: ghcr.io/wheels-dev/mirror/rockylinux/rockylinux:10
- label: "rocky 9, rpm 4.16"
image: rockylinux/rockylinux:9
image: ghcr.io/wheels-dev/mirror/rockylinux/rockylinux:9
container:
image: ${{ matrix.image }}
env:
Expand Down Expand Up @@ -576,7 +576,7 @@ jobs:
# Gates (hard-fail): as of 4.0.5 the rpm's wrapper resolves the RHEL/Fedora
# Java-21 layout, so `wheels --version` works on Rocky 9 (was the 4.0.4 bug).
container:
image: rockylinux:9
image: ghcr.io/wheels-dev/mirror/rockylinux:9
env:
EXPECTED: ${{ needs.resolve.outputs.version }}
steps:
Expand Down Expand Up @@ -643,7 +643,7 @@ jobs:
# dependency (#4237) is what makes it installable. Bleeding-edge only for
# now; a stable Fedora leg is owed once 4.2.0 ships with that dependency.
container:
image: fedora:44
image: ghcr.io/wheels-dev/mirror/fedora:44
steps:
- name: Add yum.wheels.dev bleeding-edge + install (the documented path)
run: |
Expand Down
88 changes: 78 additions & 10 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,30 @@ jobs:
- name: Install LuCLI
uses: ./.github/actions/setup-lucli

- name: Cache Lucee Express
id: express-cache
uses: actions/cache@v5
with:
path: ~/.lucli/express
key: lucee-express-${{ runner.os }}-${{ hashFiles('tools/ci/lucee.ci.json', 'lucee.json', 'cli/lucli/templates/app/lucee.json') }}
restore-keys: |
lucee-express-${{ runner.os }}-

- name: Report Lucee Express cache
run: echo "Lucee Express cache hit=${{ steps.express-cache.outputs.cache-hit || 'false' }}"

- name: Cache Lucee Maven repository
id: maven-cache
uses: actions/cache@v5
with:
path: ${{ runner.temp }}/.lucee-mvn
key: lucee-mvn-${{ runner.os }}-${{ hashFiles('.env', 'tools/ci/lucee.ci.json', 'lucee.json') }}
restore-keys: |
lucee-mvn-${{ runner.os }}-

- name: Report Lucee Maven cache
run: echo "Lucee Maven cache hit=${{ steps.maven-cache.outputs.cache-hit || 'false' }}"

- name: Create test databases
run: |
sudo apt-get update -y && sudo apt-get install -y --no-install-recommends sqlite3
Expand Down Expand Up @@ -92,10 +116,11 @@ jobs:

- name: Download SQLite JDBC driver
run: |
curl -sL --retry 3 --retry-delay 2 --retry-all-errors "https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.50.3.0/sqlite-jdbc-3.50.3.0.jar" \
-o /tmp/sqlite-jdbc.jar
bash tools/ci/fetch-sqlite-jdbc.sh /tmp/sqlite-jdbc.jar

- name: Start Lucee server
env:
LUCEE_MAVEN_LOCAL_REPOSITORY: ${{ runner.temp }}/.lucee-mvn
run: |
cp tools/ci/lucee.ci.json lucee.json

Expand All @@ -118,46 +143,63 @@ jobs:
done

- name: Install SQLite JDBC into Lucee
env:
LUCEE_MAVEN_LOCAL_REPOSITORY: ${{ runner.temp }}/.lucee-mvn
run: |
# Find where LuCLI placed the Lucee Express lib directory
LUCEE_LIB=$(find ~/.lucli/express -path "*/lib/ext" -type d 2>/dev/null | head -1)
if [ -z "$LUCEE_LIB" ]; then
LUCEE_LIB=$(find ~/.lucli/express -maxdepth 2 -name "lib" -type d 2>/dev/null | head -1)
fi
if [ -n "$LUCEE_LIB" ]; then
cp /tmp/sqlite-jdbc.jar "$LUCEE_LIB/"
echo "SQLite JDBC installed to: $LUCEE_LIB"
else
if [ -z "$LUCEE_LIB" ]; then
echo "::error::Could not find Lucee lib directory"
find ~/.lucli/express -type d | head -20
exit 1
fi

# Stop server fully and restart to pick up the new JDBC driver
# Stop the first (Express-downloading) start before touching the install.
kill $(cat /tmp/lucli-server.pid) 2>/dev/null || true
lucli server stop 2>/dev/null || true
# Wait for port to be freed
for i in $(seq 1 15); do
if ! curl -s -o /dev/null --connect-timeout 1 "http://localhost:30007/" 2>/dev/null; then
break
fi
sleep 1
done
# Also kill any lingering java processes on the port
fuser -k 30007/tcp 2>/dev/null || true
sleep 2

nohup lucli server run --port=30007 --force > /tmp/lucli-server.log 2>&1 &
# Install the driver after the stop, so the restart picks it up.
cp /tmp/sqlite-jdbc.jar "$LUCEE_LIB/"
echo "SQLite JDBC installed to: $LUCEE_LIB"

# No --force here: keep ~/.lucli/servers (and the Lucee extensions installed in it).
nohup lucli server run --port=30007 > /tmp/lucli-server.log 2>&1 &
echo $! > /tmp/lucli-server.pid

echo "Waiting for Lucee to restart..."
RESTARTED=0
for i in $(seq 1 60); do
if curl -s -o /dev/null --connect-timeout 2 --max-time 3 "http://localhost:30007/" 2>/dev/null; then
echo "Lucee restarted with SQLite JDBC"
RESTARTED=1
break
fi
sleep 2
done
if [ "$RESTARTED" != "1" ]; then
echo "::error::Lucee did not restart"
cat /tmp/lucli-server.log
exit 1
fi

H2_EXT=$(find ~/.lucli/servers -iname '*h2*' 2>/dev/null | head -5)
if [ -n "$H2_EXT" ]; then
echo "H2 extension preserved after the no-force restart:"
echo "$H2_EXT"
else
echo "::warning::No H2 extension found under ~/.lucli/servers after the no-force restart"
fi

- name: Run tests
run: |
Expand Down Expand Up @@ -211,5 +253,31 @@ jobs:
- name: Install LuCLI
uses: ./.github/actions/setup-lucli

- name: Cache Lucee Express
id: express-cache
uses: actions/cache@v5
with:
path: ~/.lucli/express
key: lucee-express-${{ runner.os }}-${{ hashFiles('tools/ci/lucee.ci.json', 'lucee.json', 'cli/lucli/templates/app/lucee.json') }}
restore-keys: |
lucee-express-${{ runner.os }}-

- name: Report Lucee Express cache
run: echo "Lucee Express cache hit=${{ steps.express-cache.outputs.cache-hit || 'false' }}"

- name: Cache Lucee Maven repository
id: maven-cache
uses: actions/cache@v5
with:
path: ${{ runner.temp }}/.lucee-mvn
key: lucee-mvn-${{ runner.os }}-${{ hashFiles('.env', 'tools/ci/lucee.ci.json', 'lucee.json') }}
restore-keys: |
lucee-mvn-${{ runner.os }}-

- name: Report Lucee Maven cache
run: echo "Lucee Maven cache hit=${{ steps.maven-cache.outputs.cache-hit || 'false' }}"

- name: Run tutorial e2e
env:
LUCEE_MAVEN_LOCAL_REPOSITORY: ${{ runner.temp }}/.lucee-mvn
run: bash tools/test-tutorial-e2e.sh
14 changes: 14 additions & 0 deletions .github/workflows/rustcfml-version-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,23 @@ jobs:
- name: Open bump PR
# Only from develop: a branch dispatch that happens to go green must not
# open a bump PR built on a feature branch.
#
# add-paths: the suite run leaves logs and caches in the working tree
# (public/logs/, tools/ci/__pycache__/), and create-pull-request stages
# every change by default, so commit only the files bump-pin.sh and
# --write-baseline produce (#4577).
#
# CI: a PR opened with GITHUB_TOKEN does not trigger workflows. Whoever
# handles the bump PR pushes a commit (an empty one is fine) to its
# branch to start CI, as for the develop version bump.
if: env.RUSTCFML_LATEST != '' && github.ref == 'refs/heads/develop'
uses: peter-evans/create-pull-request@v8.1.1
with:
add-paths: |
tools/rustcfml/ENGINE_VERSION
tools/rustcfml/ENGINE_SHA256
tools/rustcfml/baseline.json
cli/lucli/services/rustcfml/RustCFMLEngine.cfc
branch: "auto-bump/rustcfml-${{ env.RUSTCFML_LATEST }}"
title: "chore(rustcfml): bump engine pin to ${{ env.RUSTCFML_LATEST }}"
body: |
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/smoke-env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ jobs:
wheels_env: [production, testing]
env:
WHEELS_CI: "true"
# Re-bind adobe2023's .engine home to the host (compose.ci.yml), reversing
# the named volume in compose.yml, so CI's host-side engine-home access
# keeps working. Job-level so every `docker compose` call layers it.
COMPOSE_FILE: compose.yml:compose.ci.yml
steps:
- uses: actions/checkout@v5

Expand Down
Loading
Loading