Instruments part five: Let’s get serious & GCI

At the end of the last version I was getting into the groove—and feeling determined.
I had managed to vittle down the instrument backlog to half! I though surely I could do even better! Let’s start digging into the meat of things and, get serious.

Now we were going to do things seriously, so therefore this was a pretty big version!
It’s called:

Let’s get serious!

I started by looking into a few issues during autumn:

However right in the middle of this version came GCI!
I was part of the contest as a mentor this year (for the first time) so naturally I had some instrument tasks ready for our participants. They were pretty popular, with a lot of tickets being added or improved by the participants. So, this is how serious we got for GCI:

After GCI we still had quite a bit of seriousness left:

The majority of these where done during autumn ’17 and the first half of ’18. The whole thing would have been finished in the summer, hadn’t May, June and July ’18 been the hottest summer ever! I just couldn’t think, so I took a break until August and then I finished dealing with the last few stragglers.

This version ended up including 58 tickets: the largest to date!
What happens now? Well, at the end of the “Let’s get serious” version I noticed some issues with families and the like, but that’s a topic for the next blog post!


It’d been almost 2 years since I started, and I’ve managed to get quite a lot done! Here is a graph that illustrates the progress (notice the the jump in added tickets during GCI period, when the participants actually added them faster than I could close them!):
progress graph

And with this we have finally caught up! So hopefully all future blogs from now on will be posted soon after the relevant versions are released.

GSoC 2018 : Building a design system. Journey and learnings..

Hello,
I am Chhavi. I have mostly been helping around with all things design in MetaBrainz. I recently graduated from IIT Guwahati, India and started contributing to MusicBrainz after attending the summit last year, around the same time.

As a Google Summer of Code student, my project was to build a design system with React UI components for the upcoming overhaul of MusicBrainz’s website. It surely was a really interesting journey, right from when I heard about the community and I would like to share some snippets of it with you!

May 2017: I hear about Picard, and how a bunch of really cool people who meet online are building it. I was intrigued.

Around August 2017: I pop in the IRC channel #metabrainz, and after much overthinking, I drop a “Hi”. Followed was a really warm welcome by people I will soon call friends and a lot of developer-y jargon I had no clue about.

September 2017: I attend the annual MusicBrainz developer summit in Barcelona. And boy oh boy, I am now part of the family. Over the few days there, I have immense fun interacting and learning from the community.

November 2017: We set up our JIRA ticket system for design issues and start working on the mockups for the redesign. The entire community comes together on JIRA tickets and Discourse posts to talk about where we want to go with this overhaul.

January 2018: Community members encourage me to try my hand at front-end development. One is really lucky to find people, who encourage you to grow out of your comfort zone and help you cross that wall. In MetaBrainz, there is no shortage of such kind of people.

March 2018: With little confidence and lots of hopes, I apply for the Google Summer of Code programme. I start learning the ropes of development, with help of online tutorials and obviously our community. We also met for a mini-summit in Delhi to discuss ListenBrainz and spicy food.

April 2018: Hence began my full-fledged journey of learning and spending a summer of coding. It wasn’t easy, but I learned a lot in the process.

We set up the initial design system using react-bootstrap and react-storybook. I then started importing UI components into the system, followed by its documentation. I wrote up a more detailed description of the process too.

August 2018: As of now, we have the design system in place. The future plan is to continue adding components to it as well focus on having well thought contributing guidelines. I will also continue working on designing the mockups for the user interface for various entities.

Google Summer of Code was just another milestone in my journey with MetaBrainz. My time here has been a time of both personal and professional growth. I now feel more comfortable in a development environment, the ongoing chats on IRC make more sense to me and I feel less inhibited to put my thoughts out there. I completed my college, moved cities, traveled… all while having a set of these amazing people I call family.

A special shout out to Rob for keeping me going, bitmap for being ever so patient and understanding, samj1912 for introducing me to MetaBrainz, CatQuest, iliekcomputers, Suyash, Freso, reo and zas for being amazing friends through it all.

The thing I like about our community is, we had seasoned developers as well as newbies like me, all together working together to create amazing stuff. Hoping to continue being an involved and colorful part of this community,

You will obviously keep hearing from me in the coming days,
Chhavi

Freedb gateway: End of life notice, March 18, 2019

Many moons ago people clamoured for a way for them to use MusicBrainz via their old FreeDB (and others) enabled players. The hope was that this would be a short term solution as more players picked up MusicBrainz support so we created the FreeDB gateway that allowed old clients to use an ancient interface to look up CDs with MusicBrainz.

We’ve been maintaining this gateway for over 11 years now and recently we had a user asking questions about their new music player and that they were having a hard time getting it to work with our FreeDB gateway.

Wait, what? Someone is developing specifically for a stop-gap measure? Clearly the goal of FreeDB gateway has been misconceived and people are not treating it as a gateway to using the proper MusicBrainz API endpoints.

We’re no longer keen on supporting this gateway and have been having trouble finding volunteers to maintain it. Our internal staff has enough to do with our own duties and have no interest in further maintaining this and neither do I.

For these reasons the FreeDB gateway is going away in 6 months time; March 18 will be the absolute last day that the gateway will be functioning. Should something crash and the gateway experience problems before then, we’ll just kill the VM that the gateway is running on and call it a day.

11 years of temporary is enough — if you use this service, migrate to a proper MusicBrainz endpoint right now!

AcousticBrainz migration: We’re on!

We had to postpone the migration of AcousticBrainz last week since we ran out of time (our database is getting to be sizable!). We’ve migrated the bulk of our data and are now ready to move the last bits and call the move complete.

Downtime will start very soon — follow us on twitter for more detailed updates.

AcousticBrainz downtime: Migrating hosting to our other servers

Today we’re going to migrate the AcousticBrainz service from its standalone server that we’ve rented in the past few years to our shared infrastructure at Hetzner. We’ve been prepping for this move for a few weeks now and the actual process to follow has been used before, so we don’t expect the downtime to be more than 1 hour.

We’re sorry for the downtime that will be coming — to keep up with what we’re doing, please follow our progress on Twitter. We hope to start the migration in the next hour or two from when this blog post goes up.

 

Instruments, part four: After Summer Special and loose ends

After 2-ish months of summer vacation I decided to do an “After Summer Special” (name as a reference to After School Specials)

By the end of summer I had been working hard… on Debussy instead of instruments! Oops!

Once September arrived I realised that I needed to get things back in order, so I set about finishing this version:

Bug

  • [INST-545] – Reverse parentage of classical/acoustic guitars

New Feature

Improvement

  • [INST-430] – akete is missing proper description (along with some improvements)
  • [INST-477] – table steel guitar alias
  • [INST-501] – Please add a couple of Dutch aliases to bullroarer
  • [INST-518] – rebec relations
  • [INST-554] – Improvements to hardingfele aliases
  • [INST-583] – add aliases to handclaps

——–

I also decided to close the tambouras (strings) version, as after much delay there wasn’t really much progress on it. I had started work on these way back in January, adding the Tamburica instruments (see Instruments part two).
However, by the time ASP came to an end it had became clear to me that I had to move on from dwelling on this, to feel like there was progress and avoid burning out.

Now, after over half the INST tickets have been closed, I had a bit more experience and I could finally finish work on this + some random stragglers left over from the “next” version.

Anyway, after all that, I decided that the thing we needed to do, was to, Get Serious

BookBrainz is now an official MetaBrainz project!

After many years as a community driven project and often under-staffed, the BookBrainz project has always been the red-headed step child of our projects. A few weeks ago I asked if the community felt that we should make BookBrainz an official project of the foundation and got a very positive response.

After that, we started informally seeking developers to take on this position, leading to the hire of Monkey, who will now be the lead of the BookBrainz project, taking over for Ben Ockmore. Ben will take on a contributor role to BookBrainz going forward and remain on the project! Thanks for all of your hard efforts in the past, Ben!

While Monkey comes up to speed on the codebase, we’ve been brainstorming what features he should focus on first . The short term focus on BookBrainz will be on bringing it into our hosting setup at Hetzner, which means making the codebase ready for running inside of docker with all of the MetaBrainz specific hosting quirks. Part of this project will be to remove elastic search and to utilize our new Solr based search system that we recently released for MusicBrainz.

After getting BookBrainz moved to our hosting facility that focus will be to create a minimally viable product. What exactly does this mean? One of the frequent complaints I’ve received about BookBrainz is that it is missing core functionality of a proper metadata project. Core functionality means that a user should be able to view and edit all of the metadata that is in BookBrainz and then retrieve this data from the BookBrainz API. It should include full data dumps with incremental data dumps being added a bit later.

What do you think the missing core features of BookBrainz are?

Finally, we’re in discussions with the OpenLibrary team, wondering how to best work together and not to duplicate efforts — we’ll post more about this once we’ve reached an agreement with the OpenLibrary team on how we should proceed.

Thanks!

MetaBrainz team changes, autumn 2018

Hello!

The only constant in the world is change, right?

First off, the somewhat sad news: Sambhav, AKA samj1912, has left MetaBrainz the team as a contractor and has moved to London. The upside of this news is that he will continue to work on Picard for us and will remain a part of our team as a volunteer, but his presence will not be quite as intense as before. Thank you for your hard work these past months, especially for finishing the impossible Solr search project!

With Sambhav’s departure and our improved finances, I’m proud to announce that we’re taking on two new contractors!

Nicolas Pelletier AKA Monkey: You may remember the talented Monkey from when we designed our new logos. He was the designer who created the logos and our new bootstrap theme that adorns most of our pages now. Working with Monkey was straightforward, effective and the results were great, so when he expressed interest in working on BookBrainz, I was pleased to hear this news. Monkey will be working for us full time and spending 75% of his time on BookBrainz and 25% of his time to help with design and UX work for the rest of our projects. In the next blog post I’ll talk more about BookBrainz and what we can expect from that project in the future.

Nicolás Tamargo AKA Reosarevok: Reosarevok is no stranger to our community — he’s made 1.7M edits to MusicBrainz, is our Style BDFL and answers all of our support@ emails. He’s been learning more programming and asked to be part of the MusicBrainz team part time. We agreed to give this a go and in the short term he will be focusing on genre support and helping with the React migration among other tasks. If this trial run works out, we’ll see about expanding his scope on our team.

Welcome on board Monkey and good luck with the new position, Reo!

 

 

Picard 2.0.4 released

This is a minor release that fixes a lot of issues, most notably few annoying crashes and a bunch of audio file formats-specific bugs.

I’d like to thank Philip Wolfer (outsidecontext/phw) for the fantastic job he did on this release.

As usual, you can find the latest downloads on Picard’s Website.

Here is the complete changelog for this release:

Bug

  • [PICARD-803] – tagging “8½ Minutes” with “replace with non-ascii characters” results in a directory being created
  • [PICARD-1216] – Does not display version information
  • [PICARD-1267] – 2.0.0dev6 crash in debug mode on Windows April Update (1803)
  • [PICARD-1281] – Picard has wrong version string
  • [PICARD-1294] – Crashes every time Picard connects to MB server.
  • [PICARD-1310] – Picard crashes on clearing log
  • [PICARD-1318] – RuntimeError: dictionary changed size during iteration
  • [PICARD-1321] – CD drive selection not working on Linux
  • [PICARD-1322] – Crash in options on “Restore defaults”
  • [PICARD-1323] – Restore defaults does not restore CAA types
  • [PICARD-1324] – Default locale not working reliable
  • [PICARD-1326] – Picard Save Changes 5.1 Mix Type
  • [PICARD-1327] – Loading TAK files fails
  • [PICARD-1328] – Loading OptimFROG files fails
  • [PICARD-1329] – Picard fails saving ID3 tags with iTunNORM tag
  • [PICARD-1331] – Picard crashes on error during plugin install