Skip to content
John Kerl edited this page Oct 5, 2022 · 20 revisions

Starter info

Spec

Docs

Branches and releases

  • Branches: main-old, main

    • As of September 2022 the main-old branch is released at PyPI and is recommended for installation
    • The main branch is effectively a dev branch
  • Old PyPI (needs updating): https://pypi.org/project/tiledbsc/, https://test.pypi.org/project/tiledbsc/

  • New PyPI (incomplete, test only): https://test.pypi.org/project/tiledbsoma/

  • Tag at https://github.com/single-cell-data/TileDB-SOMA/releases

    • Tag off main-old for old-api-impl; when we start doing releases for new-api-impl we'll tag off main
    • Include in the release notes all the PRs from the autogenerated changelog but organize them as follows:
      • New features added
      • Minor changes
      • Bug fixes
      • Upcoming deprecation notices
      • Breaking changes
  • In case of backport fixes we will imitate what core does wherein it uses release branches like release-2.11

  • Tagging plan:

    • While main-old is the deliverable and main is in development:
      • Release main-old as 0.1.14 etc
        • Users who want to install the existing tiledbsoma code will be able to do pip install tiledbsoma
      • Release main as 0.5.0a1 etc -- the key is the a
        • PyPI will automagically treat this as a "pre-release" at the PyPI level
        • Also flag the GitHub release as "pre-release" at the GitHub level even though that isn't necessary for PyPI
        • Users who want to install this version can do pip install --pre tiledbsoma
    • Once main is released:
      • Continue to release main-old as 0.1.19 etc
      • Release main as 0.5.2 etc -- no a -- or, maybe 1.0.0 etc
      • Users who run pip install tiledbsoma will get this main version
      • Users who want main-old can ask for it via pip install tiledbsoma~=0.1.x

Automated QA

  • These run in CI, so you can run them locally (in apis/python) before putting up a PR: black, isort, flake8, mypy, python -m pytest tests
  • See also #193 for an opt-in way to use pre-commit hooks, if you prefer

Coding and code review

  • 1 reviewer suffices unless stated otherwise, unless explicitly:
    • If the author wants more than one approval, they should @-tag the people they need
    • If the one accepting reviewer says "LGTM, but I lack enough context on ____ to be sure" they should say so (and, ideally and if possible, @-tag someone who they think would be a good second approver)
  • Squash-and-merge is preferred