Definition of Done - GetPoplog/Seed GitHub Wiki
Our definition of done is the set of criteria we need to meet for completing a pull-request.
- Tested locally by the dev.
- CircleCI shows as green.
- Any significant chance is approved by another dev.
- Changes meet our standards - see below.
- Implementation uses our agreed toolset: note that build and runtime have different requirements
Build-time Tools
/bin/bash
or/bin/sh
for shell scripting (not/bin/csh
)- Widely available filters e.g.
cp
,tar
,chmod
,echo
,sed
,grep
, etc.- If it is in busybox it's fine.
- Also known to be allowed: GNU
make
,git
,sudo
,curl
andwget
. - Prefer
curl
towget
.
python3
(version 3.7+) for complex scripts andpip
for installing packages.- Any runtime tools, 'cos its a very short list.
Runtime Tools
/bin/sh
gcc
corepop
Coding
General
- We prefer spaces to tabs for layout in all contexts. This is because tab-indented text is displayed inconsistently on the system that we use. N.B. Makefiles are excluded because tabs/spaces are significant.
Shell Scripting
- All scripts will pass the shellcheck
- e.g. all shell variables will be quoted
- Scripts will use the long-options for all Unix commands unless the short-codes are explicitly allowed
tar
we all-xvfcC
mkdir
we allow-p
grep
we allow-Rliv
Pop-11 Coding Standards
*.p
files will include a final newline immediately before the end of file (i.e. line terminator). Required for good behaviour with VED.*.p
files will begin withcompile_mode :pop11 +strict
and assign the section immediately afterwards.- Autoloadable files will be accompanied by matching help files that document the autoloadable identifier.
- Autoloadable variables will be global, so that they work no matter what section they are loaded from.
- Library files will be accompanied by matching help files that document all the top-level identifiers.
- Library files will be idempotent, typically guarded by an
#_IF
.