Streamline Rhasspy development on GitHub

Split from the topic Fully support the Hermes or Hermod protocol:

This is a really nice overview of the work that still has to be done. Can’t we have this somewhere on GitHub to track the progress? For instance with milestones or project boards? As an example, Project Alice is tracking their progress nicely with a project.

1 Like

+1 for managing progress with a Github project.

1 Like

I need to understand all of these GitHub features better. Want to be the Rhasspy DevOps guy? :stuck_out_tongue:

I haven’t really used many of these tools myself: I just know they exist, see other projects using them and think “That’s cool!” :slight_smile:

If I may suggest one other GitHub feature: an organization. This could have all Rhasspy repositories under one umbrella. Especially with the process now of splitting up Rhasspy in various services, this could be interesting: people can find all relevant repositories then in this one organization, not cluttered by other unrelated repositories. Existing repositories can be transferred to the organization.

It could also let the project scale when it attracts more developers: you can manage fine-grained access to your repositories, manage access to project boards and so on. I don’t think you can do that currently on your personal GitHub account?

I’m happy to help with all this. Maybe setting up an organization for Rhasspy and giving me (and anyone else who wants to help) access rights to project boards is a first step to find out how we can manage/visualize development progress?

3 Likes

A Rhasspy organisation looks perfect to me :slight_smile:

That sounds great. I’ll look into that, thanks!

Follow-up question: I went ahead and registered a rhasspy Github account. Do you think we should create the organization under that account instead of my personal one?

I also created a rhasspy DockerHub account with the idea that the Docker images for the various services could be hosted there.

1 Like

I have never created a GitHub organization myself, but I don’t think you should create a rhasspy account, no? If I read Creating a new organization from scratch correctly, you can create a rhasspy organization when you’re logged in under your personal account. Either way, I think the GitHub URLs should be something like https://github.com/rhasspy/<repository>, no?

Oh, maybe I misread it. I hope I didn’t screw things up by registering an account with the same name…

If that’s an issue, I see in the account settings under Organizations a button Turn … into an organization, so I suppose you could turn the rhasspy account then into an organization.

1 Like

Some CI/CD would also be nice. Do automating testing make sure that when you create something new, old functionalities keep working. And automaticly create the new docker images and push them to docker hub.

1 Like

Indeed. We have been discussing this on https://github.com/synesthesiam/rhasspy/issues/57.

1 Like

Github has “Actions”, never used it, but seems to do the basic things what u need.
Travis CI is also a possibility, which is used a lot.

When i get more familiair with rhasspy, the repository and git (Use subversion at work so need to get more routine with git) and nobody tackled it yet i will take a look at it.

2 Likes

Thanks! All help is welcome. I have no experience with GitHub Actions; I have with Travis CI and I like it a lot, but I’ll have a look at the differences.

1 Like

I’ve been waiting to take the plunge on Travis CI until Rhasspy was split into services. Since this is now ready, we should start figuring out how to do this for each individual repo!

You can start with a minimal Travis CI config for one of the repositories that runs the tests, and build upon this step by step.

I see that you are using the GitHub projects feature in the rhasspy repository, @synesthesiam. Is that working for you?

By the way, you can also add GitHub issues to a project.

Maybe it’s an idea to create a project for the next Rhasspy release and track progress towards the release this way?

2 Likes

That seems smarter than what I was doing :slight_smile:

I personally use travis ci, github actions and gitlab ci. Github Actions are kind of cool since they are integrated directly into github, I like the idea of having multiple ci files and the idea to have community addons that can easily be installed. However at least from my experience sometimes super simple things can get a big mess. E.g. both in gitlab ci and travis you have a environment variable that tells you the branch, while with github actions you would have to find that out yourself …
Travis CI I used quite a lot already but recently moved most my stuff either to github actions (when it works easily) or gitlab ci. The reasons for this are: you only have 4 runners in travis, which can get annoying when you e.g. test on multiple python versions and want to do this in parallel (I build e.g. images for different router models and each takes 100min so with travis thats pretty much impossible). Another thing is that travis is pretty slow. While both in gitlab ci and github actions ci jobs start right away it can take minutes until travis has a free runner for you. As a third thing I use Schedules/Cronjobs a lot myself. While github actions have separate files and with gitlab ci you can tell it that certain stages should only run for schedules or not run for schedules, with travis all jobs are run again, which is often not what you desire (can be solved but stays a hack).
Gitlab CI can be used for any other git hostings like github and for open source projects you get a free premium version of gitlab when you ask them -> you get 50k build minutes per month for free which is more than enough (without a limit on how many jobs you run in parallel)

2 Likes

@maxbachmann after your comments I started exploring GitHub Actions and I like them!

Thanks for the suggestion, they are a lot faster than Travis CI indeed!

2 Likes