How to contribute to YunoHost

Applications:

Utiliser la branche testing pour tester les nouvelles améliorations sur les applications officielle.

  • Toutes les applications officielles disposent d’une branche testing, sur laquelle arrivent les nouveautés avant de rejoindre la banche master et d’être mise à disposition de tout les utilisateurs.
  • Cette branche peut être librement utilisée, et c’est un excellent moyen de tester les corrections apportées avant la diffusion à tout le monde.
  • Tester les applications sur la branche testing est un excellent moyen d’assurer la qualité des applications, et d’aider le groupe Apps à sortir les mises à jour rapidement.
  • Pour trouver toutes les nouveautées sur les branches testing de nos applications officielles, consultez cette catégorie du forum, https://forum.yunohost.org/c/announcement/official-apps.

Aider les utilisateurs sur le forum ou sur le salon support

  • Le support est une tâche récurrente et très chronophage. Il est toujours très utile de passer voir ce qui se dit sur le forum ou le salon support et d’aider les utilisateurs qui en ont besoin.

Proposer des corrections sur les apps en fonctions des issues ouvertes

  • Un bon moyen de s’initier au packaging d’application peut être d’aider les packageurs en corrigeant les issues ouvertes sur les applications.
  • Il suffit le plus souvent de forker le dépôt puis de créer une pull request avec votre correction.
  • Toutes les applications YunoHost sont disponible ici: https://github.com/YunoHost-Apps
  • Les applications officielles ont aussi besoin d’amour, n’hésitez pas à jeter un oeil à leurs issues également.

Remettre en état des vieilles applications peu ou plus fonctionnelles

  • Certains packages d’application YunoHost sont abandonnés, le plus souvent par manque de temps du packageur initial.
  • Il est parfois plus facile de reprendre une application ainsi plutôt que de la refaire du début.
  • Et ce sera très apprécié des utilisateurs qui auraient voulu utiliser cette application.
  • Voir la liste des applications: https://yunohost.org/#/apps_fr

Améliorer la qualité des applications pour leur permettre de monter en niveau

Packager de nouvelles applications

  • YunoHost dispose déjà de beaucoup d’applications, mais peut-être pas celle que vous voulez, ou pas celle qui est attendue par la communauté.
  • Si vous savez comment installer l’application, vous êtes capable de créer un package pour YunoHost. Vous permettrez ainsi à tout les utilisateurs de YunoHost d’installer facilement l’application.
  • Voir la liste des apps non packagée: https://yunohost.org/#/apps_wishlist_en

Mettre à disposition un raspberry pi pour les tests automatisés d’intégration continue.

  • Notre serveur d’intégration continue effectue des tests de manière automatisé sur une architecture x86-64.
  • Pour s’assurer que les applications fonctionnent également sur d’autres architectures, notre CI est capable de déléguer des tests à d’autres serveur sur des architectures différentes.
  • Ces serveurs secondaires sont simplement des machines d’utilisateurs de la communauté.
  • Si vous disposez d’un raspberry PI qui n’est pas trop occupé, vous pouvez participer aux tests d’intégration continue en nous prêtant de temps à autre cette machine.
  • Notre serveur de CI contacte les autres serveurs en ssh avec une clé privée et un utilisateur dédié isolé dans son dossier. En aucun cas cette connexion ne peux être utilisée pour autre chose qu’un test d’application, et il est impossible de sortir du dossier dédié à cette tâche.
  • Vous pouvez voir ici le script utilisé pour déployer sur un raspberry: https://github.com/YunoHost/CI_package_check/blob/master/auto_build/chroot_ssh.sh

Corriger ou améliorer la documentation sur le packaging d’application

  • La documentation sur le packaging d’application a été écrite par des packageurs, qui n’ont bien évidemment pas la meilleur place pour se rendre compte de la complexité de celle-ci.
  • Nous avons toujours besoin de maintenir cette documentation à jour, et de la rendre la plus claire et simple possible.
  • N’hésitez pas contribuer à la documentation, c’est très important pour les autres utilisateurs.

Traduire la documentation en anglais/français

  • Une grande partie de notre documentation n’est disponible qu’en français, si vous savez écrire en anglais, tout nos utilisateurs non francophones vous seront très reconnaissant si vous complétez la documentation anglaise manquante.

Écrire de la documentation sur comment utiliser une application

  • Nous essayons de rendre accessible l’installation et le maintien à niveau d’applications qui ne sont pas forcément simple à mettre en oeuvre. Mais nous ne disposons d’aucune documentation sur comment utiliser ces applications.
  • Si vous savez comment utiliser une application packagée pour YunoHost, les utilisateurs débutants pourraient être ravi de trouver une documentation leur permettant de découvrir comment utiliser une application après son installation.

Applications:

Using the testing branch to test the fixes or new features for a official application.

  • All our official applications have a testing branch, where all fixes or new features are released before coming to master branch and finally be released for all our users.
  • This branch can be used by everyone, and it’s a good way to try the modifications before a release for all the users.
  • Testing applications with the testing branch is an excellent way to ensure applications quality, and help the Apps group to get the updates out quickly.
  • To find all the testing release of our official apps, have a look to this category of the forum, https://forum.yunohost.org/c/announcement/official-apps.

Help users on the forum or the support chat room

  • Support is a recurring and very time-consuming task. It is always very useful to check out what is being said on the forum or the support chat room and help users who need it.

Propose corrections on apps based on open issues

  • A good way to learn about application packaging can be to help packagers by fixing open issues on applications.
  • You can usually fork the repository and then create a pull request with your correction.
  • All YunoHost applications are available here: https://github.com/YunoHost-Apps/
  • Official applications also need love, so don’t hesitate to take a look at their issues as well.

Rehabilitate old applications that are no longer functional

  • Some YunoHost application packages are abandoned, most often due to lack of time of the initial packager.
  • It is sometimes easier to take over an application than to redo it from the beginning.
  • And it will be very appreciated by users who would have liked to use this application.
  • See the list of applications: https://yunohost.org/#/apps

Improve the quality of applications to allow them to level up

Package new applications

  • YunoHost already has many applications, but maybe not the one you want, or not the one that is expected by the community.
  • If you know how to install the application, you are able to create a package for YunoHost. This will allow all YunoHost users to easily install the application.
  • See the list of non-packaged apps: https://yunohost.org/#/apps_wishlist_en

Provide a raspberry pi for automated continuous integration tests.

  • Our continuous integration server performs automated tests on an x86-64 architecture.
  • To ensure that applications also work on other architectures, our CI is able to delegate tests to other servers on different architectures.
  • These secondary servers are simply machines of users of the community.
  • Si vous disposez d’un raspberry PI qui n’est pas trop occupé, vous pouvez participer aux tests d’intégration continue en nous prêtant de temps à autre cette machine.
  • If you have a raspberry PI that is not too busy, you can participate to the continuous integration tests by lending us this machine from time to time.
  • Our CI server contacts the other servers by ssh with a private key and a dedicated user isolated in its folder. Under no circumstances this connection can be used for anything other than an application test, and it is impossible to exit the folder dedicated to this task.
  • You can see here the script used to deploy on a raspberry: https://github.com/YunoHost/CI_package_check/blob/master/auto_build/chroot_ssh.sh

Correct or improve the documentation about the packaging of applications.

  • La documentation sur le packaging d’application a été écrite par des packageurs, qui n’ont bien évidemment pas la meilleur place pour se rendre compte de la complexité de celle-ci.
  • The documentation about the packaging of applications has been written by packagers, who obviously do not have the best place to realize the complexity of the packaging process.
  • We always need to keep this documentation up to date, and to make it as clear and simple as possible.
  • Feel free to contribute to the documentation, it is very important for other users.

Translate documentation into English/French

  • A large part of our documentation is only available in French, if you can write in English, all our non-French-speaking users will be very grateful if you complete the missing English documentation.

Write documentation on how to use an application

  • We try to make it possible to install and maintain applications that are not necessarily easy to implement. But we have no documentation on how to use these applications.
  • If you know how to use a packaged application for YunoHost, novice users might be happy to find documentation to help them discover how to use an application after its installation.
16 Likes

Bonjour @Maniack_Crudelis ,

Pour la mise à disposition d’un Raspberry Pi, comment ça se passe ?

  • récupération du script et lancer son exécution sur la base de la dernière image YunoHost pour Raspberry Pi avec règle NAT vers le port 22 du Raspberry Pi, ou bien idem (ou pas) sur la base de la dernière Raspbian ?
  • comment se font les échanges de clef ?
  • combien de temps doit il être mis à disposition ?

ppr

Autre question concernant la mise à disposition d’un RPi : Travaillez vous uniquement avec des RPi ou seriez vous intéressés par l’emploi d’autres SBC ? Je dois avoir un Orange Pi PC qui traine par exemple.

Hello @ppr

To lend some time of you raspi, it’s quite easy.
First, check if you have enough free space on your raspi, our test scripts need 6.5Go because of all the snapshots used during the process of testing an app.
Then git clone the repository https://github.com/YunoHost/CI_package_check, and execute the script auto_build/chroot_ssh.sh

Finally, nat the ssh port into your raspi.

That’s all on your side !

After that’s done, I’ll need some information to add you raspi to our infra.

  • A domain name to contact your raspi.
  • The ssh port you’ve chosen.
  • That’s all !!!

Your raspi have to be on raspbian or whatever distribution based on debian I guess. We know that our test scripts don’t work well if it’s not a debian based OS.

The public ssh key is already on the repository, you don’t have to bother with that.

And, about how long. There’s no rules, you do as you want. If you have to unplug your raspi, do it, it yours.
The thing is, when a test start, our script will choose randomly a raspi in its list, check the connection, and, if it works, check the load average to be sure that the chosen raspi is not already too busy.
So, if you have to unplug your raspi or to use it intensively, do it. It will not break the CI.

Hi @Kit

With our current architecture, using another type of machine would means add a new CI server to play with it. Which is not so convenient I agree…
I do not know what the real difference between an Orange PI and a Raspi, if there are. So I don’t know if we can include a Orange PI among Raspi without problem.

The thing is, we have to be sure that if a test succeed or fail on an Orange PI, it would be the same thing with a Raspi.

@Maniack_Crudelis ,

My IP adresse @ home is not quite static.
If i deploy YunoHost without creating a user and without any apps, just for the benefit of the IP check with a domain name from your infra : is it alright ?
I’ve got a Raspberry Pi 3B with a fast 16Go micro-SD and a good internet connexion.

Edit @Maniack_Crudelis if it’s ok with a YunoHost, i’ll install it an a Raspian Base in order to have all the requirements of a “Debian” installation.

ppr

I would even say, install YunoHost on your raspi, in order to have a domain from our infra for your dynamic IP. And, let’s install some applications and services for your own usage. It would be too bad to not use that YunoHost since it will be just here, waiting for that.

@Maniack_Crudelis ,

I’ve install Raspbian Lite, YunoHost, activate ssh, nat my gizmo-box, clone the repository and launch the script.
Everything Gone well until when the script can’t resolve http://httpredir.debian.org/debian stretch....
Except the httpredir.debian who’s looking strange, this shouldn’t resolve raspbian with a Raspberry Pi ?

ppr

pour

Did you retry a second time ?
I guess that failure happens either during the build of the lxc container or during the installation of YunoHost in it. In both case, it shouldn’t be cause by the script itself.
Except if all dns resolutions have failed during the creation of the container. In that case, you can change the value of dnsforce to 0 in the file /home/pcheck/CI_package_check/package_check/config or even the value of dns itself.

Hi @Maniack_Crudelis ,

No, i’ve not try a second time … it was (too) late :wink:
That’s it : the resolve screw-up in both case.
I’ll try once again this evening and if needed i’ll change the values as you said.
I’ll keep in touch :slight_smile:

ppr

Hi @Maniack_Crudelis ,

I have retry to run the script but it’s the same.
I haven’t any /home/pcheck/CI_package_check/package_check/config.
Only /home/pcheck/CI_package_check/package_check/sub_scripts/ or /home/pcheck/CI_package_check/package_check/.git

Edit @Maniack_Crudelis :
Obviously, this url is not correct/exploitable :

Err:1 Index of /debian stretch/main armhf perl-modules-5.24 all 5.24.1-3+deb9u4
Temporary failure resolving ‘httpredir.debian.org

Where and how can i change it into the scripts ?

ppr

Could you please give me a complete log ?

Done here from a Terminal’s copy-paste :
https://paste.yunohost.org/aduvepejef.erl

If you want a “real” log, where can i grab it ?

ppr

Ok, I got it.
When you reuse the script, the whole directory is removed, and so the config file of package check, so you can’t change the options.

I fixed that in the repository, so you can git pull or re-download CI_package_check.
If you want to change the option before retrying the script, you can do that:

sudo cp -a /home/pcheck/CI_package_check/package_check/config.modele /home/pcheck/CI_package_check/package_check/config
sudo nano /home/pcheck/CI_package_check/package_check/config

Good evening @Maniack_Crudelis ,

I’ve done it and add 0 to dnsforce.
Then, I’ve re-download and run the script without any message about things to download and failure resolving.
I’m going to do a private message and is there something to do to proctect the instance, the YunoHost instance ?

ppr

What do you mean by “something to do to protect the YunoHost instance” ?

Good morning @Maniack_Crudelis ,

It’s about to add protection about ssh if it’s necessary.
Otherwise, only http and https ports are NAT.
If it doesn’t bother, i’ll just install Logwatch in order to have a bit of supervision on this quite “blind” machine in one hand, and in the other hand run apt update && apt dist-upgrade && apt autoremove && apt autoclean.

ppr

Actually, if you’re not using this rpi for anything else than our CI. You don’t even need to NAT 80 and 443.

Also, if you want, you can restrict the users allowed to connect to ssh. https://yunohost.org/#/security
But, already, with the port you’ve chosen, there’s no so much risk of an attack by a bot.

@Maniack_Crudelis ,

Thanks you, The 80 and 443 ports were to add, in doubt, a LE Certificate.
Keep in touch if necessary, have a nice day & week-end :slight_smile:

ppr