Server update, 2017-09-04

We’ve been focusing on finishing up some overdue schema change features (alternative tracklists, for one) and doing various refactorings/making some under-the-hood changes, which is why there hasn’t been a release in a while. But here’s a few small fixes that have accumulated.

The git tag is v-2017-09-04.

Bug

  • [MBS-9409] – Error merging mediums with and without pregap tracks

Task

  • [MBS-9416] – wikidata url format redirect addition

Improvement

  • [MBS-9434] – “stream for free” YouTube URL linked to a release should show as “stream on YouTube” instead of “watch on YouTube”

Server update, 2017-07-17

In order to deter spammers, bios and homepages can no longer be set by limited users (accounts less than 2 weeks old, or with less than 10 accepted edits).

Thanks to ferbncode, Sophist, and yvanzo for their work on the tickets below.

The git tag is v-2017-07-17.

Bug

  • [MBS-9342] – InitDb.pl fails to import data with DBD::Pg 3.6.0
  • [MBS-9372] – Revoking editing/voting editor rights also renders them unable to write edit notes
  • [MBS-9392] – JSON-LD schema.org structured data broken
  • [MBS-9401] – SQL generation fails for release groups (script/dump-entities-sql.pl)
  • [MBS-9403] – position attribute is missing in the json api output for media > track

Task

  • [MBS-9355] – Do not allow an editor to set bio/link if the user is limited
  • [MBS-9391] – Retry downloading dumps in docker container (for creating and importing dumps)

Improvement

  • [MBS-9323] – Artist web page with long wikipedia entry looks bad

Server update, 2017-06-19

This release mainly fixes some bugs around reorganized lyrics languages for work, and includes a few small improvements. Thanks to Zastai for fixing events browsing for area.

The git tag is v-2017-06-19.

Bug

  • [MBS-8757] – Error browsing events by area
  • [MBS-9338] – Can’t add languages to existing works that have none set
  • [MBS-9341] – “0 field is required” if work language is selected, then blanked
  • [MBS-9345] – Can’t batch-add works without a language set
  • [MBS-9347] – Regression: “- MusicBrainz” is appended to homepage title instead of others
  • [MBS-9362] – Work language edits preceding schema change are not applied

Task

  • [MBS-9354] – Block /collection as per robots.txt

Improvement

  • [MBS-8640] – Make adding work attributes auto-edits
  • [MBS-9311] – Add autoselect and validation of CD Baby Artist-URL relationship
  • [MBS-9348] – Update CD Baby URLs normalization and sidebar display
  • [MBS-9350] – Add autoselect/sidebar for Big Cartel URLs

Schema change release, 2017-05-15 (including upgrade instructions)

We’re happy to announce the release of our May 2017 schema change today! Thanks to all who were patient during today’s downtime as we released everything to our production servers.

This is a fairly minor release as far as schema changes go, but please do report any issues that you come across.

Currently, the only visible change for editors is the ability to add multiple lyrics languages to works. We’ve also modified the schema to support dynamic attributes for entities other than works, but the UI for that won’t be complete for another release or two.

Now, on to the instructions.

Schema Change Upgrade Instructions

Note: Importing the latest data dump is always a valid alternative to running ./upgrade.sh on an existing database, if you’d prefer to also get new data in one go. Just follow the relevant instructions in INSTALL.md. The rest of the instructions here assume an in-place upgrade.

  1. Make sure DB_SCHEMA_SEQUENCE is set to 23 in lib/DBDefs.pm.
  2. If you’re using the live data feed (your REPLICATION_TYPE is set to RT_SLAVE), 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; if you’re ready to upgrade, it should say “This replication packet matches schema sequence #24, but the database is currently at #23.”
  3. Take down the web server running MusicBrainz, if you’re running a web server.
  4. Turn off cron jobs if you’re automatically updating the database via cron jobs.
  5. Switch to the new code with git fetch origin followed by git checkout v-2017-05-15-schema-change.
  6. Run cpanm --installdeps --notest . (note the dot at the end) to ensure your perl-based dependencies are up to date.
  7. Downgrade DBD::Pg by running cpanm TURNSTEP/DBD-Pg-3.5.3.tar.gz (version 3.6.0 breaks things currently).
  8. Run ./upgrade.sh (it may take a while to vacuum at the end).
  9. Set DB_SCHEMA_SEQUENCE to 24 in lib/DBDefs.pm as instructed by the output of ./upgrade.sh.
  10. Turn cron jobs back on, if applicable.
  11. Restart the MusicBrainz web server, if applicable. It’s also recommended you restart redis. If you’re accessing your MusicBrainz server in a web browser, run npm install followed by ./script/compile_resources.sh.

For those curious, here’s the list of resolved tickets (excluding MBS-8393):

Bug

New Feature

  • [MBS-9271] – Prevent usernames from being reused

Task

  • [MBS-9273] – Fix the a_ins_edit_note function in older setups to not populate edit_note_recipient for own notes
  • [MBS-9274] – Fix the edit_note_idx_post_time_edit index in older setups to handle NULL post_time

Improvement

  • [MBS-5452] – Support multiple lyric language values for works

Schema change release: Today at 17h UTC

We’re going to start our schema change release process today at 17h UTC.

We anticipate having a short downtime of a few minutes as we”ll need to restart our database server. As usual, we’re not certain when we will start the downtime, but we’ll keep people posted about our progress in IRC and on Twitter.

Once we’re done with the release we will post instructions on this blog on how to upgrade any replicated instances of MusicBrainz you might be running.

Stay tuned!

Server update, 2017-04-10

This release brings feature parity with the pre-NGS edit search, thanks to work by yvanzo.

Note: The “My Vote” search condition has been replaced by “Voter,” with sub-condition “is me.”

The git tag is v-2017-04-10.

Sub-task

  • [MBS-2673] – Filter by voter
  • [MBS-3362] – Filter out own edits
  • [MBS-3665] – Inform users of appropriate formats to use for expired/created/closed time or edit/Id ranges
  • [MBS-3914] – Filter edit queue by subscribed editors
  • [MBS-5681] – Filter by vote

Bug

  • [MBS-9088] – Search for editor edits fails

Improvement

  • [MBS-9295] – Allow Baidu Baike URLs using current format

Server update, 2017-03-27

The ability of normal users to auto-edit their own release additions within an hour of entering them has been expanded to all entity types, not just releases. There’s also a new feature in the relationship editor dialog to control which relationship credits you’re changing. Thanks to yvanzo for working on those tickets.

We’ve also resolved some more URL cleanup/detection tickets, and fixed a bug in the release editor causing stub releases to get created. Zastai fixed our web service to respect the Accept: header for search requests (thanks!).

The git tag is v-2017-03-27 and the complete changelog is below.

Bug

  • [MBS-8578] – If the checkbox to copy a Medium’s artist credits to the Recording is ticked, the release editor creates a stub and fails to submit relationships/URLs and Mediums
  • [MBS-9258] – Web service search requests don’t pass Accept: header to search servlet
  • [MBS-9288] – “Change all relationship credits” for source entity has no effect
  • [MBS-9289] – Area places map doesn’t display
  • [MBS-9290] – “video channel” link type shouldn’t be restricted

Task

  • [MBS-9287] – Update the YouTube logo used in the sidebar

Improvement

  • [MBS-8134] – Allow unreviewed edits on new entries for a period of time
  • [MBS-8465] – Change similar relationship credits for on the page.
  • [MBS-8522] – Add Twitch.tv to video channel relation and video stream auto-selectors
  • [MBS-9291] – Add Dailymotion to video channel relation and video stream auto-selectors

Server update, 2017-03-13

Thanks to legoktm, loujin, reosarevok, Zastai, and the volunteer formerly known as yvanz for their contributions, which are listed below. The git tag is v-2017-03-13. (Apologies that the release came a day late.)

Bug

  • [MBS-8748] – Excessively long medium names cause horizontal scrolling
  • [MBS-8905] – Editing release events in a 1 hour delay should be auto
  • [MBS-8927] – Lowering release data quality in a 1 hour delay should be auto
  • [MBS-9120] – Adding a setlist or a time to an event that doesn’t have one should be an auto-edit
  • [MBS-9129] – JSON WS serializes ratings for Release
  • [MBS-9215] – No way to select entity type when creating new attribute
  • [MBS-9261] – WS/2 does not allow a search for URLs
  • [MBS-9263] – Transclusion Table on MB.o is broken
  • [MBS-9264] – Gulpfile fails on leaflet when compiling from source
  • [MBS-9266] – Subheader of area pages has extra comma and misses proper i18n
  • [MBS-9267] – Release page should display disambiguation comments for Works

New Feature

  • [MBS-9135] – Allow account admins to change usernames

Improvement

  • [MBS-8354] – Replacing hyphen-minus with em-dash should be an auto-edit
  • [MBS-9230] – Hook up MusicBrainz to Sentry (replacing Catalyst::Plugin::ErrorCatcher::Email)
  • [MBS-9255] – Show recordings length on a Work overview page
  • [MBS-9260] – Changing between version of an ellipsis should be an autoedit
  • [MBS-9268] – Hide empty columns in relationships table

May 2017 Schema Change Release: May 15, 2017

We have picked our set of tickets and the date for our May 2017 schema change release: May, 15th 2017. This will be a fairly standard and minor schema change release — we’re only tackling 3 tickets that affect downstream users and no other infrastructure changes.

Take a look at our  list of tickets for this schema change release. There really are only two tickets that will affect most of our downstream users:

  • MBS-8393: “Extend dynamic attributes to all entities” Currently our works have the concept of additional attributes which allows the community to decide which sorts of new attributes to apply to a work. (e.g. catalog numbers, rhythmic structures, etc) This ticket will implement these attributes to all of our entities. Also, this ticket will not change any of the existing database tables, it will only add new tables.
  • MBS-5452: “Support multiple lyric language values for works” Currently only one language or the special case “multiple languages” may be used to identify the language used in lyrics. This ticket allows more than one language to be specified for lyrics of a work.

The following tickets are special cases — they will not really affect our downstream users who do not have edit data loaded into their system. We are only including this change at the schema change release time in order to bring some older replicated systems up to date. If you do not use the edit data, then please ignore these tickets.

  • MBS-9271: “Prevent usernames from being reused” This ticket does not change the schema, but for sake of minimizing downstream disruption, we’re going to carry out this ticket during the schema change.
  • MBS-9274: “Fix the edit_note_idx_post_time_edit index in older setups to handle NULL post_time” This ticket fixes an SQL index on an edit related table.
  • MBS-9273: “Fix the a_ins_edit_note function in older setups to not populate edit_note_recipient for own notes” This ticket also fixes an SQL index on an edit related table.

This is it — really minor this time around. If you have any questions, feel free to post them in the comments or on the tickets themselves.