Skip to content

WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows}#8068

Open
kosak wants to merge 4 commits into
mainfrom
kosak_clients-gha
Open

WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows}#8068
kosak wants to merge 4 commits into
mainfrom
kosak_clients-gha

Conversation

@kosak

@kosak kosak commented May 22, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@github-actions

github-actions Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

No docs changes detected for b059114

@kosak kosak added NoDocumentationNeeded NoReleaseNotesNeeded No release notes are needed. labels May 22, 2026
@kosak kosak changed the title feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows} WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows} May 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pull Request titles must follow the Conventional Commits specification.
Breaking changes that are expected to impact users must include "BREAKING CHANGE: " at the end of the PR description.

Details:

Unknown release type "WIP" found in pull request title "WIP: feat: DH-22472, DH-22473, DH-22475: Github Actions to build {C++, Python ticking, C#} on {Ubuntu, Windows}". 

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds GitHub Actions workflows to build the Deephaven C++ client, the static/ticking Python clients, and the .NET (C#) client on Ubuntu and Windows runners, plus supporting vcpkg configuration and CMake install rules. The C++ build relies on a NuGet-backed vcpkg binary cache to avoid rebuilding dependencies each run.

Changes:

  • New workflows: clients-cpp-python.yml, clients-csharp.yml, and a reusable dhc-version.yml that extracts the DHC version from gradle.properties.
  • New vcpkg custom triplets (x64-linux-dynamic-release.cmake, x64-windows-release) and an updated vcpkg-configuration.json baseline that drops the artifact registry.
  • CMakeLists.txt change to install vcpkg-built .so files alongside the C++ client on Linux toolchain builds.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.github/workflows/clients-cpp-python.yml New C++/Python build workflow with vcpkg + NuGet binary caching for Linux and Windows.
.github/workflows/clients-csharp.yml New .NET client build and NuGet packaging workflow on Ubuntu.
.github/workflows/dhc-version.yml Reusable workflow that derives dhc_version via awk on gradle.properties.
cpp-client/deephaven/CMakeLists.txt Adds install rule copying vcpkg shared libraries on non-Windows toolchain builds.
cpp-client/deephaven/vcpkg-configuration.json Updates vcpkg baseline and removes the artifact registry entry.
cpp-client/deephaven/custom-triplets/x64-linux-dynamic-release.cmake New Linux release-only dynamic-link triplet.
cpp-client/deephaven/custom-triplets/x64-windows-release New Windows release-only triplet (missing .cmake extension).
cpp-client/ARBITRARY_CHANGED_FILE_TO_TRIGGER_REBUILD.txt Debug/scratch file used to retrigger CI; should not be merged.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cpp-client/ARBITRARY_CHANGED_FILE_TO_TRIGGER_REBUILD.txt
Comment on lines +1 to +10
# These settings are inspired by [vcpkg repo]/triplets/x64-windows.cmake

# These settings are the same:
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)

# This setting is new because we want to build only the 'release'
# version of the packages, rather the both 'debug' and 'release'
set(VCPKG_BUILD_TYPE release)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We would like to use x64-windows-release, but we can't because (kosak thinks) the Google properties like grpc and protobuf aren't honoring it properly.

Comment thread cpp-client/deephaven/custom-triplets/x64-windows-release.cmake Outdated
Comment thread cpp-client/deephaven/custom-triplets/x64-linux-dynamic-release.cmake Outdated
Comment thread .github/workflows/clients-cpp-python.yml Outdated
Comment thread .github/workflows/clients-cpp-python.yml Outdated
include:
- os: ubuntu-24.04
target_triplet: x64-linux-dynamic-release
- os: windows-2025-vs2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a transitionary runner label that github is offering while it transitions to making Visual Studio 2026 standard on all the windows-2025 runners.

Comment on lines +30 to +37
DHC_VERSION=$(awk -F= '
/^[^#]/ { props[$1] = $2 }
END {
v = props["deephavenMajorVersion"] "." props["deephavenMinorVersion"]
if (props["deephavenBaseQualifier"] != "") v = v "-" props["deephavenBaseQualifier"]
print v
}
' gradle.properties)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't care right now unless my reviewers do

@kosak kosak force-pushed the kosak_clients-gha branch 2 times, most recently from 08eb34d to f9f4152 Compare June 1, 2026 01:38
@kosak kosak force-pushed the kosak_clients-gha branch from f9f4152 to 845e7ab Compare June 1, 2026 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants