Add RustCFML engine support - #1741
Open
alexskinner wants to merge 1 commit into
Open
alexskinner wants to merge 1 commit into
alexskinner wants to merge 1 commit into
Conversation
Adds RustCFML as a documented CFML engine alongside ColdFusion, Lucee, Railo, OpenBD and BoxLang. Data: - engines.rustcfml added to 666 existing tag/function entries - 96 new entries for RustCFML-only functions (MCP, S3, spreadsheet, PDF, YAML, JWT, realtime, observability) - registered in index.json / functions.json and 8 category listings - two new guides: rustcfml-only and query-of-queries Site code (additive only, ~35 lines across 6 files): - data/cfdocs.schema.json rustcfml in the engines schema - assets/style.css .label-rustcfml badge colours - views/doc.cfm engineMap entry, badge, compatibility heading - views/doc-md.cfm RustCFML in the .md engine table - utilities/guide.cfm rustcfml-only.md generation - openimage.cfm canvas widened 512->600 to fit a sixth badge No existing engine data is altered: every modified entry gains an engines.rustcfml block and nothing else.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds RustCFML as a documented engine alongside ColdFusion, Lucee, Railo, OpenBD and BoxLang.
I know 781 files is a lot to land in your inbox, so this is written to be checkable in a few minutes rather than file by file. Happy to split it up or drop any part of it.
The short version
engines.rustcfmladded to existing entriesNo existing engine data is changed anywhere. Every one of the 666 modified entries gains an
engines.rustcfmlblock and nothing else.How to verify that claim quickly
Every modified data file should be
+2 −1— the new line, plus a comma appended to the line above it:All 666 are
+2 −1; that command prints only the 10 listing files andindex.json. And to confirm nothing lost an engine or had prose rewritten:# for each changed file: HEAD.engines ⊆ new.engines, and HEAD.description == new.descriptionI ran that across all 677 changed data files: 0 engines removed, 0 descriptions rewritten, 0 line-ending changes.
Site code — the whole of it
Additive only; no existing behaviour changes.
data/cfdocs.schema.jsonrustcfmladded to the engines schemaassets/style.css.label-rustcfmlbadge coloursviews/doc.cfmengineMapentry, badge block, compatibility headingviews/doc-md.cfmRustCFMLappended to onecflooplistutilities/guide.cfmrustcfml-only.mdgeneration, mirroring the existing acf-only/lucee-only branchesopenimage.cfmviews/doc.cfmis the only one with any judgement in it and it is 12 added lines. An earlier draft also rewrote the "Not supported on …" banner to enumerate every engine — that changed output on your ACF-only and Lucee-only pages, so I reverted it. The existingetc.already covers a new engine.Two things I'd like your steer on
1. No
docsURLs for RustCFML. CONTRIBUTING asks for links to official documentation, or an explanation if there is none — this is that explanation. RustCFML has no published per-function documentation site yet, so all 762engines.rustcfmlblocks have nodocskey, andminimum_versionis""because there are no published version numbers to cite.Consequence:
views/doc.cfmrenders the CF/Lucee/BoxLang badges only when adocsURL exists, so I made the RustCFML badge render without one (a<span>rather than an<a>). If you would rather it not render at all until docs exist, that is a one-line change and I am happy to make it.2. Two entries document BoxLang as well as RustCFML.
queryRegisterFunctionanddumpare new files, and both functions exist in BoxLang core (QueryRegisterFunction,Dumpin the 1.10.0 BIF list). It seemed wrong to add them as RustCFML-only when BoxLang has them, so each carries aboxlangblock with a verified docs URL.minimum_versionis1.0.0to match every other BoxLang entry in the repo — I could not confirm the actual introducing version, so say the word if you would prefer it blank.Those two are the only entries where this PR makes a claim about a non-RustCFML engine.
Deliberately left out
spreadsheet-functions,security-functions,math-functions,query-functions,image-functions,conversion-functions,decision-functions,list-functions). Happy to add categories if you want them.data/en/all.jsonis untouched. It is at 799 entries and already missing a few hundred documented ones, so it looked stale independently of this work rather than something to reconcile here.Guides
rustcfml-only.md— generated in the same format asacf-only.md/lucee-only.md. Note I did not runutilities/guide.cfmto produce it: it writes with backslash path separators (guideDir & '\lucee-only.md'), so it only works on Windows. I generated the identical output another way rather than change that file.query-of-queries.md— a general QoQ guide covering the portable core, and the extended SQL (LIMIT/OFFSET,CASE, scalar subqueries, derived tables, custom SQL functions) that BoxLang introduced and RustCFML follows. Not RustCFML-specific.Checks run
data/cfdocs.schema.json.TestDataFormat,TestIndexes,TestRelated,TestNamesakereimplemented and run over all files: 0 failures.TestViews' four assertions pass against a local Lucee 6 instance../test.shitself —box installgives me a TestBox 5.4.0 tree where the runner cannot resolvetestbox.system.util.Utileven though the file is present. That looks like a local mapping problem rather than anything in this PR, but it does mean the suite has not run end to end on my machine. Worth a CI run.