# HDL workflow
This section describes the workflow and some best practices for developing
-the Libre-SoC hardware. We use nmigen, yosys and symbiyosys, and this
+the Libre-SOC hardware. We use nmigen, yosys and symbiyosys, and this
page is intended not just to help you get set up, it is intended to
help advise you of some tricks and practices that will help you become
effective team contributors.
we will add an IRC channel at some point when there are enough people
to warrant having one.
+note also the lack of a "forum" in the above list. this is very deliberate. forums are a serious distraction when it comes to technical heavily goal-orientated development. recent internet users may enjoy looking up the "AOL metoo postings" meme.
+
+note also the complete lack of "social platforms". if we wanted to tell everybody how much better each of us are than anyone else in the team, how many times we made a commit (look at me, look at me, i'm so clever), and how many times we went to the bathroom, we would have installed a social media based project "management" system.
+
## Main contact method: mailing list
To respect the transparency requirements, conversations need to be
using phone at airport flight soon, v. quick reply: ....")
* Always trim context but do not cut excessively to the point where people
cannot follow the discussion. Especially do not cut the attribution
- ("On monday xxx wrote")
+ ("On monday xxx wrote") of something that you are actually replying
+ to.
* Use inline replies i.e. reply at the point in the relevant part of
the conversation, as if you were actually having a conversation.
* Follow standard IETF reply formatting, using ">" for cascaded
* plan in advance to write not just code but a full test suite for
that code. **this is not optional**. large python projects that do not
have unit tests **FAIL** (see separate section below).
+* Prioritise writing formal proofs and a single clear unit test that is more like a "worked example".
+ We receive NLNet funds for writing formal proofs, plus they
+cover corner cases and take far less time to write
### Commit tested or zero-dependent code
* There exist several nmigen examples which are also executable
<https://github.com/m-labs/nmigen/tree/master/examples/> exactly as
described in the above tutorial (python3 filename.py -h)
+* Robert Baruch's nmigen tutorials look really good:
+ <https://github.com/RobertBaruch/nmigen-tutorial>