From c403aa63cfa4228e8c2cddfbac9293e1b2804eac Mon Sep 17 00:00:00 2001 From: FZ2000 Date: Sat, 1 Aug 2026 15:35:48 -0700 Subject: [PATCH] docs: show that da-cli is on PyPI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The install instructions have been correct since #7, but nothing above the fold said the package was installable. The badge row — eight badges for CI, Python, licence, ruff, mypy, coverage, status and dependency count — never mentioned PyPI at all, so a visitor's first screen gave no sign that `pipx install da-sync` was an option. * PyPI version badge, first in the row, linking to the project page. * `pipx install da-sync` directly under the opening paragraph. * `Python 3.10+` becomes `pypi/pyversions`, which reads the classifiers instead of restating them, so it cannot drift from `requires-python`. It renders "3.10 | 3.11 | 3.12 | 3.13 | 3.14" — strictly more than the static badge said. The `Status: Beta` badge goes. The blockquote two lines below already says "Status: Beta" with more useful detail, and the row turns out to have a budget: check_discoverability requires "deviantart" inside the first twelve lines, and a ninth badge pushed the opening paragraph past it. Trimming the duplicate was the better fix; widening the rule would have traded a real SEO constraint for badge clutter. Verified: all three badge URLs render real data (pypi: v0.1.1, python: 3.10-3.14) rather than shields' "invalid" placeholder; the four checkers, markdownlint (pinned 0.45.0 + repo config) and lychee are clean; and the opening-lines rule was watched failing on a ninth badge before the trim. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 17 +++++++++++++++++ README.md | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7265210..0ae6a8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,23 @@ The version in `dacli/constants.py` is the single source of truth: `pyproject.toml` reads it dynamically, the release workflow refuses a tag that disagrees with it, and PyPI therefore always matches the tag. +## Unreleased + +### Changed + +- The README now shows that the project is on PyPI: a version badge as the + first badge, and `pipx install da-sync` directly under the opening + paragraph. The install instructions were already correct, but nothing + above the fold said the package was installable, and the badge row — + eight badges covering CI, linting and coverage — never mentioned it. +- The static `Python 3.10+` badge is now `pypi/pyversions`, which reads the + classifiers rather than restating them, so it cannot drift from + `requires-python`. +- Dropped the `Status: Beta` badge. The blockquote two lines below says the + same thing with more detail, and the badge row has a budget: the + discoverability check requires "deviantart" within the first twelve + lines, and a ninth badge pushed the opening paragraph past it. + ## 0.1.1 — 2026-08-01 Documentation only; no code changes. diff --git a/README.md b/README.md index 3bc49ba..499d95c 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,20 @@ # da-cli +[![PyPI](https://img.shields.io/pypi/v/da-sync.svg)](https://pypi.org/project/da-sync/) [![CI](https://github.com/FZ2000/da-cli/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/FZ2000/da-cli/actions/workflows/ci.yml) -[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) +[![Python versions](https://img.shields.io/pypi/pyversions/da-sync.svg)](https://pypi.org/project/da-sync/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-261230.svg)](https://docs.astral.sh/ruff/) [![Type checked: mypy](https://img.shields.io/badge/types-mypy-blue.svg)](https://mypy-lang.org/) [![Coverage: 92%+](https://img.shields.io/badge/coverage-92%25%2B-brightgreen.svg)](CONTRIBUTING.md#tests) -[![Status: Beta](https://img.shields.io/badge/status-beta-orange.svg)](https://github.com/FZ2000/da-cli/releases) [![Dependencies: 0 runtime](https://img.shields.io/badge/runtime%20deps-0-success.svg)](pyproject.toml) Sync your DeviantArt gallery to a local folder from the command line — a backup of the art you watch, kept current. **Zero runtime dependencies**: the whole tool is the Python 3.10+ standard library. A local SQLite index means a re-run costs one API call when nothing new was posted, and `launchd` (macOS) or a systemd timer (Linux) keeps it running unattended. Plus search and browse helpers. +```bash +pipx install da-sync # the distribution is `da-sync`; the command is `da` +``` + > **New to da-cli?** Follow the **[Setup Guide](docs/getting-started.md)** — it walks you through everything from install to first sync in about 10 minutes, with screenshots. > **Status: Beta** — the sync and search flows are stable and covered by 868 tests. macOS Keychain integration is production-ready; Linux Secret Service support is planned. See [CHANGELOG.md](CHANGELOG.md).