FormsLang 1.2.1
FormsLang 1.2.1 hardens the existing review workflow. No new product features.
- Preserve short executable bodies such as
EXIT_FORM;andCLEAR_FORM;. - Keep package specifications and bodies as separate review tasks.
- Refuse changed source before it can reuse an earlier approval.
- Preserve current source when a same-name upload fails.
- Keep header actions reachable at narrower desktop widths.
- Fix frozen-engine packaging and version metadata.
Upgrade: reopen the original unchanged XML/FMB in its existing output directory
to recover omitted units as pending review. Existing decisions are preserved.
Opening only the session database does not rescan source. Use a separate -o
directory for a changed revision.
Validation: 945 tests passed on Windows/Python 3.13; one Windows symlink test was
skipped for lack of symlink privileges. Ruff passed. Chrome checks covered
1100/1280/1380 px, Doc, Preview, ZIP export and approval persistence after reload.
The packaged engine reports 1.2.1 and produces identical ZIP bytes on repeated
exports from the same session.
SQLcl validated the packaged engine's ZIP successfully in /nolog mode.
The MSI was extracted administratively into an isolated QA directory; its
engine matches the tested binary byte for byte and reports version 1.2.1.
SHA256SUMS.txt accompanies the Windows NSIS and MSI installers.
All 10 CI jobs passed for commit 370e639: Windows and Ubuntu with Python
3.10, 3.11, 3.12 and 3.13, Ruff, and deterministic showcase export.
CI evidence: https://github.com/B2DEV-TECH/FormsLang/actions/runs/34006842599
These checks do not certify clean-machine installer upgrades or full runtime
equivalence with production Forms modules. The real-corpus and Forms/APEX
functional comparison remain pending; see docs/quality-acceptance.md.