The following checklist helps to identify the series of actions that need to be done leading up to a normal EdgeX release. The examples below were taken from the Kamakura release in May 2022.
- Code Freeze
- Update edgex-global-pipelines to enable new release name. (example)
- Update all modules & services to use latest go-mod dev tags
- Update go-mod-secrets with latest version of go-mod-core-contracts (example)
- Update go-mod-bootstrap with latest versions of other go-mods (example)
- Update SDKs with latest versions of go-mods (Examples: app-functions-sdk-go, device-sdk-go)
- Update all services with latest versions of other go-mods and SDKs (example)
- Fix bugs if needed, repeat step #2 as necessary.
- Perform Manual Testing
- Verify TAF Tests all pass (Jenkins Pipelines)
- Generate and prepare changelogs. Ask WG Chairs to make necessary changes if necessary. (example)
- Release go-mods
- Update changelogs for Go Mods (example)
- Release go-mod-core-contracts, go-mod-registry, go-mod-messaging, go-mod-configuration (example)
- Update go-mod-secrets with release version of go-mod-core-contracts (example)
- Release go-mod-secrets (example)
- Update go-mod-bootstrap with release version of other go-mods (example)
- Release go-mod-bootstrap (example)
- Release SDKs (app-functions-sdk-go, device-sdk-go)
- Update SDKs with released versions of go-mods (app-functions-sdk-go, device-sdk-go)
- Update changelogs for SDKs (example)
- Update Ap Template go.mod with SDK version (example)
- Release SDKs (example)
- Release edgex-go
- Update with released versions of go-mods (example)
- Update changelog (example)
- Release Core/Support/Security services (example)
- Release App Services (app-service-configurable)
- Update with released versions of SDK and go-mods (example)
- Update changelogs for App Services (example)
- Release App Services (example)
- Release Device Services (Confirm which devices with Device Services WG)
- Update with released versions of SDK and go-mods (device-mqtt-go example)
- Update changelogs for Device Services (device-mqtt-go example)
- Release Device Services (example)
- Release UI & CLI (edgex-ui-go)
- Update with released versions of go-mods (Ex: UI part1, part2, part3)
- Update changelog (ui-example, cli-example )
- Release UI/CLI (example)
- Release Compose files
- Run CI Job (Jenkins Job)(Run without parameters for dry-run.)
- Creates commit / branch (example)
- Update README’s (example)
- Make any needed version tweaks (example)
- Test that all images can be pulled and started appropriately
make run no-secty [all service options]
- Merge PR’s tweaks PR (example)
- Update examples (edgex-examples)
- App Service examples use current released SDK (example)
- Device Service use current released SDK (example)
- Helm Chart use current release images. (example)
- Tag example repo (example)
- Release Docs (edgex-docs)
- Update example links to use release tag (example)
- Release/Run CI Job (example)
- Merge PR’s from CI Job (example)
- Update publishing of swagger
- Update Docker image descriptions (example)
- Tag TAF