[VOTE] Release CSI spec v1.8.0 (closes 2023 March 7)

13 views
Skip to first unread message

Saad Ali

unread,
Mar 3, 2023, 9:31:49 PM3/3/23
to container-storage-interface-community
I've cut a v1.8.0-rc1 release for the CSI specification (candidate for v1.8.0): https://github.com/container-storage-interface/spec/releases/tag/v1.8.0-rc1

Please vote on releasing this candidate as CSI spec v1.8.0.

The vote is open until 2023 March 7.

The voting process is documented at: https://github.com/container-storage-interface/community/blob/master/governance.md#voting

I've compiled a preliminary list of changes between the v1.7.0 and v1.8.0 release:

Breaking changes/Deprecations:
  • None
Additions:
  • spec (PR #519): introduce VolumeGroupSnapshot related RPCs under new GroupController services as alpha.
Clarifications/Corrections/Fixes:
  • None
Dependencies:

James DeFelice

unread,
Mar 4, 2023, 9:08:16 AM3/4/23
to Saad Ali, container-storage-interface-community
I think we missed some things:

(a) PluginCapability.Service.Type.GROUP_CONTROLLER_SERVICE should probably have [(alpha_enum_value) = true]
(b) alpha_message annotations on GroupControllerGetCapabilitiesRequest, GroupControllerGetCapabilitiesResponse, GroupControllerServiceCapability messages.

otherwise looks OK

--
James DeFelice

Xing Yang

unread,
Mar 4, 2023, 9:26:02 AM3/4/23
to James DeFelice, Saad Ali, container-storage-interface-community
Thanks James.  I have submitted a PR to add that: https://github.com/container-storage-interface/spec/pull/539

Xing

--
You received this message because you are subscribed to the Google Groups "container-storage-interface-community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to container-storage-interf...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/container-storage-interface-community/CA%2B-zrRKADicN3eiHbP4OGTFfw-0OXZXrD%3Dm7EC1Co5WXGt4Bgw%40mail.gmail.com.

Saad Ali

unread,
Mar 8, 2023, 3:14:13 AM3/8/23
to container-storage-interface-community
Thanks for the feedback folks.
We merged 2 more PRs:
We will push the release date another day (to March 8).
Please vote on release by replying to this email.

Xing Yang

unread,
Mar 8, 2023, 8:27:24 AM3/8/23
to Saad Ali, container-storage-interface-community
+1

Ben Swartzlander

unread,
Mar 8, 2023, 9:22:58 AM3/8/23
to Xing Yang, Saad Ali, container-storage-interface-community
+1

--
You received this message because you are subscribed to the Google Groups "container-storage-interface-community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to container-storage-interf...@googlegroups.com.

James DeFelice

unread,
Mar 8, 2023, 9:26:55 AM3/8/23
to Xing Yang, Saad Ali, container-storage-interface-community
I'm not sure it's worth holding up the release for this, but I've noticed a couple of things:

(a) github is building the latest code w/ go 1.20.x - is that what we want? it's a pretty recent release, and IMO it would be better to build w/ the *oldest* supported golang release (1.19.x)

(b) the generated pb.go file has strange changes to method docs... (note the addition of newlines under "Example [n]"; also it appears that double-spaces were replaced w/ tabs (which cannot easily be seen by what I pasted below - check out the diff for details)); my larger concern here is that PRs can be pushed w/ generated code (built from whatever tooling version a developer has installed locally), and perhaps CI is not telling us when that (pushed) generated code does not align w/ code generated by the canonical version of the tooling referenced in the build scripts. I believe that we used to have a check for this kind of drift, but I no longer see that check in the CI scripts. Perhaps it was nixed, intentionally, for some reason? In any case, it may be worth validating that the generated pb.go file was in fact generated w/ the same tooling version that the build scripts reference. Xing Yang, it looks like the big group-snapshot PR was the one that committed the unexpected, unrelated whitespace changes to pb.go - can you check your tooling version(s)?

What do folks think - should these items be resolved before final release?


"""
// expansion of node-published volume via NodeExpandVolume.
//
// Example 1: Given a shared filesystem volume (e.g. GlusterFs),
//
// the Plugin may set the ONLINE volume expansion capability and
// implement ControllerExpandVolume but not NodeExpandVolume.
//
// Example 2: Given a block storage volume type (e.g. EBS), the
//
// Plugin may set the ONLINE volume expansion capability and
// implement both ControllerExpandVolume and NodeExpandVolume.
//
// Example 3: Given a Plugin that supports volume expansion only
//
// upon a node, the Plugin may set the ONLINE volume
// expansion capability and implement NodeExpandVolume but not
// ControllerExpandVolume."""

On Wed, Mar 8, 2023 at 8:27 AM Xing Yang <xingy...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "container-storage-interface-community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to container-storage-interf...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/container-storage-interface-community/CADwwA9vynSofQWTJ9WXy%3D2nUf2nxQofDppVsUBLS3enJdx2aWg%40mail.gmail.com.


--
James DeFelice

Xing Yang

unread,
Mar 8, 2023, 10:06:50 AM3/8/23
to James DeFelice, Saad Ali, container-storage-interface-community
Hi James,

I have Ubuntu 20.04 and go 1.19 in my environment.  The build script also has go 1.19.  

The Go version was updated from 1.16 to 1.19 in October last year:

Perhaps the difference is due to the go version changes.

Thanks,
Xing

James DeFelice

unread,
Mar 8, 2023, 10:07:43 AM3/8/23
to Xing Yang, Saad Ali, container-storage-interface-community
I was thinking of the protoc and plugin tooling
--
James DeFelice

Xing Yang

unread,
Mar 8, 2023, 10:56:11 AM3/8/23
to James DeFelice, Saad Ali, container-storage-interface-community
I see that during the build, it downloads the version of the tools specified in the makefile.

# make
echo "// Code generated by make; DO NOT EDIT." > "csi.proto.tmp"
cat spec.md | sed -n -e '/```protobuf$/,/^```$/ p' | sed '/^```/d' >> "csi.proto.tmp"
diff "csi.proto" "csi.proto.tmp" > /dev/null 2>&1 || cp -f "csi.proto.tmp" "csi.proto"
awk '{ if (length > 72) print NR, $0 }' csi.proto | diff - /dev/null
make -C lib/cxx
make[1]: Entering directory '/root/go/src/github.com/container-storage-interface/spec/lib/cxx'
cxx bindings & validation
make[1]: Leaving directory '/root/go/src/github.com/container-storage-interface/spec/lib/cxx'
make -C lib/go csi/csi.pb.go
make[1]: Entering directory '/root/go/src/github.com/container-storage-interface/spec/lib/go'
mkdir -p ".protoc" && \
  curl -L https://github.com/google/protobuf/releases/download/v3.9.1/protoc-3.9.1-Linux-x86_64.zip -o ".protoc/protoc-3.9.1-Linux-x86_64.zip" && \
  unzip ".protoc/protoc-3.9.1-Linux-x86_64.zip" -d ".protoc" && \
  chmod 0755 ".protoc/bin/protoc" && \
  cp -f ".protoc/bin/protoc" "protoc"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1519k  100 1519k    0     0  2450k      0 --:--:-- --:--:-- --:--:-- 2450k
Archive:  .protoc/protoc-3.9.1-Linux-x86_64.zip
   creating: .protoc/include/
   creating: .protoc/include/google/
   creating: .protoc/include/google/protobuf/
  inflating: .protoc/include/google/protobuf/empty.proto
  inflating: .protoc/include/google/protobuf/struct.proto
  inflating: .protoc/include/google/protobuf/timestamp.proto
   creating: .protoc/include/google/protobuf/compiler/
  inflating: .protoc/include/google/protobuf/compiler/plugin.proto
  inflating: .protoc/include/google/protobuf/descriptor.proto
  inflating: .protoc/include/google/protobuf/type.proto
  inflating: .protoc/include/google/protobuf/any.proto
  inflating: .protoc/include/google/protobuf/wrappers.proto
  inflating: .protoc/include/google/protobuf/duration.proto
  inflating: .protoc/include/google/protobuf/source_context.proto
  inflating: .protoc/include/google/protobuf/field_mask.proto
  inflating: .protoc/include/google/protobuf/api.proto
   creating: .protoc/bin/
  inflating: .protoc/bin/protoc
  inflating: .protoc/readme.txt
stat "protoc" > /dev/null 2>&1
mkdir -p /root/go/src/github.com/golang/protobuf/
test -d /root/go/src/github.com/golang/protobuf//.git || git clone https://github.com/golang/protobuf/ /root/go/src/github.com/golang/protobuf/
(cd /root/go/src/github.com/golang/protobuf/ && \
(test "$(git describe --tags | head -1)" = "v1.3.2" || \
(git fetch && git checkout tags/v1.3.2)))
(cd /root/go/src/github.com/golang/protobuf/ && go get -v -d $(go list -f '{{ .ImportPath }}' ./...)) && \
go build -o "protoc-gen-go" github.com/golang/protobuf/protoc-gen-go
(cd "/root/go/src" && \
/root/go/src/github.com/container-storage-interface/spec/lib/go/./protoc -I/root/go/src -I/root/go/src/github.com/container-storage-interface/spec/lib/go/.protoc/include --go_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers:"/root/go/src/github.com/container-storage-interface/spec/lib/go/csi/.build" "github.com/container-storage-interface/spec/csi.proto")
diff "csi/csi.pb.go" "csi/.build/github.com/container-storage-interface/spec/csi.pb.go" > /dev/null 2>&1 || cp -f "csi/.build/github.com/container-storage-interface/spec/csi.pb.go" "csi/csi.pb.go"
make[1]: Leaving directory '/root/go/src/github.com/container-storage-interface/spec/lib/go'
go mod download
go install ./lib/go/csi
go build -o "csi.a" ./lib/go/csi


Saad Ali

unread,
Mar 8, 2023, 2:26:18 PM3/8/23
to Xing Yang, James DeFelice, container-storage-interface-community
My 2 cents -- I think we should fix these issues before cutting the release. Xing if you agree, can you work with James to sort this out? I'm happy to help merge and cut another RC.

Xing Yang

unread,
Mar 8, 2023, 4:23:53 PM3/8/23
to Saad Ali, James DeFelice, container-storage-interface-community
Sure.  I'll take a look.

Thanks,
Xing

James DeFelice

unread,
Mar 9, 2023, 6:27:55 AM3/9/23
to Saad Ali, container-storage-interface-community
+1

Saad Ali

unread,
Mar 9, 2023, 5:40:01 PM3/9/23
to container-storage-interface-community

Special thanks to Xing for all her hard work on this release!

Xing Yang

unread,
Mar 9, 2023, 6:04:56 PM3/9/23
to Saad Ali, container-storage-interface-community
Thanks Saad!  Thanks everyone!

Xing
Reply all
Reply to author
Forward
0 new messages