Prerequisites
To run the release process, you must have the following:
-
Running at least PHP 8.1. (This means
php -v
must run without an alias and must show php 8.1 or higher.) Here are guidelines for upgrading to PHP 8.1 on a Mac. -
Maintainer
access to the Zen Cart github repository. -
A local copy of the VersionStamper application.
-
Admin access to the main Zen Cart website
-
Admin access to the Server Manager (https://servermanager.zen-cart.com/)
-
an up to date copy of the master branch for Zen Cart.
-
an up to date copy of the documentation repo.
Once you have these things, you’re almost ready to begin.
Final Steps Before Beginning
Update the versioning files:
NOTE: If you are setting up a pre-release, please see Pre-Release Notes.
Before doing the version updates, create a new branch specifically for these changes.
-
Edit the file
includes/version.php
and update the version. -
Edit the file
zc_install/includes/version.php
and update the version. -
Edit the file
zc_install/sql/install/mysql_zencart.sql
and update the version number in theproject_version
andproject_version_history
tables. -
Edit the file
zc_install/sql/updates/mysql_upgrade_zencart_<current>.sql
and update the version number in theproject_version
andproject_version_history
tables. -
Ensure the version number in
zc_install/includes/systemChecks.yml
is the current version. -
Ensure the new version number has been added to
zc_install/ajaxLoadUpdatesSql.php
. -
Ensure the new version number has been added to
zc_install/includes/modules/pages/database_upgrade/header_php.php
.
This can be confusing because sometimes the update letter is included and sometimes it isn’t. The thing to remember is that the database version does not include the letter, because the database doesn’t change just because of a patch release.
Shortcut for editing these 7 files:
vi includes/version.php zc_install/includes/version.php zc_install/sql/install/mysql_zencart.sql zc_install/sql/updates/mysql_upgrade_zencart_200.sql zc_install/includes/systemChecks.yml zc_install/ajaxLoadUpdatesSql.php zc_install/includes/modules/pages/database_upgrade/header_php.php
Here’s what should be in these files for version 2.0.0:
# | File | Version |
---|---|---|
1 | includes/version.php |
define('PROJECT_VERSION_MAJOR', '2');<br>define('PROJECT_VERSION_MINOR', '0.0'); |
2 | zc_install/includes/version.php |
Same as above |
3 | zc_install/sql/install/mysql_zencart.sql |
project_version_major and project_version_minor for the two Zen-Cart Main rows should be 2 and 0.0 .project_version_patch1 for the two Zen-Cart Database rows should be New Installation-v200 CHECK CAREFULLY - look at project_version_major, project_version_minor, project_version_patch1,project_version_comment |
4 | zc_install/sql/updates/mysql_upgrade_zencart_200.sql |
project_version_comment for the two version rows should be Version Update 1.5.8->2.0.0 CHECK CAREFULLY - look at project_version_major, project_version_minor, project_version_patch1,project_version_comment |
5 | zc_install/includes/systemChecks.yml |
Top checkDBVersion block should be version: '2.0.0' |
6 | zc_install/ajaxLoadUpdatesSql.php |
'2.0.0'=>array('required'=>'1.5.8'), |
7 | zc_install/includes/modules/pages/database_upgrade/header_php.php |
$versionArray[] = '2.0.0'; |
There are other version related updates to do, but they’re not part of the build, so they are detailed in post release tasks.
For Major Releases - Update the Implementation Guide
The implementation guide (docs/implementation-guide.pdf
) is part of the build and should be updated before the build begins. See Implementation Guide.
This is mentioned on the next page as well as a reminder, since it’s easy to forget.
For Major Releases - set the PHP Version range
Note: The actual PHP version we “support” is nowadays determined by what Laravel version we integrate. And that can be found in the laravel
directory’s composer.json
file. Then translate it from “8.0.2” to “80002”: 8.0.2 = 08.00.02 = 80002
Update these places:
Uses of PHP_VERSION_ID
(for the minimum version):
zc_install/index.php
includes/application_top.php
admin/includes/application_bootstrap.php
admin/includes/application_top.php
Other Code Files:
zc_install/includes/languages/en_us/main.php
(setTEXT_ERROR_PHP_VERSION
)zc_install/includes/systemChecks.yml
(setcheckPhpVersion
)zc_install/index.php
(only change if zc_install itself needs a newer PHP version: we want zc_install to run for inspection even on older PHP)
Documentation Files:
- Server Requirements in
user/first_steps/server_requirements.md
. - What’s New file for this release, e.g. What’s New in 1.5.8 under “About PHP Versions”. This file is in the
release
folder. README.md
under Zen Cart github home page
Other considerations:
/composer.json
/laravel
- long before release, the bundled Laravel code should be matching PHP dependencies)- Update github workflows so tests run on desired versions
Copyright Updates
Do copyright updates in the following files:
- docs/INSTALL.TXT
- what’s new file for this release (Documentation site in
/release/
folder.) - changed files list for this release (Documentation site in
/release/
folder.)
Check in!
You’ll want to check in all these changes so they get version stamped correctly. Merge the branch you created for these changes.