Skip to content

Package conversion - #17

Merged
adkinsrs merged 2 commits into
masterfrom
package-conversion
Oct 26, 2026
Merged

adkinsrs merged 2 commits into
masterfrom
package-conversion

Conversation

@adkinsrs

Copy link
Copy Markdown
Member

This pull request delivers a major update (v1.10.0) that transitions FADU into a proper Julia package, improves installation, testing, and usage workflows, and enhances documentation and Docker support. The changes streamline user experience by enabling precompilation for faster startup, introducing GitHub Actions CI, and providing new installation and command-line options. The Docker image and documentation have been updated to reflect these improvements and simplify usage.

Release and packaging improvements:

  • FADU is now structured as a Julia package (module FADU), with code in src/, and root-level Project.toml and Manifest.toml. Precompilation is enabled using PrecompileTools and the test dataset, resulting in significantly faster startup times. Experimental support for installing fadu as a command-line app via Pkg.Apps.add (Julia v1.12+) is also added. [1] [2] [3]

Continuous integration and testing:

  • Added a GitHub Actions workflow (.github/workflows/CI.yml) to run tests on Julia v1.10 and v1.12 across Ubuntu and macOS. The test suite is now run via Pkg.test() and uses a relocated regression dataset in test/data. [1] [2] [3]

Docker improvements:

  • The Dockerfile now installs and precompiles FADU and its dependencies using the new package structure. The working directory inside the container is changed to /data (matching the host's current directory), simplifying file mounting and usage. [1] [2] [3]

Documentation updates:

  • The README and documentation are updated to describe the new package structure, installation steps, test instructions, and Docker usage. Outdated references to fadu_pkgs and test_data/tiny are replaced. Package requirements are clarified, and new notes for maintainers are added in NOTES.md. [1] [2] [3] [4] [5]

Bugfixes and internal changes:

  • Fixed a bug where --exclude_regions_file could crash in unstranded mode. Renamed the internal BAM overlap iterator to eachalignmentoverlap to avoid method conflicts in precompiled packages.

These changes collectively modernize FADU's development and user workflows, making it easier to install, test, and run in various environments.

adkinsrs and others added 2 commits October 26, 2026 14:27
- Move code into module FADU under src/, with Project.toml and
  Manifest.toml at the repository root; fadu.jl is now a thin launcher
  so `julia fadu.jl <options>` keeps working
- main() takes the argument list and returns an exit code; it is marked
  with @main for `julia -m FADU` and Pkg apps on Julia 1.11+
- Precompile FADU using the tiny test dataset as a PrecompileTools
  workload (about 3x faster startup)
- Rename the internal BAM overlap iterator to eachalignmentoverlap so it
  no longer overwrites XAM's GenomicFeatures.eachoverlap method, which
  precompilation does not allow
- Add test/runtests.jl for Pkg.test(), move the tiny dataset to
  test/data, and add GitHub Actions CI on Julia 1.10 and 1.12
- Add an experimental `fadu` Pkg app entry
- Docker image now precompiles FADU and uses /data as working directory
- Update README, docs, NOTES and CHANGELOG

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The unstranded branch of remove_excluded_regions! used the String "+" as a
key in a Dict{Char, BitSet}, so any run without --stranded yes/reverse
failed with a MethodError. Use the Char '+' to match the keys built by
create_uniq_coords_dict, and add regression tests covering stranded and
unstranded exclusion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adkinsrs
adkinsrs merged commit bbee7af into master Oct 26, 2026
8 checks passed
@adkinsrs
adkinsrs deleted the package-conversion branch October 26, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant