Open Collective
Open Collective
Loading
Full time work month 2 - halfway update
Published on February 2, 2024 by yayuyokitano

Greetings!

Apologies for the late sending of this, it was already completed last weekend, and is being sent out as it was then, though I have added some small update notes in parentheses in a couple of locations.
As such, note that this letter talks about the period from 10 January until 26 January unless otherwise specified.


The first half of the month has been completed.
As I started on a wednesday, there have been 13 working days, or 97.5 hours.


Time Usage


Improve regex: 33:44:14 - I was surprised at how long this took tbh, ended up with a lot of little gotchas going on with UI and testing stuff, even though the implementation of the core logic itself was pretty quick. It's in a pretty good state now though I think. Flags have been added to disable/enable regex, make matches case (in)sensitive, and to force having to match entire tag or to allow partial matches. Additionally buttons have been added to allow complete removal of matches, as previously default behavior was to not do any replace when field was empty, which made more sense without ability to do a partial match. (Update: this is merged as of 2 Feb)

Accessibility: 16:52:23 - On the other hand I was surprised at how quickly I got this knocked out. I feel like I have more or less handled high contrast themes, keyboard navigability, and screen reader usability. Only thing is changing extension icon when loving a song for feedback, but I want to wait for loving through website to be merged first before implementing that. I believe it will be a quick change though. (Update: another contributor has taken ownership of implementing love/unlove feedback, and I am helping them along the way)

DOM detection: 10:32:50 - This seems to have ended up more or less exactly as predicted, as it is now more or less done. The only issue is there seems to be some issues with funkwhale, but I am pretty confident this is actually just an issue with the funkwhale connector I need to knock out, and not actually a problem with the DOM detection itself.

Exploring issues: 9:13:59 - A large portion of this was that a new feature request was made, asking for data synchronization through cloud services. Web scrobbler does not store edits in sync storage, because there simply is not enough space for us to do so, but using a cloud service could be a way to get around that. However, that comes with a lot of concerns regarding synchronization and preventing data loss, So I had to do some thinking and formulating a response, detailing how such an implementation should be made. I might implement it myself towards the end of the month, if there is time, but we will see how the situation looks. Other than that there was some exploration of various bugs.

Like through music service: 5:53:26 - This was much faster than I thought, and seems done. Only thing is we might want to implement support into a couple more connectors before merging, but currently it works in youtube and spotify, and I have had zero issues or bugs. (Update: this is merged as of 2 Feb)

channel blocklist: 4:46:59 - This has been merged and is currently in production (fortunately, we have not seen any bugs reported, I was pretty worried about this one because of how much core functionality it touches.) Most of the time spent here was spent implementing better UI (channel labels) and support on iOS.

Give disallowed reason: 3:44:10 - Another item that was a lot quicker than I expected. This seems complete at this stage. (Update: this is merged as of 2 Feb)

Code review: 3:24:31 - Every non-dependency PR that is not mine that is in a mergeable state has been merged.

Other: 2:36:46 - This has been mostly writing reports in discord as well as this report here, and partly updating my apple developer account used for publishing web scrobbler. I recently changed legal name, and my apple account (and as such, the name displayed on the app store page) has been updated to reflect this now, as apple developer accounts must maintain up to date legal name per ToS.

Upgrade vite: 2:36:09 - We pretty much hit worst case scenario where a package we relied heavily on somehow did not support Vite 5 yet. I made the decision to simply roll our own code, because it was a pretty simple utility package. This has all been merged. On my end, I have seen build and install times go down by about 20%-ish, and bundle size go down by negligible amounts (I'm not sure how much is because of Vite 5 and how much is because we got rid of the package).

Double scrobble warning: 1:49:48 - Done and merged for only spotify currently, but the system makes it very easy to add more services, I just couldn't think of any.

Improve CI: 1:02:02 - We have started a project to migrate to stylelint 16. The stylelint 16 config update is complete, but I am looking into whether we have to update other configs too. Additionally, prettier needs an updating, but I'm guessing that will just be a matter of bumping the version number, running a command, and letting it do its thing automatically.

Core development: 0:51:14 - Fixed a bug where links were not working as expected in extension popup window. Done and merged, not in production yet.

Scrobble cache: 0:33:36 - Kept this up to date. (Update: this is merged as of 2 Feb)

Stricter timeout on requests: 0:27:19 - Done and merged, not in prod yet I believe. Once it is, musicbrainz going down will be a non-issue (unless you use listenbrainz, of course)

Documentation: 0:23:21 - Just updating some little bits and pieces here and there to reflect changes made.

Total time spent: 98:32:47


The Second Half


In sum, things feel like they're about on pace. Most things went faster than expected, but regex edits went quite a bit slower than I expected, but they more or less cancel each other out.

I want to spend a day or two just testing things and getting things merged before proceeding on to the rest of the list (maybe with the exception of making some small fixes that do not affect anything else.)

I expect that the entire list should be complete with about 2-4 days to spare. Whether I start to look into data synchronization or making connectors at that point I am not sure yet. If you want to state your preference, feel free to do so! Data sync is quite complicated though, so I'm not exactly confident that I would be able to finish it within the month, I might need to spend some more time after the month finalizing it (which I am able to do, though I may not have as much time.) (Update: only 3 smaller items and DOM detection left on the list as of 2 Feb, remaining on schedule to have 2-4 days to spare.)

Overall I am pretty optimistic that everything will be achieved and merged before end of the full time work period.

Thank you for your support, and I will get back to you in two weeks. (Update: closer to one week, probably)