tinybird-toolset 2.4.1__tar.gz → 2.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. {tinybird_toolset-2.4.1/src/tinybird_toolset.egg-info → tinybird_toolset-2.4.3}/PKG-INFO +1 -1
  2. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/README.md +14 -6
  3. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/conf.py +16 -10
  4. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/setup.py +1 -1
  5. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3/src/tinybird_toolset.egg-info}/PKG-INFO +1 -1
  6. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/LICENSE +0 -0
  7. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/MANIFEST.in +0 -0
  8. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/setup.cfg +0 -0
  9. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/chtoolset/__init__.py +0 -0
  10. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/chtoolset/query.py +0 -0
  11. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/tinybird_toolset.egg-info/SOURCES.txt +0 -0
  12. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/tinybird_toolset.egg-info/dependency_links.txt +0 -0
  13. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/tinybird_toolset.egg-info/requires.txt +0 -0
  14. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/src/tinybird_toolset.egg-info/top_level.txt +0 -0
  15. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_check_compatible_types.py +0 -0
  16. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_check_write_query.py +0 -0
  17. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_chquery.py +0 -0
  18. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_convert_to_row_binary.py +0 -0
  19. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_explain_ast.py +0 -0
  20. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_get_columns_from_create_query.py +0 -0
  21. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_get_left_table.py +0 -0
  22. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_internal_cache.py +0 -0
  23. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_normalize_query_keep_names.py +0 -0
  24. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_normalize_table_column.py +0 -0
  25. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_parse_create_materialized_view_target_table.py +0 -0
  26. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_replace_tables.py +0 -0
  27. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_replace_tables_backward_compat.py +0 -0
  28. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_rewrite_aggregation_states.py +0 -0
  29. {tinybird_toolset-2.4.1 → tinybird_toolset-2.4.3}/tests/test_tables.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tinybird-toolset
3
- Version: 2.4.1
3
+ Version: 2.4.3
4
4
  Home-page: https://gitlab.com/tinybird/clickhouse-toolset
5
5
  Author: Tinybird.co
6
6
  Author-email: support@tinybird.co
@@ -245,7 +245,7 @@ Check tests directory
245
245
 
246
246
  ## Release
247
247
 
248
- Releasing a new version requires publishing wheels for three platforms: Linux x86_64, Linux ARM64 (automated via CI), and macOS ARM64 (manual).
248
+ Releasing a new version requires publishing wheels for three platforms: Linux x86_64, Linux ARM64, and macOS ARM64. All are automated via CI when the MR is merged to `master`.
249
249
 
250
250
  ### 1. Prepare the release
251
251
 
@@ -253,23 +253,31 @@ Releasing a new version requires publishing wheels for three platforms: Linux x8
253
253
  2. Update `CHANGELOG.md`
254
254
  3. Create a MR with these changes and merge to `master`
255
255
 
256
- ### 2. Linux release (automatic)
256
+ ### 2. Automated release (CD)
257
257
 
258
- Linux x86_64 and ARM64 wheels are published automatically when the MR is merged to `master`. The CI detects the `setup.py` change, and the `release` job will:
258
+ When the MR is merged to `master` and `setup.py` changed, wheels for all platforms are deployed to PyPI automatically:
259
259
 
260
- - Compare the version in `setup.py` with the latest version on PyPI (skips if already published)
260
+ | Platform | CI job | Runner |
261
+ |----------|--------|--------|
262
+ | Linux x86_64 + ARM64 | `release` | Docker (`amd64-spot` / `arm64-spot`) |
263
+ | macOS ARM64 | `release/macos arm64` | Native Apple Silicon (`saas-macos-large-m2pro`) |
264
+
265
+ The Linux `release` job will:
261
266
  - Collect auditwheel-repaired wheels for both x86_64 and ARM64
262
267
  - Build the source distribution
263
268
  - Upload everything to PyPI
264
269
  - Create a git tag `vX.Y.Z` automatically
265
270
 
271
+ The macOS `release/macos arm64` job runs `release.sh` on a native Apple Silicon runner to build, delocate, test, and upload macOS ARM64 wheels.
272
+
266
273
  The `PYPI_TOKEN` CI/CD variable must be configured in GitLab (Settings > CI/CD > Variables) with a valid PyPI API token.
267
274
 
268
- ### 3. macOS release (manual)
275
+ ### 3. Manual macOS release
269
276
 
270
- macOS ARM64 wheels must be built and uploaded from a Mac with Apple Silicon using `release.sh`:
277
+ To run the macOS release manually from a Mac with Apple Silicon:
271
278
 
272
279
  ```bash
280
+ export TWINE_USERNAME=__token__
273
281
  export TWINE_PASSWORD=pypi-... # PyPI API token
274
282
  ./release.sh
275
283
  ```
@@ -27,7 +27,7 @@ SIMDJSON_DEBUG = bool(os.environ.get('SIMDJSON_DEBUG', ''))
27
27
 
28
28
  # Sanitizer support
29
29
  ASAN_ENABLED = bool(os.environ.get('ASAN_ENABLED', '')) # AddressSanitizer
30
- UBSAN_ENABLED = bool(os.environ.get('UBSAN_ENABLED', '')) # UndefinedBehaviorSanitizer
30
+ UBSAN_ENABLED = bool(os.environ.get('UBSAN_ENABLED', '')) # UndefinedBehaviorSanitizer
31
31
  MSAN_ENABLED = bool(os.environ.get('MSAN_ENABLED', '')) # MemorySanitizer
32
32
  TSAN_ENABLED = bool(os.environ.get('TSAN_ENABLED', '')) # ThreadSanitizer
33
33
  THINLTO_FLAG = '-flto=thin'
@@ -158,8 +158,8 @@ class ClickHouseBuildExt(build_ext):
158
158
  # -fPIC: necessary for building a dynamic library
159
159
  # -fvisibility=hidden: Reduces the size of the final library by allowing the compiler to not export many
160
160
  # symbols from CH (in the final library)
161
- f'-DCMAKE_C_FLAGS=-fPIC -fvisibility=hidden{" -fsanitize=address" if ASAN_ENABLED else ""}{" -fsanitize=undefined" if UBSAN_ENABLED else ""}{" -fsanitize=memory" if MSAN_ENABLED else ""}{" -fsanitize=thread" if TSAN_ENABLED else ""}',
162
- f'-DCMAKE_CXX_FLAGS=-fPIC -fvisibility=hidden{" -fsanitize=address" if ASAN_ENABLED else ""}{" -fsanitize=undefined" if UBSAN_ENABLED else ""}{" -fsanitize=memory" if MSAN_ENABLED else ""}{" -fsanitize=thread" if TSAN_ENABLED else ""}',
161
+ f'-DCMAKE_C_FLAGS=-fPIC -fvisibility=hidden{" -march=x86-64-v3 -mtune=generic" if platform.machine() in ("x86_64", "AMD64") else ""}{" -fsanitize=address" if ASAN_ENABLED else ""}{" -fsanitize=undefined" if UBSAN_ENABLED else ""}{" -fsanitize=memory" if MSAN_ENABLED else ""}{" -fsanitize=thread" if TSAN_ENABLED else ""}',
162
+ f'-DCMAKE_CXX_FLAGS=-fPIC -fvisibility=hidden{" -march=x86-64-v3 -mtune=generic" if platform.machine() in ("x86_64", "AMD64") else ""}{" -fsanitize=address" if ASAN_ENABLED else ""}{" -fsanitize=undefined" if UBSAN_ENABLED else ""}{" -fsanitize=memory" if MSAN_ENABLED else ""}{" -fsanitize=thread" if TSAN_ENABLED else ""}',
163
163
  '-DCMAKE_ASM_FLAGS_INIT=-fPIC -fvisibility=hidden',
164
164
 
165
165
  '-DENABLE_TESTS=FALSE',
@@ -181,14 +181,20 @@ class ClickHouseBuildExt(build_ext):
181
181
  # Unwind with external code leads to crashes
182
182
  '-DUSE_UNWIND=FALSE',
183
183
 
184
- # Size reduction
185
- # x86-specific SIMD flags (not applicable on ARM)
184
+ # x86-specific SIMD: AVX2/BMI2 set the runtime floor to x86-64-v3
185
+ # (Haswell / Zen 1, ~2013+), matching the -march=x86-64-v3 flag above.
186
+ # AVX-512 deliberately not enabled — AMD EPYC Milan in our fleet lacks it.
186
187
  *([
187
- '-DENABLE_SSE42=FALSE',
188
- '-DENABLE_SSSE3=FALSE',
189
- '-DNO_SSE3_OR_HIGHER=TRUE',
188
+ '-DENABLE_SSE42=TRUE',
189
+ '-DENABLE_SSSE3=TRUE',
190
+ '-DENABLE_AVX=TRUE',
191
+ '-DENABLE_AVX2=TRUE',
192
+ '-DENABLE_BMI=TRUE',
193
+ '-DENABLE_BMI2=TRUE',
194
+ '-DNO_SSE3_OR_HIGHER=FALSE',
190
195
  ] if platform.machine() in ('x86_64', 'AMD64') else []),
191
- # ARM: disable ARMv8.1+ requirement for CI runners without those extensions
196
+ # ARM: keep the conservative ARMv8.0+crc profile. CI on ARM fails
197
+ # against ClickHouse's modern ARMv8.2-a profile.
192
198
  *([
193
199
  '-DNO_ARMV81_OR_HIGHER=TRUE',
194
200
  ] if platform.machine() == 'aarch64' else []),
@@ -204,7 +210,7 @@ class ClickHouseBuildExt(build_ext):
204
210
  '-DENABLE_DATASKETCHES=TRUE', # We need it for some agg validations
205
211
 
206
212
  '-DENABLE_CLICKHOUSE_ALL=FALSE',
207
- '-DENABLE_MULTITARGET_CODE=FALSE',
213
+ '-DENABLE_MULTITARGET_CODE=TRUE',
208
214
 
209
215
  # Force Ninja as the generator as we parse its output to build the python module
210
216
  '-G',
@@ -1,7 +1,7 @@
1
1
  from setuptools import setup, Extension
2
2
 
3
3
  NAME = 'tinybird-toolset'
4
- VERSION = '2.4.1'
4
+ VERSION = '2.4.3'
5
5
 
6
6
  try:
7
7
  from conf import *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tinybird-toolset
3
- Version: 2.4.1
3
+ Version: 2.4.3
4
4
  Home-page: https://gitlab.com/tinybird/clickhouse-toolset
5
5
  Author: Tinybird.co
6
6
  Author-email: support@tinybird.co