17 Commits
Author SHA1 Message Date
George BarnettandThomas Van Lenten 66a6ed26e6 Drop support for Swift 5.10 (#1913)
- Remove 5.10 from CI and Makefile workarounds
- Remove 5.10 specific package manifests
- Fix deprecation warnings from 6.0
- Bump language mode to 6 and remove 'StrictConcurrency=Complete'

---------

Co-authored-by: Thomas Van Lenten <thomasvl@google.com>
2026-02-09 12:32:13 -05:00
Thomas Van Lenten b1a0649173 Quick fixes for some of the documentation issues. (#1926)
This is mainly just where Xcode has a quick fix that could be applied in
bulk. There are still lots of other issues to fix up.

Progress on #1925
2025-12-18 15:24:07 +00:00
Thomas Van Lenten 5bd65280be Improve plugin error handling (#1840) 2025-08-15 08:03:56 -04:00
Thomas Van Lenten ac8da77c93 Run swift-format -p -r -i . 2024-09-09 14:39:36 -04:00
LamTrinh.Dev 424aa330b5 Update CodeGenerator.swift
Correct the link.
2024-07-24 18:21:24 +07:00
Thomas Van Lenten 601e03a9cc Let CodeGenerators provide extension for CustomOptions.
This will get those extensions recognized when the request from protoc is
parsed, and then a generator can use the existing SwiftProtobuf extension
related apis to access them.

Fixes #1677
2024-07-16 09:58:32 -04:00
Gus Cairo bf61972be7 Rename arguments back from contiguousBytes to serializedBytes 2024-06-05 14:47:49 +01:00
Gus Cairo 17dca5df51 Add back removed API and undo renames
maybe squash
2024-06-04 13:16:15 +01:00
Thomas Van Lenten 2c990d2e96 Wire up CodeGenerator support for Editions.
Note: This does *not* enable editions yet for SwiftProtobuf, it is just the
infrastructure to allow it to eventually be enabled.

This will allow a `CodeGenerator` to express support for Editions, but it does
*not* allow the use of custom generator specific Features. That will be done in
the future, and does not need to be done for Swift Protobuf (or Swift GRPC) to
be ready to support editions when they are launched upstream.
2024-03-26 11:37:53 -04:00
Thomas Van Lenten 2c70de7cab Partial revert of the edition range from CodeGenerator.
This backs out the plugin public interface that was just added in #1558. My
local prototype was working using this, but I wasn't looking at supporting
plugin specific features yet, and in doing that, I realized the same edition
min/max information will also come in via `FeatureSetDefaults` and will have to
be in sync. So dropping the interface until I plan that support out better.
2024-02-27 11:53:46 -05:00
Thomas Van Lenten 322b53d578 CodeGenerator support for response edition information.
- Add api to get supported editions range.
- If the generator signals editions support, add the range into the generation
  response.
- Make the protos Editions enum Comparable since the docs document it and it
  then will allow other code paths to do version comparisons.
2024-02-26 12:59:58 -05:00
Thomas Van Lenten 5580b05b55 Enable StrictConcurrency=complete on more targets. 2024-02-22 10:36:16 -05:00
Thomas Van Lenten 0f3e371638 Add enableUpcomingFeature("ExistentialAny") and update accordingly.
Enable the feature on all targets, and then go through doing the fixits within
Xcode 15 that are triggered as a result.

This basically replaces #1509
2023-12-06 08:51:20 -05:00
Thomas Van Lenten 514b0d89a1 Use a Set for duplicate name checks.
If there are a lot files generated, this linear check could have become an
issue.
2023-10-26 09:39:37 -04:00
Thomas Van Lenten e7a3212974 Step 2 of better plugin support.
Extend `CodeGenerator` to allow easy customization and generally provide what's
needed for a `main()` so plugins don't have to reimplement everything.
2023-10-26 09:39:37 -04:00
Thomas Van Lenten f89859f9b4 Inline some of the parameter string parsing. 2023-10-26 09:39:37 -04:00
Thomas Van Lenten 2b0f7fcb0f Step 1 of better plugin support.
Add the concept of a `CodeGenerator` and some building blocks to go with it so
some of the boilerplate around writing plugins is provided.

This is the start of the building blocks to make supporting Editions easier for
any plugin (grpc) when that support lands as it will make a lot of the setup
details hidden rather than having to be implemented by each plugin.
2023-10-26 09:39:37 -04:00