Releases: ad3002/aindex
Release v1.4.4
Release v1.4.4
New Features & Improvements
- Fix segmentation fault issues
- Remove references to obsolete
.pos.bin
file in API documentation - Refactor tests and add new validation and conversion functionalities
- Refactor code structure for improved readability and maintainability
- Make cli.py executable
- Cleanup: remove unused patches and add 'obj' to .gitignore
Bug Fixes
- Critical: Fixed cibuildwheel compatibility by adding proper ext_modules definition
- Fixed critical segmentation fault that could occur during processing
- Improved stability and error handling
Documentation
- Updated API documentation to remove obsolete file references
- Enhanced code readability and maintainability
Build System
- Fixed wheel building for cross-platform distribution via cibuildwheel
- Improved binary extension compilation and packaging
Release v1.4.2
Changes in v1.4.2
Release v1.4.0: Complete emphf integration with full cross-platform support
🚀 Major Release: Complete emphf Integration with Cross-Platform Support
✨ Key Features
- Complete emphf integration: All sources now local in
src/emphf
- Zero external dependencies: No more cmake, git, or external repo requirements
- Cross-platform compatibility: Native builds for Linux x86_64/ARM64, macOS x86_64/ARM64
- Cross-compilation support: x86_64 builds on ARM64 macOS runners in CI
- macOS compatibility: POSIX-compatible filesystem operations for macOS < 10.15
- Simplified build system: Single Makefile handles all platforms and architectures
🔧 Technical Improvements
- Cross-compilation: Added
TARGET_ARCH
support for building x86_64 on ARM64 machines - Architecture detection: Fixed Python platform detection in CI for proper wheel naming
- POSIX compatibility: Replaced
std::filesystem
with POSIX code for broader macOS support - Build order fixes: Corrected dependency order in ARM64 and standard builds
- Wheel repair: Simplified macOS wheel repair to avoid
delocate
conflicts - Variable initialization: Proper defaults for all architecture-specific variables
🏗️ Build System
- Local sources only: All dependencies bundled in repository
- Native compilation: No cr 8000 oss-compilation complexity for most use cases
- Cross-compilation when needed: Automatic x86_64 builds on ARM64 CI runners
- Automatic architecture detection: Builds optimal version for target platform
- Faster CI/CD: Reduced build times and improved reliability
📦 Distribution
- Python wheels for all major platforms and architectures:
- Linux: x86_64, aarch64
- macOS: x86_64, arm64 (both native and cross-compiled)
- Source distribution with complete build environment
- Compatible with Python 3.8-3.12
🛠️ Build Targets
make all
: Standard build for current platformmake arm64
: ARM64-optimized build (Apple Silicon)TARGET_ARCH=x86_64 make all
: Cross-compile x86_64 on ARM64
This release represents a complete rewrite of the build system for maximum compatibility and cross-platform support.
Release v1.3.25
Enable builds for all Python versions (3.8-3.12). All C++ binaries are now properly included in wheel packages.
Release v1.3.24
Fix case sensitivity issues in Makefile and source files for proper CI builds. All C++ binaries should now be included in wheel packages.
Release v1.3.23: Fix kmer_counter compilation
Fixes
- Fixed Makefile reference to Count_kmers.cpp (capital C) for kmer_counter target
- This should resolve the 'No rule to make target src/compute_index.cpp' error
Changes
- Updated Makefile to correctly reference Count_kmers.cpp file
- Version updated to 1.3.23
- Still building only Python 3.8 for fast testing
This should be the final fix for binary compilation issues.
Release v1.3.22: Fix Binary File Case Sensitivity
Fixes
- Fixed case sensitivity issues in Makefile binary targets (Build_13mer_hash vs build_13mer_hash)
- All binary files should now compile correctly in CI environment
- Temporarily building only Python 3.8 for faster testing
Changes
- Fixed binary compilation issues that were causing make errors
- Corrected file name case mismatches between source files and Makefile targets
- Version updated to 1.3.22
This release should resolve the remaining binary compilation failures and include all expected binaries in the wheel packages.
Release v1.3.21: Fix GitHub Actions Binary Build
Fixes
- Fixed Makefile CXXFLAGS issue with empty -I flag that prevented proper compilation
- Added separate OBJ_CXXFLAGS for object file compilation without Python dependencies
- Simplified GitHub Actions workflow to avoid masked errors with || true statements
- Use explicit binary names instead of make variables in shell scripts for better compatibility
- Improved build reliability in CI environment
Changes
- All binary files should now compile correctly in GitHub Actions (not just kmer_counter)
- Better error reporting during CI builds
- Version updated to 1.3.21
This release focuses on fixing the compilation issues in GitHub Actions where only kmer_counter binary was being built while other binaries failed silently.
Release v1.3.20
New release with updated dependencies and improvements
Full Changelog: v1.3.18...v1.3.20
Release 1.3.18
Changes in v1.3.18
• Fixed critical issue with binary files missing from CI/CD built wheels
• Enhanced GitHub Actions workflow to properly copy binaries to aindex/bin/ during CI builds
• Improved wheel packaging to ensure all CLI tools are included in PyPI packages
Technical Details
• Fixed CIBW_BEFORE_ALL_LINUX script to include binary copying step
• All binary tools now properly included in wheels built by GitHub Actions
• Local builds continue to work as before
• Better cross-platform compatibility for wheel packaging
Bug Fixes
• Fixed missing CLI executables in wheels built on CI/CD
• Resolved aindex command not found errors when installing from PyPI
• Ensured all binary files are correctly packaged in distribution wheels
This release fixes the main packaging issue where wheels built on GitHub Actions
were missing the binary files needed for CLI functionality.