Making it easier to contribute to Plume

Automated deployments, live translation, and better contribution guides

Hello! During the last weeks, after the the second alpha release, @FDB_hiroshima and I tried to make it easier to contribute to Plume. Here are the three main improvements we made.

Plume CI

A big problem with Plume is that it takes quite a lot of time to compile (at the very least three minutes on my computer for instance, but it can go up to 15 minutes!), and that during compilation your computer is barely usable because the Rust compiler eats all your RAM. This results in a real productivity slow-down, especially when you just want to review someone else's pull request.

To make our reviews easier, @FDB_hiroshima started working on a Bash script, that we called "Plume CI". The idea, is that when Circle CI successfully built a pull request, the resulting files are uploaded to a server, and this version of Plume is launched (in a Docker container). It is then publicly accessible for everyone to test the changes.

Here are the currently running test instance, powered by this script.

In case you are curious, the source code is available here (but be aware it is a very cursed Bash script).

This system allows us to test changes much faster than before, because once the CI passes, anybody will be able to go to the test instance and review the changes.

Easy translation of our website and documentation

The translation service we use, Crowdin, has a feature called "In-context translation". It allows you to view a special version of a website where you can click anything to translate it (you just need a Crowdin account).

crowdin in context

I activated this feature for joinplu.me and the documentation. You can now go to translate.joinplu.me or translate.docs.joinplu.me to translate one of these websites!

We also have a more detailed guide for translators, if you need more information.

Reworked contribution guides

Finally, I reworked the contribution guides. The previous version was based on Fukwhale's contribution page, but it was not really adapted to Plume in my opinion:

  • they were hard to find, because separated from the rest of the documentation.
  • it was based on Vue.js, and even if it is not a real problem, it seemed a bit too much for something that could have been pure HTML (and I was regularly receiving annoying "There is a vulnerability in this dependency" notifications from GitHub).
  • the guides were in some custom JSON format, and didn't allowed advanced formatting.
  • they were only translatable from GitHub.

So, I decided to move them with the rest of the docs. They are available here now. I also updated some parts that were no longer valid.

There are many ways to contribute by the way, so if you want to contribute but don't know how to code, there may be others contribution guides that may still interest you.

Your feedback about these guides are of course welcome!

I think that's all. Bye!