Tool Upgrade Guides for GDK
Tool Upgrade Guides for GDK
This documentation provides standardized procedures for upgrading critical development tools in GDK. Following these guidelines ensures a smooth transition between tool versions while minimizing disruption to developers.
PostgreSQL
This guide outlines the process for updating the default PostgreSQL version in GDK.
The approach described here:
- Installs the new version for all users without making it the default.
- Allows users to manually test with the new version if desired.
- Prevents automatic upgrades of existing databases.
To update the default PostgreSQL:
Run initial tests with a scheduled pipeline:
Set the
TARGET_POSTGRES_VERSIONin_versions.gitlab-ci.yaml.This enables a nightly scheduled pipeline that:
- Replaces the current PostgreSQL version with the target version.
- Runs
GDK_SELF_UPDATE=0 gdk updateto install the target version and executesupport/upgrade-postgresql. - Starts GDK via
gdk start. - Performs a basic verification test by sending a
curlrequest to the sign-in endpoint.
Tests currently run on Linux (in Docker).
Monitor integration builds:
- Monitor
integration:postgres-upgraderuns. - Observe build results to identify compatibility issues.
- Document errors and their root causes.
- Create tracking issues for significant problems requiring resolution.
- Monitor
Resolve issues:
- Address all identified issues with appropriate fixes.
- Test fixes in the scheduled pipeline to verify their effectiveness.
- Update documentation with any special handling required for the new version.
Roll out the changes:
- Update
.tool-versionsto add the new PostgreSQL version. You must do this for both the GitLab and GDK projects. - Add a GDK announcement to inform users about the newly installed PostgreSQL version.
For example, see:
- Update
Verify installation:
- Monitor for installation issues reported by users.
- Address platform-specific installation problems, particularly macOS and Linux differences.
- Update installation scripts and documentation to resolve common issues.
Fully deploy the change:
- Once installation stability is confirmed, update
.tool-versionsto set the new version as default. - Move the new version to the first position in the version list.
- Communicate the change to all developers through appropriate channels.
- Provide guidance on handling any post-upgrade issues that may arise.
For example, see these MRs:
- Once installation stability is confirmed, update
Best practices
- Allow sufficient time between stages for thorough testing.
- Document all encountered issues and their resolutions for future reference.
- Consider platform-specific concerns, especially for macOS and Linux differences.
- Where possible, maintain backward compatibility during the transition period.
- Provide clear developer communication at each major stage of the process.
Last updated on