To ensure that the pokeys_py and related components are properly aligned with LinuxCNC builds, we need to create a consistent build and test process that integrates with the LinuxCNC environment. The goal is to ensure that all components (user-space, real-time, etc.) work seamlessly with LinuxCNC’s architecture and build system.
Tasks:
Set Up Build Environment:
Configure a Debian-based environment (preferably debian-latest) for development.
Install required dependencies for LinuxCNC and your project.
Ensure compatibility with LinuxCNC version 2.8.x and 2.9.x.
Refactor Code for Compatibility:
Refactor pokeys_rt, pokeys_py, and other components to follow LinuxCNC’s conventions.
Split the code into user-space and real-time components, ensuring that real-time modules adhere to real-time constraints.
Use LinuxCNC’s HAL interface to integrate with motion control components.
Create Modular CMakeLists or Makefiles:
Ensure that CMakeLists or Makefiles are modular and support building against LinuxCNC’s real-time and user-space libraries.
Align with LinuxCNC’s structure for user-space (uspace) and RT components (rt).
Provide Sample HAL and INI Files:
Create sample HAL and INI files to integrate your components with LinuxCNC.
Ensure that the HAL files expose all necessary pins, parameters, and signals.
Create CI/CD Pipeline for LinuxCNC Testing:
Set up a CI/CD pipeline that installs LinuxCNC in a Debian/Ubuntu runner and runs unit tests on the components.
Use a mocked environment to simulate PoKeys hardware and ensure test coverage for all components.
Ensure Compatibility with Multiple Versions of LinuxCNC:
Create branches to maintain compatibility with multiple LinuxCNC versions (e.g., v2.8, v2.9).
Update the repository regularly to stay in sync with LinuxCNC’s latest releases.
Document Build and Installation Process:
Provide clear documentation on how to build and install your project alongside LinuxCNC.
Ensure users understand how to integrate your components with their existing LinuxCNC setups.
Acceptance Criteria:
[ ] Build environment configured for LinuxCNC.
[ ] Code refactored to follow LinuxCNC conventions.
[ ] CMakeLists/Makefiles aligned with LinuxCNC’s build process.
[ ] CI/CD pipeline set up for automated testing with LinuxCNC.
[ ] Sample HAL and INI files provided.
[ ] Documentation updated for building and integrating with LinuxCNC.
Align with LinuxCNC Builds
Description:
To ensure that the
pokeys_py
and related components are properly aligned with LinuxCNC builds, we need to create a consistent build and test process that integrates with the LinuxCNC environment. The goal is to ensure that all components (user-space, real-time, etc.) work seamlessly with LinuxCNC’s architecture and build system.Tasks:
Set Up Build Environment:
debian-latest
) for development.Refactor Code for Compatibility:
pokeys_rt
,pokeys_py
, and other components to follow LinuxCNC’s conventions.Create Modular CMakeLists or Makefiles:
uspace
) and RT components (rt
).Provide Sample HAL and INI Files:
Create CI/CD Pipeline for LinuxCNC Testing:
Ensure Compatibility with Multiple Versions of LinuxCNC:
v2.8
,v2.9
).Document Build and Installation Process:
Acceptance Criteria: