| Loader |
|
| Go |
|
| C++ |
|
| C# |
|
| Release |
|
| Testing |
|
| License |
|
| Plugin | Language | Generated extension |
|---|---|---|
protoc-gen-go-tableau-loader |
Go | *.pc.go |
protoc-gen-cpp-tableau-loader |
C++17 | *.pc.h / *.pc.cc |
protoc-gen-csharp-tableau-loader |
C# (Unity 2022.3 LTS / .NET 8) | *.pc.cs |
Use make.py (Python 3.10+, stdlib only):
python3 make.py setup --lang all # one-time host toolchain install
python3 make.py test --lang go # Go
python3 make.py test --lang cpp # C++
python3 make.py test --lang csharp # C#
python3 make.py test --lang ts # TypeScript (experimental)Recommended environment: devcontainer (open in VS Code → Dev Containers: Reopen in Container). Inside the container, setup is a no-op.
Native hosts: python3 make.py setup installs everything pinned to ./.devcontainer/versions.env — the same versions CI and the devcontainer use. Toolchain layout per host:
- Go — official tarball from go.dev to
~/.local/go/(Linux/macOS) or winget (Windows). - buf — pinned binary from GitHub releases to
~/.local/bin/(Linux/macOS) or%LOCALAPPDATA%\buf\bin\(Windows). - protobuf — vcpkg at
VCPKG_BASELINE_COMMITon every native host (Linux/macOS/Windows). Switch versions per-test with--protobuf-version. - .NET / Node / cmake / ninja — Homebrew (macOS), Microsoft+NodeSource apt repos (Linux), winget+Chocolatey (Windows).
On Windows, run setup from cmd as Administrator the first time. Subsequent commands work from any shell because each subprocess sources vcvarsall.bat itself — your shell PATH/INCLUDE/LIB are never mutated.
python3 make.py setup [--lang go|cpp|csharp|ts|all]
python3 make.py generate --lang go|cpp|csharp|ts
python3 make.py build --lang go|cpp|csharp|ts [--cxx-std 17|20] [--cxx-compiler msvc|clang|gcc]
[--protobuf-version <ver>] [--triplet <triplet>]
python3 make.py test --lang go|cpp|csharp|ts [-k <filter>] [--smoke] [--coverage] [--no-race]
(+ all build flags)
python3 make.py clean [--lang ...] [--all]
python3 make.py env # diagnostic JSON
python3 make.py --versionGlobal flags: --verbose / -v, --dry-run, --cwd <path>.
Examples:
python3 make.py test --lang go -k Test_ActivityConf_OrderedMap
python3 make.py test --lang go --race # opt in (Windows default is off; needs cgo+MSVC)
python3 make.py test --lang cpp --protobuf-version 3.21.12
python3 make.py test --lang csharp -k HubTest.Load
python3 make.py test --lang cpp --no-clean # skip pre-build wipeThe C++ flow wipes test/cpp-tableau-loader/{build,src/tableau,src/protoconf} by default (gitignored *.pb.* from a prior protobuf version shadows fresh codegen).
pip install pytest
python -m pytest test_make.py -v