Setting up Securepub development is easy after prerequisites are installed.
Some of the commands below have triangles to the left. Clicking on those will reveal sample output from the command taken from a system running OSX 10.15.7
Choose a place for the worktree
This is the hardest step. To avoid thinking we'll keep things under /tmp/Securepub
.
% cd /tmp % mkdir Securepub % cd Securepub
git clone
We'll clone the repository to a directory called main
.
% git clone https://gitlab.com/securepub/r2401.git main
Cloning into 'main'... remote: Enumerating objects: 5402, done. remote: Counting objects: 100% (91/91), done. remote: Compressing objects: 100% (15/15), done. remote: Total 5402 (delta 83), reused 76 (delta 76), pack-reused 5311 Receiving objects: 100% (5402/5402), 2.55 MiB | 6.99 MiB/s, done. Resolving deltas: 100% (3313/3313), done.
cd and setup .envrc
% cd main % cp .envrc.default .envrc && direnv allow .
just setup copy
This will
- run pnpm install in the
work/
directory to install all necessary modules - compile Securepub's vendored json-to-elm ↗︎
- setup a python virtualenv for prettier ↗︎ and .sync.py
- run .sync.py to copy files from
src/
towork/
It's useful to perform these explicitly on first setup to verify the working environment is good. They aren't necessary after the environment is verified since the .justfile runs them on each build and on each start of interactive development.
% just setup copy
cd work && pnpm install Scope: all 22 workspace projects Done in 6.5s cd work/vendor-j2e && pnpm compile-cli> vendor-j2e@ compile-cli /private/tmp/Securepub/main/work/vendor-j2e > ../elm/node_modules/.bin/elm make src/CommandLine.elm --output ./cli.js Dependencies ready! Success! Compiled 2 modules. CommandLine ───> ./cli.js [ -e work/zola/static/_v1.2401_/jsp ] || just setup-jsp setting up venv Requirement already satisfied: pip in ./venv/lib/python3.11/site-packages Collecting pip Using cached pip-24.0-py3-none-any.whl (2.1 MB) Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 22.3.1 Uninstalling pip-22.3.1: Successfully uninstalled pip-22.3.1 Successfully installed pip-24.0 Collecting mergedeep Using cached mergedeep-1.3.4-py3-none-any.whl.metadata (4.3 kB) Collecting pylint Using cached pylint-3.1.0-py3-none-any.whl.metadata (12 kB) Collecting python-frontmatter Using cached python_frontmatter-1.1.0-py3-none-any.whl.metadata Collecting sh Using cached sh-2.0.6-py3-none-any.whl.metadata (3.3 kB) Collecting platformdirs>=2.2.0 (from pylint) Using cached platformdirs-4.2.0-py3-none-any.whl.metadata (11 kB) Collecting astroid<=3.2.0-dev0,>=3.1.0 (from pylint) Using cached astroid-3.1.0-py3-none-any.whl.metadata (4.5 kB) Collecting isort!=5.13.0,<6,>=4.2.5 (from pylint) Using cached isort-5.13.2-py3-none-any.whl.metadata (12 kB) Collecting mccabe<0.8,>=0.6 (from pylint) Using cached mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB) Collecting tomlkit>=0.10.1 (from pylint) Using cached tomlkit-0.12.4-py3-none-any.whl.metadata (2.7 kB) Collecting dill>=0.3.6 (from pylint) Using cached dill-0.3.8-py3-none-any.whl.metadata (10 kB) Collecting PyYAML (from python-frontmatter) Using cached PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl.metadata Using cached mergedeep-1.3.4-py3-none-any.whl (6.4 kB) Using cached pylint-3.1.0-py3-none-any.whl (515 kB) Using cached python_frontmatter-1.1.0-py3-none-any.whl (9.8 kB) Using cached sh-2.0.6-py3-none-any.whl (38 kB) Using cached astroid-3.1.0-py3-none-any.whl (275 kB) Using cached dill-0.3.8-py3-none-any.whl (116 kB) Using cached isort-5.13.2-py3-none-any.whl (92 kB) Using cached mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB) Using cached platformdirs-4.2.0-py3-none-any.whl (17 kB) Using cached tomlkit-0.12.4-py3-none-any.whl (37 kB) Using cached PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl (187 kB) Installing collected packages: tomlkit, sh, PyYAML, platformdirs, mergedeep, mccabe, isort, dill, astroid, python-frontmatter, pylint Successfully installed PyYAML-6.0.1 astroid-3.1.0 dill-0.3.8 isort-5.13.2 mccabe-0.7.0 mergedeep-1.3.4 platformdirs-4.2.0 pylint-3.1.0 python-frontmatter-1.1.0 sh-2.0.6 tomlkit-0.12.4 work/venv/bin/python3 work/.sync.py --force Copying files 00.test/_sync.conf: 01.welcome/_sync.conf: 02.how-it-works/_sync.conf: 03.design/_sync.conf: 04.development/_sync.conf: 05.deployment/_sync.conf: 06.about/_sync.conf: 07.license/_sync.conf: 10.create/_sync.conf: 11.profile/_sync.conf: 20.bundlelist/_sync.conf: 21.bundle/_sync.conf: 30.topiclist/_sync.conf: 31.topic/_sync.conf: 32.review/_sync.conf: 40.memberlist/_sync.conf: 41.member/_sync.conf: 60.join/_sync.conf: 61.signin/_sync.conf: elm/_sync.conf: ts/_sync.conf: workflow/_sync.conf: