# Building for release ## Bump Version workflow All releases start by first bumping the package version and creating a new Git tag. We have a workflow set up to automate this. To run it, trigger a new run of the [Bump Version workflow](https://github.com/wavetermdev/thenextwave/actions/workflows/bump-version.yml). When triggering the run, you will be prompted to select a version bump type, either `none`, `patch`, `minor`, or `major`, and whether the version is prerelease or not. This determines how much the version number is incremented. See [`version.cjs`](../../version.cjs) for more details on how this works. Once the tag has been created, a new [Build Helper](#build-helper-workflow) run will be automatically queued to generate the artifacts. ## Build Helper workflow Our release builds are managed by the [Build Helper workflow](https://github.com/wavetermdev/thenextwave/actions/workflows/build-helper.yml). Under the hood, this will call the `package` task in [`Taskfile.yml`](../../Taskfile.yml), which will build the Electron codebase using WebPack and then the `wavesrv` and `mshell` binaries, then it will call `electron-builder` to generate the distributable app packages. The configuration for `electron-builder` is [`electron-builder.config.cjs`](../../electron-builder.config.cjs). This will also sign and notarize the macOS app package. Once a build is complete, it will be placed in `s3://waveterm-github-artifacts/staging-w2/`. It can be downloaded for testing using the [`download-staged-artifact.sh`](./download-staged-artifact.sh) script. When you are ready to publish the artifacts to the public release feed, use the [`publish-from-staging.sh`](./publish-from-staging.sh) script to directly copy the artifacts from the staging bucket to the releases bucket. You will need to configure an AWS CLI profile with write permissions for the S3 buckets in order for the script to work. You should invoke the script as follows: ```bash