Skip to content

Convert to using modern Python packaging infrastructure - #262

Closed
Thomas Hopkins (thopkins32) wants to merge 2 commits into
mainfrom
pyproject
Closed

Convert to using modern Python packaging infrastructure#262
Thomas Hopkins (thopkins32) wants to merge 2 commits into
mainfrom
pyproject

Conversation

@thopkins32

@thopkins32 Thomas Hopkins (thopkins32) commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Generated-by: opencode:gpt-5.5 and reviewed by me.

Migrated the repo to modern packaging/tooling:

  • Added pyproject.toml with Hatchling + Hatch-VCS, project metadata, scripts, dependencies, Ruff config, and pytest config.
  • Added sync-experiment extra: pip install -e ".[sync-experiment]". would break existing deployments and complicate conda-forge packaging.
  • Moved dev tooling into dev extra: pip install -e ".[dev]".
  • Kept PyYAML in core because nslsii.kafka_utils also uses it.
  • Replaced Versioneer with Hatch-VCS version generation.
  • Removed legacy packaging files: setup.py, setup.cfg, requirements*.txt, pytest.ini, .flake8, MANIFEST.in, versioneer.py, tracked nslsii/_version.py.
  • Removed stale Travis files and deploy key artifact: .travis.yml, github_deploy_key_nsls_ii_nslsii.enc.
  • Updated Pixi with dev, py310, py311, py312 environments and tasks.
  • Updated pre-commit to run Ruff format then Ruff lint/fix.
  • Updated GitHub Actions to install .[dev], run pre-commit, and build via python -m build.
  • Updated AGENTS.md for the new workflow.
  • Ran Ruff formatting across the repo.

Probably shouldn't be merged until recent PRs have been merged first. The formatting across the repository will cause rebasing/merging to be difficult.

Closes #206

@thopkins32

Copy link
Copy Markdown
Contributor Author

Will split this up into smaller PRs

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.

Update nslsii to use pyproject.toml

1 participant