OpenGameData Project Conventions

A large project like OpenGameData, which contains many sub-projects across multiple programming languages, must have some conventions for cross-cutting issues. In this chapter, we will cover the standards for naming projects, structuring files, and conventions for technologies that are used across sub-projects, such as GitHub Actions.

Project Structures

Project Naming Conventions

Projects should follow the naming convention opengamedata-<subproject-name>, where <subproject-name> is a specific name for the sub-project. Multi-word project names should be dash-separated.

File and Folder Structures

For standard projects, the following top-level folder structure should be used:

  • .github

    • actions

      • Specific folders for project-specific custom actions

    • workflows

      • GitHub Actions workflow files

  • src

    • All folders and files containing source code for the project

  • tests

    • All folders and files containing unit and other tests for the project

  • .gitignore

  • LICENSE

  • README.md

Any other project management files, such as a pyproject.yml for Python library projects, should go in the top-level folder alongside the license and readme.