Skip to content

feat: add pyproject.toml for PEP 517/518/621 packaging standardization - #110

Open
t0kubetsu wants to merge 2 commits into
D4-project:mainfrom
t0kubetsu:feat/pyproject-toml
Open

feat: add pyproject.toml for PEP 517/518/621 packaging standardization#110
t0kubetsu wants to merge 2 commits into
D4-project:mainfrom
t0kubetsu:feat/pyproject-toml

Conversation

@t0kubetsu

Copy link
Copy Markdown
Contributor

Summary

Details

Build system

Uses setuptools>=68 with the legacy build backend so the existing webapp/ layout is preserved without restructuring.

Project metadata

  • name = "plum-island", version = "0.1.0", requires-python = ">=3.11"
  • License: AGPL-3.0-only
  • Classifiers for Python 3.11/3.12/3.13, Security, Networking/Monitoring categories

Dependencies

Exact mirror of requirements.txt after #108flask-appbuilder==4.8.1, flask-Limiter==3.12, and bounded lower versions for APScheduler, netaddr, meilisearch, redis, PyYAML, pybgpranking2, pyipasnhistory. pyfaup-rs==0.2.0 kept as exact pin.

Dev extras

pip install -e ".[dev]" installs pytest>=8.0, pytest-cov>=5.0, ruff>=0.4.0.

Ruff configuration

  • target-version = "py311", line-length = 88
  • Lint rules: E, W, F, I (isort), UP (pyupgrade), B (bugbear), C4, PIE, SIM, S (bandit), RUF
  • webapp/sql_upd/*.py excluded entirely; tools/*.py exempted from S and T201

Pytest configuration

  • testpaths = ["tests", "tools"]
  • Markers: integration (requires live Kvrocks/Meilisearch), unit (pure unit tests)

Test plan

  • pip install -e ".[dev]" installs without errors
  • ruff check webapp/ runs without configuration errors
  • pytest --co -q collects tests without warnings about unknown markers

Closes #109

t0kubetsu added 2 commits May 19, 2026 11:02
Introduces PEP 517/518/621-compliant pyproject.toml covering:
- Build system (setuptools>=68)
- Project metadata, AGPL-3.0 license, requires-python>=3.11
- Pinned/bounded dependencies mirroring requirements.txt
- Optional dev extras: pytest, pytest-cov, ruff
- Ruff linter/formatter config (target py311, line-length 88)
- Pytest config with integration/unit markers

Closes D4-project#109
Aligns pyproject.toml version with the latest released version
recorded in release_note.md (MarmotUp Release v0.2604.0).
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.

Add pyproject.toml to standardize project metadata, dependencies, and tooling

1 participant