Skip to content

Contributing

We welcome all kinds of contributions to Kepler from the community!

For an in-depth guide on how to get started, checkout the Contributing Guide here.

Kepler Adopters

You and your organization are using Kepler? That's awesome. We would love to hear from you! 💚

The yaml file in here contains a list of all Kepler adopters. If you want to add your organization to Kepler's list, just add an entry there and once merged you will be found under Kepler Adopters.

Rendering Adopters

As part of adding an organization to the Kepler Adopters page, when data/adopters.yaml is updated, gomplate must be installed. The Kepler website uses it to render the Kepler Adopters page properly.

Note

These steps are only needed if data/adopters.yaml is updated as part of adding an organization to the Kepler Adopters page.

  1. Install pkgx

    curl -Ssf https://pkgx.sh | sh
    
  2. Install gomplate

    pkgx +gomplate.ca^v3.11.7
    
  3. Enter the output from the previous command to update PATH. Example:

    PATH="$HOME/.pkgx/gomplate.ca/v3.11.7/bin${PATH:+:$PATH}"
    
  4. Update adopters page using data from data/adopters.yaml

    gomplate -d adopters=./data/adopters.yaml -f templates/adopters.md -o docs/project/adopters.md
    

Adding Your Organization

To do so follow these steps:

  1. Fork the kepler-doc repository.
  2. Clone it locally with git clone https://github.com/<YOUR-GH-USERNAME>/kepler-doc.git.
  3. (Optional) Add the logo of your organization to docs/fig/logos. Good practice is for the logo to be called e.g. MY-ORG.png (=> docs/fig/logos/default.svg is the Kepler logo, it is used when no organization logo is provided.)
  4. Add an entry to the YAML file with the name of your organization, url that links to its website, and the path to the logo. Example:

        - name: Kepler
          url: https://sustainable-computing.io/
          logo: logos/kepler.svg
    
  5. Verify the Kepler Adopters page updated properly by running the following commands (see Install MkDocs for more details on how to preview the documentation from a build):

    mkdocs build
    mkdocs server
    
  6. When happy with the changes, add the changed files using git add -A and then commit using git commit -s -m "Add MY-ORG to adopters" (commit sign-off is required, see DCO of the kepler project).

  7. Push the commit with git push origin main.
  8. Open a Pull Request to kepler-doc

Documentation Translation

Kepler welcomes contributions to translate our documentation into different languages to make it accessible to a global community of developers and operators!

Translation Process Overview

Our documentation follows internationalization (i18n) conventions using language suffixes:

  • English (Original): docs/path/to/file.md
  • Chinese: docs/path/to/file.zh.md
  • Other languages: docs/path/to/file.[LANG_CODE].md

Getting Started with Translations

1. Use the AI Translation Agent

For efficient and accurate technical translations, we recommend using our specialized AI translation prompt. This ensures:

  • Technical accuracy - Preserves API names, commands, and code blocks
  • Consistent terminology - Maintains technical terms across documents
  • Proper formatting - Keeps markdown structure and syntax highlighting
  • Quality validation - Generates quality check reports

📋 Translation Agent Prompt: TRANSLATOR.md

2. Quality Assurance Process

Every translation should include a quality check report to validate accuracy:

Generated Files for Each Translation:

docs/path/to/file.md          # Original English
docs/path/to/file.zh.md       # Chinese translation
docs/path/to/file.zh-qc.md    # Quality check report

The quality check report (.zh-qc.md) contains:

  • Comparison between original and reverse-translated content
  • Technical accuracy assessment
  • Formatting and structure validation
  • Recommendation for approval/revision

3. Translation Guidelines

✅ DO:

  • Preserve all technical identifiers (API names, commands, URLs)
  • Maintain markdown formatting and code block syntax
  • Keep consistent terminology within and across documents
  • Include the statutory warning about AI translation
  • Generate quality check reports for validation

❌ DON'T:

  • Translate technical commands, API endpoints, or code snippets
  • Modify file paths, repository URLs, or external links
  • Change the document structure or heading hierarchy
  • Skip quality validation steps

4. Statutory Warning Requirement

All translated documents must include this warning at the beginning:

!!! warning "机器翻译声明"
    本文档由 AI 语言模型 (Claude) 从英文自动翻译而成。如发现翻译错误或不准确之处,请在 [Kepler 文档项目](https://github.com/sustainable-computing-io/kepler-doc/issues) 中提交 issue 报告问题。

Contributing Your Translation

Step-by-Step Process:

  1. Fork and Clone
git clone https://github.com/<YOUR-USERNAME>/kepler-doc.git
cd kepler-doc
  1. Create Translation Branch
git checkout -b translate-[language]-[document-name]
  1. Generate Translation
  2. Use the AI translation agent
  3. Follow the quality assurance process
  4. Ensure all files are generated (.zh.md + .zh-qc.md)

  5. Review and Test

mkdocs build
mkdocs serve

Preview your translations at http://localhost:8000

  1. Commit Changes
git add docs/path/to/file.zh.md docs/path/to/file.zh-qc.md
git commit -s -m "Add Chinese translation for [document-name]

- Translate docs/path/to/file.md to Chinese
- Include quality check report for validation
- Follow i18n conventions with .zh.md suffix"
  1. Open Pull Request
  2. Include both translation and quality check files
  3. Reference the quality check report findings in PR description
  4. Mention any technical terms that required special handling

Translation Priority

High Priority Documents:

  • Installation guides (docs/kepler/installation/)
  • Usage documentation (docs/kepler/usage/)
  • Configuration guides (docs/kepler-operator/)

Medium Priority:

  • Developer documentation (docs/kepler/developer/)
  • Architecture and design docs (docs/archive/design/)

Language Support

Currently supported languages:

  • 中文 (Chinese): .zh.md suffix

Want to add a new language?

  1. Check mkdocs.yml i18n configuration
  2. Open an issue to discuss language code and navigation structure
  3. Follow the same process with appropriate language suffix

Translation Maintenance

Translations should be updated when:

  • Original English documents are significantly changed
  • Technical APIs or commands are modified
  • New features are added that affect documented procedures

Pro tip: Watch the repository for changes to English files that have translations to stay up-to-date!

Getting Help


Thank you for helping make Kepler documentation accessible worldwide! 🌍

Copyright Contributors to the Kepler's project.

The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks, see Trademark Usage.