Changelog#

All notable changes to popo are listed here, newest first. Versions follow semantic versioning; before 1.0 the API may change.

v0.2.0 (2026-10-13)#

Features#

  • powerflow: Record customer-terminal voltages per transformer in sweeps

Bug fixes#

  • network: Read_transformers reports the secondary winding by default

Refactoring#

  • plotting: [breaking] Remove comparison_plots

Documentation#

  • Landing page organised by task, with figures from the tutorials

  • Executed quickstart, plainer landing panels and a redesigned overview

  • User guide with executed examples, and figures in the thesis style

  • Tutorials as a gallery of thumbnails from their own figures

  • API reference with one page per subpackage and per object

Build and packaging#

  • Drop lets-plot from the plot extra

  • Bump the minor version for breaking changes below 1.0

Continuous integration#

  • release: Generate the changelog with git-cliff, and show it in the docs

v0.1.1 (2026-10-12)#

Documentation#

  • readme: Replace the internal status notes with a public status and citation

v0.1.0 (2026-10-12)#

Features#

  • standards: Voltage limits and inverter capability curves

  • network: Transformer reader capturing both rating conventions

  • Extract power flow, scenarios, estimation and network survey

  • scenarios,network: Port power-factor profile and residential-load enumeration

  • network,powerflow: Add weather, screening and sweep orchestration modules

  • estimation: Port coherent-vs-incoherent state-estimation study

  • profiles: Extract household, PV, EV and SMART-DS profile synthesis

  • plotting: Add popo.plotting, a standalone figure-style subpackage

  • Add Circuit, result tables, Volt-Watt, storage and per-customer voltage events

  • estimation: Check conversions, count observability, add line sensors

  • brand: A bat whose wing bones are a feeder, and a day/night overview

Bug fixes#

  • ci: Pin UV_PYTHON per matrix leg so the 3.13 test job actually runs on 3.13

  • test: Widen US sweep regression tolerance for cross-platform solver variation

  • scenarios: Widen write_load_shape’s values type to ArrayLike

  • powerflow: Rename run_eu_sweep to run_uk_sweep, matching what it reproduces

  • plotting: Correct LaTeX rendering, make the logo black

  • docs: Give the overview figure’s top label proper margin

  • plotting: Resolve ty type-check errors

  • powerflow: Read the whole transformer secondary

  • scenarios: Connect each installation on its customer’s own phase

  • estimation: Correct the meter sign, failure detection, substation measurement and conversion ratio

Documentation#

  • Record what is being extracted and why

  • Correct stale Status section to reflect actual extraction progress

  • Add end-to-end simulation guide for the DSS-US case study

  • Document all three thesis datasets accurately, add DSS-UK walkthrough

  • notebooks: Add OpenDSS LV modeling tutorial on popo’s API

  • notebooks: Add DER time-series modeling tutorial on popo’s API

  • Add popo.profiles to the module table, link the two tutorial notebooks

  • Trim README prose, drop em-dashes, add overview figure

  • Restore schematic overview figure, match thesis serif typography

  • Add a bat logo mark, embed it in the overview figure

  • notebooks: Write the tutorials as guides to popo, from corrected results

  • notebooks: Add an LV state-estimation tutorial

  • Add a Sphinx site in popo’s brand, ported from twiga-forecast’s

Tests#

  • estimation: Raise model/wls/study coverage without requiring pandapower

  • integration: Add US sweep regression test against a real recorded run

  • integration: Add UK sweep regression test against a real recorded run

  • plotting: Add unit tests for popo.plotting

Build and packaging#

  • Publish as pop-flow on PyPI

  • Keep test data and the secrets baseline out of the sdist

  • Publish as popo-flow on PyPI

Continuous integration#

  • Add a manual release workflow

  • Re-lock after a release bump; use absolute README image URLs

  • Build docs on pull requests and publish them to sambaiga/popo-docs

  • publish: Let the PyPI job read the private repository, and retry a tag by hand

Maintenance#

  • Project scaffolding, tooling and package skeleton

  • pre-commit: Sort imports as a hook of its own