Skip to content

Commit

Permalink
Merge pull request #7461 from codeigniter4/develop
Browse files Browse the repository at this point in the history
4.3.4 Ready code
  • Loading branch information
kenjis authored Apr 27, 2023
2 parents 8a74161 + 5127f98 commit 00a60e0
Show file tree
Hide file tree
Showing 116 changed files with 1,544 additions and 567 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/reusable-phpunit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,8 @@ jobs:
if: ${{ contains(inputs.extra-extensions, 'imagick') }}
run: |
sudo apt-get update
sudo apt-get install --reinstall libgs9-common fonts-noto-mono libgs9:amd64 libijs-0.35:amd64 fonts-urw-base35 ghostscript poppler-data libjbig2dec0:amd64 gsfonts libopenjp2-7:amd64 fonts-droid-fallback fonts-dejavu-core
sudo apt-get install -y imagemagick
sudo apt-get install --reinstall libgs9-common fonts-noto-mono libgs9:amd64 libijs-0.35:amd64 fonts-urw-base35 ghostscript poppler-data libjbig2dec0:amd64 libopenjp2-7:amd64 fonts-droid-fallback fonts-dejavu-core
sudo apt-get install -y gsfonts libmagickwand-dev imagemagick
sudo apt-get install --fix-broken
- name: Checkout
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test-phpunit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- composer.json
- phpunit.xml.dist
- .github/workflows/test-phpunit.yml
- .github/workflows/reusable-phpunit-test.yml

pull_request:
branches:
Expand All @@ -26,6 +27,7 @@ on:
- composer.json
- phpunit.xml.dist
- .github/workflows/test-phpunit.yml
- .github/workflows/reusable-phpunit-test.yml

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## [v4.3.4](https://github.com/codeigniter4/CodeIgniter4/tree/v4.3.4) (2023-04-27)
[Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.3.3...v4.3.4)

### Breaking Changes

* fix: redirect status code by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7445
* fix: [SQLite3][Postgres][SQLSRV][OCI8] Forge::modifyColumn() changes NULL constraint incorrectly by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7371

### Fixed Bugs

* fix: view cell cannot locate the auto-generated view file by @sammyskills in https://github.com/codeigniter4/CodeIgniter4/pull/7392
* fix: CURLRequest - clear response headers between requests by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/7398
* fix: [Auto Routing Improved] spark routes shows invalid routes by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7419
* fix: remove $insertID in make:model template by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7443
* fix: add missing 'make:cell' in app/Config/Generators.php by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7458

### Refactoring

* refactor: Security::getPostedToken() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7377

## [v4.3.3](https://github.com/codeigniter4/CodeIgniter4/tree/v4.3.3) (2023-03-26)
[Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.3.2...v4.3.3)

Expand Down
145 changes: 75 additions & 70 deletions admin/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ To auto-generate, navigate to the
[Releases](https://github.com/codeigniter4/CodeIgniter4/releases) page,
click the "Draft a new release" button.

* Tag: "v4.x.x" (Create new tag)
* Target: develop
* Tag: `v4.x.x` (Create new tag)
* Target: `develop`

Click the "Generate release notes" button.

Expand All @@ -49,10 +49,10 @@ the existing content.
* 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 [email protected]:codeigniter4/CodeIgniter4.git
git clone [email protected]:codeigniter4/userguide.git
```
```console
git clone [email protected]:codeigniter4/CodeIgniter4.git
git clone [email protected]:codeigniter4/userguide.git
```
* Vet the **admin/** folders for any removed hidden files (Action deploy scripts
*do not remove these*)
* Merge any Security Advisory PRs in private forks
Expand All @@ -69,88 +69,93 @@ git clone [email protected]:codeigniter4/userguide.git
* 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
* Set the date in **user_guide_src/source/changelogs/{version}.rst** to format
`Release Date: January 31, 2021`
* Create a new changelog for the next version at
**user_guide_src/source/changelogs/{next_version}.rst** and add it to
**index.rst**
* Create **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/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**
* fill in the "All Changes" section, and add it to **upgrading.rst**
* git diff --name-status origin/master -- . ':!system'
* Commit the changes with "Prep for 4.x.x release" and push to origin
* Remove the section titles that have no items
* 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)
* 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`:
* Title: "4.x.x Ready code"
* Description: blank
* Title: `4.x.x Ready code`
* Description: blank
* Merge the PR then create a new Release:
* Version: "v4.x.x"
* Target: master
* Title: "CodeIgniter 4.x.x"
* Description:
```
CodeIgniter 4.x.x release.
* Version: `v4.x.x`
* Target: `master`
* Title: `CodeIgniter 4.x.x`
* Description:
```
CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

## New Contributors
*
## 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.x...v4.x.x
```
* 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
version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* 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
* "[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
* Fast-forward `develop` branch to catch the merge commit from `master`
```console
git fetch origin
git checkout develop
git merge origin/develop
git merge origin/master
git push origin HEAD
```
```console
git fetch origin
git checkout develop
git merge origin/develop
git merge origin/master
git push origin HEAD
```
* Update the next minor upgrade branch `4.x`:
```console
git fetch origin
git checkout 4.x
git merge origin/4.x
git merge origin/develop
git push origin HEAD
```
```console
git fetch origin
git checkout 4.x
git merge origin/4.x
git merge origin/develop
git push origin HEAD
```
* [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
```
```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
(note: publishing is restricted to administrators):
* 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
* 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 **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
**upgrading.rst**

## After Publishing Security Advisory

* Send a PR to [PHP Security Advisories Database](https://github.com/FriendsOfPHP/security-advisories).
* E.g. https://github.com/FriendsOfPHP/security-advisories/pull/606
* See https://github.com/FriendsOfPHP/security-advisories#contributing
* Don't forget to run `php -d memory_limit=-1 validator.php`, before
submitting the PR
* E.g. https://github.com/FriendsOfPHP/security-advisories/pull/606
* See https://github.com/FriendsOfPHP/security-advisories#contributing
* Don't forget to run `php -d memory_limit=-1 validator.php`, before
submitting the PR

## Appendix

Expand Down Expand Up @@ -180,13 +185,13 @@ sudo pip3 install sphinx_rtd_theme
**./CodeIgniter4.x.x.epub**
* Commit the changes with "Update for 4.x.x" and push to origin
* Create a new PR from `release-4.x.x` to `develop`:
* Title: "Update for 4.x.x"
* Description: blank
* Title: "Update for 4.x.x"
* Description: blank
* Merge the PR
* Create a new Release:
* Version: "v4.x.x"
* Title: "CodeIgniter 4.x.x User Guide"
* Description: "CodeIgniter 4.x.x User Guide"
* Version: "v4.x.x"
* Title: "CodeIgniter 4.x.x User Guide"
* Description: "CodeIgniter 4.x.x User Guide"
* Watch for the "github pages" Environment to make sure the deployment succeeds

The User Guide website should update itself via the deploy GitHub Action. Should
Expand Down
2 changes: 2 additions & 0 deletions app/Config/App.php
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ class App extends BaseConfig
*
* The default timezone that will be used in your application to display
* dates with the date helper, and can be retrieved through app_timezone()
*
* @see https://www.php.net/manual/en/timezones.php for list of timezones supported by PHP.
*/
public string $appTimezone = 'UTC';

Expand Down
1 change: 1 addition & 0 deletions app/Config/Generators.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class Generators extends BaseConfig
* @var array<string, string>
*/
public array $views = [
'make:cell' => 'CodeIgniter\Commands\Generators\Views\cell.tpl.php',
'make:command' => 'CodeIgniter\Commands\Generators\Views\command.tpl.php',
'make:config' => 'CodeIgniter\Commands\Generators\Views\config.tpl.php',
'make:controller' => 'CodeIgniter\Commands\Generators\Views\controller.tpl.php',
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"phpunit/phpcov": "^8.2",
"phpunit/phpunit": "^9.1",
"predis/predis": "^1.1 || ^2.0",
"rector/rector": "0.15.23",
"rector/rector": "0.15.25",
"vimeo/psalm": "^5.0"
},
"suggest": {
Expand Down
44 changes: 35 additions & 9 deletions contributing/documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,12 @@ Writing CodeIgniter Documentation
#################################

CodeIgniter uses Sphinx to generate its documentation in a variety of formats,
using reStructuredText to handle the formatting. If you are familiar with
using `reStructuredText`_ to handle the formatting. If you are familiar with
Markdown or Textile, you will quickly grasp reStructuredText. The focus is
on readability and user friendliness.
While they can be quite technical, we always write for humans!

A local table of contents should always be included, like the one below.
It is created automatically by inserting the following::

.. contents::
:local:
:depth: 2
.. _reStructuredText: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html

.. contents::
:local:
Expand All @@ -26,7 +21,18 @@ To see the rendered HTML, ePub, PDF, etc., you will need to install Sphinx
along with the PHP domain extension for Sphinx. The underlying requirement
is to have Python installed.

You can read more about installing all tools in /user_guide_src/README.rst
You can read more about installing all tools in **user_guide_src/README.rst**

*****************
Table of Contents
*****************

A local table of contents should always be included, like the one below.
It is created automatically by inserting the following::

.. contents::
:local:
:depth: 2

*****************************************
Page and Section Headings and Subheadings
Expand Down Expand Up @@ -119,15 +125,21 @@ You can reference a page like the following::
To a URL
========

::

`CodeIgniter 4 framework <https://github.com/codeigniter4/framework>`_

To a Function
=============

::

:php:func:`dot_array_search()`

To a Method
=============
===========

::

:php:meth:`CodeIgniter\\HTTP\\Response::setCookie()`

Expand All @@ -138,10 +150,24 @@ Other Directives
New Feature
===========

::

.. versionadded:: 4.3.0

Deprecated
==========

::

.. deprecated:: 4.3.0
Use :php:meth:`CodeIgniter\\Database\\BaseBuilder::setData()` instead.

***************
Text Decoration
***************

As a general rule, we use ``**`` for in-line file paths, and `````` for source code.

E.g.::

Open the **app/Config/Filters.php** file and update the ``$methods`` property like the following:
5 changes: 0 additions & 5 deletions phpstan-baseline.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,6 @@ parameters:
count: 1
path: system/Database/Migration.php

-
message: "#^Property CodeIgniter\\\\Database\\\\BaseConnection\\<mysqli,mysqli_result\\>\\:\\:\\$strictOn \\(bool\\) in isset\\(\\) is not nullable\\.$#"
count: 1
path: system/Database/MySQLi/Connection.php

-
message: "#^Access to an undefined property CodeIgniter\\\\Database\\\\BaseConnection\\<mysqli, mysqli_result\\>\\:\\:\\$mysqli\\.$#"
count: 3
Expand Down
4 changes: 2 additions & 2 deletions public/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
* ---------------------------------------------------------------
*
* The CodeIgniter class contains the core functionality to make
* the application run, and does all of the dirty work to get
* the application run, and does all the dirty work to get
* the pieces all working together.
*/

Expand All @@ -60,7 +60,7 @@
*---------------------------------------------------------------
* LAUNCH THE APPLICATION
*---------------------------------------------------------------
* Now that everything is setup, it's time to actually fire
* Now that everything is set up, it's time to actually fire
* up the engines and make this app do its thang.
*/

Expand Down
Loading

0 comments on commit 00a60e0

Please sign in to comment.