diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..32acd81 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Question or help request + url: https://github.com/sudolulo/winnow/discussions + about: Ask questions and get help in GitHub Discussions + - name: Wiki / Documentation + url: https://github.com/sudolulo/winnow/wiki + about: Setup, troubleshooting, and FAQ diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 2f83e0e..eb743f5 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,6 +6,10 @@ on: paths-ignore: - "**.md" - "docs/**" + - "CONTRIBUTING.md" + - "SECURITY.md" + - ".github/ISSUE_TEMPLATE/**" + - ".github/PULL_REQUEST_TEMPLATE.md" - ".github/workflows/release.yml" - ".github/workflows/lint.yml" - ".github/dependabot.yml" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6e4c0b3..ae1308c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -125,6 +125,7 @@ jobs: file: ./Dockerfile platforms: linux/amd64,linux/arm64 push: true + build-args: VERSION=${{ steps.tag.outputs.VERSION }} cache-from: type=gha,scope=release-gpu cache-to: type=gha,mode=max,scope=release-gpu tags: | @@ -137,8 +138,10 @@ jobs: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64 - build-args: VARIANT=cpu push: true + build-args: | + VARIANT=cpu + VERSION=${{ steps.tag.outputs.VERSION }} cache-from: type=gha,scope=release-cpu cache-to: type=gha,mode=max,scope=release-cpu tags: | @@ -151,8 +154,10 @@ jobs: context: . file: ./Dockerfile platforms: linux/amd64 - build-args: VARIANT=rocm push: true + build-args: | + VARIANT=rocm + VERSION=${{ steps.tag.outputs.VERSION }} cache-from: type=gha,scope=release-rocm cache-to: type=gha,mode=max,scope=release-rocm tags: | @@ -165,8 +170,10 @@ jobs: context: . file: ./Dockerfile platforms: linux/amd64 - build-args: VARIANT=intel push: true + build-args: | + VARIANT=intel + VERSION=${{ steps.tag.outputs.VERSION }} cache-from: type=gha,scope=release-intel cache-to: type=gha,mode=max,scope=release-intel tags: | diff --git a/Dockerfile b/Dockerfile index 201586d..a621a9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -65,6 +65,12 @@ RUN chmod +x /app/entrypoint.sh FROM base-${TARGETARCH}-${VARIANT} AS runtime ARG VARIANT=gpu +ARG VERSION=dev +LABEL org.opencontainers.image.title="winnow" \ + org.opencontainers.image.description="Selects diverse, high-quality photos from Immich as training data for Frigate face recognition and object classification." \ + org.opencontainers.image.source="https://github.com/sudolulo/winnow" \ + org.opencontainers.image.licenses="AGPL-3.0-or-later" \ + org.opencontainers.image.version="${VERSION}" ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ diff --git a/README.md b/README.md index 2d5fd9b..f97035d 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,14 @@ Requires Python 3.13+ and [uv](https://astral.sh/uv). An NVIDIA, AMD, or Intel G --- +## Getting Help + +- **[GitHub Discussions](https://github.com/sudolulo/winnow/discussions)** — questions, setup help, and general discussion +- **[Wiki](https://github.com/sudolulo/winnow/wiki)** — setup guide, troubleshooting, and FAQ +- **[Issues](https://github.com/sudolulo/winnow/issues)** — bugs and feature requests only + +--- + ## Attribution Based on [if_curator](https://github.com/ds-sebastian/if_curator) by Sebastian, licensed MIT. diff --git a/pyproject.toml b/pyproject.toml index cf605c8..920c9b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "winnow" version = "0.2.13" -description = "Immich to Frigate training sets" +description = "Selects diverse, high-quality photos from Immich as training data for Frigate face recognition and object classification." license = "AGPL-3.0-or-later" requires-python = ">=3.13" authors = [{ name = "Holden Salomon", email = "holden@arch.fyi" }] @@ -9,6 +9,7 @@ keywords = ["immich", "frigate", "face-recognition", "training-data", "arcface", classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", + "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Image Recognition",