Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
0160c3b
feat(csharp): implement config patching to align with Go and C++ loaders
Kybxd May 15, 2026
90131a8
test: convert C++/C# print-based verification to proper unit tests
Kybxd May 15, 2026
796860c
chore(test/prepare): fix xUnit Registry race + install buf in prepare…
Kybxd May 15, 2026
39d2368
fix(build): align all build types to Release to avoid MSVC CRT mismatch
Kybxd May 15, 2026
040c197
fix(cpp-loader): use msg.c_str() in legacy ProtobufLogHandler
Kybxd May 15, 2026
c2e40e8
perf(ci): cache prebuilt protobuf to skip ~10min compile on every run
Kybxd May 15, 2026
2ac4ace
ci: validate protobuf cache
Kybxd May 15, 2026
bfcfdd7
fix(init): cover protobuf v3.x Windows install layout in fast-path & …
Kybxd May 15, 2026
87317eb
perf(ci): drop redundant 'choco install cmake ninja' on windows-latest
Kybxd May 15, 2026
5740885
build: invalidate protobuf fast-path via build signature
Kybxd May 18, 2026
1c36222
build: stop recursively initializing protobuf submodule
Kybxd May 18, 2026
079d71d
docs,ci: rely on CMakeLists defaults and refresh stale comments
Kybxd May 18, 2026
933740a
build(cpp): switch protobuf and loader to Debug, drop default CMAKE_B…
Kybxd May 18, 2026
f34becd
fix(cpp): align googletest CRT with loader/protobuf to fix Windows AV
Kybxd May 18, 2026
17bf194
fix(cpp): avoid namespace-scope thread_local std::string in util.pc
Kybxd May 18, 2026
6891fa8
chore: normalize line endings to LF for text files
Kybxd May 18, 2026
90fe6ab
chore: shorten comment and fix Go test package name
Kybxd May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Treat all files in this repo as binary, with no git magic updating
# line endings. This produces predictable results in different environments.
#
# Windows users contributing to this repo will need to use a modern version
# of git and editors capable of LF line endings.
#
# Windows .bat files are known to have multiple bugs when run with LF
# endings, and so they are checked in with CRLF endings, with a test
# to catch problems. (See https://github.com/golang/go/issues/37791.)
#
# You can prevent accidental CRLF line endings from entering the repo
# via PR/MR checks.
#
# See https://github.com/golang/go/issues/9281.
# See https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line.
# Treat all files in this repo as binary, with no git magic updating
# line endings. This produces predictable results in different environments.
#
# Windows users contributing to this repo will need to use a modern version
# of git and editors capable of LF line endings.
#
# Windows .bat files are known to have multiple bugs when run with LF
# endings, and so they are checked in with CRLF endings, with a test
# to catch problems. (See https://github.com/golang/go/issues/37791.)
#
# You can prevent accidental CRLF line endings from entering the repo
# via PR/MR checks.
#
# See https://github.com/golang/go/issues/9281.
# See https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line.
* -text
9 changes: 5 additions & 4 deletions .github/workflows/release-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release CPP

on:
release:
types: [ published ]
types: [published]
workflow_dispatch:

jobs:
Expand All @@ -13,8 +13,8 @@ jobs:
'cmd/protoc-gen-cpp-tableau-loader/')
strategy:
matrix:
goos: [ linux, darwin, windows ]
goarch: [ amd64, arm64 ]
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
exclude:
- goos: linux
goarch: arm64
Expand All @@ -28,7 +28,8 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.24.x"
go-version-file: go.mod
cache-dependency-path: go.sum

- name: Download dependencies
run: |
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/release-csharp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release C#

on:
release:
types: [ published ]
types: [published]
workflow_dispatch:

jobs:
Expand All @@ -13,8 +13,8 @@ jobs:
'cmd/protoc-gen-csharp-tableau-loader/')
strategy:
matrix:
goos: [ linux, darwin, windows ]
goarch: [ amd64, arm64 ]
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
exclude:
- goos: linux
goarch: arm64
Expand All @@ -28,7 +28,8 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.24.x"
go-version-file: go.mod
cache-dependency-path: go.sum

- name: Download dependencies
run: |
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/release-go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release Go

on:
release:
types: [ published ]
types: [published]
workflow_dispatch:
jobs:
release:
Expand All @@ -12,8 +12,8 @@ jobs:
'cmd/protoc-gen-go-tableau-loader/')
strategy:
matrix:
goos: [ linux, darwin, windows ]
goarch: [ amd64, arm64 ]
goos: [linux, darwin, windows]
goarch: [amd64, arm64]
exclude:
- goos: linux
goarch: arm64
Expand All @@ -27,7 +27,8 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.24.x"
go-version-file: go.mod
cache-dependency-path: go.sum

- name: Download dependencies
run: |
Expand Down
37 changes: 20 additions & 17 deletions .github/workflows/testing-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Testing C++
# Trigger on pushes, PRs (excluding documentation changes), and nightly.
on:
push:
branches: [ master, main ]
branches: [master, main]
pull_request:
schedule:
- cron: 0 0 * * * # daily at 00:00
Expand All @@ -16,16 +16,13 @@ jobs:
test:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
go-version: [ 1.24.x ]
protobuf-version: [ "32.0", "3.19.3" ]
os: [ubuntu-latest, windows-latest]
protobuf-version: ["32.0", "3.19.3"]
include:
- os: ubuntu-latest
init_script: bash init.sh
run_loader: ./bin/loader
- os: windows-latest
init_script: cmd /c init.bat
run_loader: .\bin\loader.exe

name: test (${{ matrix.os }}, protobuf ${{ matrix.protobuf-version }})
runs-on: ${{ matrix.os }}
Expand All @@ -35,26 +32,33 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v6
with:
submodules: recursive
submodules: true

- name: Install Go
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
go-version-file: go.mod
cache-dependency-path: go.sum
cache: true

- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y cmake ninja-build

- name: Install dependencies (Windows)
if: runner.os == 'Windows'
run: choco install cmake ninja -y
run: sudo apt-get update && sudo apt-get install -y ninja-build

- name: Setup MSVC (Windows)
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1

- name: Cache protobuf install
id: cache-protobuf
uses: actions/cache@v4
with:
path: |
third_party/_submodules/protobuf/.build/_install
key: protobuf-${{ matrix.os }}-${{ matrix.protobuf-version }}-${{ hashFiles('init.sh', 'init.bat', '.gitmodules') }}
restore-keys: |
protobuf-${{ matrix.os }}-${{ matrix.protobuf-version }}-

- name: Init submodules and build protobuf
run: ${{ matrix.init_script }}
env:
Expand Down Expand Up @@ -87,13 +91,12 @@ jobs:

- name: CMake Configure
working-directory: test/cpp-tableau-loader
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
-DCMAKE_CXX_STANDARD=17
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=17

- name: CMake Build
working-directory: test/cpp-tableau-loader
run: cmake --build build --parallel

- name: Run loader
- name: Run tests
working-directory: test/cpp-tableau-loader
run: ${{ matrix.run_loader }}
run: ctest --test-dir build --output-on-failure
18 changes: 7 additions & 11 deletions .github/workflows/testing-csharp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Testing C#
# Trigger on pushes, PRs (excluding documentation changes), and nightly.
on:
push:
branches: [ master, main ]
branches: [master, main]
pull_request:
schedule:
- cron: 0 0 * * * # daily at 00:00
Expand All @@ -16,9 +16,8 @@ jobs:
test:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
go-version: [ 1.24.x ]
protobuf-version: [ "32.0", "3.19.3" ]
os: [ubuntu-latest, windows-latest]
protobuf-version: ["32.0", "3.19.3"]

name: test (${{ matrix.os }}, protobuf ${{ matrix.protobuf-version }})
runs-on: ${{ matrix.os }}
Expand All @@ -33,7 +32,8 @@ jobs:
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
go-version-file: go.mod
cache-dependency-path: go.sum
cache: true

- name: Install .NET SDK
Expand Down Expand Up @@ -66,10 +66,6 @@ jobs:
working-directory: test/csharp-tableau-loader
run: buf generate ..

- name: Build
- name: Test
working-directory: test/csharp-tableau-loader
run: dotnet build

- name: Run loader
working-directory: test/csharp-tableau-loader
run: dotnet run
run: dotnet test --nologo --logger "console;verbosity=normal"
14 changes: 5 additions & 9 deletions .github/workflows/testing-go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Testing Go
# Trigger on pushes, PRs (excluding documentation changes), and nightly.
on:
push:
branches: [ master, main ]
branches: [master, main]
pull_request:
schedule:
- cron: 0 0 * * * # daily at 00:00
Expand All @@ -16,9 +16,8 @@ jobs:
test:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
go-version: [ 1.24.x ]
protobuf-version: [ "32.0", "3.19.3" ]
os: [ubuntu-latest, windows-latest]
protobuf-version: ["32.0", "3.19.3"]

name: test (${{ matrix.os }}, protobuf ${{ matrix.protobuf-version }})
runs-on: ${{ matrix.os }}
Expand All @@ -33,7 +32,8 @@ jobs:
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
go-version-file: go.mod
cache-dependency-path: go.sum
cache: true

- name: Install Buf
Expand All @@ -54,10 +54,6 @@ jobs:
run: go test -v -timeout 30m -race ./... -coverprofile=coverage.txt
-covermode=atomic

- name: Run loader
working-directory: test/go-tableau-loader
run: go run .

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,6 @@ coverage.txt
!test/testdata/bin/
test/csharp-tableau-loader/protoconf

# C# Dev Kit language service cache (VS Code)
*.lscache

Loading
Loading