The Apache Daffodil website is based off of the Apache Website Template.
The website is generated using Jekyll and some plug-ins for it.
To improve reproducibility and to minimize the effects and variability of a users environment, it is recommended that changes to the site repo be tested locally with a container. To do so, run one of the following commands.
With docker:
docker run -it --rm \
--publish 127.0.0.1:4000:4000 \
--volume="$PWD:/srv/jekyll" \
docker.io/jekyll/jekyll:4.2.0 \
jekyll serve --watch --source site
With rootless podman:
podman run -it --rm \
--publish 127.0.0.1:4000:4000 \
--volume="$PWD:/srv/jekyll" \
--env JEKYLL_ROOTLESS=1 \
docker.io/jekyll/jekyll:4.2.0 \
jekyll serve --watch --source site
Then open http://localhost:4000 to view the site served by the Jekyll container. Changes to files in the site directory are automatically rebuilt and served.
Once satisfied, create a branch and open a pull request using the Daffodil project Code Conttributor Workflow but using the website repo instead of the code repo.
Daffodil uses gitpubsub for
publishing to the website. The static content served via Apache must be served
in the content
directory on the asf-site
orphan branch. When changes
are merged into the main branch on GitHub, a GitHub action will automatically
run and perform the necessary steps to publish the site.