Skip to content

elan8/babel42

Repository files navigation

Babel42 — ROS2 Project Analysis Tool

Babel42 analyzes ROS2 workspaces: package discovery, manifest checks, launch file validation, and more. Use it to find issues in your ROS2 projects and integrate checks into CI.

License: MIT

Crate Structure

  • internals: Shared library for ROS2 project analysis (package discovery, package.xml parsing, workspace structure)
  • cli: Open-source CLI with analysis and check commands

Installation

git clone https://github.com/elan8/babel42.git
cd babel42
cargo install --path cli

Build and Test

cargo build
cargo test

Unit tests run without fixtures. For integration tests, fetch fixtures first (see Test Fixtures).

Usage

# Analyze a ROS2 workspace
babel42 analyze <path>

# Check for issues (CI-friendly)
babel42 check <path>

# Export project model to JSON
babel42 export <path> --format json

Or via cargo run:

cargo run -p cli -- analyze <path>
cargo run -p cli -- check <path>

CI Integration

Example GitHub Actions workflow:

- name: Babel42 check
  run: |
    cargo install --path cli
    babel42 check . --fail-on error

This repo includes .github/workflows/ci.yml: unit tests and fmt/clippy on every push/PR, integration tests nightly.

Test Fixtures

Fixture repos are gitignored. Clone them with scripts/fetch_fixtures.ps1 (Windows) or scripts/fetch_fixtures.sh (Linux/macOS). See tests/fixtures/README.md for the full list and integration test instructions.

Rules Reference

See RULES.md for all checks, severities, and fix hints.

About

ROS2 Project Analysis Tool

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors