You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contrib.rst
+45-9Lines changed: 45 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,42 @@
1
1
Contributing
2
2
############
3
3
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.
5
5
6
-
.. warning::
7
6
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.**
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/
9
40
10
41
11
42
Working with the codebase
@@ -15,7 +46,7 @@ Working with the codebase
15
46
Preparing the environment
16
47
-------------------------
17
48
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:
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.
82
114
83
-
Proposing new features
84
-
======================
85
115
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.
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