Development of the Shepherd is a volunteer effort and you can contribute: through code, documentation, user support, translation, or any other activity that helps users and contributors.
Getting in touch
The first way to get involved is by joining the project’s communication channels to learn about it and to help others. Communication channels for the Shepherd are those of the Guix project.
We pledge to make participation in the Shepherd and Guix projects a welcoming and harassment-free experience for all. By participating in discussions on these channels, you agree to follow the Code of Conduct of the Guix project.
The #guix
IRC channel on
Libera.Chat is a good place to
discuss informally any questions you may have about the Shepherd.
The guix-devel mailing list is used to discuss most aspects of the Shepherd, including development and enhancement requests.
Guix-commits receives notifications of commits to the version control repository.
Reporting bugs
Report bugs by email to the bug-guix mailing list, which has an associated issue tracker.
Make sure to include information about the Shepherd version you’re using, the operating system, and anything that can help reproduce the problem you observe.
Getting the code
Browse the source and get a copy of its Git repository:
git clone https://git.savannah.gnu.org/git/shepherd.git
guix git authenticate \
788a6d6f1d5c170db68aa4bbfb77024fdc468ed3 \
3CE464558A84FDC69DB40CFB090B11993D9AEBB5
The second command authenticates your Git checkout and installs Git hook
such that future uses of git pull
and git push
will automatically
authenticate new commits.
For additional information, see the project page at Savannah.
Setting up a development environment
The easiest way to set up a development environment once you have cloned the repository is with Guix, by running this command from the checkout:
guix shell -CP
From this development shell, run:
autoreconf -vfi
./configure && make && make check
You’re all set!
Or almost: for a pleasing development environment, we recommend (but do not require!) Emacs with Geiser, which will let you navigate the code, view on-line documentation, explore it through live programming, and more.
Proposing changes
The project welcomes modifications by all and everyone, under the same license as the Shepherd, the GPL (version 3 or any later version).
Currently, the preferred method to propose changes is by sending
patches by email to guix-patches@gnu.org
,
with Shepherd
in the subject. Patches are tracked on the Guix issue
tracker.
Check out the Guix coding style and documentation on service internals for guidelines.
Translating
Code is not the only way you can help: translation of user messages is another way to contribute that we value.
To contribute translations, see instructions at the Translation Project.
Organization
The Shepherd is organized as follows:
- Contributors send changes to the code (under the same license) or support the project in other ways.
- Developers, in addition to the above, have commit access and can commit or reject changes submitted by others, following an effort to reach consensus with both the contributor and other developers. They are responsible for processing bug reports and submitted changes.
- Maintainers (currently Ludovic Courtès) can appoint new developers and new maintainers when consensus exists among maintainers and developers for the new appointment.
Please reach out on the mailing list or IRC channels for any questions.