Skip to content

Drop stale packaging files and unused Black config - #254

Draft
BlivionIaG wants to merge 2 commits into
masterfrom
cursor/packaging-tooling-cleanup-86d5
Draft

BlivionIaG wants to merge 2 commits into
masterfrom
cursor/packaging-tooling-cleanup-86d5

Conversation

@BlivionIaG

@BlivionIaG BlivionIaG commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Purpose

One dependency and tooling source of truth. pyproject.toml already declares the runtime floors, the ruff formatter CI runs, and the package layout. This removes copies and config that disagree with that or do nothing.

  • Delete requirements.txt. Its floors (pypresence>=4.3.0, psutil>=5.9.0, pyyaml>=6.0.1) disagree with [project.dependencies], and nothing in the repo references the file.
  • Remove Black: the black dev extra, the whole [tool.black] block, and the Black entries in uv.lock (black, plus click, platformdirs, and pytokens, which nothing else depends on). Other lock pins are unchanged. CI uses ruff format --check. The E501 ignore comment now names ruff format.
  • Remove the ruff per-file ignore "tests/**/*.py" = ["S"]. The lint select list does not include S.
  • In [tool.setuptools.package-data], drop resources/*.py and native/**/*.py. packages.find already ships those modules. The yml and json globs stay.
  • Homebrew Formula/fetchcord.rb: drop the url / sha256 for a nonexistent v3.0.0 tag (the sha was zeros). head stays. The comment that only explained the missing tag is gone; the local --HEAD install note stays.
  • fetchcord.spec: drop the stale *.conf mention. Conf resources were removed in 3.0. The collect_data_files call is unchanged.
  • Delete MANIFEST.in. A build without it still packs the yml and json resources (see Results).

Draft PR #253 is open and does not touch these files. Detection, presence, Windows system_type, and scripts/validate.py are unchanged.

scripts/update_formula.py only rewrites existing url / sha256 lines. The tap formula is a separate repo. This in-tree formula is head-only until a real tag exists and those lines are added back on the tap.

Test plan

  • rg for requirements.txt, MANIFEST.in, and black after the edit
  • python -m build without MANIFEST.in: sdist and wheel still contain fetch_cord/resources/*.yml and *.json, plus the Python modules from packages.find
  • pip install -e ".[dev]" (Black is not installed)
  • ruff check .
  • ruff format --check .
  • mypy fetch_cord tests
  • python -m pytest tests/ -q --cov=fetch_cord --cov-fail-under=80
  • python -m build on the committed tree
  • uv.lock still parses, and every locked dependency name resolves to a package

Results

Python 3.12.3 in a venv (python is not on PATH here). Commands match .github/workflows/ci.yml, plus python -m build.

$ pip install -e ".[dev]"
Successfully installed FetchCord-3.0.0 ... ruff-0.16.10 mypy-2.4.0 pytest-9.1.1
$ pip show black
WARNING: Package(s) not found: black

$ ruff check .
All checks passed!

$ ruff format --check .
44 files already formatted

$ mypy fetch_cord tests
Success: no issues found in 36 source files

$ python -m pytest tests/ -q --cov=fetch_cord --cov-fail-under=80
200 passed, 3 skipped, 13 warnings in 1.44s
Required test coverage of 80% reached. Total coverage: 88.35%

$ python -m build
Successfully built fetchcord-3.0.0.tar.gz and fetchcord-3.0.0-py3-none-any.whl

Sdist resources after deleting MANIFEST.in and the *.py package-data globs (setuptools 84.0.0). The wheel has the same yml/json files. Native *.py modules are in both archives via packages.find.

fetch_cord/resources/cpus.json
fetch_cord/resources/desktop.json
fetch_cord/resources/fetchcord_cmds.yml
fetch_cord/resources/fetchcord_conf.yml
fetch_cord/resources/gpus.json
fetch_cord/resources/motherboards.json
fetch_cord/resources/os.json
fetch_cord/resources/shell.json
fetch_cord/resources/system_types.json
fetch_cord/resources/systemd_service.py
fetch_cord/resources/terminal.json
fetch_cord/resources/windowmanager.json

uv is not installed in this environment, so the lock was edited by hand and checked with tomllib: no dangling dependency names, and the dev extra matches pyproject.toml.

Open in Web Open in Cursor 

cursoragent and others added 2 commits October 7, 2026 02:41
requirements.txt disagreed with the pyproject dependency floors and
nothing referenced it. CI formats with ruff, so the Black extra and
config go away. Package data keeps the yml and json resources; Python
modules stay via packages.find. The Homebrew formula no longer points
at a missing v3.0.0 tarball.

Co-authored-by: BlivionIaG <BlivionIaG@users.noreply.github.com>
The lock still listed black as a dev extra after pyproject stopped
doing so. click, platformdirs, and pytokens existed only for Black.
Other pins are unchanged.

Co-authored-by: BlivionIaG <BlivionIaG@users.noreply.github.com>
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.

2 participants