Behind the Scenes: Improving Project Structure and Other Updates

Hey everyone!

It's been a while since I've written a post however today I have a lot that I'd like to discuss. In this Behind the Scenes, I'll be talking about some issues that has been occurring with how the project has been structured up to this point along with the solutions that we've come up with. I also want to quickly discuss some changes that will be made when it comes to communications so please stick around for that or jump to the very end because it's an important announcement.

The Problems with Maintaining FOSS Alone

For a majority of my time with working on FreeTube, the process has been pretty basic. I've had my plans for new features and fixes and I would go ahead and implement them. Users would be able to visit me on GitHub or Matrix to discuss a feature or bug and I'd be able to quickly fix it or add it to the queue of changes to make. Sometimes a pull request would come in and I'd be able to review it or even merge it over without too many complications along the way.

As time has moved on, it's become much more difficult to keep up this process. The “Problem” now is that FreeTube has become fairly popular in essentially all aspects. I'm extremely grateful that everyone enjoys using and even developing with FreeTube. Seeing FreeTube grow and watching others get excited for it just like I have has definitely made me enjoy being a part of it.

Because of this new popularity, the tasks that I do for the project has somewhat changed. I've become less of a developer for FreeTube and more of a maintainer. More of my time is now spent on responding to issues and reviewing pull requests. One of the major features that everyone is looking forward to has been the full implementation of playlists. I've been telling myself and others that I'll be able to work on it very soon, however the increase of “maintaining” the repository has made it difficult to work on large features such as this.

It isn't that I dislike responding to issues and reviewing pull requests. It's that there are now much more of them compared to before that being able to balance everything together has been extremely difficult. I've been able to add a couple of more people to the team to help out with this, however even with 3 of us, the amount of things that come in has started to become overwhelming.

I don't want this to sound like a bad thing however. Like I said, I'm extremely happy to know that so many people are enjoying FreeTube and that there are even groups starting to form that are even contributing back to the project. It's great to see so many people involved, but when progress on even the smallest things are bottle-necked from a very small group of people's free time, responses and reviews can feel stalled at times.

So What's the Solution?

In order to keep up with this growing community, we need to expand, a lot, and that's exactly what we did! You may have seen them recently if you're active on our GitHub page, however we have created a team of contributors that will be assisting in various places moving forward. Each one of them are developers that have been active in the project who have each made quality contributions to the project who I have entrusted to assist others in doing the same. The new team is as follows:

Jason Henriquez Hiers “John Doe” ChunkyProgrammer PikachuEXE XIII

These six members, along with myself, GilgusMaximus, and Svallinn (Who has joined the team in between this blog and the last one) now brings the FreeTube team up to 9 members! These new team members will be assisting with helping out within the repository by answering questions along with reviewing the pull requests that come our way. Having a team this large will be a huge help with everything going on with FreeTube and will ensure that progress will continue in all aspects even if someone's free time doesn't allow it.

This means that the way that FreeTube as a project handles new contributions will change. In the past, all pull requests were reviewed by myself and I would merge these contributions when I felt ready. Moving forward, contributions will need to be approved by several members of the team before a change can be merged over. This ensures that contributions coming in will still be reviewed properly, while also allowing much smaller contributions to be merged quicker than before.

Because of the large amount of members, this should be enough where no one should have to wait too long in order for their pull request to be reviewed. Since I won't have to be as involved in this process, this means that I will have more time to focus on working on some of the features that everyone is looking forward to, such as Playlists.

I'm very hopeful that this will be a great help with keeping progress more consistent with the project. If you haven't been on our GitHub in a while and have been waiting for a review, I'd recommend checking back as it's likely that someone has reviewed your changes already.

Release Candidate Builds

In the past, it hasn't been very clear for when we decide to start testing for the new release. We've had nightly builds for a while now to test changes, though that doesn't set in stone the final revision of the next release, nor does it show what changes have been made since the last release.

Starting today, we'll be revising this approach. When we're ready for testing, we will release separate Release Candidate builds along with a list of patch notes of what to expect with the next release. This makes it more accessible to those in the community that would like to test the upcoming release but doesn't know exactly what to test and when. These are installed the same way as our nightly builds, however we won't have to worry about interfering with changes to our nightly builds and can focus more on testing with these builds.

So when will the first Release Candidate be out then? Right now! We've started a release candidate for the upcoming v0.15.0 release. If you're interested in testing, check out this discussion thread for information on how to help out. There's some important information in that thread so please make sure you read all of it before you decide to participate.

Communication Changes

Because of the changes that we're making above, I'll be making some changes to how the team communicates with the rest of the community. We want the entire team to be able to have access to incoming feedback so that those that report to us can reason a response as fast as possible. To help with this, we'll be making the following changes.

GitHub

We've opened up the Discussions tab within GitHub. This section is open to the public to create threads and ask questions that may not be suitable for the issues board. All members of the team will be able to see new threads and respond quickly here. Questions can even have answers marked for those stopping by at a later time wanting to ask a similar question. Feel free to stop by on GitHub and start a discussion with us.

I may consider opening up the subreddit to users as well in the near future if it's desired as I know that GitHub isn't the most favored service to some.

Matrix

Nothing much will be changing here. Matrix has deprecated their Community feature in favor of Spaces. I wanted to convert the community over to Spaces, however it didn't seem to want to, so I instead created a a new group (Plus it would have notified over 100 people, which probably isn't ideal). There shouldn't be any major changes with this however it should be a neater way to group channels if we decide to split conversations in that way. Unfortunately anyone currently a part of the FreeTube community on Matrix will need to rejoin to the new Spaces group. Anyone can join by following this link.

Email

This is likely the biggest change of them all. I regret to inform everyone that I will no longer be responding to email messages. Email has been nice up to this point however it leaves a lot of people missing in conversations and makes it much harder to respond to. I get a lot of emails and since I'm the only one with access to the inbox, I become a bottleneck to a potential conversation with no chance of a response from anyone else. A lot of the emails end up asking very similar questions as well. It isn't practical giving similar answers to users separately.

Some of you may have seen this coming. It has been very difficult for me to respond to emails recently and there is a very large amount sitting in my inbox waiting for a response. To me, email is a very formal conversation and I feel like I need to give more thorough answers when I respond to them. I know that this isn't always the case, but it's what I feel is right when I respond and I simply don't have time to do that for everyone that contacts me.

Conclusion

As you can tell, there's been a lot of changes recently. The recent updates to FreeTube itself has already shown that these changes have been well worth it as both v0.14.0 and the upcoming v0.15.0 releases have been primarily handled by the new team and they have all been doing an amazing job so far. This should increase the amount of updates that we see which should be good for everyone. We're still revising some of our workflows so there's a chance that we'll be making more changes as time goes by.

If you'd like to talk about these changes (Or if you wanna say hi to the new members), you can come chat with us on Matrix or discuss this on GitHub.