#Sxmo: Simple X Mobile - Contributing
Project Overview | Documentation | Install Guide | User Guide | System Guide | Contributing | Images | Demo Video
Documentation (Development Version)
The Sxmo project from a development point of view is a combination of a few different components:
- sxmo-utils: A catchall repository for scripts, configuration files, and C programs that hold Sxmo together. This contains things like the modem scripts, menu scripts, screenlock program, setuid programs for controlling the PP LEDs, brightness, etc, and all other scripts.
- lisgd: A custom piece of software for gestures built from scratch for Sxmo
- Suckless forks: Forks of Suckless software which has been mobile optimized and designed to fit within the larger Sxmo project
- sxmo-image-builder: CI that builds images for the Pinephone on sr.ht infra via pmbootstrap
All of the Sxmo project source repositories can be viewed at:
Project source repositories
#Testing Nightly
We always need help testing the latest development version of sxmo.
To help test sxmo's latest development version, you can run sxmo_build_all.sh
from:
~mil/sxmo-build.
Please report bugs to the bug tracker or join us in irc for help.
#Submitting Bugs or Feature Requests
We use the bug tracker at:
https://todo.sr.ht/~mil/sxmo-tickets
Please search the existing tickets before submitting a new ticket.
You are free to put in feature requests here or pull tickets off here to get ideas for patches.
#Submitting Patches or General Discussion
We use a single mailing list for patch submission and discussion of the above subcomponents of the Sxmo project.
The mailing list is at:
https://lists.sr.ht/~mil/sxmo-devel
If you're new to development using git-send-email
don't be discouraged and please still contribute!
#Quick Start
- Change the default subject prefix from "PATCH" to "PATCH " by
running this command (only needed once).
$ git config --local format.subjectPrefix "PATCH <NAME-OF-REPO>"
If you wanted to submit a change for sxmo-utils, change <NAME-OF-REPO>
in the command above to sxmo-utils
.
- Rebase your commits on top of the latest
master
.
- Send the patch to the mailing list:
$ git send-email --to="~mil/sxmo-devel@lists.sr.ht" origin/master
Also, you can check out the guide at: https://git-send-email.io/ for a guided tutorial on using git-send-email.
#IRC Channel
Our IRC channel for general adhoc development discussion is:
#sxmo
on irc.oftc.net
#sxmo-offtopic
on irc.oftc.net
#Information for Maintainers
#Releases: Steps for cutting a new release of an Sxmo package
Steps:
- Tag the release in git (sxmo-utils, sxmo-dwm, etc.)
- Include the changelog in the tag message
- Send a pull request to pmaports to update the changed sxmo packages
- Send an email to the mailing list (sxmo-announce) containing atleast the following info:
- New Sxmo release will be available soon!
- Description of which repos have been updated (sxmo-utils, sxmo-dwm, etc.)
- A paragraph detailing major changes
- An Annotated Summary of Changes - Thank the contributors
- Description of breaking changes
- Where to get the new images or how to update from an existing release
- Any other pmos related issues (update-u-boot, updating modem firmware, etc.)
Notes on Package Versioning:
Versioning numbers for suckless forks follow the scheme: sucklessv.sxmov.
For example, with the dmenu fork, checkout 4.9 as upstream-4.9 and
commit new versions as 4.9.x; wherein x is the Sxmo version.
#Accepting a Patch
- Contributor submits a patch
- Maintainer A assign themselves to the patch and tests the patch
- If the patch passes testing, Maintainer A can ask Maintainer B if they're unsure about the code quality.
- Sign the commit with
git am -s
Note: Unless the change is trivial, the maintainer must send their
change to mailing list to be reviewed by another maintainer or a member
of the sxmo community
Notes on Stable Release Flow:
New releases must be in Alpine Edge for a certain amount of time for them to be accepted into postmarketOS's stable releases and service packs.
As such, the flow is as follows:
- Push new release to Alpine Edge (aports) unless the package is in pmaports
only (ie. ui packages)
- Wait for a postmarketOS stable or service pack release. When a new release of pmOS is imminent, copy APKBUILDS from aports into pmaports.