Skip to content

Work Log - 2026-04-27 - Python 3.14 Module Maintenance

🎯 Focus

  • Python 3.14 compatibility review and fixes across OpsDev.nz modules
  • Add missing tooling config and test coverage
  • Release oc_opsdevnz v0.2.4

✅ Completed

oc_opsdevnz v0.2.4 — Released

Created PR startmeup-nz/oc-opsdevnz#7, merged, tagged, and published to PyPI. Full change details are on the PR.

Smoke test: Verified the published module against the OpenCollective staging API (oc_opsdevnz whoami startmeup-nz --staging returned valid account data).

op_opsdevnz — New Test Coverage (unreleased)

  • Added 5 tests for env.load_refs() and 5 tests for octodns_hooks.resolve()
  • Added Python 3.14 classifier, from __future__ import annotations
  • Updated README dev section to use uv sync / uv run

octodns_metaname — Python 3.14 Compatibility (unreleased)

  • Added Python 3.14 classifier, from __future__ import annotations
  • Updated README dev section to use uv sync / uv run

🔧 In Progress

  • op_opsdevnz and octodns_metaname changes are on branch but need to be PR'd and released, next session.

🧠 Notes

Dev Environment

  • Set up GitHub CLI (gh) and GitLab CLI (glab) on the AlmaLinux 10 dev VM — both authenticated with john-opsdevnz and SSH keys

How We Work: Monorepo + Module Submodules

  • The public opsdev.nz repo on GitLab acts as a monorepo that organises work across multiple projects
  • Each tooling module (oc_opsdevnz, op_opsdevnz, octodns_metaname) lives in its own GitHub repo under startmeup-nz/ and is mounted as a git submodule
  • PRs and releases happen per-module on GitHub; the monorepo tracks which submodule version is current
  • This makes it easy to work on modules in context while keeping each one independently publishable to PyPI

⏳ Next

  1. op_opsdevnz release — Commit staged changes, create PR, bump version, release to PyPI
  2. octodns_metaname release — Same process
  3. DevOpsDays Wellington 2027 — Draft outreach message for recruiting co-organisers
  4. worklog-opsdevnz module — Evolve the worklog script into a proper publishable module
  5. RAMP project — Mid-May sprint planning for automated accounting reconciliation
  6. GitHub template repo — Create a backlog item for a standardised module template (CI, pyproject.toml, governance docs)

Token Burn

I used GLM-5.1 via OpenCode Go for help in this session.

Tokens: 156,530

About $2.76 spent.