This release marks significant progress in implementing Protobuf Editions. Editions are not yet generally supported because there are a couple of remaining checks that need to be done. Until then, users can opt-in to using Editions source files with this compiler using the editionstesting.AllowEditions function.
This release also includes some backwards-incompatible changes, though they likely will not have any impact on most users. They are changes to interfaces that are compatible for users/callers of the interface, but incompatible for any code outside of this repo that implemented those interfaces.
What's Changed
Bugfixes
In the recently added options.StripSourceRetentionOptionsFromFile, clear options if no fields remain and also clear source code info, in #251
This repo previously allowed some sources that protoc would reject, due to incomplete validation of options. These checks were added in #264:
Non-lite files may not import lite files. (A lite file is one that uses option optimize_for=LITE_RUNTIME.)
Extensions in a lite file may not extend messages in a non-lite file.
Field options lazy and unverified_lazy can only be set to true for message fields.
Field option jstype can only be customized for 64-bit integer fields (int64, uint64, sint64, fixed64, and sfixed64).
Enhancements
Editions-related updated:
Update descriptor implementations to work with Editions files, in #260, #261, and #270
Add more internal compiler support for Editions, in #264
Provide an exported function for users to opt-in to using Editions, in #267. Note that this capability is temporary and will be removed once Editions support is complete (since opt-in won't be necessary and Editions support will be generally available).
Support and enforce extension declarations, in #263
Other Changes
Remove feature related to "canonical bytes", in #261
This is a backwards-incompatible change, but only impacts a likely-unused feature. The method linker.Result.CanonicalProto() has been removed. This feature was too complicated to continue supporting in the face of changes to interpreting options that needed to be implemented for Editions. (The feature was ultimately never used for its original intended purpose, so is likely not used at all.)
Add support for iterating option nodes in the ast sub-package via new ast.NodeWithOptions interface, in #263
This is a backwards-incompatible change, but only impacts code that implements some of this repo's interfaces, not any code that merely uses those interfaces.
This adds a new RangeOptions function to several sub-interfaces of ast.Node, so they also are now sub-interfaces of ast.NodeWtihOptions. The interfaces changed are ast.FileDeclNode, ast.MessageDeclNode, ast.FieldDeclNode, ast.OneofDeclNode, ast.RPCDeclNode, and ast.EnumValueDeclNode.
This also adds a method, ExtensionsNode, to the parser.Result interface, and expands the return types of three methods (OneofNode, EnumNode, and ServiceNode) from ast.Node to ast.NodeWithOptions.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dependencies group with 13 updates:
0.9.0
0.10.0
1.16.2
1.16.4
1.8.0
1.8.1
1.4.0
1.5.1
58.0.11
58.0.12
0.15.14
0.15.15
0.1.1
0.1.2
0.21.1
0.23.0
0.21.0
0.22.0
0.6.0
0.7.0
1.62.1
1.63.2
1.33.0
1.33.1-0.20240319125436-3039476726e4
1.29.5
1.29.6
Updates
github.com/bufbuild/protocompile
from 0.9.0 to 0.10.0Release notes
Sourced from github.com/bufbuild/protocompile's releases.
Commits
a556a4b
Found and fixed a bug in FieldDescriptor.Cardinality implementation (#270)ddfc09b
Add temporary opt-in function so users can try out/test editions support (#267)1afd354
Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#248)74dd30c
Bump github.com/bufbuild/buf from 1.30.0 to 1.30.1 in /internal/tools (#269)2943a01
Bump github.com/bufbuild/buf from 1.29.0 to 1.30.0 in /internal/tools (#252)9d744ed
Bump golang.org/x/tools from 0.17.0 to 0.19.0 in /internal/tools (#253)bc69ae3
Bump github.com/bufbuild/protocompile from 0.8.0 to 0.9.0 in /internal/benchm...1adabbd
Validate usage of features in editions (#264)3597c18
Support extension declarations (#263)869ef58
Remove canonical option bytes and split up option interpretation into two pha...Updates
github.com/expr-lang/expr
from 1.16.2 to 1.16.4Release notes
Sourced from github.com/expr-lang/expr's releases.
Commits
e7e72b9
Revert "Optimize boolean operations between all, any, one, none functions (#5...d9b1093
chore: fix some typos in conments (#622)0b2a086
Update README.md852d47f
Update README.md (#619)7772ea0
feat: extract code for compiling equal operator (#614)d523107
Better map ast printingUpdates
github.com/go-sql-driver/mysql
from 1.8.0 to 1.8.1Release notes
Sourced from github.com/go-sql-driver/mysql's releases.
Changelog
Sourced from github.com/go-sql-driver/mysql's changelog.
Commits
4395c45
update changelog for releasing v1.8.1 (#1576)7eeaba6
Fix issue 1567 (#1570) (#1571)65395d8
fix race condition when context is canceled (#1565)1e75613
add wrapper method to call mc.cfg.Logger (#1564)33fa6e5
replace interface{} with any (#1561)Updates
github.com/k1LoW/donegroup
from 1.4.0 to 1.5.1Release notes
Sourced from github.com/k1LoW/donegroup's releases.
Changelog
Sourced from github.com/k1LoW/donegroup's changelog.
Commits
ac1dcd5
Merge pull request #24 from k1LoW/tagpr-from-v1.5.0dedc2bc
Merge pull request #25 from k1LoW/refactor3b2dbcc
bonsai5d1ad4c
Refactor Go/GoWithKey747ab04
[tagpr] update CHANGELOG.mda215f85
[tagpr] prepare for the next releasea269f7e
bonsai9724719
Merge pull request #22 from k1LoW/tagpr-from-v1.4.046048f5
[tagpr] update CHANGELOG.md55bdb1b
[tagpr] prepare for the next releaseUpdates
github.com/k1LoW/go-github-client/v58
from 58.0.11 to 58.0.12Commits
68fb84a
Update v58e798055
Update v573877ef0
Update v560629ebe
Update v55d659542
Update v5472bcfe5
Update v53f0a7860
Update v52853d5f6
Update v51a4bc3ff
Update v504410621
Update v49Updates
github.com/pb33f/libopenapi
from 0.15.14 to 0.15.15Release notes
Sourced from github.com/pb33f/libopenapi's releases.
Commits
26e390b
float format to not print !!float7439d52
update digital ocean testsUpdates
github.com/ryo-yamaoka/otchkiss
from 0.1.1 to 0.1.2Release notes
Sourced from github.com/ryo-yamaoka/otchkiss's releases.
Commits
bbd75ef
Merge pull request #24 from ryo-yamaoka/release-v0.1.2a9a5ff1
Merge pull request #22 from ryo-yamaoka/dependabot/go_modules/github.com/stre...75254ad
Bump github.com/stretchr/testify from 1.8.4 to 1.9.04170679
Merge pull request #23 from ryo-yamaoka/dependabot/go_modules/go.uber.org/rat...ba5ee71
Bump go.uber.org/ratelimit from 0.3.0 to 0.3.141efcdf
Merge pull request #20 from ryo-yamaoka/dependabot/go_modules/github.com/stre...b8cd13e
Bump github.com/stretchr/testify from 1.8.0 to 1.8.4beb5654
Merge pull request #21 from ryo-yamaoka/fix-broken-ci90bac4b
Fix broken install linter4925333
Merge pull request #19 from ryo-yamaoka/dependabot/go_modules/github.com/goog...Updates
github.com/xo/dburl
from 0.21.1 to 0.23.0Commits
95c81b1
Adding BuildDSN, OpenMap, and FromMap funcsd86b6db
Adding more vertica url tests2d8cbb2
Updating default port for Couchbased0650de
Updating workflowUpdates
golang.org/x/crypto
from 0.21.0 to 0.22.0Commits
d042a39
go.mod: update golang.org/x dependenciesb92bf94
ssh: respect MaxAuthTries also for "none" auth attempts6f79b5a
ssh: add server side multi-step authentication8d0d405
x/crypto/chacha20: cleanup chacha_ppc64le.sb91329d
all: remove redundant words in comments and fix some typosUpdates
golang.org/x/sync
from 0.6.0 to 0.7.0Commits
14be23e
semaphore: cancel acquisition with a done contextUpdates
google.golang.org/grpc
from 1.62.1 to 1.63.2Release notes
Sourced from google.golang.org/grpc's releases.
Commits
d32e66c
Change version to 1.63.2 (#7104)92f6dd0
channelz: pass parent pointer instead of parent ID to RegisterSubChannel (#7101)0f6ef0f
grpc: un-deprecate Dial and DialContext58dc749
Change version to 1.63.1-dev (#7051)c68f456
Change version to 1.63.0 (#7050)6369167
*: update http2 dependency (#7082)8854761
cherry-pick: channelz: fix race accessing channelMap without lock (#7079) (#7...e62770d
channelz: add LocalAddr to listen sockets and test (#7062) (#7063)4ffccf1
googlec2p: use xdstp style template for client LDS resource name (#7048)faf9964
gracefulswitch: add ParseConfig and make UpdateClientConnState call SwitchTo ...Updates
google.golang.org/protobuf
from 1.33.0 to 1.33.1-0.20240319125436-3039476726e4Updates
modernc.org/sqlite
from 1.29.5 to 1.29.6Commits
21d90b2
Merge branch 'feature/89/add-backup-commit-method' into 'master'01aa83b
fixup! sqlite: add Backup.Commit method27e480d
CONTRIBUTORS: added self as contributorfc4ca38
functest: added a backup-commit-close testd3c0a9c
sqlite: add Backup.Commit method8167b21
Merge branch 'tyge-master-patch-33989' into 'master'de6d9d3
docs(README): adddatabase is locked
error to new "troubleshooting" section97ef87e
add TestSingleConn, updates !69aa0daa6
release errorc4adcd3
relase 1.30.0, support linux/loong64 /2Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show