Skip to content

FormsLang 2.2.0

Latest

Choose a tag to compare

@gevianajr gevianajr released this 24 Sep 13:03
· 55 commits to main since this release

FormsLang 2.2 lets a team see the architecture of an Oracle Forms estate
from the evidence the engine already saved: where the modules sit, what they
reach, which candidates deserve attention and what a person has decided.
It adds views, not analysis claims. There is no new detection rule, no AI
dependency, no Python runtime dependency and no Node build chain. Everything in
2.1.0 is kept, and Oracle APEX 26.1 / APEXlang remains the only implementation
target.

Understand first. Modernize second.

Executive and Technical views

  • A toggle switches the presentation between Executive and Technical. Only the
    labels change: "Shared PL/SQL service" or "PL/SQL package", "Changes data" or
    WRITES. Identities, counts and evidence are the same in both.
  • In Executive mode, hotspot evidence and Module 360 composition are worded in
    plain language. For example, DIRECT_DML_BYPASSES_API reads "Direct table
    access bypasses a related shared service", and the code stays in the tooltip.
    Technical mode shows the exact Oracle terms and engine signal codes.
  • The choice is remembered for the browser session and is never stored in the
    project.

Overview

  • Estate at a Glance groups the estate by architectural lane.
  • An investigation board, source coverage and a journey panel sit beside it.
    Every number comes from the saved assessment.
  • Start Here still orders what to review first and says why on each line.

Hotspot Explorer

  • Filters by hotspot type, severity and module, and a modules × hotspot-type
    matrix.
  • Each candidate (possible API bypass, duplicated business-rule candidate,
    global state coupling) shows Why FormsLang noticed this and What this
    does NOT prove
    . Candidates are not verdicts.
  • Show on map, Open Module 360 and Review the linked finding keep
    the context, and Back returns to the filtered list.

System Map

  • The estate view is laid out by lane on the server, deterministically and
    without a force simulation. It is bounded and states what it left out.
  • The focus view draws what reaches the node on the left and what it reaches on
    the right, flags cycles and opens centred on the focus.
  • Lenses, pan and zoom, a minimap, keyboard navigation and an inspector. A
    relationship table is the accessible alternative to the drawing.

Module 360

  • One module as a whole: composition, neighbours, hotspot candidates, findings
    and review state. A decision recorded in Review is counted there at once.
  • Module 360 is a view of the saved evidence. It is not a migration plan, an
    effort estimate or a readiness verdict.

Review and reports

  • Review shows where the finding's module sits and its decided and deferred
    counts. A deferred finding is not a decided one.
  • The executive and technical reports carry two static SVG figures: the estate
    by lane and the attention matrix. They are built from the same redacted
    snapshot as the rest of the report, contain no script, link or
    foreignObject, and are byte-stable when the project is reopened.

Safety and accessibility

  • Every HTML and SVG output escapes untrusted text.
  • Exported figures and packages never carry HOST, URL or connect-string
    literals. The authorized local map may show them, as in 2.1.
  • Map controls have names, a node's risk is stated in its label and not only
    by colour, and the 2.2 views fit 1920×1080 down to 390×844 without horizontal
    page scroll.
  • FormsLang still produces no health score, migration percentage, effort,
    schedule or ROI.

Upgrade Notes

  • Install the 2.2.0 Windows installer over 2.1.0. Existing projects, reviews
    and artifacts are kept.
  • Projects analysed by 2.1.0 open as CURRENT with the same analysis revision.
    They are not reanalysed, and the 2.1 HTTP API fields are kept.
  • Reports exported by earlier versions are not changed. Export them again with
    2.2 to get the figures.

Walkthrough

The modernization lab walkthrough follows
the fictional Legacy Order Management lab from the estate to a recorded human
decision and the reports.

Validation

Release commit 28d100daba40e2f62ea1c2405f8afb1ddf1e737e, the same SHA as the tested candidate (main fast-forwarded).

  • CI 35992029685: 13/13 green. It covers ruff, the deterministic showcase export, SQLcl apex validate (no database), Workbench and corporate project browser acceptance (Edge), and pytest on ubuntu and windows for Python 3.10–3.13. Ubuntu: 1824 passed, 5 skipped (Windows-only tests). Windows: 1829 passed. On attempt 1 the Windows py3.12 job failed 3 tests with the known pre-existing SQLite contention (database is locked / a job-polling 500). That job alone was re-run once on the same SHA and passed.
  • main CI 35999045429: 13/13 green on the first attempt.
  • Installer acceptance 35992028238: upgrade 2.1.0 → 2.2.0 passed for both MSI and NSIS. The run covers a clean install, the project workflow, uninstall and reinstall with preserved state, and the native desktop window and engine. It also runs, on the installed engine, the 2.2 visual journey Overview → Start Here → Hotspot → System Map → Review → Module 360 → Reports: 24/24 checks for each installer.
  • Local: 1824 passed, 5 skipped (symlink privileges). Ruff is clean. Corporate Edge acceptance 103/103.
  • Compatibility: 5 real projects created by v2.1.0 passed 95/95 checks under 2.2.0, with identical freshness verdicts and no historical row, descriptor or file changed.
  • Determinism: 44 report exports (including the 6 with figures) were byte-identical across repeated exports and fresh processes.
  • The frozen modernization benchmark (24 blobs) is identical to v2.1.0.

Full record: docs/quality-acceptance.md.

Assets

File Size (bytes) SHA-256
FormsLang_2.2.0_x64-setup.exe 14,768,223 71ca7db1686535f77390cd9dd28d51edaf921563bc092264280e5f8114c766f0
FormsLang_2.2.0_x64_en-US.msi 15,876,096 9970b49c557e09fe455a6550f3c6620d5d60c0761be1b34d753cbc467af2d457

The installers are unsigned and are exactly the CI artifacts the installer acceptance tested.

Known follow-ups:

  • the intermittent Windows SQLite contention failures (test_project_descriptor_concurrency, job-polling 500s), which predate 2.0;
  • code signing;
  • the review funnel, distribution bars and dependency/path explorer are deferred;
  • the Review layout at 390px, and the map controls overlap a column header in the focus view.

Full changelog: CHANGELOG.md · v2.1.0...v2.2.0