Skip to content

Contributing

fwl-io is at version 0 and open for suggestions from the collaboration. The API is not yet frozen, so this is the right moment for structural feedback.

Giving feedback

  • Open a GitHub issue for any suggestion, from naming to architecture. If it concerns one of the stated design decisions, say which one.
  • Small fixes are welcome directly as pull requests.

Development setup

git clone https://github.com/FormingWorlds/fwl-io.git
cd fwl-io
pip install -e ".[develop]"

Before opening a PR

pytest                                          # full suite, no network needed
ruff check src tests && ruff format --check src tests
  • Keep tests offline: exercise download paths against a local HTTP server (see tests/conftest.py), never against live services in the PR tier.
  • Use the tiered pytest markers (unit, smoke, integration, slow).
  • New behavior needs a test that fails without the change.

Releasing

Releases are tagged with CalVer (YY.MM.DD) on main; setuptools-scm derives the package version from the tag.