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/bashor/bin/shfor 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,curlandwget. - Prefer
curltowget.
python3(version 3.7+) for complex scripts andpipfor installing packages.- Any runtime tools, 'cos its a very short list.
Runtime Tools
/bin/shgcccorepop
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
tarwe all-xvfcCmkdirwe allow-pgrepwe allow-Rliv
Pop-11 Coding Standards
*.pfiles will include a final newline immediately before the end of file (i.e. line terminator). Required for good behaviour with VED.*.pfiles will begin withcompile_mode :pop11 +strictand 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.