<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zen Cart Documentation – Release Process</title>
    <link>https://docs.zen-cart.com/dev/release/</link>
    <description>Recent content in Release Process on Zen Cart Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://docs.zen-cart.com/dev/release/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Dev: Pre-Release Notes</title>
      <link>https://docs.zen-cart.com/dev/release/pre_release_notes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/pre_release_notes/</guid>
      <description>
        
        
        &lt;p&gt;Note: This step only apples to pre-release version updates, which are done at the time of initiation of a new release.&lt;/p&gt;
&lt;p&gt;If you are doing official release, please skip this step and go to the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/dependency_checks/&#34;&gt;next step&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;git-work&#34;&gt;Git Work&lt;/h2&gt;
&lt;p&gt;The master branch is now the current release.  If a patch is being done from a release in the past, create a branch for that patch.&lt;/p&gt;
&lt;h2 id=&#34;versioning-files&#34;&gt;Versioning files&lt;/h2&gt;
&lt;p&gt;Before doing the version updates, create a new branch specifically for these changes.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what should be in these files for the (hypothetical) version 2.3.0 build:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;includes/version.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;alpha: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3-alpha1&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;final: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/version.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;alpha: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3-alpha1&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;final: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;alpha and final: &lt;code&gt;define(&#39;EXPECTED_DATABASE_VERSION_MINOR&#39;, &#39;2.0&#39;);&lt;/code&gt;&lt;br&gt;DB version ends in zero always; doesn&amp;rsquo;t change because of a patch release.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/sql/install/mysql_zencart.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Variables now specify database and project version major and minor numbers. &lt;br&gt;For database, do not specify patch version! CHECK CAREFULLY - look at all variables.  &lt;br&gt;This new system was introduced in 2.2.1; in older releases, the version information was repeated.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/sql/updates/mysql_upgrade_zencart_220.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;See above.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/systemChecks.yml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top &lt;code&gt;checkDBVersion*&lt;/code&gt; block should look for &lt;code&gt;version: &#39;2.3.0&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/version_upgrades.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&#39;2.3.0&#39;=&amp;gt;array(&#39;required&#39;=&amp;gt;&#39;2.2.0&#39;),&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Shortcut for editing these 6 files:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vi includes/version.php zc_install/includes/version.php zc_install/sql/install/mysql_zencart.sql zc_install/sql/updates/mysql_upgrade_zencart_220.sql zc_install/includes/systemChecks.yml zc_install/includes/version_upgrades.php
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that in most cases, &lt;code&gt;includes/version.php&lt;/code&gt; and &lt;code&gt;zc_install/includes/version.php&lt;/code&gt; will be identical.&lt;/p&gt;
&lt;h2 id=&#34;php-compatibility&#34;&gt;PHP Compatibility&lt;/h2&gt;
&lt;p&gt;If the new version has different PHP compatibility ranges than the prior one, be sure to update:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;composer.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&#34;https://docs.zen-cart.com/user/first_steps/server_requirements/#php-version&#34;&gt;Server Requirements&lt;/a&gt; help document&lt;/li&gt;
&lt;li&gt;The What&amp;rsquo;s New file for the release in &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;Release Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/dependency_checks/&#34;&gt;
        Next - Dependency Checks&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Dependency Checks</title>
      <link>https://docs.zen-cart.com/dev/release/dependency_checks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/dependency_checks/</guid>
      <description>
        
        
        &lt;p&gt;Before doing a major or minor release build, it&amp;rsquo;s a good idea to check and update versions of external utilities that the project uses. It&amp;rsquo;s not necessary to be on the latest version, but you want to ensure that any security patches have been installed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last minute changes are risky!  Try to do any changes a few weeks before the build so you have time to test.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Also, make time to run a &lt;a href=&#34;https://docs.zen-cart.com/user/upgrading/javascript_updates/&#34;&gt;Lighthouse check&lt;/a&gt; before the release to be sure no Javascript libraries with known vulnerabilities are in use.&lt;/p&gt;
&lt;p&gt;The following should be checked:&lt;/p&gt;
&lt;h2 id=&#34;complete-projects&#34;&gt;Complete Projects&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Project URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PHPMailer&lt;/td&gt;
&lt;td&gt;&lt;code&gt;includes/classes/vendors/PHPMailer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/PHPMailer/PHPMailer&#34;&gt;https://github.com/PHPMailer/PHPMailer&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile Detect&lt;/td&gt;
&lt;td&gt;&lt;code&gt;includes/classes/Mobile_Detect.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/serbanghita/Mobile-Detect/&#34;&gt;https://github.com/serbanghita/Mobile-Detect/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jQuery&lt;/td&gt;
&lt;td&gt;&lt;code&gt;includes/templates/responsive_classic/jscript/jquery.min.js&lt;/code&gt;&lt;br&gt;&lt;code&gt;includes/templates/template_default/jscript/jquery.min.js&lt;/code&gt;&lt;br&gt;&lt;code&gt;admin/includes/javascript/jquery.min.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://jquery.com/&#34;&gt;https://jquery.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jQuery UI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;admin/includes/javascript/jquery-ui.min.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://jqueryui.com/&#34;&gt;https://jqueryui.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Font Awesome&lt;/td&gt;
&lt;td&gt;&lt;code&gt;admin/includes/css/font-awesome.min.css&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://fontawesome.com/&#34;&gt;https://fontawesome.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bootstrap&lt;/td&gt;
&lt;td&gt;&lt;code&gt;admin/includes/css/bootstrap.min.css&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://getbootstrap.com/&#34;&gt;https://getbootstrap.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YAML&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/vendors/yaml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://yaml.org/&#34;&gt;https://yaml.org/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Laravel&lt;/td&gt;
&lt;td&gt;&lt;code&gt;laravel/vendor/*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://laravel.com/&#34;&gt;https://laravel.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;zen-cart-plugins&#34;&gt;Zen Cart Plugins&lt;/h2&gt;
&lt;p&gt;Be sure these are up to date in the &lt;code&gt;zc_plugins/&lt;/code&gt; folder.&lt;/p&gt;
&lt;p&gt;You may view the plugin page for any of these plugins with URL:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.zen-cart.com/downloads.php?do=file&amp;amp;id=PLUGIN_ID&#34;&gt;https://www.zen-cart.com/downloads.php?do=file&amp;amp;id=PLUGIN_ID&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plugin&lt;/th&gt;
&lt;th&gt;Plugin ID&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PayPal Restful (Encapsulated)&lt;/td&gt;
&lt;td&gt;2434&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;references-within-files&#34;&gt;References within Files&lt;/h2&gt;
&lt;p&gt;Embedded references to external files that may require updating:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;jQuery library: &lt;a href=&#34;https://jquery.com/&#34;&gt;https://jquery.com/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;zc_install/includes/template/common/html_header.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;includes/templates/responsive_classic/common/html_header.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;includes/templates/template_default/common/html_header.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/javascript_loader.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/ckeditor.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jQuery flot library: &lt;a href=&#34;https://github.com/flot/flot&#34;&gt;https://github.com/flot/flot&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;admin/banner_manager.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/banner_statistics.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jQuery mmenu: &lt;a href=&#34;https://plugins.jquery.com/mmenu/&#34;&gt;https://plugins.jquery.com/mmenu/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;includes/templates/responsive_classic/common/html_header.php &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;includes/templates/responsive_classic/templates/tpl_modules_mobile_menu.php &lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the license for mmenu changed in their v5.6.0 to CC-BY-NC-4.0, which is not compatible with Zen Cart&amp;rsquo;s GPLv2 license. So we cannot distribute mmenu 5.6.0 or newer with Zen Cart. Bugfixes must be applied directly to current distro files instead.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;jQuery UI: &lt;a href=&#34;https://jqueryui.com/&#34;&gt;https://jqueryui.com/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;admin/includes/admin_html_head.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/javascript_loader.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jQuery jAlert: &lt;a href=&#34;https://github.com/HTMLGuyLLC/jAlert&#34;&gt;https://github.com/HTMLGuyLLC/jAlert&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;admin/includes/keepalive_module.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jQuery jTimeout: &lt;a href=&#34;https://github.com/HTMLGuyLLC/jTimeout&#34;&gt;https://github.com/HTMLGuyLLC/jTimeout&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;admin/includes/keepalive_module.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bootstrap: &lt;a href=&#34;https://getbootstrap.com/&#34;&gt;https://getbootstrap.com/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;admin/includes/admin_html_head.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/javascript_loader.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the following error-condition template files do not share common header components from the default template because they are intended to be as &amp;ldquo;standalone&amp;rdquo; as possible, in case other template-system files are damaged:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;includes/templates/template_default/templates/tpl_zc_phpupgrade_default.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;includes/templates/template_default/templates/tpl_zc_install_suggested_default.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;CAUTION: Be mindful that upgrading Bootstrap between Bootstrap&amp;rsquo;s &amp;ldquo;major&amp;rdquo; releases is usually a very cumbersome task because they change class-names and utility markup, which affects every page where Bootstrap markup is used (ie: every Admin page). But upgrading minor updates is mostly a drop-in-replacement of JS/CSS files.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Font Awesome: &lt;a href=&#34;https://fontawesome.com/&#34;&gt;https://fontawesome.com/&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;includes/templates/responsive_classic/common/html_header.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/admin_html_head.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/stylesheet.css&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;CAUTION: Be mindful that upgrading FontAwesome between its &amp;ldquo;major&amp;rdquo; releases is usually a very cumbersome task because icon naming strategies may be different, which affects every page where FA icons are used (ie: numerous Admin pages, and Catalog templates). But upgrading minor updates is mostly a drop-in-replacement of some CSS files.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/prerequisites/&#34;&gt;
        Next - Prerequisites&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Prerequisites</title>
      <link>https://docs.zen-cart.com/dev/release/prerequisites/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/prerequisites/</guid>
      <description>
        
        
        &lt;p&gt;To run the release process, you must have the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Running at least PHP 8.1. (This means &lt;code&gt;php -v&lt;/code&gt; must run without an alias and must show php 8.1 or higher.)  Here are &lt;a href=&#34;https://stitcher.io/blog/php-81-upgrade-mac&#34;&gt;guidelines for upgrading to PHP 8.1 on a Mac&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Maintainer&lt;/code&gt; access to the Zen Cart github repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A local copy of the &lt;a href=&#34;https://github.com/zencart/versionstamper&#34;&gt;VersionStamper&lt;/a&gt; application.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Admin access to the main Zen Cart website&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Admin access to the team&amp;rsquo;s Server Manager console&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;an up to date copy of the master branch for Zen Cart.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;an up to date copy of the documentation repo.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have these things, you&amp;rsquo;re almost ready to begin.&lt;/p&gt;
&lt;h1 id=&#34;final-steps-before-beginning&#34;&gt;Final Steps Before Beginning&lt;/h1&gt;
&lt;h2 id=&#34;prepare-your-branch&#34;&gt;Prepare your branch&lt;/h2&gt;
&lt;p&gt;Be sure your copy of the Github repo is up to date, and be sure you&amp;rsquo;re on the right branch for building (either &lt;code&gt;master&lt;/code&gt; or &lt;code&gt;prior-version-branch&lt;/code&gt; for a patch).&lt;/p&gt;
&lt;p&gt;Create a new branch specifically for the version file changes.&lt;/p&gt;
&lt;h2 id=&#34;update-the-versioning-files&#34;&gt;Update the versioning files:&lt;/h2&gt;
&lt;p&gt;NOTE: If you are setting up a pre-release, please see &lt;a href=&#34;https://docs.zen-cart.com/dev/release/pre_release_notes/&#34;&gt;Pre-Release Notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Remember we are using &lt;a href=&#34;https://docs.zen-cart.com/user/about_us/versioning/&#34;&gt;Semantic Versioning&lt;/a&gt; in post 2.0 releases.  So a reelease number is MAJOR.MINOR.PATCH.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Edit the file &lt;code&gt;includes/version.php&lt;/code&gt; and update the version.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit the file &lt;code&gt;zc_install/includes/version.php&lt;/code&gt; and update the version.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;For patch releases or any release with no database change SKIP REMAINING VERSION FILE UPDATES.  Go to the next step.&lt;/strong&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;
&lt;p&gt;Edit the file &lt;code&gt;zc_install/sql/install/mysql_zencart.sql&lt;/code&gt; and update the version number in the &lt;code&gt;project_version&lt;/code&gt; and &lt;code&gt;project_version_history&lt;/code&gt; tables.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit the file &lt;code&gt;zc_install/sql/updates/mysql_upgrade_zencart_&amp;lt;current&amp;gt;.sql&lt;/code&gt; and update the version number in the &lt;code&gt;project_version&lt;/code&gt; and &lt;code&gt;project_version_history&lt;/code&gt; tables.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure the version number in &lt;code&gt;zc_install/includes/systemChecks.yml&lt;/code&gt; is the current version.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure the new version number has been added to &lt;code&gt;zc_install/includes/version_updates.php&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The thing to remember is that the database version does not include the patch number / letter, because the database doesn&amp;rsquo;t change just because of a patch release.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what should be in these files for a (hypothetical) version 2.3.0 build:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;includes/version.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;alpha: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3-alpha1&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;final: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/version.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;alpha: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3-alpha1&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;final: &lt;code&gt;define(&#39;PROJECT_VERSION_MINOR&#39;, &#39;2.3&#39;);&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;alpha and final: &lt;code&gt;define(&#39;EXPECTED_DATABASE_VERSION_MINOR&#39;, &#39;2.0&#39;);&lt;/code&gt;&lt;br&gt;DB version ends in zero always; doesn&amp;rsquo;t change because of a patch release.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/sql/install/mysql_zencart.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Variables now specify database and project version major and minor numbers. &lt;br&gt;For database, do not specify patch version! CHECK CAREFULLY - look at all variables.  &lt;br&gt;This new system was introduced in 2.2.1; in older releases, the version information was repeated.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/sql/updates/mysql_upgrade_zencart_220.sql&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;See above.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/systemChecks.yml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Top &lt;code&gt;checkDBVersion*&lt;/code&gt; block should look for &lt;code&gt;version: &#39;2.3.0&#39;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zc_install/includes/version_upgrades.php&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&#39;2.3.0&#39;=&amp;gt;array(&#39;required&#39;=&amp;gt;&#39;2.2.0&#39;),&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Shortcut for editing these 6 files:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vi includes/version.php zc_install/includes/version.php zc_install/sql/install/mysql_zencart.sql zc_install/sql/updates/mysql_upgrade_zencart_220.sql zc_install/includes/systemChecks.yml zc_install/includes/version_upgrades.php
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note that in most cases, &lt;code&gt;includes/version.php&lt;/code&gt; and &lt;code&gt;zc_install/includes/version.php&lt;/code&gt; will be identical.&lt;/p&gt;
&lt;p&gt;There are other version related updates to do, but they&amp;rsquo;re not part of the build, so they are detailed in &lt;a href=&#34;https://docs.zen-cart.com/dev/release/post_release/&#34;&gt;post release tasks&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;for-major-releases---update-the-implementation-guide&#34;&gt;For Major Releases - Update the Implementation Guide&lt;/h2&gt;
&lt;p&gt;The implementation guide (&lt;code&gt;docs/implementation-guide.pdf&lt;/code&gt;) is part of the build and should be updated before the build begins.  See &lt;a href=&#34;https://docs.zen-cart.com/dev/release/implementation_guide/&#34;&gt;Implementation Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is mentioned on the next page as well as a reminder, since it&amp;rsquo;s easy to forget.&lt;/p&gt;
&lt;h2 id=&#34;for-major-releases---set-the-php-version-range&#34;&gt;For Major Releases - set the PHP Version range&lt;/h2&gt;
&lt;p&gt;Update these places:&lt;/p&gt;
&lt;p&gt;Uses of &lt;code&gt;PHP_VERSION_ID&lt;/code&gt; (for the minimum version):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;zc_install/index.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;includes/application_top.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/application_bootstrap.php&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;admin/includes/application_top.php&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other Code Files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;zc_install/includes/languages/en_us/main.php&lt;/code&gt; (set &lt;code&gt;TEXT_ERROR_PHP_VERSION&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zc_install/includes/systemChecks.yml&lt;/code&gt; (set &lt;code&gt;checkPhpVersion&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zc_install/index.php&lt;/code&gt; (only change if zc_install itself needs a newer PHP version: we want zc_install to run for inspection even on older PHP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Documentation Files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.zen-cart.com/user/first_steps/server_requirements/#php-version&#34;&gt;Server Requirements&lt;/a&gt; in &lt;code&gt;user/first_steps/server_requirements.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;What&amp;rsquo;s New file for this release, e.g. &lt;a href=&#34;https://docs.zen-cart.com/release/whatsnew_2.2.0/&#34;&gt;What&amp;rsquo;s New in 2.2&lt;/a&gt; under &amp;ldquo;About PHP Versions&amp;rdquo;.  This file is in the &lt;code&gt;release&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;README.md&lt;/code&gt; under &lt;a href=&#34;https://github.com/zencart/zencart&#34;&gt;Zen Cart github home page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other considerations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/composer.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update github workflows so tests run on desired versions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;copyright-updates&#34;&gt;Copyright Updates&lt;/h2&gt;
&lt;p&gt;Do copyright updates in the following files:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;docs/INSTALL.TXT&lt;/li&gt;
&lt;li&gt;what&amp;rsquo;s new and changes files list for this release (common footer in doc repo &lt;code&gt;/layouts/shortcodes/release_footer.md&lt;/code&gt;.)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;check-in&#34;&gt;Check in!&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ll want to check in all these changes so they get version stamped correctly.  Merge the branch you created for these changes.&lt;/p&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/initial_steps/&#34;&gt;
        Next - Initial Steps&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Initial Steps</title>
      <link>https://docs.zen-cart.com/dev/release/initial_steps/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/initial_steps/</guid>
      <description>
        
        
        &lt;p&gt;The initial phase of the release process consists of&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Locking the repository for merges&lt;/li&gt;
&lt;li&gt;Ensuring all code is up to date&lt;/li&gt;
&lt;li&gt;Ensuring the current code runs properly&lt;/li&gt;
&lt;li&gt;Preparing the Release Documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When this is all done, we can stamp and tag the release.&lt;/p&gt;
&lt;h1 id=&#34;locking-repository&#34;&gt;Locking Repository&lt;/h1&gt;
&lt;p&gt;While doing the initial steps of the release process, at least up to the tagging release stage,
we need to ensure that no commits/merges are created against the release branch and the main branch,
except where necessary for the release.&lt;/p&gt;
&lt;p&gt;Message all developers who have merge privileges using the Skype Dev Chat channel, and then lock the branch you are building (&lt;strong&gt;probably &amp;ldquo;master&amp;rdquo;&lt;/strong&gt;).  Go to &lt;a href=&#34;https://github.com/zencart/zencart/settings/branches&#34;&gt;the branches page&lt;/a&gt; and set a branch protection rule.  If there is no branch protection rule for the branch you are building, add one.  Click on the checkbox for &lt;em&gt;Require a pull request before merging&lt;/em&gt; then set the required approvals to 6, and the branch will be effectively locked.&lt;/p&gt;
&lt;h1 id=&#34;updating-code&#34;&gt;Updating Code&lt;/h1&gt;
&lt;p&gt;Before tagging a release we need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure code is up to date.&lt;/li&gt;
&lt;li&gt;Be sure the versioning file changes you did in the prior steps are checked in and merged. If they weren&amp;rsquo;t, remember you will have to bypass merge protections since the branch has been locked for merges.&lt;/li&gt;
&lt;li&gt;Update the &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;Documentation Website&lt;/a&gt; to ensure that it reflects changes that have happened within the release.  (Focus on the What&amp;rsquo;s New page; it&amp;rsquo;s easier to build the Changed Files page once the build is complete.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;testing-prior-to-the-build&#34;&gt;Testing Prior to the build&lt;/h1&gt;
&lt;p&gt;Create a new shop using the branch you are about to build, and run through some tests.  You want to be confident that what you&amp;rsquo;re building will work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hopefully you have been testing up until now and have not introduced major changes right before the build.&lt;/strong&gt;  This will give you a much greater chance of success.&lt;/p&gt;
&lt;h1 id=&#34;release-documentation&#34;&gt;Release Documentation&lt;/h1&gt;
&lt;p&gt;The &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;Documentation Website&lt;/a&gt;  contains details of changes between versions and general installation instructions.&lt;/p&gt;
&lt;p&gt;The 2 main pages that need adding/updating are the &lt;a href=&#34;https://docs.zen-cart.com/release/whatsnew_2.0.0.html&#34;&gt;What&amp;rsquo;s New&lt;/a&gt;
and &lt;a href=&#34;https://docs.zen-cart.com/release/changed_files-v2-0-0.html&#34;&gt;Changed Files&lt;/a&gt; pages.
Note: The above links give examples of previous releases.&lt;/p&gt;
&lt;p&gt;You will need to have checkout of the Zen Cart documentation website and be able to use the Hugo system to
edit and test the pages locally before pushing changes,&lt;/p&gt;
&lt;p&gt;While previously we would duplicate content in the &lt;code&gt;/docs&lt;/code&gt; folder of the release and on the
&lt;a href=&#34;https://zen-cart.com/docs&#34;&gt;https://zen-cart.com/docs&lt;/a&gt; folder, these now redirect to the documentation website.&lt;/p&gt;
&lt;p&gt;There is a &lt;a href=&#34;https://docs.zen-cart.com/dev/contributing/branching&#34;&gt;branching page&lt;/a&gt;, which should be updated if the &lt;a href=&#34;https://github.com/zencart/zencart/branches&#34;&gt;code branches&lt;/a&gt; have been changed (typically following a major release).&lt;/p&gt;
&lt;p&gt;There is a final piece of documentation which needs to be updated, and that is the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/implementation_guide/&#34;&gt;Implementation Guide&lt;/a&gt;.  This is delivered as part of the build, so it must be up to date before you do the build!&lt;/p&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/version_stamping/&#34;&gt;
        Next - Version Stamping&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Version Stamping</title>
      <link>https://docs.zen-cart.com/dev/release/version_stamping/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/version_stamping/</guid>
      <description>
        
        
        &lt;p&gt;Version stamping consists of a number of processes that are actioned on files that have
changed in the release.&lt;/p&gt;
&lt;p&gt;Those actions are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the copyright year in the header of the file to the current year.&lt;/li&gt;
&lt;li&gt;Add/Update the details of what release the file was added/modified&lt;/li&gt;
&lt;li&gt;Create a list of files that were added/deleted or modified and sort into those sections.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We use a php script to automate this process.&lt;/p&gt;
&lt;p&gt;The script is available in the &lt;a href=&#34;https://github.com/zencart/versionstamper&#34;&gt;https://github.com/zencart/versionstamper&lt;/a&gt; repository.&lt;/p&gt;
&lt;p&gt;This is a private repository for team members only.&lt;/p&gt;
&lt;h2 id=&#34;preparatory-actions-for-version-stamping&#34;&gt;Preparatory Actions for Version Stamping&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create a feature branch in your Zen Cart directory for the version stamping changes, e.g.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;git checkout -b version-stamping-v200&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;installing-the-version-stamper&#34;&gt;Installing the Version Stamper&lt;/h2&gt;
&lt;p&gt;Clone the &lt;a href=&#34;https://github.com/zencart/versionstamper&#34;&gt;https://github.com/zencart/versionstamper&lt;/a&gt; repository to your local computer.&lt;/p&gt;
&lt;p&gt;Follow the instructions in the README.&lt;/p&gt;
&lt;h3 id=&#34;configphp-file&#34;&gt;config.php file&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-$opts&#34; data-lang=&#34;$opts&#34;&gt;    &amp;#39;prevOfficialRelease&amp;#39; =&amp;gt; &amp;#39;v2.1.0&amp;#39;,
    &amp;#39;newVersion&amp;#39; =&amp;gt; &amp;#39;v2.2.0-alpha&amp;#39;, // note at this point we don&amp;#39;t have to have a tag
    &amp;#39;prevStampedVersion&amp;#39; =&amp;gt; &amp;#39;v2.1.0&amp;#39;, // note at this point we don&amp;#39;t have to have a tag
    &amp;#39;commitDate&amp;#39; =&amp;gt; &amp;#39;2025&amp;#39;, //the date that will be used for the updatecommit
    &amp;#39;copyrightDate&amp;#39; =&amp;gt; &amp;#39;2025&amp;#39;, //the date that will be used for the copyright date
    &amp;#39;firstHash&amp;#39; =&amp;gt; &amp;#39;28b79ce2120771411d08ef2c7cce5058e42a2cc3&amp;#39;, // usually the hash of tagged prior release
    &amp;#39;lastHash&amp;#39; =&amp;gt; &amp;#39;3bb5429b64095b89c671aae8f3e31cc9163b86b9&amp;#39;, // usually the hash of the last commit for this new release
    &amp;#39;ignoreDirectories&amp;#39; =&amp;gt; [&amp;#39;includes/classes/vendors&amp;#39;, &amp;#39;.circleci&amp;#39;, &amp;#39;.github&amp;#39;, &amp;#39;laravel&amp;#39;, &amp;#39;not_for_release&amp;#39;],
    &amp;#39;rootPath&amp;#39; =&amp;gt; &amp;#39;/home/wilt/Projects/zencart/&amp;#39;,
    &amp;#39;authorMap&amp;#39; =&amp;gt; [&amp;#39;Chris Brown&amp;#39; =&amp;gt; &amp;#39;DrByte&amp;#39;, &amp;#39;Ian Wilson&amp;#39; =&amp;gt; &amp;#39;Zcwilt&amp;#39;, &amp;#39;zcwilt&amp;#39; =&amp;gt; &amp;#39;Zcwilt&amp;#39;]
];
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;prevOfficialRelease The most recent official release e.g. v1.5.7d&lt;/li&gt;
&lt;li&gt;prevStampedVersion The name of the most recent release that was version stamped (may have been a pre-release)&lt;/li&gt;
&lt;li&gt;newVersion - the version name of the release being worked on e.g. v1.5.8.  Should be the same as what&amp;rsquo;s in &lt;code&gt;includes/version.php&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;commitDate - the year to use for updating the commit date - will be deprecated for auto setting&lt;/li&gt;
&lt;li&gt;copyrightDate - the tear to use for the copyright date  - will be deprecated for auto setting&lt;/li&gt;
&lt;li&gt;firstHash - the hash of the first commit in this branch - see below&lt;/li&gt;
&lt;li&gt;lastHash - the hash of the first commit in this branch - see below&lt;/li&gt;
&lt;li&gt;ignoreDirectories - a list of directories to ignore for changes&lt;/li&gt;
&lt;li&gt;rootPath - the absolute path to your Zen Cart checkout&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;firsthash&#34;&gt;firstHash&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;firstHash&lt;/code&gt; represents the first commit after a previous tag/branch was created.
It also should represent the first commit after the last known version stamping commit was created.
This can sometimes be difficult to find manually.  See section below.&lt;/p&gt;
&lt;h4 id=&#34;lasthash&#34;&gt;lastHash&lt;/h4&gt;
&lt;p&gt;This is the hash of the last commit to the branch we are working on.  See section below.&lt;/p&gt;
&lt;h4 id=&#34;rootpath&#34;&gt;rootPath&lt;/h4&gt;
&lt;p&gt;Be sure to update rootpath to the PATH to your local git folder.&lt;/p&gt;
&lt;h4 id=&#34;newversion&#34;&gt;newVersion&lt;/h4&gt;
&lt;p&gt;It is critically important that the spelling of this new version number is exactly what you want to use; it cannot be changed once the version stamper has been run.&lt;/p&gt;
&lt;h2 id=&#34;determining-the-values-of-firsthash-and-lasthash&#34;&gt;Determining the Values of firstHash and lastHash&lt;/h2&gt;
&lt;p&gt;To help with finding both the first/last hash, we have a command line option within the version stamp code:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;php versionstamp.php app:hash-suggest&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This command will output something like:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;last Hash = 3bb5429b64095b89c671aae8f3e31cc9163b86b9
first Hash = 28b79ce2120771411d08ef2c7cce5058e42a2cc3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The output values can then be used to update the &lt;code&gt;config.php&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Be sure the &lt;code&gt;prevStampedVersion&lt;/code&gt; setting in the &lt;code&gt;config.php&lt;/code&gt; file is correct prior to running this command.  You can find the exact spelling of the prior version by looking at the &lt;a href=&#34;https://github.com/zencart/zencart/releases&#34;&gt;releases page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;executing-the-version-stamper&#34;&gt;Executing the Version Stamper&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Remember that we should have created a feature branch in our Zen Cart folder to encapsulate these changes, rather
than running directly against our working branch.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you run &lt;code&gt;git status&lt;/code&gt; in your Zen Cart folder, you should see something like,&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;On branch version-stamping-v200
nothing to commit, working tree clean
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Back in your version stamper folder, run the stamper in debug mode first.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;php versionstamp.php app:version-stamp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will run the version stamper in debug mode
i.e. It will output information about the changes it would make, without altering any files.&lt;/p&gt;
&lt;p&gt;We could also do
&lt;code&gt;php versionstamp.php app:version-stamp &amp;gt; somefile.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;to create a log of proposed changes that we could review.&lt;/p&gt;
&lt;p&gt;To actually make changes we would use&lt;/p&gt;
&lt;p&gt;&lt;code&gt;php versionstamp.php app:version-stamp --mode=run&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;merging-the-version-stamper-updates&#34;&gt;Merging the version stamper updates&lt;/h2&gt;
&lt;p&gt;Once the version stamping is complete, you will need to go to your Zen Cart folder and commit and merge the changes created by the version stamping.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Be sure to &lt;strong&gt;merge into the right branch&lt;/strong&gt; (&lt;code&gt;master&lt;/code&gt; for new releases; &lt;em&gt;number-of-patch-version&lt;/em&gt; (e.g. &lt;code&gt;2.2&lt;/code&gt;) for patches).&lt;/li&gt;
&lt;li&gt;Remember you will have to bypass merge protections since the branch has been locked for merges.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Be sure to use a comment which indicates which version number is being stamped (e.g. &amp;ldquo;Version stamping 2.1.0&amp;rdquo;).&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;capturing-information-in-release-log&#34;&gt;Capturing information in Release Log&lt;/h2&gt;
&lt;p&gt;There is a section of these docs called &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_log/&#34; title=&#34;release log&#34;&gt;Release Log&lt;/a&gt;, in which you should capture some
basic information about the release progress.  Update &lt;code&gt;/dev/release/release_log.md&lt;/code&gt;.&lt;/p&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/release_tagging/&#34;&gt;
        Next - Release Tagging&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Release Tagging</title>
      <link>https://docs.zen-cart.com/dev/release/release_tagging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/release_tagging/</guid>
      <description>
        
        
        &lt;p&gt;We are now ready to tag the release.&lt;/p&gt;
&lt;p&gt;Ensure your Zen Cart folder is up to date, especailly
as you will have merged the version stamping changes.&lt;/p&gt;
&lt;p&gt;Now we tag the release.&lt;/p&gt;
&lt;p&gt;Go to your Zen Cart folder, which now is on the branch you are releasing (e.g. 2.2.1) and has all the updates from stamping.&lt;/p&gt;
&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;
&lt;p&gt;If you have not pulled the current list of tags, do so now:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git fetch --tags
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can confirm your local copy of tags using&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git tag --list
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;tagging&#34;&gt;Tagging&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The tag &lt;em&gt;must&lt;/em&gt; be the same as the &lt;code&gt;newVersion&lt;/code&gt; setting in the versionstamper&amp;rsquo;s &lt;code&gt;config.php&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git tag v2.2.1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;obviously replacing the release name as appropriate.&lt;/p&gt;
&lt;p&gt;Now push the file to the remote.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git push upstream --tags&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;create-the-release-on-github&#34;&gt;Create the Release on Github&lt;/h3&gt;
&lt;p&gt;Now we need to create the release on github.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/zencart/zencart/tags&#34;&gt;https://github.com/zencart/zencart/tags&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/github-tags_page_zencart.png&#34; alt=&#34; Github Tags&#34;&gt;&lt;/p&gt;
&lt;p&gt;By clicking on the &amp;hellip; on the far right hand side we can create a release.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/github_create_release_zencart.png&#34; alt=&#34;Github Create Release&#34;&gt;&lt;/p&gt;
&lt;p&gt;The Release title should be the same name as the tag name.&lt;/p&gt;
&lt;p&gt;For Pre-Releases (alpha, beta, release-candidate):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Don&amp;rsquo;t forget to check the pre-release box&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Official Releases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click the &amp;ldquo;Generate Release Notes&amp;rdquo; button to auto-generate a list of changes and contributors&lt;/li&gt;
&lt;li&gt;The textarea below the Release title should reference the &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;https://docs.zen-cart.com/release&lt;/a&gt; release documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s a good idea to also check the &amp;ldquo;Create a discussion for this release&amp;rdquo; box if it&amp;rsquo;s not a pre-release.&lt;/p&gt;
&lt;p&gt;When you&amp;rsquo;re ready, press the &lt;strong&gt;Save Draft&lt;/strong&gt; button (note: don&amp;rsquo;t press the &lt;strong&gt;Publish Release&lt;/strong&gt; button just yet).&lt;/p&gt;
&lt;h3 id=&#34;stop--do-verification&#34;&gt;STOP!  Do Verification&lt;/h3&gt;
&lt;p&gt;Take some time to verify the build you just published.  Since you already did pre-testing before beginning the build process, hopefully there will be no issues, but if there are, return to the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_tagging/#possible-remedial-commits&#34;&gt;Possible Remedial Commits&lt;/a&gt; step.&lt;/p&gt;
&lt;p&gt;Be sure you download the build from the &lt;a href=&#34;https://github.com/zencart/zencart/releases&#34;&gt;Github Releases page&lt;/a&gt; so you&amp;rsquo;re testing exactly what will be released.&lt;/p&gt;
&lt;h3 id=&#34;ship-it-when-ready&#34;&gt;Ship it when ready&lt;/h3&gt;
&lt;p&gt;On the Releases page, click the pencil, scroll to the bottom and press the &lt;strong&gt;Publish Release&lt;/strong&gt; button.&lt;/p&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/additional_release_tasks/&#34;&gt;
        Next - Additional Release Tasks&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id=&#34;possible-remedial-commits&#34;&gt;Possible Remedial Commits&lt;/h3&gt;
&lt;p&gt;(You can skip this step if everything went well)&lt;/p&gt;
&lt;p&gt;After creating the release on Github, you will want to test the build and make sure it works.&lt;br&gt;
If you test and find a problem,
it may be that you may need to do some remedial commits at this point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For any new commits at this point, you must manually update headers as
it is difficult to re-run the version stamper.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit files to update headers - change date and committer name&lt;/li&gt;
&lt;li&gt;Create PR, merge, update your branch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have added extra commits you will need to update the release tag.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git tag -d v2.2.1
git push --delete upstream v2.2.1
git tag v2.2.1
git push upstream --tags
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then re-run these steps of the build:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create the release on Github (as detailed above) from the &lt;a href=&#34;https://github.com/zencart/zencart/tags&#34;&gt;tags page&lt;/a&gt;.  Note that once you do this, you will have to delete prior releases of the same name on the &lt;a href=&#34;https://github.com/zencart/zencart/releases&#34;&gt;releases page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Note new commit hash.  Edit the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_log/&#34; title=&#34;release log&#34;&gt;Release Log&lt;/a&gt; and update the &lt;code&gt;last_hash&lt;/code&gt; field.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have published the build on the Releases page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/manifest/&#34;&gt;Release Manifest&lt;/a&gt; (you can get the SHA hash from here)&lt;/li&gt;
&lt;li&gt;Update the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_links/&#34;&gt;zip file SHA on the Home page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Check the &lt;a href=&#34;https://github.com/zencart/zencart/releases&#34;&gt;Releases Page&lt;/a&gt; and be sure the build you just did has been published and the old one has been removed.&lt;/li&gt;
&lt;li&gt;If required, update &lt;code&gt;docs&lt;/code&gt; (What&amp;rsquo;s New file, Changed Files).&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/additional_release_tasks/&#34;&gt;
        Next - Additional Release Tasks&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Additional Release Tasks</title>
      <link>https://docs.zen-cart.com/dev/release/additional_release_tasks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/additional_release_tasks/</guid>
      <description>
        
        
        &lt;p&gt;Some final actions need to be done to wrap up the release.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Update the &lt;strong&gt;What&amp;rsquo;s New&lt;/strong&gt; and &lt;strong&gt;Changed Files&lt;/strong&gt; documents for the release in &lt;a href=&#34;https://docs.zen-cart.com/release/&#34;&gt;zencart_documentation/content/release&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a release announcement on the Zen Cart Forum.  Create it as a sticky post (click Administrative &amp;gt; Stick Thread).  Here is an &lt;a href=&#34;https://www.zen-cart.com/showthread.php?229041-Zen-Cart-1-5-8-Released!&#34;&gt;example release announcement&lt;/a&gt;.   You should also take the time here to unstick prior release announcements and updates as appropriate.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a &amp;ldquo;Known Bugs in &lt;release&gt;&amp;rdquo; thread in the appropriate subforum under &lt;a href=&#34;https://www.zen-cart.com/forumdisplay.php?10-Upgrading-Your-Zen-Cart&#34;&gt;Upgrading Your Zen Cart&lt;/a&gt;.   Update the release announcement and the &lt;a href=&#34;https://docs.zen-cart.com/user/about_us/known_bugs/&#34;&gt;known bugs&lt;/a&gt; page with this link.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
 &lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/ping_server/&#34;&gt;
        Next - Ping Server&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
    &lt;/a&gt;
 &lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Server Manager</title>
      <link>https://docs.zen-cart.com/dev/release/ping_server/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/ping_server/</guid>
      <description>
        
        
        &lt;p&gt;Note: if you are doing a pre-release rather than an official release, please skip this step and go to the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_links/&#34;&gt;next step&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Server Manager controls the endpoint that allows for a call home from within Zen Cart admin.  (It was formerly called the Ping Server, or &lt;code&gt;ping.zen-cart.com&lt;/code&gt;.)&lt;/p&gt;
&lt;p&gt;It will notify a shop owner if a new release is available.&lt;/p&gt;
&lt;p&gt;Login details for the Server Manager are in the &lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/p&gt;
&lt;p&gt;On the Server Manager site dashboard, access the &lt;code&gt;Version Manager &amp;gt; Versions&lt;/code&gt; menu.&lt;/p&gt;
&lt;p&gt;Create a new release by clicking the &amp;ldquo;New Version&amp;rdquo; button.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/sm-version-edit.png&#34; alt=&#34; Ping Version Edit&#34;&gt;&lt;/p&gt;
&lt;p&gt;For a full release we need to edit&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Version major&lt;/li&gt;
&lt;li&gt;Version minor&lt;/li&gt;
&lt;li&gt;Version detail&lt;/li&gt;
&lt;li&gt;Version download URL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;version-major&#34;&gt;Version major&lt;/h2&gt;
&lt;p&gt;Currently this will be 2.&lt;/p&gt;
&lt;h2 id=&#34;version-minor&#34;&gt;Version minor&lt;/h2&gt;
&lt;p&gt;e.g. 0.0&lt;/p&gt;
&lt;h2 id=&#34;version-detail&#34;&gt;Version detail&lt;/h2&gt;
&lt;p&gt;Link to release announcement (e.g. &lt;a href=&#34;https://www.zen-cart.com/showthread.php?230040-Zen-Cart-2-0-0-Released&#34;&gt;https://www.zen-cart.com/showthread.php?230040-Zen-Cart-2-0-0-Released&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id=&#34;version-download-url&#34;&gt;Version download url&lt;/h2&gt;
&lt;p&gt;Link to download (e.g. &lt;a href=&#34;https://github.com/zencart/zencart/archive/refs/tags/v2.0.0.zip&#34;&gt;https://github.com/zencart/zencart/archive/refs/tags/v2.0.0.zip&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id=&#34;is_current&#34;&gt;is_current&lt;/h2&gt;
&lt;p&gt;Turn slider on&lt;/p&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/release_links/&#34;&gt;
        Next - Release Links&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Release Links</title>
      <link>https://docs.zen-cart.com/dev/release/release_links/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/release_links/</guid>
      <description>
        
        
        &lt;p&gt;Note: if you are doing a pre-release rather than an official release, please skip this step and go to the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/manifest/&#34;&gt;next step&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll need to update the release links on the &lt;a href=&#34;https://www.zen-cart.com&#34;&gt;Home page&lt;/a&gt; of the Zen Cart Web Site.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/download_links.png&#34; alt=&#34; Download Links&#34;&gt;&lt;/p&gt;
&lt;p&gt;To change the links etc, you will need &lt;code&gt;admin&lt;/code&gt; permissions for the Zen Cart forum.  See the &lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/frontpage_edit.png&#34; alt=&#34; Frontpage edit&#34;&gt;&lt;/p&gt;
&lt;p&gt;Clicking on the edit icon in the top left will allow you to change the front page details.&lt;/p&gt;
&lt;p&gt;The actual content that manages the release information looks like&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;vbcms_content&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;width:100%;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;my_right_box&amp;#34;&lt;/span&gt;  &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;width:33%;text-align:center;float:right;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;img&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/images/styles/zencart/style/ZC-in-the-box.jpg&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;font-size:14px;margin-bottom:20px&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://www.zen-cart.com/showthread.php?228675-Zen-Cart-v1-5-7d-released!!&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;v1.5.7d Release Announcement&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;_blank&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://github.com/zencart/zencart/archive/refs/tags/v1.5.7d.zip&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;display:block&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;dlButton&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;verBubble&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;span&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;verNum&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;v1.5.7d&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;span&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; Download Zip File&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;br&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;font-size:10px;margin-bottom:20px&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;SHA256: 0b115b58745cd09a0e4ae2795df437f051552d453ff9d0d9f333d96685836294&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;font-size:10px;margin-bottom:20px&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;Tip: Use the SHA checksum shown to &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://docs.zen-cart.com/user/installing/validate_sha/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;_blank&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;verify file integrity&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;font-size:14px;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://docs.zen-cart.com/history/v15x/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;_blank&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;Click here to download older versions&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;font-size: 14px;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://www.zen-cart.com/docs/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;_blank&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;Implementation Guide&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;p&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;div&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The areas that need changing are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;release announcement&lt;/li&gt;
&lt;li&gt;download link&lt;/li&gt;
&lt;li&gt;SHA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To determine the SHA value, download the release zip from Github, and compute the SHA with the appropriate method for your platform.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MacOS: &lt;code&gt;shasum -a 256  ./zencart-1.5.8.zip&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt; sha256sum zencart-1.5.8.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/manifest/&#34;&gt;
        Next - Release Manifests&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Release Manifests</title>
      <link>https://docs.zen-cart.com/dev/release/manifest/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/manifest/</guid>
      <description>
        
        
        &lt;p&gt;Note: if you are doing a pre-release rather than an official release, please skip this step and go to the &lt;a href=&#34;https://docs.zen-cart.com/dev/release/post_release/&#34;&gt;next step&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The manifest api shows a hash of all files in a release.&lt;/p&gt;
&lt;p&gt;Its original purpose as to allow for doing diffs/security checks between a customized zen-cart and the original files.&lt;/p&gt;
&lt;p&gt;On the Server Manager dashboard:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.zen-cart.com/images/sm_dashboard.png&#34; alt=&#34;Server Manager&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Login to the Server Manager. For instructions, see the &lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;code&gt;Version Manager &amp;gt; Manifests&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the &lt;code&gt;New manifest&lt;/code&gt; button&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter the &amp;ldquo;Tag name&amp;rdquo; (the tag name you created in prior steps), and click the &amp;ldquo;Create&amp;rdquo; button.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&#34;text-align:right;&#34; id=&#34;next&#34;&gt;
   &lt;a class=&#34;btn btn-lg btn-primary mr-3 mb-4&#34; href=&#34;https://docs.zen-cart.com/dev/release/post_release/&#34;&gt;
        Next - Post Release Tasks&lt;i class=&#34;fas fa-arrow-alt-circle-right ml-2&#34;&gt;&lt;/i&gt;
   &lt;/a&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Post-Release Tasks</title>
      <link>https://docs.zen-cart.com/dev/release/post_release/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/post_release/</guid>
      <description>
        
        
        &lt;h2 id=&#34;post-release-tasks-for-the-zen-cart-forum&#34;&gt;Post-Release Tasks for the Zen Cart Forum&lt;/h2&gt;
&lt;h3 id=&#34;add-the-new-version-to-the-zen-cart-version-dropdown-on-the-forum&#34;&gt;Add the new version to the Zen Cart Version dropdown on the forum&lt;/h3&gt;
&lt;p&gt;(Note that some steps will not be required for patch releases or pre-releases.)&lt;/p&gt;
&lt;img src=&#34;https://docs.zen-cart.com/images/forum_version_selection.png&#34;&gt; 
&lt;br&gt;&lt;br&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Login to the admin panel for zen-cart.com.  For instructions, see
&lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/li&gt;
&lt;li&gt;Thread Prefixes -&amp;gt; Thread prefix manager&lt;/li&gt;
&lt;li&gt;Where it says &amp;ldquo;Zen Cart version&amp;rdquo;, click on Add Prefix&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&#34;https://docs.zen-cart.com/images/thread_prefix_manager.png&#34;&gt; 
&lt;br&gt;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;then set prefix id, title (both) to the version
e.g. v158&lt;/li&gt;
&lt;li&gt;leave display order as 10&lt;/li&gt;
&lt;li&gt;click Save&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;add-the-new-version-as-a-checkbox-to-the-plugin-version-list&#34;&gt;Add the new version as a checkbox to the plugin version list.&lt;/h3&gt;
&lt;p&gt;(Note that this is not required for patch releases.)&lt;/p&gt;
&lt;img src=&#34;https://docs.zen-cart.com/images/plugin_version_selection.png&#34;&gt; 
&lt;br&gt;&lt;br&gt;
&lt;h2 id=&#34;other-post-release-tasks&#34;&gt;Other Post-Release Tasks&lt;/h2&gt;
&lt;h3 id=&#34;all-releases&#34;&gt;All Releases&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Update the &lt;a href=&#34;https://docs.zen-cart.com/user/about_us/release_history/&#34;&gt;Release History&lt;/a&gt; page with the new version and date.  (Skip this step for pre-releases.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the &lt;a href=&#34;https://docs.zen-cart.com/user/about_us/whats_new/&#34;&gt;What&amp;rsquo;s New with Zen Cart&lt;/a&gt; page.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;major-and-minor-releases-only&#34;&gt;Major and Minor Releases Only&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you need to create a new subforum (&amp;ldquo;Updating to Y.x.x&amp;rdquo;), follow the guidance on the &lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the file &lt;code&gt;.github/security.md&lt;/code&gt; in the main Zen Cart repo if needed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure the &lt;a href=&#34;https://docs.zen-cart.com/user/upgrading/release_specific_upgrade_considerations/&#34;&gt;Release Specific Upgrade Considerations&lt;/a&gt; doc has a statement about this release.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the pages in &lt;a href=&#34;https://docs.zen-cart.com/dev/storefront/&#34;&gt;Third Party Libraries&lt;/a&gt; if any major library version changes have been made.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Search the documentation in &lt;a href=&#34;https://github.com/zencart/documentation&#34;&gt;https://github.com/zencart/documentation&lt;/a&gt; for the string RELEASETIME and update those files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Search the documentation for &amp;ldquo;NOT RELEASED YET&amp;rdquo; - if this is for the release you just built, remove it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the &lt;code&gt;build_doc&lt;/code&gt; and &lt;code&gt;view schema&lt;/code&gt; tools.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;build_doc&lt;/code&gt; is in the &lt;a href=&#34;https://github.com/scottcwilson/zencart_tools&#34;&gt;Zen Cart Tools&lt;/a&gt; repo.  It creates the &lt;a href=&#34;https://docs.zen-cart.com/user/admin_pages/configuration/&#34;&gt;configuration documentation&lt;/a&gt;.  Install it in the &lt;code&gt;admin&lt;/code&gt; folder for the new release, edit the file and set &lt;code&gt;TARGET_FOLDER&lt;/code&gt;, then run it; it will update the Zen Cart documentation folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;view_schema&lt;/code&gt; is a plugin located &lt;a href=&#34;https://www.zen-cart.com/downloads.php?do=file&amp;amp;id=2270&#34;&gt;here&lt;/a&gt;. It creates the &lt;a href=&#34;https://docs.zen-cart.com/dev/database/schema-history/&#34;&gt;schema documentation&lt;/a&gt;.  Install the plugin, then do an Inspect in Google Chrome on the output and copy the element with id=&amp;ldquo;pageWrapper&amp;rdquo; into a new file in &lt;code&gt;zencart_documentation/content/dev/database/schema-history&lt;/code&gt;.  Remove the opening and closing div tags, and copy in the Hugo frontmatter and styling from the prior schema file.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Emergency Re-release:&lt;/strong&gt; If something was missed and you have to do a re-release, go back to &lt;a href=&#34;https://docs.zen-cart.com/dev/release/release_tagging/#possible-remedial-commits&#34;&gt;Remedial Commits&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A day or two after the build has been released when you&amp;rsquo;re confident that all is well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Message all developers who have merge privileges using the Skype Dev Chat channel, and then unlock the branch you are building.  Go to &lt;a href=&#34;https://github.com/zencart/zencart/settings/branches&#34;&gt;the branches page&lt;/a&gt; and de-activate the branch protection rule you created earlier (uncheck the &amp;ldquo;PR required&amp;rdquo; checkbox for the rule).  Note that this can be done much sooner for a pre-release.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Take some time to review the What&amp;rsquo;s New and Changed Files documents in the &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;release folder&lt;/a&gt; to be sure they are complete.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;one-more-documentation-check&#34;&gt;One more documentation check:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Review the What’s New file for this release (Documentation repo in the &lt;code&gt;/release/&lt;/code&gt; folder.)  Be sure it doesn&amp;rsquo;t have any more statements like &amp;ldquo;&lt;em&gt;New Version&lt;/em&gt; has not yet been released&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Review the Changed Files list for this release (Documentation repo in the &lt;code&gt;/release/&lt;/code&gt; folder.)  Same checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;post-release-things-to-consider&#34;&gt;Post-Release Things to Consider&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Is it time to remove old versions from the plugin version list?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is it time to hide older what&amp;rsquo;s new / changed files documents in the &lt;a href=&#34;https://docs.zen-cart.com/release&#34;&gt;release&lt;/a&gt; folder?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are there old stuck posts on the forum that should be unstuck?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check the Zen Cart and Zen Cart Documentation projects for tags that mark things that need to be taken care of - there might be a &lt;code&gt;Post Release X.y.z&lt;/code&gt; tag or something like that, for example.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Release Log</title>
      <link>https://docs.zen-cart.com/dev/release/release_log/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/release_log/</guid>
      <description>
        
        
        &lt;h1 id=&#34;v222&#34;&gt;v2.2.2&lt;/h1&gt;
&lt;p&gt;Built 4 April 2026&lt;/p&gt;
&lt;p&gt;first_hash = 420cccd696d0f2c88e71be68582718e126e8b503&lt;/p&gt;
&lt;p&gt;last_hash = 6091deb27615c3f79a217f3e778e709476b696f5&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/63cf0ec3324d49767d25a07d168cdecb829e4d2a&#34;&gt;https://github.com/zencart/zencart/commit/63cf0ec3324d49767d25a07d168cdecb829e4d2a&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v221&#34;&gt;v2.2.1&lt;/h1&gt;
&lt;p&gt;Built 20 March 2026&lt;/p&gt;
&lt;p&gt;first_hash = 912249e2d8e672b2997372caddca8449aaddc66b&lt;/p&gt;
&lt;p&gt;last_hash = 8a1f54717814e205fca81a35ae83f445b298bf61&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/5a71afdccf3ed55789bfc0d4136c3f40af60f4eb&#34;&gt;https://github.com/zencart/zencart/commit/5a71afdccf3ed55789bfc0d4136c3f40af60f4eb&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v220-alpha&#34;&gt;v2.2.0-alpha&lt;/h1&gt;
&lt;p&gt;Built 07 November 2025&lt;/p&gt;
&lt;p&gt;first_hash = fcc1ab8e72307cfdb1cdf333c2b3b8a11532df4b&lt;/p&gt;
&lt;p&gt;last_hash = 2a64bc2b893d817d6b960138c3cb1532421fde16&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/pull/7424/commits/48ac4ec639210574e648e8801e9d6c9ad7031d48&#34;&gt;https://github.com/zencart/zencart/pull/7424/commits/48ac4ec639210574e648e8801e9d6c9ad7031d48&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v210&#34;&gt;v2.1.0&lt;/h1&gt;
&lt;p&gt;Built 23 November 2024&lt;/p&gt;
&lt;p&gt;first_hash = bb8c9751b69f7b6ea477827419c799c27af7d951&lt;/p&gt;
&lt;p&gt;last_hash = 86e6b27e75bbb89ebe99c2b712b995a4a228e92f&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/a255caba270e3defee99ada0d89c3b5dce7daf58&#34;&gt;https://github.com/zencart/zencart/commit/a255caba270e3defee99ada0d89c3b5dce7daf58&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v210-beta1&#34;&gt;v2.1.0-beta1&lt;/h1&gt;
&lt;p&gt;Built 30 Sept 2024&lt;/p&gt;
&lt;p&gt;first_hash = 3b381cdd44f7fb1303284de1dcba06c6f6a493f1&lt;/p&gt;
&lt;p&gt;last_hash = be9c298f64a614db6b1fb67913c83b489171fe14&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/3f01718bad5cb0cf774010024efe8637b27226d0&#34;&gt;https://github.com/zencart/zencart/commit/3f01718bad5cb0cf774010024efe8637b27226d0&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v210-alpha2&#34;&gt;v2.1.0-alpha2&lt;/h1&gt;
&lt;p&gt;Built 01 Sept 2024&lt;/p&gt;
&lt;p&gt;first_hash = 2d87e7ae9450ac795363355403c00952c26d9c1e&lt;/p&gt;
&lt;p&gt;last_hash = df73628e083a8216dc0e802f1c3aa82eee319764&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/8395912649113b17c54b9877db0be8bf888675a9&#34;&gt;https://github.com/zencart/zencart/commit/8395912649113b17c54b9877db0be8bf888675a9&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v210-alpha1&#34;&gt;v2.1.0-alpha1&lt;/h1&gt;
&lt;p&gt;Built 04 Aug 2024&lt;/p&gt;
&lt;p&gt;first_hash = 198b15002b53a534fc9fbd3907415f4612ded6a7&lt;/p&gt;
&lt;p&gt;last_hash = 5a07c12523a05b3b3e57fdd081482fa188c50398&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/a8b61d5f5825b4accc4622966255345514dc2156&#34;&gt;https://github.com/zencart/zencart/commit/a8b61d5f5825b4accc4622966255345514dc2156&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v201&#34;&gt;v2.0.1&lt;/h1&gt;
&lt;p&gt;Built 19 May 2024&lt;/p&gt;
&lt;p&gt;first_hash = 6ce2a575ac2be575a067e365898c7754298db178&lt;/p&gt;
&lt;p&gt;last_hash = 77d56e1f58c07ca3d58cdec5fc06ca69eaf43f90&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/b44bb30e2009afe194391f55425e2f783a3fdc3e&#34;&gt;https://github.com/zencart/zencart/commit/b44bb30e2009afe194391f55425e2f783a3fdc3e&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v200&#34;&gt;v2.0.0&lt;/h1&gt;
&lt;p&gt;Built 07 April 2024&lt;/p&gt;
&lt;p&gt;first_hash = 6ce2a575ac2be575a067e365898c7754298db178&lt;/p&gt;
&lt;p&gt;last_hash = a8baab09b766bb6b3e54439b364862ced138452d&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/7e9875b2ec20a124b7dc703ee32311fb6cb238a5&#34;&gt;https://github.com/zencart/zencart/commit/7e9875b2ec20a124b7dc703ee32311fb6cb238a5&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v200-rc2&#34;&gt;v2.0.0-rc2&lt;/h1&gt;
&lt;p&gt;Built 16 March 2024&lt;/p&gt;
&lt;p&gt;first_hash = ebb5fa877e5c8a645ad7e7f2c86b8da6d81cb64a&lt;/p&gt;
&lt;p&gt;last_hash = d6da68ea718a04f2975571adeccc862e69f223d7&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/6e8017472943eb362b5be68b0efd53a76b48f155&#34;&gt;https://github.com/zencart/zencart/commit/6e8017472943eb362b5be68b0efd53a76b48f155&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v200-rc1&#34;&gt;v2.0.0-rc1&lt;/h1&gt;
&lt;p&gt;Built 09 March 2024&lt;/p&gt;
&lt;p&gt;first_hash = 70c75b9c233c6bb61c60e7582c6874432af7db6e&lt;/p&gt;
&lt;p&gt;last_hash = be20ccdede7093371404659bc5729152956aa88b&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/3394e81bf79dbf471d29b0b154cc68563b8203dc&#34;&gt;https://github.com/zencart/zencart/commit/3394e81bf79dbf471d29b0b154cc68563b8203dc&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v200-beta1&#34;&gt;v2.0.0-beta1&lt;/h1&gt;
&lt;p&gt;Built 25 Feb 2024&lt;/p&gt;
&lt;p&gt;first_hash = 603c8b435fb0d560a14f6137e11b4b35b6ab3019&lt;/p&gt;
&lt;p&gt;last_hash = 8641593cf9dbbbf4a4d69024bcdaa5845f90f187&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/b120b63476bb9f38aed9a7fc5d70236f1ce3f9c9&#34;&gt;https://github.com/zencart/zencart/commit/b120b63476bb9f38aed9a7fc5d70236f1ce3f9c9&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v200-alpha1&#34;&gt;v2.0.0-alpha1&lt;/h1&gt;
&lt;p&gt;Built 27 Jan 2024&lt;/p&gt;
&lt;p&gt;first_hash = ca928ffa40ddb4157e607e45f05df5f4105c4569&lt;/p&gt;
&lt;p&gt;last_hash = 9b1a1ec14be3c47896231575811bee12b17ec1a7&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/bc0c4bf48d7160bce6c944af69b1ae45b7f8c461&#34;&gt;https://github.com/zencart/zencart/commit/bc0c4bf48d7160bce6c944af69b1ae45b7f8c461&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v158a&#34;&gt;v1.5.8a&lt;/h1&gt;
&lt;p&gt;Built 18 Mar 2023&lt;/p&gt;
&lt;p&gt;first_hash = 479d5e1eb597aa09e5c879ee2c2e8aaabb78f45d&lt;/p&gt;
&lt;p&gt;last_hash = ebafeedcb4c1ec70a879a84aa11de879a313a2dd&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/3db8d527910b7fc0f0fb9e2f722833cb9d973d79&#34;&gt;https://github.com/zencart/zencart/commit/3db8d527910b7fc0f0fb9e2f722833cb9d973d79&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v158&#34;&gt;v1.5.8&lt;/h1&gt;
&lt;p&gt;Built 16 Oct 2022&lt;/p&gt;
&lt;p&gt;first_hash = 479d5e1eb597aa09e5c879ee2c2e8aaabb78f45d&lt;/p&gt;
&lt;p&gt;last_hash = c2c5301bd3d2b9a9783936cbfd519249873f7415&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/936158f544f07237cd20fe081c6d513c62ece2a3&#34;&gt;https://github.com/zencart/zencart/commit/936158f544f07237cd20fe081c6d513c62ece2a3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note that a rebuild was done the next day to add the &lt;code&gt;zc_install&lt;/code&gt; fixes.
Commit Hash was 1c97c4b463310d64d75016aa06b9f951a436171e.&lt;/p&gt;
&lt;h1 id=&#34;v158-alpha2&#34;&gt;v1.5.8-alpha2&lt;/h1&gt;
&lt;p&gt;Built 29 Aug 2022&lt;/p&gt;
&lt;p&gt;first_hash = 28b79ce2120771411d08ef2c7cce5058e42a2cc3&lt;/p&gt;
&lt;p&gt;last_hash = 3bb5429b64095b89c671aae8f3e31cc9163b86b9&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/b33bf3888b0f7b660d0f7747c5901ff968eca5ab&#34;&gt;https://github.com/zencart/zencart/commit/b33bf3888b0f7b660d0f7747c5901ff968eca5ab&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;v158-alpha&#34;&gt;v1.5.8-alpha&lt;/h1&gt;
&lt;p&gt;Built 12 Jul 2022&lt;/p&gt;
&lt;p&gt;first_hash = bc80dc0f2f88e3d461fca826a0a42aa5567a9dfcc&lt;/p&gt;
&lt;p&gt;last_hash = 136cf2dfae30d112cc7e1d9bc7210f4bf423b4fe&lt;/p&gt;
&lt;p&gt;initial version stamping commit = &lt;a href=&#34;https://github.com/zencart/zencart/commit/532a5904f0bab3f69c9a3703f7bc3593a54894a9&#34;&gt;https://github.com/zencart/zencart/commit/532a5904f0bab3f69c9a3703f7bc3593a54894a9&lt;/a&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Implementation Guide</title>
      <link>https://docs.zen-cart.com/dev/release/implementation_guide/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/implementation_guide/</guid>
      <description>
        
        
        &lt;p&gt;The source for the Implementation Guide is in the &lt;a href=&#34;https://github.com/zencart/private-docs&#34;&gt;private-docs&lt;/a&gt; repo.  The documentation prime should create a PDF version of this file with a name containing the release number, and put it into the /docs folder.&lt;/p&gt;
&lt;p&gt;PCI-DSS requires that this guide be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;specific for each release&lt;/li&gt;
&lt;li&gt;distributed with the release.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For this reason, the guide is in the /docs folder of the build.&lt;/p&gt;
&lt;!-- and the [Release](/release) folder for the online docs.  --&gt; 
&lt;p&gt;Things to tweak at release time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;front page.  When updating the version number, be sure to do it in the footer as well (but not in the Changelog).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;version number (search and replace).  For example:
v1.5.7 -&amp;gt; v1.5.8&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(In the Changelog at the end, be sure to leave off the &amp;ldquo;v&amp;rdquo; so the history won&amp;rsquo;t get accidentally updated.)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Section 2.4 Server Software Requirements - update versions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Any other relevant places.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Dev: Adding Team Members</title>
      <link>https://docs.zen-cart.com/dev/release/adding_team_members/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.zen-cart.com/dev/release/adding_team_members/</guid>
      <description>
        
        
        &lt;p&gt;This content has been moved to the
&lt;a href=&#34;https://github.com/zencart/infrastructure&#34;&gt;infrastructure repo&lt;/a&gt;.  (Team members only.)&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
