QuantEcon / QuantEcon/scipy_tutorial_2026

Consolidate dependency files (environment.yml vs requirements.txt vs requirements-build.txt)

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

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Summary

There are three overlapping dependency manifests that disagree on the details, and only one of them is actually used. This makes it easy for deps to rot and — more importantly — means a local setup that follows the README can't run the JAX lectures.

The three files

File Contents Used by?
environment.yml python=3.13 + anaconda metapackage + pip: jupyter-book & sphinx stack ✅ the only one CI uses (environment-file: environment.yml)
requirements.txt matplotlib, numpy, jax, numba ❌ referenced nowhere
requirements-build.txt matplotlib, numpy, jax, numba + jupyter-book & sphinx stack ❌ referenced nowhere

grep confirms nothing in .github/, scripts/, or README.md references either requirements*.txt. CI builds the env from environment.yml, then installs JAX out of band via pip install -U jax (ci.yml, publish.yml).

Problems

  1. No single source of truth — three files, two of them orphaned and liable to rot.
  2. Redundancy via the anaconda metapackageanaconda already bundles numpy, matplotlib, and numba, so the explicit lines in the requirements files duplicate it.
  3. numba is listed everywhere but unused (via anaconda + both requirements files) — see #2 (Numba advertised but unused).
  4. Likely channel typoenvironment.yml declares channels: - default (singular); the canonical conda channel is defaults, which the other QuantEcon lecture repos use.

Suggested direction

Pick one source of truth. Two QuantEcon-friendly shapes:

  • Conda-first (matches CI): add jax to environment.yml, drop the unused numba, fix defaults, and delete both requirements*.txt. The separate CI pip install -U jax could then go away.
  • Keep a minimal requirements.txt for the Colab / "just run the notebooks" path (matplotlib, numpy, jax), referenced from notebooks/README.md, and make environment.yml the single build source of truth (remove requirements-build.txt).

Either way: one runtime manifest + at most one build manifest, JAX listed where the README points, and the channel name corrected.

Open question before any consolidation

Related: #2 (numba unused), #5 (GPU runner / RunsOn).

Contributor guide

No contributing guide indexed for this repository

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 environment.yml, requirements.txt, and requirements-build.txt with the CI references in .github/ci.yml and publish.yml, then check README.md and notebooks/README.md. Review related issues #2 and #5 before choosing a consolidation shape. Done means the selected manifests are the only maintained dependency sources, JAX is listed where the setup instructions point, and CI no longer relies on redundant installation steps.

Written by the indexing model from the issue text.

Assessment

Tech stack
anaconda, jupyter-notebook, python
Domain
build-system, ci-cd
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.