* .gitignore: Ignore lib/MathJax symlink.
* README.org: Variety of changes, most notably using the README.org file as a literate source
file, which generates various development scripts and a Makefile. One such script is the
vendoring script, which is used to setup vendor symlinks.
* bootstrap.sh: Run emacs to tangle the literate README.org file, after which, run setup
vendored dependency links.
* guix.scm: Depend on js-mathjax, and vendor its built files into lib/MathJax before building
the site.
* pages/index.markdown: Remove stale reference to jquery-address.
* src/site.hs: Adjust hakyll rules to include MathJax from its now locally vendored location.
Additionally, do a tiny bit of rule tidying.
* templates/default.html: Remove stale reference to appcache. Remove reference to MathJax via
cdn and reference the now vendored variant.
* src/site.hs (siteRules): Refactor site building Rules into a new variable allowing for
reuse. Remove duplicate rules ()
(myConfig): Set deployCommand to something temporary.
(_devWatch): Entrypoint mean for use in development; it rebuilds the site builder, then
rebuilds the site.
* site (Removed file): Removed as it is no longer necessary. If additional cli functionality
is required, this can be done directly in haskell.
* guix.scm: Symlink 'site' now that it is no longer provided as a script.
(setenv): setenv only applies to the first (non-cached) run of `guix shell ...`,
because of this, remove setting PS1.
(native-inputs): Include development environment dependencies
* channels.scm (channel): Update rekahsoft-guix channel (noop, but originally updated while
looking at using overmind).
* bootstrap.sh: A script that generates various development scripts from the projects
README.org file.
* README.org: Cleanup and minor restructuring.
(Repository Structure): New (incomplete) section
(Prerequisites): New section
(Quick Start): New section
(Hakyll Site Commands): New section, with subheadings for various hakyll sub-commands.
(Makefile): New section; generates a makefile useful for development
* .gitignore: Ignore files generated by ./bootstrap.sh
* .ghci: ghci configuration file for hakyll development.
* .envrc: direnv configuration that loads a development environment for those who have
allowed it
* channels.scm (channel): Update all channels (guix and rekahsoft-guix)
* blog-rekahsoft-ca.cabal (cabal-version): Adjust base version now that ghc version 9.2.5 is in use; adjust clay to match ghc-clay package provided by updated guix channels.
* clay/*.hs: Adjust clay sources for api changes (swapping of function parameter order for
functions provided by the 'Clay.Border' module)
* infra/main.tf: See 93dfdb0 for more detail regarding the deployment issue. In addition,
have the deployment script correctly fail if any command does not succeed.
* infra/main.tf: This avoid a deployment issue after switching to guix for builds. Namely,
after to switching to guix to build this project, all built site files will have a datetime
of Unix epoch 0, which will then never be updated when running 'aws s3 sync ...' because the
files in the bucket were deployed before the site was built using guix, so they have newer
timestamps. Using the '--size-only' option improves this situation, in that files that are
modified and have a different size then the original will be updated, but files that are
changed but, by chance have the same size, will not be updated. Ironically, the update that I
discovered this on will end up resulting the same file sizes (changing the copyright date).
* templates/partials/analytics.html: Upon a client load of the website, determine which site
they are viewing (dev, staging, production) and setup plausible analytics appropriately.
* templates/default.html: Remove non-functional piwiki script reference and replace with a
reference to the new partial template for analytics
* src/site.hs (main): Remove remnant of application cache support
* js/default.js: Remove unneeded analytics code specific to piwiki. No additions were made here in support of plausible
* TODO.org: Mark associated TODO item DONE
* .drone.yml: Update file after updates to .drone.jsonnet
* .drone.jsonnet: Relocate guix_pipeline, guix_step, and deployStep to .drone/ci.libsonnet
library. Adjust existing function names to match new names in library.
Explicitly pass PLAN environment variable to ci.awsDeployStep for plan and apply stages
Adding the root user to /etc/passwd was only required when attempting to run guix shell
`-C|--container' commands, however guix shell containers will not work without privileged
docker, so when running via ci, we depend on the provided minimal guix container (build with
guix via 'guix pack -f docker ...').
* .drone.yml: This is now a generated file, based on .drone.jsonnet
* .drone.jsonnet: Add jsonnet drone pipeline configuration to replace existing .drone.yml
file. Note, currently this is used to manually generate .drone.yml. I need to determine how
to handle jsonnet libraries effectively as drone's built in jsonnet support does not allow
for importing libraries. In addition to converting to jsonnet, the pipeline was enhanced with
promotion and deployment functionality that has not yet been tested.
* manifest.scm: Removed in favor of guix.scm and the blog-rekahsoft-ca package definition within it
* guix.scm: Add environment variable PS1 that was formally set by manifest.scm
* README.org (Start Development Environment): Update guix commands used now that there is no top-level manifest.scm
* infra/variables.tf: Add new variable 'site_statis_files_dir'
* infra/manifest.scm: Add guix manifest that captures all tools required for deploying this site. This currently includes terraform, in use terraform providers, as well as awscliv2 which is used directly from a null resource
* infra/main.tf: Pin all provider version so they are available from the rekahsoft-guix channel
Remove the need for the template provider. It is still included as these changes need to be applied to all environments before it can be removed.
Remove TF-UPGRAGE-TODO's
Use the new variable 'site_static_files_dir' for the location of the static site files to be deployed
* channels.scm (channel): Add symlink to top-level channels file
* infra/Makefile (SELECTED_WORKSPACE): Removed the dependency on terraform
(clean): Add new PHONY target 'clean' which cleans up terraform temporary files
(workspace): Add new PHONY target 'workspace which switches to user provided ENV
* channels.scm (channel): Updated rekahsoft-guix channel
* README.org (Features): Updated sections on deployment