Difference between revisions of "Code push"

From Dreamwidth Notes
Jump to: navigation, search
m (Check for pushability)
(resectioning and prep for additions)
Line 3: Line 3:
 
The checklist for updating the code running on the live "dreamwidth.org" production site to the most recent version of the code. Admins of other installations will most likely need to alter this checklist based on your site's unique needs.
 
The checklist for updating the code running on the live "dreamwidth.org" production site to the most recent version of the code. Admins of other installations will most likely need to alter this checklist based on your site's unique needs.
  
== Check for pushability==
+
== To do in advance of the push ==
 +
 
 +
=== Check for pushability===
  
 
Code pushes can be requested for business reasons or by members of the dev team, but the admin doing the push should take a few minutes to check over what will be pushed to make sure all patches are complete and in a releasable state. Before a push, check with Denise, Mark, or Kareila a few hours in advance to see if there are any pull requests in the review queue that should go into the release for business reasons.
 
Code pushes can be requested for business reasons or by members of the dev team, but the admin doing the push should take a few minutes to check over what will be pushed to make sure all patches are complete and in a releasable state. Before a push, check with Denise, Mark, or Kareila a few hours in advance to see if there are any pull requests in the review queue that should go into the release for business reasons.
  
== Update <dwcomm>dw_maintenance</dwcomm> in advance ==
+
=== Announce in <dwcomm>dw_maintenance</dwcomm> that a code push is scheduled ===
  
 
Ideally, the comm should be updated a day or so in advance to let people know the timing of the push; at the very least it should be a few hours' notice. Give times in your local timezone and in GMT, and be sure to include the timezone information. Add a link to <a href="http://www.timeanddate.com/worldclock/fixedform.html">Time and Date's Event Time Announcer</a>.
 
Ideally, the comm should be updated a day or so in advance to let people know the timing of the push; at the very least it should be a few hours' notice. Give times in your local timezone and in GMT, and be sure to include the timezone information. Add a link to <a href="http://www.timeanddate.com/worldclock/fixedform.html">Time and Date's Event Time Announcer</a>.
  
== Update Twitter ==
+
== Preparing to push ==
 +
 
 +
=== Update Twitter ===
  
 
Update the @dreamwidth Twitter account when beginning the push to let people know the push is starting.
 
Update the @dreamwidth Twitter account when beginning the push to let people know the push is starting.
  
== Update dw_maintenance when beginning ==
+
=== Update <dwcomm>dw_maintenance</dwcomm> ===
  
 
When beginning the push, update <dwcomm>dw_maintenance</dwcomm> again to announce that it's starting. Include a downtime estimate, with an extra 20% or so added on top for unexpected problems.
 
When beginning the push, update <dwcomm>dw_maintenance</dwcomm> again to announce that it's starting. Include a downtime estimate, with an extra 20% or so added on top for unexpected problems.
  
  
== Do technical magic ==
+
=== Do technical magic ===
  
  
== Spot-check the push ==
+
=== Spot-check the push ===
  
 
Inform the #dw-dev channel that the push has been completed and the site is back on. Ask them to spot-check a few functions by posting entries, reading their reading page, updating settings, etc. Watch the logs for any errors or problems.
 
Inform the #dw-dev channel that the push has been completed and the site is back on. Ask them to spot-check a few functions by posting entries, reading their reading page, updating settings, etc. Watch the logs for any errors or problems.
  
== Increment repository tags ==
+
==After the push is complete ==
 
+
Increment the tags on any repository that has had commits to it since the last push. Use secondary versions (0.1.0 to 0.2.0, etc)
+
  
== Update the dw_maintenance entry ==
+
=== Update the dw_maintenance entry ===
  
 
Edit the <dwcomm>dw-maintenance</dwcomm> entry (don't post a new one) with the date/time (in both your local timezone, clearly marked, and in GMT) with a notice that the push has been completed. Let them know that if they spot any issues, they should contact Support or leave a comment.
 
Edit the <dwcomm>dw-maintenance</dwcomm> entry (don't post a new one) with the date/time (in both your local timezone, clearly marked, and in GMT) with a notice that the push has been completed. Let them know that if they spot any issues, they should contact Support or leave a comment.
  
== Update Twitter account ==
+
=== Update Twitter account ===
  
Update the Twitter account again to let people know the push is complete, and that any problems should go to Support.
+
If needed, update the Twitter account again to let people know the push is complete, and that any problems should go to Support or <dwcomm>dw-maintenance</dwcomm>.
  
== Monitor <dwcomm>dw-maintenance</dwcomm> entry for a few hours ==
+
=== Monitor <dwcomm>dw-maintenance</dwcomm> entry for a few hours ===
  
Stay available for a few hours as <dwcomm>dw_maintenance</dwcomm> comments come in, in case there's a major issue that needs to be resolved with another push. (You don't need to reply to the comments -- Denise will handle that.)
+
Make sure someone can stay available for a few hours as <dwcomm>dw_maintenance</dwcomm> comments come in, in case there's a major issue that needs to be resolved with another push. (You don't need to reply to the comments -- Denise or Kareila will handle that.)
  
== Increment repository tags again (if necessary) ==
+
=== Commit any needed fixes on the release branch ===
  
If there is a secondary push to resolve bugs, update the repo tags to a tertiary version (0.1.0 to 0.1.1) after a day or so, when all the issues are resolved. (The day after a code push should remain as a code freeze, for bugfixes with the previous push only.)
+
If there is a secondary push to resolve bugs, these commits should go directly on the release branch. The hotfixes will be merged back to the develop branch before the next push.

Revision as of 14:44, 6 December 2015


The checklist for updating the code running on the live "dreamwidth.org" production site to the most recent version of the code. Admins of other installations will most likely need to alter this checklist based on your site's unique needs.

To do in advance of the push

Check for pushability

Code pushes can be requested for business reasons or by members of the dev team, but the admin doing the push should take a few minutes to check over what will be pushed to make sure all patches are complete and in a releasable state. Before a push, check with Denise, Mark, or Kareila a few hours in advance to see if there are any pull requests in the review queue that should go into the release for business reasons.

Announce in [info]dw_maintenance that a code push is scheduled

Ideally, the comm should be updated a day or so in advance to let people know the timing of the push; at the very least it should be a few hours' notice. Give times in your local timezone and in GMT, and be sure to include the timezone information. Add a link to <a href="http://www.timeanddate.com/worldclock/fixedform.html">Time and Date's Event Time Announcer</a>.

Preparing to push

Update Twitter

Update the @dreamwidth Twitter account when beginning the push to let people know the push is starting.

Update [info]dw_maintenance

When beginning the push, update [info]dw_maintenance again to announce that it's starting. Include a downtime estimate, with an extra 20% or so added on top for unexpected problems.


Do technical magic

Spot-check the push

Inform the #dw-dev channel that the push has been completed and the site is back on. Ask them to spot-check a few functions by posting entries, reading their reading page, updating settings, etc. Watch the logs for any errors or problems.

After the push is complete

Update the dw_maintenance entry

Edit the [info]dw-maintenance entry (don't post a new one) with the date/time (in both your local timezone, clearly marked, and in GMT) with a notice that the push has been completed. Let them know that if they spot any issues, they should contact Support or leave a comment.

Update Twitter account

If needed, update the Twitter account again to let people know the push is complete, and that any problems should go to Support or [info]dw-maintenance.

Monitor [info]dw-maintenance entry for a few hours

Make sure someone can stay available for a few hours as [info]dw_maintenance comments come in, in case there's a major issue that needs to be resolved with another push. (You don't need to reply to the comments -- Denise or Kareila will handle that.)

Commit any needed fixes on the release branch

If there is a secondary push to resolve bugs, these commits should go directly on the release branch. The hotfixes will be merged back to the develop branch before the next push.