Releases: cfwheels/cfwheels
Releases · cfwheels/cfwheels
CFWheels v2.5.1
CFWheels v2.5.0
Model Enhancements
- PR-1183-Allow datasource argument in finders #1183 - [Adam Chapman]
- PR-1201-Issue #929 validate not nullable columns with default #1201 - [Adam Chapman]
- PR-1202-Remove old oracle test workaround #1202 - [Adam Chapman]
- PR-1205-issue-1182-adds-simplelock-to-sql-caching #1205 - [Adam Chapman]
- PR-1222-Findall() performance bottleneck #1222 - [Adam Chapman]
- PR-1223-refactor-queryCallback-with-inbuilt-query-functions #1223 - [Adam Chapman]
- PR-1226-Invalid column not throwing exception in select argument #1226 - [Zain Ul Abideen]
- PR-1265-improve-performance-refactor-out-listfind #1265 - [Adam Chapman]
- PR-1260-Adds support for native query returnType #1260 - [Adam Chapman]
- PR-1249-Removed the original IF/ELSE condition that invalidates calculated props and added condition #1240 - [Zain Ul Abideen]
View Enhancements
- PR-1254-issue 908 enable paginationLinks() to set active class on parent #1254 - [Zain Ul Abideen]
Bug Fixes
- PR-1227-Return a numeric value if the primary key is Numeric #1227 - [Zain Ul Abideen]
- PR-1257-Checkbox bug when checkedvalue is not true #1257 - [Adam Chapman]
- PR-1246-set the default route if it is not passed in the function #1246 - [Zain Ul Abideen]
- PR-1256-issue 889 unable to duplicate component #1256 - [Zain Ul Abideen]
- PR-1253-Issue 580 select ambiguous column name using the wheels alias #1253 - [Zain Ul Abideen]
- PR-1245-Added afterFind callback hook in the findAll function in case of structs #1245 - [Zain Ul Abideen]
- PR-1302-Check for Reload Password when setting a url IP exception #1302 - Peter Amiri
Miscellaneous
- PR-1175-restoreTestRunnerApplicationScope setting #1175 - [Adam Chapman]
- PR-1176-fix text in core readme file #1176 - [Per Djurner]
- PR-1177-fix text in base template readme file #1177 - [Per Djurner]
- PR-1178-fix text in default template file #1178 - [Per Djurner]
- PR-1185-adds-root-docker-volume #1185 - [Adam Chapman]
- PR-1200-Update the docker-compose command to docker compose v2 syntax #1200 - [Adam Chapman, Peter Amiri]
- PR-1204-Add Lucee 6 to test matrix on local Docker test suite #1204 - [Peter Amiri]
- PR-1203-ensure testing params maintained #1203 - [Adam Chapman]
- PR-1228-Adding addClass attribute in the function textField #1228 - [Zain Ul Abideen]
- PR-1230-Add Adobe 2021 Support to local Docker and GitHub Actions testing - #1230 - Peter Amiri
- PR-1264-update Lucee 6 version used for tests to latest #1264 - [Zac Spitzer - * New Contributor *]
- PR-1241-Fix spelling and remove whitespace from link #1241 - [John Bampton]
- PR-1247-show the current git branch in the debug layout #1247 - [Michael Diederich]
- PR-1250-Added test framework functions in the docs #1250 - [Zain Ul Abideen]
- PR-1255-issue 1179 Downloaded the CDN files and changed paths in files #1255 - [Zain Ul Abideen]
Guides
- PR-1198-Documentation-fixes #1198 - [Adam Chapman]
CFWheels v2.4.0
Bug Fixes
- issue-1091-wheels-paths-in-error-template #1091 - [Adam Chapman]
- issue-1082-validations should not trim properties #1082 - [Adam Chapman]
- issue-1088-Adds SQL parsing regex tweak which correctly handles whitespace #1088 - [Adam Chapman, Adam Cameron]
Miscellaneous
- Adds cfformat ignore marker comments around core "view" cfm files that contain html markup - [Adam Chapman]
- Adds the ability to scroll large items horizontally in the test runner UI #1130 - [Adam Chapman]
- Fix cfformat ignore markers #1129 - [Adam Chapman]
- Enable finder model methods to returnAs "sql", mainly for debugging #1141 - [Adam Chapman]
- Show the Test Runner buttons in the CFWheels GUI on the Package List screen allowing the developer to run the entire test suite instead of one package at a time. - [Peter Amiri]
- The Base Template now contains all necessary placeholders for the CLI to interact with the application and be able to inject code properly. - [Peter Amiri]
- By default the Core tests will run in the application datasource, but the developer can setup a different database for running the Core tests to ensure there is no side effects from running the tests. If you do end up setting a different database for the coreTestDatasourceName, make sure to reload your application after running the Core tests. - [Peter Amiri]
- Fix two broken links in README. [#1150] - [John Bampton - * New Contributor *]
- Fix spelling [#1151][#1158] - [John Bampton - * New Contributor *]
- Add .env parser to parse .env files and add the properties found in the file to this.env scope. #1157 - [Peter Amiri]
- Update the local test suite to supported ARM architecture docker images to make the suite compatible with the Apple Silicon Macs. #1143 - [Peter Amiri]
Guides
CFWheels Version v2.3.0
This is the official 2.3.0 release. There were no new enhancements or bug fixes introduced from release candidate 1 so the change log is essentially the same as v2.3.0.rc.1.
CFWheels Version v2.3.0-rc.1
View Enhancements
- Adds association error support via
includeAssociations
argument #1080 - [Nikolaj Frey]
Bug Fixes
- onerror handler should increase user defined requestTimeout value #1056 - [Adam Chapman]
- deletedAt should also respect timestamp mode (UTC) #1063 - [David Belanger]
- Fixes No output from
Debug()
usage in plugin test cases #1061 - [Tom King] - Development mode will now properly return a 404 status if view not found #1067 - [Adam Cameron, Tom King]
- 404 status now properly returned without URL rewriting #1067 - [Adam Cameron, Tom King]
- Internal Docs in ACF2018 should now not display duplicate categories [Tom King]
- Internal Docs search now resets itself properly on backspace with empty value #982 - [Brandon Shea, Tom King]
ValidatesConfirmationOf()
now correctly enforces prescence of confirmation property #1070 - [Adam Cameron, Tom King]resource()
/resources()
now allows emptyonly
property to utilise as non-route parent #1083 - [Brian Ramsey]- Handle XSS Injection in development enviroment - [Michael Diederich]
- Fix params bug in CLI API [#1106] - [Peter Amiri]
Miscellaneous
- Update Docker Lucee Commandbox version to 5.2.0 - [Adam Chapman, Tom King]
- Minor internal obselete reference to modelComponentPath removed - [Adam Chapman, Tom King]
- Minor visual fix for long migration logs overflow in modal (scroll) - [Brian Ramsey]
- Add test suite for Lucee and H2 Database to the GitHub Actions test suite. - [Peter Amiri]
- On going changes to update the H2 drivers [#1107] - [Peter Amiri]
- Fixes some syntax formating introduced by cfformat [#1111] - [Adam Chapman]
- Minimum ColdFusion version is now ColdFusion (2018 release) Update 3 (2018,0,03,314033) / ColdFusion (2016 release) Update 10 (2016,0,10,314028) / ColdFusion 11 Update 18 (11,0,18,314030) #923 - [Michael Diederich]
- Wheels save(allowExplicitTimestamps=true) doesn't produce the expected result [#1113] - [SebastienFCT]
Potentially Breaking Changes
- Automatic Time Stamps: the deletedAt column was using the server's local time for the timestamp while createdAt / updatedAt were using the timestamp selected for the timestamp mode. The default for CFWheels' timestamp mode is UTC and therefore all future deletedAt timestamps will be in UTC unless you've changed the default. Please review any SQL that uses deletedAt for datetime comparison.
CFWheels Version 2.2.0
Controller Enhancements
- Added the
status
argument to allrender*()
functions to force returning a specific HTTP status code #1025 - [Adam Chapman, Tom King] - CORS
accessControlAllowOrigin
can now match subdomain wildcards #1031 - [Tom King]
Model Enhancements
- Experimental adapter for Oracle database - [Andrei B]
- Added
automaticValidations
argument to theproperty
method - [Per Djurner] - Support named second argument in
findOneBy[Property]And[Property]
andfindAllBy[Property]And[Property]
- [Per Djurner] - Support
value
argument infindOrCreateBy[Property]
- [Per Djurner] - Minor fix for
full null support
- [Michael Diederich]
View Enhancements
- Added the
required
argument toimageTag
to suppress exceptions if using non-existent files #979 - [Adam Chapman, Michael Diederich]
Bug Fixes
- Removed authenticity token id attribute to avoid non-unique id warnings in Chrome #953 - [Per Djurner]
- Fixes regular expression bug when using the SQL
IN
operator #944 - [Adam Chapman, Per Djurner] - Display content in maintenance mode on newer Lucee versions #848 - [Per Djurner]
validatesUniquenessOf
does not respect allowBlank #914 - [Adam Chapman]Wheels.RouteNotFound
Error page now escapes thearguments.path
to prevent XSS attacks - [Michael Diederich]buttonTo()
now uses<button>
internally instead of<input>
allowing for html in content - #798 - [Tom Sucaet, Tom King, Per Djurner]- Minor SQL preview fix in GUI - #992 - [Brandon Shea, Tom King]
Miscellaneous
- Added the
refresh
url parameter for auto refreshing test framework html - #986 - [Adam Chapman] - Allow custom migrator templates by scanning the
/migrator/templates
directory - [Adam Chapman] - Minimum Lucee 5 version is now 5.3.2.77 - Tests added - [Michael Diederich]
- Use
http_x_forwarded_proto
to determine if the application is running behind a loadbalancer that is performing SSL offloading - [Peter Amiri] - Allow the combination of
url
andparams
arguments withredirectTo
- [Adam Chapman] - Fixed some variable scoping - [Michael Diederich]
- Github Actions CI Pipeline - [Adam Chapman, Tom King]
- Flash Cookie can now be disabled via
set(flashStorage="none")
#978 [Tom King] processRequest()
accepts a route param -#1030 - [Adam Chapman]- Migration files are written with 664 mode -#1034 - [Adam Chapman]
CFWheels Version 2.1.0
Bug Fixes
- Fixed pagination order ambiguous column name exception - #980 [Adam Chapman, Mike Lange]
- Renames findLast() to findLastOne() for [email protected] 92 upwards compatibility #988
CFWheels Version 2.1.0 Beta
Potentially breaking changes
(Or, just things to look out for...)
- The new CFWheels internal GUI is more isolated and runs in it's own component: previously this was extending the developers main
Controller.cfc
which caused multiple issues. The migrator, test runner and routing GUIs have therefore all been re-written. - The plugins system behaviour no longer chains multiple functions of the same name as this was a major performance hit. It's recommended that plugin authors check their plugins to run on 2.1
- HTTP Verb/Method switching is now no longer allowed via GET requests and must be performed via POST (i.e via
_method
)
Model Enhancements
- Migrator now automatically manages the timestamp columns on
addRecord()
andupdateRecord()
calls - #852 [Charley Contreras] - Migrator correctly honors CFWheels Timestamp configuration settings (
setUpdatedAtOnCreate, softDeleteProperty, timeStampMode, timeStampOnCreateProperty, timeStampOnUpdateProperty
) - #852 [Charley Contreras] MSSQL
now usesNVARCHAR(max)
instead ofTEXT
#896 [Reuben Brown]- Allow createdAt and updatedAt to be explicitly assigned using the
allowExplicitTimestamps=true
argument - #887 - [Adam Chapman]
Controller Enhancements
- New
set(flashAppend=true)
option allows for appending of a Flash key instead of replacing - #855 - [Tom King] flashMessages()
now checks for an array of strings or just a string and outputs appropriately - #855 - [Tom King]flashInsert()
can now accept a one dimensional array - #855 - [Tom King]
Bug Fixes
- Allow uppercase table names containing reserved substrings like
OR
andAND
- #765 [Dmitry Yakhnov, Adam Chapman] - Calculated properties can now override an existing property - #764 [Adam Chapman, Andy Bellenie]
- Filters are now correctly called if there is more than one after filter - #853 [Brandon Shea, Tom King, Adam Chapman]
- Minor fix for duplicate debug output in the test suite - #176 [Adam Chapman, Tom King]
- Convert
handle
to a valid variable name so it doesn't break when using dot notation - #846 [Per Djurner] - The
validatesUniquenessOf()
check now handles cases when duplicates already exist - #480 [Randall Meeker, Per Djurner] validatesConfirmationOf()
now has acaseSensitive
argument to optionally perform a case sensitive comparison - #918 [Tom King]sendFile()
no longer expands an already expanded directory on ACF2016 - #873 [David Paul Belanger, Tom King, strubenstein]- Automatic database migrations onApplicationStart now correctly reference appropriate Application scope - #870 [Tom King]
usesLayout()
now can be called more than once and properly respects the order called - #891 [David Paul Belanger]- Migrator MSSQL adapter now respects
Time
andTimestamp
Column Types - #906 [Reuben Brown] - Automatic migrations fail on application start - #913 [Adam Chapman]
- Default
cacheFileChecking
totrue
in development mode - [Adam Chapman, Steve Harvey] - Migrator columnNames list values are now trimmed - #919 [Adam Chapman]
- Fixes bug when httpRequestData content is a JSON array - #926 [Adam Chapman]
- When httpRequestData content is a JSON array, contents are now automatically added to
params._json
- #939 [Tom King] - Fixes bug where Migrator $execute() always appends semi-colon - #924 [Adam Chapman]
- Fixes bug where model createdAt property is changed upon update - #927 [Brandon Shea, Adam Chapman]
- Fixed silent application.wheels scope exception hampering autoMigrateDatabase - #957 [Adam Chapman, Tom King]
Miscellaneous
- Added the ability to pass
&lock=false
in the URL for when reload requests won't work due to locking - [Per Djurner] - Basic 302 redirects now available in mapper via
redirect
argument forGET/PUT/PATCH/POST/DELETE
- #847 - [Tom King] .[format]
based routes can now be turned off inresources()
andresource()
viamapFormat=false
- #899 - [Tom King]mapFormat
can now be set as a default inmapper()
for all childresources()
andresource()
calls - #899 - [Tom King]HEAD
requests are now aliased toGET
requests #860 - [Tom King]- Added the
includeFilters
argument to theprocessRequest
function for skipping execution of filters during controller unit tests - [Adam Chapman] - Added the
useIndex
argument to finders for adding table index hints #864 - [Adam Chapman] - HTTP Verb/Method switching is now no longer allowed via
GET
requests and must be performed viaPOST
#886 - [Tom King] - CORS Header
Access-Control-Allow-Origin
can now be set either via a simple value or list inaccessControlAllowOrigin()
#888 [Tom King] - CORS Header
Access-Control-Allow-Methods
can now be set viaaccessControlAllowMethods(value)
#888 [Tom King] - CORS Header
Access-Control-Allow-Credentials
can now be turned on viaaccessControlAllowCredentials(true)
; #888 [Tom King] accessControlAllowMethodsByRoute()
now allows for automatic matching of available methods for a route and sets CORS HeaderAccess-Control-Allow-Methods
appropriately #888 [Tom King]- CORS Header can now be set via
accessControlAllowHeaders(value)
#888 [Tom King] - Performance Improvement: Scanning of Models and Controllers #917 [Adam Chapman]
- Added the
authenticityToken()
function for returning the raw CSRF authenticity token #925 [Adam Chapman] - Adds
enablePublicComponent
,enableMigratorComponent
,enablePluginsComponent
enviroment settings to completely disable those features #926 [Tom King] - New CFWheels Internal GUI #931 [Tom King]
pluginRunner()
now removed in favour of 1.x plugin behaviour for performance purposes #916 [Core Team]- Adds
validateTestPackageMetaData
environment setting for skipping test package validation on large test suites #950 [Adam Chapman] - Added aliases for
migrator.TableDefinition
functions to allow singular variant of thecolumnNames
property #922 [Sébastien FOCK CHOW THO] onAbort
is now supported viaevents/onabort.cfm
#962 [Brian Ramsey]
CFWheels Version 2.0.2
Security Release
It is strongly recommended to update to CFWheels 2.0.2 if you are running either 2.0.0 or 2.0.1. This issue does not affect 1.x releases. This release introduces a potentially breaking change, so you are encouraged to test your application appropriately before deploying.
Potential Breaking Changes
- Blank strings in SQL are no longer converted to null
CFWheels Version 2.0.1
Bug Fixes
- Fixes reload links on application test suite page.
- Set
dbname
incfdbinfo
calls when using custom database connection string. - Fixes
humanize()
function. - Enables the
rel
attribute forstylesheetlinkTag()
. - Returning a
NULL
value from a query with NULL support enabled no longer throws an error. - Accessing a route with incorrect verb now provides a more useful error message.
- Fixed bug with arrays in URLs.
- startFormTag now properly applies the method attribute.
- Incompatible plugin notice now ignores patch releases unless specified.