diff --git a/.github/workflows/test-scss.yml b/.github/workflows/test-scss.yml index 417eede8f344..e93455d3a050 100644 --- a/.github/workflows/test-scss.yml +++ b/.github/workflows/test-scss.yml @@ -36,7 +36,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Node - uses: actions/setup-node@v3.0.0 + uses: actions/setup-node@v4.0.0 with: # node version based on dart-sass test workflow node-version: 16 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c9eaea56c91..9cf10b0f8372 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,23 @@ # Changelog -## [v4.4.2](https://github.com/codeigniter4/CodeIgniter4/tree/v4.4.1) (2023-10-19) +## [v4.4.3](https://github.com/codeigniter4/CodeIgniter4/tree/v4.4.3) (2023-10-26) +[Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.4.2...v4.4.3) + +### SECURITY + +* *Detailed Error Report is Displayed in Production Environment* was fixed. See the [Security advisory](https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-hwxf-qxj7-7rfj) for more information. + +### Fixed Bugs + +* fix: FilterTestTrait::getFilterCaller() does not support Filter classes as array by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8058 +* fix: add dbgroup to model template only when specified as an option by @sammyskills in https://github.com/codeigniter4/CodeIgniter4/pull/8077 +* Update phpstan-codeigniter and fix errors on Modules by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/8036 +* fix: [Validation] exact_length does not pass int values by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8088 +* fix: [Table] field named `data` will produce bugged output by @ping-yee in https://github.com/codeigniter4/CodeIgniter4/pull/8054 +* docs: fix event points descriptions by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8076 +* docs: fix helper loading by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8084 + +## [v4.4.2](https://github.com/codeigniter4/CodeIgniter4/tree/v4.4.2) (2023-10-19) [Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.4.1...v4.4.2) ### Fixed Bugs diff --git a/admin/RELEASE.md b/admin/RELEASE.md index 776c1f70a941..98089ae8181f 100644 --- a/admin/RELEASE.md +++ b/admin/RELEASE.md @@ -10,11 +10,11 @@ If you release a new minor version. -* Create PR to merge `4.x` into `develop` and merge it -* Rename the current minor version (e.g., `4.4`) in Setting > Branches > +* [ ] Create PR to merge `4.x` into `develop` and merge it +* [ ] Rename the current minor version (e.g., `4.4`) in Setting > Branches > "Branch protection rules" to the next minor version. E.g. `4.4` → `4.5` -* Delete the merged `4.x` branch (This closes all PRs to the branch) -* Do the regular release process. Go to the next "Changelog" section +* [ ] Delete the merged `4.x` branch (This closes all PRs to the branch) +* [ ] Do the regular release process. Go to the next "Changelog" section ## Changelog @@ -48,17 +48,18 @@ the existing content. ## Preparation -* Work off direct clones of the repos so the release branches persist for a time -* Clone both **codeigniter4/CodeIgniter4** and **codeigniter4/userguide** and +Work off direct clones of the repos so the release branches persist for a time. + +* [ ] Clone both **codeigniter4/CodeIgniter4** and **codeigniter4/userguide** and resolve any necessary PRs ```console git clone git@github.com:codeigniter4/CodeIgniter4.git git clone git@github.com:codeigniter4/userguide.git ``` -* Vet the **admin/** folders for any removed hidden files (Action deploy scripts +* [ ] Vet the **admin/** folders for any removed hidden files (Action deploy scripts *do not remove these*) * git diff --name-status origin/master admin/ -* Merge any Security Advisory PRs in private forks +* [ ] Merge any Security Advisory PRs in private forks ## Process @@ -66,29 +67,38 @@ the existing content. > been included with their PR, so this process assumes you will not be > generating much new content. -* Create a new branch `release-4.x.x` -* Update **system/CodeIgniter.php** with the new version number: +* [ ] Create a new branch `release-4.x.x` +* [ ] Update **system/CodeIgniter.php** with the new version number: `const CI_VERSION = '4.x.x';` -* Update **user_guide_src/source/conf.py** with the new `version = '4.x'` (if applicable) +* [ ] Update **user_guide_src/source/conf.py** with the new `version = '4.x'` (if applicable) and `release = '4.x.x'` -* Replace **CHANGELOG.md** with the new version generated above -* Update **user_guide_src/source/changelogs/{version}.rst** +* [ ] Replace **CHANGELOG.md** with the new version generated above +* [ ] Update **user_guide_src/source/changelogs/{version}.rst** * Set the date to format `Release Date: January 31, 2021` * Remove the section titles that have no items -* Update **user_guide_src/source/installation/upgrade_{ver}.rst** +* [ ] Update **user_guide_src/source/installation/upgrade_{ver}.rst** * fill in the "All Changes" section, and add it to **upgrading.rst** * git diff --name-status origin/master -- . ':!system' * Remove the section titles that have no items * [Minor version only] Update the "from" version in the title. E.g., `from 4.3.x` → `from 4.3.8` -* Commit the changes with `Prep for 4.x.x release` and push to origin -* Create a new PR from `release-4.x.x` to `develop`: +* [ ] Commit the changes with `Prep for 4.x.x release` and push to origin +* [ ] Create a new PR from `release-4.x.x` to `develop`: * Title: `Prep for 4.x.x release` - * Decription: `Updates changelog and version references for 4.x.x.` (plus checklist) -* Let all tests run, then review and merge the PR -* Create a new PR from `develop` to `master`: + * Description: + ``` + Updates changelog and version references for 4.x.x. + + Previous version: #xxxx + Release Code: TODO + New Changelog: TODO + ``` + (plus checklist) +* [ ] Let all tests run, then review and merge the PR +* [ ] Create a new PR from `develop` to `master`: * Title: `4.x.x Ready code` * Description: blank -* Merge the PR then create a new Release: +* [ ] Merge the PR and wait for all tests. +* [ ] Create a new Release: * Tag: `v4.x.x` (Create new tag) * Target: `master` * Title: `CodeIgniter 4.x.x` @@ -103,22 +113,23 @@ the existing content. **Full Changelog**: https://github.com/codeigniter4/CodeIgniter4/compare/v4.x.x...v4.x.x ``` -* Watch for the "Deploy Distributable Repos" action to make sure **framework**, + Click the "Generate release notes" button, and get the "New Contributors". +* [ ] Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated -* Run the following commands to install and test `appstarter` and verify the new +* [ ] Run the following commands to install and test `appstarter` and verify the new version: ```console composer create-project codeigniter4/appstarter release-test cd release-test composer test && composer info codeigniter4/framework ``` -* Verify that the user guide actions succeeded: +* [ ] Verify that the user guide actions succeeded: * "[Deploy Distributable Repos](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/deploy-distributables.yml)", the main repo * "[Deploy Production](https://github.com/codeigniter4/userguide/actions/workflows/deploy.yml)", UG repo * "[pages-build-deployment](https://github.com/codeigniter4/userguide/actions/workflows/pages/pages-build-deployment)", UG repo * Check if "CodeIgniter4.x.x.epub" is added to UG repo. "CodeIgniter.epub" was created when v4.3.8 was released. -* Fast-forward `develop` branch to catch the merge commit from `master` +* [ ] Fast-forward `develop` branch to catch the merge commit from `master` ```console git fetch origin git checkout develop @@ -126,7 +137,7 @@ the existing content. git merge origin/master git push origin HEAD ``` -* Update the next minor upgrade branch `4.x`: +* [ ] Update the next minor upgrade branch `4.x`: ```console git fetch origin git checkout 4.x @@ -134,22 +145,22 @@ the existing content. git merge origin/develop git push origin HEAD ``` -* [Minor version only] Create the next minor upgrade branch `4.x`: +* [ ] [Minor version only] Create the next minor upgrade branch `4.x`: ```console git fetch origin git switch develop git switch -c 4.x git push origin HEAD ``` -* Publish any Security Advisories that were resolved from private forks +* [ ] Publish any Security Advisories that were resolved from private forks (note: publishing is restricted to administrators): -* Announce the release on the forums and Slack channel +* [ ] Announce the release on the forums and Slack channel (note: this forum is restricted to administrators): * Make a new topic in the "News & Discussion" forums: https://forum.codeigniter.com/forum-2.html * The content is somewhat organic, but should include any major features and changes as well as a link to the User Guide's changelog -* Create a PR for new changelog and upgrade for the next version +* [ ] Create a PR for new changelog and upgrade for the next version * Create **user_guide_src/source/changelogs/{next_version}.rst** and add it to **index.rst** (See **next-changelog-*.rst**) * Create **user_guide_src/source/installation/upgrade_{next_version}.rst** and add it to diff --git a/app/Config/Boot/development.php b/app/Config/Boot/development.php index 05a861258fc9..aa8099a46501 100644 --- a/app/Config/Boot/development.php +++ b/app/Config/Boot/development.php @@ -7,6 +7,8 @@ | In development, we want to show as many errors as possible to help | make sure they don't make it to production. And save us hours of | painful debugging. + | + | If you set 'display_errors' to '1', CI4's detailed error report will show. */ error_reporting(-1); ini_set('display_errors', '1'); diff --git a/app/Config/Boot/production.php b/app/Config/Boot/production.php index 21d25805674a..73c7c60afbc7 100644 --- a/app/Config/Boot/production.php +++ b/app/Config/Boot/production.php @@ -6,6 +6,8 @@ |-------------------------------------------------------------------------- | Don't show ANY in production environments. Instead, let the system catch | it and display a generic error message. + | + | If you set 'display_errors' to '1', CI4's detailed error report will show. */ ini_set('display_errors', '0'); error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); diff --git a/app/Config/Boot/testing.php b/app/Config/Boot/testing.php index e07a1d43f43e..e84670e972f6 100644 --- a/app/Config/Boot/testing.php +++ b/app/Config/Boot/testing.php @@ -1,5 +1,11 @@ - * @phpstan-var array + * @var array|string> [filter_name => classname] + * or [filter_name => [classname1, classname2, ...]] + * @phpstan-var array> */ public array $aliases = [ 'csrf' => CSRF::class, diff --git a/app/Views/errors/html/error_404.php b/app/Views/errors/html/error_404.php index c3010132f9b5..e506f08350e7 100644 --- a/app/Views/errors/html/error_404.php +++ b/app/Views/errors/html/error_404.php @@ -77,7 +77,7 @@ - +

diff --git a/app/Views/errors/html/error_exception.php b/app/Views/errors/html/error_exception.php index f311d910c0fa..1c094d728872 100644 --- a/app/Views/errors/html/error_exception.php +++ b/app/Views/errors/html/error_exception.php @@ -44,6 +44,7 @@ +
    @@ -66,7 +67,7 @@
  • - +

+