Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## Unreleased
## 1.0.2 - 2026-05-15

- Hardened `gua status` and `gua stop` so stale PID files do not act on
unrelated live processes.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ its `gua` / `gpu-usage-audit` commands.
GitHub Release assets are also available for manual download:

```sh
BASE="https://github.com/AI-Ocean/gpu-usage-audit/releases/download/v1.0.1"
WHEEL="gpu_usage_audit-1.0.1-py3-none-any.whl"
BASE="https://github.com/AI-Ocean/gpu-usage-audit/releases/download/v1.0.2"
WHEEL="gpu_usage_audit-1.0.2-py3-none-any.whl"

curl -fsSLO "$BASE/$WHEEL"
curl -fsSLO "$BASE/SHA256SUMS"
Expand Down
14 changes: 8 additions & 6 deletions projects/bare-metal-1.0/handoff.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## 이어받을 때 먼저 볼 것

- `projects/bare-metal-1.0/status.ko.md`: 현재 완료 상태, 1.0.1 검증 결과, cleanup 리뷰 결과.
- `projects/bare-metal-1.0/status.ko.md`: 현재 완료 상태, 1.0.1 검증 결과, 1.0.2 release prep 상태.
- `README.md`: 실제 사용자 문서와 release/install/runbook/report 표면.
- `src/gpu_usage_audit/__main__.py`: `gua` CLI, background daemon lifecycle, PID handling.
- `src/gpu_usage_audit/report.py`: report SQL 집계.
Expand Down Expand Up @@ -39,6 +39,8 @@
- GitHub Release `v1.0.1`: published.
- PyPI `gpu-usage-audit 1.0.1`: published.
- NVIDIA host acceptance: 사용자가 실제 host에서 수집 정상 동작을 확인했다.
- 1.0.2 release prep: 진행 중. #14 lifecycle/report cleanup을 patch release로 배포한다.
package version은 `1.0.2`로 bump했고 local build/wheel smoke는 통과했다.

## 마지막 로컬 검증

Expand All @@ -47,12 +49,12 @@ uv run ruff check
uv run ruff format --check
uv run mypy
uv run pytest
uv build --out-dir /tmp/gua-dist-1.0.1-status
bash scripts/smoke-dist-wheel.sh /tmp/gua-dist-1.0.1-status/gpu_usage_audit-1.0.1-py3-none-any.whl
env GITHUB_REF_NAME=v1.0.1 uv run python scripts/check-tag-version.py
uv build --out-dir /tmp/gua-dist-1.0.2-prep
bash scripts/smoke-dist-wheel.sh /tmp/gua-dist-1.0.2-prep/gpu_usage_audit-1.0.2-py3-none-any.whl
env GITHUB_REF_NAME=v1.0.2 uv run python scripts/check-tag-version.py
```

결과는 `pytest` 114 passed, `mypy` 25 source files, `ruff format` 26 files 기준이다.
결과는 `pytest` 124 passed, `mypy` 25 source files, `ruff format` 26 files 기준이다.

## 현재 cleanup PR 방향

Expand All @@ -62,7 +64,7 @@ env GITHUB_REF_NAME=v1.0.1 uv run python scripts/check-tag-version.py
- report §4는 process row가 아니라 identity/GPU/tick 단위로 먼저 접어서 사용자별 GPU-hours를 계산한다.
- report 출력 자체에 sample 의미, classification rule, `--interval` 의존성, heatmap 의미를 짧게 노출한다.
- NVML process list 조회 실패는 idle-held를 과소평가할 수 있으므로 warning으로 남긴다.
- `projects/bare-metal-1.0/*` 문서는 1.0.1 완료 상태로 갱신한다.
- 1.0.2 release prep에서는 package version, README release asset 예시, CHANGELOG를 `1.0.2`로 맞춘다.

## 주의할 점

Expand Down
43 changes: 33 additions & 10 deletions projects/bare-metal-1.0/status.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
## 요약

Bare Metal 1.0은 단일 NVIDIA 베어메탈 호스트만 대상으로 하는 형태로 1.0.1까지
릴리스됐다. `v1.0.1` GitHub Release와 PyPI publish는 완료됐고, 사용자가 실제
NVIDIA host에서 telemetry 수집이 정상 동작하는 것도 확인했다.
릴리스됐고, 현재 1.0.2 release prep을 진행 중이다. `v1.0.1` GitHub Release와
PyPI publish는 완료됐고, 사용자가 실제 NVIDIA host에서 telemetry 수집이 정상
동작하는 것도 확인했다.

현재 작업은 1.0.1 이후 코드 퀄리티 cleanup이다. 주요 초점은 background daemon
PID 안전성, report 의미 가시성, 내부 문서 정합성이다.
1.0.2 후보는 1.0.1 이후 코드 퀄리티 cleanup을 배포하기 위한 patch release다.
주요 초점은 background daemon PID 안전성, report 의미 가시성, 내부 문서 정합성이다.

## 구현 상태

Expand All @@ -21,12 +22,34 @@ PID 안전성, report 의미 가시성, 내부 문서 정합성이다.
| `gua` command surface | 완료 | `doctor`, `daemon`, `start`, `status`, `stop`, `report`, `demo` 제공. |
| Background daemon UX | 완료 | `gua daemon`은 기본 백그라운드 실행, `--foreground`는 systemd/debug용. |
| `daemon`/`report` DB UX | 완료 | 기본 DB는 `/tmp/gua.db`; daemon은 기존 DB를 거부하고 report는 없는 DB를 거부. |
| README bare-metal 문서 | 완료 | install, runbook, systemd 예시, 운영 notes가 1.0.1 기준. |
| Release | 완료 | `v1.0.1` tag, GitHub Release, PyPI publish 완료. |
| README bare-metal 문서 | 완료 | install, runbook, systemd 예시, 운영 notes가 1.0.2 기준. |
| Release | 진행 중 | package version은 `1.0.2`; local build/wheel smoke 완료, release prep PR과 tag publish가 남음. |
| NVIDIA host acceptance | 완료 | 실제 NVIDIA host에서 수집 정상 동작 확인. |

## 마지막 확인 결과

2026-05-15 1.0.2 release prep 로컬 검증:

```sh
uv run ruff format --check
uv run ruff check
uv run mypy
uv run pytest
env GITHUB_REF_NAME=v1.0.2 uv run python scripts/check-tag-version.py
uv build --out-dir /tmp/gua-dist-1.0.2-prep
bash scripts/smoke-dist-wheel.sh /tmp/gua-dist-1.0.2-prep/gpu_usage_audit-1.0.2-py3-none-any.whl
```

결과:

- `ruff format --check`: 26 files already formatted.
- `ruff check`: pass.
- `mypy`: no issues in 25 source files.
- `pytest`: 124 passed.
- tag-version check: `v1.0.2`와 `pyproject.toml` version 일치.
- `uv build`: sdist/wheel build 성공.
- wheel smoke: 성공.

2026-05-15 1.0.1 상태 확인:

```sh
Expand Down Expand Up @@ -91,7 +114,7 @@ bash scripts/smoke-dist-wheel.sh /tmp/gua-dist-1.0.1-status/gpu_usage_audit-1.0.

## 다음 작업

1. cleanup PR에서 PID 검증, report 가시성, 문서 정합성을 반영한다.
2. `uv run ruff check`, `uv run ruff format --check`, `uv run mypy`, `uv run pytest`
다시 실행한다.
3. 필요하면 1.0.2 patch release 후보로 묶는다.
1. 1.0.2 release prep PR에서 version, README release asset 예시, CHANGELOG를 갱신한다.
2. `uv run ruff check`, `uv run ruff format --check`, `uv run mypy`, `uv run pytest`,
`uv build`, wheel smoke, tag-version check를 다시 실행한다.
3. PR merge 후 `v1.0.2` tag를 push해 GitHub Release와 PyPI publish workflow를 실행한다.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gpu-usage-audit"
version = "1.0.1"
version = "1.0.2"
description = "Single-host daemon that surfaces 'idle-held' NVIDIA GPU memory — the embarrassing category conventional dashboards miss."
readme = "README.md"
license = { file = "LICENSE" }
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading