ReleaseProcess: Difference between revisions

From GNU MediaGoblin Wiki
Jump to navigation Jump to search
(added pypi, fixing version numbers and announcement steps)
(→‎Steps to release: Suggest contacting the EasyDeployments contributors)
 
(25 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Steps to release ==
= Release Process =


Here's the list of steps to do a release.
Here's the list of steps to do a release.


'''Technical'''
'''1. verify with others on IRC that we're good to go'''


Pre-release checklist:


# Update <tt>AUTHORS</tt> file
'''2. do a <tt>git fetch</tt> and make sure you have the latest code'''
## check git commits
## ask on mailing list
## other ways?
# Update documentation
## update <tt>README</tt>
## update <tt>docs/source/siteadmin/relnotes.rst</tt>
## update install guide
## other things?


Release checklist:


# Verify with others on IRC that we're good to go.
'''3. run the unit tests:'''
# Do a {{Cmd|git fetch}} and make sure you have the latest code.
# Do a {{Cmd|./devtools/update_translations.sh}} and make sure you have the latest [[Translations|translations]].
# Do a {{Cmd|./devtools/maketarball.sh -dr HEAD}} to make sure building the docs and tarball works. If any errors, proceed no further!
# Do a {{Cmd|git clean -fdx}} to wipe all non-repository files out (THIS DELETES EVERYTHING), go through hacking howto to reinstall.
# Run the unit tests: {{Cmd|./runtests.sh}} If any tests fail, proceed no further!
# Update version numbers in <tt>mediaboglin/_version.py</tt>
# Tag: {{Cmd|git tag -a vX.Y.Z}} (consider {{Cmd|--sign}} to create a signed tag).
# Push the tag to origin: {{Cmd|git push origin vX.Y.Z}}
# Update stable branch to current release and push to origin
# Build the tarfile. {{Cmd|./devtools/maketarball.sh -r vX.Y.Z}} (Note, you may have to do this in a virtualenv... {{Cmd|source bin/activate}} before running)
# Push the tarball to the web-site: add tarball to <tt>site/static/download/</tt> directory in mediagoblin-website repository and then push the site live
# Update on PYPI - {{Cmd|./bin/python setup.py sdist bdist_egg upload}}


EasyDeployments contributions ''(a suggestion made by JF)''
<pre>
./runtests.sh
</pre>


# Contact the EasyDeployments contributors, asking them to update, e.g. by filing issues at:
If any tests fail, proceed no further!
## https://notabug.org/dachary/mediagoblin-docker/issues
## https://github.com/jparyani/mediagoblin/issues
## (check the Wiki page to see if this list is still accurate)


'''Promotional'''


# Blog post
'''4. update version numbers'''
#* Chris sends Deb technical highlights
#* Deb drafts post
#* Chris adds screenshots/links
#* We send the post to press contacts
#* Two days later we publish everywhere (see below)


# setup.py
# docs/conf.py


'''Places we Update'''


#* on identi.ca
'''5. tag'''
#* on diaspora
#* on Facebook (Deb)
#* on Twitter
#* our mailing list, encouraging people to fave, like, repost, etc.
#* reddit
#* digg
#* the GNU mailing list, aka info-gnu@gnu.org "plain text is greatly preferred" omit screenshots or replace with links.


<pre>
git tag -a vX.Y.Z
</pre>


'''Press Contacts'''


#* write to Zonker
'''6. generate documentation'''
#* LinuxJournal
#* LWN
#* OpenSource.com
#* see if the FSF will blog or announce


== Post release process ==
FIXME - this step needs more work


# change version number to the next one + <code>-dev</code> in files listed above
<pre>
# add new milestone to Trac
./generatedocs.sh
</pre>


'''7. build the tarfile'''

FIXME - this step needs to incorporate the generated docs above; probably need to add an optional argument to maketarball.sh that takes a directory of stuff to add to the tarball after it's been created.

<pre>
./maketarball.sh <TAG>
</pre>


'''8. push the tarball to the site'''

FIXME - we need to set this up


'''9. update PYPI'''

FIXME - need instructions, accounts, etc


'''10. update version numbers in git'''

# setup.py
# docs/conf.py


'''11. announce the release'''

Latest revision as of 16:01, 21 December 2016

Steps to release

Here's the list of steps to do a release.

Technical

Pre-release checklist:

  1. Update AUTHORS file
    1. check git commits
    2. ask on mailing list
    3. other ways?
  2. Update documentation
    1. update README
    2. update docs/source/siteadmin/relnotes.rst
    3. update install guide
    4. other things?

Release checklist:

  1. Verify with others on IRC that we're good to go.
  2. Do a git fetch and make sure you have the latest code.
  3. Do a ./devtools/update_translations.sh and make sure you have the latest translations.
  4. Do a ./devtools/maketarball.sh -dr HEAD to make sure building the docs and tarball works. If any errors, proceed no further!
  5. Do a git clean -fdx to wipe all non-repository files out (THIS DELETES EVERYTHING), go through hacking howto to reinstall.
  6. Run the unit tests: ./runtests.sh If any tests fail, proceed no further!
  7. Update version numbers in mediaboglin/_version.py
  8. Tag: git tag -a vX.Y.Z (consider --sign to create a signed tag).
  9. Push the tag to origin: git push origin vX.Y.Z
  10. Update stable branch to current release and push to origin
  11. Build the tarfile. ./devtools/maketarball.sh -r vX.Y.Z (Note, you may have to do this in a virtualenv... source bin/activate before running)
  12. Push the tarball to the web-site: add tarball to site/static/download/ directory in mediagoblin-website repository and then push the site live
  13. Update on PYPI - ./bin/python setup.py sdist bdist_egg upload

EasyDeployments contributions (a suggestion made by JF)

  1. Contact the EasyDeployments contributors, asking them to update, e.g. by filing issues at:
    1. https://notabug.org/dachary/mediagoblin-docker/issues
    2. https://github.com/jparyani/mediagoblin/issues
    3. (check the Wiki page to see if this list is still accurate)

Promotional

  1. Blog post
    • Chris sends Deb technical highlights
    • Deb drafts post
    • Chris adds screenshots/links
    • We send the post to press contacts
    • Two days later we publish everywhere (see below)


Places we Update

    • on identi.ca
    • on diaspora
    • on Facebook (Deb)
    • on Twitter
    • our mailing list, encouraging people to fave, like, repost, etc.
    • reddit
    • digg
    • the GNU mailing list, aka info-gnu@gnu.org "plain text is greatly preferred" omit screenshots or replace with links.


Press Contacts

    • write to Zonker
    • LinuxJournal
    • LWN
    • OpenSource.com
    • see if the FSF will blog or announce

Post release process

  1. change version number to the next one + -dev in files listed above
  2. add new milestone to Trac