Skip to content

feat(csharp): version core packages as 1.0, separately from drivers - #4923

Open
CurtHagenlocher wants to merge 1 commit into
apache:mainfrom
CurtHagenlocher:csharp-core-version
Open

CurtHagenlocher wants to merge 1 commit into
apache:mainfrom
CurtHagenlocher:csharp-core-version

Conversation

@CurtHagenlocher

Copy link
Copy Markdown
Contributor

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: new AdbcCoreVersionPrefix (1.0.0), plus AdbcCoreVersion, which includes the version suffix. VersionPrefix is still the default and is what the drivers use.
  • The core projects opt in with <VersionPrefix>$(AdbcCoreVersionPrefix)</VersionPrefix>.
  • The smoke tests now reference Apache.Arrow.Adbc.Client at $(AdbcCoreVersion).
  • Release tooling: new VERSION_CSHARP_CORE in versions.env. utils-prepare.sh bumps it, post-07-csharp.sh pushes the core packages under it, and the vote email, website post, verification script and changelog list both C# versions.

Verified:

  • dotnet pack produces the versions above, and driver packages depend on Apache.Arrow.Adbc 1.0.0-SNAPSHOT.
  • --version-suffix and an empty suffix apply correctly to both groups.
  • The release-prep sed replacements update all three properties.

🤖 Generated with Claude Code

@CurtHagenlocher
CurtHagenlocher requested a balanced review from Copilot October 19, 2026 03:23
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>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

@CurtHagenlocher

Copy link
Copy Markdown
Contributor Author

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.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants