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