About: GeNN is a C++ library that generates code for efficiently simulating Spiking Neural Networks (SNNs) using GPUs. GeNN has a large number of C++ unit tests and Python integration tests which are currently run for each commit via a Jenkins-based platform.
Aims: For this project, you will move this flow to GitHub actions and potentially integrate new functionality such as automating documentation building and making releases.
Why are we switching to GitHub Actions? (I’m curious and really wanted to know to make sure I understand the motto).
Which tool should we use for automated documentation? Also, what does “making releases” mean? Is it about versioning documentation like 1.9, 1.20, etc.? ( I will do some research on this to choose the options available )
What else can I add to this flow to follow best practices? ( Need help from your end as well along with that I will brainstorm for improvements.
I’m documenting everything I’m learning in the GitHub Wiki. I’d love to hear your suggestions, and could you guide me on how to get started?
Thank you for repeating your (excellent!) questions here. I was waiting for these forums to be created so my answers weren’t lost in that giant GSoC updates thread!
Why are we switching to GitHub Actions? (I’m curious and really wanted to know to make sure I understand the motto).
We don’t really want to to keep maintaining our own server to run Jenkins and Github actions has, not only pretty much become the standard tool, but it also supports a lot more functionality like running a matrix of builds on different base images for better test coverage.
Which tool should we use for automated documentation? Also, what does “making releases” mean? Is it about versioning documentation like 1.9, 1.20, etc.? ( I will do some research on this to choose the options available )
That is the main thing we would like to be automatically triggered when creating a github release.
What else can I add to this flow to follow best practices? ( Need help from your end as well along with that I will brainstorm for improvements.
Good question! Have a look at other open source projects and see what sort of additional functionality their continuous integration provides. Possibilities would be Python type + style checking and C++ static analysis
Haha, yeah, the first and last one sound fine! But we definitely need proper planning to set up a solid system.
I’d say start by understanding what’s currently happening in Jenkins first. That way, we will have a clear idea of what needs to be replicated or improved in GitHub Actions. Once we map that out, we can tackle automating the documentation system properly without missing any steps.