(no commit message)
authorlkcl <lkcl@web>
Fri, 24 Jan 2020 08:03:38 +0000 (08:03 +0000)
committerIkiWiki <ikiwiki.info>
Fri, 24 Jan 2020 08:03:38 +0000 (08:03 +0000)
HDL_workflow.mdwn

index d44c7d723543b7e60a3e0ab9ec26a6ceb3219911..011eb3b6bd985586f6585f36d9e31479e31ff9dc 100644 (file)
@@ -184,11 +184,11 @@ regarding the above it is important that you read, understand, and agree to the
 
 for actual code development:
 
+* 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).
 * only commit code that has been tested (or is presently unused). other people will be depending on you, so do take care not to screw up.  not least because, as it says in the [[charter]] it will be your responsibility to fix.  that said, do not feel intimidated: ask for help and advice, and you'll get it straight away.
 * **do not commit autogenerated output**. write a shell script and commit that, or add a Makefile to run the command that generates the output, but **do not** add the actual output of **any** command to the repository.  ever.  this is really important.  even if it is a human-readable file rather than a binary object file.
 * if the command needed to create any given autogenerated output is not currently in the list of known project dependencies, first consult on the list if it is okay to make that command become a hard dependency of the project (hint: java, node.js php and .NET commands may cause delays in response time due to other list participants laughing hysterically), and after a decision is made, document the dependency and how its source code is obtained and built (hence why it has to be discussed carefully)
 * if you find yourself repeating commands regularly, chances are high that someone else will need to run them, too. clearly this includes yourself, therefore, to make everyone's lives easier including your own, put them into a .sh shell script (and/or a Makefile), commit them to the repository and document them at the very minimum in the README, INSTALL.txt or somewhere in a docs folder as appropriate.  if unsure, ask on the mailing list for advice.
-* 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).
 * edit files making minimal *single purpose* modifications (even if it involves multiple files. Good extreme example: globally changing a function name across an entire codebase is one purpose, one commit, yet hundreds of files. miss out one of those files, requiring multiple commits, and it actually becomes a nuisance).
 * prior to committing make sure that relevant unit tests pass, or that the change is a zero-impact addition (no unit tests fail at the minimum)
 * commit no more than around 5 to 10 lines at a time, with a CLEAR message (no "added this" or "changed that").