Server update, 2014-05-26

We’re back with another release on the heels of our schema change. This release includes some fixes that were hot-fixed to the production servers late the other week as well as some that have gone through the usual beta process. As such, most of the changes have to do with new or changed features of that release, plus some assorted refactoring and other bugfixes. Thanks to chirlu, nikki, and the rest of the MetaBrainz team for their hard work on this release!

Happy series editing!

The git tag for this release is v-2014-05-26.

The full list of fixed tickets, as usual:

Bug

  • [MBS-6181] – Deleted editors may be nominated for auto-editorship
  • [MBS-6309] – Search results don’t have a score column anymore after a few pages
  • [MBS-7354] – Internal Server Error in mini relationship editor when a relationship has been removed
  • [MBS-7513] – Uploading PDF cover art requires the user to switch to the “All files” filetype in the file selection dialog
  • [MBS-7514] – New accounts may be called “Deleted Editor #nnn”
  • [MBS-7516] – Age of 0 not displayed in user profiles
  • [MBS-7519] – “PDF file” labels displayed on top of image previews
  • [MBS-7530] – Caught exception in MusicBrainz::Server::Controller::Series->add_alias “The edit could not be created.
  • [MBS-7532] – ISE: Undefined value when relating Release Groups to an ordered Series
  • [MBS-7533] – Can’t create a new series from inline search
  • [MBS-7538] – Regression: Not possible to edit URL relationship attributes
  • [MBS-7539] – series. numbering elements is not auto-edit while setting automatic is
  • [MBS-7543] – “Cancel” does not cancel changes made in mini-relationship-editor for instrument-performer ARs
  • [MBS-7544] – Grouping link types are selectable in the release editor
  • [MBS-7545] – Release editor creates empty URL edits if you just change the release name
  • [MBS-7548] – Automatic series ordering doesn’t work correctly
  • [MBS-7549] – Regression: Release Editor URL seeding does not work anymore
  • [MBS-7550] – Regression: Editor search is broken
  • [MBS-7555] – ISE when changing series order numbering
  • [MBS-7556] – URL cleanup broken on edit URL pages
  • [MBS-7558] – Relationship-editor shows “The end date cannot preceed the begin date” incorrectly
  • [MBS-7559] – Sort name guess case is missing from series alias pages
  • [MBS-7561] – Relationship editor doesn’t show the count of selected recordings
  • [MBS-7562] – Regression: Error trying to unset a label in “edit release label”
  • [MBS-7563] – Multiple failures on “edit label”
  • [MBS-7570] – Add series and instruments as linkable entities in annotations
  • [MBS-7576] – Not possible to add relationships to a non-label from a label edit page
  • [MBS-7579] – Error while trying to add a release
  • [MBS-7593] – Regression: Seeding URLs to mini-relationship editor is broken
  • [MBS-7597] – Replacing recording-work relationship in relationship editor fails
  • [MBS-7599] – Relationship editor doesn’t load relationships for some recordings
  • [MBS-7600] – Firefox: “Edit Note” does not show Add Release Label if the annotation gets removed
  • [MBS-7603] – Replication trigger missing for link_attribute_text_value table

Improvement

  • [MBS-7493] – Redirected MBID pages, slave/beta servers, and non-preferred scheme should use rel=canonical to link to the main site
  • [MBS-7517] – Deleted editors should appear as “deleted”, not as “Limited User”
  • [MBS-7567] – Provide “copy/sort” bubble for all alias sortnames
  • [MBS-7575] – Support creating/editing URL relationships with the /relationship-editor endpoint
  • [MBS-7596] – The relationship editor dialog should work on a copy of the relationship until the dialog is accepted
  • [MBS-7619] – admin/config.sh means configuration is split between files (and since checked-in complicates customization)

Task

  • [MBS-7547] – Remove MAC authentication for WS

Brief downtime this Friday/Saturday, at 2 UTC (19 PDT/22 EDT/4 CEST)

As some of you with slave databases may have noticed, we made a slight error and excluded some of the new tables from our schema change in replication (tracked by MBS-7603).

Luckily, the tables in question are presently quite small, meaning that if we act now we can add them without needing a formal schema change release (by simply replicating out the changes). Less luckily, this process requires taking some very heavy locks on the ‘series’ database table, so we’ve chosen to have a small amount of downtime to run the script, at (or shortly after) the time mentioned in the title, which also gives us a chance to restart our database server to incorporate some extensions we’d intended but failed to add during the schema change release last week.

We don’t foresee this process taking more than a few minutes, and no action should be necessary for downstream data users.

Announcing the beta launch of CritiqueBrainz

I’m proud to announce that we’ve launched a beta version of our new project: CritiqueBrainz.

CritiqueBrainz is a music review site, where anyone can write a music review for an artist or a release-group (album, single, etc). Unlike Wikipedia’s neutral point of view policy, this site is about passionate reviews about music. If an album is horrible, please write a review about why it is horrible. If it is great, please write one telling us what makes it great.

All of the reviews in CritiqueBrainz will be Creative Commons licensed. The user has a choice to license their review under CC-by-nc-sa (disallowing commercial use) or CC-by-sa (allowing commercial use). To get the site started, the BBC was kind enough to send us their collection of almost 9,000 CC licensed reviews. Go and have a look — there are a lot of reviews for you to read, right now!

CritiqueBrainz is a new web site that was originally written by Maciej Czerwiński for last year’s Summer of Code. All of the goals for the project were met last year, but that didn’t leave us with a site that was ready for deployment. For this year’s Summer of Code, Roman Tsukanov picked up the project and immediately started fixing bugs, making improvements and generally rocking the project into stability and drastically improved the look and feel of the site. On the beginning day of Summer of Code, we’re ready for a beta release!

This past weekend, I attended Music Hack Day San Francisco and worked with Roman to add Spotify integration into the site. If you have a Spotify account, you can listen to the music as you read the reviews. So far, we’ve matched 250,000 release-groups in MusicBrainz to Spotify! Even if an album doesn’t have a review, you can still browse all of MusicBrainz via CritiqueBrainz and if we have a matched Spotify album, you can listen to it by clicking the play button under the cover art.

If an album you find doesn’t have a match in Spotify, we invite you to help us find a match and submit it to Spotify. Click on the “Match this!” link, which will execute a search via Spotify’s API to try and find a matching album. Due to some limitations in the Spotify API, this doesn’t work as well as we want to — we plan to pester Spotify to improve their API to make this a better experience.

We’re hoping to make CritiqueBrainz a user site that uses more cover-art and white space to make a site that is friendlier to browse the amazing pieces of information that MusicBrainz has collected. Unlike the data nerds at MusicBrainz, not everyone loves information overload; this site should hopefully make non-data nerds happy about MusicBrainz data.

If you find a bug, or have a suggestion for improving the site, please file a bug report here and Roman will have a look at it.

Thanks to everyone who had a hand in making this project a reality and thanks to Google’s Open Source programs office for making Summer of Code happen!

MHD San Francisco 2014

MusicBrainz is represented at Music Hack Day San Francisco 2014 this weekend!

If you’re a hacker who is participating, this page collects a number of interesting things about MusicBrainz that lets you get started with MusicBrainz easily.

If you’d like some help with MusicBrainz, come see Rob in the the back of presentation area. Rob is the guy with the crazy hair and the bright orange t-shirt.

Have fun!

Search Server Update, 2014-05-14

Bug

  • [SEARCH-141] – Remove or change setMergeFactor option in IndexBuilder
  • [SEARCH-332] – target element for relationships included in /ws/2/url endpoint is improperly structured to match lookup
  • [SEARCH-336] – searching “Universal Music” and 34. entry is correct “Universal Music”
  • [SEARCH-339] – MB search requires minimum of 4 characters to consider second name
  • [SEARCH-347] – Countries should be sorted before cities in Area search
  • [SEARCH-348] – Full Search Index Failure

Improvement

  • [SEARCH-265] – Add editors to the indexed search
  • [SEARCH-341] – Allow searching releases with specific packaging type
  • [SEARCH-352] – Include disambiguation in work index
  • [SEARCH-355] – Label Sortname field removed from Database
  • [SEARCH-356] – Area Sortname field removed from Database

New Feature

Task

  • [SEARCH-338] – Return containing areas in area search

Server upgrade and schema change, 2014-05-14

Hello again! This fortnight, as we’ve mentioned among the past few posts, is our twice-annual schema change release! This means that we’ve got some big changes, as well as special upgrade instructions.

In the former category, we’ve added support for two new entities: Series and Instruments, each of which is exactly what it sounds like. We’ve also done some various cleanup (tables missing from replication, making some attribute-style tables (e.g., label types) trees, and more properly orderable, removing unuseful sortnames). In non-schema-change fixes, we’ve fixed some merging for Artist Credits, show Area names after Places routinely, and perhaps most excitingly, added smaller versions of the relationship editor for other entities. It’s now possible to add relationships to any entity from most entity edit pages, expanding on our previous addition of URL editing!

As far as upgrading:

  1. Ensure you’ve replicated up to the most recent replication packet available with the old schema. (if you’re not sure, run ./admin/replication/LoadReplicationChanges and see what it tells you).
  2. Take down the web server running MusicBrainz, if you’re running a web server.
  3. Turn off cron jobs if you are automatically updating the database via cron jobs.
  4. Make sure your REPLICATION_TYPE setting is RT_SLAVE
  5. Switch to the new code with git fetch origin followed by git checkout v-2014-05-14-schema-change
  6. Run ./upgrade.sh (or carton exec -Ilib -- ./upgrade.sh if you’re using carton, with older installs).
  7. Set DB_SCHEMA_SEQUENCE to 20 in lib/DBDefs.pm
  8. Turn cron jobs back on, if needed.
  9. Restart the MusicBrainz web server, if applicable. It’s also recommended you restart memcached.

The git tag for this release, as mentioned above in the instructions, is v-2014-05-14-schema-change.

Full release notes, as usual:

Bug

  • [MBS-5978] – Replication feed is missing release_tag
  • [MBS-6709] – “None” is no longer the last Packaging type after adding Book and Cassette Case
  • [MBS-7482] – Artist merge with AC renaming does not merge identical ACs

Improvement

  • [MBS-2410] – Label types not a tree anymore
  • [MBS-2714] – Add support for Series.
  • [MBS-5897] – Make it possible to see edit JSON in the case of an ISE or poor data display
  • [MBS-6144] – Remove the apparently-unused script_language table
  • [MBS-6602] – Remove sortnames from areas
  • [MBS-6603] – Remove sortnames from labels
  • [MBS-6651] – Make it possible to disable dates for relationship types
  • [MBS-6886] – Display area after place names
  • [MBS-6887] – Model coordinates without nullable latitude and longitude
  • [MBS-7205] – Link types should track assumed cardinality
  • [MBS-7411] – Don’t require disambiguation comments for places from different areas
  • [MBS-7470] – Merging/combining RG types (primary/secondary) is unintuitive

New Feature

  • [MBS-3674] – Make instruments entities
  • [MBS-6234] – Add a relationship editor to artists, labels, recordings, release-groups, places, areas and works

Task

  • [MBS-7441] – Check non-replicated changes to DB that have happened since last schema change

MetaBrainz is on Amazon Smile

Amazon has created a program where your purchases at Amazon can support your favorite non-profit. This program is called Amazon Smile and MetaBrainz is enrolled in this program. If you would like to support MetaBrainz (and thus MusicBrainz), start with this link when you start shopping:

Metabrainz Foundation Inc

Alternatively you can bookmark this link:

http://smile.amazon.com/ch/20-1644586

We’ll be integrating links to Amazon Smile into the MusicBrainz web site soon, so you won’t have to remember these links.

UPDATE: This only works for the US based Amazon store.

May 14 schema change release time

The schema change release is approaching fast and we’re making good progress taking care of all the tasks that need to be completed. During yesterday’s meeting we agreed on the time to do this release: 14 May 1600UTC (9am PDT, 11am Chicago, 17h BST, 18h CEST, timezone map).

We will start the release process at this time — the exact time when the site will be down will depend on how long it will take us to walk through our pre-release checklist. We will be announcing the exact downtime via Twitter (@musicbrainz) and via a banner on the main MusicBrainz pages.

We expect our downtime to be somewhere between 15-30 minutes.

Thanks!