Conversation
…AR build Includes: - fix(security): Fix use-after-free vulnerability in fastembed_napi.cc:242 - fix(java): Fix Java JAR build on all platforms - Windows jni_md.h include path - Remove native-maven-plugin executions (javah, compile, link) - Use pre-built JNI libraries from build/ directory All fixes tested and verified on CI Run 19395686436 All platforms (macOS, Linux, Windows) now build Java JAR successfully
…ation - Update CHANGELOG.md: Move all fixes from Unreleased to 1.0.1 (2025-01-16) - Add security fix (use-after-free vulnerability) - Add build system fixes (Java JAR, build-artifacts workflow) - Add macOS ARM64 NEON assembly implementation - Add CI/CD fixes and test suite fixes - Add branching strategy documentation - Update CI workflow: Add release/* branch triggers - Update CONTRIBUTING.md: Add branching strategy section - Add docs/BRANCHING_STRATEGY.md: Comprehensive Git Flow documentation - Remove temporary files: ci-logs-*.txt, macos-csharp-fail.txt This commit prepares release/1.0.1 for final release.
- Add benchmarks.yml workflow for running performance tests - Supports Linux, Windows, macOS (x64 and ARM64) - Aggregates results from all platforms - Critical for verifying ARM64 NEON performance before release
- Change -lfastembed to -lfastembed_native for Linux/macOS - Matches actual library name from Makefile (libfastembed_native.so/dylib) - Windows already uses correct name (fastembed_native.lib)
- Remove matrix strategy for macOS (x64/arm64) - Keep only macOS ARM64 job (Apple Silicon) - Update aggregate-results to use benchmark-macos-arm64 - Remove macOS x64 section from aggregated results - GitHub Actions macOS runners are always ARM64 anyway
- Add script to parse benchmark results and extract metrics - Generate comparison tables by text length (Short/Medium/Long) - Add overall performance comparison table across platforms - Include raw results at the end for detailed analysis - Output format: structured Markdown tables for easy reading
- Add C benchmark to build-shared-linux job - Add Node.js benchmark to test-nodejs job - Add Python benchmark to test-python job - Add benchmark-aggregate job for results aggregation - Update build-summary to include benchmark status - All benchmarks run as part of CI, no separate workflow needed - Results aggregated into Markdown tables with comparison
- Benchmarks are now integrated into CI workflow - No need for separate benchmarks.yml workflow - All benchmark functionality available in ci.yml
- Remove test-windows and test-macos from benchmark-aggregate needs - These jobs don't upload benchmark results - benchmark-aggregate should only wait for jobs that produce benchmarks: - build-shared-linux (C benchmark) - test-nodejs (Node.js benchmark) - test-python (Python benchmark) - Improves workflow efficiency by not waiting for unnecessary jobs
…acos - test-windows now depends on build-shared-linux - test-macos now depends on build-shared-linux - Ensures logical execution order: basic build check first - Saves resources: don't run Windows/macOS tests if Linux build fails - All test jobs now have consistent dependency structure
- test-windows now depends on build-shared-linux (was missing) - Ensures all test jobs have consistent dependency structure - All cross-platform tests now wait for basic Linux build check
- Add test-linux job that runs core C tests on Linux - Tests: test_basic, test_vectors, test_hash_functions, test_embedding_generation, test_quality_improvement, test_sqrt_quality - Ensures core functionality is tested before language bindings - Update build-summary to include test-linux status - Logical execution order: core tests → language bindings
- Use artifact from build-shared-linux instead of rebuilding library in test-linux, test-nodejs, test-python, test-csharp, test-java - Remove duplicate tests on Windows/macOS (Node.js, Python) Keep only C# tests for platform-specific checks - Benefits: * Library built once instead of 6 times * Reduced test duplication * Proper artifact usage * Platform-specific tests focus on C# bindings
- Restructure CI workflow to platform-based independent chains - Each platform works independently: build → test → benchmark - Structure: * build-linux → [all test jobs] → benchmark-linux * build-windows → test-windows → benchmark-windows * build-macos → test-macos → benchmark-macos * benchmark-aggregate (after all benchmarks) Key changes: - Created build jobs for each platform (build-linux, build-windows, build-macos) - Separated benchmarks from tests (benchmark jobs run after test jobs) - Updated dependencies: each platform chain is independent - Added all tests (C, Node.js, Python, C#, Java) on Windows and macOS - Updated benchmark-aggregate to collect results from all platforms Benefits: - Maximum parallelism: platforms run independently - Faster execution: no waiting between platforms - Clear separation: tests and benchmarks are separate layers - Better artifact usage: benchmarks use artifacts from build jobs
- Consolidate all Linux tests (C, Node.js, Python, C#, Java) into single test-linux job - Match structure with test-windows and test-macos for consistency - Remove separate test-nodejs, test-python, test-csharp, test-java jobs - Update benchmark-linux dependencies to depend only on test-linux - Update build-summary to reflect unified structure
… skip - Fix C# binding test failures on all platforms (library path issues) - Add 'Prepare library paths' step to create lib/ directory - Copy libraries from build/ to lib/ (csproj expects lib/) - Update LD_LIBRARY_PATH/DYLD_LIBRARY_PATH to use lib/ - Add library verification steps - Fix Python binding build failure on Windows - Include .obj files in build-windows artifact upload - Add verification step for object files before Python build - Fix Java test skip on Linux - Add if: always() to all Java steps for independent execution - Ensure Java tests run even if C# tests fail - Improve error handling and diagnostics - Add verification steps for early error detection - Consistent error handling patterns across platforms
…ation - Update build-linux job to upload both .so and .o files - Add verification step to check object files exist before JNI compilation - Follows same pattern as Windows Python fix (Phase 3.2) - Fixes Java JNI wrapper compilation failure on Linux Phase 5.4: Fixes for new errors discovered after Phase 3-4 - Root cause: Incomplete artifact upload (missing .o files) - Solution: Include object files in artifact, add verification step - Pattern: Consistent with Windows Python fix (.dll + .obj) Related: Phase 5 (New Error Analysis and Fixes)
- Update documentation structure and organization - Remove broken Discussions links - Update benchmark documentation with system configuration - Fix markdown formatting issues - Update architecture diagram to Mermaid format - Add GitHub links to support section - Remove duplicate ONNX_BENCHMARK_REPORT.md - Update .gitignore for release artifacts
…ifacts workflow - Fix artifact file paths (use ** for recursive search) - Improve release notes extraction from CHANGELOG with error handling - Add fallback for release notes if extraction fails - Add debug step to list artifact structure - Fix awk command for better compatibility
…action - Add permissions: contents: write to workflow (required for GitHub releases) - Fix awk command for better release notes extraction from CHANGELOG - Improve error handling and logging for release notes extraction
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.
Release 1.0.1 Merge
This PR merges all changes from release/1.0.1 branch into master after successful release.
Changes included:
Release Status:
Commits:
Ready for merge.