The current repository structure can be improved to enhance clarity, organization, and ease of navigation for developers and contributors. The goal is to structure the code in a way that is scalable and follows best practices for project management, particularly for projects integrating Python, C/C++, and real-time components.
Tasks:
Organize Code by Functionality:
Create separate directories for different components of the project (e.g., pokeys_py, pokeys_rt, tests, docs, etc.).
Move all relevant Python scripts to a dedicated pokeys_py/ directory.
Move all real-time components to a pokeys_rt/ directory.
Ensure that peripheral-related components (Digital IO, Analog IO, PEv2, etc.) are grouped within subdirectories for better organization.
Create a tests/ Directory:
Create a tests/ directory to house unit tests, integration tests, and other testing-related files.
Add subfolders for each module (pokeys_py, pokeys_rt, etc.) to organize tests accordingly.
Create a docs/ Directory:
Add a docs/ directory to store all project-related documentation (README, user guides, API references).
Move any existing documentation (e.g., markdown files, diagrams) into this directory.
Create a scripts/ Directory:
Move any scripts used for setup, configuration, or auxiliary tasks (like CI/CD configurations) into a scripts/ directory.
Standardize README Files:
Ensure that each major directory (pokeys_py, pokeys_rt, tests, etc.) contains a README.md explaining the contents of the folder.
The main README.md file should contain a high-level overview of the repository, with clear instructions on how to set up, run, and contribute to the project.
Add a LICENSE File:
Ensure the project has a LICENSE file in the root directory, specifying the project’s license.
Configure .gitignore Properly:
Ensure the .gitignore file includes the necessary exclusions for Python, C/C++, LinuxCNC build files, and any other generated files.
Improve Version Control:
Organize branches in a clear and consistent manner. Create branch naming conventions for features, bug fixes, and releases (e.g., feature/, bugfix/, release/).
Ensure the repository has a clear branching model (e.g., GitFlow or trunk-based development) for better team collaboration.
Update setup.py or CMakeLists.txt for Easier Build and Install:
For Python, ensure the setup.py script is up to date for easy package installation.
For C/C++ components, update CMakeLists.txt or equivalent build configuration files to ensure proper builds of the real-time components.
Add CONTRIBUTING Guidelines:
Create a CONTRIBUTING.md file that outlines the guidelines for contributing to the project, including code style, testing requirements, and how to submit pull requests.
Acceptance Criteria:
[ ] All project components are organized into dedicated directories (pokeys_py/, pokeys_rt/, tests/, docs/, scripts/).
[ ] README files are updated across the project.
[ ] A LICENSE file is present in the root directory.
[ ] The .gitignore file is updated to cover all file exclusions.
[ ] Branch naming conventions are documented and followed.
[ ] setup.py and CMakeLists.txt are configured for easier builds.
[ ] CONTRIBUTING.md file is available in the repository.
Improve Repository Structure
Description:
The current repository structure can be improved to enhance clarity, organization, and ease of navigation for developers and contributors. The goal is to structure the code in a way that is scalable and follows best practices for project management, particularly for projects integrating Python, C/C++, and real-time components.
Tasks:
Organize Code by Functionality:
pokeys_py
,pokeys_rt
,tests
,docs
, etc.).pokeys_py/
directory.pokeys_rt/
directory.Create a
tests/
Directory:tests/
directory to house unit tests, integration tests, and other testing-related files.pokeys_py
,pokeys_rt
, etc.) to organize tests accordingly.Create a
docs/
Directory:docs/
directory to store all project-related documentation (README, user guides, API references).Create a
scripts/
Directory:scripts/
directory.Standardize README Files:
pokeys_py
,pokeys_rt
,tests
, etc.) contains aREADME.md
explaining the contents of the folder.README.md
file should contain a high-level overview of the repository, with clear instructions on how to set up, run, and contribute to the project.Add a
LICENSE
File:LICENSE
file in the root directory, specifying the project’s license.Configure
.gitignore
Properly:.gitignore
file includes the necessary exclusions for Python, C/C++, LinuxCNC build files, and any other generated files.Improve Version Control:
feature/
,bugfix/
,release/
).Update
setup.py
orCMakeLists.txt
for Easier Build and Install:setup.py
script is up to date for easy package installation.CMakeLists.txt
or equivalent build configuration files to ensure proper builds of the real-time components.Add CONTRIBUTING Guidelines:
CONTRIBUTING.md
file that outlines the guidelines for contributing to the project, including code style, testing requirements, and how to submit pull requests.Acceptance Criteria:
pokeys_py/
,pokeys_rt/
,tests/
,docs/
,scripts/
).LICENSE
file is present in the root directory..gitignore
file is updated to cover all file exclusions.setup.py
andCMakeLists.txt
are configured for easier builds.CONTRIBUTING.md
file is available in the repository.References: