Thank you for your interest in contributing to this repository. Whether it is a bug report, new feature, or question, we value feedback and contributions from the community. Read this document before submitting an issue or pull request so that we have the information needed to review it.
In addition to this document, review our Code of Conduct. For code of conduct questions or comments, email oss@splunk.com.
Before contributing, you must sign the Splunk Contributor License Agreement (CLA).
Review your changes locally and submit them from a branch using a pull request. Use hugo server to preview content changes as you work.
The site requires Go because the theme is provided as a Hugo module. It also requires Hugo Extended 0.161.1 or later, as configured in hugo.toml. On macOS, install both tools with Homebrew:
brew install go hugoFor other operating systems, follow the official Go installation and Hugo installation instructions and select the extended edition of Hugo.
The release workflow installs yq itself, so it is not required for local authoring or builds.
git clone https://github.com/splunk/observability-workshop.git
cd observability-workshop
go mod download
hugo serverIn most cases, the default settings work well and Hugo is available at http://localhost:1313. To use another port, run hugo server --port 1314. Draft and future-dated content can be included with hugo server --buildDrafts --buildFuture.
The workshop uses the hugo-theme-splunk-workshop theme. See the authoring docs for content conventions.
For the shortcodes used in the theme, see the shortcodes reference.
Install optipng:
brew install optipngThen run the following command in the content directory. It runs one optimization process per CPU core on macOS:
find . -type f -iname "*.png" -print0 | xargs -0 -P "$(sysctl -n hw.ncpu)" -n 1 optipng -nb -ncOn Linux, replace $(sysctl -n hw.ncpu) with $(nproc).
Build a local version with:
hugo server --buildDrafts --buildFutureThis will start a local development server at http://localhost:1313.
To test a production build locally:
hugo --minify --destination "public" --baseURL "http://localhost:8000/observability-workshop" --noChmodThen serve it with devd (install with brew install devd):
devd /observability-workshop/=./public /=./publicand visit http://localhost:8000/ to inspect the site.
-
On GitHub, navigate to the main page of the repository.
-
Under your repository name, click Actions.
-
In the left sidebar, click Deploy Workshop to GitHub Pages.
-
Above the list of workflow runs, select Run workflow dropdown.
-
Choose the release type:
- minor - for incremental updates (e.g., 6.13 → 6.14)
- major - for breaking changes (e.g., 6.14 → 7.0)
-
Enter a meaningful, mandatory release reason. It is recorded in the workflow summary, release commit, tag, and GitHub release.
-
Click Run workflow.
The release will run through the CI/CD pipeline and be deployed to https://splunk.github.io/observability-workshop/ shortly after.