Skip to content

Rename the project to Snaffle#15

Merged
maltemindedal merged 2 commits into
mainfrom
rename/snaffle
Jul 23, 2026
Merged

Rename the project to Snaffle#15
maltemindedal merged 2 commits into
mainfrom
rename/snaffle

Conversation

@maltemindedal

@maltemindedal maltemindedal commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Why rename

Two concrete problems with the old name, both found by checking rather than assuming:

  1. It was taken on PyPI, by an unrelated "Python system information tool". This project could never have published under it.
  2. It pointed at the wrong category. *fetch names — neofetch, screenfetch and friends — denote system-info reporters. Anyone hearing it expected an ASCII distro logo, not an HTTP client.

snaffle (verb, informal, British) — to take something for oneself, typically quickly or without permission.

"Snaffle it off the server."

Confirmed available on PyPI, a valid Python identifier, and it reads as a verb on the command line. Shortlisted against ~150 candidates checked live against the PyPI API; snarf — the Jargon File term for grabbing a file over a network, and the best conceptual fit — was already taken, as were yoink, whippet, badger, ferret, magpie, poke and knock.

Breaking change

The import package, the distribution, and the console script are all snaffle. Bumped to 3.0.0.

from snaffle import HTTPClient
snaffle GET https://example.com

No compatibility shim and no migration guidance — none is being offered, so the upgrade notes and every reference to the previous name were removed rather than left as dead weight. git grep confirms zero mentions across all tracked files. The changelog keeps its version history but now describes what changed rather than what things used to be called.

README

Added the dictionary definition as an epigraph, plus a one-line usage example under the intro.

Testing

  • ruff, ruff format --check, mypy strict all clean.
  • 38 tests pass.
  • 10-case end-to-end CLI smoke run passes.
  • Both entry points render usage: snafflesnaffle HELP and python -m snaffle HELP.
  • Wheel builds as snaffle-3.0.0-py3-none-any.whl and contains snaffle/py.typed; the CI check was updated to the new path.
  • Git recorded all six files as renames, so history follows.

Follow-up after merge

The GitHub repository should be renamed to maltemindedal/snaffle (GitHub redirects the old URL). The README and changelog already point at the new one. The local working directory can be renamed whenever convenient.

🤖 Generated with Claude Code

maltemindedal and others added 2 commits July 23, 2026 16:19
PyFetch was both unavailable and misleading. The name is taken on PyPI by an
unrelated "Python system information tool", so this project could never publish
under it; and `*fetch` in that space denotes neofetch-style system reporters,
so the name pointed people at the wrong category of tool entirely.

Snaffle is British slang for grabbing something quickly, which is what an HTTP
client does. Checked available on PyPI, valid as a Python identifier, and reads
as a verb on the command line.

BREAKING: the import package, the distribution, and the console script are all
now `snaffle`.

    from pyfetch import HTTPClient   # 2.x
    from snaffle import HTTPClient   # 3.0+

    pyfetch GET https://example.com   # 2.x
    snaffle GET https://example.com   # 3.0+

No compatibility shim, consistent with the 2.0.0 rename. Bumped to 3.0.0.

The changelog keeps the historical entries pointing at the names that were
actually shipped at the time; only the 3.0.0 entry describes the new one.

Verified: ruff, ruff format, mypy strict clean; 38 tests pass; 10-case CLI smoke
run passes against both entry points; wheel builds as
snaffle-3.0.0-py3-none-any.whl containing snaffle/py.typed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
No backwards compatibility is being offered, so the upgrade guidance and the
references to the previous name are dead weight. Removed the README's upgrade
section and stripped the old name from the changelog; the version history stays
and now describes what changed rather than what it used to be called.

No mention of the old name remains in any tracked file.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maltemindedal
maltemindedal merged commit 3da5e36 into main Jul 23, 2026
8 of 9 checks passed
@maltemindedal
maltemindedal deleted the rename/snaffle branch July 23, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant