Skip to content

v1.31.0

Choose a tag to compare

@mortenoh mortenoh released this 01 Oct 09:45
· 31 commits to main since this release
6bb8e1f

A combined release: every dhis2w package and pack moves to 1.31.0 together. Its theme is DHIS2 2.44, which arrives as a preview, and generated models that no longer depend on which boot of DHIS2 they were captured from.

DHIS2 v44 (preview)

  • dhis2w_client.v44, dhis2w_core.v44 and dhis2w_client.generated.v44 join v41, v42 and v43. A client connected to a 2.44 server binds the v44 tree on its own; Dhis2.V44 pins it. v43 stays the default plugin tree.
  • 2.44.0 is not released yet, so the local stack runs one pinned build of the 2.44 development line (dhis2/core-dev, revision b732899, pinned by digest). It is re-pinned to 2.44.0.0 when that ships.
  • What 2.44 changes, and how the v44 tree meets it:
    • OAuth2 clients can register only the OpenID scopes (openid, email, profile, username) and must require PKCE. The v44 tree registers exactly that and logs in with openid; d2w profile ... --scope defaults to openid on v44.
    • TrackedEntityAttribute.confidential no longer exists; the v44 accessor, service and d2w metadata command take no --confidential.
    • A failed background job wipes its notification feed about a second after it ends. client.tasks.await_completion and every --watch read the job's recorded outcome when that happens, on every tree.
  • infra/scripts/clone_version_tree.py copies the hand-written trees to a new major and lists the lines to review, and docs/architecture/versioning.md has the steps for adding a major.

Generated models

  • d2w dev codegen fetch-openapi captures the live OpenAPI document, and make dhis2-codegen-all runs it, so both halves of a generated tree follow the pinned release.
  • DHIS2 builds its OpenAPI document and /api/schemas at startup, and one image answers differently on different boots. The codegen pins every shape seen to move, so any capture of a release emits the same models. Visible effect: CategoryOption.aggregationType is the AggregationType enum on every tree, and Page.items on v42 and v43 is untyped.
  • d2w dev codegen oas-flips lists what differs between captures of one release; infra/scripts/openapi_stability.sh samples several boots.

Fixes

  • d2w doctor bugs parses development versions such as 2.44-SNAPSHOT.

Upstream DHIS2 findings

BUGS.md carries a full retest of every entry on 2.44 (103 still reproduce, 11 are fixed there) and new entries #133 to #143, among them the boot-dependent OpenAPI document (#133), the 2.44 OAuth2 registration rules (#134), Gist-shaped list responses with an http:// next-page link (#136), and /api/audits/trackedEntity answering 500 on 2.42 to 2.44 (#137).

Dependencies

SQLAlchemy 2.1, httpx2 2.13, a refreshed lockfile; CI on setup-uv 10.2.0.