Apache Geode Official Website

Clone this repo:
  1. 4f2f34b GEODE-10468 (#33) by Patrick Harmon · 12 hours ago master
  2. 203105f Match more like asf-template version of files (#32) by Patrick Harmon · 17 hours ago
  3. 0bc3a51 Merge pull request #31 from harmoncoffee/GEODE-10468 by Jinwoo Hwang · 18 hours ago
  4. c92a83a Update main -> master until we migrate branch names by Patrick Harmon · 18 hours ago
  5. 032f9f2 Modernizing Geode Initial Commits by Patrick Harmon · 4 days ago

Apache Geode Website and Project Documentation

This repository contains the source files for the Apache Geode project website.

The project website also contains the documentation for the Apache Geode project, as well as the Apache Geode community blog.

The project website is built with Docusaurus.

Local development

Prerequisites

  • Node.js: >= 18.0
  • Package Manager: pnpm

Installation

Install dependencies:

pnpm install

Starting the development server

Start a local development server with live reload at http://localhost:3000/:

pnpm start

Building and previewing

Generate static production assets and preview the build locally:

pnpm build
pnpm serve

Update procedures

Instructions for maintaining various components of the Apache Geode project website.

Updating the website

Source code for the Apache Geode project website is stored in the src folder.

Elements of the home page are stored in src/components/Homepage Features and src/pages. These pages are written in TypeScript.

Subpages are stored in src/pages. These pages are written in Markdown.

Page styles are stored as CSS files that reside in the same folders as the pages they style.

Updating the project documentation

Apache Geode project documentation is stored as Markdown files in the docs folder.

To edit project documentation:

  1. Locate the Markdown file for the document you wish to edit.
  2. Edit that file to introduce the changes you'd like to see.
  3. Open a pull request and ask a project maintainer to review it.

Versioning documentation

The project documentation is split into 3 distinct Docusaurus docs plugins/instances:

DocumentPlugin IDSource DirectoryVersion Command
Apache Geodedefaultdocs/geodepnpm docusaurus docs:version <version>
Geode Native C++geode_native_cppdocs/geode_native_cpppnpm docusaurus docs:version:geode_native_cpp <version>
Geode Native .NETgeode_native_dotnetdocs/geode_native_dotnetpnpm docusaurus docs:version:geode_native_dotnet <version>

Creating a new documentation version

To cut a new version for any of the 3 documents:

  1. Run the versioning command for the target document:

    • For Apache Geode:
      pnpm docusaurus docs:version <version>
      
      (or pnpm docusaurus docs:version:default <version>)
    • For Geode Native C++:
      pnpm docusaurus docs:version:geode_native_cpp <version>
      
    • For Geode Native .NET:
      pnpm docusaurus docs:version:geode_native_dotnet <version>
      

    This snapshots the current source directory and sidebar into versioned files:

    • Apache Geode: creates versioned_docs/version-<version>/, versioned_sidebars/version-<version>-sidebars.json, and updates versions.json.
    • Geode Native C++: creates geode_native_cpp_versioned_docs/version-<version>/, geode_native_cpp_versioned_sidebars/version-<version>-sidebars.json, and updates geode_native_cpp_versions.json.
    • Geode Native .NET: creates geode_native_dotnet_versioned_docs/version-<version>/, geode_native_dotnet_versioned_sidebars/version-<version>-sidebars.json, and updates geode_native_dotnet_versions.json.
  2. Add documentation variables for the new version in config/doc-vars/:

    • config/doc-vars/geode.ts for Apache Geode
    • config/doc-vars/cpp.ts for Geode Native C++
    • config/doc-vars/dotnet.ts for Geode Native .NET

    Add a new configuration block matching the version string (e.g. '1.15') containing version-specific tokens such as product_version, min_java_version, etc.

  3. Configure version metadata in docusaurus.config.ts (optional): Customize the version's label, banner, or behavior under the versions property of the corresponding docs plugin in docusaurus.config.ts:

    versions: {
      current: {
        label: 'Apache Geode (Next)',
      },
      '<version>': {
        label: 'Apache Geode <version>',
        banner: 'none',
      },
    }
    
  4. Editing versioned content:

    • Changes to the upcoming / unreleased version are made in docs/<document_folder>/.
    • Changes or backports to an already versioned release are made in the respective versioned directory (e.g., versioned_docs/version-<version>/, geode_native_cpp_versioned_docs/version-<version>/, or geode_native_dotnet_versioned_docs/version-<version>/).

Adding a blog post

Posts on the Apache Geode project blog are stored as Markdown files in the blog folder.

To add a new blog post:

  1. Create a new Markdown file in the blog folder. The filename should follow the convention YYYY-MM-DD-title-slug.md.
  2. Add the appropriate header to the top of the Markdown file. Use an existing blog post as a guide.
  3. If you're a new author, add your bio details to authors.yml.
  4. Compose your blog post, open a pull request, and ask a project maintainer to review it.

License

This project is licensed under the Apache License 2.0. See NOTICE for additional details.