github.com/instana/go-sensor@v1.62.2-0.20240520081010-4919868049e1/RELEASE.md (about) 1 Release Steps 2 ============= 3 4 All release steps rely on Github Actions. 5 If you do not have permission to run Github actions into this repository, please request it so. 6 7 > Make sure to have all your changes merged into the main branch before proceeding to a release. 8 9 ## Release Types 10 11 The Instana Go Tracer consists of three distinguished release types: 12 13 1. Release of the core module, aka `go-sensor` 14 1. Release of an instrumented package. Eg: `instrumentation/instagin` 15 1. Release of all instrumented packages updated for using the latest core 16 17 Each of these releases are described below: 18 19 ### Core Module Release 20 21 The core module needs to be released in a couple of cases: 22 23 1. When a new feature or improvement is made into the core. This basically means any change made in the root of the project that affects Go files. 24 1. When a new span is created. This will be needed if a new instrumentation is on the way and the span type is new, and needs to reside in the core module, according to the current design of the tracer. 25 26 Steps to release the core module: 27 28 1. Go to the [repository actions](https://github.com/instana/go-sensor/actions) 29 1. Click on [Go Tracer Release](https://github.com/instana/go-sensor/actions/workflows/release.yml) 30 1. On the right side of the page, click on `Run workflow` 31 1. Keep the default branch `main` 32 1. Keep the default package as `.` 33 1. Select `minor` or `patch` according to the version type you want to release 34 1. If you want to review the release and manually release it, keep the checkbox `Release as a draft?` 35 * If you keep it as a draft, you will have to go to the [releases page](https://github.com/instana/go-sensor/releases) and publish the release 36 * If you uncheck the `Release as a draft?` box, the release will take place 37 38 ### Package Release 39 40 An instrumented package needs to be released when a new instrumentation is introduced or if an existing package is updated. 41 42 The steps to release an instrumented package is nearly the same as the core module: 43 44 1. Go to the [repository actions](https://github.com/instana/go-sensor/actions) 45 1. Click on [Go Tracer Release](https://github.com/instana/go-sensor/actions/workflows/release.yml) 46 1. On the right side of the page, click on `Run workflow` 47 1. Keep the default branch `main` 48 1. Type the name of the package you want to release. Eg: `instagin`. You only add extra information when you want to release a different major version other than v1. In that case, suppose you want to release v2 of instaredigo, then write `instaredigo/v2`. If an nonexisting package is provided the workflow will fail. 49 1. Select `major`, `minor` or `patch` according to the version type you want to release 50 1. If you want to review the release and manually release it, keep the checkbox `Release as a draft?` 51 1. If you keep it as a draft, you will have to go to the releases page and publish the release 52 1. If you uncheck the `Release as a draft?` box, the release will be published automatically 53 54 > For releases done by the `Go Tracer Release` action that are **not drafts**, the workflow will automatically post the release in the Slack channel and will update https://pkg.go.dev website with the latest version of the packages 55 > 56 > For releases done by the `Go Tracer Release` action that **are drafts**, both the Slack post and https://pkg.go.dev website update will happen after the release is manually published. 57 58 ### Updated Packages Release 59 60 When a new package is instrumented, it will import the latest core by the time the instrumentation was done. This means that when new versions of the core module is released, this package will be outdated with latest changes from the core. 61 62 We want to keep instrumented packages up to date with the latest core module as much as we can, so a Github Action was created for this. 63 64 Every time the core module is released via the `Go Tracer Release` action, as a draft or not, it will create a pull request prefixed as `update-instrumentations-core` with all the instrumented packages updated to import the new version of the core module. 65 66 It is your responsibility to check the success of this pull request and manually fix any potential issues in it. 67 Once the pull request is successful and reviewed by the team, it can be merged into the main branch. 68 69 When the pull request is merged into the main branch an action `Release all updated instrumentations` will be automatically triggered to release all packages. 70 It will also update the https://pkg.go.dev website, but it **won't** post each package into the Slack channel to prevent flooding the channel.