Skip to content

Port one MATLAB calibration utility to Python (good first issue) #463

@dblizinski

Description

@dblizinski

What this is

A small, bounded port from our legacy MATLAB calibration code to Python. The MATLAB→Python migration is the single most impactful body of work in the project right now — every ported utility unblocks downstream work for other contributors.

This issue is intentionally scoped tight: pick one utility, port it, write tests against the captured fixture data already in the repo, open a PR. That's it.

Why this matters

Until the calibration utilities are in Python, every new feature has to reach back into MATLAB. Every ported function compounds — once we're past a critical mass, the contribution barrier drops sharply for the next wave of Python developers.

What to do

  1. Comment on this issue to claim it. The lane lead will point you at two or three good candidate functions (small, bounded, well-suited to a first port).
  2. Set up a local dev environment per CONTRIBUTING.md.
  3. Port the chosen function to Python, following the structure in python-migration/ (or the most current migration branch — the lane lead will confirm).
  4. Write unit tests against the captured fixture data bundled with the repo.
  5. Open a PR against the python-migration branch.

Definition of done

  • Function works on bundled fixture data; tests pass locally.
  • Type hints present on the public interface.
  • Docstring describing inputs, outputs, and any assumptions inherited from the MATLAB version.
  • PR opened against the correct migration branch with a short description of what was ported and any decisions you made.

Skills

  • Python (any modern version — we use 3.10+)
  • Ability to read MATLAB (you don't need to write it)
  • Basic familiarity with pytest or willingness to learn

Scope estimate

4–8 hours, including environment setup the first time.

Helpful starting points


How to claim this issue

  1. Comment "I'd like to work on this" — we'll assign it to you.
  2. Open a draft PR within ~2 weeks of being assigned. (If life happens, just let us know — we'll unassign so someone else can pick it up.)
  3. Ask any setup questions on this issue or in our Discord #contributing channel.

Contact: community@openwater.health

By contributing, you agree to our Contributor License Agreement. (If the CLA isn't yet live when you start, we'll handle it once the flow is up.)/

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions