From 7e159780feb45e68c61fa0c32546458bc0d92dd7 Mon Sep 17 00:00:00 2001 From: malkuthro Date: Sat, 14 Feb 2026 21:34:56 +0000 Subject: [PATCH] chore: add release workflow and third-party tracking scaffold --- CHANGELOG.md | 20 +++++++++++++ README.md | 8 +++++ docs/RELEASE_WORKFLOW.md | 45 ++++++++++++++++++++++++++++ docs/REPO_AUDIT_2026-02-14.md | 29 ++++++++++++++++++ third_party/THIRD_PARTY.md | 19 ++++++++++++ third_party/forks_manifest.yaml | 21 +++++++++++++ tools/report_mods.py | 52 +++++++++++++++++++++++++++++++++ 7 files changed, 194 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 docs/RELEASE_WORKFLOW.md create mode 100644 docs/REPO_AUDIT_2026-02-14.md create mode 100644 third_party/THIRD_PARTY.md create mode 100644 third_party/forks_manifest.yaml create mode 100644 tools/report_mods.py diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..541f4ab --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog + +All notable changes to this project should be documented in this file. + +The format is inspired by Keep a Changelog and SemVer. + +## [Unreleased] + +### Added +- Initial release/process scaffolding: + - `docs/RELEASE_WORKFLOW.md` + - `docs/REPO_AUDIT_2026-02-14.md` + - `third_party/THIRD_PARTY.md` + - `third_party/forks_manifest.yaml` + - `tools/report_mods.py` + +## [0.1.0] - 2026-02-14 + +### Added +- Project-level release/versioning strategy and third-party tracking scaffold. diff --git a/README.md b/README.md index acead9b..f95d615 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,14 @@ The code for the Easy Resize node is inspired by the Resize Image V2 node from C - **Error Handling**: Fallbacks for missing/invalid JSON in Wan 2.2 Easy Prompt; validation for aspect ratios and divisibility in Easy Resize. - **Compatibility**: Works with ComfyUI-Manager for easy installation via Git URL. No additional dependencies beyond standard Python and ComfyUI libraries. +## Release & Stability + +For production usage, install a pinned stable tag/commit instead of following moving branch heads. + +- Release workflow: `docs/RELEASE_WORKFLOW.md` +- Change history: `CHANGELOG.md` +- Third-party tracking: `third_party/THIRD_PARTY.md`, `third_party/forks_manifest.yaml` + ## Installation ### Via ComfyUI-Manager (Recommended) 1. Open ComfyUI and access the Manager interface. diff --git a/docs/RELEASE_WORKFLOW.md b/docs/RELEASE_WORKFLOW.md new file mode 100644 index 0000000..a0e30d5 --- /dev/null +++ b/docs/RELEASE_WORKFLOW.md @@ -0,0 +1,45 @@ +# Release Workflow (Stable + Dev) + +This project supports production users, so releases should be predictable. + +## Branches + +- `main` → active development +- `release/stable` → tested commits only (optional but recommended) + +If you do not want two long-lived branches yet, keep using `main` and only publish tested tags. + +## Versioning (SemVer) + +Use tags in the format `vMAJOR.MINOR.PATCH`: + +- `v1.0.0` = first stable release +- `v1.0.1` = bugfixes only +- `v1.1.0` = new backward-compatible features +- `v2.0.0` = breaking changes + +## Minimal Release Checklist + +1. Confirm node load on a clean ComfyUI install +2. Confirm key workflows still run +3. Update `CHANGELOG.md` +4. Create and push annotated tag: + +```bash +git tag -a vX.Y.Z -m "Release vX.Y.Z" +git push origin vX.Y.Z +``` + +5. Publish GitHub release notes (what changed, tested matrix, known issues) + +## Production Install Recommendation + +Users in production should install by tag (not moving branch heads). + +Example: + +```bash +git clone --branch v1.0.0 https://github.com/malkuthro/ComfyUI-Koolook.git +``` + +Or in ComfyUI Manager, pin to a known stable tag/commit. diff --git a/docs/REPO_AUDIT_2026-02-14.md b/docs/REPO_AUDIT_2026-02-14.md new file mode 100644 index 0000000..f1032bb --- /dev/null +++ b/docs/REPO_AUDIT_2026-02-14.md @@ -0,0 +1,29 @@ +# Repo Audit — 2026-02-14 + +## Summary + +The repository is functional but currently mixes multiple concerns (custom nodes, workflow assets, local environment artifacts, and experiments). This increases maintenance risk for production users. + +## Findings + +1. **Mixed-purpose layout** + - Root contains node source, workflows, utility projects, docs, and assets. + - Recommendation: gradually separate into clear areas (e.g. `nodes/`, `workflows/`, `runpod/`, `docs/`). + +2. **Environment artifact present (`.venv/`)** + - `.venv` is ignored by `.gitignore`, but still exists locally. + - Recommendation: keep untracked; never commit virtual env artifacts. + +3. **Release policy not explicit** + - No formal SemVer/tag workflow documented. + - Addressed by adding `docs/RELEASE_WORKFLOW.md` and `CHANGELOG.md`. + +4. **Third-party modifications not centrally tracked** + - Some code is derived/modified from external repos. + - Addressed by adding `third_party/THIRD_PARTY.md` and `third_party/forks_manifest.yaml`. + +## Immediate Next Steps + +1. Fill `third_party/forks_manifest.yaml` for each external-derived node. +2. Publish first stable tag after verification. +3. Add CI release checks later (optional phase). diff --git a/third_party/THIRD_PARTY.md b/third_party/THIRD_PARTY.md new file mode 100644 index 0000000..7714f7f --- /dev/null +++ b/third_party/THIRD_PARTY.md @@ -0,0 +1,19 @@ +# Third-Party Code & Attribution + +Use this file to track external repositories, licenses, and local modifications. + +## Entry Template + +- Name: +- Upstream repo URL: +- Upstream commit/tag used: +- License: +- Local path(s): +- What changed locally: +- Why changed: +- Last reviewed: + +## Notes + +- Keep this file updated when syncing upstream changes. +- If a node is heavily modified, document behavior differences clearly for users. diff --git a/third_party/forks_manifest.yaml b/third_party/forks_manifest.yaml new file mode 100644 index 0000000..f73ca9a --- /dev/null +++ b/third_party/forks_manifest.yaml @@ -0,0 +1,21 @@ +version: 1 +updated_at: "2026-02-14" +entries: + - id: "easy_resize_inspiration" + name: "Easy Resize (inspired component)" + source_repo: "https://github.com/kijai/ComfyUI-KJNodes" + source_ref: "unknown" + local_paths: + - "k_easy_resize.py" + status: "modified" + license: "unknown" + notes: "Inspired by Resize Image V2; verify exact upstream commit/license metadata." + + - id: "promptjson_integration_reference" + name: "PromptJSON interoperability reference" + source_repo: "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON" + source_ref: "n/a" + local_paths: [] + status: "reference_only" + license: "unknown" + notes: "No vendored code; integration reference in docs/workflows." diff --git a/tools/report_mods.py b/tools/report_mods.py new file mode 100644 index 0000000..dc03c31 --- /dev/null +++ b/tools/report_mods.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +"""Simple report for third-party modification tracking. + +Reads third_party/forks_manifest.yaml and prints a short summary for maintainers. +""" +from __future__ import annotations + +from pathlib import Path +import sys + +try: + import yaml +except Exception: + print("Missing dependency: pyyaml\nInstall with: pip install pyyaml", file=sys.stderr) + sys.exit(1) + + +def main() -> int: + repo_root = Path(__file__).resolve().parents[1] + manifest_path = repo_root / "third_party" / "forks_manifest.yaml" + + if not manifest_path.exists(): + print(f"Manifest not found: {manifest_path}") + return 1 + + data = yaml.safe_load(manifest_path.read_text(encoding="utf-8")) or {} + entries = data.get("entries", []) + + print("Third-party modification report") + print("=" * 34) + print(f"Manifest: {manifest_path}") + print(f"Entries: {len(entries)}\n") + + for i, entry in enumerate(entries, 1): + print(f"{i}. {entry.get('name', entry.get('id', 'unnamed'))}") + print(f" id: {entry.get('id', '-')}") + print(f" status: {entry.get('status', '-')}") + print(f" source: {entry.get('source_repo', '-')}") + paths = entry.get("local_paths", []) or [] + if paths: + print(" local paths:") + for p in paths: + print(f" - {p}") + else: + print(" local paths: (none)") + print() + + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())