Skip to content

refactor: modularize vinca recipe and pipeline generation - #135

Open
wolfv wants to merge 5 commits into
RoboStack:masterfrom
wolfv:refactor/modular-cleanup
Open

refactor: modularize vinca recipe and pipeline generation#135
wolfv wants to merge 5 commits into
RoboStack:masterfrom
wolfv:refactor/modular-cleanup

Conversation

@wolfv

@wolfv wolfv commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

This is a broad, behavior-preserving cleanup of vinca focused on making the codebase easier to understand and maintain.

  • reduce main.py from ~1,400 lines to ~700 lines
  • split configuration loading, platform detection, mutex recipes, recipe output generation, and source generation into focused modules
  • extract shared GitHub Actions pipeline helpers into pipeline.py
  • break the 347-line generate_output implementation into named, testable helpers
  • avoid mutating package metadata and pipeline stage inputs
  • fix transitive CI dependency traversal (including cycle handling)
  • remove the obsolete Azure pipeline generator and vinca-azure entry point
  • rename and modernize the packaged CI scripts used by the GitHub Actions generator
  • add import sorting and bugbear checks to Ruff
  • improve exception chaining for archive/package metadata failures
  • preserve compatibility entry points in vinca.main

Verification

  • 137 tests pass (up from 113 on master)
  • ruff check . passes
  • ruff format --check . passes
  • git diff --check passes
  • all refactored modules import successfully
  • vinca --help smoke test passes
  • representative normal and dummy recipe outputs were compared byte-for-byte as JSON against the implementation on master

@traversaro

Copy link
Copy Markdown
Member

This is quite nice, but I think it would be nice to test this in an actual robostack/ros-* repos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants