Repository navigation
Build/portable release binaries - #34
Merged
Merged
Conversation
…ainers - Remove the manual build workflow (build-binaries.yml) - Pin Nim version to 2.2.10 in release workflow - Add testing step before packaging in release workflow - Add macOS deployment target for backward compatibility - Remove libpcre3-dev dependency from CI build
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.
Portable, faster release binaries
Fixes portability problems in the published binaries, removes the runtime PCRE dependency, and makes the build friendlier to packagers such as Bioconda.
Problems fixed
minos 15.0in v1.29.0). The build now setsMACOSX_DEPLOYMENT_TARGETto 11.0 for arm64 and 10.13 for x86_64.manylinux_2_28containers (glibc 2.28) with a pinned, checksum-verified Nim 2.2.10.libpcrelookup, pulled in bytableview'simport re. The new minimum,tableview >= 0.6.0, uses the pure-Nimregexpackage, and the binary no longer references PCRE.Release workflow (
release-binaries.yml)make all) and runstest/mini.shon every platform before uploading.seqfu-<platform>: the main binary alone, same name as before, so existing download links keep workingseqfu-<version>-<platform>.tar.gz: allfu-*tools, plus LICENSE and READMESHA256SUMSworkflow_dispatch); a manual run builds and tests but doesn't upload anything. This replaces the duplicatebuild-binaries.yml, which is removed.zlib1g-dev/libpcre3-devfrom the release build (gzfast bundles zlib) and removes the no-op--threads:onappend tonim.cfg.make.yamlno longer installslibpcre3-dev.Makefile
-d:ltois on by default. On Apple Silicon:seqfu stats~20% faster,seqfu rc~4% faster, gzipped input ~5% faster.seqfushrinks from 2.49 to 2.22 MB. Linux uses-d:strip; macOS uses-Wl,-x, since Apple's ld ignores-s.LTO=0andNIMSTRIP=0turn these off.NIMFLAGS=...passes extra Nim options.CC/CXXare no longer hard-coded andCFLAGS/CXXFLAGSuse?=, so conda's toolchain is used without patching the Makefile withsed.src/deps.txtnow depends onseqfu.nimble, so dependency bumps are actually installed.make -jsafe.Other
nim.cfg: documents why-d:dangerstays. Re-enabling checks costs ~20% onseqfu rc.seqfu.nimble: license corrected from MIT toGPL-3.0-only, matchingLICENSEand Bioconda.fu-split,fu-pecheck: shebang changed topython3.Testing
make -j8 allon macOS arm64;bash test/mini.sh: all 657 tests pass.MACOSX_DEPLOYMENT_TARGET=11.0→minos 11.0.gh workflow run release-binaries.yml --ref build/portable-release-binariesand confirm
strings seqfu-linux-x86_64 | grep GLIBC_ | sort -V | tail -1prints ≤GLIBC_2.28.Follow-up
pcreandsedpatching, requirenim >=2.2.0, addpythonas a run dependency, pin the osx-arm64 Nim download.nimble.lockso builds use fixed dependency versions.