From 14e36b7a826190c3e955d4577e8b5935e1f3628b Mon Sep 17 00:00:00 2001 From: Lee Date: Fri, 15 May 2026 16:07:41 +0900 Subject: [PATCH] Prepare 1.0.2 release --- CHANGELOG.md | 2 +- README.md | 4 +-- projects/bare-metal-1.0/handoff.ko.md | 14 +++++---- projects/bare-metal-1.0/status.ko.md | 43 ++++++++++++++++++++------- pyproject.toml | 2 +- uv.lock | 2 +- 6 files changed, 46 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec2267a..6e104ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/README.md b/README.md index d593cbc..d3941f5 100644 --- a/README.md +++ b/README.md @@ -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" diff --git a/projects/bare-metal-1.0/handoff.ko.md b/projects/bare-metal-1.0/handoff.ko.md index 7970eab..c32352a 100644 --- a/projects/bare-metal-1.0/handoff.ko.md +++ b/projects/bare-metal-1.0/handoff.ko.md @@ -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 집계. @@ -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는 통과했다. ## 마지막 로컬 검증 @@ -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 방향 @@ -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`로 맞춘다. ## 주의할 점 diff --git a/projects/bare-metal-1.0/status.ko.md b/projects/bare-metal-1.0/status.ko.md index a9535b4..61a7302 100644 --- a/projects/bare-metal-1.0/status.ko.md +++ b/projects/bare-metal-1.0/status.ko.md @@ -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 의미 가시성, 내부 문서 정합성이다. ## 구현 상태 @@ -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 @@ -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를 실행한다. diff --git a/pyproject.toml b/pyproject.toml index 3922b10..5275cce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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" } diff --git a/uv.lock b/uv.lock index 4439573..e8f6f03 100644 --- a/uv.lock +++ b/uv.lock @@ -139,7 +139,7 @@ wheels = [ [[package]] name = "gpu-usage-audit" -version = "1.0.1" +version = "1.0.2" source = { editable = "." } dependencies = [ { name = "nvidia-ml-py" },