Theia release pipeline (and potential contribution)

Hi everyone, I was unsure where to ask this question, so I decided to post it here. If I’m not supposed to do this, please let me know :slight_smile:

We are undergraduate students in a software delivery course. Our course project is to study a release pipeline of an open-source project and to make potential improvements to it. I am always interested to learn more about Theia and its internals, so I think this is an excellent opportunity for us to learn more about it and potentially contribute to it. Do you think this is manageable consider we have minimal experience with Theia? If yes, would anyone redirect us to the place where we can learn more about Theia’s release process or if you have any ideas on the part that can be improved?

Any help would be much appreciated. Thanks in advance :slight_smile:

Hi @20001LastOrder,

This is the perfect place to talk about this. I’ll give a quick overview - let us know if you have questions:

In the main Theia repo, we use Travis CI: config

Travis Caching is used so the whole content of node_modules (project build and production dependencies) do not have to be fetched completely from npm every time.

Then here is the environment setup where we install OS-level dependencies that are needed to compile Theia.

Then the Theia framework and example application are built.

If we get to that point, we run a few test suites.

Here is where the changing parts of the CI environment are defined. e.g. on which OS (ubuntu, Mac, Windows) and using which version of Python (2.x or 3.x).

That’s where it stops for a Pull-Request. When it’s merged, the deploy stage kicks in. Theia is rebuilt and published on npm, as a next version, meant for test purposes / preview of the next solid release. e.g.:
@theia/core v1.7.0-next.137840a6

We have an official, “solid” release at the end of each month, also published to npm. That one is done manually, on a committer’s work laptop, so you will not see it reflected in the Travis config. See here for more details. e.g:
@theia/core v1.6.0

Thank you a lot for the information, we will try to look into it :smile: