Releases
Versions currently supported, dependencies, and release notes for the CHT Core Framework
Instructions for updating medic/pyxform to new XLSForm/pyxform releases
The medic/pyxform repository is a fork of XLSForm/pyxform with custom modifications for the CHT. This page documents the process for updating medic/pyxform to a new upstream release from XLSForm/pyxform, ensuring the custom changes are preserved and the process is replicable.
medic/master branch contains the latest tagged code for pyxform-medic, with all custom commits applied on top of the target release from XLSForm/pyxform.XLSForm/pyxform, a maintainer should create a new branch, <target_tag>-rebase (e.g., v4.0.0-rebase), from the ref of the target tag on XLSForm/pyxform and push it to the medic repository.medic/<target_tag>-rebase branch. Once merged, force-push the rebase branch to medic/master.cht-conf.Clone your fork of medic/pyxform locally:
git clone https://github.com/<github_user>/pyxform.git
cd pyxformAdd remotes:
git remote add xlsform https://github.com/XLSForm/pyxform.git
git remote add medic https://github.com/medic/pyxform.gitFetch all updates and tags:
git fetch --all --tagsEnsure no uncommitted changes:
git statusCreate a new local rebase branch for the target XLSForm tag (e.g., v4.0.0):
git checkout -b <target_tag>-rebase medic/masterCheck which custom commits will be rebased:
git log --oneline -7The oldest commit listed should say “BEGIN DOWNSTREAM CHANGES FOR medic/pyxform”. Newer commits are the custom changes. Make a note of all of these commits for future reference to ensure none are lost in the rebase.
Rebase on top of the target XLSForm tag:
git rebase <target_tag>Fix any conflicts and verify the commit list:
git log --oneline -7Push to your fork and open a PR for review:
git push origin HEADOpen a PR from <github_user>/<target_tag>-rebase to medic/<target_tag>-rebase. (Note that a maintainer should create the medic/<target_tag>-rebase branch from the ref of the target tag on XLSForm/pyxform.)
Merge the PR: Once approved, the maintainer should merge the PR using the “Rebase Merge” button to keep all individual commits.
Force-push to master: After merging, the maintainer should checkout the merged branch and force-push it to master:
git checkout medic/<target_tag>-rebase
git pull
git push --force-with-lease medic <target_tag>-rebase:masterTag the release:
git tag -a <target_tag>-medic -m "Release <target_tag>-medic of pyxform-medic"
git push medic <target_tag>-medicAfter tagging the new release, update the executable shipped with cht-conf.
Install shiv for creating the zipapp:
pip install shivGenerate the zipapp:
shiv -e pyxform.xls2xform:main_cli -o xls2xform-medic .Copy the generated file to cht-conf:
Copy xls2xform-medic to cht-conf/src/bin.
Test the new version: Test the new version of pyxform/cht-conf by building both cht-core and cht-config-library with the branch version of cht-conf and make sure everything builds successfully.
This packaged pyxform will be automatically distributed on new versions of cht-conf.
Versions currently supported, dependencies, and release notes for the CHT Core Framework