Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
3aa74a4
Super important ascii art
msaroufim Feb 26, 2025
e2ae16d
Merge pull request #2 from gpu-mode/msaroufim-patch-1
S1ro1 Feb 26, 2025
90281ef
Merge branch 'fix/launch'
S1ro1 Mar 16, 2025
7c235a7
Feat: works without popcorn directives
S1ro1 Mar 16, 2025
37759d6
Feat: works
S1ro1 Mar 16, 2025
b86af3e
Merge pull request #3 from gpu-mode/feat/pre-launch-update
S1ro1 Mar 16, 2025
224a1de
WIP rust port
Apr 8, 2025
98fbbe8
Update README.md
msaroufim Apr 8, 2025
a04ac61
Feat: screen fix
S1ro1 Apr 12, 2025
c8ffe91
Refactor: huge refactor
S1ro1 Apr 12, 2025
9ad1ff0
Feat: login + extra refactor
S1ro1 Apr 12, 2025
ea3f4ab
Feat: reregister
S1ro1 Apr 12, 2025
eb0cdcd
Feat: github
S1ro1 Apr 12, 2025
d6f654b
feat: refactor + auth
S1ro1 Apr 12, 2025
3cc5a99
Feat: build
S1ro1 Apr 12, 2025
85b639a
Fix: build
S1ro1 Apr 12, 2025
3fb6315
Fix: build
S1ro1 Apr 12, 2025
e00e952
Fix: build2
S1ro1 Apr 12, 2025
f1e983f
Fix: build.
S1ro1 Apr 13, 2025
8698a7d
Fix: build.
S1ro1 Apr 13, 2025
97c5052
Fix: build.
S1ro1 Apr 13, 2025
5333f75
Fix: build.
S1ro1 Apr 13, 2025
1aa5582
Fix: timeouts
S1ro1 Apr 13, 2025
01b3896
Feat: readme
S1ro1 Apr 14, 2025
3205bea
Fix: readme
S1ro1 Apr 14, 2025
2df243d
Merge pull request #5 from gpu-mode/rust
S1ro1 Apr 14, 2025
be54afd
Fix: build.
S1ro1 Apr 14, 2025
45ba09c
Fix; build
S1ro1 Apr 14, 2025
1acb7be
Fix; build
S1ro1 Apr 14, 2025
cba3153
Fix; build
S1ro1 Apr 14, 2025
8a74a00
fix: build
S1ro1 Apr 14, 2025
b84a985
Feat: rust top level
S1ro1 Apr 14, 2025
35e05a7
Fix: build
S1ro1 Apr 14, 2025
2954c32
Fix: build
S1ro1 Apr 14, 2025
4e4b62f
Fix: build
S1ro1 Apr 14, 2025
e593158
Fix: build
S1ro1 Apr 14, 2025
49e8323
Fix: build
S1ro1 Apr 14, 2025
6df8fff
Fix: build
S1ro1 Apr 14, 2025
4085696
Fix: build
S1ro1 Apr 14, 2025
c6804b4
Fix: build
S1ro1 Apr 14, 2025
4244be2
Fix: readme
S1ro1 Apr 14, 2025
3ecd8ec
Fix: build
S1ro1 Apr 14, 2025
cf2742c
Feat: works
S1ro1 Apr 14, 2025
321af11
Feat: launch
S1ro1 Apr 14, 2025
16c70ca
Fix: github auth
S1ro1 Apr 15, 2025
86f599e
Feat: launch authorization
S1ro1 Apr 15, 2025
4f3e49d
Feat: streaming response
S1ro1 Apr 15, 2025
bea3536
Merge pull request #6 from gpu-mode/feat/streaming-response
S1ro1 Apr 16, 2025
280943a
Update README.md
msaroufim Apr 17, 2025
b71dd0a
Improve README
Apr 17, 2025
bf9fa63
Merge pull request #7 from gpu-mode/msaroufim/docs
msaroufim Apr 17, 2025
842f75b
Update README.md
msaroufim Apr 17, 2025
9b98671
Fix: readme typo
S1ro1 Apr 21, 2025
fe8f3d8
Create LICENSE
msaroufim Apr 22, 2025
a4cee43
Feat: submission flags (#12)
svskaushik Apr 28, 2025
488050e
extend timeout (#13)
PaliC May 6, 2025
8f4dcc7
Automate release (#14)
msaroufim May 7, 2025
d45baa3
Update build.yml
msaroufim May 7, 2025
108d61e
Update README.md
msaroufim May 8, 2025
d9d2c5c
Feat/better results (#15)
S1ro1 Jun 8, 2025
cdd6bf9
Add hackathon installation scripts (#16)
msaroufim Jun 8, 2025
73b610e
Update README.md
msaroufim Jun 8, 2025
1b96e9e
Update README.md
msaroufim Jun 8, 2025
1448853
updated workshop examples (#17)
msaroufim Jun 10, 2025
651d96d
Add colors and animation update
Jun 10, 2025
67f5238
Merge pull request #18 from gpu-mode/alzhang/colors
S1ro1 Jun 10, 2025
63f2943
Update README.md with Teaser Image
alexzhang13 Jun 10, 2025
8e8c6b1
Feat: quick path has correct ui (#19)
S1ro1 Jun 11, 2025
31ada4d
Create load_inline_sample.py
msaroufim Jun 12, 2025
cca33fd
Feat: ctrl + c result page
S1ro1 Jun 12, 2025
4ac8ffd
Fix: correct task field
S1ro1 Jun 28, 2025
5a296e2
add output flag
gau-nernst Sep 15, 2025
b9d7994
Merge pull request #22 from gau-nernst/feat/output
S1ro1 Sep 15, 2025
f9cbd7d
Fix: add better profile message
S1ro1 Nov 10, 2025
5930e59
Merge pull request #24 from gpu-mode/fix-profile-msg
S1ro1 Nov 10, 2025
35f42ff
feat: add --no-tui flag for plain text output
Ryan-Rong-24 Dec 2, 2025
02c089d
Merge pull request #26 from Ryan-Rong-24/feature/no-tui-flag
S1ro1 Dec 6, 2025
1f10700
Profiling support (#27)
msaroufim Jan 13, 2026
c576fa5
Revise README with new links and sections
msaroufim Jan 22, 2026
6d4752a
update installation instructions in readme.md
Jan 22, 2026
605d872
update README'
Jan 25, 2026
a270241
Update README.md
msaroufim Jan 28, 2026
297253f
Add admin CLI commands (#29)
msaroufim Feb 1, 2026
90fd941
Add test suite, CI workflow, and fix all clippy warnings (#30)
msaroufim Feb 1, 2026
bb01cc4
Fix version mismatch by setting version from CI env var (#31)
msaroufim Feb 1, 2026
4ff2e23
Fix https://github.com/gpu-mode/popcorn-cli/issues/23
Feb 3, 2026
dd46c00
Add user submissions management commands (#32)
msaroufim Feb 6, 2026
7eca36d
Add docs for installing extra Python dependencies in submissions
Feb 9, 2026
041d0e2
Move admin commands and contributor docs to CONTRIBUTING.md
Feb 9, 2026
178f408
Support archive (tarball/zip) submissions for model competitions (#34)
msaroufim Feb 11, 2026
e070627
Update README examples to use pmpp_v2 leaderboard names
Feb 17, 2026
1201782
add skills files (#37)
msaroufim Feb 17, 2026
377a679
Build(deps): bump bytes from 1.10.1 to 1.11.1 (#38)
dependabot[bot] Feb 18, 2026
1ce7a45
Update deploy
S1ro1 Feb 24, 2026
b544c36
fix lint
Feb 25, 2026
da1d782
setup command should be aware of new and expired competitions
Mar 7, 2026
8735788
docs: simplify auth flow and remove get-api-url step (#40)
msaroufim Mar 9, 2026
3d5fed8
Create helion-hackathon.md
msaroufim Mar 13, 2026
4bb2441
Add `popcorn` alias to install.sh (#41)
yf225 Mar 13, 2026
6ab2e4a
Enable closed workflow
S1ro1 Mar 13, 2026
d3f8160
Update helion-hackathon.md
msaroufim Mar 13, 2026
f141be6
docs: add local testing section to helion-hackathon.md (#42)
yf225 Mar 13, 2026
7d015d3
docs: add ACF (booster pack) usage guide (#43)
yf225 Mar 13, 2026
44a8b35
docs: add TileIR backend (ENABLE_TILE) usage guide (#44)
yf225 Mar 14, 2026
506fbd4
docs: add scoring system, rules, and contribution track (#45)
yf225 Mar 14, 2026
d87db4d
feat: create dedicated kernel folder on `popcorn setup` (#46)
yf225 Mar 14, 2026
5b9f29d
docs: mention HELION_BACKEND=tileir alongside ENABLE_TILE=1 (#47)
yf225 Mar 14, 2026
68fd44a
docs: simplify hackathon scoring to top-3 points system (#49)
yf225 Mar 14, 2026
66daac5
docs: add Discord auth hint after register step (#50)
yf225 Mar 14, 2026
3fd2da9
More ui friendly register flow
S1ro1 Mar 14, 2026
fa1291f
More ui friendly register flow2
S1ro1 Mar 14, 2026
81720ae
docs: move fp8_quant to problem 1 in hackathon problems table
yf225 Mar 14, 2026
1d36991
Merge pull request #52 from yf225/docs/move-fp8-quant-to-problem-1
S1ro1 Mar 14, 2026
4ee4737
add princeton 2026 quickstart doc (#54)
msaroufim Apr 3, 2026
45e4ae5
fix: writing multiple profile zip (#53)
Wal8800 Apr 3, 2026
79e8cd2
[codex] document submission inspection and deletion flow (#55)
msaroufim Apr 4, 2026
b94cc1a
Mention and add details in AGENTS.md (#39)
burtenshaw Apr 4, 2026
78d93ad
Add aarch64 Linux support (DGX Spark / GB10) (#51)
brandonin Apr 4, 2026
d2a55b4
Override popcorn id with env arg
Jack-Khuu Apr 21, 2026
40f9492
More tests
Jack-Khuu Apr 29, 2026
88c50f5
Fix Windows test failures: skip config-fallback tests on Windows
Jack-Khuu Apr 29, 2026
a1b51d5
Scope imports
Jack-Khuu Apr 29, 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
141 changes: 114 additions & 27 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,133 @@ name: release

on:
push:
# Sequence of patterns matched against refs/tags
branches:
- main
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

# Keep pull request builds for testing
pull_request:
workflow_dispatch:

permissions:
contents: write

jobs:
goreleaser:
version:
name: Generate Version
runs-on: ubuntu-latest
outputs:
new_tag: ${{ steps.tag_version.outputs.new_tag }}
steps:
-
name: Checkout
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
fetch-depth: 0
-
name: Set up Go
uses: actions/setup-go@v5
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
if: startsWith(github.ref, 'refs/tags/')

- name: Bump version and push tag
id: tag_version
uses: mathieudutour/github-tag-action@v6.1
with:
distribution: goreleaser
version: '~> v2'
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
default_bump: patch
release_branches: main

build:
name: Build
needs: version
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
artifact_name: popcorn-cli
asset_name: popcorn-cli-linux.tar.gz
compress_cmd: tar -czf
compress_ext: .tar.gz

- os: windows-latest
target: x86_64-pc-windows-msvc
artifact_name: popcorn-cli
asset_name: popcorn-cli-windows.zip
compress_cmd: 7z a
compress_ext: .zip

- os: macos-latest
target: aarch64-apple-darwin
artifact_name: popcorn-cli
asset_name: popcorn-cli-macos.tar.gz
compress_cmd: tar -czf
compress_ext: .tar.gz

- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
artifact_name: popcorn-cli
asset_name: popcorn-cli-linux-aarch64.tar.gz
compress_cmd: tar -czf
compress_ext: .tar.gz

steps:
- uses: actions/checkout@v4

-
name: Run GoReleaser Snapshot
uses: goreleaser/goreleaser-action@v6
if: "!startsWith(github.ref, 'refs/tags/')"
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: ${{ matrix.target }}

- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}

- name: Install musl tools (Linux musl)
if: matrix.target == 'x86_64-unknown-linux-musl'
run: |
sudo apt-get update
sudo apt-get install -y musl-tools

- name: Build release binary
run: cargo build --release --target ${{ matrix.target }}
env:
CLI_VERSION: ${{ needs.version.outputs.new_tag }}

- name: Prepare artifact
shell: bash
run: |
mkdir -p dist
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
cp target/${{ matrix.target }}/release/popcorn-cli.exe dist/popcorn-cli.exe
else
cp target/${{ matrix.target }}/release/popcorn-cli dist/popcorn-cli
chmod +x dist/popcorn-cli
fi
cd dist
${{ matrix.compress_cmd }} ../${{ matrix.asset_name }} *

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.asset_name }}
path: ${{ matrix.asset_name }}
retention-days: 7

release:
name: Create Release
needs: [build, version]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'

steps:
- name: Download all artifacts
uses: actions/download-artifact@v4

- name: Create Release
uses: softprops/action-gh-release@v1
with:
distribution: goreleaser
version: '~> v2'
args: release --clean --snapshot
tag_name: ${{ needs.version.outputs.new_tag }}
name: Release ${{ needs.version.outputs.new_tag }}
files: |
popcorn-cli-linux.tar.gz/popcorn-cli-linux.tar.gz
popcorn-cli-linux-aarch64.tar.gz/popcorn-cli-linux-aarch64.tar.gz
popcorn-cli-windows.zip/popcorn-cli-windows.zip
popcorn-cli-macos.tar.gz/popcorn-cli-macos.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68 changes: 68 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Test

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

env:
CARGO_TERM_COLOR: always

jobs:
test:
name: Run Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
rust: [stable]

steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: clippy, rustfmt

- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.os }}-test

- name: Check formatting
run: cargo fmt --all -- --check

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

- name: Build
run: cargo build --verbose

- name: Run tests
run: cargo test --verbose

coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable

- name: Install cargo-tarpaulin
run: cargo install cargo-tarpaulin

- name: Run coverage
run: cargo tarpaulin --out Xml --verbose

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: cobertura.xml
fail_ci_if_error: false
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
submission.*
target/
scratch.md
*claude
*.zip
.codex/
.popcorn/
.DS_Store
12 changes: 0 additions & 12 deletions .goreleaser.yml

This file was deleted.

10 changes: 10 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Skills
A skill is a local instruction bundle stored in `SKILL.md`.

### Available skills
- popcorn-submission-workflow: Helps with Popcorn CLI registration, submission setup, submission modes, and file directives. (file: /Users/ben/code/popcorn-cli/.popcorn/skills/popcorn-submission-workflow/SKILL.md)

### How to use skills
- Load the skill by reading its `SKILL.md` file when user requests match the description.
- Follow progressive disclosure: read only relevant referenced files/scripts as needed.
- Keep the workspace setup aligned with `popcorn setup`.
12 changes: 12 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# CLAUDE.md

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, architecture, and admin commands.

## Quick Reference

```bash
cargo build # Build
cargo test # Run tests
cargo fmt --all # Format (required before commits)
cargo clippy --all-targets --all-features -- -D warnings # Lint (must pass with no warnings)
```
Loading
Loading