MusicBrainz Server update, 2024-10-21

As mentioned in the banner of MusicBrainz website for a week already, images for events and releases are currently unavailable due to the Internet Archive (IA) recovering from a DDoS attack. See the IA’s Mastodon page for follow-up. Both the Cover Art Archive and the Event Art Archive were available from the Internet Archive which is doing its best to restore services safely, that will take as many days as necessary. Meanwhile, today’s server update temporarily disables editing images, until our access to the Internet Archive is fully restored. It also brings some updates behind the scenes. Last but not least, it also features a few improvements and bugfixes, mainly contributed by volunteers without whom this would not have the same significance!

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to derat, Divyansh Gupta, and Serial-ATA for having contributed to the code. Thanks to Dan and HibiscusKazeneko for having reported bugs and suggested improvements. Thanks to Arainuki, Aris_8585, blit, Echelon666, salo.rock, Vaclovas Intas, and wileyfoxyx for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2024-10-21.0.

Continue reading “MusicBrainz Server update, 2024-10-21”

MusicBrainz Server update, 2024-07-11

Keep enjoying your summer with this refreshing release dessert, mainly fixing bugs and making improvements after the large two-course meal that was the database schema change and the addition of event art.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to chaban, Piotr, Relaxo5, salo.rock, and yindesu for having reported bugs and suggested improvements. Thanks to ApeKattQuest/MonkeyPython, Aszazin, Early6431, Felipe Silva, Lunae_XD, salo.rock, Vaclovas Intas, wileyfoxyx, WorldPioneerXXX, yyb987, and yyoung for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2024-07-11.0.

Continue reading “MusicBrainz Server update, 2024-07-11”

MusicBrainz Server update, 2024-06-24

You may notice some exciting changes to event pages today. We’ll be making a proper announcement of the “EAA” in a separate post soon. 🙂

We have several other bug fixes and improvements as part of today’s release, plus a new report about video recordings for editors.

In the back-end, we’re making better use of our PostgreSQL standby, which should help with scalability. Development-wise, we’ve done a lot of JavaScript refactoring and upgrading of dependencies.

A new release of MusicBrainz Docker is also available that matches this update of MusicBrainz Server. See the release notes for update instructions.

Thanks to JadedBlueEyes for aligning release titles in release groups. Thanks to Aerozol, atj, chaban, Chiark, Mathias Kunter, RVMWSN, sammyrayy, UltimateRiff, VBZPPlNQyJ, wileyfoxyx, yindesu and zas for having reported bugs and suggested improvements. Thanks to ApeKattQuest, BestSteve, BlueCamille, Felipe Silva, kellnerd, salo.rock, Vaclovas Intas, wileyfoxyx, yyb987, and Zetas70, for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2024-06-24.

Continue reading “MusicBrainz Server update, 2024-06-24”

MusicBrainz schema change release, 2022-05-16 (with upgrade instructions)

We’re happy to announce the release of our May 2022 schema change today! Thanks to all who were patient during today’s downtime as we released everything to our production servers, and thanks to ikerm2003, mfmeulenbelt rinmon and salo.rock for updating the translations.

This is once again a fairly minor release as far as schema changes go, but please do report any issues that you come across, especially related to the propagation of ratings and tags.

Continue reading “MusicBrainz schema change release, 2022-05-16 (with upgrade instructions)”

MusicBrainz schema change release, 2021-05-17 (with upgrade instructions)

We’re happy to announce the release of our May 2021 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, especially related to the display of recordings, releases and release groups on artist and release group pages.

New, user-facing changes with this release are limited to the new ability to merge collections (MBS-10208) and the addition of ratings for places (MBS-11451). Additionally, MBS-11463 adds a new view that is used to fix a couple small requests related to disc IDs (MBS-11268) and release length calculation (MBS-11349). Two other changes – adding a first-release-date field to recordings (MBS-1424) and support for PKCE in OAuth (MBS-11097) are more or less end-user affecting but were already released on the main MusicBrainz servers a while ago. All other changes are under the hood only.

We ran into a few complications while working on this schema change update, so we decided to postpone two changes to our October schema change to ensure only stuff we are more confident on is released. Those are MBS-11457, which involves dropping the ordering_attribute column for series and would have had no direct effect on user experience, and MBS-11456, which would have added MBIDs for artist credits.

A few of the released new features and improvements — namely the first-release-date field for recordings, and the performance improvements to artist pages — make use of new materialized tables. These tables aren’t dumped, nor are they replicated, since they’re derived entirely from primary table data. Rather, we’ve added a new script to build them (admin/BuildMaterializedTables, included in the upgrade instructions below), and triggers to keep them up-to-date once they’re built. These triggers are created on replicated servers, too. If you use the web interface or web service at all, just note the extra step of running BuildMaterializedTables after upgrade.sh below!

A new release of MusicBrainz Docker is also available that solves an issue for live indexing and matches this update of MusicBrainz Server. See the release notes for update instructions.

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 git tag is v-2021-05-19-hotfixes. The rest of the instructions here assume an in-place upgrade.

  1. Make sure DB_SCHEMA_SEQUENCE is set to 25 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 #26, but the database is currently at #25.”
  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. If you’re using the live search indexing, stop it and, assuming sir is under the same directory as musicbrainz-server, run cd ../sir && python2.7 -m sir triggers && cd - && ./admin/psql < ../sir/sql/DropTriggers.sql && ./admin/psql < ../sir/sql/DropFunctions.sql
  6. Switch to the new code with git fetch origin followed by git checkout v-2021-05-19-hotfixes.
  7. Install newer dependencies Perl 5.30 or later and NodeJS 16 according to install prerequisites.
  8. Run cpanm --installdeps --notest . (note the dot at the end) to ensure your perl-based dependencies are up to date.
  9. Run ./upgrade.sh (it may take a while to vacuum at the end).
  10. Set DB_SCHEMA_SEQUENCE to 26 in lib/DBDefs.pm as instructed by the output of ./upgrade.sh.
  11. If you’re using the web interface or web service, run ./admin/BuildMaterializedTables --database=MAINTENANCE all to build new materialized tables. These will take several additional gigabytes of spaces and be kept up-to-date automatically via triggers. For more information, see INSTALL.md.
  12. If you’re using the live search indexing, assuming sir is under the same directory as musicbrainz-server, run cd ../sir && git fetch origin && git checkout v2.1.0 && python2.7 -m sir triggers && cd - && ./admin/psql < ../sir/sql/CreateFunctions.sql && ./admin/psql < ../sir/sql/CreateTriggers.sql and rebuild indexes (by running cd ../sir && python2.7 -m sir reindex && cd -) then start it in watch mode (with cd ../sir && git fetch origin && git checkout v2.1.0 && python2.7 -m sir amqp_watch)
  13. Turn cron jobs back on, if applicable.
  14. 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 ./script/compile_resources.sh.

Here’s the list of resolved tickets:

New Feature

  • [MBS-10208] – Allow merging collections
  • [MBS-11451] – Support ratings for places
  • [MBS-11463] – Add view to easily access medium track lengths
  • [MBS-11652] – Add support for artist series (hotfixed)

Improvement

  • [MBS-10962] – Speed up listing artist’s releases
  • [MBS-11268] – Show “Set track durations” on release/discids page
  • [MBS-11460] – Add materialized tables to fetch release groups by artist or track artist

Database Schema Change Task

  • [MBS-10647] – Add [no label] to b_del_label_special trigger for labels
  • [MBS-11453] – Change entity0_cardinality, entity1_cardinality to SMALLINT
  • [MBS-11459] – Create the edit_data_type_info function on mirrors
  • [MBS-11464] – Drop table statistics.log_statistic
  • [MBS-11466] – Change language.frequency and script.frequency to SMALLINT

Previously Released Changes

  • [MBS-1424] – Add a ‘First release date’ field to recordings
  • [MBS-10821] – Edit changing medium tracklist and format is stuck
  • [MBS-11097] – Support PKCE (Proof Key for Code Exchange) by OAuth clients
  • [MBS-11431] – Speed up /ws/js/check_duplicates

MusicBrainz schema change release, 2019-05-13 (with upgrade instructions)

We’re happy to announce the release of our May 2019 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, especially any related to genres and collections.

Visible changes with this release are limited to an indication if a specific artist credit is being edited (MBS-5387). Work on some of the changes to collections and genres is quite advanced, and we’re hoping to release some of the new features onto beta already in a week or so from now, while others might take a while longer.

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 git tag is v-2019-05-13-schema-change. The rest of the instructions here assume an in-place upgrade.

  1. Make sure DB_SCHEMA_SEQUENCE is set to 24 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 #25, but the database is currently at #24.”
  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-2019-05-13-schema-change.
  6. Install newer dependencies Yarn and NodeJS 8 or later according to install prerequisites.
  7. Run cpanm --installdeps --notest . (note the dot at the end) to ensure your perl-based dependencies are up to date.
  8. Run ./upgrade.sh (it may take a while to vacuum at the end).
  9. Set DB_SCHEMA_SEQUENCE to 25 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 ./script/compile_resources.sh.

Here’s the list of resolved tickets:

Bug

  • [MBS-5387] – ACs being edited aren’t marked as having pending edits on the aliases tab
  • [MBS-9365] – event_meta_fk_id was never created as part of any upgrade script
  • [MBS-9462] – Standalone databases created before schema 21 are missing some l_event_url triggers
  • [MBS-10146] – Regression: ISE on Remove DiscID page
  • [MBS-10149] – Swap track titles with artist credits fails to update both fields properly
  • [MBS-10150] – Regression: The link to the release group reviews in the release page is broken

Improvement

  • [MBS-9664] – Add database constraints to disallow loop relationship
  • [MBS-10044] – Add place area to place lists

Database Schema Change Task

  • [MBS-10052] – Add new schema for the event art archive
  • [MBS-10173] – Create a genre table in the DB and populate it with existing genres
  • [MBS-10174] – Create an addition timestamp in the DB for new collection items
  • [MBS-10175] – Create a position integer in the DB for collection items
  • [MBS-10176] – Create a comment text field in the DB for collection items
  • [MBS-10177] – Create an editor_collection_collaborator table for collaborative collections
  • [MBS-10178] – Create a genre_alias table
  • [MBS-10181] – Create filesize for cover art and each thumb in the DB

React Conversion Task

  • [MBS-9925] – Convert collection pages to React
  • [MBS-10179] – Convert all entity list components to React

MusicBrainz Server update, 2019-04-26

We finally have a new release! Some large conversions of the MusicBrainz website templates to React happened during the past three months, leading to a long delay between releases – sorry about that! This release also fixes several bugs and adds some small improvements.

Thanks to Cyna, Ge0rg3, and spellew for their contributed code, mostly written during GCI. Also, thanks to alpinetux, amCap1712, chirlu, culinko, cyberskull, derobert, Griomo, hibiscuskazeneko, Jeluang, jessew, kepstin, Kid Devine, ListMyCDs.com, Lotheric, mfmeulenbelt, rafwuk, RavenWorks, samj1912, yindesu, yurim, and everyone who tested beta version, reported issues, or updated website translations.

The git tag is v-2019-04-26.

Bug

  • [MBS-6895] – Cannot inc=tags when browsing releases
  • [MBS-8634] – Privileged user accounts page still mentions the style council
  • [MBS-9013] – Removing specific ordering of relationships doesn’t create an edit
  • [MBS-9276] – Transient test failure in Edit::Instrument::Merge
  • [MBS-9297] – “Set track lengths” from Disc ID with no change should not be allowed
  • [MBS-9309] – Mediums fail to merge when two recording positions are swapped
  • [MBS-9400] – Tags are missing from artist nodes in /ws/2/release JSON requests
  • [MBS-9413] – Older “Remove relationship” edits can’t be loaded
  • [MBS-9669] – UI language menu not available in Spanish and Greek
  • [MBS-9845] – country.null stats not being collected
  • [MBS-9893] – Batch voting check boxes disappeared
  • [MBS-9899] – Recording and recording artist tags/genres missing in JSON WS
  • [MBS-9943] – Autocomplete.js is pretty much untranslatable
  • [MBS-9975] – Clicking the “A-a” button (guess sort name) to add a release alias sort name does not work.
  • [MBS-9983] – Non-group artists statistics does not include characters
  • [MBS-9985] – “Last updated on Invalid date” on release sidebar
  • [MBS-9986] – RG types not translated on sidebar
  • [MBS-9991] – Relationship names are not translatable
  • [MBS-9993] – MusicBrainz server should allow CORS requests to /oauth/token
  • [MBS-9995] – Space missing in autoeditor election text
  • [MBS-10009] – Some sidebar types are not translated
  • [MBS-10021] – ArtistRoles is not translatable
  • [MBS-10027] – t::MusicBrainz::Server::Controller::Admin::EditBanner fails randomly
  • [MBS-10031] – Tooltip says ‘null’ for artist names in ‘writer’ column of ‘work’ search results
  • [MBS-10033] – Missing space after Wikipedia blurb
  • [MBS-10045] – Regression: External links to Anison Generation in the sidebar appends https
  • [MBS-10075] – Release with no mediums disappears from release collection when sorting on format/no. of tracks
  • [MBS-10081] – Invalid last updated date on search result pages
  • [MBS-10084] – Unable to add CDBaby URL containing “ï”
  • [MBS-10085] – Long URL fails to wrap on release page in Chrome
  • [MBS-10088] – Example search for relationships breaks with cardinality
  • [MBS-10090] – Loading a doc page containing %3F loads full wikipage html
  • [MBS-10099] – Lyrics URL relationship uses the wrong link phrase on work edit page

Improvement

  • [MBS-6574] – Recursive area tabs
  • [MBS-7463] – Add redirect from /tag to /tags
  • [MBS-8782] – Show artist name on “Edit Note” tab of “Edit Release” page
  • [MBS-8922] – User reporting: Remove “Reveal my email address” option (or default it to on)
  • [MBS-9340] – Don’t allow more languages if [No lyrics] is selected
  • [MBS-9656] – [Change release quality] → [Change data quality]
  • [MBS-9935] – Indicate what to do with annotation reports
  • [MBS-9936] – Move from CJS style to ES6 (imports, exports)
  • [MBS-9988] – On /tags page, allow to go back to not showing downvoted tags
  • [MBS-9989] – Add new “Not applicable” gender option to stats
  • [MBS-9990] – Make formatUserDate error rather than return wrong date if given object
  • [MBS-9998] – Improve cleanup of Facebook URLs
  • [MBS-10008] – Generalize and localize CPDL link’s title in the sidebar
  • [MBS-10010] – Simplify sidebar_name methods for URLs
  • [MBS-10029] – When viewing edits by editor X, include editor X in the page title
  • [MBS-10032] – Detect and clean iTunes “author” URLs for artists
  • [MBS-10063] – “No linguistic content” → “[No lyrics]” in work edits display
  • [MBS-10074] – Display – on release search results for format/tracks if no medium exists
  • [MBS-10094] – Right-justify barcode on release group page
  • [MBS-10101] – Allow SecondHandSongs performance URLs for Recordings
  • [MBS-10102] – Use the containing country area of artists and labels for country statistics
  • [MBS-10103] – Update Bandsintown URL cleanup to strip languages

New Feature

  • [MBS-10011] – Congratulate/thank users on their birthdays
  • [MBS-10022] – Event tab for areas

React conversion task

  • [MBS-9632] – Convert statistics to React
  • [MBS-9699] – Convert the user account pages to React
  • [MBS-9904] – Convert the list of privileged users to React
  • [MBS-9909] – Convert report templates to React
  • [MBS-9926] – Convert entity subscribers pages to React
  • [MBS-10005] – Convert “Details” and ”Tags” tabs, for each entity, to React
  • [MBS-10007] – Convert “Add annotation” edit display to React
  • [MBS-10014] – Convert “Add area” edit display to React
  • [MBS-10015] – Convert “Add artist” edit display to React
  • [MBS-10016] – Convert “Add event” edit display to React
  • [MBS-10017] – Convert artist/cannot_split.tt to React
  • [MBS-10018] – Convert artist/special_purpose.tt to React
  • [MBS-10019] – Convert the artist and place event pages to React
  • [MBS-10026] – Convert the Labels page for Area to React
  • [MBS-10042] – Convert “Aliases” tab, for each entity, to React
  • [MBS-10046] – Convert /admin/banner/edit to React
  • [MBS-10049] – Convert user/report to React
  • [MBS-10086] – Convert attributes admin lists to React
  • [MBS-10091] – Convert root/components/relationships.tt to React

Other task

  • [MBS-8360] – Show BookBrainz relationships in the sidebar
  • [MBS-9082] – Standardize SecondHandSongs URLs
  • [MBS-9932] – Remove or update “Releases with superfluous data tracks” report
  • [MBS-9999] – Allow setting custom redirect URI while registering applications to be installed
  • [MBS-10035] – Add text to the “Report editor” page asking for links
  • [MBS-10036] – Add ccMixter.org to other database whitelist
  • [MBS-10037] – Send editor reports to MB user admin mailing list
  • [MBS-10080] – Relabel “MusicBrainz Blog” link as “MetaBrainz Blog” on MusicBrainz frontpage

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, 2016-05-23 (with upgrade instructions)

Starting with this release, PostgreSQL 9.5 is now our minimum supported version. In order to import any future data sets, you will need to upgrade your installation to version 9.5.

Due to unforeseen problems with the Live Data Feed (AKA replication), users with slave databases will be required to first import a fresh data dump into their new 9.5 installation. We apologize that this is the case, but even had this stream not been broken, doing a clean import is faster and easier than doing the migration. For details on what happened during this rather lengthy schema change release, stay tuned for a post mortem blog post that covers the details.

If you have a non-replicated standalone database, you can use pg_upgrade and run ./upgrade.sh directly, but for simplicity we strongly recommend importing the latest data dump. Thus, we will only provide instructions for a clean import:

  1. Make sure you have PostgreSQL 9.5 installed, and your database settings in lib/DBDefs.pm are updated to point to the 9.5 installation if you currently have an older version of postgres running. If you already have postgres 9.5 and want to replace the existing database there, you’ll need to drop it first (using dropdb or from within psql). Be careful that you’re not dropping any important data if this is a standalone database that you’ve made changes to.
  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. Switch to the new code with git fetch origin followed by git checkout v-2016-05-23-schema-change-v2
  5. Run cpanm --installdeps --notest . to ensure your perl-based dependencies are up to date. Note the dot at the end.
  6. Set DB_SCHEMA_SEQUENCE to 23 in lib/DBDefs.pm
  7. Download the latest data dumps. If you don’t need historical edit data, excluding the edit dump will speed up your import significantly.
  8. Initialize a new database from the data dumps downloaded in step 7. Detailed instructions for doing this are located in INSTALL.md in the musicbrainz-server repository; if your data dumps are in /tmp, the command should simply be something like ./admin/InitDb.pl --createdb --import /tmp/mbdump*.tar.bz2.
  9. After the import has finished, turn cron jobs back on, if applicable.
  10. Restart the MusicBrainz web server, as well as memcached, if applicable.

We would like to thank bitmap, Gentlecat, zas, chirlu, reosarevok, gcilou for contributing directly to the release and we’d also like to thank all of the people who helped test, debug or otherwise offer support in this quite difficult release. Thank you!

And finally, here’s the list of changes you can expect in the upgrade:

Bug

  • [MBS-6406] – Admins can’t change email addresses
  • [MBS-8288] – Missing indexes for inverse lookup on *_gid_redirect tables
  • [MBS-8669] – Primary key for place table missing on old slaves
  • [MBS-8906] – Release pages ISE if CB doesn’t return JSON from its API for whatever reason
  • [MBS-8928] – If you submit the release editor without being logged in, it displays “[object Object]” as an error mesage
  • [MBS-8943] – Some pages do not respect DB_READ_ONLY setting

Improvement

  • [MBS-1873] – Fix vote tallies for edits
  • [MBS-3887] – Duplicate artist and label names not being checked against alias
  • [MBS-8287] – Log deleted entities that were in a subscribed collection
  • [MBS-8433] – Work attributes don’t have a uuid
  • [MBS-8716] – Store the edit data in a JSONB column
  • [MBS-8717] – Move the edit data to a separate table
  • [MBS-8838] – Add gids to all *_type* tables
  • [MBS-8873] – Convert and unify artist credit editors to React
  • [MBS-8909] – Add logos to IMDb and VGMdb links in the sidebar
  • [MBS-8939] – Update the Instagram logo used in the sidebar
  • [MBS-8940] – Let banner message editors dismiss the banner only temporarily

Task

  • [MBS-8656] – Bring edit table indexes back into sync
  • [MBS-8719] – Stop materializing of edit and vote counts
  • [MBS-8720] – Add a materialized view of edit note recipients
  • [MBS-8727] – Prevent duplicate votes
  • [MBS-8800] – Create the earthdistance extension and add a geodetic index for place coordinates
  • [MBS-8804] – Add BRIN indexes for timestamp columns
  • [MBS-8897] – add new entity icons
  • [MBS-8938] – Schema changes to support alternative tracklists

Schema change release, 2015-05-18 (including upgrade instructions)

Our previously mentioned schema change release is finished! Below will be upgrade instructions, including configuration updates for replication access tokens.

This release does not include UI for several of the schema change patches, which will (hopefully) happen for next release on June 1. The incomplete patches are MBS-7489 (credits for artists in relationships), MBS-4145 (tag upvote/downvote), and MBS-8004 (collections for additional entity types). These patches have had their schema change components finished, but the UI was incomplete or needed more work.

Schema Change Upgrade Instructions

These are largely as previous upgrade instructions, using the tag v-2015-05-18-schema-change. The primary difference is the inclusion of configuring an access token for replication.

  1. Make sure your REPLICATION_TYPE setting is RT_SLAVE and your DB_SCHEMA_SEQUENCE is set to 21 in lib/DBDefs.pm. If you’re running a standalone server, you can run the upgrade, but it may be easier to just import a new data dump!
  2. 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 update, it should say “Mismatched schema sequence, 21 (database) vs 22 (replication packet)”).
  3. Take down the web server running MusicBrainz, if you’re running a web server.
  4. Turn off cron jobs if you are automatically updating the database via cron jobs.
  5. Switch to the new code with git fetch origin followed by git checkout v-2015-05-18-schema-change
  6. Run ./upgrade.sh (or carton exec -Ilib -- ./upgrade.sh if you’re using carton, with very old setups).
  7. Run cpanm --installdeps --notest . to ensure your perl-based dependencies are up to date. This release adds a dependency on LWP::Protocol::https, for fetching replication packets from the new server; many systems may already have this installed, but it should be verified.
  8. Set DB_SCHEMA_SEQUENCE to 22 in lib/DBDefs.pm as instructed by the output of ./upgrade.sh
  9. Assuming you have been updating your server with replication, it will now be necessary to configure an access token:
    1. Go to https://metabrainz.org/supporters/account-type and choose your account type as applicable. If you’re an individual, non-commercial user of the data, choose “non-commercial”; if not, choose an applicable tier in the “commercial” section. If you’re not sure of the appropriate tier, make your best guess; it can be adjusted if necessary.
    2. Then, from https://metabrainz.org/profile, create an access token, which should be a 40-character random alphanumeric string provided by the site.
    3. Finally, add this token to lib/DBDefs.pm under the REPLICATION_ACCESS_TOKEN configuration option. The final configuration section should look something like sub REPLICATION_ACCESS_TOKEN { "ck3UpgwgOXhWC6SpFcd99rZOTjzfrei3gQlgZZ9z" }.
    4. Don’t reveal your access token! If you do, inadvertently, you can use the MetaBrainz site to generate a new token, invalidating the old one. (The one in the example above is one I created for myself and then invalidated — don’t get any ideas, it won’t work!)
  10. Turn cron jobs back on, if applicable.
  11. Restart the MusicBrainz web server, if applicable. It’s also recommended you restart memcached.

Finally, the list of bugs closed this release:

Bug

  • [MBS-4436] – Medium titles cannot be longer than 255 charaters

Improvement

  • [MBS-1347] – Implement aliases for release groups, releases and recordings
  • [MBS-7906] – maybe don’t show “”≠null diff. in edit pages
  • [MBS-8279] – Remove empty_artists etc. database functions

New Feature

  • [MBS-8302] – Add Live Data Feed access token support

Task

  • [MBS-8266] – Make medium titles VARCHAR NOT NULL
  • [MBS-8278] – Update DB_SCHEMA_SEQUENCE in DbDefs.pm.sample
  • [MBS-8283] – Remove DB constraint that disallows empty event names

Not included in this list but also relevant is MBS-8349, which while fixed for a previous release, in this release is also applied to old slave servers, which may help performance for some queries.