MusicBrainz Server update, 2021-05-03

Hi! This time we have another small release with a bunch of minor fixes and small quality of life improvements. The latter include one small improvement to an error message requested over 10 years ago! It might take us time, but we get to things eventually, and that’s what matters, right? Right? Next release will be our May schema change – you can read what is coming with that one at the dedicated announcement post.

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.

Thanks to chaban, Cyberskull, Lotheric, nikki, salo.rock and Sophist for having reported bugs and suggested improvements. Thanks to mfmeulenbelt, outsidecontext and salo.rock for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2021-05-03.

Fixed Bug

  • [MBS-11550] – Untranslated strings on Confirm Form Submission page
  • [MBS-11573] – Collection data missing on ratings pages
  • [MBS-11598] – Broken links generated for deleted artwork missing suffix
  • [MBS-11603] – DNB validation is too strict and blocks legitimate links
  • [MBS-11611] – OverClocked ReMix URLs shouldn’t have a trailing slash after the number.
  • [MBS-11612] – No link to genre/delete from genre index

Improvement

  • [MBS-1588] – More user friendly error when trying to add a CD with a bad TOC
  • [MBS-9251] – Display ended places differently on the map
  • [MBS-9259] – Document how the track list parser works
  • [MBS-9376] – Indicate that edit searches can be bookmarked to save them
  • [MBS-11546] – Allow Resident Advisor /exchange URLs for releases
  • [MBS-11559] – Specify tracklist is empty in Remove medium edits
  • [MBS-11571] – Warn about e-mail as a username
  • [MBS-11587] – Block smart links: hypel.ink
  • [MBS-11590] – Equalize display of empty fields in cover art edits
  • [MBS-11604] – Add genre name to genre index title
  • [MBS-11619] – Ignore periods and +tags in admin e-mail searches

New Feature

  • [MBS-10899] – Report for releases with catalog numbers that look like ISRCs

Picard 2.6.2 released

Picard 2.6.2 is a maintenance release for the recently release Picard 2.6. It fixes a bug where a plugin update could fail because Picard would use the old version from the network cache.

We also reverted a change from Picard 2.6.1, where if a file had no title or track number in metadata and Picard guesses this information from the file name, the title and track number would show up only as new metadata. This turned out to break people’s workflow who relied on this data for comparison with the actual new metadata loaded from MusicBrainz. For those of you who do not want Picard to automatically guess these tags from file names we will add an option in Picard 2.7 to completely disable this behavior.

The latest release is available for download on the Picard download page.

What’s new?

Bugfixes

  • [PICARD-2188] – Plugin update can fetch old version from network cache
  • [PICARD-2191] – Revert title and track number guessed from filename should show up as changed metadata

MusicBrainz Server update, 2021-04-19

Hi! We’re back with another (fairly small) release. Perhaps the most noticeable new thing, other than a few squashed bugs, is that we’re finally officially linking to the 1200px thumbnails of Cover Art Archive images. While these were being generated for new images already for quite a while, we didn’t want to start linking to them until we figured out how to ensure they were also generated for all the images already there. Thankfully, our user (and recent new auto-editor) ROpdebee got in touch with the right people in the Internet Archive and basically made all the efforts needed to ensure this happened. So, we officially have 1200px thumbnails now! That’s some big thumbnails for you.

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 yyoung for improving Bandcamp and DNB URL cleanup. Thanks to CatQuest, chaban, kepstin, Lotheric, navap, selflessself, synthicalist13 and xplt for having reported bugs and suggested improvements. Thanks to ROpdebee for helping us get all the 1200px thumbnails generated. Thanks to Mellthas, mfmeulenbelt, salorock and SistemaRayoXP for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2021-04-19.

Fixed Bug

  • [MBS-11500] – “Add cover art” edits link to no longer existing release
  • [MBS-11563] – Cache makes newly linked recordings not show in work rels table
  • [MBS-11564] – Niconi Commons “download for free” links blocked by Nicovideo cleanup
  • [MBS-11569] – Collection created from entity sidebar does not restrict entity type
  • [MBS-11581] – Release Group still shows cover art despite Release being darkened
  • [MBS-11582] – Instrument alias sortname guess button breaks page

Improvement

  • [MBS-9631] – Add 1200px to available sizes under cover art images, in release’s Cover Art tab
  • [MBS-9833] – Link relationship style guide within release edit relationships tool
  • [MBS-10534] – Handle both DNB permalinks and DNB search links
  • [MBS-11524] – Disallow *.bandcamp.com/ URLs at release and recording level
  • [MBS-11527] – Block smart links: music.indiefy.net
  • [MBS-11533] – Block smart links: snd.click
  • [MBS-11542] – Update Classical Archives URL format
  • [MBS-11552] – Add validation for Classical Archives links
  • [MBS-11566] – Ensure consistent ordering of appearances sections

Task

  • [MBS-11514] – Move from passing $c to using React.useContext in the sidebar
  • [MBS-11515] – Move from passing $c to using React.useContext in header/footer/menus
  • [MBS-11516] – Move from passing $c to using React.useContext in entity lists
  • [MBS-11517] – Move from passing $c to using React.useContext in MergeHelper

Picard 2.6.1 released

Picard 2.6.1 is a maintenance release for the recently release Picard 2.6. It brings bugfixes, performance improvements and some scripting enhancements.

The latest release is available for download on the Picard download page.

What’s new?

Bugfixes

  • [PICARD-2160] – Switching dark mode in macOS preferences does not change list elements leading to mix of light and dark mode
  • [PICARD-2166] – “Use original values” for a tag on a large selection takes very long with a high CPU usage
  • [PICARD-2168] – Keyboard shortcut to trigger script editor auto completion does not work on macOS
  • [PICARD-2170] – Title and track number guessed from filename should show up as changed metadata
  • [PICARD-2173] – “Search for similar tracks” is enabled by default, causes crash if used without selection
  • [PICARD-2187] – Scripting error in file naming options is not displayed properly

New Features

  • [PICARD-2161] – Add script function $unique to remove duplicate values from multi-value variables
  • [PICARD-2177] – Add script function $replacemulti to replace entries in multi-value variables

Improvements

  • [PICARD-2157] – Reduce comparison overhead of logging window
  • [PICARD-2162] – Coverart box is slow to update when many files are selected
  • [PICARD-2185] – Remove empty elements from $map() output

Acknowledgements

This release contains code contributions by Gabriel Ferreira, Bob Swift, Laurent Monin, Philipp Wolfer, Wieland Hoffmann and Adam James.

Many thanks also to all the translators and everyone who tested the beta releases and provided feedback on the community forums, IRC and the issue tracker.

MusicBrainz Server update, 2021-04-05

This time we have a lot of small bug fixes and improvements, and two changes that are likely to be more noticeable. The first one: the list of tags for a user is now paginated, and it shows the upvoted and downvoted tags separately. This is probably good news all around. The second one: long lists of relationships are also paginated. For example, the relationships page for the London Symphony Orchestra now only shows some of the orchestra relationships directly, with a link to “See all 17,303 relationships”. This change was needed, since these pages had become so big for some artists (and areas) that they were timing out since they took more than 30 seconds to load. This reduces the time for the largest pages to a few seconds – still a lot, but much more manageable. We understand that not having all the relationships shown at once might cause some issues with the workflow of some of our hardcore users. Sorry about that, but hopefully it won’t be too bad! If some use cases are very problematic, let us know and we will think about how to make it better.

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 CatQuest, chaban, EndofLine, HibiscusKazeneko, jesus2099, kellnerd, Kid Devine, navap, Sophist and yindesu for having reported bugs and suggested improvements. Thanks to mfmeulenbelt and salo.rock for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2021-04-05.

Fixed Bug

  • [MBS-8477] – /user/<user>/tag/<tag> pages don’t distinguish between upvotes and downvotes
  • [MBS-8807] – Artist, Label and Series subscribers sub-page wrongly shows “You have no collections!”
  • [MBS-9543] – Seeding a string of “0” results in the field being blanked out
  • [MBS-11320] – When the “I don’t know the tracklist for this medium.” checkbox is unchecked on an existing release, the “Add medium” window pops up
  • [MBS-11321] – Strange things happen when adding the tracklist to a release with exactly 1 unknown medium
  • [MBS-11373] – Relationship merging in relationship editor no longer replaces empty dates
  • [MBS-11386] – Area containment missing from indexed area search results
  • [MBS-11442] – Entering a tag from the Add Cover Art page disables tagging and cover art submission
  • [MBS-11452] – Private user subscriptions tab shown on collection and subscribers page
  • [MBS-11454] – Can’t edit release with format/date clash even if error already existed
  • [MBS-11462] – Private subscriptions/tags/ratings user tabs uselessly shown to admins
  • [MBS-11473] – ISE when loading edit/open while logged out
  • [MBS-11508] – Qobuz favicon is missing
  • [MBS-11510] – Labels for arrows to move tracks up/down are not showing
  • [MBS-11531] – Filtering reports gives ISE
  • [MBS-11538] – Collections data missing in some sidebars

Improvement

  • [MBS-1178] – Relationship view needs paging.
  • [MBS-1870] – Showing a users tags should be paginated
  • [MBS-9310] – Link to created relationship type in Add Relationship Type edits
  • [MBS-9349] – Add Pinterest links to the sidebar
  • [MBS-10691] – Allow seeing tags the user has downvoted in user/tags
  • [MBS-10726] – Several release editor buttons say “disc” but really mean “medium”
  • [MBS-11429] – Don’t block editing if existing URL fails foul of later-added blocking rule
  • [MBS-11432] – Allow also linking places and works to Operabase
  • [MBS-11455] – Make linking of user statistics more consistent
  • [MBS-11467] – Use sort name to order lists of artists for tags
  • [MBS-11476] – Don’t show own open edits in /edit/open
  • [MBS-11485] – Allow irc(s):// links on expand2react
  • [MBS-11503] – Block smart links: trac.co
  • [MBS-11506] – Point home page ‘data’ link to ‘MB Database’

New Feature

  • [MBS-9851] – Add “is not edit author” option when searching for edits by “Edit Note Author”
  • [MBS-11222] – Add a report for releases with media without a tracklist

React Conversion Task

  • [MBS-10690] – Convert user tag list page to React

Our servers are on the move again!

Our servers are on the move again!

You might remember that a few years ago we moved all our servers from the US to Europe. Sadly, that has proven too costly* and prone to fires, so we have decided our servers will continue their travel east and move to India, where hosting them will be significantly cheaper and cooling can be provided by sun-covering swarms of locusts. Most of the non-slacking members of our dev team are based in India by now anyway, so it feels like the right place!

As part of our cost-cutting process, and since air travel is not environmentally friendly anyway, we sent our servers East by boat. Unluckily, that means they had to wait their turn for quite a while in the only traffic jam you can see from space. Luckily that is starting to get resolved now, but it will still take quite a while for the servers to clear the traffic jam, reach their destination and then be located among the twenty thousand containers in the ship carrying them, especially with all other jammed ships arriving at the same time! We’re hoping to be done with it all in a couple months though, after which you can hopefully expect a return to our usual (not-particularly-)fast service.

In the meantime, our whole infrastructure is being hosted on some old servers that our friends at the Universitat Pompeu Fabra in Barcelona donated to us. They claimed they were getting too old for use in a rigorous academic environment, that as we all know in Spain requires systems to work continuously for a few hours every weekday with only a short break for a midday nap. These donated servers are now running from our executive director’s basement. Any issues you have noticed recently are solely caused by this (and have nothing to do at all with the skill and attention span of our development team).

* It could be argued that we should be able to cover the costs given we have had several years of good financial stability by now. While that is true, when we realised that the alternative is to cut costs and spend the savings on fancy ham and beers, the right choice became obvious to us.

Picard 2.6 released

The Picard team is happy to announce that Picard 2.6 is now available. This release fixes issues where the user interface could freeze and contains many new features, bugfixes and improvements.

Thanks a lot to everybody who contributed to this release with code, translations, bug reports and general feedback.

Download

Picard 2.6 can be downloaded from the Downloads section on the Picard website.

For macOS users there are now two separate builds available. If you are using macOS Mojave 10.14 or later, including macOS 11.0 Big Sure, please use the download for macOS 10.14+. If you are still on macOS Sierra 10.12 or macOS High Sierra 10.13 you should use the download for 10.12+ instead.

Only the 10.14+ builds support the macOS dark mode. This build also uses newer versions of Qt5 and Python and is hence recommended, but won’t run on macOS before 10.14.

Users who have installed Picard on Windows 10 from the Windows Store will receive the update automatically once it has been approved by Microsoft.

Please report any issue through our bug tracker and give us feedback on this beta release on the Community Forums.

What’s new?

Fix for user interface freezes

Since the release of Picard 2 we had some reports of some users experiencing Picard’s UI completely locking up. This mostly happened when adding or removing tags or toggling the “Show changes first” in the metadata view. As this was a timing issue not all users on all systems were affected by this issue the same.

The root cause for this has been now identified and Picard 2.6 comes with a fix to prevent those freezes.

Dark mode switching on Windows and macOS

On both macOS and Windows it is now possible to switch to dark or light UI independent of the system setting. By default Picard will follow your system settings.

This is also the first stable release which supports the dark mode on macOS Mojave 10.14 and later in the official app packages. Previously this was only available when running Picard from source or installing via PyPi. Please note that you need to use the Picard app build for macOS 10.14 or later for this feature to work (see above).

Reworked cover art options

The cover art options have been rearranged to be easier to understand their meaning. Some options that previously had been shown in the Cover Art Archive options but actually affected all cover art sources have been moved to the general cover art options.

Please note that there was no change in functionality, all the options are still available and behave as before.

Support for track-level original release date

The MusicBrainz server since recently supports returning a first release date per recording. This information is based on the earliest release on which this recording appears on according to the MusicBrainz database.

Picard makes this date available in the variable %_recording_firstreleasedate%. If you want to have this date set in your files for the original release date you can use the following script:

$set(originaldate,%_recording_firstreleasedate%)

Please note that this means that each track on a release can have a separate date. In this case you should not use %originaldate% as part of a folder name in your file naming script.

By default %originaldate% will still be filled with the first release date of the release group. To be more flexible this date is also now available in a variables %_releasegroup_firstreleasedate%.

Improved script editor

The auto completion in the script editor has been improved to not popup unnecessarily and to provide better suggestions. It also is now possible to trigger the autocompletion anytime by pressing Ctrl+Space.

Support WebP images for cover art

Picard now supports cover art in WebP format. Please note that support for this depends on your playback software. Also WebP images will not be embedded into MP4 files as those do not support this format.

Other changes

There are many more bugfixes and improvements since the last stable release 2.5.6, such as support for a director tag (for videos), the release annotation being available as a variable %_releaseannotation% and fixes for cover art drag and drop from browsers

For a complete list of changes since the last stable release please see the full changelog below.

Notes for package maintainers

If you are maintaining packages of Picard for a Linux distribution or another OS please note the following changes:

  • The minimum supported Python version is now Python 3.6
  • Qt 5.10 or later and PyQt5 5.10 or later are now required

The newer Qt5 versions are necessary in order to work around the dead lock issues (see above). If possible it is recommended that you use PyQt5 5.15.3 or later, as those versions actually fix the root cause for the deadlock. But Picard applies a workaround that should also prevent this in earlier versions. Please see the discussion on PICARD-2088 for details.

Acknowledgements

This release contains code contributions by Philipp Wolfer, Laurent Monin, Gabriel Ferreira, Sophist, Bob Swift, RomFouq and petitminion.

Many thanks also to all the translators and everyone who tested the beta releases and provided feedback on the community forums, IRC and the issue tracker.

Changelog

This is the complete list of changes since Picard 2.5.6:

Bugfixes

  • PICARD-1528 – “Search for similar albums” causes crashes if the selection includes clusters and files
  • PICARD-1689 – Freezes when adding tags to large album
  • PICARD-1747 – macOS: Tearing when scrolling list of plugins
  • PICARD-1926 – “Show changes first” in tag preview window leads to freeze
  • PICARD-2088 – Picard hangs when adding new tag to multiple tracks in an album
  • PICARD-2091 – Loading images from cover art via drag and drop from browser only loads PNG and JPEG images
  • PICARD-2097 – Crash with zh_CN locale
  • PICARD-2113 – Script can change title of “Unclustered files” special cluster
  • PICARD-2127 – “Lookup in browser” in metadata box does not pass tagger port
  • PICARD-2135 – Tags license and website cannot be deleted and get duplicated on update for ID3
  • PICARD-2136 – macOS: File browser does not use user’s home folder by default
  • PICARD-2138 – macOS: After saving options the toolbar style changes
  • PICARD-2156 – macOS: Use Cmd+Shift+H instead of Cmd+H for opening history view to avoid conflicts with system keyboard shortcut to hide window
  • PICARD-2159 – macOS: Scripting Documentation dialog opens behind options dialog

New Features

  • PICARD-204 – Support for track-level original release date
  • PICARD-1998 – Add “director” (for videos) tag
  • PICARD-2089 – Support WebP images for cover art
  • PICARD-2124 – Add MB release annotation field as %_releaseannotation% variable

Tasks

  • PICARD-715 – Chrome to block browser access to localhost
  • PICARD-1950 – Fix macOS builds with PyQt > 5.13.2

Improvements

  • PICARD-2084 – Use TLS for AcoustID web service requests
  • PICARD-2090 – Reenable TIFF support for cover art images
  • PICARD-2092 – Improve script editor function/variable auto completion
  • PICARD-2105 – Improve script function popup descriptions
  • PICARD-2110 – Add %originaldate% and %originalyear% to file naming examples
  • PICARD-2114 – Show disambiguation comment in CD Lookup popup window
  • PICARD-2125 – Enable CAA Release Group cover art provider by default
  • PICARD-2126 – Allow cross origin access to browser integration
  • PICARD-2130 – Restructure cover art options to make them easier to understand
  • PICARD-1357 – Support dark mode on macOS Mojave 10.14 and later
  • PICARD-2095 – Allow the user to choose between light or dark theme on Windows and macOS
  • PICARD-2158 – Make Scripting Documentation dialog available in renaming script
  • PICARD-2164 – Add shortcut Ctrl+T for “Search for similar tracks”

Picard 2.6 Beta 3

The Picard team is happy to announce that Picard 2.6 Beta 3 is now available. We decided to do a third beta after the recent Beta 2 release as there have been additional changes that required updates to packaging and translations.

Thanks a lot to everybody who contributed to this release with code, translations, bug reports and general feedback.

Download

Picard 2.6 Beta 3 can be downloaded from Picard website Downloads section.

For macOS users there are now two separate builds available. If you are using macOS Mojave 10.14 or later, including macOS 11.0 Big Sure, please use the download for macOS 10.14+. If you are still on macOS Sierra 10.12 or macOS High Sierra 10.13 you should use the download for 10.12+ instead.

Only the 10.14+ builds support the macOS dark mode. This build also uses newer versions of Qt5 and Python and is hence recommended, but won’t run on macOS before 10.14.

Linux users might want to install the beta version using Snap. If your Linux distribution supports Snap you can install Picard from the beta channel using:

snap install --beta picard

Please report any issue through our bug tracker and give us feedback on this beta release on the Community Forums.

What’s new?

Apart of some bug fixes this release improves handling of dark UI on Windows and macOS. This is the first official release of Picard which supports the dark mode in macOS Mojave 10.14 and later. Please note that you need to use the Picard app build for macOS 10.14 or later for this feature to work (see above).

On both macOS and Windows it is now possible to switch to dark or light UI independent of the system setting. By default Picard will follow your system settings. Special thanks to Gabriel Ferreira for his work to enable this.

Below is a complete list of changes since Picard 2.5.6.

Bugfixes

  • [PICARD-2135] – Tags “license” and “website” cannot be deleted and get duplicated on update for ID3
  • [PICARD-2136] – macOS: File browser does not use user’s home folder by default
  • [PICARD-2138] – macOS: After saving options the toolbar style changes

Improvements

  • [PICARD-1357] – Support dark mode on macOS Mojave 10.14 and later
  • [PICARD-2095] – Allow the user to choose between light or dark theme on Windows and macOS

Helping out

The easiest way to help us getting a great Picard 2.6 release is using and testing this beta release. Please report bugs on the Picard issue tracker and provide feedback in the community forums.

Please also help translate Picard. There have been changes to the user interface and inline scripting documentation and existing translations need to be updated for the final 2.6 release. Translating is easy and can be done online: Head over to MusicBrainz’s translation page on Transifex and click on “Help Translate MusicBrainz”.
Once you have registered an account on Transifex you can start translating. For Picard the primary resource to translate is “picard“, but there is also the “picard_appstream” resource, which is used for providing descriptions for various Linux software-center applications, and “picard_installer”, which contains the translations for Picard’s Windows installer.

If you are a software developer you are very welcomed to provide fixes and features. Picard is free software and the source code is available on GitHub. See Developing on the Picard website to get started.

Schema change release: May 17, 2021

We’re having a schema change release on May 17, mostly to make small changes that will make our queries more efficient, ensure better constraints, and make some hardcoded options editable without schema changes in the future. We are also upping the required versions of both Perl and Node.js to 5.30 and 16.0 respectively (see the “Minimum version requirements” section below.)

Here’s our list of tickets for the Spring 2021 schema change, with descriptions of what’s being changed:

Schema changes

  • MBS-1424: Add a “first release date” field to recordings. A very popular request for years, this allows requesting the date of the first ever release a recording appeared on. This adds materialized tables recording_first_release_date and release_first_release_date which are updated via triggers whenever the earliest date changes. The change was released as an optional extension to the main MusicBrainz server schema on Dec 16, 2020, but it will be added to the main schema during this schema change.
  • MBS-10208: Allow merging collections. Users who decide two of their collections should be joined into a larger one should be able to do so without having to move all the entities in the collection manually. This requires adding a editor_collection_gid_redirect table (equivalent to other existing x_gid_redirect tables) to ensure the old collection links redirect to the one they have been merged into.
  • MBS-10566: Convert allowed_series_entity_type and allowed_collection_entity_type to tables to allow for additions without schema changes. The constraints allowed_series_entity_type and allowed_collection_entity_type specify which types of entity can be used in series and collections, respectively. As such, if we want to add the possibility to create series of artists, we need to modify the constraint during a schema change. For ease of use, we are moving the constraints to be their own tables instead, allowing us to update them as needed in the future outside of a schema change release.
  • MBS-10647: Add [no label] to b_del_label_special trigger for labels. The b_del_label_special trigger ensures that any attempt to remove a special purpose label fails. Currently it only checks the special case “Deleted label”, but since “[no label]” is also a special purpose label that should never be deleted, we will add its ID to the trigger check.
  • MBS-10821: Remove orphaned recordings from collections for deletion. Replaces a single function, delete_orphaned_recordings(), to add a new clause that makes it so that recordings referenced only in collections (but not linked to anything else in the database) can be deleted as orphans. This was released on the main MusicBrainz servers on June 15, 2020, but it will be added to the main schema during this schema change.
  • MBS-10962 / MBS-11460Add materialized tables and indexes to fetch releases and release groups by artist or track artist. These tickets will address performance issues on our current artist pages. They do not modify any existing tables, but as mentioned, add some new tables (to be updated via triggers) and indexes.
  • MBS-11097: Support PKCE (Proof Key for Code Exchange) by OAuth clients. Adds two new columns to the editor_oauth_token table. This feature is opt-in, but allows public OAuth2 clients to mitigate auth code interception attacks. The change was released as an optional extension to the main MusicBrainz server schema on Sep 21, 2020, but it will be added to the main schema during this schema change.
  • MBS-11431: Speed up /ws/js/check_duplicates. Adds new indexes only (on the artist, label, place, and series tables, plus their respective alias tables). Improves some slow queries in the editing interface related to duplicate checking, i.e. finding other entities with the same name. Since this is a non-breaking change, it was released on the main MusicBrainz servers on Mar 15, 2021, but it will be added to the main schema during this schema change.
  • MBS-11451: Support ratings for places. Places can be reviewed in CritiqueBrainz yet cannot be rated in MusicBrainz. This is a strange state of affairs: clearly, if they are worth reviewing in depth, they also deserve the option to rate them. As such, we will add place_rating_raw and place_meta tables, in the same way we have for other ratable entities.
  • MBS-11453: Change entity0_cardinality, entity1_cardinality to SMALLINT. The cardinality columns of the link_type table are used to indicate whether the entity on each side of the relationship is expected to have only a few uses of the relationship type in question, or many (too many to comfortably display/edit). This is what stops every single recording of a work showing up in an edit work page, for example. At the moment we allow only two values for cardinality, 0/1. While it is possible that we will want to allow a few other values in between what is effectively “do not show anywhere ever” and “show all the time”, it is clear we will not need more than 32.000 values. As such, we are moving these columns from INTEGER to SMALLINT to reduce table size.
  • MBS-11456: Add MBIDs and redirect tables for artist credits. Adds a gid column to the artist_credit table, and a new artist_credit_gid_redirect table. The MBIDs will allow public identification of artist credits outside of MusicBrainz, and open the door to useful features in the future.
  • MBS-11457: Drop series ordering_attribute. This column was added back when we were expecting to have different types of ordering attributes for series, but we have never used it. We are planning to just drop the column.
  • MBS-11459: Add a script to create edit_data_type_info. edit_data_type_info is a function used for development that we added in 2020 and we will now add to mirrors as well, both for consistency and for anyone who uses their mirror for development and just wants to use it.
  • MBS-11463: Add view to easily access medium track lengths. Our current way of finding the length of a medium is to either load all its tracks, then sum the durations, or to use the duration of its disc ID when present. The first of these requires a lot more processing than just getting the durations straight from the database, while the second ignores any data tracks not on the CD TOC. This adds a medium_track_durations view that allows easy access to the duration of the track lengths for any medium.
  • MBS-11464: Drop statistics.log_statistic. We added the statistics.log_statistic table for a Google Summer of Code project back during a 2012 schema change, but the work never got finished and implemented. We are not planning to implement it anymore, so this table is useless and we will be dropping it.
  • MBS-11466: Change language.frequency and script.frequency to SMALLINT. The frequency column of a language or script indicates how often it’s used and lets us sort the most frequently used entries at the top of our lists. But we don’t store an exact count, just a number from 0-4 indicating “frequently used,” “hidden,” or “other.” Like MBS-11453 above, we don’t expect to need a full INTEGER type to store these columns at any point in the future, so can safely move them to SMALLINT.

Minimum version requirements

We’re raising the minimum required version for Node.js to v16 (which is the next LTS release coming in April 2021). Our current required version, v10, is hitting the end of its life cycle in April, and given there shouldn’t be a particular difficulty installing the current Node.js LTS on any system, it makes sense to just upgrade to the most recent LTS by the time of the schema change day.

We’re also raising the minimum required version for Perl to 5.30. The latest version is 5.32, but the current Ubuntu LTS (20.04), which is likely to be the next base image for our Docker containers, only provides 5.30. Our current required version, 5.18, was released all the way back in 2013, so moving to 5.30 is already a fairly significant improvement.

We’ll post final details about this release just prior to the release and shortly after we complete it, including instructions on how you can update your own copy. If you have any questions, please do leave a comment below or on the linked JIRA tickets!