Difference between revisions of "Geeklog Release Procedures"

From GeeklogWiki
Jump to: navigation, search
(The Tarball)
(Geeklog Sites)
 
(32 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
= The Tarball =
 
= The Tarball =
  
* Make sure you update history file in docs with version and release date (and readme in root directory if needed)  
+
* Make sure you update history, install.html, changes.html, themevars.html files in docs (both English and Japanese) with the latest info about the version and release date (and readme in root directory if needed)  
* Confirm correct version number in /public_html/sitconfig.php, /public_html/admin/install/classes/installer.class.php, and /build.xml
+
* Confirm correct Geeklog version number in /public_html/sitconfig.php, /public_html/admin/install/classes/installer.class.php, and /build.properties
* Make sure all language files are synched
+
* Confirm git is installed on server that install package is being built on so the "changed-files" file gets updated properly
 +
* Make sure all language files are synched  
 +
** This process will use the English language files and synch with all other languages for Geeklog, The Installer, and all core plugins
 
** Open your command prompt and to the top directory of your local Geeklog repository
 
** Open your command prompt and to the top directory of your local Geeklog repository
 
** Type: .\system\build\vendor\phing\phing\bin\phing.bat lang
 
** Type: .\system\build\vendor\phing\phing\bin\phing.bat lang
  * Once complete commit any updated language files  
+
** Once complete commit any updated language files  
* For building an install package we use phing (which uses a config file called “build.xml” in the top directory).  
+
* For building an install package we use phing (which uses a config file called “build.xml” and “build.properties” in the top directory).  
  * Go to your Geeklog repository top directory in command prompt
+
** '''Make sure no extra files exist as they will get included in the package. This includes db-config.php, siteconfig.php and any images and cached files.''' Best way to do this is delete the .gitignore file and then check for any new files.
  * Confirm latest repository and make sure no old compressed install packages exist (or they will be rolled into the new package).
+
** Go to your Geeklog repository top directory in command prompt
  * Type: .\system\build\vendor\phing\phing\bin\phing.bat dist
+
** Confirm latest repository. Note: no old compressed install packages will note be rolled into the new package.
  * Once the process complete you will get a file “geeklog-2.1.2.tar.gz” in the top directory
+
** Type: .\system\build\vendor\phing\phing\bin\phing.bat dist
  * If this is a beta or release candidate then the file will need to be renamed to: geeklog-2.1.2-b1.tar.gz or: geeklog-2.1.2-rc1.tar.gz
+
** Once the process complete you will get a file “geeklog-2.1.2.tar.gz” in the top directory
* [[Tags and Branches|Tagging]] a revision in the repository will trigger the [[Automatic Tarball Creation|automatic creation]] of a Geeklog tarball
+
** If this is a beta or release candidate then the file will need to be renamed to: geeklog-2.1.2-b1.tar.gz or: geeklog-2.1.2-rc1.tar.gz
* The tarball will automatically show up in the submission queue of the File Management plugin on the Geeklog homepage
+
* Create a new release on GitHub
* Tag naming convention is as follows release: geeklog_2_1_0_stable beta: geeklog_2_1_0_b1 release candidate: geeklog_2_1_0_rc1
+
** Visit https://github.com/Geeklog-Core/geeklog/releases
 +
** Create a release and make sure to tag it the correct version number (it will be tagged in the repository), for example: v2.1.2 or v2.1.2-rc1 (for release candidate) or v2.1.2-b1 (for beta)
 +
*** '''IMPORTANT:''' Make sure to tag the release after you have committed the change-files file into the repository as we want these changes included as part of the version
 +
* Visit Geeklog.net
 +
** Add the new release to the Downloads plugin
 +
** In Downloads plugin, move any releases not current to Geeklog->Old Versions (like previous version of Geeklog or older betas and RCs). Need to clear cache after so block updates.
 +
** Add a new article about the release pointing to the correct download
 
* unpack tarball on the server
 
* unpack tarball on the server
 
* update site
 
* update site
Line 29: Line 37:
 
= Updating geeklog.net =
 
= Updating geeklog.net =
  
* TBD: document traps and pitfalls
+
The following files need special handling when updating geeklog.net:
  
The following files need special handling when updating geeklog.net:
+
== glnet_curve Theme ==
 +
* As of Geeklog 2.1.2 the glnet_curve is now the default theme used by Geeklog.net. It is a copy of on the Denim Curve theme with only a few changes to the header and footer template files (along with the name changes, etc.. required in functions.php). This theme is based on the Denim theme which is also required in the themes directory. No other themes should be present on Geeklog.net as users cannot change themes.
 +
** On upgrades for the glnet_curve remember to update the jquery_ui directory and the images directory with any changes from the Denim Curve theme. The fonts, css, css_ltr, and css_rtl directories are also required.
 +
** As far as template files are concerned only the files we modified directly for Geeklog.net should be in the glnet_curve directory and the Denim theme should be the stock theme from the release. Most changes in these files are marked with the"GLNET CUSTOM" comment.
 +
* For glnet_curve theme take a copy of the <tt>footer.thtml</tt> from denim and add it to glnet_curve. Make sure the version number is visible and add the "hosted by pair.com" link (as per our agreement with pair Networks).
 +
* The Download block on the top right uses a block header template without a title, so add this to the theme's <tt>functions.php</tt>: <pre>$_BLOCK_TEMPLATE['download'] = 'blockheader-notitle-right.thtml,blockfooter.thtml';</pre> and make sure the <tt>blockheader-notitle-right.thtml</tt> template file exists.
  
 +
== Other Files ==
 
* remove the bundled <tt>lib-custom.php</tt> and <tt>robots.txt</tt> and use the copies already present on the webserver instead
 
* remove the bundled <tt>lib-custom.php</tt> and <tt>robots.txt</tt> and use the copies already present on the webserver instead
 +
** If updating lib-custom make sure to add the functions phpblock_current_versions_downloads and phpblock_whos_new
 
* check <tt>db-config.php</tt> and <tt>siteconfig.php</tt> for any required changes
 
* check <tt>db-config.php</tt> and <tt>siteconfig.php</tt> for any required changes
* <tt>lib-common.php</tt>: add the <code>require_once</code> line for the Bad Behavior plugin
+
* If you change the database name on the Geeklog upgrade (which we have been for each new version) remember to change the cron-jobs to reflect the new database name, username, and password
* <tt>footer.thtml</tt>: make sure the version number is visible and add the "hosted by pair.com" link (as per our agreement with pair Networks).
 
* <tt>style.css</tt>: add plugin-specific CSS, e.g. for the Forum plugin
 
* The Download block on the top right uses a block header template without a title, so add this to the theme's <tt>functions.php</tt>: <pre>$_BLOCK_TEMPLATE['download'] = 'blockheader-notitle-right.thtml,blockfooter.thtml';</pre> and make sure the <tt>blockheader-notitle-right.thtml</tt> template file exists.
 
* As of Geeklog 2.1.0 the geeklognet_theme is now the default theme used by Geeklog.net. It is based on the Modern Curve theme which is also required in the themes directory. On upgrades for the geeklognet_theme remember to update the jquery_ui directory and the images directory with any changes from the Modern Curve theme. As far as template files are concerned only the files we modified directly for Geeklog.net should be in the geeklognet_theme directory and the Modern Curve theme should be the stock theme from the release.
 
 
 
== Hacks ==
 
 
 
The following "Cool Hacks" are installed on geeklog.net:
 
* [http://www.geeklog.net/forum/viewtopic.php?showtopic=90485 input type="search"]. The modern curve search box is located in leftblocks.thtml template file.
 
  
 
= Information to Update =
 
= Information to Update =
Line 50: Line 56:
 
== Geeklog Sites ==
 
== Geeklog Sites ==
  
* Make sure you update history file in docs with version and release date (and readme in root directory if needed) before tarball creation
+
* Create a new download for the install in the Downloads plugin. Easiest way is to copy and older version of a Geeklog download.
* After approving the tarball from the File Management submission queue (the file can take up to 15 minutes to appear after adding the tag to the repository), go to the [http://www.geeklog.net/filemgmt/viewcat.php?cid=8 list of current versions]. Edit all non-current versions and change their category from "Geeklog" to "Geeklog > old versions".
+
** A full install tarball download belongs in the '''Geeklog''' category and the '''Geeklog''' project. An Update tarball belongs in the sub category '''Updates'''.
 +
** Make sure any release previous betas or release candidates are moved to '''Old Versions''' Downloads category.
 +
** Confirm Downloads button on homepage block points to the latest Geeklog download. (may have to delete template cache)
 
* Publish an '''article''' on geeklog.net:
 
* Publish an '''article''' on geeklog.net:
 
** summarize the changes in this release
 
** summarize the changes in this release
Line 64: Line 72:
 
** Provide a brief description of the release and link to the geeklog.net article for details.
 
** Provide a brief description of the release and link to the geeklog.net article for details.
 
* Update the '''wiki frontpage''' (not for betas/release candidates)
 
* Update the '''wiki frontpage''' (not for betas/release candidates)
* Update the '''bugtracker''' (not for betas/release candidates) to ensure the version is removed from the Roadmap and added in dropdowns available for bugreports:
+
* Update the '''GitHub Issue Tracker''' (not for betas/release candidates). Make sure you have a later milestone create and then move all incomplete issues and feature requests from current milestone to a later milestone. Close current milestone
** Go to Manage -> Manage Projects -> Geeklog 1 -> Versions
+
* The demo site needs to be updated to use the latest version of Geeklog (not for betas/release candidates). Once updated you will also need to update the Resources block with the correct version number of the demo site.
** Edit the version: Set the release date, check the "Released" checkbox
+
* Backup the server files and database.
** Additionally, post a '''news item''' on the [http://project.geeklog.net/tracking/main_page.php bugtracker frontpage]
 
* Notify Ironmax at Spacequad.com that the demo site needs to be updated to use the latest version of Geeklog (not for betas/release candidates). Once updated you will also need to update the Resources block with the correct version number of the demo site.
 
  
 
== External Sites ==
 
== External Sites ==

Latest revision as of 15:07, 16 April 2020

This page outlines the necessary steps to perform before, during, and after the release of a new Geeklog version.

Pre-Announcements

  • Obviously, plans for a new release should have been discussed on geeklog-devel. For security releases, the discussion may happen on geeklog-security only.
  • Notify the geeklog-translations mailing list to give translators a chance and a timeframe to update their translations.


The Tarball

  • Make sure you update history, install.html, changes.html, themevars.html files in docs (both English and Japanese) with the latest info about the version and release date (and readme in root directory if needed)
  • Confirm correct Geeklog version number in /public_html/sitconfig.php, /public_html/admin/install/classes/installer.class.php, and /build.properties
  • Confirm git is installed on server that install package is being built on so the "changed-files" file gets updated properly
  • Make sure all language files are synched
    • This process will use the English language files and synch with all other languages for Geeklog, The Installer, and all core plugins
    • Open your command prompt and to the top directory of your local Geeklog repository
    • Type: .\system\build\vendor\phing\phing\bin\phing.bat lang
    • Once complete commit any updated language files
  • For building an install package we use phing (which uses a config file called “build.xml” and “build.properties” in the top directory).
    • Make sure no extra files exist as they will get included in the package. This includes db-config.php, siteconfig.php and any images and cached files. Best way to do this is delete the .gitignore file and then check for any new files.
    • Go to your Geeklog repository top directory in command prompt
    • Confirm latest repository. Note: no old compressed install packages will note be rolled into the new package.
    • Type: .\system\build\vendor\phing\phing\bin\phing.bat dist
    • Once the process complete you will get a file “geeklog-2.1.2.tar.gz” in the top directory
    • If this is a beta or release candidate then the file will need to be renamed to: geeklog-2.1.2-b1.tar.gz or: geeklog-2.1.2-rc1.tar.gz
  • Create a new release on GitHub
    • Visit https://github.com/Geeklog-Core/geeklog/releases
    • Create a release and make sure to tag it the correct version number (it will be tagged in the repository), for example: v2.1.2 or v2.1.2-rc1 (for release candidate) or v2.1.2-b1 (for beta)
      • IMPORTANT: Make sure to tag the release after you have committed the change-files file into the repository as we want these changes included as part of the version
  • Visit Geeklog.net
    • Add the new release to the Downloads plugin
    • In Downloads plugin, move any releases not current to Geeklog->Old Versions (like previous version of Geeklog or older betas and RCs). Need to clear cache after so block updates.
    • Add a new article about the release pointing to the correct download
  • unpack tarball on the server
  • update site

Updating geeklog.net

The following files need special handling when updating geeklog.net:

glnet_curve Theme

  • As of Geeklog 2.1.2 the glnet_curve is now the default theme used by Geeklog.net. It is a copy of on the Denim Curve theme with only a few changes to the header and footer template files (along with the name changes, etc.. required in functions.php). This theme is based on the Denim theme which is also required in the themes directory. No other themes should be present on Geeklog.net as users cannot change themes.
    • On upgrades for the glnet_curve remember to update the jquery_ui directory and the images directory with any changes from the Denim Curve theme. The fonts, css, css_ltr, and css_rtl directories are also required.
    • As far as template files are concerned only the files we modified directly for Geeklog.net should be in the glnet_curve directory and the Denim theme should be the stock theme from the release. Most changes in these files are marked with the"GLNET CUSTOM" comment.
  • For glnet_curve theme take a copy of the footer.thtml from denim and add it to glnet_curve. Make sure the version number is visible and add the "hosted by pair.com" link (as per our agreement with pair Networks).
  • The Download block on the top right uses a block header template without a title, so add this to the theme's functions.php:
    $_BLOCK_TEMPLATE['download'] = 'blockheader-notitle-right.thtml,blockfooter.thtml';
    and make sure the blockheader-notitle-right.thtml template file exists.

Other Files

  • remove the bundled lib-custom.php and robots.txt and use the copies already present on the webserver instead
    • If updating lib-custom make sure to add the functions phpblock_current_versions_downloads and phpblock_whos_new
  • check db-config.php and siteconfig.php for any required changes
  • If you change the database name on the Geeklog upgrade (which we have been for each new version) remember to change the cron-jobs to reflect the new database name, username, and password

Information to Update

Geeklog Sites

  • Create a new download for the install in the Downloads plugin. Easiest way is to copy and older version of a Geeklog download.
    • A full install tarball download belongs in the Geeklog category and the Geeklog project. An Update tarball belongs in the sub category Updates.
    • Make sure any release previous betas or release candidates are moved to Old Versions Downloads category.
    • Confirm Downloads button on homepage block points to the latest Geeklog download. (may have to delete template cache)
  • Publish an article on geeklog.net:
    • summarize the changes in this release
    • include a link to the entry in the download area
    • Convention for the story ID: geeklog-x.y.z, e.g. geeklog-1.5.2, geeklog-1.4.0sr6
    • Add story to the Geeklog topic and the Announcements topic (default). Make sure both are set to inherit
    • Announcements of new versions go into the Announcements topic. For security releases, either post the announcement in the Security topic, or post two articles (one in Announcements and the details of the security issues in Security).
    • don't forget to send pingbacks and ping weblog directories
  • Update the versionchecker.php script (not for betas/release candidates).
    • Once updated, the new version of the script should be added to the tools repository.
  • Send out an email to the geeklog-announce mailing list.
    • Provide a brief description of the release and link to the geeklog.net article for details.
  • Update the wiki frontpage (not for betas/release candidates)
  • Update the GitHub Issue Tracker (not for betas/release candidates). Make sure you have a later milestone create and then move all incomplete issues and feature requests from current milestone to a later milestone. Close current milestone
  • The demo site needs to be updated to use the latest version of Geeklog (not for betas/release candidates). Once updated you will also need to update the Resources block with the correct version number of the demo site.
  • Backup the server files and database.

External Sites

These sites should only be notified about final and security releases (i.e. not for betas and release candidates):