Applied, thanks!
[email protected], le lun. 11 août 2025 14:41:55 -0400, a ecrit:
> * contributing.mdwn: link to the developer-workflows page.
> * contributing/developer-workflows.mdwn: new file.
> * hurd/building.mdwn: tweaked some commands.
> ---
> contributing.mdwn | 6 ++
> contributing/developer-workflows.mdwn | 110 ++++++++++++++++++++++++++
> hurd/building.mdwn | 10 ++-
> 3 files changed, 123 insertions(+), 3 deletions(-)
> create mode 100644 contributing/developer-workflows.mdwn
>
> diff --git a/contributing.mdwn b/contributing.mdwn
> index 6666e242..ed39344b 100644
> --- a/contributing.mdwn
> +++ b/contributing.mdwn
> @@ -242,6 +242,12 @@ After you have a Hurd vm set up and running:
> * Start hacking.
> * For shutting down, use `reboot`, then press `c` in grub and issue halt (to
> avoid filesystem corruption). Adding `--no-reboot` to the qemu line should
> help, too.
>
> +<a id="developer-workflows" name="developer-workflows"></a>
> +## Developer Workflows
> +
> +You might want to take a look at our [[developer workflow
> +recommendations|contributing/developer-workflows]].
> +
> ---
> <a name="hurd_on_modern_microkernel"></a>
> # Design / Research: GNU Hurd on a Modern Microkernel
> diff --git a/contributing/developer-workflows.mdwn
> b/contributing/developer-workflows.mdwn
> new file mode 100644
> index 00000000..6e94661a
> --- /dev/null
> +++ b/contributing/developer-workflows.mdwn
> @@ -0,0 +1,110 @@
> +[[!meta copyright="Copyright © 2024 Free Software Foundation, Inc."]]
> +
> +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
> +id="license" text="Permission is granted to copy, distribute and/or modify
> this
> +document under the terms of the GNU Free Documentation License, Version 1.2
> or
> +any later version published by the Free Software Foundation; with no
> Invariant
> +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
> license
> +is included in the section entitled [[GNU Free Documentation
> +License|/fdl]]."]]"""]]
> +
> +[[!meta title="Developer Workflows"]]
> +
> +[[!toc levels=2]]
> +
> +Contributing to a free software project for the first time, can be a
> +little overwhelming. There's lots of tools that can help you
> +contribute: autotools,
> +[[gdb|https://www.sourceware.org/gdb/documentation/]],
> +[[git|https://git-scm.com/docs/user-manual]], handling lots of email
> +from mailing lists, text editors, etc. Don't try to immediately
> +master everything! You have time to figure it all out! Learn a
> +little bit and go from there. To help you in that process, this is a
> +quick guide to get you started contributing to the Hurd:
> +
> +---
> +
> +<a id="sending-patches" name="sending-patches"></a>
> +# Sending Patches
> +
> +The easiest way to send patches is with `git send-email`.
> +[[https://git-send-email.io/]] will get you up and running with
> +sending patches really quickly!
> +
> +To email your most recent change, you can use `git send-email` like
> +so:
> +
> + $ git send-email -1 [email protected]
> +
> +Where `-1` means sending the current (latest) commit; you can do more
> +than 1 of course. You can do multiple `--to`'s, if you want to send
> +the patch to multiple lists (e.g. both to libc-alpha and bug-hurd, for
> +glibc patches), as well as `--cc` to cc specific people. It is a good
> +idea to cc the people who wrote or last changed the part of code
> +you are changing.
> +
> +If you add `--rfc`, the generated subject line will have [RFC PATCH]
> +instead of [PATCH], which is roughly analogous to WIP MRs on GitLab or
> +Draft PRs on GitHub, which means that you want to gather feedback, but
> +don't expect the patches to merged as-is. If you post a modified
> +version (aka a re-roll) of your patch (set), add -v2 (or -v3, -v4
> +etc), which will result in e.g. [PATCH v2].
> +
> +When posting a larger patch series, you might want to generate the
> +patches and send them in two distinct steps. For this, you can use git
> +format-patch (with pretty much all the same options); that will
> +generate a bunch of text files in your cwd that you can edit with your
> +favorite text editor.
> +
> + $ git format-patch -4 [email protected] \
> + --cover-letter [email protected]
> + $ git send-email *.patch
> +
> +It's oftentimes a good idea to give an overview of a patch series; for
> +this you use `--cover-letter`, which will generate a dummy patch number
> +0, which you can then write your description over.
> +
> +<a id="using-git" name="using-git"></a>
> +# Using Git
> +
> +Git can be a little tricky to use, if you are not used to it.
> +
> + $ git clone https://salsa.debian.org/hurd-team/hurd.git
> + $ cd hurd
> + $ # make a change to file
> + $ git add FILENAME
> + $ git commit -m 'trans/hello.c: Fixed a typo in a comment.'
> +
> +You should probably read some of the documentation from
> +[git-scm.com](https://git-scm.com/doc). `man git` is another good
> +resource.
> +
> +<a id="text-editors" name="text-editors"></a>
> +# Using Emacs' Magit
> +
> +The git command line is fine enough, but Emacs' magit mode makes using
> +git much easier (my opinion, obviously). With Magit, you can
> +trivially re-order commits, easily reword commit messages, commit a
> +change to an old commit (that is not HEAD), commit only portions of a
> +file, squash commits togethor, etc. Magit is probably one of the
> +easiest ways to work with git. You could code with any other editor,
> +but just use Emacs to handle your git workflow.
> +
> +With magit, it is easy to create patches via highlighting one or more
> +commits, and one can then type "W" followed by "c". I personally,
> +output said patches to the $hurd-src/patches directory. Then I can
> +send my patches to the mailing list via:
> +
> + $ cd $hurd-src/patches
> + $ git send-email [email protected] .
> +
> +# Using vim-figitive
> +vim users can use vim-fugitive, which is similiar to Magit.
> +
> +# Develop the Debian way
> +
> +You can develop the GNU/Hurd via Debian GNU/Hurd. This [Hurd wiki
> +page](https://www.debian.org/ports/hurd/hurd-devel-debian) has more
> +information.
> +
> +This page describes how to [[build|hurd/building]] the hurd.
> diff --git a/hurd/building.mdwn b/hurd/building.mdwn
> index ea3213e5..0e25cf53 100644
> --- a/hurd/building.mdwn
> +++ b/hurd/building.mdwn
> @@ -25,7 +25,7 @@ dependencies and additional packages that are specified by
> the source hurd
> package:
>
> # apt install build-essential fakeroot
> - # apt build-dep hurd
> + # apt build-dep -y hurd gnumach
>
> ## ... on non-Debian systems
>
> @@ -41,7 +41,11 @@ git](http://savannah.gnu.org/git/?group=hurd):
> ... or (if you are working on a Debian system) the ones that are used for the
> [current Debian hurd
> package](http://packages.debian.net/source/unstable/hurd):
>
> - $ apt source hurd
> + $ git clone https://salsa.debian.org/hurd-team/hurd.git
> +
> +Or you could use apt source
> +
> + $ apt source hurd
>
> Please see the Debian [[FAQ]] before using `apt source`.
>
> @@ -60,7 +64,7 @@ If you want to work on the sources before building them,
> it's advisable to
> first make sure that patches that the Debian hurd package additionally
> contains
> are applied:
>
> - $ dh_quilt_patch
> + $ dh_quilt_patch
>
> Then edit and change whatever files you want and finally start the build
> process with
> --
> 2.50.1
>
>
--
Samuel
/*
* Oops. The kernel tried to access some bad page. We'll have to
* terminate things with extreme prejudice.
*/
die_if_kernel("Oops", regs, error_code);
(From linux/arch/i386/mm/fault.c)