Roadmap to 3.0 and beyond #1407
Replies: 9 comments
-
|
Thanks for the update! This is exciting news. I know it will be a ton of work to migrate my app to v3 when it releases but I'm looking forward to the improvements. Fyi, you may run into SEO issues when devs are searching for "wheels docs" online, people will still need to search cfwheels or some variation to find the repo and docs. Nice logo btw. |
Beta Was this translation helpful? Give feedback.
-
|
All sounds good to me! |
Beta Was this translation helpful? Give feedback.
-
|
Awesome! Thanks everyone for the hard work. Count me in for any work on the docs. |
Beta Was this translation helpful? Give feedback.
-
|
Great stuff, Peter. |
Beta Was this translation helpful? Give feedback.
-
|
Very exciting :-)
…On Thu, 29 Feb 2024 at 07:54, Adam Cameron ***@***.***> wrote:
Great stuff, Peter.
—
Reply to this email directly, view it on GitHub
<#1407 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHN4QRCKY7GUYHYF3KDNRTYV3PEDAVCNFSM6AAAAABD62PZGWVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DMMRXGIZTK>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Great work Peter & Team! |
Beta Was this translation helpful? Give feedback.
-
|
Thanks Peter and his team, this is very exciting news! |
Beta Was this translation helpful? Give feedback.
-
|
Excellent work Peter! These are some long needed changes and you've been excellent at pushing them through. Thanks for all the work you've put in and also to the newer and older community members who have been contributing lately. It's great the see interest in the project take off again! |
Beta Was this translation helpful? Give feedback.
-
|
Very exciting and thanks to everyone pushing this framework forward. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello everyone,
As you may be aware we are working on the next major release of the Wheels framework. The Main branch has been tagged as v2.5.x and the Develop branch has been tagged as v3.0.0-SNAPSHOT. As new PRs are committed to the Develop branch a new Bleeding Edge snapshot is posted to Foregebox and can be installed via the Wheels CLI. More on that later.
I've been wanting to post this message for the last several weeks but I keep holding off cause we find one more thing that should be fix before posting this but I think we are now close enough that the next set of changes will drop into the Develop branch within the next few days so I wanted to get this out there for everyone to chew on before the code becomes available.
Here are some of the changes that are slated to be implemented in the next version release. Please note some of these haven't started yet but I wanted to get this initial message out before attempting them. You'll understand why in a few minutes.
Versioning of Guides on GitBook
As you may know, we use a service from GitBook.com for publishing our Guides. In fact GitBook sponsors our project by providing free services to our project and we are thankful to them for their support. I recently discovered how to version the Guides so we can have a version dropdown where you can select which version of the Guides you want to look at. Currently the v2.5.0 and v.3.0.0-SNAPSHOT versions are published. The stable release will always correspond to the Main branch and the next release will correspond to the Develop branch. As newer versions are added we'll freeze the older Guides so they will remain available in the future.
Top Level Directory Structure Changes
The top level directory structure is changing. This is to isolate your code from the framework code and from 3rd party code. This also gets the code that doesn't need to be in the webroot out of the webroot. At the highest level we’ll have:
All your application code (i.e.
/config,/controllers,/model,/viewsfolders) will go into the/appfolder. All your assets or items that need to be web accessible (i.e./stylesheets,/javascriptsfolders) will go into the/publicfolder. And all the 3rd party modules (i.e./wheels, other modules) will go into the/vendorfolder. We wanted to make sure we can document this change appropriately in the guides before the release of v3.0.0 but keep these changes separate from the older guides for versions prior to v.3.0.0 that are not effected, which is what led to versioning of the guides mentioned above.Integration of WireBox
We have integrated WireBox into the framework which will be instrumental in rearchitecting the framework in future versions to better adhere to OOP principles.
Drop support for Adobe ColdFusion 2016
Due to the integration of WireBox, we had to drop support for Adobe ColdFusion 2016. We have added Adobe ColdFusion 2023 to the list of supported and tested versions so we still have support for three versions of Adobe ColdFusion.
Integration of ColdBox Testing Framework
We have deprecated the old RocketUnit testing framework and migrated all core test cases to ColdBox. The Docker local testing environment has been updated to use the TestBox test cases additionally the GitHub CI/CD workflows have been updated to run the TestBox core tests. This is still a work in progress as we currently have about half a dozen tests that are currently failing. Once this last round of tests are taken care of, the code will be merged into the Develop branch.
Rewite the local Docker Test Runner
The local TestUI Vue application has been rewritten to use standard JavaScript and eliminate the dependence on other libraries. We found that security updates on all these dependent libraries required constant updating and testing of the TestUI which wasn’t worth the added benefit Vue was giving over standard JavaScript. This is not a knock on Vue but for the limited UI that was used just to spawn off testing cycles it wasn’t necessary.
Begin the work of eliminating some of the CFInclude files
As many of you who have dipped your toes into the
/wheelsdirectory can attest, Wheels uses lots of CFIncludes under the hood to build up the core Components that your components extend. From a project that is nearly 20 years old, it is what it is. We have however begun the work of eliminating the CFIncludes and grouping the methods into a better component structure. This work will continue in future point releases but we had to get some foundations items implemented in this release to make this task easier.New Application Bootstrapping
We have rearchitected the bootstrapping flow and eliminated the root.cfm as well as the rewrite.cfm files. Now all requests go through index.cfm which makes it easier to trace what is going on in URL Rewriting situations.
Updating Wheels CLI for CommandBox
With all the changes listed above the Wheels CLI commands needed to be updated to conform to the new directory structure and be able to scaffold new applications and application componenets.
Introduction of Snippets Folder
The Wheels CLI generate commands that are used to generate an application, component of an application, or properties use code snippets that are injected into your code when the command is issued. The inclusion of the snippets folder, exposes these code snippets to the developer, so you can modify the actual code the Wheels CLI generation commands will use in case you want to change the markup that is used to implement a specific CSS framework for example.
Expose the CFEngine Server Logs
Modifications to the server.json file allowed us to expose the CFEngine server logs and allow the logs for multiple simultaneous CFEngines to be captured in the same place. This is used extensively in the Testing of the core framework docker and CI/CD workflows.
Other additions and bug fixes
We also had a few dozen PRs integrated into the next release fixing bugs or adding new features. These are documented further in the ChangeLog.
Rebranding the Framework
If you’ve read this far, thank you, but with all the changes list above and those that need to be implemented for us to go from a v3.0.0-SNAPSHOT to a v3.0.0-RC1 we thought it was a good time to tackle the brand of the project. When this project first started the name ColdFusion of Wheels was a nod and a play on the name Ruby on Rails. ColdFusion was our language and the official ColdFusion server version was the only name in town. I specifically stayed away from calling it Adobe ColdFusion, because at the time the engine was published by Macromedia. Anyway, the name was cute and catchy and it stuck. But soon after that we had engines like Blue Dragon and Railo/Lucee which made it necessary to constantly describe the difference of the ColdFusion engine from the CFML language. We also found that we were internally calling the project Wheels and had log dropped the CF from the name when we referred to the project in internal communications. So I thought it was a good time to rebrand the project and change the name to The Wheels Framework. The URL will migrate over from cfwheels.org to wheels.fw and the Github organization name will change from CFWheels to wheels-fw and the repository will change from CFWheels to Wheels. Github is supposed to handle proxying request to the new locations which necessitated getting this message out before we made any changes just in case things don’t go as planned.
New Logo

What good is a new name without a brand new logo, so for the first time I’d like to share the new logo for the project publicly.
So there you have it. There has been much work done in the last few months preparing for this release and much still needs to be done before we can get to RC1. Lots of the documentation will need to be updated and new examples written to make it easier to onboard brand new developers to the project. That is where you all come in. Several of you have been submitting PRs for updating the documentation in recent months and others have pointed out where the deficiencies are in our Discussions. I thank you from the bottom of my heart for all the support you have provided in the past and all that our small community continues to do to modernize
Wheelsand keep it relevant.Thank you again,
Peter
Beta Was this translation helpful? Give feedback.
All reactions