doc: 0.9.0 release notes
[mediagoblin.git] / docs / source / siteadmin / relnotes.rst
index 6892e71e30f4d59d243d655f977236d78a2d18b8..584fd8c343f515f5550d0f8891de2b9d0a47444a 100644 (file)
@@ -21,16 +21,242 @@ This chapter has important information for releases in it.
 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 update``
+   ``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).
@@ -87,7 +313,7 @@ That's it, probably!  If you run into problems, don't hesitate to
   but existant!) RTL language support!
 
 **Known issues:**
- - Webfinger is now json by default; in the spec it should be xml by
+ - 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.