The templates
(express and vuejs template) and libraries
(shareable libraries and tools) projects referenced in the Recipes are based on the two principles below.
Your project is created using a template. If template updates, can upstream changes be merged with minimal impact on userland codes?
Yes and it is achieved through:
- Design
- Create folder where all userland code is placed, template must NOT touch this folder
- template should not to be part of a monorepo
- Process
- clone template and create remote called
upstream
pointing to template - update framework when necessary by merging
upstream
intoorigin
- clone template and create remote called
You have code shared between multiple projects and libraries. If the code is updated, is breaking dependents and dependencies avoidable?
Yes, based on the following principles:
- Shared libraries should be isolated and versioned. Use last-known-good version and update when ready
- Isolation and versioning can be extended to
types
(for Typescript) andcontracts
(for API) - minimize inter & nested dependencies, and technical debt
- git, github (for actions, secrets, etc) & IDE (e.g. vscode), Docker
- unix shell (Windows use git-bash or WSL2)
- node 20+ LTS & npm 9+ (npm i -g npm@latest
to update
)
Research and exploration Sandbox
Container setups for supporting apps for local development and testing docker-devenv/README.md
The docs folder contains useful information is in the midst of a major cleanup
bulk-git.sh
: script to diff, pull, push git (for repos inrecipies
)bulk-npm.sh
: script to check for and/or update dependencies in package.json (for repos inrecipies
)