Skip to content

Commit 419f7a3

Browse files
Merge branch 'main' into feat/data-processors-service
2 parents 7929468 + 283d540 commit 419f7a3

19 files changed

Lines changed: 2507 additions & 117 deletions

.clang-tidy

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ WarningsAsErrors: >
4545
modernize-use-nullptr,
4646
modernize-use-override,
4747
performance-move-const-arg,
48-
# readability-identifier-naming, # temporarily disabled during rename migration
48+
readability-identifier-naming,
4949
5050
HeaderFilterRegex: '.*'
5151

@@ -98,6 +98,49 @@ CheckOptions:
9898
value: CamelCase
9999
- key: readability-identifier-naming.TemplateParameterCase
100100
value: CamelCase
101+
# const/constexpr LOCALS follow lower_case (house style); the k-prefixed
102+
# Constant policy above applies to file-scope/global constants only.
103+
- key: readability-identifier-naming.LocalConstantCase
104+
value: lower_case
105+
- key: readability-identifier-naming.LocalConstantPrefix
106+
value: ''
107+
- key: readability-identifier-naming.LocalVariableCase
108+
value: lower_case
109+
# `PJ` is the documented flat project namespace; `Ui` is uic-generated.
110+
- key: readability-identifier-naming.NamespaceIgnoredRegexp
111+
value: '^(PJ|Ui)$'
112+
# extern "C" C-ABI plugin contract: PJ_* structs/enums/enum-constants/entry
113+
# points and pj_* exported globals are the plugin binary ABI — recasing them
114+
# breaks every compiled plugin. Also exempt Google Benchmark BM_ functions and
115+
# the std::visit `overloaded` idiom.
116+
- key: readability-identifier-naming.FunctionIgnoredRegexp
117+
value: '(BM_|PJ_|pj_).*'
118+
- key: readability-identifier-naming.StructIgnoredRegexp
119+
value: '(overloaded|PJ_.*)'
120+
- key: readability-identifier-naming.EnumIgnoredRegexp
121+
value: 'PJ_.*'
122+
- key: readability-identifier-naming.EnumConstantIgnoredRegexp
123+
value: 'PJ_.*'
124+
- key: readability-identifier-naming.GlobalConstantIgnoredRegexp
125+
value: 'pj_.*'
126+
# Canonical schema and STL-/plugin-facing API are grandfathered: the ROS/OpenCV
127+
# CameraInfo/DepthImage intrinsics (single-capital D/K/R/P) are a wire-format
128+
# field contract; `has_value`/`value_or`/`error_or` are the std::expected drop-in
129+
# interface; and `load_config`/`save_config`/`trampoline_*` are plugin-author or
130+
# C-ABI-bridge methods that every compiled plugin links by name. Recasing any of
131+
# these breaks wire compat, STL-shaped generic code, or the plugin ABI. (Revisit
132+
# the snake_case plugin virtuals in a future coordinated 1.0.0.)
133+
- key: readability-identifier-naming.PublicMemberIgnoredRegexp
134+
value: '([A-Z]|fetchMessageData)'
135+
- key: readability-identifier-naming.MethodIgnoredRegexp
136+
value: '(has_value|value_or|error_or|load_config|save_config|ui_content|widget_data|trampoline_.*)'
137+
- key: readability-identifier-naming.TypeAliasIgnoredRegexp
138+
value: 'json'
139+
# A trailing underscore on a *parameter* is the idiomatic shadow-avoidance form
140+
# (e.g. `PayloadView(Span bytes_) : bytes(bytes_)` where `bytes` is a member);
141+
# stripping it reintroduces a -Wshadow error. Exempt trailing-underscore params.
142+
- key: readability-identifier-naming.ParameterIgnoredRegexp
143+
value: '.*_'
101144

102145
# --- Function size limits ---
103146
- key: readability-function-size.LineThreshold
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: conda-release
2+
3+
# Build + publish the SDK conda package to the prefix.dev "plotjuggler" channel
4+
# on tag push. Requires repo secret PREFIX_API_KEY = a prefix.dev token with
5+
# write access to the "plotjuggler" channel.
6+
on:
7+
push:
8+
tags:
9+
- "v*"
10+
# Manual dispatch builds the current conanfile.py/recipe.yaml version (no tag
11+
# guard); idempotent via `rattler-build upload --skip-existing`.
12+
workflow_dispatch: {}
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
build-and-upload:
19+
name: ${{ matrix.os }}
20+
runs-on: ${{ matrix.os }}
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
os: [ubuntu-22.04] # extend to macos-15-intel, windows-2022 in a later task
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
29+
- name: Verify tag matches all version sources
30+
if: startsWith(github.ref, 'refs/tags/v')
31+
shell: bash
32+
run: |
33+
tag="${GITHUB_REF_NAME#v}"
34+
# The SDK version is hardcoded in three places that must agree with the tag:
35+
# conanfile.py version = "..." (Conan package + the tag guard)
36+
# recipe.yaml context.version "..." (embedded in the published .conda)
37+
# CMakeLists.txt PJ_PACKAGE_VERSION "..." (baked into ConfigVersion.cmake,
38+
# matched by find_package(... <ver>))
39+
conan_ver="$(grep -E '^\s*version\s*=' conanfile.py | head -1 | sed -E 's/.*"(.*)".*/\1/')"
40+
recipe_ver="$(grep -E '^[[:space:]]+version:[[:space:]]*"' recipe.yaml | head -1 | sed -E 's/.*"(.*)".*/\1/')"
41+
cmake_ver="$(grep -E 'set\(PJ_PACKAGE_VERSION' CMakeLists.txt | head -1 | sed -E 's/.*"(.*)".*/\1/')"
42+
echo "tag=$tag conanfile.py=$conan_ver recipe.yaml=$recipe_ver CMakeLists.txt=$cmake_ver"
43+
fail=0
44+
for pair in "conanfile.py:$conan_ver" "recipe.yaml:$recipe_ver" "CMakeLists.txt:$cmake_ver"; do
45+
if [ "$tag" != "${pair#*:}" ]; then
46+
echo "::error::Tag v$tag does not match ${pair%%:*} version (${pair#*:})"
47+
fail=1
48+
fi
49+
done
50+
[ "$fail" -eq 0 ]
51+
52+
- name: Install rattler-build
53+
uses: prefix-dev/rattler-build-action@v0.2.38
54+
with:
55+
setup-only: true
56+
rattler-build-version: v0.66.2
57+
58+
- name: Build conda package
59+
shell: bash
60+
run: |
61+
rattler-build build \
62+
--recipe recipe.yaml \
63+
--channel conda-forge \
64+
--output-dir "${{ runner.temp }}/conda-output"
65+
66+
- name: Upload to prefix.dev (plotjuggler)
67+
shell: bash
68+
env:
69+
PREFIX_API_KEY: ${{ secrets.PREFIX_API_KEY }}
70+
run: |
71+
find "${{ runner.temp }}/conda-output" -name '*.conda' -print0 \
72+
| xargs -0 rattler-build upload prefix --channel plotjuggler --skip-existing

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ pj_media/testdata/
99
/.vscode/*
1010
/CMakeUserPresets.json
1111
/aqtinstall.log
12+
/.pixi/
13+
/output/
14+
/build-test/

0 commit comments

Comments
 (0)