Welcome Summer of Code 2024 contributors!

We are thrilled to announce the selection of 8 contributors to work with us for this year’s Google Summer of Code program! 

MetaBrainz received many great applications this year. Selecting the final contributors was tough and involved deliberating various factors – what these contributors did right is getting in early, engaging with our community, presenting specific and detailed proposals, and proving excellent communication skills and the ability to integrate our feedback back into their proposals.

Thank you to all contributors who submitted a proposal with us!

Continue reading “Welcome Summer of Code 2024 contributors!”

MusicBrainz Server hotfix, 2024-04-30

A lack of robustness in MusicBrainz Server’s usage of Postgres indexes, combined with a malicious trend of jamming music databases, ended up with [MBS-13536] blocking the replication for mirrors having legacy indexes and [MBS-13555] blocking the creation of new mirrors. Additionally, a patch for [MBS-7646] showing aliases in more places, currently deployed in beta, needed to be partly deployed on the main servers to ensure cache consistency. Those are the reasons for this hotfix ahead of the upcoming schema change release.

While the issues [MBS-13536] and [MBS-13555] have been affecting mirrors, preventing these from happening again is done through [MBS-13562] only on the side of our main servers, thus no MusicBrainz Docker release is needed.

Thanks to derat for continuously contributing to the MusicBrainz Server code. Thanks to chaban, lotooo, Matthieu42, and nohattila for having reported those bugs. And thanks to all others who keep translating and testing the beta version!

The git tag is v-2024-04-30-hotfix.

Continue reading “MusicBrainz Server hotfix, 2024-04-30”

ListenBrainz Radio: New release now live!

Hello!

I’m pleased to announce that we’ve just released the latest version of LB Radio!

This release changes many things under the hood since the first release — given all the feedback you’ve given us, we were busy making improvements clear across the board. The improvements include:

  • Speed: LB Radio artist and tag elements are much faster now, since most of the work is being done by Postgres (and not AI!) and not in slower and wasteful Python code as part of our Troi recommendation engine.
  • More distinct modes: In our first version it was hard to tell the difference between the easy, medium and hard modes. This version fixes a few bugs and improves the overall algorithms used to make the artist and tag element playlists. The playlists generated for each mode should feel more distinct now.
  • Country element: We’ve added a new country element that creates a playlist of recordings from artists who are originally from the selected country. This doesn’t always ensure that the music that we serve us is actually from that country or even representative of that country. Right now, we’re making a best effort for making a playlist that is representative of the country, but we might be missing the mark — you tell us. Also, tiny countries (e.g Vatican City, Andorra) don’t usually generate enough recordings to make good playlists, since there isn’t a lot of data available. Also, good thing Antarctica is not a country. 😂
  • Streamlined syntax and improved error messages: The parsing library that LB Radio version 1 used was pretty cool, but its error messages were hated by everyone, even hard core geeks. Thus, we wrote a new parser that could give us better error messages and to make that process easier, the syntax of LB Radio has been made more consistent.

Let’s dive into a quick look of the improved syntax — all the following examples are valid LB Radio prompts:

David Bowie

#punk

artist:(Tina Turner)

tag:(trip hop, dreampop)

The most important thing to know is that any elements that accept free form text (e.g. tags and artist names), should always be enclosed in ( ). Please refer to our official documentation for all the details.

Have fun making new playlists! And as always, if you find a bug, please create a ticket in our bug tracker.

Thanks!

SSL.com is evil and deceptive: Don’t do business with SSL.com

In the past we’ve purchased our SSL/TLS certificates from SSL.com and when we last renewed our main domain’s SSL certificate, we suddenly started getting charged $20/month for:

eSigner Cloud Signing for OV Code Signing Tier 1 Monthly

Whatever this service is, we didn’t sign up for it. And trying to get SSL.com to stop charging us and refunding us the money has been a nightmare over the past year. The UI on their site is so bad that I can’t find anything and I am constantly confused by all of the useless and cryptic information packed into every single unreadable page.

In the end, I resorted to contacting customer support, who on the surface seem nice and helpful, but really all they do is refer matters to “internal teams” who never actually resolve any issues. This is nothing more than stonewalling.

Eventually they acknowledged that we are due a refund for $200+. But they were unable to refund the money because the credit card used for the original transaction expired by the time SSL.com got its act together.

This entirely unforeseeable problem was, as you might guess, referred to an internal team. Where it has been sitting for the past year now. Any attempts to get this to move along have resulted in nothing more but:

“We’re sorry for the inconvenience, we’ve forwarded this to an internal team.”

Joy. I guess that $200 will never be recovered and I need to cut my losses dealing with evil corporations.

So, be warned: Do not do business with SSL.com and use the amazing Let’s Encrypt service instead! If by some miracle, we get our money back, I’ll donate it to Let’s Encrypt instead!

MusicBrainz Server update, 2024-04-09

This release includes a rewrite of the artist credit editor, which should make it more reliable and also allows undoing row removals, the bane of the too-quick-for-their-own-good editor! It also includes a lot of other small fixes and improvements.

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


In case your mirror is older than Postgres 12 migration in 2020, if some update scripts didn’t work for some reason back in that time, you might have the following error in the file mirror.log or mirror.log.1 since yesterday:

ERROR:  index row requires xxxxx bytes, maximum size is 8191

Then open a PostgreSQL invite, for example as follows:

admin/psql

Finally, run the following SQL instructions:

SET search_path = musicbrainz, public;
DROP INDEX IF EXISTS track_idx_musicbrainz_collate;
DROP INDEX IF EXISTS track_idx_name;
DROP INDEX IF EXISTS track_idx_txt;

See MBS-13536 for more info.


Thanks to HibiscusKazeneko, kellnerd, lotooo, mr_maxis, sammyrayy and yindesu for having reported bugs and suggested improvements. Thanks to BestSteve, brtc, Leonie2, salo.rock, Vac31, wileyfoxyx and ypkim for updating the translations. And thanks to all others who tested the beta version!

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

Continue reading “MusicBrainz Server update, 2024-04-09”

Off topic: mnslib updated for python 3.10/11 and new packages

[ Sorry for the interruption of the usual MetaBrainz tasks here, but we had a problem where a package we relied upon was not suited for pushing to our production servers. So, as a community effort we fixed this problem and this blog post is to let the general public know about our efforts. ]

The non-metric space library has some impressive fuzzy matching search features that we wanted to use for our metadata matching services. However, the library refused to install on Python 3.10/3.11. Nor were the recent binary packages working.

To address this, we enabled Python 3.10/3.11 support and built binary packages for Windows, Mac and of course, Linux. The code and automation for building new packages is in our clone of the nmslib library.

You can download the packages from PyPi and if you change your dependency from “nmslib” to “nmslib-metabrainz” you should be able to use our packages on Python 3.10/3.11.

However, we do not plan to make any further releases or feature improvements to this package, so please don’t ask us to do so. If anyone would like to adopt the improved version and continue to make releases, we’d be very grateful for someone to clone the repository and to carry on the work we’ve done.

Schema change release: May 13, 2024

MusicBrainz is announcing a new database schema change release for May 13, 2024. The main change will be to upgrade from PostgreSQL 12 to 16. Even though it isn’t database-related, Perl will also be upgraded from 5.30 to 5.38. Those will become the minimum required versions. Other changes are mostly clean-up and refactoring, with the exception of support for genre collections and (addendum) 6-digit label codes.

At the same time, the search engine will also be upgraded from Solr 7 to 9. Search indexes will have to be rebuilt on mirrors, which takes some time. Gladsomely, it will allow us to implement search improvements again.

Continue reading “Schema change release: May 13, 2024”

MusicBrainz Server update, 2024-03-11

This release mostly includes small improvements and bugfixes, plus a new report for wrong bootleg releases and a few new locales available for aliases.

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 for having contributed with code to better display documentation pages on small screens. Thanks to chaban, Cyberskull, derat, jesus2099,  RandomMushroom128, sammyrayy and yindesu for having reported bugs and suggested improvements. Thanks to abbedabb, brtc, cijic, Dimlbur, Gateway31, hedw1gP, salo.rock, Vac31 and wileyfoxyx for updating the translations. And thanks to all others who tested the beta version!

The git tag is v-2024-03-11.

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

Welcoming Hazel Savage to our Board of Directors!

I am pleased to announce that Hazel Savage of SoundCloud and Musiio has joined our Board of Directors! Hazel is practically the perfect person for our Board of Directors right now: Knowledgeable in music recommendations and music AI, she brings deep experience in two fields that are quite important to the Foundation at this time. We’ve already been dealing with some tough questions on AI in the past year and her experience will lend us another voice in determining our AI policies going forward.

Hazel replaces outgoing Director Paula LeDieu whose life has recently gotten much more busy, not leaving enough time for her role at MetaBrainz. We’re sad to have Paula leave the team, but are pleased to have Hazel as her replacement.

Thank you to Paula for your time on our Board of Directors — we very much appreciate your time and efforts!

Welcome Hazel Savage!

Supporting upstream open source projects

For many years the MetaBrainz Foundation has wanted to directly support some of the upstream open source projects we use for development. These upstream projects are used behind the scenes by one or more MetaBrainz projects. They often don’t have individual users, and many lack the visibility for getting other funding.

We are starting with a small donation of $1,001, annually. These will be one-time donations to 13 projects, $77 each. The total amount and the list of projects (see below) will be revised every year.

Continue reading “Supporting upstream open source projects”