Releases¶
The pack follows dirigent's version. A release of dirigent is a release here: the pack relocks
its dirigent packages at the tagged commit, moves to the same number, and is tagged vX.Y.Z
with a GitHub release of its own. So dirigent-dhis2 0.13.0 is the pack built against dirigent
0.13.0, and the two numbers are never read as independent.
Every release, with its notes, is on the pack's releases page. What changed in the engine under it is in dirigent's release notes.
An instance installs a matching pair: the pack's version and the dirigent it was released with. A pack built against an older dirigent is not supported, because the plugin contract changes directly before 1.0 rather than through compatibility shims.
0.36.0¶
Fixed¶
dhis2-periodtakes every DHIS2 period type: bi-weekly, the weekly variants starting on another day, bi-monthly, six-monthly (and from April or November), quarterly from November, and the financial years. It took yearly, monthly, daily, quarterly and weekly alone.
0.35.0¶
The imports answer the same keys, and the metadata export counts its rows as totals.
This breaks¶
| Block | Was | Is |
|---|---|---|
dhis2.metadata_export |
output.counts.<resource> |
output.totals.<resource>; counts is an import's alone |
New¶
dhis2.data_value_set_importanswersdry_runandobjectsbesidestatus,sent,countsandconflicts, the keysdhis2.metadata_importanddhis2.tracker_importanswer. A data value summary names no value it took, so itsobjectsis always empty.
0.34.0¶
The read side's gaps are closed, and the read and import blocks answer in one shape per kind of work, described on the block reference.
This breaks¶
A document that references these outputs needs its references changed. There are no aliases for the old fields.
| Block | Was | Is |
|---|---|---|
dhis2.metadata |
output.body.<resource>, output.body.pager |
output.rows, output.pager (page, page_size, total, page_count, more), null when not paged |
dhis2.tracker |
output.body.instances, the page fields in output.body |
output.rows, output.pager |
dhis2.analytics_query |
output.body.rows, each row a list in header order |
output.rows, each row an object keyed by header name; the grid as DHIS2 sent it stays under output.body |
dhis2.data_value_set_import |
output.imported, output.updated, output.ignored, output.deleted |
output.counts.imported, .updated, .ignored, .deleted, beside the new output.sent |
The refusals of a job a block follows are coded for any job rather than for analytics alone:
dhis2.analytics.no_task_reference, dhis2.analytics.task_disappeared and
dhis2.analytics.no_result are dhis2.task.no_reference, dhis2.task.disappeared and
dhis2.task.no_result.
The pack's shelves carry no credential. Every document names its connection under
requires.connections: dhis2-play, a dhis2 connection, or dhis2-play-http, an http
one, where they carried dhis2-demo before, so create them once with
dg connection create and run the documents on the instance.
Three refusals are new, so a step that passed before can fail now:
- An export, a tracker read or an event or enrollment analytics query scoped to a uid the
instance does not know fails with
dhis2.unknown_uidsinstead of answering empty.require_known: falserestores the old behaviour. dhis2.data_value_set_importrefusesdata_valuesthat is not an object holding adataValueslist, withdhis2.import.no_data_values, before anything is sent. The usual cause is${steps.export.output}where${steps.export.output.body}was meant.dhis2.data_value_set_exportrefuses a config without a data, an org unit and a period selector at validation;data_set,periodandorg_unitare no longer each required, since a list, a group, a date range or a last-updated bound may stand in for them.
New¶
dhis2.data_value_set_exporttakes several data sets, data elements, periods and org units, data element and org unit groups,start_datewithend_date,last_updatedandlast_updated_durationfor an incremental sync,include_deleted, and the four id schemes.dhis2.trackersays inpager.morewhether rows match past the page read, counts them withtotal: true, and reads every page withall_pages: true, bounded bymax_rows,max_pagesandmax_totaland failing withdhis2.tracker.cap_reachedrather than answering part.dhis2.data_value_set_importanswerssent, the values the document held, and fails a summary that took none withrequire_values: true.dhis2.data_value_set_exportanddhis2.data_value_set_importtakeformat:json,csv,xmloradx. An export in text is written to storage aturiwith its head inlined astext; an import reads text inline or a stored document atdata_values_uri, and takes the four id schemes. ADX is exported by 2.41 and 2.42 only, and imported by every version.- New blocks:
dhis2.data_store,dhis2.sql_view,dhis2.validation_run,dhis2.predictor_run,dhis2.resource_tables_runanddhis2.task_wait, each with an example on thedhis2shelf.