From 865a55bf4c0b3e7d237ffa0d30cfb5c0f5b0f36c Mon Sep 17 00:00:00 2001 From: "Jonathan B. Coe" Date: Sat, 31 Jan 2026 10:31:35 +0000 Subject: [PATCH 1/3] Use uv for test-and-deploy workflow --- .github/workflows/test_and_deploy.yml | 38 ++++++++++++--------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index da4d0bdb3..2f4320203 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -20,10 +20,6 @@ jobs: uses: astral-sh/setup-uv@v5 with: python-version: ${{ matrix.python-version }} - - name: Install the latest version of uv. - uses: astral-sh/setup-uv@v5 - with: - python-version: ${{ matrix.python-version }} - name: Install non-python build dependencies run: | if [ "$RUNNER_OS" == "Linux" ]; then @@ -47,21 +43,21 @@ jobs: needs: test_repo runs-on: macos-latest steps: - - name: Setup Python 3.10 env - uses: actions/setup-python@v5 + - name: Install Python 3.10 with uv + uses: astral-sh/setup-uv@v5 with: python-version: '3.10' - - name: Ensure latest pip, wheel & setuptools - run: python -m pip install -q --upgrade pip wheel setuptools + - name: Install build dependencies + run: uv pip install build wheel setuptools - uses: actions/checkout@v4 - name: Generate sdist run: | - NLE_RELEASE_BUILD=1 python setup.py sdist + NLE_RELEASE_BUILD=1 python -m build --sdist - name: Install from sdist run: | SDISTNAME=$(ls dist/) MODE="[all]" - pip install "dist/$SDISTNAME$MODE" + uv pip install "dist/$SDISTNAME$MODE" - name: Run tests outside repo dir run: | REPONAME=$(basename $PWD) @@ -73,21 +69,21 @@ jobs: needs: test_repo runs-on: macos-latest steps: - - name: Setup Python 3.13 env - uses: actions/setup-python@v5 + - name: Install Python 3.13 with uv + uses: astral-sh/setup-uv@v5 with: python-version: 3.13 - - name: Ensure latest pip, wheel & setuptools - run: python -m pip install -q --upgrade pip wheel setuptools + - name: Install build dependencies + run: uv pip install build wheel setuptools - uses: actions/checkout@v4 - name: Generate sdist run: | - NLE_RELEASE_BUILD=1 python setup.py sdist + NLE_RELEASE_BUILD=1 python -m build --sdist - name: Install from sdist run: | SDISTNAME=$(ls dist/) MODE="[all]" - pip install "dist/$SDISTNAME$MODE" + uv pip install "dist/$SDISTNAME$MODE" - name: Run tests outside repo dir run: | REPONAME=$(basename $PWD) @@ -134,12 +130,12 @@ jobs: needs: build_wheels runs-on: ubuntu-latest steps: - - name: Setup Python 3.13 env - uses: actions/setup-python@v5 + - name: Install Python 3.13 with uv + uses: astral-sh/setup-uv@v5 with: python-version: 3.13 - - name: Ensure latest pip, wheel & setuptools - run: python -m pip install -q --upgrade pip wheel tools + - name: Install build dependencies + run: uv pip install wheel setuptools - uses: actions/checkout@v4 - name: Get wheels artifacts uses: actions/download-artifact@v4 @@ -150,7 +146,7 @@ jobs: run: | WHEELNAME=$(ls dist/*313*manylinux*x86_64*.whl) MODE="[all]" - pip install "$WHEELNAME$MODE" + uv pip install "$WHEELNAME$MODE" - name: Run tests outside repo dir run: | REPONAME=$(basename $PWD) From 8fbde3f396da8bcfd717bc0040d0a2f3ac2a6453 Mon Sep 17 00:00:00 2001 From: "Jonathan B. Coe" Date: Sat, 31 Jan 2026 10:37:37 +0000 Subject: [PATCH 2/3] Cleanup --- .github/workflows/test_and_deploy.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 2f4320203..d222a8b86 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -47,12 +47,10 @@ jobs: uses: astral-sh/setup-uv@v5 with: python-version: '3.10' - - name: Install build dependencies - run: uv pip install build wheel setuptools - uses: actions/checkout@v4 - name: Generate sdist run: | - NLE_RELEASE_BUILD=1 python -m build --sdist + NLE_RELEASE_BUILD=1 uv build --sdist - name: Install from sdist run: | SDISTNAME=$(ls dist/) @@ -62,7 +60,7 @@ jobs: run: | REPONAME=$(basename $PWD) pushd .. - python -m pytest --import-mode=append -svx $REPONAME/nle/tests + uv run pytest --import-mode=append -svx $REPONAME/nle/tests popd test_sdist_3_13: name: Test sdist on MacOS w/ Py3.13 @@ -73,12 +71,10 @@ jobs: uses: astral-sh/setup-uv@v5 with: python-version: 3.13 - - name: Install build dependencies - run: uv pip install build wheel setuptools - uses: actions/checkout@v4 - name: Generate sdist run: | - NLE_RELEASE_BUILD=1 python -m build --sdist + NLE_RELEASE_BUILD=1 uv build --sdist - name: Install from sdist run: | SDISTNAME=$(ls dist/) @@ -88,7 +84,7 @@ jobs: run: | REPONAME=$(basename $PWD) pushd .. - python -m pytest --import-mode=append -svx $REPONAME/nle/tests + uv run pytest --import-mode=append -svx $REPONAME/nle/tests popd - name: Save sdist if: ${{ always() }} @@ -134,8 +130,6 @@ jobs: uses: astral-sh/setup-uv@v5 with: python-version: 3.13 - - name: Install build dependencies - run: uv pip install wheel setuptools - uses: actions/checkout@v4 - name: Get wheels artifacts uses: actions/download-artifact@v4 @@ -151,7 +145,7 @@ jobs: run: | REPONAME=$(basename $PWD) pushd .. - python -m pytest --import-mode=append -svx $REPONAME/nle/tests + uv run pytest --import-mode=append -svx $REPONAME/nle/tests popd # Use prereleases to test publish the artefacts to testpypi From 20e37af5bee24325c443a29e644296d50726d0cd Mon Sep 17 00:00:00 2001 From: "Jonathan B. Coe" Date: Fri, 13 Feb 2026 22:33:22 +0000 Subject: [PATCH 3/3] Simplify pyproject.toml --- pyproject.toml | 8 ++++---- uv.lock | 47 ++++++++++++++++++----------------------------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 25b30538d..80a458a26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,12 +36,13 @@ nle-ttyplay = "nle.scripts.ttyplay:main" nle-ttyplay2 = "nle.scripts.ttyplay2:main" nle-read-tty = "nle.scripts.read_tty:main" -[dependency-groups] -dev = ["nle[dev]"] - [project.optional-dependencies] agent = ["torch>=1.3.1"] +all = ["nle[agent]"] + +[dependency-groups] dev = [ + "nle[agent]", "pre-commit>=2.0.1", "isort>=5.13.2", "cmake_format>=0.6.10", @@ -53,7 +54,6 @@ dev = [ "setuptools>=69.5.1", "ruff==0.4.3", ] -all = ["nle[agent,dev]"] [tool.black] line-length = 88 diff --git a/uv.lock b/uv.lock index 5fe140316..e1885eefb 100644 --- a/uv.lock +++ b/uv.lock @@ -466,23 +466,15 @@ agent = [ { name = "torch" }, ] all = [ - { name = "cmake-format" }, - { name = "isort" }, - { name = "memory-profiler" }, - { name = "pre-commit" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "ruff" }, - { name = "setuptools" }, - { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "sphinx-rtd-theme" }, { name = "torch" }, ] + +[package.dev-dependencies] dev = [ { name = "cmake-format" }, { name = "isort" }, { name = "memory-profiler" }, + { name = "nle", extra = ["agent"] }, { name = "pre-commit" }, { name = "pytest" }, { name = "pytest-benchmark" }, @@ -493,33 +485,30 @@ dev = [ { name = "sphinx-rtd-theme" }, ] -[package.dev-dependencies] -dev = [ - { name = "nle", extra = ["dev"] }, -] - [package.metadata] requires-dist = [ - { name = "cmake-format", marker = "extra == 'dev'", specifier = ">=0.6.10" }, { name = "gymnasium", specifier = "==1.2.0" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=5.13.2" }, - { name = "memory-profiler", marker = "extra == 'dev'", specifier = ">=0.60.0" }, - { name = "nle", extras = ["agent", "dev"], marker = "extra == 'all'" }, + { name = "nle", extras = ["agent"], marker = "extra == 'all'" }, { name = "numpy", specifier = ">=1.16" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=2.0.1" }, { name = "pybind11", specifier = ">=2.2" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=6.2.5" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=3.4.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = "==0.4.3" }, - { name = "setuptools", marker = "extra == 'dev'", specifier = ">=69.5.1" }, - { name = "sphinx", marker = "extra == 'dev'", specifier = ">=2.4.4" }, - { name = "sphinx-rtd-theme", marker = "extra == 'dev'", specifier = ">=0.4.3" }, { name = "torch", marker = "extra == 'agent'", specifier = ">=1.3.1" }, ] -provides-extras = ["agent", "dev", "all"] +provides-extras = ["agent", "all"] [package.metadata.requires-dev] -dev = [{ name = "nle", extras = ["dev"] }] +dev = [ + { name = "cmake-format", specifier = ">=0.6.10" }, + { name = "isort", specifier = ">=5.13.2" }, + { name = "memory-profiler", specifier = ">=0.60.0" }, + { name = "nle", extras = ["agent"] }, + { name = "pre-commit", specifier = ">=2.0.1" }, + { name = "pytest", specifier = ">=6.2.5" }, + { name = "pytest-benchmark", specifier = ">=3.4.1" }, + { name = "ruff", specifier = "==0.4.3" }, + { name = "setuptools", specifier = ">=69.5.1" }, + { name = "sphinx", specifier = ">=2.4.4" }, + { name = "sphinx-rtd-theme", specifier = ">=0.4.3" }, +] [[package]] name = "nodeenv"