Developer’s Guide

This guide is intended for developers who want to contribute to the development of the nasdaq-protocols library.

Guidelines

Before merging to main, please ensure that the following guidelines are met:

  • All existing tests are passing.

  • New tests are added when needed.

  • Pylint reports no errors, 10/10

  • Code is documented and docstrings are added when needed.

  • Documentation is included in the markdown files under docs/.

Building

This project uses uv for dependency management, builds, tests, linting and docs – there is no tox.ini at the repo root.

Install the dev dependency group once:

$ uv sync --group dev

Then run each step individually:

$ uv run --group lint pylint --fail-under=10.0 "--ignore-patterns=.*egg-info.*,.*test.*" src/*
$ uv run --group test pytest --cov=src --cov-fail-under=97
$ uv build
$ cd docs && uv run --group docs make html

These are the same commands run by the Workflow Push GitHub Action (.github/workflows/wf-push.yml) on every push, so running them locally before opening a PR will catch most CI failures early.

Note

Looking for the tox-based workflow described in older versions of this guide? The project migrated its own build/test/lint/doc tooling to uv. tox is still used by generated downstream projects created via nasdaq-protocols-create-new-project – see Create New Project Guide – that is unrelated to building this repository.

FAQ

  • Why is pycharm debugger not stopping at breakpoints? Disable the coverage statement from pytest.ini. Refer https://stackoverflow.com/a/56235965/4248850

  • Why is the coverage not reported in pycharm? Disable the coverage statement from pytest.ini