Skip to content

Commit 1b35ea8

Browse files
committed
chore: bump deps and fix data race
github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e contains a fix for a data race, so we no longer need a mutex in `pgp.Key.Sign`. Add a test just in case something goes wrong in the future. Bump: - run rekres - github.com/ProtonMail/go-crypto to v1.1.0-alpha.5.0.20240827111422-b5837fa4476e - github.com/adrg/xdg to v0.5.0 - github.com/grpc-ecosystem/grpc-gateway/v2 to v2.22.0 - google.golang.org/grpc to v1.66.0 - google.golang.org/protobuf to v1.34.2 - golang.org/x/crypto to v0.26.0 - golang.org/x/net to v0.28.0 - golang.org/x/sys to v0.24.0 - golang.org/x/text to v0.17.0 - google.golang.org/genproto/googleapis/api to v0.0.0-20240827150818-7e3bb234dfed - google.golang.org/genproto/googleapis/rpc to v0.0.0-20240827150818-7e3bb234dfed Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
1 parent 4bf0f02 commit 1b35ea8

File tree

8 files changed

+168
-45
lines changed

8 files changed

+168
-45
lines changed

Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# syntax = docker/dockerfile-upstream:1.8.0-labs
1+
# syntax = docker/dockerfile-upstream:1.9.0-labs
22

33
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
44
#
5-
# Generated on 2024-06-19T18:01:30Z by kres c9bcf1d.
5+
# Generated on 2024-08-29T10:07:12Z by kres b5ca957.
66

77
ARG TOOLCHAIN
88

99
# runs markdownlint
10-
FROM docker.io/oven/bun:1.1.13-alpine AS lint-markdown
10+
FROM docker.io/oven/bun:1.1.26-alpine AS lint-markdown
1111
WORKDIR /src
1212
RUN bun i markdownlint-cli@0.41.0 sentences-per-line@0.2.1
1313
COPY .markdownlint.json .

Makefile

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
22
#
3-
# Generated on 2024-06-19T18:01:30Z by kres c9bcf1d.
3+
# Generated on 2024-08-29T10:07:12Z by kres b5ca957.
44

55
# common variables
66

@@ -18,14 +18,14 @@ REGISTRY ?= ghcr.io
1818
USERNAME ?= siderolabs
1919
REGISTRY_AND_USERNAME ?= $(REGISTRY)/$(USERNAME)
2020
PROTOBUF_GO_VERSION ?= 1.34.2
21-
GRPC_GO_VERSION ?= 1.4.0
22-
GRPC_GATEWAY_VERSION ?= 2.20.0
21+
GRPC_GO_VERSION ?= 1.5.1
22+
GRPC_GATEWAY_VERSION ?= 2.22.0
2323
VTPROTOBUF_VERSION ?= 0.6.0
24-
GOIMPORTS_VERSION ?= 0.22.0
24+
GOIMPORTS_VERSION ?= 0.24.0
2525
DEEPCOPY_VERSION ?= v0.5.6
26-
GOLANGCILINT_VERSION ?= v1.59.1
27-
GOFUMPT_VERSION ?= v0.6.0
28-
GO_VERSION ?= 1.22.4
26+
GOLANGCILINT_VERSION ?= v1.60.3
27+
GOFUMPT_VERSION ?= v0.7.0
28+
GO_VERSION ?= 1.23.0
2929
GO_BUILDFLAGS ?=
3030
GO_LDFLAGS ?=
3131
CGO_ENABLED ?= 0
@@ -67,7 +67,7 @@ COMMON_ARGS += --build-arg=DEEPCOPY_VERSION="$(DEEPCOPY_VERSION)"
6767
COMMON_ARGS += --build-arg=GOLANGCILINT_VERSION="$(GOLANGCILINT_VERSION)"
6868
COMMON_ARGS += --build-arg=GOFUMPT_VERSION="$(GOFUMPT_VERSION)"
6969
COMMON_ARGS += --build-arg=TESTPKGS="$(TESTPKGS)"
70-
TOOLCHAIN ?= docker.io/golang:1.22-alpine
70+
TOOLCHAIN ?= docker.io/golang:1.23-alpine
7171

7272
# help menu
7373

go.mod

+10-10
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ module github.com/siderolabs/go-api-signature
33
go 1.22.0
44

55
require (
6-
github.com/ProtonMail/go-crypto v1.0.0
6+
github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e
77
github.com/ProtonMail/gopenpgp/v2 v2.7.5
8-
github.com/adrg/xdg v0.4.0
9-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0
8+
github.com/adrg/xdg v0.5.0
9+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0
1010
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
1111
github.com/stretchr/testify v1.9.0
12-
google.golang.org/grpc v1.64.0
12+
google.golang.org/grpc v1.66.0
1313
google.golang.org/protobuf v1.34.2
1414
)
1515

@@ -21,11 +21,11 @@ require (
2121
github.com/pkg/errors v0.9.1 // indirect
2222
github.com/pmezard/go-difflib v1.0.0 // indirect
2323
github.com/rogpeppe/go-internal v1.12.0 // indirect
24-
golang.org/x/crypto v0.24.0 // indirect
25-
golang.org/x/net v0.26.0 // indirect
26-
golang.org/x/sys v0.21.0 // indirect
27-
golang.org/x/text v0.16.0 // indirect
28-
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 // indirect
29-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect
24+
golang.org/x/crypto v0.26.0 // indirect
25+
golang.org/x/net v0.28.0 // indirect
26+
golang.org/x/sys v0.24.0 // indirect
27+
golang.org/x/text v0.17.0 // indirect
28+
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect
29+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect
3030
gopkg.in/yaml.v3 v3.0.1 // indirect
3131
)

go.sum

+24-16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
2-
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
3-
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
2+
github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e h1:O1cSHAcGcbGEO66Qi2AIJeYmXO8iP4L/PNrbdN+RjJA=
3+
github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
44
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k=
55
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw=
66
github.com/ProtonMail/gopenpgp/v2 v2.7.5 h1:STOY3vgES59gNgoOt2w0nyHBjKViB/qSg7NjbQWPJkA=
77
github.com/ProtonMail/gopenpgp/v2 v2.7.5/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g=
88
github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
99
github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
10+
github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY=
11+
github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4=
1012
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
1113
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
1214
github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE=
@@ -19,6 +21,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
1921
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
2022
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
2123
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
24+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
25+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
2226
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
2327
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
2428
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -40,8 +44,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
4044
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
4145
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
4246
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
43-
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
44-
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
47+
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
48+
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
4549
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
4650
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
4751
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -50,8 +54,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
5054
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
5155
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
5256
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
53-
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
54-
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
57+
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
58+
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
5559
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
5660
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
5761
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -66,8 +70,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
6670
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
6771
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
6872
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
69-
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
70-
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
73+
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
74+
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
7175
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
7276
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
7377
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
@@ -79,19 +83,23 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
7983
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
8084
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
8185
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
82-
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
83-
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
86+
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
87+
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
8488
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
8589
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
8690
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
8791
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
8892
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
89-
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 h1:MuYw1wJzT+ZkybKfaOXKp5hJiZDn2iHaXRw0mRYdHSc=
90-
google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4/go.mod h1:px9SlOOZBg1wM1zdnr8jEL4CNGUBZ+ZKYtNPApNQc4c=
91-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0=
92-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
93-
google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY=
94-
google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg=
93+
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed h1:3RgNmBoI9MZhsj3QxC+AP/qQhNwpCLOvYDYYsFrhFt0=
94+
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed/go.mod h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo=
95+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240823204242-4ba0660f739c h1:Kqjm4WpoWvwhMPcrAczoTyMySQmYa9Wy2iL6Con4zn8=
96+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240823204242-4ba0660f739c/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
97+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed h1:J6izYgfBXAI3xTKLgxzTmUltdYaLsuBxFCgDHWJ/eXg=
98+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
99+
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
100+
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
101+
google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c=
102+
google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
95103
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
96104
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
97105
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

hack/release.sh

+86-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
22

33
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
44
#
5-
# Generated on 2022-10-20T12:09:57Z by kres ef0ba25.
5+
# Generated on 2024-08-29T10:07:12Z by kres b5ca957.
66

77
set -e
88

@@ -44,9 +44,92 @@ function commit {
4444
exit 1
4545
fi
4646

47+
if is_on_main_branch; then
48+
update_license_files
49+
fi
50+
4751
git commit -s -m "release($1): prepare release" -m "This is the official $1 release."
4852
}
4953

54+
function is_on_main_branch {
55+
main_remotes=("upstream" "origin")
56+
branch_names=("main" "master")
57+
current_branch=$(git rev-parse --abbrev-ref HEAD)
58+
59+
echo "Check current branch: $current_branch"
60+
61+
for remote in "${main_remotes[@]}"; do
62+
echo "Fetch remote $remote..."
63+
64+
if ! git fetch --quiet "$remote" &>/dev/null; then
65+
echo "Failed to fetch $remote, skip..."
66+
67+
continue
68+
fi
69+
70+
for branch_name in "${branch_names[@]}"; do
71+
if ! git rev-parse --verify "$branch_name" &>/dev/null; then
72+
echo "Branch $branch_name does not exist, skip..."
73+
74+
continue
75+
fi
76+
77+
echo "Branch $remote/$branch_name exists, comparing..."
78+
79+
merge_base=$(git merge-base "$current_branch" "$remote/$branch_name")
80+
latest_main=$(git rev-parse "$remote/$branch_name")
81+
82+
if [ "$merge_base" = "$latest_main" ]; then
83+
echo "Current branch is up-to-date with $remote/$branch_name"
84+
85+
return 0
86+
else
87+
echo "Current branch is not on $remote/$branch_name"
88+
89+
return 1
90+
fi
91+
done
92+
done
93+
94+
echo "No main or master branch found on any remote"
95+
96+
return 1
97+
}
98+
99+
function update_license_files {
100+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
101+
parent_dir="$(dirname "$script_dir")"
102+
current_year=$(date +"%Y")
103+
change_date=$(date -v+4y +"%Y-%m-%d" 2>/dev/null || date -d "+4 years" +"%Y-%m-%d" 2>/dev/null || date --date="+4 years" +"%Y-%m-%d")
104+
105+
# Find LICENSE and .kres.yaml files recursively in the parent directory (project root)
106+
find "$parent_dir" \( -name "LICENSE" -o -name ".kres.yaml" \) -type f | while read -r file; do
107+
temp_file="${file}.tmp"
108+
109+
if [[ $file == *"LICENSE" ]]; then
110+
if grep -q "^Business Source License" "$file"; then
111+
sed -e "s/The Licensed Work is (c) [0-9]\{4\}/The Licensed Work is (c) $current_year/" \
112+
-e "s/Change Date: [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/Change Date: $change_date/" \
113+
"$file" >"$temp_file"
114+
else
115+
continue # Not a Business Source License file
116+
fi
117+
elif [[ $file == *".kres.yaml" ]]; then
118+
sed -E 's/^([[:space:]]*)ChangeDate:.*$/\1ChangeDate: "'"$change_date"'"/' "$file" >"$temp_file"
119+
fi
120+
121+
# Check if the file has changed
122+
if ! cmp -s "$file" "$temp_file"; then
123+
mv "$temp_file" "$file"
124+
echo "Updated: $file"
125+
git add "$file"
126+
else
127+
echo "No changes: $file"
128+
rm "$temp_file"
129+
fi
130+
done
131+
}
132+
50133
if declare -f "$1" > /dev/null
51134
then
52135
cmd="$1"
@@ -55,7 +138,7 @@ then
55138
else
56139
cat <<EOF
57140
Usage:
58-
commit: Create the official release commit message.
141+
commit: Create the official release commit message (updates BUSL license dates if there is any).
59142
cherry-pick: Cherry-pick a commit into a release branch.
60143
changelog: Update the specified CHANGELOG.
61144
release-notes: Create release notes for GitHub release.

pkg/pgp/key.go

-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package pgp
88
import (
99
"crypto"
1010
"math"
11-
"sync"
1211
"time"
1312

1413
"github.com/ProtonMail/go-crypto/openpgp"
@@ -20,7 +19,6 @@ import (
2019
type Key struct {
2120
key *pgpcrypto.Key
2221
keyring *pgpcrypto.KeyRing
23-
mu sync.Mutex
2422
}
2523

2624
// GenerateKey generates a new PGP key pair.
@@ -79,9 +77,6 @@ func (p *Key) Verify(data, signature []byte) error {
7977

8078
// Sign signs the given data using the private key.
8179
func (p *Key) Sign(data []byte) ([]byte, error) {
82-
p.mu.Lock()
83-
defer p.mu.Unlock()
84-
8580
message := pgpcrypto.NewPlainMessage(data)
8681

8782
signature, err := p.keyring.SignDetached(message)

pkg/pgp/key_race_test.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// This Source Code Form is subject to the terms of the Mozilla Public
2+
// License, v. 2.0. If a copy of the MPL was not distributed with this
3+
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4+
5+
//go:build race
6+
7+
package pgp_test
8+
9+
import (
10+
"testing"
11+
"time"
12+
13+
"github.com/stretchr/testify/require"
14+
15+
"github.com/siderolabs/go-api-signature/pkg/pgp"
16+
)
17+
18+
func TestKeyFlowParallel(t *testing.T) {
19+
key, err := pgp.GenerateKey("John Smith", "Linux", "john.smith@example.com", time.Hour)
20+
require.NoError(t, err)
21+
22+
t.Run("parallel_section", func(t *testing.T) {
23+
for range 10 {
24+
t.Run("KeyFlow", func(t *testing.T) {
25+
t.Parallel()
26+
27+
for range 10 {
28+
testKeyFlow(t, key)
29+
}
30+
})
31+
}
32+
})
33+
}

pkg/pgp/key_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ func TestKeyFlow(t *testing.T) {
2222
key, err := pgp.GenerateKey("John Smith", "Linux", "john.smith@example.com", time.Hour)
2323
require.NoError(t, err)
2424

25+
testKeyFlow(t, key)
26+
}
27+
28+
func testKeyFlow(t *testing.T, key *pgp.Key) {
2529
assert.True(t, key.IsPrivate())
2630
assert.NoError(t, key.Validate())
2731

0 commit comments

Comments
 (0)