Conversation
- Add _POSIX_C_SOURCE and _XOPEN_SOURCE macros for strdup declaration - Include strings.h for strcasecmp function - Fix http2_request signature to accept const request parameter - Fix C23 label-declaration warning by wrapping in block scope 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Build fixes: - Compile nghttp2 with -fPIC flag for shared library compatibility - Add POSIX feature macros to browser_profiles.c - Include strings.h for strcasecmp function - Fix ja3_hash to use MD5 hash instead of full JA3 string (33 chars max) Docker testing: - Add Dockerfile.test that mimics GitHub Actions ubuntu-latest - Add docker-compose.test.yml for easier Docker management - Add Makefile targets: docker-build, docker-test, docker-shell - Add .dockerignore to optimize build context This allows local testing in the exact CI environment before pushing, significantly reducing CI iteration time. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Caching is removed to ensure fresh builds and avoid any cache-related issues during wheel building. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
System OpenSSL on manylinux is too old (lacks TLS 1.3 support). Always use vendor-built BoringSSL for wheel compatibility on Linux. Fixes compilation errors: - TLS1_3_VERSION undeclared - NID_X25519 undeclared - TLS_client_method not available 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Removed deprecated OpenSSL initialization functions: - SSL_library_init() - SSL_load_error_strings() - OpenSSL_add_all_algorithms() These are not needed in BoringSSL as it initializes automatically - Changed SSL_CTX_set1_curves() to SSL_CTX_set1_groups() BoringSSL renamed curves to groups for consistency with RFC naming This fixes C extension loading failures on macOS with vendor-built BoringSSL 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Changes: - Added `fail-fast: false` to build-wheels strategy so failing builds don't cancel other OS builds - Updated publish job to run with `always()` condition so it attempts to publish whatever wheels are available - Added build status report showing which platforms succeeded/failed - Download artifacts with `continue-on-error: true` to handle partial failures gracefully - Exit with error only if no wheels are available at all This ensures that if e.g. Windows builds fail, Linux and macOS wheels will still be published 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Planning documents are for internal development use only 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
ninja-build package doesn't exist in CentOS 7 (manylinux). BoringSSL can build with just cmake using Unix Makefiles generator. Also removed libnghttp2-devel from yum as we build it from source, and added fallback to cmake3 for older CentOS versions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Windows CMake with Visual Studio generator builds BoringSSL libraries to: - build/ssl/Release/ssl.lib - build/crypto/Release/crypto.lib Updated Windows library path detection to check multiple possible layouts: 1. Visual Studio multi-config: build/ssl/Release/ and build/crypto/Release/ 2. Single-config with Release: build/Release/ 3. Single-config without subdirs: build/ This fixes linker errors on Windows CI where it couldn't find crypto.lib 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
libnghttp2-devel doesn't exist in CentOS 7 repos. We build nghttp2 from source in setup_vendors.sh, so we don't need the system package. Also removed cmake3 fallback since it doesn't exist in manylinux either. The primary cmake package should work on all manylinux versions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Key changes: 1. Skip 32-bit Windows builds (*-win32) - they're rarely needed 2. Remove vcpkg dependency - build all libs from source 3. Build nghttp2 from source on Windows using CMake 4. Build zlib from source on Windows using CMake 5. Update setup.py to find vendor-built nghttp2 libraries This ensures consistent builds across all platforms and eliminates architecture mismatch issues (x64 libs being used for 32-bit builds). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add caching for vendor dependencies in release.yml to significantly speed up wheel builds: - Cache vendor directory across builds - Only rebuild when setup_vendors.sh changes - Saves 10-12 minutes per build This brings release workflow up to parity with test workflow caching. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Major performance improvement for wheel builds: Before: - cibuildwheel rebuilt vendors for EACH Python version (3.9-3.12) - 4 separate builds × 15min = 60 minutes total - No caching between Python versions After: - Build vendors ONCE before cibuildwheel runs - Cache vendors across all Python versions - cibuildwheel skips before-build step (CIBW_BEFORE_BUILD="") - Estimated time: 15min (first) or 3min (cached) + 2min × 4 = ~11min Key changes: 1. Separate vendor build step outside cibuildwheel 2. Explicit cache restore/save with conditional logic 3. Skip redundant before-build in cibuildwheel 4. Add verification step to ensure vendor libs exist Expected speedup: 60min → 11min (first build) or 11min → 3min (cached) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Restructure release workflow for better maintainability: New structure: - _build_windows.yml - Windows-specific build configuration - _build_linux.yml - Linux-specific build configuration - _build_macos.yml - macOS-specific build configuration - release.yml - Orchestrates all builds and publishing Benefits: ✅ OS-specific settings isolated in separate files ✅ Easier to maintain and customize per platform ✅ Better code organization following DRY principle ✅ Parallel builds across all platforms ✅ Platform-specific caching strategies ✅ Clearer debugging when one platform fails Each OS workflow includes: - Platform-specific tool installation - Vendor dependency caching (with OS-specific cache keys) - Build verification steps - Optimized cibuildwheel configuration The main release.yml now simply: 1. Calls each OS-specific build workflow in parallel 2. Collects artifacts from all platforms 3. Publishes to GitHub and PyPI This matches the pattern used in _test.yml and _benchmark.yml for consistency across the project. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.