On Wednesday we rolled out an upgrade of our indexed search servers. These search servers are used for search in both the web service and website. This release includes some fixes and improvements added to make it easier to handle some particular search cases, plus few other fixes. A fairly critical bug with respect to work searching was came up yesterday after this update, but we’ve released a hot-fix patch to solve that problem. Here are the release notes:
Bug
[SEARCH-82] – Relation Type in Work relation list is reported as {xxxx}{yyyy}zzz
[SEARCH-104] – Querying "code:XXXXX" in a label search returns no results.
[SEARCH-106] – target-type attribute missing in relation-list elements
[SEARCH-110] – Web service is returning ‘disambiguation’ element in release groups
Apologies for being a few days late here, but we’ve just finished updating the servers with the latest set of bug fixes and new features. This release brings a new feature that people have been asking for since NGS – the ability to “split” an artist into artist credits.
Split Artist
With NGS, we had the ability to link multiple artists to recordings/releases/etc. While our migration script handled most cases, there are some cases when it was unclear how to automatically split artists, and we opted to leave that artist unchanged. While it was possible to manually edit references to this artist, it was painful. We now have a convenient way to make this process easier. In the sidebar of artists there is now a “split into separate artists” link:
The new "split into separate artists" feature
Clicking this link will present you with a form where you can choose the new set of artists. For example, here’s me splitting the single “Alix Perez & SpetraSoul” artist into the correct separate artists:
The "split artists" form
As with the other types of editing in MusicBrainz, this edit has to be voted on by other editors before it is applied.
The split artists edit type can only be used on artists that have no relationships, other than “collaboration” relationships. If the artist does have collaboration relationships, edits to remove all collaboration relationships will be entered at the same time. Note also that this will not remove the now empty artist entirely – that will happen when ModBot does its daily cleanup.
Bugs
We’ve continued working through the bugs as well, and here are the tickets that have been closed in this release.
[MBS-1133] – Don’t try to delete relationship types that are still in use
[MBS-1343] – Add AR instrument search function has problems with accented letters
[MBS-1380] – An URL ending in closing parenthesis gets broken when listed in edit notes
[MBS-3453] – “Related works” on recordings page shows same work and AR set twice if there are two work<->recording ARs for the same work/recording pair
[MBS-3464] – Do not redirect www.musicbrainz.org to musicbrainz.org for /ws requests
Task
[MBS-1914] – Run script to remove “later/earlier release of” ARs
[MBS-3265] – Webservice not escaping "<<" properly
Improvement
[MBS-2232] – Auto-approve Add Medium and Add Release Label edits for new releases
[MBS-2839] – Artist work list > Better design: don’t split by "categories" (composer, lyricist, …) and indicates artist role for each artist related to work
Andy Hawkins has continued to make great work on the 4th version of libmusicbrainz, and has just announced the second beta release. Andy writes:
I am pleased to announce the second Beta release of libmusicbrainz4, a client library for retrieving data from the MusicBrainz service using the latest /ws/2 web service.
This is a significant rewrite of the code since Beta 1, but this should mean it is much easier to maintain going forward. Unfortunately it is not ABI compatible with Beta 1, which will mean all client applications will need to be recompiled (and are likely to require some code changes).
The main changes are in the areas of list handling, with a cleaner internal implementation of lists. Additionally, the C interface is now generated automatically from an XML description file, and there is correct handling for some XML schema changes that have been made since the first release. Finally, the ownership of items in the C interface has changed slightly, please check the documentation for each method in the C interface for full details.
Note that some include files have been removed. I would recommend that you clean out the ‘include/musicbrainz4’ directory in your install location before installing this newer version.
Today we released our first schema change update since NGS. This change is quite a radical one, as it merges both of our databases (“READWRITE” and “RAWDATA”) into a single database. For most users of the database, this probably won’t affect you, but you’re encouraged to run the upgrade process anyway. Here’s what you need to do:
Take down the web server running MusicBrainz, if you’re running a web server.
Turn off cron jobs if you are automatically updating the database via cron jobs.
Set DB_SCHEMA_SEQUENCE to 13 in lib/DBDefs.pm
Make sure your REPLICATION_TYPE setting is RT_SLAVE
Switch to the new code with git fetch origin followed by git checkout v-20110711-schema-change
Run ./upgrade.sh from the top of the source directory.
Install the perl modules Algorithm::Merge and Algorithm::Diff
Turn cron jobs back on, if needed.
Restart the MusicBrainz web server, if needed.
This process may take a while, as it has to dump one database into another, and download a few extra changes to ensure slaves aren’t missing any data. The RAWDATA database should no longer be in use and you should be able to drop it, but waiting to see that everything is working well might be a good idea.
This schema change does not introduce any new data. For everyone else, here’s a list of what got fixed since the last release!
Andy Hawkins and Lukáš Lalinský have been doing some work on libmusicbrainz, and a beta release of version 4 is now available. Here’s what Andy has to say:
Hi all,
In conjunction with Lukas I’ve been working on a complete rewrite of libmusicbrainz to support the new Web Service v2 released alongside NGS. I’m happy to announce the first Beta release of this new library (libmusicbrainz4).
The library is written as a relatively simple parser for the results from the Web Service, with as little logic as possible. This should mean it is easy to maintain to keep in step with any changes in the schema for the XML Web Service.
The main interface is a C++ class ‘CQuery’, that returns a Metadata object containing a parsed version of the response. There is also a C interface that loosely wraps the C++ classes.
Using the library requires a good understanding of the queries and responses to and from the Web Service.
I will attempt to be available via this mailing list and the #musicbrainz-devel IRC channel on freenode in order to answer questions if at all possible.