From 91ed6097bc0b9e86668c1cfd4dbd1cc05348d2cf Mon Sep 17 00:00:00 2001 From: Steven Palma Date: Fri, 1 Aug 2025 12:04:34 +0200 Subject: [PATCH] fix(ci): declare entrypoints + fix testing release (#1642) --- .github/workflows/release.yml | 9 +++++++-- src/lerobot/calibrate.py | 6 +++++- src/lerobot/find_cameras.py | 6 +++++- src/lerobot/find_port.py | 6 +++++- src/lerobot/record.py | 6 +++++- src/lerobot/replay.py | 6 +++++- src/lerobot/scripts/eval.py | 6 +++++- src/lerobot/scripts/train.py | 6 +++++- src/lerobot/setup_motors.py | 6 +++++- src/lerobot/teleoperate.py | 6 +++++- 10 files changed, 52 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 32c1c605..63d60f5d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,6 +19,11 @@ on: tags: - 'v*.*.*' # Trigger on tags like v0.1.0, v1.0.0 +# Sets up the environment variables +env: + UV_VERSION: "0.8.0" + PYTHON_VERSION: "3.10" + jobs: # This job builds the Python package and publishes it to PyPI build-and-publish: @@ -120,10 +125,10 @@ jobs: version: ${{ env.UV_VERSION }} python-version: ${{ env.PYTHON_VERSION }} - name: Install lerobot release - run: uv run pip install lerobot==${{ needs.build-and-publish.outputs.version }} # zizmor: ignore[template-injection] + run: uv run pip install "lerobot[all]==${{ needs.build-and-publish.outputs.version }}" # zizmor: ignore[template-injection] - name: Check lerobot version - run: uv run lerobot --version + run: uv run python -c "import lerobot; print(lerobot.__version__)" - name: Run end-to-end tests run: uv run make test-end-to-end diff --git a/src/lerobot/calibrate.py b/src/lerobot/calibrate.py index 1e8bf475..0dda80ba 100644 --- a/src/lerobot/calibrate.py +++ b/src/lerobot/calibrate.py @@ -82,5 +82,9 @@ def calibrate(cfg: CalibrateConfig): device.disconnect() -if __name__ == "__main__": +def main(): calibrate() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/find_cameras.py b/src/lerobot/find_cameras.py index be8f272e..8f88d310 100644 --- a/src/lerobot/find_cameras.py +++ b/src/lerobot/find_cameras.py @@ -286,7 +286,7 @@ def save_images_from_all_cameras( print(f"Image capture finished. Images saved to {output_dir}") -if __name__ == "__main__": +def main(): parser = argparse.ArgumentParser( description="Unified camera utility script for listing cameras and capturing images." ) @@ -313,3 +313,7 @@ if __name__ == "__main__": ) args = parser.parse_args() save_images_from_all_cameras(**vars(args)) + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/find_port.py b/src/lerobot/find_port.py index cf028250..babe0288 100644 --- a/src/lerobot/find_port.py +++ b/src/lerobot/find_port.py @@ -61,5 +61,9 @@ def find_port(): raise OSError(f"Could not detect the port. More than one port was found ({ports_diff}).") -if __name__ == "__main__": +def main(): find_port() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/record.py b/src/lerobot/record.py index d662efca..575fcb94 100644 --- a/src/lerobot/record.py +++ b/src/lerobot/record.py @@ -393,5 +393,9 @@ def record(cfg: RecordConfig) -> LeRobotDataset: return dataset -if __name__ == "__main__": +def main(): record() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/replay.py b/src/lerobot/replay.py index afe54d90..a9dceb74 100644 --- a/src/lerobot/replay.py +++ b/src/lerobot/replay.py @@ -112,5 +112,9 @@ def replay(cfg: ReplayConfig): robot.disconnect() -if __name__ == "__main__": +def main(): replay() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/scripts/eval.py b/src/lerobot/scripts/eval.py index 7c5aec48..6a6c02a2 100644 --- a/src/lerobot/scripts/eval.py +++ b/src/lerobot/scripts/eval.py @@ -501,6 +501,10 @@ def eval_main(cfg: EvalPipelineConfig): logging.info("End of eval") -if __name__ == "__main__": +def main(): init_logging() eval_main() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/scripts/train.py b/src/lerobot/scripts/train.py index f09d231a..235352cd 100644 --- a/src/lerobot/scripts/train.py +++ b/src/lerobot/scripts/train.py @@ -286,6 +286,10 @@ def train(cfg: TrainPipelineConfig): policy.push_model_to_hub(cfg) -if __name__ == "__main__": +def main(): init_logging() train() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/setup_motors.py b/src/lerobot/setup_motors.py index c54582a1..76cdca56 100644 --- a/src/lerobot/setup_motors.py +++ b/src/lerobot/setup_motors.py @@ -80,5 +80,9 @@ def setup_motors(cfg: SetupConfig): device.setup_motors() -if __name__ == "__main__": +def main(): setup_motors() + + +if __name__ == "__main__": + main() diff --git a/src/lerobot/teleoperate.py b/src/lerobot/teleoperate.py index 9836f139..3c72caf7 100644 --- a/src/lerobot/teleoperate.py +++ b/src/lerobot/teleoperate.py @@ -153,5 +153,9 @@ def teleoperate(cfg: TeleoperateConfig): robot.disconnect() -if __name__ == "__main__": +def main(): teleoperate() + + +if __name__ == "__main__": + main()