This repository contains our webpage.
Every commit is directly pushed and available on https://creadur.apache.org/, as its deployment is done via asf.yaml.
In order to work with Creadur's git repositories some scripts expect that all projects are checked out in one directory. Thus you should have the following directory structure on your local box:
$ cd ~/myworkspace
$ ls -l
drwxrwxr-x 16 user user 4096 Okt 9 19:37 creadur-rat
drwxrwxr-x 13 user user 4096 Okt 9 20:28 creadur-site
drwxrwxr-x 10 user user 4096 Okt 9 18:25 creadur-tentacles
drwxrwxr-x 16 user user 4096 Okt 9 17:17 creadur-whisker
The current SNAPSHOT version of RAT can be found in rat100 and is generated manually.
RAT uses Jira to track issues of the currently planned release.
In order to sync the current webpage (taken from current SNAPSHOT) you need to run the following commands:
$ cd creadur-rat
$ mvn clean site:site site:stage
$ cd ../creadur-site
$ cp -rvf ../creadur-rat/target/staging/* ./rat/
Make sure to manually adapt download pages as they need to reference the current release and SNAPSHOT versions!
$ git commit -am "Update site build for RAT"
WARNING! This will sync the current master branch/SNAPSHOT version of the homepage if not run on the release branch
Have a look in RAT's buildtools folder if you want to generate a preview webpage.
Same, but:
$ cd creadur-tentacles
$ mvn clean site:site site:stage
$ cd ../creadur-site
$ cp -rvf ../creadur-tentacles/target/staging/* ./tentacles/
Make sure to manually adapt download pages as they need to reference the current release and SNAPSHOT versions!
$ git commit -am "Update site build for TENTACLES"
Have a look in TENTACLES' buildtools folder if you want to generate a preview webpage.
Same, but:
$ cd creadur-whisker
$ mvn clean site:site site:stage
$ cd ../creadur-site
$ cp -rvf ../creadur-whisker/target/staging/* ./whisker/
Make sure to manually adapt download pages as they need to reference the current release and SNAPSHOT versions!
$ git commit -am "Update site build for WHISKER"
Have a look in WHISKER's buildtools folder if you want to generate a preview webpage.
Due to problems when generating Javadoc do only use JDK16! Newer versions cannot generate the project's javadoc and run into an NPE during path traversal. This is documented in RAT-497 und reported upstream as a JDK bug.
It may happen that you need access to the original release candidate JARs in order to have all of the necessary test JARs to perform a site build, see RAT-341 for details.
As a workaround copy these files into your local .m2 repository as a deployment of an already released artifact is not possible. Run a site build afterwards:
$ mvn site:site site:stage
Generate the webpage from the release tag, e.g. RAT 0.17:
$ cd creadur-rat
$ git checkout apache-rat-project-0.17
$ .buildtools/generateStagingSiteInWebpageRepo
OR
$ mvn site:site site:stage
Verify contents under target/staging:
Make sure to manually verify download pages as they need to reference the current release and future SNAPSHOT versions!
$ git commit -am "Push new preview version of RAT 0.17"
Make sure that https://creadur.apache.org/rat/RELEASE_NOTES.txt does not yield a 404.
RAT's changelog consists of 2 versions:
Usually it helps to copy over the release-generated version into the subfolder ./rat of this project.
Make sure to generate a combined changelog that includes the most current release, available under relase-notes/rat.txt
The whole page can be started locally with the help of docker-compose and will provide the contents via http://localhost:8888 Depending on your docker version this means in the current repository:
$ docker-compose up
OR
$ docker compose up
You may need to configure shared paths from Docker -> Preferences... -> Resources -> File Sharing in order to mount your local files.
In order to prepare release documentation you may want to start the webpage locally and issue:
$ linkchecker http://localhost:8888/rat
$ linkchecker http://localhost:8888/rat100
to look for broken links automatically.
If you do not have a local linkchecker installed, you may use docker as well:
docker run --rm -it -u $(id -u):$(id -g) -v "$PWD":/mnt ghcr.io/linkchecker/linkchecker:latest --verbose -F text/utf8/mnt/linkcheck.txt index.html
Happy hacking :)