Skip to end of metadata
Go to start of metadata

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.


  1. One week prior to code freeze
    1. Stop merged 3rd party Dependa-Bot PRs (unless critical bug fixes)
    2. Pin 3rd party docker images to patch level in compose builder
  2. Code Freeze
  3. Update edgex-global-pipelines to enable new release name. (example)
  4. Update all modules & services to use latest go-mod dev tags
    1. Update go-mod-secrets with latest version of go-mod-core-contracts (example)
    2. Update go-mod-bootstrap with latest versions of other go-mods (example)
    3. Update SDKs with latest versions of go-mods (Examples: app-functions-sdk-go, device-sdk-go)
    4. Update all services with latest versions of their go-mods and SDKs (example)
  5. Verify TAF Tests all pass (Jenkins Pipelines)
  6. Perform Manual Testing
  7. Fix bugs if needed, repeat steps #3 thru #5 as necessary.
  8. Generate and prepare changelogs. Ask WG Chairs to make necessary changes if necessary. (example)
  9. Release go-mods
    1. Update changelogs for Go Mods (example)
    2. Release go-mod-configuration, go-mod-core-contracts, go-mod-registry,  (example)
    3. Update go-mod-secrets and go-mod-messaging with release version of go-mod-core-contracts (example)
    4. Release go-mod-secrets and go-mod-messaging (example)
    5. Update go-mod-bootstrap with release version of other go-mods (example)
    6. Release go-mod-bootstrap (example)
  10. Release SDKs  (app-functions-sdk-go, device-sdk-go)
    1. Update SDKs with released versions of go-mods (app-functions-sdk-godevice-sdk-go)
    2. Update changelogs for SDKs (example)
    3. Update App Template go.mod with SDK version (example)
    4. Release SDKs (example)
  11. Release edgex-go
    1. Update with released versions of go-mods (example)
    2. Update changelog (example)
    3. Release Core/Support/Security services (example)
  12. Release App Services (app-service-configurable & app-rfid-llrp-inventory)
    1. Update with released version of SDK and go-mods (example)
    2. Update changelogs for App Services (example)
    3. Release App Services (example)
  13. Release Device Services (Confirm which devices with Device Services WG)
    1. Update with released versions of SDK and go-mods (device-mqtt-go example)
    2. Update changelogs for Device Services (device-mqtt-go example)
    3. Release Device Services (example)
  14. Release UI & CLI (edgex-ui-go)
    1. Update with released versions of go-mods (Ex: UI part1, part2, part3)
    2. Update changelog (ui-example, cli-example )
    3. Release UI/CLI (example)
  15. Release Compose files
    1. Run CI Job (Jenkins Job)(Run without parameters for dry-run.)
      1. Creates commit / branch (example)
      2. Removes Jenkins file
    2. Update README’s (example)
    3. Make any needed version tweaks (example)
    4. Test that all images can be pulled and started appropriately
      1. make run no-secty [all service options]
    5. Merge tweaks PR (example)
    6. Tag commit on newly created branch
  16. Update examples (edgex-examples)
    1. App Service examples use current released SDK (example)
    2. Device Service use current released SDK (example)
    3. Helm Chart use current release images. (example)
    4. Tag example repo (example)
  17. Release Docs (edgex-docs)
    1. Update example links to use release tag (example)
    2. Release/Run CI Job (example)
    3. Merge PR’s from CI Job (example)
  18. Update publishing of swagger
    1. edgex-go (example)
    2. app-functions-sdk-go (example)
    3. device-sdk-go (example)
    4. device-onvif-camera (example)
      1. Change version in JSON swagger generation config file
      2. Run `make openapi` to generate swagger 
  19. Update Docker image descriptions
    1. Update Docker Hub descriptions (example)
    2. Manually trigger build to publish changes (Jenkins Job)
  20. Tag TAF
    1. TAF team switches to release branch (example
    2. Tag TAF (example)
  21. If next release is a major release
    1. Update all semver to create tags for the new major version
    2. Update all modules to be the next major version - ie v2 → v3, update all import statements for the new major version, and update all mocks in the following order
      1. Update go-mod-configuration, go-mod-core-contracts, go-mod-registry
      2. Update go-mod-secrets and go-mod-messaging (Note that the mocks in go-mod-messaging must be updated to ensure that the nats.go package is in the import statement)
      3. Update go-mod-bootstrap
    3. Update all go-sdks to be the next major version - ie v2 → v3, update all import statements for the new major version, and update all mocks
    4. Update edgex-go  import statements for its dependent EdgeX modules
    5. Update all app services'  import statements for its dependent EdgeX modules
    6. Update all device services'  import statements for its dependent EdgeX modules
  • No labels