This directory contains the sources/templates for generating the Apache Calcite website, calcite.apache.org. The actual generated content of the website is present in the calcite-site repository.
Site generation currently works best with ruby-2.7.4.
cd site
git clone https://gitbox.apache.org/repos/asf/calcite-site.git target
sudo apt-get install rubygems ruby2.7-dev zlib1g-dev
(linux)Use RubyInstaller to install rubygems as recommended at https://www.ruby-lang.org/en/downloads/
(Windows)sudo gem install bundler
gem install bundler
(Windows)bundle install
cd ..
./gradlew javadocAggregate
rm -rf site/target/javadocAggregate
rmdir site\target\javadocAggregate /S /Q
(Windows)mkdir site/target
mkdir site\target
(Windows)mv build/docs/javadocAggregate site/target
for /d %a in (build\docs\javadocAggregate*) do move %a site\target
(Windows)
Before opening a pull request, you can preview your contributions by running from within the directory:
bundle exec jekyll serve
- Open http://localhost:4000
- Install docker
- Install docker compose v2
cd site
docker compose run build-site
cd site
docker compose run generate-javadoc
You can preview your work while working on the site.
cd site
docker compose run --service-ports dev
The web server will be started on http://localhost:4000
As you make changes to the site, the site will automatically rebuild.
We want to deploy project changes (for example, new committers, PMC members or upcoming talks) immediately, but we want to deploy documentation of project features only when that feature appears in a release.
Calcite publishes the website automatically since CALCITE-3129,
you do not need to do anything but just merge your changes to the main
branch,
Github workflows will identify changes to website and automatically cherry-pick it to the site
branch,
compile and publish it to calcite-site repo.
We'll publish the website changes such as community member changes and new blogs immediately after merging.
The rules and scripts are in .github/workflows/publish-non-release-website-updates.yml
.
We identify release publishing by checking new release tags. If you are the Release Manager,
you only need to push the new tag 'calcite-x.y.z' to Calcite Github repo,
and the Github workflow will do all the rest.
The rules and scripts are in .github/workflows/publish-website-on-release.yml
.