This page provides suggestions on how to contribute to Mobian.
Contributiong to Mobian
We are glad you found this page and are motivated to help out! This document will describe how you can contribute to the project.
You can also reach out to us using the following channels:
- IRC: #mobian-dev on OFTC (bridged to the Matrix room)
Please note the above channels are for development discussions **only**, non-developer users should join #mobian:matrix.org instead
You may have a great idea none of us thought of before. If you have an idea and want to contribute by it, tell us your thoughts!
I want to learn
We are happy to help mentor you and help you. But please understand that the Mobian devs are all volunteers, so we can only "teach you to fish", and expect a fair amount of self-motivation.
I don't have technical skills
You do not need technical skills to contribute to Mobian, and in fact, there are many very important ways you can help Mobian.
- Writing documentation
- Community engagement, such as:
- Helping out new users
- Help us run our Blog/Twitter/Fosstodon Channels
- Moderating our Matrix Channels
- Run Mobian and help report bugs
- Translating upstream software
I have basic tech skills
Please help us with:
Triaging issues on Gitlab
- Filing high quality issues upstream
I have development experience
There's plenty of work to be done improving upstream software used in Mobian (features, bug fixes, etc). A common need is to adapt application to the size of the screen.
Additonally, help is wanted to keep the kernels of the devices we support up to date.
I have Debian packaging experience
We always need help in:
- Maintaining packages (we always strive for a Debian first approach)
- Keeping device-specific kernels up-to-date
- Adding support for new devices
We understand packaging for Debian can seem daunting. Many of the Mobian developers are also on the ?DebianOnMobile team and maintain those packages. You can see examples of packaging here. The Debian Policy is a great reference is you have any specific questions on packaging. As a general introduction we refer you to the Debian wiki on packaging which has a guide, a tutorial and more general information about packaging.
If after this you are still having trouble, feel free to reach out in the Mobian Matrix Channel.
If you're looking for applications to package have a look at our wiki for inspiration. Please be aware that maintaining packages is usually a long term commitment and unless you're a Debian Developer already you will need to find a sponsor for your package (preferably up front).
See how things have been done in Salsa DebianOnMobile Team
Use Codesearch to search for examples (removing files, generating manpages, etc)
To contribute to Mobian you can help with the packages under https://salsa.debian.org/DebianOnMobile-team
Keep in mind that a lot of packaging can be language-specific rather than device-specific. In that case it might be useful to maintain the package with help from another team: see Teams.
In packaging, a lot of effort goes in reviewing/auditing upstream software for dubious or even malicious code; checking the copyright and licensing for violations; unbundling dependencies; testing the build process on multiple architectures; interacting with upstream developers to fix bugs or improve integration or security.
Configuring files in the debian/ directory is only a fraction of the effort. If you are not familiar with tooling and policies but have good knowledge of a language you can contribute a lot to Mobian: get in touch with the team and help with the activities listed above.
Packages under DebianOnMobile-team
Use https://salsa.debian.org/ for Debian packages
- Use git-buildpackage
- Do not set the distribution field in debian/changelog unless you are uploading the package
- Enable Salsa's CI
- Configure autopkgtest where useful
For simple packages requiring little patching:
- Use quilt or gbp-pq
- Use debian/watch and uscan to fetch tarballs instead of tracking upstream git repositories
For packages requiring complex patching and tracking of upstream repositories:
- Use gbp-pq
- Track upstream git repositories
# Install required tools apt-get install git-buildpackage pristine-tar lintian # Clone repo gbp clone <uri> # Import new releases with gbp import-orig -v --uscan