Releases
Compare environments, select changes and apply them forward.
- Compare: diff definitions and configuration data between two environments.
- Select: choose what goes into the release.
- Apply: the platform copies the selected definitions into a named release version, applies configuration data in foreign-key order and runs migration scripts.
- Pin: the target environment now runs that release version.
The same release cannot be applied twice. TAF Studio authors releases from Development to QA; promotion to Production is run through your own release process.
Definitions move on the step from Development to the next environment. Later steps apply configuration data and migration scripts.
Compare environments
Before you create a release, compare the environments. The platform produces two diffs between a source and a target environment:
- Configuration diff: which AppObjects, DSQs, screens and custom scripts were added, updated or deleted.
- Data diff: which records were added, updated or deleted, for AppObjects that have Versioning turned on in their settings. Use this for reference data such as categories, statuses and lookup lists that must be the same in every environment.
Comparing changes nothing. In TAF Studio, run TAF: Compare Environments.
Only turn on Versioning for AppObjects whose records are configuration or reference data. Business records created by users in each environment should not travel with releases.
What a release carries
| Part | What it holds |
|---|---|
| Details | A title, release notes, and a release type: major, minor or patch. |
| Release number | Generated by the platform from the type and the previous release: the first is 1.0.0, then a patch gives 1.0.1, a minor 1.1.0, a major 2.0.0. |
| Configuration | The AppObjects, DSQs, screens and custom scripts you selected from the configuration diff. |
| Data | The records you selected from the data diff. |
| Migration script | Optional SQL to run against the target database, for changes configuration cannot express. |
A release is created only when the app has at least two environments.
Create and deploy a release
The web app walks you through a release in steps; TAF Studio does the same from TAF: Releases.
- Details. Enter the title, release type and notes. The release number is filled in for you.
- Configuration. Review the configuration diff and select the items to include. You can ship one finished feature without dragging along unrelated work in progress.
- Data. Review the data diff and select the records to include.
- Script. Optionally add a migration script.
- Review and deploy. The review screen summarises each section (AppObjects, queries, screens, custom scripts and data records) with counts of added, updated and deleted items. Deploy applies the release to the target environment.
From TAF Studio, releases go from Development to QA. Promotion to Production is handled by your platform administrators. See Releases in Studio.
How a release is applied
- Configuration is written as the complete snapshot described above, so the new version is self-contained.
- Data is inserted, updated or deleted in the target environment's database in dependency order, worked out from the lookup fields between AppObjects, so a record is never written before the record it refers to.
- Migration scripts run in the order they were added, each with its own status and error message.
- Finalising records the new release number on the target environment and the release's published date.
Good practice
- Clear validation problems before you compare. In Studio, run
TAF: Check for problems. - Keep releases small and focused on one feature, and write notes a reviewer can follow.
- Test the release in QA with the roles your users have, not only as an administrator.
- Prefer configuration over migration scripts. A script is the right tool only for changes configuration cannot express.