Hi! I am Jason Dao, aka jasondk on IRC. I’m a third year undergrad at University of California, Davis. This past summer, I’ve been working with the MetaBrainz team to add some neat features to the project ListenBrainz.
Continue reading “GSoC 2021: Pin Recordings and CritiqueBrainz Integration in ListenBrainz”Category: Development
GSoC 2021: Push the URL relationship editor to the next level
Hello everyone, I’m Yang Yang (aka yyoung), an undergraduate student from Shanghai Jiao Tong University, China. I am honored to be accepted as a student of Google Summer of Code 2021 in MetaBrainz Foundation to work on the improvements of external links editor. I had a good time with the MusicBrainz dev team this summer, and it was a valuable experience for me. This is a final report and overview of my work.
Continue reading “GSoC 2021: Push the URL relationship editor to the next level”MusicBrainz App
Greetings, Everyone!
The MusicBrainz Mobile App developers have been working at full capacity, improving the user experience, incorporating more features and functionalities, while making sure the core purpose of the app remains as promised.
Since its inception in 2010, the MusicBrainz Official App has come a long way. The App currently is highly maintained and has been actively open for contributions. A systematic approach is being followed and updates are being made on a regular basis.
The most important revamp which has been worked on for the past few months is the Tagger feature available in the MusicBrainz Android App.
Functionalities like fetching the local album arts, searching through all your local music files at one go, retrieving the cover art from the server, and heading to the recording directly are some of the key highlights of the upcoming Tagger.
Picard has finally made an official entry to the MusicBrainz App where users can now send their releases to the original Picard desktop app with the click of a button. This has been worked on in collaboration with the Picard team and proper documentation on its usage will be shared soon.
The completely new addition of Listen and Critique showcases the functionalities of ListenBrainz and CritiqueBrainz websites natively from the app. Currently, these will be available as advanced features on the app.
A well-prepared Onboarding and About section will take you through every important detail on the app and make sure you are aware of all the functionalities in the best and optimized way possible.
Proper documentation of every feature is being prepared. The App is finally out in Production, do head to the stores and give it a try!
We are really excited to make the MusicBrainz App as user-friendly as possible for you, while we take care of all the wonder behind it!
Play Store: MusicBrainz – Apps on Google Play
F-Droid: MusicBrainz | F-Droid – Free and Open Source Android App Repository
Github: metabrainz/musicbrainz-android
Thank you!
MusicBrainz Server update, 2021-07-19
A week late, but here’s another server update! This time we fixed a bunch of bugs both new and old, added a bunch of new reports, and made it possible to find edits based on the content of their edit notes. Additionally, the bottom credits display for releases now hides irrelevant work relationships (they have been hidden in the inline display for a few months already).
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 cam1170, CatQuest, chaban, Cyberskull, jesus2099, ROpdebee and yindesu for having reported bugs and suggested improvements. Thanks to Besnik, kellnerd, mfmeulenbelt, salo.rock, yoshi818 and zas for updating the translations. And thanks to all others who tested the beta version!
The git tag is v-2021-07-19
.
Fixed Bug
- [MBS-11711] – Bad request for no longer existing paginated relationships
- [MBS-11726] – Typo mistake in set cover art>Comment
- [MBS-11753] – Artist credit editor range select is broken
- [MBS-11757] – CDJapan sidebar link is misspelled as “CD Japan”
- [MBS-11761] – Blank ratings in release collections pages
- [MBS-11767] – Track-level artists that differ from the release artist are no longer shown on multi-disc releases that aren’t fully loaded
- [MBS-11775] – Guess Feat is broken for release groups
- [MBS-11776] – “loading-message” class missing from release loading section
Improvement
- [MBS-10367] – Allow requesting copy of sent report when reporting
- [MBS-11443] – Add option to sort edits by edit note date
- [MBS-11578] – Link tracks in “Recordings with a different name than their only track” report
- [MBS-11614] – Allow merging releases with the same structure when a medium is empty
- [MBS-11664] – Enable Disc IDs tab when any are attached to unsupported mediums
- [MBS-11744] – Improve Release date mouse selection (for copy)
- [MBS-11747] – Consistent display of edit preview in release editor
- [MBS-11765] – Add standalone recording statistics
- [MBS-11769] – Display number of recordings with ISRCs and works with ISWCs on stats page
- [MBS-11772] – Add the Greek (συμμ. <artist name>) to the Featured Artists reports
- [MBS-11773] – Make “featuring in title” reports case insensitive
- [MBS-11774] – Add fullwidth feat / featuring to the featuring reports
- [MBS-11782] – Also hide medleys, versions, etc. on the bottom credits view of releases
New Feature
- [MBS-8371] – Search in edit notes
- [MBS-10844] – Report for same URL linked to many entities
- [MBS-11335] – Report for reused Wikidata items
- [MBS-11381] – Add a way to add and update timeline events through the website
- [MBS-11666] – Report for releases that have disc IDs but are not supposed to have them
- [MBS-11679] – Wish users a happy MB anniversary
React Conversion Task
- [MBS-11778] – Convert edit header to React
MusicBrainz Server update, 2021-06-28
This time we have a release with a fair amount of small bug fixes and improvements, but the main improvement you might notice is that release pages are now a lot more efficient for releases with a lot of tracks. Any release with more than 100 tracks will be loaded only partially, and more tracks can be loaded if useful. This avoids loading hundreds of tracks (and all relevant relationships) in cases where the user doesn’t actually need them, and it will make it possible to load some releases with over a thousand tracks which would consistently time out before.
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 errors in URL editor. Thanks to chaban, Cyberskull, jaw111, Jeluang, jesus2099, nikki, salo.rock, Yurim for having reported bugs and suggested improvements. Thanks to Besnik, kellnerd, mfmeulenbelt and salo.rock for updating the translations. And thanks to all others who tested the beta version!
The git tag is v-2021-06-28
.
Fixed Bug
- [MBS-6811] – Edit note permalinks are not always canonical
- [MBS-8678] – Split Artist not blocked by all relationships
- [MBS-8844] – “Display Credits at Bottom” doesn’t work for releases with collapsed mediums
- [MBS-11522] – Regression: Link to release group missing in “Set cover art” edit
- [MBS-11697] – Old release group type (now secondary) not displayed on edits
- [MBS-11703] – Release index pages with a lot of tracks and relationships often time out
- [MBS-11724] – Typo in Disc IDs attached but not applied report
- [MBS-11734] – ISE when filtering duplicate artists report
- [MBS-11737] – The cover art upload form claims “we don’t own the associated item” even though we do
Improvement
- [MBS-5632] – Make it clear in Set Cover Art edits that the old cover art is not displayed because it was automatically picked
- [MBS-5680] – Allow inc=artist-credits when combined with release-group-rels, release-rels or recording-rels
- [MBS-8700] – Include genres in JSON-LD (RDF) representation of resources
- [MBS-9695] – Allow editing link_creditable_attribute_type / link_text_attribute_type from the UI
- [MBS-9826] – Make edit expiration time show days + hours when it will take more than a day
- [MBS-10307] – Cover art types selector are inconsistent between add and edit actions
- [MBS-11342] – Clarify that recording duration will change if track duration is changed
- [MBS-11421] – Give useful message when trying to split empty artist
- [MBS-11644] – Allow specifying target release MBID when moving disc ID
- [MBS-11698] – More specific target of external link error messages
New Feature
- [MBS-8070] – Show Events in contained Places in Area Events tab
- [MBS-8866] – Show Artist relations on Split Artist page
React Conversion Task
- [MBS-9921] – Convert the release index page to React
- [MBS-11520] – Convert Remove Relationship Type edit to React
- [MBS-11523] – Convert Set Cover Art edit to React
Other Task
MusicBrainz Server update, 2021-06-14
This week we spent some time looking through code that had been sitting for a long time waiting for a review while we worked on all sorts of other things. Most of the changes are small – one that might be more noticeable is that on recording lists you can now see the release groups the recording appears on. This should make it easier to figure out what is going on when a list has many recordings with the same name.
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 fixing a display bug with external links. Thanks to chaban, HibiscusKazeneko, Ian Tresman, Jeluang, otringal and salo.rock for having reported bugs and suggested improvements. Thanks to ffff23 and salo.rock for updating the translations. And thanks to all others who tested the beta version!
The git tag is v-2021-06-14
.
Fixed Bug
- [MBS-11371] – JSON-LD “member” returns “1991-1992” only for “1991-1992, 2000-present”
- [MBS-11440] – Subscribers page for private collection is not private
- [MBS-11638] – Work form allows adding duplicate work attributes
- [MBS-11639] – Changing work attribute type always keeps the old value
- [MBS-11640] – Errors never shown for work attribute fields with fixed values
- [MBS-11682] – Deadlock when entering edits
- [MBS-11688] – The external link section will disappear once any link starts with //
- [MBS-11700] – ISE when viewing “Remove disc ID” edit
- [MBS-11702] – Disc ID: Same release displayed twice when moving disc-id
Improvement
- [MBS-4826] – Display source release next to recordings
- [MBS-10205] – Readd a link to the Data Removal Policy under the “About us” drop-down menu
- [MBS-11293] – Report: streaming relationships in non-digital releases
- [MBS-11337] – Always link to URL entity page and link on URL reports
- [MBS-11609] – Show genre disambiguation on autocomplete dropdown
- [MBS-11627] – Don’t show “delete” link for deleted editors
- [MBS-11696] – Disallow Twitter documentation links
New Feature
- [MBS-9098] – Add JSON-LD “memberOf” relationship to artists who are members of groups
- [MBS-10107] – Add overview pages for relationship attributes
- [MBS-11290] – Report of works with a type which are part of a work with the same type
- [MBS-11305] – Report for erroneous looking trailing join phrases
React Conversion Task
- [MBS-10997] – Convert /search/error files to React
- [MBS-11326] – Convert edit/notes.tt to React
- [MBS-11430] – Convert format_setlist to Javascript
Other Task
Picard 2.6.3 released
Picard 2.6.3 is the third maintenance release for the recently release Picard 2.6. It contains a couple of bug fixes, most notably it fixes a bug where changes to some options did not get applied until a restart of Picard. Users of Picard 2.6 are highly recommended to update.
The latest release is available for download on the Picard download page.
Thanks a lot to everyone who gave feedback and reported issues.
What’s new?
Bugfixes
- [PICARD-2205] – Syntax highlighting ignores functions starting with underscore or numbers
- [PICARD-2206] – Fix tab order in option pages
- [PICARD-2209] – Minimizing / maximizing Picard window registers desktop status indicator multiple times
- [PICARD-2214] – Backslash at end of script raises TypeError
- [PICARD-2219] – Empty file naming script causes files to be renamed to _ext
- [PICARD-2226] – Some config changes are not applied until restart
MusicBrainz Server update, 2021-05-31
We’re back after our schema change with another release fixing mostly small bugs. The most welcome of these changes is probably that unrelated work relationships (such as arrangements, parodies, translated versions and whatnot) will now be hidden from the inline release view, meaning releases with popular songs that have lots of versions should be significantly less annoying to use!
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, fabe56, jesus2099, kellnerd, mr_maxis, mtrolley, psychoadept, ROpdebee and yindesu for having reported bugs and suggested improvements. Thanks to ffff23, jormangeud, 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-31
.
Fixed Bug
- [MBS-11630] – JS error when submitting parallel release group name edits from release editor
- [MBS-11631] – DNB validation wrongly blocks label and place links
- [MBS-11637] – Event-Work relationships not shown from Work page
- [MBS-11643] – URL that ends in the future is prematurely disabled
- [MBS-11660] – Periods are not always ignored in admin e-mail searches
- [MBS-11662] – Guess Case changes capitalization of [untitled] to [Untitled] if not the only word on title
- [MBS-11663] – Release group headings missing when moving disc ID
- [MBS-11671] – Dates displayed as 24:mm instead of 00:mm
- [MBS-11676] – Regression: “Set track durations” is shown for all releases on cdtoc pages
Improvement
- [MBS-9419] – Don’t show versions, medleys, etc for a work on the release page
- [MBS-11628] – Accept and cleanup https “permalinks” for DNB
- [MBS-11673] – Block smart links: myurls.bio
New Feature
- [MBS-11684] – Handle Dogmazic URLs
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.
- Make sure
DB_SCHEMA_SEQUENCE
is set to 25 inlib/DBDefs.pm
. - If you’re using the live data feed (your
REPLICATION_TYPE
is set toRT_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.” - Take down the web server running MusicBrainz, if you’re running a web server.
- Turn off cron jobs if you’re automatically updating the database via cron jobs.
- If you’re using the live search indexing, stop it and, assuming
sir
is under the same directory asmusicbrainz-server
, runcd ../sir && python2.7 -m sir triggers && cd - && ./admin/psql < ../sir/sql/DropTriggers.sql && ./admin/psql < ../sir/sql/DropFunctions.sql
- Switch to the new code with
git fetch origin
followed bygit checkout v-2021-05-19-hotfixes
. - Install newer dependencies Perl 5.30 or later and NodeJS 16 according to install prerequisites.
- Run
cpanm --installdeps --notest .
(note the dot at the end) to ensure your perl-based dependencies are up to date. - Run
./upgrade.sh
(it may take a while to vacuum at the end). - Set
DB_SCHEMA_SEQUENCE
to 26 inlib/DBDefs.pm
as instructed by the output of./upgrade.sh
. - 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. - If you’re using the live search indexing, assuming
sir
is under the same directory asmusicbrainz-server
, runcd ../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 runningcd ../sir && python2.7 -m sir reindex && cd -
) then start it in watch mode (withcd ../sir && git fetch origin && git checkout v2.1.0 && python2.7 -m sir amqp_watch
) - Turn cron jobs back on, if applicable.
- 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
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