All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bumped to
Golang
1.23
, this will pullgoreleaser/goreleaser-cross:v1.23
so expect some delays before your build starts.
-
Ensure
sfreleaser
works with Goreleaser 2.x[!IMPORTANT] You will need to use an up to date version of
goreleaser/goreleaser-cross:v1.22
or later forsfreleaser
to work properly. If you have an error of the form⨯ release failed after 0s error=only configurations files on version: 1 are supported, yours is version: 2 , please update your configuration
, update your image to latest version usingdocker pull --platform linux/arm64 goreleaser/goreleaser-cross:v1.22
and ensure you.sfreleaser
does use it properly. -
Fixed wrong error when a project was never release.
-
Fixed CHANGELOG release version extraction to accept dots too.
-
Fixed when LICENSE and README are not present or spelled a bit differently.
-
Added support to override the Git remote used for commands with
sfreleaser --git-remote=sf ...
. -
Bumped to
Golang
1.22
, this will pullgoreleaser/goreleaser-cross:v1.22
so expect some delays before your build starts.
-
Enforce
--platform <platform>
when callingdocker run
to ensure the fastest image for the current's user machine is used. -
Now printing exact image used when performing the release.
- Bumped to
Golang
1.21
, this will pullgoreleaser/goreleaser-cross:v1.21
so expect some delays before your build starts.
The release.upload-substreams-spkg
has been deprecated in favor of using pre-build-hooks
and upload-extra-assets
instead, the replacement code is converting release.upload-substreams-spkg
using this new system internally.
Change
release:
upload-substreams-spkg: substreams.yaml
By
release:
pre-build-hooks:
[
'substreams pack -o "{{ .buildDir }}/{{ .global.Project }}-{{ .release.Version }}.spkg" substreams.yaml"',
]
upload-extra-assets:
["{{ .buildDir }}/{{ .global.Project }}-{{ .release.Version }}.spkg"]
-
If changelog list
Next
as the header, default prompted version is the next patch version. -
Extracted version from CHANGELOG is now much more selective.
-
Prevent release if changelog extracted version and latest tag version are the same.
-
Added
global.sfreleaser-min-version
configuration value to force users to upgrade to a new version ofsfreleaser
.
-
Added
sfreleaser build
to build artifacts,sfreleaser build --help
for all the juicy details of the new command. -
Bumped to
Golang
1.20.5
, this will pullgoreleaser/goreleaser-cross:v1.20.5
so expect some delays before your build starts.`Note
docker pull goreleaser/goreleaser-cross:v1.20.5
to "boostrap" this step. -
The platform
linux/arm64
is now built by default. -
When version is prompted in release, default value is now extracted from release notes' header.
-
Speed up build by mounting local
go env GOCACHE
into the Docker container that build artifacts (only if language ==golang
).
- Validate that received
<version>
argument insfreleaser release <version>
actually follows our convention.
- Added a way to disable usage of PTY to call commands (define environment variable
SFRELEASER_DISABLE_PTY=true
).
- Fixed an issue when the github token has some leading or trailing spaces, like a new line.
- Improved
sfreleaser release
to print some troubleshooting idea usingsfreleaser doctor
.
- Added support for
brew-tap-repo
to set the Brew tap repository where to push the binary (config atrelease.brew-tap-repo
).
-
Removed the need to have
.goreleaser.yaml
file in the repository (file is now generated on the fly). -
Added support for disabling Brew tap release (enabled by default).
-
Added support for specifying
owner
(defaults tostreamingfast
). -
Added support for specifying
license
(defaults toApache-2.0
).
-
Added support for resolving files relative to
.sfreleaser
location. -
Added support for specifying a non-default changelog file.
- Added checks that
docker
CLI exists and also thatdocker info
works properly.
-
Added full
CGO
support when building Go application/library,.goreleaser.yaml
file now hasC_INCLUDE_PATH
andLIBRARY_PATH
sets correctly so it's possible to build Go that depends on C libraries. -
Added config/flag value
goreleaser-docker-image
so it's possible to overridegoreleaser
Docker image used.
-
Added support for releasing Rust library project.
This newly added support will publish Rust crates of a library. The crates to publish must be specified in the configuration file via the path
releaser.rust-crates
where the value is a list of crates name:global: ... release: rust-crates: - crate1 - crate2
Order is important as it will be respected when doing the commands. A GitHub release will be produced just like for Golang.
The crates publishing happen only if release is published right now. Otherwise, if the command complete and release is not published yet, commands to publish the crates manually is printed.