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