Schema change update, 2014-11-17

We’re back with the schema change release, as promised! We only have a small collection of tickets, but several big things:

  • Pre-gap tracks and data tracks for CDs (where neither contribute to the discid, and pre-gap tracks have position of 0)
  • Collections can now be marked with types such as “owned” and “wishlist”, plus some special new types mentioned below.
  • CDStub data is now replicated.
  • All entities (except URLs) should now support tagging, as areas, instruments, and series were made taggable.
  • Events! And, additionally, event collections. All (non-deleted) users should have had an “Attending” and a “Maybe Attending” collection created, with the corresponding collection types.

Upgrade instructions will come in another blog post, though they should be substantially unchanged from past releases. Specifically, we’d like to confirm everything’s working correctly with a specific git commit, and make a new tag, before we post a recommendation, since there’s already been some problems discovered. Some slacker must not have tested this carefully enough (author whistles in an innocent-sounding fashion).

The git commit for this release (sans small fixes that have happened since release earlier today and any others that may need fixing) is v-2014-11-17-schema-change.

Bug

  • [MBS-7638] – CreateIndexes for instruments wrongly looks at label tables

Improvement

  • [MBS-967] – Support for hidden pre-gap tracks
  • [MBS-1059] – Types of list/collection
  • [MBS-7551] – Add folksonomy tag support to areas, instruments, and series
  • [MBS-7784] – Support for data tracks in tracklists

New Feature

Task

  • [MBS-7883] – Make sure delete_unused_url doesn’t remove URLs used in edits

Announcing libmusicbrainz release 5.1.0

I have released a new version of libmusicbrainz. The main changes in this release are the removal of ‘non-free’ XML parsing code, replacing it with libxml2.

N.B. Due to the ABI change, the soname of this library has been bumped. Existing applications will need to be recompiled against the new version.

The following are the main changes in this release:

  • Fix LMB-33 – Handle ‘ended’ element in ‘relation’
  • Fix LMB-34 – Remove non-free XML parser and replace with libxml2
  • Add support for cross-compilation and building out of tree

The release is available here:

libmusicbrainz-5.1.0.tar.gz
(
MD5 checksum: 4cc5556aa40ff7ab8f8cb83965535bc3)

Documentation for the new version is available under

http://metabrainz.github.com/libmusicbrainz/

Downtime for fall schema change

Our next schema change version will be released on Monday, 17 November, 2014 around Noon PST/3pm EST/20:00 GMT/21:00 CET. We expect that MusicBrainz will be unavailable for 30 – 60 minutes during this time. We will put up the downtime notification on the site and tweet from @musicbrainz right before the release.

Sadly, our backup database server suffered a hardware failure and we ran out of time to get a replicated database setup after the hardware was fixed. This means that we won’t be able to put the site into read-only mode and will require us to take a full-downtime.

It sucks and we’re not happy about it either, but there is only so much we can accomplish with our limited resources. :(

Sorry for any troubles this may cause you.

Style update, 2014-11-03

As mentioned when the new style process was announced, at a similar time to every server release post we’ll be publishing a list of what’s changed in style during that period.

The first period of two weeks (or three, in this case) under the process has passed, and these are all the style-related issues that have been accepted and implemented during it. Most of them are very small (mostly adding sites to the whitelist for the Other Databases relationship) although a couple are new relationships or relationships being extended to more entities.

No changes to the guidelines themselves have happened during this period.

  • [STYLE-211] – Allow new allmusic.com release links
  • [STYLE-250] – Add finnmusic.net to the other databases whitelist
  • [STYLE-251] – Add pomus.net to whitelist
  • [STYLE-256] – Add fono.fi to the other databases whitelist
  • [STYLE-269] – Add mixing and mastering to area relationships
  • [STYLE-307] – グラスレ(grass thread/yunisan) as Artist and Label “Other DB” relationship
  • [STYLE-308] – ジャパメタ(japameta) as Artist “Other DB” relationship
  • [STYLE-312] – Add “Deutsche Nationalbibliothek” to whitelist for other databases
  • [STYLE-328] – Add leader/concertmaster artist-release/recording relationships
  • [STYLE-337] – Add IMSLP relationship to artists
  • [STYLE-338] – Add Stage48 Wiki to the other databases whitelist
  • [STYLE-339] – Add CiNii to the other databases whitelist
  • [STYLE-340] – Add NDL to the other databases whitelist

Server update, 2014-11-03

This release was pushed back a week due to scheduling around the GSoC summit and upcoming schema change release, but here it finally is. Editors can take note that more edit types are now auto-edits: adding recording-work relationships, adding/editing aliases, setting track durations, and editing cover artwork. We’ve also added a “Make all edits votable” checkbox to allow edits that are normally always applied automatically (like capitalization changes) to be left open for voting if there’s any dispute or uncertainty. Auto-editors should be aware that this checkbox replaces the one that previously toggled their auto-editor privileges (so it should be left unchecked wherever it was previously left checked).

As part of this release, we’ve deployed some changes that should hopefully prevent slow /ws/2 searches from tying up too many perl processes on our frontends. This may reduce the number of 502s we’ve been seeing lately, but it’s a bit early to pronounce any results. Thanks go to kepstin for suggesting the nginx trickery used here.

More thanks go to chirlu, nikki, and ianmcorvidae for their hard work on today’s release.

The git tag is v-2014-11-03 and the full changelog is below.

Bug

  • [MBS-1444] – Make ‘i’ <-> ‘ı’ an auto-edit.
  • [MBS-5961] – BC dates in search results are parsed incorrectly
  • [MBS-6545] – Medium added without tracknumbers magically gains them
  • [MBS-7399] – Can’t link to TheSession.org’s artist pages
  • [MBS-7927] – Text strings on fingerprints tab are not correctly escaped
  • [MBS-7935] – Can’t add URL examples to relationship documentation
  • [MBS-7938] – Track parser resets track artists to the release artist when “lines contain track artists” is unchecked
  • [MBS-7960] – The link to the mailing lists doc page in the menu doesn’t work
  • [MBS-7961] – Wikidocs redirects are broken
  • [MBS-7962] – Links on /doc/ pages are no longer converted

Improvement

  • [MBS-1479] – Make it possible to leave a capitalization-diacritics edit open
  • [MBS-6011] – Strip out LRM/RLM characters in text with no RTL characters
  • [MBS-7880] – Release editor should have options to copy only titles or only artists to recordings, instead of always both
  • [MBS-7902] – Use nginx X-Accel-Redirect to handle Webservice search requests rather than doing it in perl
  • [MBS-7934] – Add IMSLP autoselect for artists
  • [MBS-7944] – Make recording-work add relationship edits auto-edits
  • [MBS-7945] – Make add/edit alias edits auto-edits
  • [MBS-7946] – Make set track duration edits auto-edits
  • [MBS-7947] – Make edit cover art edits auto-edits
  • [MBS-7953] – Extend normalise_strings to cover more punctuation

Task

  • [MBS-7939] – Add autoselect and validation for release-level Allmusic
  • [MBS-7942] – Add a bunch of sites to the whitelist for dbs

Picard 1.3 released

Version 1.3 of Picard has been released today, with some notable features and bug fixes.

This release has few visible changes, but overall performance and stability were much improved. A lot of minor annoying issues were fixed. Cover art code was reworked, and notably one can now enable fallback on release group cover art if no cover art exists for a specific release.

Logging was improved, user can now enable debug mode from About →View Error/Debug Log, it may help to see what is going on if needed, passwords and sensible information were hidden from the log, so user can now safely post his log to get help.

To report any issue concerning this release, please use our bug tracker. As usual you can also get help on forum or on IRC (freenode, #musicbrainz).

Special thanks to Sophist, Wieland Hoffmann, Michael Wiencek, Johannes Dewender, Lukáš Lalinský, Frederik “Freso” S. Olesen, and the whole MusicBrainz Team.
Many thanks to all users, developers, bug reporters and translators. Code contributions since 1.2 are visible on Github Contributors graph.

Unfortunately the OAuth support patch (PICARD-305) didn’t make it in this release.

Picard 1.3 can be downloaded on the Picard’s website.

Be aware that downgrading from 1.3 to 1.2 may lead to configuration compatibility issues, better save your configuration before installing 1.3 if you intent to go back to 1.2.

Among changes since 1.2:

  • The “About” window now displays the versions of libraries used by Picard
  • Picard now correctly handles matching of MP3 files saved in ID3v2.3 tags (which is the version that Microsoft Windows and iTunes both use).
    Note: You may need to re-save your tags once to get them to match in future.
  • A sort tags plugin is now provided as tag data is no longer displayed sorted by default.
  • A new tag, musicbrainz_releasetrackid, containing the MusicBrainz Track MBID introduced in the May 2013 schema change release, is now written to files.
  • Add %_recordingtitle% (PICARD-515)
  • Fix plugin install bugs (PICARD-444)
  • Fix Options → File naming examples to handle primary/secondary release types (PICARD-516)
  • A new advanced option is available to permanently set the starting directory for the file browser and “Add files/folder” buttons.
  • Requests to Musicbrainz against your own account e.g. for collections are now handled through SSL (PICARD-337)
  • Refresh of Albums using Ctrl-R and selection of Other Releases are now more responsive during batch lookups.
  • Main window is now emitting a “selection_updated” signal, plugin api version bumps to 1.3.0
  • Append system information to user-agent string
  • Compilation tag/variable functionality (for tagging & file naming) has been split into two:
    %compilation% is now aligned with iTunes, and set only for Various Artists type compilations
    %_multiartist% variable now indicates whether this release has tracks by multiple artists
    (in order to prepend the artist name to the filename as shown in the default file naming script)
  • autodetect the CD drive on Mac OS X (PICARD-123)
  • Ignore directories and files while indexing when show_hidden_files option is set to False (PICARD-528)
  • Add ignore_regex option which allows one to ignore matching paths, can be set in Options → Advanced (PICARD-528)
  • Added an “artists” multi-value tag to track metadata, based on the one in Jaikoz, which contains the individual artist names from the artist credit. Also useful in scripts (joining phrases like ‘feat:’ are omitted) and plugins.
  • Added “_artists_sort“, “_albumartists“, “_albumartists_sort” variables for scripts and plugins.
  • Made Picard use the country names also used on the MusicBrainz website (PICARD-205)
  • New setup.py command `get_po_files` (Retrieve po files from transifex)
  • New setup.py command `regen_pot_file` (Regenerate po/picard.pot)
  • New Work tag (which for Classical music is often different from the track title) saved as ID3 TOAL tag.
  • New Composer Sort Order tag (variable %composersort%).
  • Improve the Other Releases list to prioritise and separate releases which match the correct number of tracks and your Options → Metadata → Prefered Releases settings for Country and Format.
  • New %_absolutetracknumber% variable numbering tracks sequentially regardless of disc structure (so you can numbers tracks on multi-disc releases without a disc number)
  • Support dropping image directly from Google image results to cover art box
  • Add %_musicbrainz_tracknumber% to hold track # as shown on MusicBrainz release web-page e.g. vinyl/cassette style A1, A2, B1, B2
  • Show the ID3 version of the file in the Info… dialog (Ctrl-I) (PICARD-218)
  • Fixed a bug where Picard crashed if a MP3 file had malformed TRCK or TPOS tags (PICARD-112)
  • Add –files option to setup.py build_ui, used to force .ui to .py regeneration (PICARD-566)
  • New setup.py command `update_constants` (Regenerate countries.py and attributes.py)
  • Made Picard use release groups, medium formats and cover art types also used on the MusicBrainz website
  • Use MusicBrainz Server translations for release groups, medium formats and cover art types
  • Add checkbox to toggle debug at runtime in log/debug view dialog
  • Add a plugin to add Artist Official Homepage relationships to the website tag (ID3 WOAR tag)
  • Add integrated functions $eq_any, $ne_all, $eq_all, $ne_any, $swapprefix and $delprefix.
  • Add %_performance_attributes%, containing performance attributes for the work e.g. live, cover, medley etc.
  • Use $inmulti in file naming scripts i.e. …$if($inmulti(%_performance_attributes%,medley), (Medley),)
  • Add optional `priority` parameter to `register_album_metadata_processor()` and `register_track_metadata_processor()`
    Default priority is `PluginPriority.NORMAL`, plugins registered with `PluginPriority.HIGH` will be run first, plugins registered with `PluginPriority.LOW` will run last
  • Add Standardise Performers plugin to convert e.g. Performer [piano and guitar] into
    Performer [piano] and Performer [guitar].
  • Add support for release group cover art fallback (PICARD-418, PICARD-53)
  • Add a clear button to search box
  • Honour preferred release formats when matching AcoustIds (PICARD-631)
  • Prevent ZeroDivisionError in some rare cases (PICARD-630)