Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
188cf58
Merge turbostream (vcha/turbostream) into 2.0_v2
eugenevinitsky Mar 31, 2026
99d6d47
Add cluster configs from 3.0, update map_dir for turbostream
eugenevinitsky Mar 31, 2026
e03c848
Add MPLCONFIGDIR to scratch cache exports in submit_cluster.py
eugenevinitsky Mar 31, 2026
b0d6294
Add --wandb-name argument support to pufferl.py
eugenevinitsky Mar 31, 2026
db84939
Add visualize.c from turbostream (was missed in initial merge)
eugenevinitsky Mar 31, 2026
bbd8d77
Fix visualize.c struct fields to match turbostream drive.h
eugenevinitsky Mar 31, 2026
fc54f7c
Fix distance_since_spawn: accumulate sim_speed * dt each step
eugenevinitsky Mar 31, 2026
6d4cd71
Add missing import pufferlib.utils in pufferl.py
eugenevinitsky Mar 31, 2026
4806ad5
Auto-discover map files for rendering instead of using map_%03d.bin f…
eugenevinitsky Mar 31, 2026
91aa2c1
Point render_map at actual Carla Town01 binary
eugenevinitsky Mar 31, 2026
41cba0f
Fix formatting (ruff) and relax matplotlib pin
eugenevinitsky Mar 31, 2026
b1e529d
Restrict clang-format hook to C/C++ files only
eugenevinitsky Mar 31, 2026
baa3fff
Fix render pipeline: pass weights via --policy-name, use absolute out…
eugenevinitsky Mar 31, 2026
dbb7c43
Fix stale expected_weights_path ref, add visualize stderr logging
eugenevinitsky Mar 31, 2026
51f9722
Fix visualize build: add include guards to drive.h, add drive.h inclu…
eugenevinitsky Mar 31, 2026
7fb53ad
Fix visualize: default to 32 agents, pass missing config fields
eugenevinitsky Mar 31, 2026
6d99aa8
Make symlog reward transform optional, off by default
eugenevinitsky Apr 1, 2026
5967260
Rewrite drivenet.h to match turbostream architecture, fix rendering
eugenevinitsky Apr 1, 2026
a4a1cee
Fix ini parser: return 1 (skip) for unknown sections instead of 0 (er…
eugenevinitsky Apr 1, 2026
897997b
Warn on unknown keys in [env] section, skip other sections silently
eugenevinitsky Apr 1, 2026
5104a9d
Build visualize with fast mode (no ASAN), fix ini parser for non-env …
eugenevinitsky Apr 1, 2026
6e40e7b
Increase render timeout from 120s to 600s
eugenevinitsky Apr 1, 2026
e84c9a6
Check if video files exist regardless of exit code for wandb logging
eugenevinitsky Apr 1, 2026
c3f3082
Always log visualize exit code and output on non-zero return
eugenevinitsky Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/perf-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: perf-ci

on:
pull_request:
branches: [ 2.0 ]
branches: [ main ]

jobs:
test-performance:
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Pre-commit

on:
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review

jobs:
pre-commit:
name: pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install pre-commit
run: python -m pip install -U pip pre-commit

- name: Run pre-commit
run: pre-commit run --all-files --show-diff-on-failure
59 changes: 59 additions & 0 deletions .github/workflows/render-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: render-ci

on:
pull_request:
branches: [ main ]
push:
branches: [ main ]

jobs:
test-render:
name: test-render - ubuntu-latest
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.11"

- name: Check disk space (before cleanup)
run: df -h

- name: Free up disk space
run: |
echo "Before cleanup:"
df -h
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
sudo apt-get clean
sudo rm -rf ~/.cache/pip /tmp/* /var/tmp/*
echo "After cleanup:"
df -h

- name: Install system dependencies for headless rendering
run: |
sudo apt update
sudo apt install -y ffmpeg xvfb build-essential

- name: Upgrade pip
run: python -m pip install -U pip

- name: Install pufferlib
run: |
pip install -e .[cpu] --no-cache-dir
env:
TMPDIR: ${{ runner.temp }}/build
PIP_NO_CACHE_DIR: 1

- name: Compile C extensions
run: python setup.py build_ext --inplace --force

- name: Check disk space (after install)
run: df -h

- name: Run render test
run: python tests/test_drive_render.py
timeout-minutes: 15
4 changes: 2 additions & 2 deletions .github/workflows/train-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: train-ci

on:
pull_request:
branches: [ 2.0 ]
branches: [ main ]
push:
branches: [ 2.0 ]
branches: [ main ]

jobs:
test-training:
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/training-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Training Test

on:
pull_request:
types:
- closed
branches: [ develop ]

jobs:
run-training-test:
name: Run Training Test
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Authenticate to Google Cloud
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

- name: Configure Docker for GCP Artifact Registry
run: gcloud auth configure-docker europe-west4-docker.pkg.dev

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.11"

- name: Install dependencies for mlops.py
run: pip install pyyaml google-cloud-aiplatform

- name: Run training test
run: python mlops/mlops.py train-test --verbose
timeout-minutes: 40
4 changes: 2 additions & 2 deletions .github/workflows/utest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Unit tests

on:
pull_request:
branches: [ 2.0 ]
branches: [ main ]
push:
branches: [ 2.0 ]
branches: [ main ]

jobs:
test:
Expand Down
18 changes: 6 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,13 @@ dmypy.json
# Pyre type checker
.pyre/
.pylintrc
.vscode/

# ROMs
*.gb

checkpoints/
experiments/
benchmark*/
wandb/
.neptune/
raylib*/
Expand All @@ -163,14 +163,9 @@ pufferlib/ocean/impulse_wars/benchmark/

# Ignore data files
data/
pufferlib/resources/drive/binaries/
pufferlib/resources/drive/binaries/training/
pufferlib/resources/drive/binaries/validation/

# But keep map_000.bin for the training test
!pufferlib/resources/drive/binaries/map_000.bin
!pufferlib/resources/drive/binaries/training/map_000.bin
pufferlib/resources/drive/sanity/sanity_binaries/
pufferlib/resources/drive/binaries/*/
!pufferlib/resources/drive/binaries/carla/
!pufferlib/resources/drive/binaries/carla/**

# Compiled drive binary in root
/drive
Expand All @@ -187,6 +182,5 @@ pufferlib/resources/drive/output_agent.gif pufferlib/resources/drive/output.gif
artifacts/
# Local drive renders
pufferlib/resources/drive/output*.gif
emsdk/
docs/book/*
!docs/book/assets/
*.mp4
.vscode/
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ repos:
rev: 'v21.1.5'
hooks:
- id: clang-format
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prior exclude pattern for clang-format was removed, which means clang-format will now run on file types/paths that were previously excluded (e.g., large generated/build or non-C/C++ directories). If those directories still exist in the repo, reinstating an exclude (or narrowing files:) will avoid unnecessary work and reduce the chance of formatting unintended assets.

Suggested change
- id: clang-format
- id: clang-format
files: \.(c|cc|cpp|cxx|h|hh|hpp|hxx)$

Copilot uses AI. Check for mistakes.
exclude: '\.(js|html)$|^build_web/|^docs/assets/'
types_or: [c, c++]
Loading
Loading