QuantEcon / QuantEcon/QuantEcon.py

FIX: Correct install metadata: requires-python, dependency floors, classifiers

Open
#869 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug high-priority
Dominant language
Python
Stars
2.4k
Forks
2.3k
Avg merge
3d 3h
Merged PRs (30d)
3

Description

Problem

pyproject.toml contradicts itself and reality:

  • requires-python = ">=3.7" — Python 3.7 has been EOL since June 2023, and 3.8–3.11 are neither in CI nor in the classifiers, which list exactly 3.12 / 3.13 / 3.14.
  • Floors numpy>=1.17.0 (2019), numba>=0.49.0 (2020), scipy>=1.5.0 (2020) permit pip to build environments untested for years — while the code has moved on (util/compat.py exists for NumPy≥2 semantics; _dle.py carries a NumPy 2.4 workaround). The floors are also internally inconsistent with the classifiers: numba 0.49 cannot run on any Python version the classifiers name (the first numba supporting 3.12 is 0.59).

Net effect: pip install quantecon succeeds on configurations we do not support, and failure surfaces later as user bug reports. Wrong metadata is a shipped defect.

Proposed change
  1. Set requires-python = ">=3.12" to match CI and classifiers (or extend CI first if broader support is intended — either way, make the three agree).
  2. Raise floors to the oldest combination actually exercised, e.g. the versions resolved by environment.yml on the oldest supported Python.
  3. While in the file: decide Development Status :: 4 - Beta (12+ years in; 5 - Production/Stable likely reflects reality) — one-line change, same edit.
  4. Add a release-checklist line: metadata review on every Python-version or floor change.
Acceptance criteria
  • requires-python, classifiers, and the CI matrix name the same version set
  • pip install on a now-unsupported Python is refused by the resolver (users there keep resolving to older quantecon releases — the correct outcome)
  • Floors verified by at least one CI leg or a documented local run

From the July 2026 technical-debt audit (AI-assisted; claims verified against 28d4b3b on 2026-07-25).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing pyproject.toml with the CI matrix and environment.yml, then locate the release checklist mentioned in the issue. Verify the supported Python versions and dependency floors against the named classifiers and CI coverage, and confirm that pip rejects unsupported Python versions. Done means the metadata, CI, dependency floors, status, and checklist agree, with the floors verified by CI or a documented local run.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, ci-cd, release
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.