If you're upgrading from a previous release, please read it
carefully, or at least skim over it.
+.. note::
+
+ ALWAYS do backups before upgrading, especially before
+ running migrations! That way if something goes wrong, we can fix
+ things!
+
+ And be sure to shut down your current mediagoblin/celery processes
+ before upgrading!
+
+.. note::
+
+ The MediaGoblin repository used to be on gitorious.org, but since
+ gitorious.org shut down, we had to move. We are presently on
+ Savannah. You may need to update your git repository location::
+
+ git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git
+
+
+0.9.0
+=====
+
+This release has a number of improvements, but is also a major
+"plumbing upgrade" release to MediaGoblin. Notably, we now support
+Python 3, which is pretty cool!
+
+**Do this to upgrade**
+
+0. If you haven't already, switch the git remote URL:
+ ``git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git``
+1. Update to the latest release. If checked out from git, run:
+ ``git fetch && git checkout -q v0.9.0``
+2. Run
+ ``./bootstrap.sh && ./configure && make``
+3. Also run
+ ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
+
+**Bugfixes/improvements:**
+
+- Python 3 is now a first class citizen! We now support both
+ Python 2.7 and Python 3.4 or later.
+- Major updates to internal tooling to pave the way for federation.
+ - Massive overhaul to the database layout (particularly in
+ permitting generic relations)
+ - OAuth updates
+ - Updating how we handle collections
+ - Add a "graveyard" system with tombstones for keeping information
+ about removed objects
+ - Large overhaul to how "comments" work. In federation, many things
+ can reply to many things, so we had to loosen the model.
+- If your user has some collections available, these will be presented
+ as a dropdown option while submitting media.
+- Begin using Alembic for migrations
+- Lots of bugfixes and etc
+ - Many fixes to typos
+ - Some fixes to the blog system
+ - Switch to waitress for development
+ - And more...!
+
+
+0.8.1
+=====
+
+This release is a security and bugfix release. We recommend you upgrade as
+soon as possible.
+
+**Do this to upgrade**
+
+0. If you haven't already, switch the git remote URL:
+ ``git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git``
+1. Update to the latest release. If checked out from git, run:
+ ``git fetch && git checkout -q v0.8.1``
+2. Run
+ ``./bootstrap.sh && ./configure && make``
+3. Also run
+ ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
+
+(Please check intermediate release steps as well if not upgrading from
+0.8.0)
+
+**Bugfixes/improvements:**
+
+Most importantly, there is an **important security fix**:
+
+Quoting here a portion of the
+`release blogpost <http://mediagoblin.org/news/mediagoblin-0.8.1-security-release.html>`_::
+
+ We have had a security problem in our OAuth implementation reported to
+ us privately and have taken steps to address it. The security problem
+ affects all versions of GNU MediaGoblin since 0.5.0. I have created a patch
+ for this and released a minor version 0.8.1. It's strongly advised
+ that everyone upgrade as soon as they can.
+
+ In order to exploit the security issue, an attacker must have had
+ access to a logged in session to your GNU MediaGoblin account. If you
+ have kept your username and password secret, logging in only over
+ HTTPS and you've not left yourself logged in on publicly accessible
+ computers, you should be safe. However it's still advised all users
+ take the following precautions, listed below.
+
+ Users should check their authorized clients. Any client which looks
+ unfamiliar to you, you should deauthorize. To check this:
+
+ 1) Log in to the GNU MediaGoblin instance
+ 2) Click the drop down arrow in the upper right
+ 3) Click "Change account settings"
+ 4) At the bottom click the "Deauthorize applications" link
+
+ If you are unsure of any of these, click "Deauthorize".
+
+There are other bugfixes, but they are fairly minor.
+
+
+0.8.0
+=====
+
+This release has a number of changes related to the way we recommend
+building MediaGoblin; upgrade steps are below, but if you run into
+trouble, consider pinging the MediaGoblin list or IRC channel.
+
+**Do this to upgrade**
+
+0. If you haven't already, switch the git remote URL:
+ ``git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git``
+1. If you don't have node.js installed, you'll need it for handling
+ MediaGoblin's static web dependencies. Install this via your
+ distribution! (In the glorious future MediaGoblin will be simply
+ packaged for your distribution so you won't have to worry about
+ this!)
+2. Update to the latest release. If checked out from git, run:
+ ``git fetch && git checkout -q v0.8.0``
+3. Run
+ ``./bootstrap.sh && ./configure && make``
+4. Also run
+ ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
+
+Please note the important steps of 0 and 2, which have not appeared in
+prior upgrade guides!
+
+Additionally:
+
+- Are you using audio or video media types? In that case, you'll need
+ to update your Gstreamer instance to 1.0.
+- The Pump API needs some data passed through to the WSGI application,
+ so if you are using apache with mod_wsgi you should be sure to make
+ sure to add "WSGIPassAuthorization On" to your config. (Using the
+ default MediaGoblin documnetation and config, things should work
+ as-is.)
+
+
+**Bugfixes/improvements:**
+
+- Preliminary / experimental support for Python 3!
+- Footer forced to the bottom of page
+- Massive improvements to Pump API support
+ - Able to run on multiple existing Pump clients! Including Pumpa
+ and Dianara!
+- much cleaner ./configure && make support; it's now the default
+- Clearer documentation on permissions and installation
+- Switched from Transifex, which had become proprietary, to an
+ instance of Pootle hosted for GNU
+- Moved to Gstreamer 1.0! This also adds a new thumbnailer which
+ gives much better results in
+- Removed terrible check-javascript-dependencies-into-your-application
+ setup, now using Bower for dependency tracking
+- Put some scaffolding in place for Alembic, which will be used for
+ future mitration work
+- Automatically create a fresh mediagoblin.ini from
+ mediagoblin.ini.example
+- no more need for mediagoblin_local.ini (though it's still supported)
+- Fix lowercasing of username in auth steps
+- Slowly moving towards removing global state (a source of many bugs)
+
+0.7.1
+=====
+
+This is a purely bugfix release. Important changes happened since
+0.7.0; if running MediaGoblin 0.7.0, an upgrade is highly recommended;
+see below. This release is especially useful if you have been running
+postgres and have been receiving seemingly random database transaction
+errors.
+
+**Do this to upgrade**
+
+1. Update to the latest release. If checked out from git, run:
+ ``git fetch && git checkout -q v0.7.1 && git submodule init && git submodule update``
+2. Make sure to run
+ ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
+
+That's it, probably! If you run into problems, don't hesitate to
+`contact us <http://mediagoblin.org/pages/join.html>`_
+(IRC is often best).
+
+**Bugfixes/improvements:**
+
+- The *MOST IMPORTANT* change in this release:
+ Disabling a couple of non-critical features that were causing
+ database transaction issues. (These should be back by 0.8.0.)
+
+ + Disabled the "checking if the database is up to date at
+ mediagoblin startup" feature
+ + Disabled the garbage collection stuff by default for now
+ (You can set garbage_collection under the config mediagoblin
+ header to something other than 0 to turn it back on for now, but
+ it's potentially risky for the moment.)
+
+- Some fixes to the 0.7.0 docs
+- Fixed Sandy 70s speedboat navbar by updating git submodule
+- Added support for cr2 files in raw_image media type
+- Added a description to setup.py
+- Collection and CollectionItem objects now have nicer in-python representations
+- Fixed unicode error with raw image mediatype logging
+- Fixed #945 "Host metadata does not confirm to spec (/.well-known/meta-data)"
+
+ + Add XRD+XML formatting for /.well-known/host-meta
+ + Add /.well-known/webfinger API to lookup user hrefs
+
+- deleteuser gmg subcommand now fails gracefully
+- Removed a false download link from setup.py
+
+0.7.0
+=====
+
+**Do this to upgrade**
+
+1. Update to the latest release. If checked out from git, run:
+ ``git fetch && git checkout -q v0.7.0 && git submodule init && git submodule update``
+2. Make sure to run
+ ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
+
+(NOTE: earlier versions of the 0.7.0 release instructions left out the
+``git submodule init`` step! If you did an upgrade earlier based on
+these instructions and your theme looks weirdly aligned, try running
+the following:)
+
+ ``git submodule init && git submodule update``
+
+That's it, probably! If you run into problems, don't hesitate to
+`contact us <http://mediagoblin.org/pages/join.html>`_
+(IRC is often best).
+
+**New features:**
+
+- New mobile upload API making use of the
+ `Pump API <https://github.com/e14n/pump.io/blob/master/API.md>`_
+ (which will be the foundation for MediaGoblin's federation)
+- New theme: Sandy 70s Speedboat!
+
+- Metadata features! We also now have a json-ld context.
+
+- Many improvements for archival institutions, including metadata
+ support and featuring items on the homepage. With the (new!)
+ archivalook plugin enabled, featuring media is possible.
+ Additionally, metadata about the particular media item will show up
+ in the sidebar.
+
+ In the future these plugins may be separated, but for now they have
+ come together as part of the same plugin.
+
+- There is a new gmg subcommand called batchaddmedia that allows for
+ uploading many files at once. This is aimed to be useful for
+ archival institutions and groups where there is an already existing
+ and large set of available media that needs to be included.
+- Speaking of, the call to postgres in the makefile is fixed.
+- We have a new, generic media-page context hook that allows for
+ adding context depending on the type of media.
+- Tired of video thumbnails breaking during processing all the time?
+ Good news, everyone! Video thumbnail generation should not fail
+ frequently anymore. (We think...)
+- You can now set default permissions for new users in the config.
+
+- bootstrap.sh / gnu configuration stuff still exists, but moves to be
+ experimental-bootstrap.sh so as to not confuse newcomers. There are
+ some problems currently with the autoconf stuff that we need to work
+ out... we still have interest in supporting it, though help is
+ welcome.
+
+- MediaGoblin now checks whether or not the database is up to date
+ when starting.
+- Switched to `Skeleton <http://www.getskeleton.com/>`_ as a system for
+ graphic design.
+- New gmg subcommands for administrators:
+ - A "deletemedia" command
+ - A "deleteuser" command
+- We now have a blogging media type... it's very experimental,
+ however. Use with caution!
+- We have switched to exifread as an external library for reading EXIF
+ data. It's basically the same thing as before, but packaged
+ separately from MediaGoblin.
+- Many improvements to internationalization. Also (still rudimentary,
+ but existant!) RTL language support!
+
+**Known issues:**
+ - The host-meta is now json by default; in the spec it should be xml by
+ default. We have done this because of compatibility with the pump
+ API. We are checking with upstream to see if there is a way to
+ resolve this discrepancy.
+
+
0.6.1
=====