Archive for the ‘Website’ Category


Two New Repositories Published

We have published two new repositories named cfwheels/cfwheels-www and cfwheels/cfwheels-api which handle the CFWheels.org landing page site and the api.cfwheels.org API documentation site respectively.

The cfwheels-api repository is a good example of how you can structure your own projects and keep sensitive information and the core framework files out of your project’s source control repository. The project used a .gitignore file that keeps these files out of the repo. It also uses a box.json file to specify some dependencies to pull the required files back in.

Using dependencies in a box.json file is nothing new but what’s interesting is that cfwheels/cfwheels-api has three dependencies defined. One is the core framework itself and pulls in the latest framework folder. The second is the newly published CFWheels DotEnvSettings Plugin which allows keeping sensitive information out of the repository by using a locally defined .env file. The last dependency is probably the most interesting, cause that one pulls in the Semantic Version module from ForgeBox which is a module that wasn’t specifically written for CFWheels but can be pulled in and used none the less. This opens up the potential of using many more modules from ForgeBox instead of being confined to just CFWheels Plugins.

CFWheels has moved to GitHub Discussions

Although Google Groups has served us well over the years, it’s started to lose some essential abilities and it’s looking a little long in the tooth.

We have decided that it would be a benefit to the community to migrate to GitHub Discussions. GitHub Discussions allows us to bring our community closer to where the code lives.

“People around the world are turning to open source—and to GitHub. It is becoming not only the home for developers, but a platform where people in many roles, doing diverse work, come to learn, engage with the community, and contribute to projects that advance the greater good.”

GitHub Octoverse 2020 Report

The benefits of moving to Github Discussions are numerous, but at a glance, we look forward to having better syntax highlighting, marking comments as answers, flagging threads as Answered, easily turning a discussion into an issue, and many more.

The Google Group will remain available, but we have disabled posting to the group, and we’ll treat it as a read-only archive of past discussions.

CFWheels Guides Moved to GitBook

We are glad to announce that the CFWheels Guides have been moved to GitBook.com. The good folks at GitBook are proud to support CFWheels and have granted us an Open Source Community account. We have migrated all the guides from our old provider to GitBook and will be making some more changes as we review all the links now that the domain has been switched. A few things you’ll notice right off the bat.

There is now a PDF download link to the right of the screen when viewing the guides. The link allows you to download the section you are on or the entire CFWheels Guides. Which by the way, is nearly 300 pages long. There is also a new search feature that will allow you to find topics easier. But the biggest change comes from the fact that by moving to GitBook we were able to move the guides to GitHub as well.

In fact the guides have been added as a sub directory in the cfwheels/cfweels GitHub repository. By moving the guides within the codebase, you can finally include both code changes and documentation changes in the same PR. This will make the guides more accessible to our contributors and make it easier to keep the codebase and guides in sync.

Please have a look through the new guides and let us know what you think. Oh, and if you find something that needs to be updated, you know the drill, clone, edit, and submit a PR.

Moving towards 2.x Beta

It’s been a while in the making (probably 9 months or more) but we’re finally rolling towards a 2.0 beta release, with just a few tickets in the queue left before we can set it free on the world.

In the meantime, you may have noticed a few changes in the CFWheels ecosystem, which we’ve needed to do to support CFWheels 2.x properly.

HTTPS baby!

Firstly, all CFWheels domains are now running over https://, which in this day and age, should be a given. No excuses for not doing this now.

guides.cfwheels.org

“docs.cfwheels.org” has been renamed guides.cfwheels.org and is where the main extended documentation and tutorials will live. This system is based on readme.io, and has been great in quickly creating some nice looking docs. We will continue to add to what’s there over the beta launch too.

However, it’s not perfect: the API reference on there is simply not designed to take something of the scope of the CFWheels API. The page can crash mobile browsers and is a little…unwieldy at best. Adding to the extremely odd SEO of the reference section (i.e, it’s not indexed at all), it’s time to move it off.

api.cfwheels.org (alpha)

So as docs.cfwheels.org has been deprecated, we’re going to split out the API reference to a new home, api.cfwheels.org. There’s lots of good reasons for this: With CFWheels 2.x, not only has the entire core (well, almost the entire core) been moved to cfscript, we’ve also commented every single public API function with javadoc style comments.

This means all the core functions you know and love now have been categorized and commented in the source code, so when pull requests come in, we can keep the documentation up to date at the same time.

The 2.x core has a new built in javadoc parser, so now we can just extract a JSON file where we can power api.cfwheels.org. This also has a huge advantage – we can offer offline/built in documentation browsers from within the debug section of your app. It will even read your own functions – so your local documentation reference will be increasingly valuable. More on this in detail soon.

More to come!

Over the next few weeks, we’ll try and get some blog posts out detailing some of the new 2.x beta features in detail. If there’s something in particular you’d like to know about, please ping a comment or find us in slack/mailing list/gitHub.

CFWheels 1.4.0 released, New documentation too..

First, some new announcements

You may have noticed a few changes around here! With the release of 1.4, we’ve taken the opportunity to greatly simplify our web footprint.

  • All documentation now lives on http://docs.cfwheels.org/ (thanks to readme.io). We hope this will allow people to more easily contribute to the fantastic documentation already there; you need a (free) readme.io account, but you should be able to ‘suggest edits’ for any page – feel free to help us out! We’re in the process of adding redirects from the old documentation – please bear with us on this one.
  • You’ll notice the plugin listings are greatly simplified – this is a temporary measure whilst we look at the whole plugin ecosystem generally
  • Downloads now live on the readme.io site at http://docs.cfwheels.org/page/download, but don’t forget you can always get everything at the Git Repo
  • You’ll notice a small change in the cfWheels logo – don’t panic, you’re not going mad, we just thought it might be nice to have something new and shiny to look at.
  • Tom King and Tim Badolato are now part of the Wheels core team. “Per” still does all the actual real work 🙂

Onwards and upwards!

1.4 is released, which brings the usual host of fixes and improvements, most noticeably a few tweaks to get Wheels running with Lucee Server: CFWheels should now correctly identify itself as Lucee in the debug output, and various other (older) Railo specific tweaks should get applied. Note, if you’re ever testing for ‘railo’ in the server scope on Lucee, it will return as true.

A couple of other changes might catch you out too, noticeably removal of the h() function, and “development” now being the default environment mode.

Get 1.4 Now!

Upgrading from 1.3x

  • Replace the entire /wheels/ folder
  • Replace URL rewriting rule files – i.e, /.htaccess, /web.config, /IsapiRewrite4.ini

Release notes:

Model Enhancements

  • Allow spaces in list passed in to the “include” argument on finders – #150 [Per Djurner]
  • Added findOrCreateByProperty, findAllKeys(), findFirst() and findLast() finder methods – [Per Djurner]
  • Add support for “GROUP BY” in sum(), average() etc. – #464 [Per Djurner]
  • Made exists() check for any record when “key” and “where” is not passed in [Per Djurner]
  • Added clearChangeInformation() for clearing knowledge of object changes – #433 [Jeremy Keczan, Per Djurner]
  • Evaluate validation error messages at runtime – #470 [Per Djurner]

View Enhancements

  • Respect blank “text” argument in linkTo() – #365 [Adam Chapman, Tony Petruzzi, Per Djurner]
  • Allow styleSheetLinkTag() and JavaScriptIncludeTag() to reference files starting from the root – [Per Djurner]
  • Added “monthNames” and “monthAbbreviations” arguments to form helpers for easy localization – [Per Djurner]

Controller Enhancements

  • Ability to prepend functions to the filter chain instead of appending – #321 [Per Djurner]
  • Pass in “appendToKey” to caches() to cache content separately – #439 [Per Djurner]
  • Allow external attachments with sendEmail() – [Adam Chapman, Tony Petruzzi]
  • Ability to redirect to a specific URL – [Simon Allard]
  • Option to correct JSON output by passing in x=”string” or x=”integer” to renderWith() – [Per Djurner]

Bug Fixes

  • Fix for blank path_info in CGI scope – #447 [Tim Badolato, Tony Petruzzi, Per Djurner]
  • Fix for accessing request scope key that does not exist from session – #446 [Brent Alexander, Per Djurner]
  • Removed “validate” property that was incorrectly set when calling create() – [Per Djurner]
  • Pass through “parameterize” in exists() [Per Djurner]
  • Do not remove “AS” when it’s in the SQL for a calculated property – #453 [Jean Duteau, Per Djurner]
  • Obfuscate parameters in named route patterns when URL rewriting is off – #455 [Amber Cline, Per Djurner]
  • Pass through “includeSoftDeletes” argument correctly – #451 [Jon Brose]

Miscellaneous

  • Support for the Lucee server – [Tom King]
  • Made “development” the default environment mode – [Per Djurner]
  • Removed deprecation work-around for the “if” argument on validation helpers – [Per Djurner]
  • Removed deprecation work-around for the “class” argument on association initialization methods – [Per Djurner]
  • Removed the “lib” folder – [Per Djurner]
  • Removed the h() function, use XMLFormat() instead – [Per Djurner]