diff --git a/admin/RELEASE.md b/admin/RELEASE.md index 8c5f463355fb..4f199a821177 100644 --- a/admin/RELEASE.md +++ b/admin/RELEASE.md @@ -6,16 +6,22 @@ > > -MGatner, kenjis -## Merge `develop` branch into next minor version branch `4.x` +## Notation + +- `4.x.x`: The new release version. (e.g., `4.5.3`) +- `4.y`: The next minor version. (e.g., `4.6`) +- `4.z`: The next next minor version. (e.g., `4.7`) + +## Merge `develop` branch into next minor version branch `4.y` Before starting release process, if there are commits in `develop` branch that -are not merged into `4.x` branch, merge them. This is because if conflicts occur, +are not merged into `4.y` branch, merge them. This is because if conflicts occur, merging will take time. ```console git fetch upstream -git switch 4.x -git merge upstream/4.x +git switch 4.y +git merge upstream/4.y git merge upstream/develop git push upstream HEAD ``` @@ -24,11 +30,10 @@ git push upstream HEAD If you release a new minor version. -* [ ] Create PR to merge `4.x` into `develop` and merge it +* [ ] Create PR to merge `4.y` into `develop` and merge it * [ ] Rename the current minor version (e.g., `4.5`) in Setting > Branches > "Branch protection rules" to the next minor version. E.g. `4.5` → `4.6` -* [ ] 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.y` branch (This closes all PRs to the branch) ## Changelog @@ -90,8 +95,8 @@ Work off direct clones of the repos so the release branches persist for a time. * [ ] Replace **CHANGELOG.md** with the new version generated above * [ ] Update **user_guide_src/source/changelogs/v4.x.x.rst** * Remove the section titles that have no items -* [ ] Update **user_guide_src/source/installation/upgrade_{ver}.rst** - * [ ] fill in the "All Changes" section, and add it to **upgrading.rst** +* [ ] Update **user_guide_src/source/installation/upgrade_4xx.rst** + * [ ] fill in the "All Changes" section, and add it to **upgrade_4xx.rst** * git diff --name-status origin/master -- . ':!system' ':!tests' ':!user_guide_src' * Note: `tests/` is not used for distribution repos. See `admin/starter/tests/` * [ ] Remove the section titles that have no items @@ -137,7 +142,7 @@ Work off direct clones of the repos so the release branches persist for a time. ## New Contributors * - **Full Changelog**: https://github.com/codeigniter4/CodeIgniter4/compare/v4.x.x...v4.x.x + **Full Changelog**: https://github.com/codeigniter4/CodeIgniter4/compare/v4.x.w...v4.x.x ``` Click the "Generate release notes" button, and get the "New Contributors". * [ ] Watch for the "Deploy Distributable Repos" action to make sure **framework**, @@ -164,19 +169,19 @@ Work off direct clones of the repos so the release branches persist for a time. git merge origin/master git push origin HEAD ``` -* [ ] Update the next minor version branch `4.x`: +* [ ] Update the next minor version branch `4.y`: ```console git fetch origin - git checkout 4.x - git merge origin/4.x + git checkout 4.y + git merge origin/4.y git merge origin/develop git push origin HEAD ``` -* [ ] [Minor version only] Create the new next minor version branch `4.x`: +* [ ] [Minor version only] Create the new next minor version branch `4.z`: ```console git fetch origin git switch develop - git switch -c 4.x + git switch -c 4.z git push origin HEAD ``` * [ ] Request CVEs and Publish any Security Advisories that were resolved from private forks diff --git a/admin/starter/composer.json b/admin/starter/composer.json index b84684d82a4f..38a51e29fb64 100644 --- a/admin/starter/composer.json +++ b/admin/starter/composer.json @@ -21,7 +21,7 @@ "autoload": { "psr-4": { "App\\": "app/", - "Config\\": "app/Config" + "Config\\": "app/Config/" }, "exclude-from-classmap": [ "**/Database/Migrations/**" diff --git a/user_guide_src/source/changelogs/index.rst b/user_guide_src/source/changelogs/index.rst index b6f26d0c511c..cb29627ae0c3 100644 --- a/user_guide_src/source/changelogs/index.rst +++ b/user_guide_src/source/changelogs/index.rst @@ -13,6 +13,7 @@ See all the changes. :titlesonly: v4.6.0 + v4.5.4 v4.5.3 v4.5.2 v4.5.1 diff --git a/user_guide_src/source/changelogs/v4.5.4.rst b/user_guide_src/source/changelogs/v4.5.4.rst new file mode 100644 index 000000000000..bf737a99a335 --- /dev/null +++ b/user_guide_src/source/changelogs/v4.5.4.rst @@ -0,0 +1,35 @@ +############# +Version 4.5.4 +############# + +Release Date: Unreleased + +**4.5.4 release of CodeIgniter4** + +.. contents:: + :local: + :depth: 3 + +******** +BREAKING +******** + +*************** +Message Changes +*************** + +******* +Changes +******* + +************ +Deprecations +************ + +********** +Bugs Fixed +********** + +See the repo's +`CHANGELOG.md `_ +for a complete list of bugs fixed. diff --git a/user_guide_src/source/incoming/filters.rst b/user_guide_src/source/incoming/filters.rst index 0697e706e09d..2461755610e8 100644 --- a/user_guide_src/source/incoming/filters.rst +++ b/user_guide_src/source/incoming/filters.rst @@ -82,7 +82,7 @@ Configuring Filters There are two ways to configure filters when they get run. One is done in **app/Config/Filters.php**, the other is done in **app/Config/Routes.php**. -If you want to specify filter to a specific route, use **app/Config/Routes.php** +If you want to specify filters to defined routes, use **app/Config/Routes.php** and see :ref:`URI Routing `. .. Note:: The safest way to apply filters is to :ref:`disable auto-routing `, and :ref:`set filters to routes `. @@ -95,9 +95,11 @@ configure exactly when the filters run. .. Warning:: It is recommended that you should always add ``*`` at the end of a URI in the filter settings. Because a controller method might be accessible by different URLs than you think. - For example, when :ref:`auto-routing-legacy` is enabled, if you have ``Blog::index``, + For example, when :ref:`auto-routing-legacy` is enabled, if you have ``Blog::index()``, it can be accessible with ``blog``, ``blog/index``, and ``blog/index/1``, etc. +.. _filters-aliases: + $aliases -------- @@ -106,7 +108,9 @@ filters to run: .. literalinclude:: filters/003.php -Aliases are mandatory and if you try to use a full class name later, the system will throw an error. Defining them +Aliases are mandatory and if you try to use a full class name later, the system will throw an error. + +Defining them in this way makes it simple to switch out the class used. Great for when you decided you need to change to a different authentication system since you only change the filter's class and you're done. @@ -170,7 +174,7 @@ an array with the ``except`` key and a URI path (relative to BaseURL) to match a and the URI paths specified in the filter could be different. See :ref:`upgrade-447-filter-paths` for details. -Any place you can use a URI path (relative to BaseURL) in the filter settings, you can use a regular expression or, like in this example, use +Any place you can use a URI path (relative to BaseURL) in the filter settings, you can use a regular expression or, like in this example above, use an asterisk (``*``) for a wildcard that will match all characters after that. In this example, any URI path starting with ``api/`` would be exempted from CSRF protection, but the site's forms would all be protected. @@ -186,17 +190,19 @@ $methods because :ref:`auto-routing-legacy` permits any HTTP method to access a controller. Accessing the controller with a method you don't expect could bypass the filter. -You can apply filters to all requests of a certain HTTP method, like POST, GET, PUT, etc. In this array, you would -specify the method name in **lowercase**. It's value would be an array of filters to run: +You can apply filters to all requests of a certain HTTP method, like ``POST``, ``GET``, ``PUT``, etc. +It's value would be an array of filters to run: .. literalinclude:: filters/008.php .. note:: Unlike the ``$globals`` or the ``$filters`` properties, these will only run as before filters. -In addition to the standard HTTP methods, this also supports one special case: ``cli``. The ``cli`` method would apply to +In addition to the standard HTTP methods, this also supports one special case: ``CLI``. The ``CLI`` method would apply to all requests that were run from the command line. +.. note:: Prior to v4.5.0, due to a bug, you needed to specify the HTTP method names in **lowercase**. + $filters -------- diff --git a/user_guide_src/source/incoming/routing.rst b/user_guide_src/source/incoming/routing.rst index 0662dde964d1..784b18304677 100644 --- a/user_guide_src/source/incoming/routing.rst +++ b/user_guide_src/source/incoming/routing.rst @@ -388,12 +388,13 @@ Applying Filters ================ You can alter the behavior of specific routes by supplying filters to run before or after the controller. This is especially handy during authentication or api logging. + The value for the filter can be a string or an array of strings: * matching the aliases defined in **app/Config/Filters.php**. * filter classnames -See :doc:`Controller Filters ` for more information on setting up filters. +See :ref:`Controller Filters ` for more information on defining aliases. .. Warning:: If you set filters to routes in **app/Config/Routes.php** (not in **app/Config/Filters.php**), it is recommended to disable Auto Routing (Legacy). @@ -405,7 +406,7 @@ See :doc:`Controller Filters ` for more information on setting up filte Alias Filter ------------ -You specify an alias defined in **app/Config/Filters.php** for the filter value: +You specify an alias :ref:`defined in app/Config/Filters.php ` for the filter value: .. literalinclude:: routing/034.php @@ -418,7 +419,7 @@ Classname Filter .. versionadded:: 4.1.5 -You specify a filter classname for the filter value: +You can specify a filter classname for the filter value: .. literalinclude:: routing/036.php @@ -435,7 +436,7 @@ Multiple Filters :ref:`Upgrading from 4.1.4 to 4.1.5 ` for the details. -You specify an array for the filter value: +You can specify an array for the filter value: .. literalinclude:: routing/037.php diff --git a/user_guide_src/source/installation/upgrade_420.rst b/user_guide_src/source/installation/upgrade_420.rst index 03aebabb015c..d86800f58dbc 100644 --- a/user_guide_src/source/installation/upgrade_420.rst +++ b/user_guide_src/source/installation/upgrade_420.rst @@ -43,6 +43,8 @@ The constants ``EVENT_PRIORITY_LOW``, ``EVENT_PRIORITY_NORMAL`` and ``EVENT_PRIO composer.json ============= +.. note:: This procedure is not required in v4.5.0 or later. + If you use Composer, when you installed CodeIgniter v4.1.9 or before, and if there are ``App\\`` and ``Config\\`` namespaces in your ``/composer.json``'s ``autoload.psr-4`` like the following, you need to remove these lines, and run ``composer dump-autoload``. diff --git a/user_guide_src/source/installation/upgrade_454.rst b/user_guide_src/source/installation/upgrade_454.rst new file mode 100644 index 000000000000..393324c3b40c --- /dev/null +++ b/user_guide_src/source/installation/upgrade_454.rst @@ -0,0 +1,55 @@ +############################# +Upgrading from 4.5.3 to 4.5.4 +############################# + +Please refer to the upgrade instructions corresponding to your installation method. + +- :ref:`Composer Installation App Starter Upgrading ` +- :ref:`Composer Installation Adding CodeIgniter4 to an Existing Project Upgrading ` +- :ref:`Manual Installation Upgrading ` + +.. contents:: + :local: + :depth: 2 + +********************** +Mandatory File Changes +********************** + +**************** +Breaking Changes +**************** + +********************* +Breaking Enhancements +********************* + +************* +Project Files +************* + +Some files in the **project space** (root, app, public, writable) received updates. Due to +these files being outside of the **system** scope they will not be changed without your intervention. + +.. note:: There are some third-party CodeIgniter modules available to assist + with merging changes to the project space: + `Explore on Packagist `_. + +Content Changes +=============== + +The following files received significant changes (including deprecations or visual adjustments) +and it is recommended that you merge the updated versions with your application: + +Config +------ + +- @TODO + +All Changes +=========== + +This is a list of all files in the **project space** that received changes; +many will be simple comments or formatting that have no effect on the runtime: + +- @TODO diff --git a/user_guide_src/source/installation/upgrading.rst b/user_guide_src/source/installation/upgrading.rst index 1b34babb5f4b..da6f179e96ed 100644 --- a/user_guide_src/source/installation/upgrading.rst +++ b/user_guide_src/source/installation/upgrading.rst @@ -17,6 +17,7 @@ See also :doc:`./backward_compatibility_notes`. backward_compatibility_notes upgrade_460 + upgrade_454 upgrade_453 upgrade_452 upgrade_451