Repository navigation
feat(csharp): version core packages as 1.0, separately from drivers - #4923
CurtHagenlocher wants to merge 1 commit into
Conversation
The core C# packages (Apache.Arrow.Adbc, Apache.Arrow.Adbc.Client, Apache.Arrow.Adbc.Telemetry.Traces.Exporters/Listeners and Apache.Arrow.Adbc.Testing) now take their version from AdbcCoreVersionPrefix (1.0.0), while the drivers continue to use VersionPrefix (0.25.0). The release scripts track the new version as VERSION_CSHARP_CORE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aca34c0 to
efa697d
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The version split is consistently applied across package projects, dependency references, and release tooling, with no blocking issues identified.
No open issues 🎉
What changed in this PR
Separates C# core package versioning from drivers, allowing core packages to release as 1.0.0 while drivers remain at 0.25.0.
Changes:
- Adds independent core version properties and opts in five core packages.
- Updates Client package references to use the core version.
- Updates release preparation, publishing, and announcements for both versions.
| File | Description |
|---|---|
| dev/release/versions.env | Defines the core release version. |
| dev/release/verify-release-candidate.sh | Displays both C# versions. |
| dev/release/utils-prepare.sh | Updates core and driver versions separately. |
| dev/release/post-13-website.sh | Announces both versions. |
| dev/release/post-07-csharp.sh | Publishes packages using their respective versions. |
| dev/release/06-binary-verify.sh | Includes both versions in the vote email. |
| dev/adbc_dev/changelog.py | Lists both versions in changelogs. |
| csharp/test/SmokeTests/build.props | Uses the core version for Client. |
| csharp/test/Apache.Arrow.Adbc.Tests/Apache.Arrow.Adbc.Testing.csproj | Opts Testing into core versioning. |
| csharp/src/Telemetry/Traces/Listeners/Apache.Arrow.Adbc.Telemetry.Traces.Listeners.csproj | Opts Listeners into core versioning. |
| csharp/src/Telemetry/Traces/Exporters/Apache.Arrow.Adbc.Telemetry.Traces.Exporters.csproj | Opts Exporters into core versioning. |
| csharp/src/Client/Apache.Arrow.Adbc.Client.csproj | Opts Client into core versioning. |
| csharp/src/Apache.Arrow.Adbc/Apache.Arrow.Adbc.csproj | Opts the base library into core versioning. |
| csharp/Directory.Packages.props | Uses the core version for the Client dependency. |
| csharp/Directory.Build.props | Defines core version properties with suffix support. |
Review effort: Balanced
|
With ADBC 1.1 support nearly done (just two outstanding PRs), and after 18 months of shipping these in Power BI, I think it's finally time to declare 1.0 for the C# libraries. I've chosen to leave the existing drivers at 0.x because all of them other than the FlightSql interop package are basically obsolete anyway. We'll do 1.0 releases out of the ADBC Foundry for them, referencing the newly-created 1.0 core assemblies. I think the FlightSql interop package should eventually be replaced by the dbc build task. |
For the upcoming release, the core C# packages ship as 1.0 while the drivers stay at 0.x.
1.0.0: Apache.Arrow.Adbc, Apache.Arrow.Adbc.Client, Apache.Arrow.Adbc.Telemetry.Traces.Exporters, Apache.Arrow.Adbc.Telemetry.Traces.Listeners, Apache.Arrow.Adbc.Testing
0.25.0: all drivers, including Apache.Arrow.Adbc.Drivers.Interop.FlightSql
Changes:
csharp/Directory.Build.props: newAdbcCoreVersionPrefix(1.0.0), plusAdbcCoreVersion, which includes the version suffix.VersionPrefixis still the default and is what the drivers use.<VersionPrefix>$(AdbcCoreVersionPrefix)</VersionPrefix>.$(AdbcCoreVersion).VERSION_CSHARP_COREinversions.env.utils-prepare.shbumps it,post-07-csharp.shpushes the core packages under it, and the vote email, website post, verification script and changelog list both C# versions.Verified:
dotnet packproduces the versions above, and driver packages depend onApache.Arrow.Adbc 1.0.0-SNAPSHOT.--version-suffixand an empty suffix apply correctly to both groups.sedreplacements update all three properties.🤖 Generated with Claude Code