Remove `poetry.lock` (#737)
Co-authored-by: Remi <remi.cadene@huggingface.co>
This commit is contained in:
parent
ddeade077e
commit
fe483b1d0d
|
@ -38,53 +38,7 @@ jobs:
|
||||||
run: python -m pip install "ruff==${{ env.RUFF_VERSION }}"
|
run: python -m pip install "ruff==${{ env.RUFF_VERSION }}"
|
||||||
|
|
||||||
- name: Ruff check
|
- name: Ruff check
|
||||||
run: ruff check
|
run: ruff check --output-format=github
|
||||||
|
|
||||||
- name: Ruff format
|
- name: Ruff format
|
||||||
run: ruff format --diff
|
run: ruff format --diff
|
||||||
|
|
||||||
|
|
||||||
poetry_check:
|
|
||||||
name: Poetry check
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Install poetry
|
|
||||||
run: pipx install "poetry>=2.1"
|
|
||||||
|
|
||||||
- name: Poetry check
|
|
||||||
run: poetry check
|
|
||||||
|
|
||||||
|
|
||||||
poetry_relax:
|
|
||||||
name: Poetry relax
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Install poetry
|
|
||||||
run: pipx install "poetry>=2.1"
|
|
||||||
|
|
||||||
- name: Install poetry-relax
|
|
||||||
run: poetry self add poetry-relax
|
|
||||||
|
|
||||||
- name: Poetry relax
|
|
||||||
id: poetry_relax
|
|
||||||
run: |
|
|
||||||
output=$(poetry relax --check 2>&1)
|
|
||||||
if echo "$output" | grep -q "Proposing updates"; then
|
|
||||||
echo "$output"
|
|
||||||
echo ""
|
|
||||||
echo "Some dependencies have caret '^' version requirement added by poetry by default."
|
|
||||||
echo "Please replace them with '>='. You can do this by hand or use poetry-relax to do this."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$output"
|
|
||||||
fi
|
|
||||||
|
|
|
@ -32,14 +32,11 @@ jobs:
|
||||||
files: docker/**
|
files: docker/**
|
||||||
json: "true"
|
json: "true"
|
||||||
|
|
||||||
- name: Run step if only the files listed above change
|
- name: Run step if only the files listed above change # zizmor: ignore[template-injection]
|
||||||
if: steps.changed-files.outputs.any_changed == 'true'
|
if: steps.changed-files.outputs.any_changed == 'true'
|
||||||
id: set-matrix
|
id: set-matrix
|
||||||
env:
|
|
||||||
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
run: |
|
||||||
echo "matrix=${ALL_CHANGED_FILES}" >> $GITHUB_OUTPUT
|
echo "matrix=${{ steps.changed-files.outputs.all_changed_files}}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
|
||||||
build_modified_dockerfiles:
|
build_modified_dockerfiles:
|
||||||
name: Build modified Docker images
|
name: Build modified Docker images
|
||||||
|
|
|
@ -7,7 +7,8 @@ on:
|
||||||
- "tests/**"
|
- "tests/**"
|
||||||
- "examples/**"
|
- "examples/**"
|
||||||
- ".github/**"
|
- ".github/**"
|
||||||
- "poetry.lock"
|
- "pyproject.toml"
|
||||||
|
- ".pre-commit-config.yaml"
|
||||||
- "Makefile"
|
- "Makefile"
|
||||||
- ".cache/**"
|
- ".cache/**"
|
||||||
push:
|
push:
|
||||||
|
@ -18,12 +19,16 @@ on:
|
||||||
- "tests/**"
|
- "tests/**"
|
||||||
- "examples/**"
|
- "examples/**"
|
||||||
- ".github/**"
|
- ".github/**"
|
||||||
- "poetry.lock"
|
- "pyproject.toml"
|
||||||
|
- ".pre-commit-config.yaml"
|
||||||
- "Makefile"
|
- "Makefile"
|
||||||
- ".cache/**"
|
- ".cache/**"
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
|
env:
|
||||||
|
UV_VERSION: "0.6.0"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pytest:
|
pytest:
|
||||||
name: Pytest
|
name: Pytest
|
||||||
|
@ -42,25 +47,19 @@ jobs:
|
||||||
sudo apt-get update && \
|
sudo apt-get update && \
|
||||||
sudo apt-get install -y libegl1-mesa-dev ffmpeg portaudio19-dev
|
sudo apt-get install -y libegl1-mesa-dev ffmpeg portaudio19-dev
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
# TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
cache: "poetry"
|
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot (all extras)
|
||||||
run: |
|
run: uv sync --all-extras
|
||||||
poetry install --all-extras
|
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest tests -v --cov=./lerobot --durations=0 \
|
uv run pytest tests -v --cov=./lerobot --durations=0 \
|
||||||
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
||||||
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
||||||
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
||||||
|
@ -80,24 +79,19 @@ jobs:
|
||||||
- name: Install apt dependencies
|
- name: Install apt dependencies
|
||||||
run: sudo apt-get update && sudo apt-get install -y ffmpeg
|
run: sudo apt-get update && sudo apt-get install -y ffmpeg
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
# TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot
|
||||||
run: |
|
run: uv sync --extra "test"
|
||||||
poetry install --extras "test"
|
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest tests -v --cov=./lerobot --durations=0 \
|
uv run pytest tests -v --cov=./lerobot --durations=0 \
|
||||||
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
||||||
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
||||||
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
||||||
|
@ -120,20 +114,21 @@ jobs:
|
||||||
sudo apt-get update && \
|
sudo apt-get update && \
|
||||||
sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
|
sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
cache: "poetry"
|
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot (all extras)
|
||||||
run: |
|
run: |
|
||||||
poetry install --all-extras
|
uv venv
|
||||||
|
uv sync --all-extras
|
||||||
|
|
||||||
|
- name: venv
|
||||||
|
run: |
|
||||||
|
echo "PYTHON_PATH=${{ github.workspace }}/.venv/bin/python" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Test end-to-end
|
- name: Test end-to-end
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -49,6 +49,10 @@ share/python-wheels/
|
||||||
*.egg
|
*.egg
|
||||||
MANIFEST
|
MANIFEST
|
||||||
|
|
||||||
|
# uv/poetry lock files
|
||||||
|
poetry.lock
|
||||||
|
uv.lock
|
||||||
|
|
||||||
# PyInstaller
|
# PyInstaller
|
||||||
# Usually these files are written by a python script from a template
|
# Usually these files are written by a python script from a template
|
||||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
|
|
@ -23,10 +23,6 @@ repos:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: [--fix]
|
args: [--fix]
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
- repo: https://github.com/python-poetry/poetry
|
|
||||||
rev: 2.1.0
|
|
||||||
hooks:
|
|
||||||
- id: poetry-check
|
|
||||||
- repo: https://github.com/gitleaks/gitleaks
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
rev: v8.23.3
|
rev: v8.23.3
|
||||||
hooks:
|
hooks:
|
||||||
|
|
|
@ -129,38 +129,71 @@ Follow these steps to start contributing:
|
||||||
|
|
||||||
🚨 **Do not** work on the `main` branch.
|
🚨 **Do not** work on the `main` branch.
|
||||||
|
|
||||||
4. for development, we use `poetry` instead of just `pip` to easily track our dependencies.
|
4. for development, we advise to use a tool like `poetry` or `uv` instead of just `pip` to easily track our dependencies.
|
||||||
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it (use a version >=2.1.0).
|
Follow the instructions to [install poetry](https://python-poetry.org/docs/#installation) (use a version >=2.1.0) or to [install uv](https://docs.astral.sh/uv/getting-started/installation/#installation-methods) if you don't have one of them already.
|
||||||
|
|
||||||
Set up a development environment with conda or miniconda:
|
Set up a development environment with conda or miniconda:
|
||||||
```bash
|
```bash
|
||||||
conda create -y -n lerobot-dev python=3.10 && conda activate lerobot-dev
|
conda create -y -n lerobot-dev python=3.10 && conda activate lerobot-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
To develop on 🤗 LeRobot, you will at least need to install the `dev` and `test` extras dependencies along with the core library:
|
If you're using `uv`, it can manage python versions so you can instead do:
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --extras "dev test"
|
uv venv --python 3.10 && source .venv/bin/activate
|
||||||
|
```
|
||||||
|
|
||||||
|
To develop on 🤗 LeRobot, you will at least need to install the `dev` and `test` extras dependencies along with the core library:
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
|
```bash
|
||||||
|
poetry sync --extras "dev test"
|
||||||
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv sync --extra dev --extra test
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also install the project with all its dependencies (including environments):
|
You can also install the project with all its dependencies (including environments):
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
```bash
|
```bash
|
||||||
poetry sync --all-extras
|
poetry sync --all-extras
|
||||||
```
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv sync --all-extras
|
||||||
|
```
|
||||||
|
|
||||||
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
||||||
|
|
||||||
Whichever command you chose to install the project (e.g. `poetry sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
Whichever command you chose to install the project (e.g. `poetry sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
||||||
|
|
||||||
The equivalent of `pip install some-package`, would just be:
|
The equivalent of `pip install some-package`, would just be:
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
```bash
|
```bash
|
||||||
poetry add some-package
|
poetry add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
When making changes to the poetry sections of the `pyproject.toml`, you should run the following command to lock dependencies.
|
using `uv`
|
||||||
```bash
|
```bash
|
||||||
poetry lock --no-update
|
uv add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
|
When making changes to the poetry sections of the `pyproject.toml`, you should run the following command to lock dependencies.
|
||||||
|
using `poetry`
|
||||||
|
```bash
|
||||||
|
poetry lock
|
||||||
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv lock
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
5. Develop the features on your branch.
|
5. Develop the features on your branch.
|
||||||
|
|
||||||
As you work on the features, you should make sure that the test suite
|
As you work on the features, you should make sure that the test suite
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
PYTHON_PATH := $(shell which python)
|
PYTHON_PATH := $(shell which python)
|
||||||
|
|
||||||
# If Poetry is installed, redefine PYTHON_PATH to use the Poetry-managed Python
|
# If uv is installed and a virtual environment exists, use it
|
||||||
POETRY_CHECK := $(shell command -v poetry)
|
UV_CHECK := $(shell command -v uv)
|
||||||
ifneq ($(POETRY_CHECK),)
|
ifneq ($(UV_CHECK),)
|
||||||
PYTHON_PATH := $(shell poetry run which python)
|
PYTHON_PATH := $(shell .venv/bin/python)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export PATH := $(dir $(PYTHON_PATH)):$(PATH)
|
export PATH := $(dir $(PYTHON_PATH)):$(PATH)
|
||||||
|
|
|
@ -58,7 +58,7 @@ RUN (type -p wget >/dev/null || (apt update && apt-get install wget -y)) \
|
||||||
RUN ln -s /usr/bin/python3 /usr/bin/python
|
RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||||
|
|
||||||
# Install poetry
|
# Install poetry
|
||||||
RUN curl -sSL https://install.python-poetry.org | python - --version 1.8.5
|
RUN curl -sSL https://install.python-poetry.org | python -
|
||||||
ENV PATH="/root/.local/bin:$PATH"
|
ENV PATH="/root/.local/bin:$PATH"
|
||||||
RUN echo 'if [ "$HOME" != "/root" ]; then ln -sf /root/.local/bin/poetry $HOME/.local/bin/poetry; fi' >> /root/.bashrc
|
RUN echo 'if [ "$HOME" != "/root" ]; then ln -sf /root/.local/bin/poetry $HOME/.local/bin/poetry; fi' >> /root/.bashrc
|
||||||
RUN poetry config virtualenvs.create false
|
RUN poetry config virtualenvs.create false
|
||||||
|
|
|
@ -36,9 +36,14 @@ Using `pip`:
|
||||||
pip install -e ".[dynamixel]"
|
pip install -e ".[dynamixel]"
|
||||||
```
|
```
|
||||||
|
|
||||||
Or using `poetry`:
|
Using `poetry`:
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --extras "dynamixel"
|
poetry sync --extras "dynamixel"
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `uv`:
|
||||||
|
```bash
|
||||||
|
uv sync --extra "dynamixel"
|
||||||
```
|
```
|
||||||
|
|
||||||
/!\ For Linux only, ffmpeg and opencv requires conda install for now. Run this exact sequence of commands:
|
/!\ For Linux only, ffmpeg and opencv requires conda install for now. Run this exact sequence of commands:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue