MediaGoblin Changelog

What's new in MediaGoblin 0.9.0

Mar 29, 2016
  • This release is called The Three Goblineers, because we are finally fully embracing Python 3! You could even think of this release as Py-oneering, which it definitely is. Many traditional web service tools are less-than-ideal for federation and so we’ve had to do a lot of rebuilding and retooling. This release represents lots of intense behind the scenes work to make the user experience smoother, as well as some key improvements for MediaGoblin developers and deployers.
  • Federated services use databases in a some fundamentally different ways. We had to make a traditional (rigid) database more friendly for more flexible relationships. The result is similar to the generic foreign key implementation used by Django, but optimized especially for federation. Jessica Tallon did the lion’s share of this work and was aided by Andrew Browning who did extensive testing.
  • We also updated how we handle comments and media collections. On a multi-media service, people will naturally want to reply to comments with videos and to ascii art with songs so we had to make our commenting function support all the available media types. Also, the media collections aren’t just for your personal gallery anymore; they’re also used now in federation and the API as the backbone of a user’s “inbox” and “outbox” feeds. Also, to make life easier on those uploading whole albums of content, if your user has some collections available, these will be presented as a dropdown option while submitting media.
  • In the less visible but equally important department, we updated OAuth and created a “graveyard” system. We updated our code to make better and more secure use of OAuth so that my server and your server can be really sure we are actually talking to each other. The “graveyard” system uses tombstone icons to let you know that an object was removed by it’s original poster. This makes it easy for users to remove media they no longer want to share, while creating as little confusion as possible for other users.
  • Developers will be happy to know that we are keeping pace with the larger Python community and now have complete support for Python 3. We had early and experimental Python 3 support in 0.8.0 but couldn’t quite recommend it for production use. That work is finished! Now you can choose to hack in Python 3 or Python 2 and your code will be totally compatible with the main codebase. Since Python 2 won’t be supported forever, Python 3 is the future. And we are all about the future.
  • We also switched our migration system over to Alembic. Previously, we’d been using sqlalchemy-migrate, but it also wasn’t as good for updating the database layout when you upgrade, and lots of dragons be there. We think Alembic will make it less terrifying to update your MediaGoblin instance so you can stay current and without spending lots of time trying to sort what happened in the database. Alembic is also newer, fresher and better maintained!
  • Another thing that makes updating a little persnickety is finding out that the dependencies have changed. We are collaborating and experimenting with the Guix community to fix this issue. Cleaner packaging will help people upgrade without fear, using deployments they can trust. Watch this space for a future post on how to use Guix and MediaGoblin together for worry-free upgrades.

New in MediaGoblin 0.8.0 (Jun 4, 2015)

  • The biggest news is that the client to server API (making use of the future federation API) is much improved! That means that users no longer have to depend on a browser to access MediaGoblin. You can access and post to your MediaGoblin instance via any of several Pump.io compatible clients, like Pumpa and Dianara (or write your own using PyPump)! The grand goal is a generic (and ubiquitous) client protocol that will work with lots of different served applications that use the pump standard. Eventually, any Pump API compatible client will essentially be a MediaGoblin client and a Pump.IO client. We expect more client types to be added very soon!
  • Part of the process of world domination via federation means that we’re now able to support serving content to multiple client types through a single protocol.
  • In a nutshell, the client to server part of the api/federation equation is working. We are still working on server to server federation that will enable us to share comments, tagging and all the other things that can happen to your shared content on someone else’s server that you may (or may not) want hear about.
  • By the way, if you’re using MediaGoblin with Apache (rather than nginx or some other setup), you’ll need to add “WSGIPassAuthorization On” to your config or the API won’t work. You can look at this wiki page for reference.
  • Speaking of updating and getting with the times, we are officially offering preliminary support for Python 3. Most of our features work without Python 2 installed, so welcome aboard futurists! As always, if you spot something we missed, we’d love to hear from you via our bugtracker, mailing list or IRC channel.
  • Also on the upgrade list for this release, Gstreamer! We’re now using version 1.0 which adds a nice new thumbnailer and includes much improved video transcoding support. If you didn’t get thumbnails before, it wasn’t you. We encourage you to try again and see if it works for you now!
  • Obviously, the future demands cleaner packaging. Configure and make support is now the default… welcome to fewer steps for installing your MediaGoblin instance, which will be critical as we build packages for Fedora, Debian and any other distro that wants to help its users host the federated future of the web.
  • We’ve also switched away from Transifex, which had become proprietary (boo!) to an instance of Pootle that many of our fellow GNU projects are now using for translations. If you’ve been looking for a fully free translation tool, Pootle may be just the thing you’ve been looking for!
  • And finally, we fixed the footer. It is now forced to the bottom of page, instead of floating in the middle of short pages which everyone agrees was sub-optimal.

New in MediaGoblin 0.7.0 (Aug 27, 2014)

  • New features:
  • New mobile upload API making use of the Pump API (which will be the foundation for MediaGoblin’s federation)
  • New theme: Sandy 70s Speedboat!
  • Metadata features! We also now have a json-ld context.
  • Many improvements for archival institutions, including metadata support and featuring items on the homepage. With the (new!) archivalook plugin enabled, featuring media is possible. Additionally, metadata about the particular media item will show up in the sidebar.
  • In the future these plugins may be separated, but for now they have come together as part of the same plugin.
  • There is a new gmg subcommand called batchaddmedia that allows for uploading many files at once. This is aimed to be useful for archival institutions and groups where there is an already existing and large set of available media that needs to be included.
  • Speaking of, the call to postgres in the makefile is fixed.
  • We have a new, generic media-page context hook that allows for adding context depending on the type of media.
  • Tired of video thumbnails breaking during processing all the time? Good news, everyone! Video thumbnail generation should not fail frequently anymore. (We think...)
  • You can now set default permissions for new users in the config.
  • bootstrap.sh / gnu configuration stuff still exists, but moves to be experimental-bootstrap.sh so as to not confuse newcomers. There are some problems currently with the autoconf stuff that we need to work out... we still have interest in supporting it, though help is welcome.
  • MediaGoblin now checks whether or not the database is up to date when starting.
  • Switched to Skeleton as a system for graphic design.
  • New gmg subcommands for administrators: - A “deletemedia” command - A “deleteuser” command
  • We now have a blogging media type... it’s very experimental, however. Use with caution!
  • We have switched to exifread as an external library for reading EXIF data. It’s basically the same thing as before, but packaged separately from MediaGoblin.
  • Many improvements to internationalization. Also (still rudimentary, but existant!) RTL language support!
  • Known issues:
  • Webfinger is now json by default; in the spec it should be xml by default. We have done this because of compatibility with the pump API. We are checking with upstream to see if there is a way to resolve this discrepancy.

New in MediaGoblin 0.4.0 (Jun 18, 2013)

  • First of all, let's talk about document support. Coded by MediaGoblin contributor and user Alon Levy, this new media type is pretty awesome: it uses the hyper-awesome pdf.js to display documents in the browser.
  • What kind of documents? Well, not just PDFs... if your server has LibreOffice installed it can convert most document types LibreOffice can read. (And yes, both the original document and the PDF will be available for download!) From ebooks to journal articles to conference presentations, MediaGoblin can show it all.
  • We've got a new plugin system! Almost anything is possible now in our new system, and indeed, much of our summer projects will be relying on this new infrastructure.
  • A nice new feature: we now have human readable timestamps! Instead of just saying the date and time, it tells you how long ago they were taken. However, it's easy enough to still see the date and time something was uploaded; just hover over it! Additionally, if a photo has metadata about when it was taken, that can be displayed in addition to the time it was uploaded. Pretty cool, yeah?
  • There's a good number of other features worth mentioning briefly: you can configure whether or not you want to allow comments in your config now, and we have an experimental Piwigo compatible API plugin. (Very experimental, but some people have managed to get photo uploading with Shotwell!) And, as always, there are many, many under the hood improvements.