Development ‐ Form.io Server Upgrade - bcgov/SIMS GitHub Wiki

The Form.io server should be upgraded frequently to avoid too many major version gaps.

Select a Version

Step 1

While upgrading it, the current enterprise version can be used as a reference. The version can be checked in the Product Release Notes. On the page, note the version and release date of the most recent release. E.g.

Step 2

Go to the GitHub Release Notes and find the matching Major/Minor release version with the most recent Patch. E.g.

Where:

Note: It is possible that the required server version is not tagged in GitHub. If that's the case, then the latest commit for the stable version should be used instead. The git commit history can be cross referenced with the release date to determine the relevant commit.

Form.io Client Lib

The formiojs lib is used in the Web portal and should be updated using the npm command. In order to find the matching versions of the dependant libraries:

  • @formio/bootstrap
  • bootstrap
  • bootstrap-icons
  • @fortawesome/fontawesome-free

Check the package.json for the formiojs version being installed. E.g. for v5.2.1 go to v5.2.1 source and check the dependencies/devDependencies:

Form.io Server

The form.io Server version is defined along the make files (DevOps and Sources) in the constant FORMIO_SOURCE_REPO_TAG and also in the GitHub actions as default value.

In a regular server version upgrade where no other dependencies need to be upgraded (e.g. node version), the version should be changed in the below places.

Once the above places are changed, the make forms will rebuild the local server, and the Env Setup - Build Forms Server can be used to test the new build in Openshift.

Node version

The node version used to run the Form.io server needs to be kept in sync with with the version defined in the Dockerfile for the server version. E.g. v4.5.1 Dockerfile. The version update should be applied to:

Because there are some differences in the file structure/content, DO NOT copy the entire file. Just update the image version to match.

Be careful of the usage of LTS node versions in Form.io. While they are stable and supported, they underlying version will change over time (see Node.js releases. For this reason, we should use the numbered version associated with the LTS release at the time of the Form.uoi