New VirtualBox image of MusicBrainz server 2013-10-14 available

I’ve released a new Virtual Machine of the MusicBrainz server, based on the recent 2013-10-14 schema change. You can download the updated virtual machine here:

This VM is 10GB large and is built on the latest version of VirtualBox. Due to continuing incompatibilities between VMWare Fusion and VirtualBox, I am going to create a separate VMWare base virtual machine soon. I’m waiting for a vagrant-vmware-fusion license key and once I have that I will build the VMWare version and upload that as well.

The documentation for this VM has been updated to reflect the latest changes. Please make sure to read this page while you wait for your download!

Server update 2013-10-28

With the schema change well past us, we’re finally back into normal development mode. This release contains more bug fixes to new features from the schema change, as well as an assortment of improvements and general bug fixes to the rest of the site. Many thanks to Nicolás Tamargo and the MusicBrainz team for their work on this release. Here’s what’s changed:

Bug

  • [MBS-5439] – ISE: Adding a release with a track of 0 length
  • [MBS-5658] – Various Artists used for track artists when adding release via disc ID lookup
  • [MBS-5926] – Collection names are shown for subscribed private collections
  • [MBS-6810] – add work alias (not ended) error
  • [MBS-6813] – can’t see these recordings edit history (Internal Server Error)
  • [MBS-6816] – Place type stats display is broken
  • [MBS-6818] – Cannot cancel edit (Internal Server Error)
  • [MBS-6821] – ISE when searching video:true
  • [MBS-6823] – Report title for SingleMediumReleasesWithMediumTitles is wrong
  • [MBS-6826] – Deprecated status is not shown in the relationship documentation
  • [MBS-6836] – Area disambiguation comments don’t show up in the inline direct search
  • [MBS-6847] – Internal server error when adding search hint for places
  • [MBS-6850] – Internal server error adding a second place alias as primary
  • [MBS-6853] – Add a new place : missing AREA link after inline search lookup
  • [MBS-6857] – Guess Case doesn’t seem to work on places

Improvement

  • [MBS-2664] – Filter by editor flags (bot, limited user, AE, etc)
  • [MBS-3661] – Indexes score out of 100, direct search scores out of 10
  • [MBS-3880] – Display the last date/time a replicated server was updated
  • [MBS-4250] – Edit search : « ID is between X and Y » = « ID is between Y and X »
  • [MBS-6746] – Only ask for confirmation to leave the relationship editor if any change has been made
  • [MBS-6848] – Add URL matching for places for Discogs and IMDb
  • [MBS-6849] – Auto-select image/logo types for Commons URLs
  • [MBS-6861] – Show relationship type ID to relationship editors

New Feature

  • [MBS-2352] – Add a report highlighting artist credits with the same artist appearing multiple times
  • [MBS-3418] – Report: single medium releases with medium titles
  • [MBS-6730] – Autoselect social network for VK

Task

  • [MBS-6805] – Change Twitter autoselect to social network
  • [MBS-6809] – Add autoselect for place rels

The Git tag for this release is v-2013-10-28.

Search server jar/war files

We’ve been asked to provide instructions for how to upgrade a search server installation. We’ve got two answers for you:

  1. Short answer: Use the jar/war files linked below. Deploy these into whatever setup you’re currently using.
  2. Long answer: Check out the source (svn rev 13728) of the search server and follow the install instructions to build your own jar/war files.

Links: indexer jar, servlet war

Search server update for 2013-10-14 release

In conjunction with our main server release we’ve released a new search server. Thanks for your hard work on this release, Paul!

This release contains changes to match the Autumn 2013 database schema changes plus some bug fixes and improvements mostly to do with artist credits and aliases. See the detailed list of issues that are fixed in this version:

Bug

  • [SEARCH-46] – Searching for a release by releasename and artists english name will give no matches
  • [SEARCH-122] – Recording Search only adds release artist credit if different to recording artist credit and VA release
  • [SEARCH-304] – Webservice Json output for aliases when searching is inconsistent for boolean values
  • [SEARCH-311] – Recording, release and releasegroup search results incomplete artist aliases
  • [SEARCH-324] – Release search should return catalog numbers in ascending order

Improvement

  • [SEARCH-132] – Allow to filter release search by quality
  • [SEARCH-242] – The searcher can’t guess that the artist name one’s looking for is alias or artist name ☞ look for both
  • [SEARCH-288] – Include alias sortnames when searching works

Task

2013-10-14 schema change release update instructions

As promised, here are the instructions for updating any instances of MusicBrainz you might have. You will need to perform these steps to upgrade to the new version:

  1. Take down the web server running MusicBrainz, if you’re running a web server.
  2. Turn off cron jobs if you are automatically updating the database via cron jobs.
  3. Make sure your REPLICATION_TYPE setting is RT_SLAVE
  4. Switch to the new code with git fetch origin followed by git checkout v-2013-10-14
  5. Run carton exec -Ilib — ./upgrade.sh (or simply ./upgrade.sh if you aren’t using carton, such as for VM users or fairly new installs).
  6. Set DB_SCHEMA_SEQUENCE to 19 in lib/DBDefs.pm
  7. Turn cron jobs back on, if needed.
  8. Restart the MusicBrainz web server, if needed.

If your server fails to start or cron is having issues, it may be a missing perl module problem. To check for any missing perl modules, follow the instructions in INSTALL.md.

October 14 schema change complete

We’ve just finished rolling out the fall schema change release. Apart from the /place/create endpoint failing, the site is back up in full read-write mode now.

Read on for the changes in this release — our next blog post will give instructions on how to upgrade your instances of MusicBrainz.

Thanks to everyone who worked on this release!

Bug

  • [MBS-2301] – Attach TOC to new release – TOC/DiscId is lost when based on existing release/tracklist
  • [MBS-4453] – Duplicate artist credits
  • [MBS-5624] – Release groups don’t show the yellow removal warning when empty
  • [MBS-5647] – Release header of a different release appears on the release duplicates tab of the release editor
  • [MBS-6067] – Internal server error when using query parameter with a lookup in the webservice
  • [MBS-6211] – Aliases are missing the “ended” flag
  • [MBS-6373] – Area names being incorrectly translated
  • [MBS-6518] – Wikidocs pages keep 404ing
  • [MBS-6703] – Type displays as (none) on remove cover art edits.
  • [MBS-6715] – Internal server error looking up non-existing ISWC
  • [MBS-6717] – Some false reports of possible Artist collaborations
  • [MBS-6736] – ISE when giving a non-integer to entity/mbid/annotation/
  • [MBS-6748] – Internal server error loading some edit relationship edits
  • [MBS-6765] – Documentation search doesn’t work over https in recent Firefox/Chrome
  • [MBS-6782] – Artist overview page still displaying release date that was removed
  • [MBS-6787] – edit search merge works edits : ISWC are duplicated

Improvement

  • [MBS-631] – Add support for deprecating a relationship
  • [MBS-6068] – Remove the _name tables
  • [MBS-6069] – Track MBID webservice changes
  • [MBS-6182] – Deleted editors should be marked in a real way, not just designated by lack of password/well-known username
  • [MBS-6392] – Display ISNIs with spaces
  • [MBS-6543] – Highlight specified edit note when using edit note fragment in URL
  • [MBS-6564] – Add disambiguation comments to areas
  • [MBS-6706] – Improve the relationship type documentation display
  • [MBS-6713] – Ensure IMDB links are added at the right level
  • [MBS-6767] – Remove the Creative Commons download relationships report
  • [MBS-6779] – INSTALL.md doesn’t mention that you need to apt-get install cpanminus before trying to run cpanm.

New Feature

  • [MBS-5701] – Add a way to mark recordings as containing video
  • [MBS-6200] – Add a “place” entity
  • [MBS-6683] – Add autoselect for ReverbNation URLs

Task

  • [MBS-6046] – Remove PUID support
  • [MBS-6669] – Update the Allmusic logo used in the sidebar
  • [MBS-6732] – Add neyzen.com to score whitelist
  • [MBS-6766] – Delete unused root/release/full.tt

You can check out this release with the following tag: v-2013-10-14 .

Schema change release tomorrow at 1700UTC

Tomorrow, Monday 14 October, 2013, 17:00 UTC (10:00 PDT, 13:00 EDT, 18:00 BST, 19:00 CEST) we’re going to release our next round of schema changes!

As it is typical with our fall schema changes, this one is a little simpler and more focused on cleanup, rather than massive new changes. This gives me hope that we will have smoother release than we did in the spring. 🙂

We’re going to make the site read-only and run off our backup database server while we upgrade our primary database server. I suspect that we should be in read-only mode for about an hour. The exact start time is not quite known — we’ll start our release process at 17:00 UTC, but when we go to read-only is hard to tell. We’ll tweet and give a shout in IRC when we’re ready.

python-discid 1.1.0 (and 1.0.3) released

New versions of python-discid are available.

Changes in 1.1.0

  • feature: #36 add Disc.toc_string
  • #38 remove DiscId (deprecated since 0.5.0)

Changes in 1.0.3

  • fix: #37 test_emptyness: Assertion disc->success failed

Python-discid 1.0.3 is a bugfix version for the recent libdicid 0.6.0 release and python-discid 1.1.0 adds the TOC string, which is also part of new libdiscid versions. The TOC can be used for fuzzy searches in the web service.
The toc string feature was backported and can be used together with any version of libdiscid >= 0.2.2.

The bugfix for 1.0.3 is only relevant for running the test suite (which is done at install time usually). It shouldn’t affect normal operation. If you don’t have any problems, you don’t need to upgrade.

The DiscId class was already deprecated in the 0.5.0 beta, but still works in 1.0.x releases.
The correct usage is to create a Disc object with read() or put().
See also basic usage of python-discid.

Downloads are available at pypi. Packages are available for some linux distributions.
Recent stable and git versions of python-discid and other MusicBrainz client libraries and tools are now available for many Ubuntu versions at the MusicBrainz Stable and https://launchpad.net/~musicbrainz-developers/+archive/daily PPAs.

libdiscid 0.6.0 (and 0.6.1) released

This is a feature release of libdiscid.

It took more time than planned, but 0.6.0 is done now with lots of changes.
Main changes are the TOC string api (handy for fuzzy lookup) and a much better default drive detection on all platforms.
An example to use libdiscid together with libmusicbrainz (including fuzzy lookup) is also provided now.

Unfortunately I found one major bug only while merging changes to another branch. Libdiscid 0.6.1 fixes reading of ISRCs on Windows again (introduced in 0.6.0).

The full set of changes:

Bug

  • [LIB-48] – Fix asserts/return values on empty object
  • [LIB-59] – windows: unable to read ISRC (0.6.1)

Improvement

  • [LIB-52] – validate parameters for put()
  • [LIB-53] – don’t use old redirect for submission_url

New Feature

  • [LIB-28] – allow using numbers as devices on Mac OS X
  • [LIB-41] – Add TOC (id) to API
  • [LIB-43] – Use first CD drive letter on Windows as default device
  • [LIB-45] – Linux/BSD/Solaris: search for an existing default device from a list of devices
  • [LIB-54] – Add example: libmusicbrainz / query for metadata
  • [LIB-55] – Allow using numbers as devices on Windows
  • [LIB-56] – Allow using device numbers on Linux

I want to thank Philipp Wolfer for the Windows drive detection, Laurent Monin for the TOC string API and also Sebastian Ramacher and Lukáš Lalinský for smaller changes.

Testing wanted for raw ISRC reads

Reading ISRCs raw from the device with SCSI commands ([LIB-11, duplicate ISRC problems) is already implemented for Linux and Windows and works quite well on most drives. There is no code for support on Mac, yet. The Windows and Linux implementation still need some testing (with different drives).

If you are willing to test this or really need this feature you can build the code in the “isrc_raw” branch from the github repository.
There is also a windows binary available.
We do want to know about problems (some drives are already reported with strange behavior, possibly due to Alignment), but also a short note about working systems is helpful to get a bit of insight on how rare or frequent failures are.

We also happily accept patches to send SCSI commands on Mac OS X. There is some information in the ticket how this could work, but this is probably the most difficult of the platforms to implement.

Information, documentation and other links are at:
http://musicbrainz.org/doc/libdiscid
That includes builds for Windows and Mac OS X.