Skip to content

CollaborativeStateMachines/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Development Guidelines

1. Languages & Build Tools

  • Primary Language: Kotlin (built with Gradle using Kotlin DSL).
  • Secondary Language: Python (restricted to small scripts or lightweight web services).
  • Fallback: Follow canonical language guidelines (e.g., Pkl formatter for Pkl). Match surrounding code style.

2. Code Quality & Formatting

  • Formatters: Kotlin must use ktfmt (GoogleStyle). Python must use black.
  • Enforcement: GitHub Actions CI pipelines must fail on unformatted code.
  • Documentation: Write self-documenting code. Use KDoc for Kotlin.

3. Testing

  • Requirement: Unit tests are mandatory for all components.
  • Enforcement: GitHub Actions CI pipelines will automatically execute tests on all pull requests. Builds will fail if tests do not pass.

4. Repository Structure & Execution

  • Required Files:
    • README.md: Must contain repository intent and comprehensive usage instructions.
    • ATTRIBUTIONS.md: Must list third-party libraries and author information.
  • Portability: Projects must be entirely self-contained.
  • Docker: Runnable projects must have a GitHub Actions CI pipeline that automatically produces a Docker image.

5. Git & Contribution Workflow

  • Versioning: All releases and tags must strictly adhere to Semantic Versioning (SemVer).
  • Commits: Strictly follow Conventional Commits. GitHub Actions CI linting will fail on invalid messages.
  • Branching: Main repositories are restricted to develop, main/master, and release branches.
  • Pull Requests (Stabilized Repos):
    • All contributions must be PRs originating from a fork and targeting the develop branch.
    • Use the mandatory PR template.
  • Code Review Requirements: Pull requests require at least one approval from an authorized reviewer before merging is permitted.
  • Issues: Report via GitHub issues strictly using the issue template.

6. Grid'5000 Deployments

  • Tooling: Python deployment scripts utilizing EnOSLib are absolutely required.
  • Reproducibility: Zero hidden information is permitted. Anyone must be able to reproduce the results exactly using the provided deployment files.

7. Generative AI

  • Policy: Discouraged. Only use AI tools if you possess a deep understanding of the generated output and assume complete responsibility for the code.

About

No description, website, or topics provided.

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors