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