zarfld / LinuxCnc_PokeysLibComp

Pokeys comp for LinuxCnc using https://bitbucket.org/mbosnak/pokeyslib.git
MIT License
5 stars 0 forks source link

Align with LinuxCNC Builds #73

Open zarfld opened 1 day ago

zarfld commented 1 day ago

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:

  1. 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.
  2. 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.
  3. 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).
  4. 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.
  5. 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.
  6. 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.
  7. 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: