-
Notifications
You must be signed in to change notification settings - Fork 3
Definition of Done
Stephen Leach edited this page Sep 7, 2021
·
8 revisions
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
-
/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.
/bin/sh
gcc
corepop
- 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.
- 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
-
-
*.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
.
Get Started
Docker
Design
- Differences from FreePoplog
- Default for
$poplocal
- Design of the
Makefile
- Design of the
poplog
command tool - Design of the
VERSION
file
Background Info
Building Info
Contributor Info
Proposals