Skip to content

Commit b952005

Browse files
docs/contrib: expand the contribution guide.
Co-authored-by: AllysonProlisko <137875383+AllysonProlisko@users.noreply.github.com>
1 parent a127167 commit b952005

File tree

1 file changed

+45
-9
lines changed

1 file changed

+45
-9
lines changed

docs/contrib.rst

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,42 @@
11
Contributing
22
############
33

4-
The Amaranth project is a collective work of many people collaborating over the years, and it would not be the same without everyone's unique perspectives and contributions. We're glad that you are considering joining us! This page will guide you through some of the ways to contribute.
4+
The Amaranth project is the collective work of many people collaborating over the years, and it would not be the same without everyone's unique perspectives and contributions. We're glad that you are considering joining us! This page will guide you through some of the ways to contribute to the project.
55

6-
.. warning::
76

8-
This page is a work in progress!
7+
Filing problem reports
8+
======================
9+
10+
We would like Amaranth to be a best-in-class design tool, and hearing about issues people encounter while using it is crucial for improving it. While we do care a lot about correctness of the results, we care about the experience of using the tool just as much. Amaranth is meant to be a tool that is comfortable to use: with fewer sharp edges (no matter how much technological appeal they might have) and more signs and guardrails.
11+
12+
Please `report <issues>`_ any problems you encounter using Amaranth. To go beyond that: **If, while you are using Amaranth, you see an error message that is hard to understand or is misleading, please report it as a bug. Even (especially!) if you think you did something wrong.**
13+
14+
.. _issues: https://github.com/amaranth-lang/amaranth
15+
16+
When filing problem reports, please include the following information:
17+
18+
* The exact version of Amaranth, which you can find by running ``python -c "import amaranth; print(amaranth.__version__)"``;
19+
* A complete, self-contained, and minimal program that demonstrates the problem you are reporting (if minimizing it is not feasible, include the exact sequence of steps that reproduces the problem);
20+
* What you expected to happen, and what actually happened (where possible, including a verbatim copy of the log file or the terminal output);
21+
* For usability issues: your reason for filing the report (i.e. why did you expect a different behavior).
22+
23+
There is no expectation that a person who is filing a problem report should work on fixing it. Submitting an issue is a valuable contribution in its own right.
24+
25+
26+
Fixing problems
27+
===============
28+
29+
We appreciate that many in the open source community tend to see problems they encounter as opportunities to collaborate, and we enjoy seeing an issue being filed together with a pull request. However, unless you've contributed a few times before or the fix is truly trivial, **please discuss it with one of the maintainers first**. It doesn't take much time and it can sometimes save everyone a lot of unnecessary work and frustration.
30+
31+
32+
Proposing new features
33+
======================
34+
35+
Amaranth is a programming language and a toolchain, which is different from many other kinds of open source projects in that just about every part of it is, unavoidably, tightly coupled to every other one, the result being that seemingly obvious and apparently minor decisions can have dramatic consequences years later.
36+
37+
To make sure that new features undergo the scrutiny necessary for commitment to many years of support, and to make sure that everyone in the community who will be impacted by the changes has a chance to make their voice heard, **all substantial changes, including feature proposals, must go through a formal Request for Comments process**. The process, as well as the accepted proposals, are described `here <rfcs>`_. Typically, substantial changes are accepted after one to several rounds of community review achieve near-unanimous consensus.
38+
39+
.. _rfcs: https://amaranth-lang.org/rfcs/
940

1041

1142
Working with the codebase
@@ -15,7 +46,7 @@ Working with the codebase
1546
Preparing the environment
1647
-------------------------
1748

18-
The Amaranth codebase uses PDM_ to structure the development workflow. Please `install PDM`_ first. Once you have done so, run:
49+
The Amaranth codebase uses the PDM_ package and dependency manager to structure the development workflow. Please `install PDM`_ first and make sure you have downloaded the latest changes to the source files. Once you have done so, run:
1950

2051
.. _PDM: https://pdm.fming.dev/
2152
.. _install PDM: https://pdm.fming.dev/latest/#recommended-installation-method
@@ -77,12 +108,17 @@ Contributing your changes
77108

78109
.. todo::
79110

80-
Write this section
111+
This section is unfinished
81112

113+
At the moment there is no formal style guide for source code. We ask that you do your best effort to keep the code that you add or modify similar in style as well as in spirit to the code surrounding it, and we may ask you to change it during review. When in doubt, submit your code as-is.
82114

83-
Proposing new features
84-
======================
85115

86-
.. todo::
116+
Weekly meetings
117+
===============
118+
119+
Every Monday at 17:00 UTC on our IRC channel `#amaranth-lang at libera.chat <irc>`_ or Matrix channel `#amaranth-lang@matrix.org <matrix>`_ (the channels are bridged together: the same messages appear on both), Amaranth maintainers meet with users and contributors to discuss newly submitted Requests for Comments and any other issues that warrant broad attention. These public meetings are the primary avenue of decision making.
120+
121+
.. _irc: https://web.libera.chat/#amaranth-lang
122+
.. _matrix: https://matrix.to/#/#amaranth-lang:matrix.org
87123

88-
Write this section
124+
If you want to contribute, have interest in language evolution, or simply want to voice your view on proposed features, feel free to join these meetings; there is no formal attendance. If you are not able to make the time, the meetings are publicly recorded and the summaries are posted in the relevant GitHub thread after the meeting.

0 commit comments

Comments
 (0)