relnotes.rst 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. .. MediaGoblin Documentation
  2. Written in 2012 by MediaGoblin contributors
  3. To the extent possible under law, the author(s) have dedicated all
  4. copyright and related and neighboring rights to this software to
  5. the public domain worldwide. This software is distributed without
  6. any warranty.
  7. You should have received a copy of the CC0 Public Domain
  8. Dedication along with this software. If not, see
  9. <http://creativecommons.org/publicdomain/zero/1.0/>.
  10. .. _release-notes:
  11. =============
  12. Release Notes
  13. =============
  14. This chapter has important information for releases in it.
  15. If you're upgrading from a previous release, please read it
  16. carefully, or at least skim over it.
  17. .. note::
  18. ALWAYS do backups before upgrading, especially before
  19. running migrations! That way if something goes wrong, we can fix
  20. things!
  21. And be sure to shut down your current mediagoblin/celery processes
  22. before upgrading!
  23. .. note::
  24. The MediaGoblin repository used to be on gitorious.org, but since
  25. gitorious.org shut down, we had to move. We are presently on
  26. Savannah. You may need to update your git repository location::
  27. git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git
  28. 0.8.1
  29. =====
  30. This release is a security and bugfix release. We recommend you upgrade as
  31. soon as possible.
  32. **Do this to upgrade**
  33. 0. If you haven't already, switch the git remote URL:
  34. ``git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git``
  35. 1. Update to the latest release. If checked out from git, run:
  36. ``git fetch && git checkout -q v0.8.1``
  37. 2. Run
  38. ``./bootstrap.sh && ./configure && make``
  39. 3. Also run
  40. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  41. (Please check intermediate release steps as well if not upgrading from
  42. 0.8.0)
  43. **Bugfixes/improvements:**
  44. Most importantly, there is an **important security fix**:
  45. Quoting here a portion of the
  46. `release blogpost <http://mediagoblin.org/news/mediagoblin-0.8.1-security-release.html>`_::
  47. We have had a security problem in our OAuth implementation reported to
  48. us privately and have taken steps to address it. The security problem
  49. affects all versions of GNU MediaGoblin since 0.5.0. I have created a patch
  50. for this and released a minor version 0.8.1. It's strongly advised
  51. that everyone upgrade as soon as they can.
  52. In order to exploit the security issue, an attacker must have had
  53. access to a logged in session to your GNU MediaGoblin account. If you
  54. have kept your username and password secret, logging in only over
  55. HTTPS and you've not left yourself logged in on publicly accessible
  56. computers, you should be safe. However it's still advised all users
  57. take the following precautions, listed below.
  58. Users should check their authorized clients. Any client which looks
  59. unfamiliar to you, you should deauthorize. To check this:
  60. 1) Log in to the GNU MediaGoblin instance
  61. 2) Click the drop down arrow in the upper right
  62. 3) Click "Change account settings"
  63. 4) At the bottom click the "Deauthorize applications" link
  64. If you are unsure of any of these, click "Deauthorize".
  65. There are other bugfixes, but they are fairly minor.
  66. 0.8.0
  67. =====
  68. This release has a number of changes related to the way we recommend
  69. building MediaGoblin; upgrade steps are below, but if you run into
  70. trouble, consider pinging the MediaGoblin list or IRC channel.
  71. **Do this to upgrade**
  72. 0. If you haven't already, switch the git remote URL:
  73. ``git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git``
  74. 1. If you don't have node.js installed, you'll need it for handling
  75. MediaGoblin's static web dependencies. Install this via your
  76. distribution! (In the glorious future MediaGoblin will be simply
  77. packaged for your distribution so you won't have to worry about
  78. this!)
  79. 2. Update to the latest release. If checked out from git, run:
  80. ``git fetch && git checkout -q v0.8.0``
  81. 3. Run
  82. ``./bootstrap.sh && ./configure && make``
  83. 4. Also run
  84. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  85. Please note the important steps of 0 and 2, which have not appeared in
  86. prior upgrade guides!
  87. Additionally:
  88. - Are you using audio or video media types? In that case, you'll need
  89. to update your Gstreamer instance to 1.0.
  90. - The Pump API needs some data passed through to the WSGI application,
  91. so if you are using apache with mod_wsgi you should be sure to make
  92. sure to add "WSGIPassAuthorization On" to your config. (Using the
  93. default MediaGoblin documnetation and config, things should work
  94. as-is.)
  95. **Bugfixes/improvements:**
  96. - Preliminary / experimental support for Python 3!
  97. - Footer forced to the bottom of page
  98. - Massive improvements to Pump API support
  99. - Able to run on multiple existing Pump clients! Including Pumpa
  100. and Dianara!
  101. - much cleaner ./configure && make support; it's now the default
  102. - Clearer documentation on permissions and installation
  103. - Switched from Transifex, which had become proprietary, to an
  104. instance of Pootle hosted for GNU
  105. - Moved to Gstreamer 1.0! This also adds a new thumbnailer which
  106. gives much better results in
  107. - Removed terrible check-javascript-dependencies-into-your-application
  108. setup, now using Bower for dependency tracking
  109. - Put some scaffolding in place for Alembic, which will be used for
  110. future mitration work
  111. - Automatically create a fresh mediagoblin.ini from
  112. mediagoblin.ini.example
  113. - no more need for mediagoblin_local.ini (though it's still supported)
  114. - Fix lowercasing of username in auth steps
  115. - Slowly moving towards removing global state (a source of many bugs)
  116. 0.7.1
  117. =====
  118. This is a purely bugfix release. Important changes happened since
  119. 0.7.0; if running MediaGoblin 0.7.0, an upgrade is highly recommended;
  120. see below. This release is especially useful if you have been running
  121. postgres and have been receiving seemingly random database transaction
  122. errors.
  123. **Do this to upgrade**
  124. 1. Update to the latest release. If checked out from git, run:
  125. ``git fetch && git checkout -q v0.7.1 && git submodule init && git submodule update``
  126. 2. Make sure to run
  127. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  128. That's it, probably! If you run into problems, don't hesitate to
  129. `contact us <http://mediagoblin.org/pages/join.html>`_
  130. (IRC is often best).
  131. **Bugfixes/improvements:**
  132. - The *MOST IMPORTANT* change in this release:
  133. Disabling a couple of non-critical features that were causing
  134. database transaction issues. (These should be back by 0.8.0.)
  135. + Disabled the "checking if the database is up to date at
  136. mediagoblin startup" feature
  137. + Disabled the garbage collection stuff by default for now
  138. (You can set garbage_collection under the config mediagoblin
  139. header to something other than 0 to turn it back on for now, but
  140. it's potentially risky for the moment.)
  141. - Some fixes to the 0.7.0 docs
  142. - Fixed Sandy 70s speedboat navbar by updating git submodule
  143. - Added support for cr2 files in raw_image media type
  144. - Added a description to setup.py
  145. - Collection and CollectionItem objects now have nicer in-python representations
  146. - Fixed unicode error with raw image mediatype logging
  147. - Fixed #945 "Host metadata does not confirm to spec (/.well-known/meta-data)"
  148. + Add XRD+XML formatting for /.well-known/host-meta
  149. + Add /.well-known/webfinger API to lookup user hrefs
  150. - deleteuser gmg subcommand now fails gracefully
  151. - Removed a false download link from setup.py
  152. 0.7.0
  153. =====
  154. **Do this to upgrade**
  155. 1. Update to the latest release. If checked out from git, run:
  156. ``git fetch && git checkout -q v0.7.0 && git submodule init && git submodule update``
  157. 2. Make sure to run
  158. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  159. (NOTE: earlier versions of the 0.7.0 release instructions left out the
  160. ``git submodule init`` step! If you did an upgrade earlier based on
  161. these instructions and your theme looks weirdly aligned, try running
  162. the following:)
  163. ``git submodule init && git submodule update``
  164. That's it, probably! If you run into problems, don't hesitate to
  165. `contact us <http://mediagoblin.org/pages/join.html>`_
  166. (IRC is often best).
  167. **New features:**
  168. - New mobile upload API making use of the
  169. `Pump API <https://github.com/e14n/pump.io/blob/master/API.md>`_
  170. (which will be the foundation for MediaGoblin's federation)
  171. - New theme: Sandy 70s Speedboat!
  172. - Metadata features! We also now have a json-ld context.
  173. - Many improvements for archival institutions, including metadata
  174. support and featuring items on the homepage. With the (new!)
  175. archivalook plugin enabled, featuring media is possible.
  176. Additionally, metadata about the particular media item will show up
  177. in the sidebar.
  178. In the future these plugins may be separated, but for now they have
  179. come together as part of the same plugin.
  180. - There is a new gmg subcommand called batchaddmedia that allows for
  181. uploading many files at once. This is aimed to be useful for
  182. archival institutions and groups where there is an already existing
  183. and large set of available media that needs to be included.
  184. - Speaking of, the call to postgres in the makefile is fixed.
  185. - We have a new, generic media-page context hook that allows for
  186. adding context depending on the type of media.
  187. - Tired of video thumbnails breaking during processing all the time?
  188. Good news, everyone! Video thumbnail generation should not fail
  189. frequently anymore. (We think...)
  190. - You can now set default permissions for new users in the config.
  191. - bootstrap.sh / gnu configuration stuff still exists, but moves to be
  192. experimental-bootstrap.sh so as to not confuse newcomers. There are
  193. some problems currently with the autoconf stuff that we need to work
  194. out... we still have interest in supporting it, though help is
  195. welcome.
  196. - MediaGoblin now checks whether or not the database is up to date
  197. when starting.
  198. - Switched to `Skeleton <http://www.getskeleton.com/>`_ as a system for
  199. graphic design.
  200. - New gmg subcommands for administrators:
  201. - A "deletemedia" command
  202. - A "deleteuser" command
  203. - We now have a blogging media type... it's very experimental,
  204. however. Use with caution!
  205. - We have switched to exifread as an external library for reading EXIF
  206. data. It's basically the same thing as before, but packaged
  207. separately from MediaGoblin.
  208. - Many improvements to internationalization. Also (still rudimentary,
  209. but existant!) RTL language support!
  210. **Known issues:**
  211. - The host-meta is now json by default; in the spec it should be xml by
  212. default. We have done this because of compatibility with the pump
  213. API. We are checking with upstream to see if there is a way to
  214. resolve this discrepancy.
  215. 0.6.1
  216. =====
  217. This is a short, bugfix release.
  218. **Do this to upgrade**
  219. 1. Update to the latest release. If checked out from git, run:
  220. ``git fetch && git checkout -q v0.6.1``
  221. 2. Make sure to run
  222. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  223. This release switches the default terms of service to be off by
  224. default and corrects some mistakes in the default terms of service.
  225. Turning the terms of service on is very easy, just set ``show_tos`` in
  226. the ``[mediagoblin]`` section of your config to ``true``.
  227. 0.6.0
  228. =====
  229. **Do this to upgrade**
  230. 1. Update to the latest release. If checked out from git, run:
  231. ``git fetch && git checkout -q v0.6.0``
  232. 2. Make sure to run
  233. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  234. That's it, probably! If you run into problems, don't hesitate to
  235. `contact us <http://mediagoblin.org/pages/join.html>`_
  236. (IRC is often best).
  237. This tool has a lot of new tools for administrators, hence the
  238. nickname "Lore of the Admin"!
  239. **New features:**
  240. - New tools to control how much users can upload, both as a general
  241. user limit, or per file.
  242. You can set this with the following options in your mediagoblin
  243. config file: `upload_limit` and `max_file_size`. Both are integers
  244. in megabytes.
  245. There is an option to control how much each individual user can
  246. upload too, though an interface for this is not yet exposed. See
  247. the "uploaded" field on the core__users table.
  248. - MediaGoblin now contains an authentication plugin for ldap! You
  249. can turn on the mediagoblin.plugins.ldap plugin to make use of
  250. this. See the documentation: :ref:`ldap-plugin`
  251. - There's a new command line upload tool! At long last! See
  252. `./bin/gmg addmedia --help` for info on how to use this.
  253. - There's now a terms of service document included in MediaGoblin.
  254. It's turned on by default, but you can turn it off if you prefer,
  255. just set the configuration option of `show_tos` in the [mediagoblin]
  256. section of your config to false.
  257. Alternately, you can override the template for the terms of service
  258. document to set up your own.
  259. - We have a lot of new administrative tooling features!
  260. - There's a built-in privileges/permissions system now.
  261. Administrators are given access to modifying these parameters
  262. from a user administration panel.
  263. - Users can submit reports about other problematic users or media
  264. and administrators are given tools to resolve said reports and
  265. ban/unban users if needed.
  266. - New version of video.js is included with MediaGoblin. Slight
  267. amount of skinning to match the MediaGoblin look, otherwise also
  268. uses the new default skin.
  269. Developer-oriented changes:
  270. - New developer tool for quickly setting up a development environment
  271. in `devtools/make_example_database.sh`. Requires doing a checkout
  272. of our other tool `mg_dev_environments <https://gitorious.org/mediagoblin/mg-dev-environments/>`_
  273. (probably in the parent Directory) though!
  274. - A "foundations" framework has entered into the codebase.
  275. This is mostly just relevant to coders, but it does mean that it's
  276. much easier to add database structures that need some entries filled
  277. automatically by default.
  278. - Refactoring to the authentication code and the reprocessing code
  279. 0.5.1
  280. =====
  281. v0.5.1 is a bugfix release... the steps are the same as for 0.5.1.
  282. **Bugfixes:**
  283. - python 2.6 compatibility restored
  284. - Fixed last release's release notes ;)
  285. 0.5.0
  286. =====
  287. **NOTE:** If using the API is important to you, we're in a state of
  288. ransition towards a new API via the Pump API. As such, though the old
  289. API still probably works, some changes have happened to the way oauth
  290. works to make it more Pump-compatible. If you're heavily using
  291. clients using the old API, you may wish to hold off on upgrading for
  292. now. Otherwise, jump in and have fun! :)
  293. **Do this to upgrade**
  294. 1. Make sure to run
  295. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  296. after upgrading.
  297. .. mention something about new, experimental configure && make support
  298. 2. Note that a couple of things have changed with ``mediagoblin.ini``. First
  299. we have a new Authentication System. You need to add
  300. ``[[mediagoblin.plugins.basic_auth]]`` under the ``[plugins]`` section of
  301. your config file. Second, media types are now plugins, so you need to add
  302. each media type under the ``[plugins]`` section of your config file.
  303. 3. We have made a script to transition your ``mediagoblin_local.ini`` file for
  304. you. This script can be found at:
  305. http://mediagoblin.org/download/0.5.0_config_converter.py
  306. If you run into problems, don't hesitate to
  307. `contact us <http://mediagoblin.org/pages/join.html>`_
  308. (IRC is often best).
  309. **New features**
  310. * As mentioned above, we now have a plugable Authentication system. You can
  311. use any combination of the multiple authentication systems
  312. (:ref:`basic_auth-chapter`, :ref:`persona-chapter`, :ref:`openid-chapter`)
  313. or write your own!
  314. * Media types are now plugins! This means that new media types will
  315. be able to do new, fancy things they couldn't in the future.
  316. * We now have notification support! This allows you to subscribe to media
  317. comments and to be notified when someone comments on your media.
  318. * New reprocessing framework! You can now reprocess failed uploads, and
  319. send already processed media back to processing to re-transcode or resize
  320. media.
  321. * Comment preview!
  322. * Users now have the ability to change their email associated with their
  323. account.
  324. * New oauth code as we move closer to federation support.
  325. * Experimental pyconfigure support for GNU-style configue and makefile
  326. deployment.
  327. * Database foundations! You can now pre-populate the database models.
  328. * Way faster unit test run-time via in-memory database.
  329. * All mongokit stuff has been cleaned up.
  330. * Fixes for non-ascii filenames.
  331. * The option to stay logged in.
  332. * Mediagoblin has been upgraded to use the latest `celery <http://celeryproject.org/>`_
  333. version.
  334. * You can now add jinja2 extensions to your config file to use in custom
  335. templates.
  336. * Fixed video permission issues.
  337. * Mediagoblin docs are now hosted with multiple versions.
  338. * We removed redundent tooltips from the STL media display.
  339. * We are now using itsdangerous for verification tokens.
  340. 0.4.1
  341. =====
  342. This is a bugfix release for 0.4.0. This only implements one major
  343. fix in the newly released document support which prevented the
  344. "conversion via libreoffice" feature.
  345. If you were running 0.4.0 you can upgrade to v0.4.1 via a simple
  346. switch and restarting mediagoblin/celery with no other actions.
  347. Otherwise, follow 0.4.0 instructions.
  348. 0.4.0
  349. =====
  350. **Do this to upgrade**
  351. 1. Make sure to run
  352. ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
  353. after upgrading.
  354. 2. See "For Theme authors" if you have a custom theme.
  355. 3. Note that ``./bin/gmg theme assetlink`` is now just
  356. ``./bin/gmg assetlink`` and covers both plugins and assets.
  357. Keep on reading to hear more about new plugin features.
  358. 4. If you want to take advantage of new plugins that have statically
  359. served assets, you are going to need to add the new "plugin_static"
  360. section to your nginx config. Basically the following for nginx::
  361. # Plugin static files (usually symlinked in)
  362. location /plugin_static/ {
  363. alias /srv/mediagoblin.example.org/mediagoblin/user_dev/plugin_static/;
  364. }
  365. Similarly, if you've got a modified paste config, you may want to
  366. borrow the app:plugin_static section from the default paste.ini
  367. file.
  368. 5. We now use itsdangerous for sessions; if you had any references to
  369. beaker in your paste config you can remove them. Again, see the
  370. default paste.ini config
  371. 6. We also now use git submodules. Please do:
  372. ``git submodule init && git submodule update``
  373. You will need to do this to use the new PDF support.
  374. **For theme authors**
  375. If you have your own theme or you have any "user modified templates",
  376. please note the following:
  377. * mediagoblin/bits/ files above-content.html, body-end.html,
  378. body-start.html now are renamed... they have underscores instead of
  379. dashes in the filenames now :)
  380. * There's a new file: ``mediagoblin/bits/frontpage_welcome.html``.
  381. You can easily customize this to give a welcome page appropriate to
  382. your site.
  383. **New features**
  384. * PDF media type!
  385. * Improved plugin system. More flexible, better documented, with a
  386. new plugin authoring section of the docs.
  387. * itsdangerous based sessions. No more beaker!
  388. * New, experimental Piwigo-based API. This means you should be able
  389. to use MediaGoblin with something like Shotwell. (Again, a word of
  390. caution: this is *very experimental*!)
  391. * Human readable timestamps, and the option to display the original
  392. date of an image when available (available as the
  393. "original_date_visible" variable)
  394. * Moved unit testing system from nosetests to py.test so we can better
  395. handle issues with sqlalchemy exploding with different database
  396. configurations. Long story :)
  397. * You can now disable the ability to post comments.
  398. * Tags now can be up to length 255 characters by default.
  399. 0.3.3
  400. =====
  401. **Do this to upgrade**
  402. 1. Make sure to run ``bin/gmg dbupdate`` after upgrading.
  403. 2. OpenStreetMap is now a plugin, so if you want to use it, add the
  404. following to your config file:
  405. .. code-block:: ini
  406. [plugins]
  407. [[mediagoblin.plugins.geolocation]]
  408. If you have your own theme, you may need to make some adjustments to
  409. it as some theme related things may have changed in this release. If
  410. you run into problems, don't hesitate to
  411. `contact us <http://mediagoblin.org/pages/join.html>`_
  412. (IRC is often best).
  413. **New features**
  414. * New dropdown menu for accessing various features.
  415. * Significantly improved URL generation. Now mediagoblin won't give
  416. up on making a slug if it looks like there will be a duplicate;
  417. it'll try extra hard to generate a meaningful one instead.
  418. Similarly, linking to an id no longer can possibly conflict with
  419. linking to a slug; /u/username/m/id:35/ is the kind of reference we
  420. now use to linking to entries with ids. However, old links with
  421. entries that linked to ids should work just fine with our migration.
  422. The only urls that might break in this release are ones using colons
  423. or equal signs.
  424. * New template hooks for plugin authoring.
  425. * As a demonstration of new template hooks for plugin authoring,
  426. openstreetmap support now moved to a plugin!
  427. * Method to add media to collections switched from icon of paperclip
  428. to button with "add to collection" text.
  429. * Bug where videos often failed to produce a proper thumbnail fixed!
  430. * Copying around files in MediaGoblin now much more efficient, doesn't
  431. waste gobs of memory.
  432. * Video transcoding now optional for videos that meet certain
  433. criteria. By default, MediaGoblin will not transcode webm videos
  434. that are smaller in resolution than the MediaGoblin defaults, and
  435. MediaGoblin can also be configured to allow theora files to not be
  436. transcoded as well.
  437. * Per-user license preference option; always want your uploads to be
  438. BY-SA and tired of changing that field? You can now set your
  439. license preference in your user settings.
  440. * Video player now responsive; better for mobile!
  441. * You can now delete your account from the user preferences page if
  442. you so wish.
  443. **Other changes**
  444. * Plugin writers: Internal restructuring led to mediagoblin.db.sql* be
  445. mediagoblin.db.* starting from 0.3.3
  446. * Dependency list has been reduced not requiring the "webob" package anymore.
  447. * And many small fixes/improvements, too numerous to list!
  448. 0.3.2
  449. =====
  450. This will be the last release that is capable of converting from an earlier
  451. MongoDB-based MediaGoblin instance to the newer SQL-based system.
  452. **Do this to upgrade**
  453. # directory of your mediagoblin install
  454. cd /srv/mediagoblin.example.org
  455. # copy source for this release
  456. git fetch
  457. git checkout tags/v0.3.2
  458. # perform any needed database updates
  459. bin/gmg dbupdate
  460. # restart your servers however you do that, e.g.,
  461. sudo service mediagoblin-paster restart
  462. sudo service mediagoblin-celeryd restart
  463. **New features**
  464. * **3d model support!**
  465. You can now upload STL and OBJ files and display them in
  466. MediaGoblin. Requires a recent-ish Blender; for details see:
  467. :ref:`deploying-chapter`
  468. * **trim_whitespace**
  469. We bundle the optional plugin trim_whitespace which reduces the size
  470. of the delivered html output by reducing redundant whitespace.
  471. See :ref:`core-plugin-section` for plugin documentation
  472. * **A new API!**
  473. It isn't well documented yet but we do have an API. There is an
  474. `android application in progress <https://gitorious.org/mediagoblin/mediagoblin-android>`_
  475. which makes use of it, and there are some demo applications between
  476. `automgtic <https://github.com/jwandborg/automgtic>`_, an
  477. automatic media uploader for your desktop
  478. and `OMGMG <https://github.com/jwandborg/omgmg>`_, an example of
  479. a web application hooking up to the API.
  480. This is a plugin, so you have to enable it in your mediagoblin
  481. config file by adding a section under [plugins] like::
  482. [plugins]
  483. [[mediagoblin.plugins.api]]
  484. Note that the API works but is not nailed down... the way it is
  485. called may change in future releases.
  486. * **OAuth login support**
  487. For applications that use OAuth to connect to the API.
  488. This is a plugin, so you have to enable it in your mediagoblin
  489. config file by adding a section under [plugins] like::
  490. [plugins]
  491. [[mediagoblin.plugins.oauth]]
  492. * **Collections**
  493. We now have user-curated collections support. These are arbitrary
  494. galleries that are customizable by users. You can add media to
  495. these by clicking on the paperclip icon when logged in and looking
  496. at a media entry.
  497. * **OpenStreetMap licensing display improvements**
  498. More accurate display of OSM licensing, and less disruptive: you
  499. click to "expand" the display of said licensing.
  500. Geolocation is also now on by default.
  501. * **Miscelaneous visual improvements**
  502. We've made a number of small visual improvements including newer and
  503. nicer looking thumbnails and improved checkbox placement.
  504. 0.3.1
  505. =====
  506. **Do this to upgrade**
  507. 1. Make sure to run ``bin/gmg dbuptdate`` after upgrading.
  508. 2. If you set up your server config with an older version of
  509. mediagoblin and the mediagoblin docs, it's possible you don't
  510. have the "theme static files" alias, so double check to make
  511. sure that section is there if you are having problems.
  512. **New features**
  513. * **theming support**
  514. MediaGoblin now also includes theming support, which you can
  515. read about in the section :ref:`theming-chapter`.
  516. * **flatpages**
  517. MediaGoblin has a flatpages plugin allowing you to add pages that
  518. are aren't media-related like "About this site...", "Terms of
  519. service...", etc.
  520. See :ref:`core-plugin-section` for plugin documentation
  521. 0.3.0
  522. =====
  523. This release has one important change. You need to act when
  524. upgrading from a previous version!
  525. This release changes the database system from MongoDB to
  526. SQL(alchemy). If you want to setup a fresh instance, just
  527. follow the instructions in the deployment chapter. If on
  528. the other hand you want to continue to use one instance,
  529. read on.
  530. To convert your data from MongoDB to SQL(alchemy), you need
  531. to follow these steps:
  532. 1. Make sure your MongoDB is still running and has your
  533. data, it's needed for the conversion.
  534. 2. Configure the ``sql_engine`` URI in the config to represent
  535. your target database (see: :ref:`deploying-chapter`)
  536. 3. You need an empty database.
  537. 4. Then run the following command::
  538. bin/gmg [-cf mediagoblin_config.ini] convert_mongo_to_sql
  539. 5. Start your server and investigate.
  540. 6. That's it.