As a programmer there were a lot of version/environment issues I faced while developing with Python, Node and other tools. Some examples:
Switching between different Python versions on Windows is difficult and requires third-party solutions e.g. Chocolatey
Switching between different Node versions also requires a third-party solution (nvm)
While pipenv, venv and poetry are ways to manage different Python environments, they still depend on the base Python version installed, which is another external dependency
Maintaining other dependencies such as CUDA drivers, ffmpeg etc.
Suppose you have a parent component A and a child B, and you want to run a useEffect hook on mount in the parent first, followed by another useEffect hook in the child.
For example, you have a child component which overrides the default styles of the parent on mount.
I use pdm as a Python package manager, which is something like npm.
I've found it much better in terms of updating dependencies (pdm update -u) and ensuring build reproducibility with the use of lockfiles.
Regarding automatic dependency updates and deployment:
- The main use of Github workflows is being able to automatically rebuild hosted web apps when dependencies are detected to have been changed.
- If the project is hosted locally, I can update dependencies myself with pdm update -u or ncu -u now and then.
- Dependabot doesn't support pdm lockfiles, and even if it did, when there is an update, I would have to access the terminal to rebuild the container, in which case I might have as well have did the update and tested it there and then myself.
--not-required ensures only top-level packages are printed.
In addition, I use == X.Y.* (aka compatible version specifiers) to pin the major and minor version of packages, while allowing for patch versions to be updated automatically each time the container is rebuilt. This prevents surprises during deployment (e.g. missing functionality in minor versions) while allowing bugfix versions to automatically be upgraded without hassle.
When the SSL certificate (provisioned by Github automatically for the custom domain you specified, via Let's Encrypt) expired on 18/12/20, I started getting errors from Cloudflare.
Looking deeper, I realized Github was having trouble provisioning the SSL certificate.
The solution was to disable Cloudflare proxying. Upon doing so, I was able to get an SSL certificate provisioned for the root domain, nicholaslyz.com.