Hi Gabriel,

Gabriel Wicki <gabr...@erlikon.ch> writes:

> Aloha!
>
> Inspired by the `ChangeLog deprecation' and `minimal requirements for
> committing changes' discussions i came to the conclusion that to help
> possible newcomers with their on-boarding experience as contributors an
> important step would be to update our documentation to more concisely
> reflect how we do the things we do.
>
> Taking a closer look at the Contributing chapter in our reference manual
> i found it to have grown historically and in need of some tidying up.
> While it holds a vast treasure of important knowledge it could use some
> (re-)structuring, some updates and some extensions.
>
> I am looking forward to crafting patches in this regard, but first i
> would like to hear some opinions.
>
>
> My suggestions can be summarized as follows:
>
> 1. Hierarchical structure
>
> I think we should re-arrange the information in more easily digestible
> hierarchies.  Maybe 3 main points with a hierarchical depth of maybe
> three layers down?  See further down for a rough draft of headlines
>
> 2. Informal contributions
>
> I think it would be important to not only restrict the information there
> to coding and the related fields, but also towards other fields where a
> project like this needs contributions and voluntary work (summarized in
> the excerpt below).
>
> 3. Split general information from how-to guides
>
> I think the manual would profit if we split concrete how-to kind of
> information into sections in our cookbook (and cross-reference in both
> directions).  I guess for the cookbook a more-is-more approach is fine
> whereas in the manual a factually correct, important and concise
> information approach shall rule.
>
> 4. Project description
>
> I think it would serve the project as a whole and potential contributors
> specifically if we describe the organizational structure of this project
> so people can more easily find ways through the forest of people,
> instances, roles and responsibilities we have grown to represent and be
> more explicit on the opportunities for people to take responsibility for
> the project.
>
> I suggest to add a chapter to the manual that explains our
> Organizational Structure and add a section in the Contributing chapter
> on how to take responsibility.
>
> 5. Update and enrich information
>
> And finally i think we could update sections like `how to style commit
> messages' with our de-facto usage in Guix and add some examples, the
> Tracking Bugs and Changes seems to need some work so it reflects the
> Codeberg infrastructure, etc.
>
> Also, i think the Contributing chapter of our manual could be more
> specific in leading people up to the point where they can actually
> contribute.  This could entail:
>
>  - how to file bug-reports (specific example),
>  - how to reproduce a bug,
>  - how to bisect git history to find which commit introduced some bug,
>  - how to upgrade a package, etc.

I think that's a valuable effort, especially in light of the recent
change to Codeberg (so some documentation needs updating as you
mentioned).

>
>
> Below you can find a draft of the information hierarchy i imagine for
> the Contributing chapter.  I tried to take all the existing parts of the
> current contributing.texi into account and fill it into the hierarchy
> hoping to order information as naturally and logically as possible.
>
> --8<---------------cut here---------------start------------->8---
>
> * Informal Contributions
>
> Developing a project like GNU Guix is not only about hacking, coding and
> system administration - much time and effort is spent in informal
> contributions.
>
> Important informal contributions include:
>
>  - helping others via chat, mailing lists or on codeberg,
>  - reporting issues you find,
>  - testing stuff others ask you to,
>  - reviewing other contributions (and if you have specific interests:
>    join a team!),
>  - translating Guix to a language you know,
>  - discussing topics that are currently decided upon.
>
> Chime in, take part and share your experience - we are keen to get to
> know how we can enhance it further and welcome you on board!
>
> => link code of conduct and GNU Kind Communication Guidelines
>
> => expand or link some of the points above in their own dedicated
> section (e.g. leave Translating Guix as is, link to cookbook recipes on:
> how to review, how to report issues, etc)
>
> * Formal Contributions
>
> Formal contributions entail documentation as well as code and include
> pointers on where to find work to contribute as well as what to keep in
> mind when doing so.
>
> ** Necessary Knowledge for Formal Contributions
> Either here or with links to cookbook recipes (since all these points
> are how-tos).
>
> *** how to build guix
> **** how to run the test suite from checkout
> **** how to build the docs from checkout
> **** how to build a specific package from checkout
> **** how to build a system configuration from checkout
>
> *** Source Tree Structure
> Leave as is
>
> ** Writing Documentation
> Leave as is
>
> ** Hacking Guix
> How to contribute with code
>
> This section shall include:
>  - How to fix stuff
>    Where to find bugs to fix, approaches one can take to try to fix stuff.
>  - How to add a new package (incl. Packaging Guidelines)
>  - How to update package definitions
>    incl. what to look out for, leaf packages vs. dependencies, link to
>    commit message section

Maybe these guide-like example should appear in the Cookbook instead?

> ** Contribute formal work
> *** Notes on style and language
> Programming and natural language(s), paradigms, coding style, etc.
>
> *** Sharing your work
> Split up changes into logically connected commits / How to open a Pull
> Request / Which branch to merge changes into, etc.
>
> *** Commit messages
> Brief explanation of commit message style (reference to ChangeLog for
> historic reasons).
>
> Include examples for simple changes (new package, package version bump,
> new service, one or two other types of message).  The idea is that a
> newcomer can easily take inspiration from the manual and streamline
> their change set swiftly and easily
>
> * Take Responsibility
>
> Inviting section explaining how projects of this scale can only work
> when volunteers take responsibility (and how taking this responsibility
> yields valuable karma in the spirit of the GNU)
>
> Maybe with a short note on responsibility and trust?
>
> ** Partake in Decision Making
> Partake in discussions, explain GCD, etc.
>
> ** Join a Team
> What teams are for and how to join them (is there even a defined
> process?)
>
> ** Become a Committer
> How to get there and what this role entails
> --8<---------------cut here---------------end--------------->8---
>
>
> What do you think?

I like your initiative! I'd like to encourage you to persevere in this
effort and would be happy to review.

-- 
Thanks,
Maxim

Reply via email to