Repository navigation
docs: add mdBook documentation site with FG branding - #243
Conversation
Adds book.toml configuration, custom CSS theme, and .gitignore entries for auto-generated documentation content (SUMMARY.md, tools/, metrics/).
0bd2872 to
da61a6d
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #243 +/- ##
==========================================
- Coverage 88.97% 88.97% -0.01%
==========================================
Files 114 114
Lines 55481 55488 +7
==========================================
+ Hits 49366 49372 +6
- Misses 6115 6116 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@coderabbitai review |
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 8 minutes and 16 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (18)
📝 WalkthroughWalkthroughAdds a new workspace crate 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Actions performedReview triggered.
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 14
🧹 Nitpick comments (4)
docs/src/guide/consensus-calling.md (1)
29-31: Consider adding language hints to fenced code blocks.markdownlint flags these formula blocks as missing language specifiers. Using
textor leaving empty is fine for formulas, but explicittextsilences the warning.Example fix for one block
-``` +```text Q' = min(Q - S_Q, M_Q)</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@docs/src/guide/consensus-calling.mdaround lines 29 - 31, The fenced formula
block containing "Q' = min(Q - S_Q, M_Q)" is missing a language specifier which
triggers markdownlint; update the fenced code block in
docs/src/guide/consensus-calling.md to add a language hint (e.g. usetext or an empty specifier) so the linter is satisfied. Locate the block showing the formula "Q' = min(Q - S_Q, M_Q)" and change the opening backticks to include the language hint (for example, replacewith ```text) for consistent handling of
formula blocks.</details> </blockquote></details> <details> <summary>docs/src/guide/duplex-consensus-calling.md (1)</summary><blockquote> `44-48`: **Consider adding a language hint to the code block.** Similar to other formula/example blocks, using `text` silences MD040. <details> <summary>Example</summary> ```diff -``` +```text ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@docs/src/guide/duplex-consensus-calling.mdaround lines 44 - 48, Update the
fenced code block that contains the three nucleotide sequence lines (lines
starting with "1: ACGTGACTGACTAGCTTTTTTT-AGACTAGCTACTACT", etc.) by adding the
language hint "text" to the opening fence (changetotext) so the block
is treated as plain text and MD040 is silenced; leave the block contents
unchanged.</details> </blockquote></details> <details> <summary>.readthedocs.yaml (1)</summary><blockquote> `6-12`: **Pin the RTD Rust toolchain to match your workspace requirement.** RTD currently uses `rust: "latest"`, which creates non-reproducible builds. Your workspace declares `rust-version = "1.87.0"` in Cargo.toml—pin RTD to this same version for consistency. <details> <summary>Suggested change</summary> ```diff build: os: ubuntu-24.04 tools: - rust: "latest" + rust: "1.87" commands: # Install mdbook - - cargo install mdbook --version 0.5.2 + - cargo install mdbook --locked --version 0.5.2 ``` </details> Adding `--locked` to the mdbook install also ensures reproducible dependency resolution. <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In @.readthedocs.yaml around lines 6 - 12, The RTD config uses rust: "latest" and installs mdbook without locking, which makes builds non-reproducible; update the rust key to match the workspace rust-version "1.87.0" and add --locked to the mdbook install command (the cargo install mdbook --version 0.5.2 line) so dependency resolution is reproducible, leaving the cargo run --package xtask --release -- generate-docs step unchanged. ``` </details> </blockquote></details> <details> <summary>docs/src/guide/getting-started.md (1)</summary><blockquote> `173-178`: **Clarify `--min-reads` parameter format** The example shows `--min-reads 1,1,1` (duplex format with 3 values) without explaining that simplex workflows would use a single value like `--min-reads 1`. Since the guide presents multiple consensus calling options (simplex/duplex/codec), readers may be unclear which parameter format to use. <details> <summary>Suggested clarification</summary> ```diff ### 7. Filter Consensus Reads Filter consensus reads based on quality metrics: +**For simplex consensus:** +```bash +fgumi filter \ + --input consensus.bam \ + --output filtered.bam \ + --ref ref.fa \ + --min-reads 1 +``` + +**For duplex consensus:** ```bash fgumi filter \ - --input consensus.bam \ + --input duplex.bam \ --output filtered.bam \ --ref ref.fa \ - --min-reads 1,1,1 + --min-reads 1,1,1 # duplex, AB, BA thresholds ``` ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In `@docs/src/guide/getting-started.md` around lines 173 - 178, Clarify the --min-reads parameter format in the fgumi filter example: explain that simplex workflows accept a single integer (e.g., --min-reads 1) while duplex workflows require three comma-separated values (e.g., --min-reads 1,1,1) corresponding to AB/BA/consensus thresholds; update the examples around the fgumi filter invocation (references: command "fgumi filter", parameter "--min-reads", input filenames "consensus.bam" vs "duplex.bam") to show both the simplex and duplex forms and a short inline comment indicating the meaning of the three values. ``` </details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Inline comments:
In@crates/xtask/src/generate_metrics.rs:
- Around line 153-159: The Type::Path branch in type_to_string strips generic
arguments by only joining segment idents; update type_to_string to render each
path segment with its PathArguments (handle syn::PathArguments::AngleBracketed
by converting each generic argument back to a string recursively, and preserve
other argument variants), e.g. iterate p.path.segments and for each segment
append its ident plus any angle-bracketed arguments formatted (reusing
type_to_string for nested syn::Type arguments) so Option and HashMap<K, V>
keep their generics; keep the current fallback (quote::quote!(#ty).to_string())
for unsupported cases.- Around line 196-199: The index currently writes links as "metrics/{slug}.md"
which becomes "metrics/metrics/{slug}.md" because README.md is generated into
docs/src/metrics/; update the link target in the loop that writes the table (the
block iterating over metrics, using variables metric, slug, md and the call to
writeln!) to point to the local metric file (e.g., "{slug}.md" or "./{slug}.md")
instead of "metrics/{slug}.md" so the links resolve correctly from the metrics
directory.In
@crates/xtask/src/generate_tools.rs:
- Around line 64-89: The parsers registry in the parsers Vec is missing tools
referenced elsewhere (simplex-metrics, merge, compare), so update the parsers
list (the Vec assigned to parsers and the imports at top of the file) to include
entries for "simplex-metrics", "merge", and "compare" mapping to their
CommandFactory::command functions (e.g. add ("simplex-metrics",
<simplex_metrics::SimplexMetrics as CommandFactory>::command), ("merge",
<merge::Merge as CommandFactory>::command), ("compare", <compare::Compare as
CommandFactory>::command) or the actual module/type names used in the codebase);
ensure you also add corresponding use imports for the modules (simplex_metrics,
merge, compare) so render_tool_page(), collect_commands(), and sidebar
generation will find those tools.- Around line 295-300: The generated README links use root-relative paths (e.g.
"tools/...") which break when README.md lives in docs/src/tools/; in the loop
over by_category (the for (category, tools) in by_category block) change how the
link target is built: compute a display_path by removing the leading "tools/"
prefix from the path (e.g. with strip_prefix or trim_start_matches) and use that
display_path when writing the table row (the writeln!(md, "|{name}
| {description} |") call), leaving the original path unchanged for SUMMARY.md
generation elsewhere.In
@crates/xtask/src/main.rs:
- Around line 1-7: Add the crate-level deny lint by inserting the crate
attribute #![deny(unsafe_code)] at the top of the crate root (main.rs) before
any use or mod declarations so the entire xtask crate enforces no unsafe code;
update the file containing the use declarations and mod statements (main.rs) to
include that attribute as the very first line.In
@docs/src/guide/best-practices.md:
- Around line 399-409: The documentation's Phase 2b title "Grouped BAM →
Filtered Consensus" conflicts with the example which reruns fgumi group on
aligned.bam; fix by either renaming the phase to reflect starting from raw
aligned.bam (e.g., "Aligned BAM → Filtered Consensus") or change the example to
start from a grouped file (e.g., use a grouped.bam input instead of aligned.bam
and remove the fgumi group call), ensuring the header and the fgumi commands
(fgumi group / fgumi simplex) and filenames (aligned.bam, grouped.bam)
consistently match.- Around line 380-383: The documentation currently explains --min-reads as
"reads" but the flag counts templates/molecules, not individual read records;
update the wording where --min-reads is described (the lines showing "For
duplex,--min-reads 10,5,3means:") to state that the thresholds are per input
template/molecule and that on paired-end data a read pair counts as a single
template (e.g., "10 templates for final duplex consensus, 5 templates for AB
single-strand consensus, 3 templates for BA single-strand consensus; paired-end
read pairs count as one template, not two reads").In
@docs/src/guide/duplex-consensus-calling.md:
- Around line 30-34: Hyphenate the compound adjective "low quality" wherever it
modifies "bases": change the phrase in the sentence "Reads can be end-trimmed to
remove low quality bases." to "low-quality bases", and update the heading
"Masking Low Quality Bases" to "Masking Low-Quality Bases" so the adjective is
correctly hyphenated.In
@docs/src/guide/performance-tuning.md:
- Around line 27-35: The doc incorrectly equates
--threads 1with omitting the
--threadsflag; update the "Single-threaded Mode" and usage lines to clearly
distinguish the two modes: state that omitting the flag uses the optimized fast
path (no-flag fast path) while explicitly passing--threads 1uses the
single-threaded pipeline (not the fast path), keep the existing--threads N
description for multi-threaded mode, and adjust the "Behavior" and "Best for"
bullets to reflect the behavioral and performance differences between no-flag
fast path and explicit--threads 1.In
@docs/src/guide/read-structures.md:
- Around line 60-71: The markdown code fence containing the grammar (starting
with and listing rules like ,
, , etc.) is missing a language tag and triggers
MD040; update the opening triple-backtick to include a language identifier
(e.g., ```text) so the block becomes a fenced code block with a specified
language. Ensure you only modify the opening fence and keep the grammar content
unchanged.In
@docs/src/guide/tracking-reads.md:
- Around line 13-18: The fenced code block containing the arrow diagram (the
three-line block starting with "x: R1----------------->") lacks a language label
and triggers MD040; update that fenced block by adding an explicit language tag
(e.g., ```text) immediately after the opening backticks so the block becomesIn `@docs/src/guide/working-with-metrics.md`: - Around line 62-65: Update the wording for the two table entries `PREFIX.family_sizes.txt` and `PREFIX.grouping_metrics.txt` to use template-based language: clarify that UMI family sizes and the `--min-reads` threshold count templates (molecules), not individual SAM records, and add a short sentence explicitly stating that a paired-end read pair (R1+R2) equals a single template so a one-fragment family is counted as size 1; make the identical wording change at the other occurrence noted (lines 108-109) so both locations consistently describe `--min-reads` as template-level semantics. In `@docs/theme/custom.css`: - Line 7: The `@import` in custom.css uses the url(...) form which violates Stylelint's import-notation rule; update the `@import` statement in docs/theme/custom.css to use the plain string form (remove url(...) and keep the same quoted font URL) so it reads as an `@import` with a string literal, ensuring the import-notation lint rule passes and the fonts remain unchanged. In `@docs/theme/sidebar-brand.js`: - Around line 71-72: Hard-coded root "/" hrefs (e.g., the header.innerHTML using LOGO_SVG) and the p.endsWith('/') check in injectFooter() assume site root hosting and break on subpath/pretty-URL deployments; compute the docs root/base path at runtime (derive from a canonical base like themeConfig.baseUrl or from window.location.pathname/URL) and use that base when building links (replace "/" with the computed docsRoot) and when testing pages (replace p.endsWith('/') with a check that strips or compares against the docsRoot or uses URL.pathname semantics); update all usages (header.innerHTML with LOGO_SVG, breadcrumb/link construction at the other occurrences, and injectFooter()) to use this computed docs root. --- Nitpick comments: In @.readthedocs.yaml: - Around line 6-12: The RTD config uses rust: "latest" and installs mdbook without locking, which makes builds non-reproducible; update the rust key to match the workspace rust-version "1.87.0" and add --locked to the mdbook install command (the cargo install mdbook --version 0.5.2 line) so dependency resolution is reproducible, leaving the cargo run --package xtask --release -- generate-docs step unchanged. In `@docs/src/guide/consensus-calling.md`: - Around line 29-31: The fenced formula block containing "Q' = min(Q - S_Q, M_Q)" is missing a language specifier which triggers markdownlint; update the fenced code block in docs/src/guide/consensus-calling.md to add a language hint (e.g. use ```text or an empty specifier) so the linter is satisfied. Locate the block showing the formula "Q' = min(Q - S_Q, M_Q)" and change the opening backticks to include the language hint (for example, replace ``` with ```text) for consistent handling of formula blocks. In `@docs/src/guide/duplex-consensus-calling.md`: - Around line 44-48: Update the fenced code block that contains the three nucleotide sequence lines (lines starting with "1: ACGTGACTGACTAGCTTTTTTT-AGACTAGCTACTACT", etc.) by adding the language hint "text" to the opening fence (change ``` to ```text) so the block is treated as plain text and MD040 is silenced; leave the block contents unchanged. In `@docs/src/guide/getting-started.md`: - Around line 173-178: Clarify the --min-reads parameter format in the fgumi filter example: explain that simplex workflows accept a single integer (e.g., --min-reads 1) while duplex workflows require three comma-separated values (e.g., --min-reads 1,1,1) corresponding to AB/BA/consensus thresholds; update the examples around the fgumi filter invocation (references: command "fgumi filter", parameter "--min-reads", input filenames "consensus.bam" vs "duplex.bam") to show both the simplex and duplex forms and a short inline comment indicating the meaning of the three values.🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID:
07e1c33d-1256-42c6-b3b8-567d08b25a02⛔ Files ignored due to path filters (3)
Cargo.lockis excluded by!**/*.lockdocs/src/images/fgumi_subway.pngis excluded by!**/*.pngdocs/src/images/fgumi_subway.svgis excluded by!**/*.svg📒 Files selected for processing (62)
.cargo/config.toml.gitignore.readthedocs.yamlCargo.tomlcrates/xtask/Cargo.tomlcrates/xtask/src/generate_docs.rscrates/xtask/src/generate_metrics.rscrates/xtask/src/generate_summary.rscrates/xtask/src/generate_tools.rscrates/xtask/src/main.rsdocs/LAST_SYNCEDdocs/book.tomldocs/src/guide/best-practices.mddocs/src/guide/consensus-calling.mddocs/src/guide/duplex-consensus-calling.mddocs/src/guide/getting-started.mddocs/src/guide/migration-from-fgbio.mddocs/src/guide/performance-tuning.mddocs/src/guide/read-structures.mddocs/src/guide/tracking-reads.mddocs/src/guide/umi-grouping.mddocs/src/guide/working-with-metrics.mddocs/src/index.mddocs/theme/custom.cssdocs/theme/sidebar-brand.jssrc/lib/commands/clip.rssrc/lib/commands/codec.rssrc/lib/commands/command.rssrc/lib/commands/common.rssrc/lib/commands/compare/bams.rssrc/lib/commands/compare/metrics.rssrc/lib/commands/compare/mod.rssrc/lib/commands/compare/raw_compare.rssrc/lib/commands/consensus_runner.rssrc/lib/commands/correct.rssrc/lib/commands/dedup.rssrc/lib/commands/downsample.rssrc/lib/commands/duplex.rssrc/lib/commands/duplex_metrics.rssrc/lib/commands/extract.rssrc/lib/commands/fastq.rssrc/lib/commands/filter.rssrc/lib/commands/group.rssrc/lib/commands/merge.rssrc/lib/commands/mod.rssrc/lib/commands/review.rssrc/lib/commands/shared_metrics.rssrc/lib/commands/simplex.rssrc/lib/commands/simplex_metrics.rssrc/lib/commands/simulate/common.rssrc/lib/commands/simulate/consensus_reads.rssrc/lib/commands/simulate/correct_reads.rssrc/lib/commands/simulate/fastq_reads.rssrc/lib/commands/simulate/grouped_reads.rssrc/lib/commands/simulate/mapped_reads.rssrc/lib/commands/simulate/mod.rssrc/lib/commands/simulate/sort.rssrc/lib/commands/sort.rssrc/lib/commands/zipper.rssrc/lib/mod.rssrc/lib/version.rssrc/main.rs
da61a6d to
6110625
Compare
Moves the commands module and version module from the binary crate into the library crate (fgumi_lib) so they can be imported by other workspace crates. Replaces enum_dispatch with a manual match for cross-crate command dispatch. Fixes include_str paths and visibility for the moved structs.
…d metric reference
6110625 to
29caa55
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/lib/commands/sort.rs (1)
899-916:⚠️ Potential issue | 🟡 MinorThis test still flakes on low-memory runners.
With 4 threads, both reserve sizes collapse to the same
MIN_MEMORY_PER_THREAD * 4budget when total RAM is<= 1152 MiB, so the strict<assertion is wrong in that environment.Diff
let small_reserve = resolve_memory_limit( MemoryLimit::Auto, MemoryReserve::Fixed(128 * 1024 * 1024), 4, true, ) .expect("should succeed"); - assert!(large_reserve < small_reserve); + + let mut system = sysinfo::System::new(); + system.refresh_memory(); + let total = usize::try_from(system.total_memory()).unwrap_or(usize::MAX); + let floor_threshold = (128 * 1024 * 1024) + (MIN_MEMORY_PER_THREAD * 4); + + if total <= floor_threshold { + assert_eq!(large_reserve, small_reserve); + } else { + assert!(large_reserve < small_reserve); + }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/lib/commands/sort.rs` around lines 899 - 916, The test assumes large_reserve < small_reserve but on low-RAM CI both collapse to the same per-thread floor; update the assertion in the test around resolve_memory_limit (the block creating large_reserve and small_reserve using MemoryLimit::Auto and MemoryReserve::Fixed) to allow equality (e.g., use <= or assert!(large_reserve == small_reserve || large_reserve < small_reserve)) and add a short comment mentioning the low-memory collapse case so the intent is clear.
🧹 Nitpick comments (1)
src/main.rs (1)
13-13: Import placed after constant definition.
use env_logger::Env;is positioned after theSTYLESconstant. Consider moving it to the import block at lines 3-5 for consistency.Suggested diff
use anyhow::Result; use clap::Parser; use clap::builder::styling::{AnsiColor, Effects, Styles}; +use env_logger::Env; /// Custom styles for CLI help output const STYLES: Styles = Styles::styled() .header(AnsiColor::Green.on_default().effects(Effects::BOLD)) .usage(AnsiColor::Green.on_default().effects(Effects::BOLD)) .literal(AnsiColor::Cyan.on_default().effects(Effects::BOLD)) .placeholder(AnsiColor::Cyan.on_default()); -use env_logger::Env; use fgumi_lib::commands::clip::Clip;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/main.rs` at line 13, Move the stray use statement into the module import block: relocate the `use env_logger::Env;` line so it sits with the other imports at the top of the file (near the existing use declarations) instead of after the `STYLES` constant; this keeps all imports grouped together and preserves the `STYLES` constant definition locality.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/src/guide/read-structures.md`:
- Around line 61-63: The current grammar allows <read-structure> to be empty
because both <fixed-structure> and <variable-segment> permit ""; change the
rules so at least one segment is required by removing the empty alternatives and
making <read-structure> start with a required segment (<fixed-length> or
<variable-length>) followed by zero-or-more ("<operator>
<fixed-length|variable-length>") repeats. Update the definitions for
<read-structure>, <fixed-structure>, and <variable-segment> accordingly so
neither <fixed-structure> nor <variable-segment> can be empty and the parse
always includes >=1 segment.
---
Outside diff comments:
In `@src/lib/commands/sort.rs`:
- Around line 899-916: The test assumes large_reserve < small_reserve but on
low-RAM CI both collapse to the same per-thread floor; update the assertion in
the test around resolve_memory_limit (the block creating large_reserve and
small_reserve using MemoryLimit::Auto and MemoryReserve::Fixed) to allow
equality (e.g., use <= or assert!(large_reserve == small_reserve ||
large_reserve < small_reserve)) and add a short comment mentioning the
low-memory collapse case so the intent is clear.
---
Nitpick comments:
In `@src/main.rs`:
- Line 13: Move the stray use statement into the module import block: relocate
the `use env_logger::Env;` line so it sits with the other imports at the top of
the file (near the existing use declarations) instead of after the `STYLES`
constant; this keeps all imports grouped together and preserves the `STYLES`
constant definition locality.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 98db6bdc-23a4-481e-955d-868529125280
⛔ Files ignored due to path filters (3)
Cargo.lockis excluded by!**/*.lockdocs/src/images/fgumi_subway.pngis excluded by!**/*.pngdocs/src/images/fgumi_subway.svgis excluded by!**/*.svg
📒 Files selected for processing (65)
.cargo/config.toml.readthedocs.yamlCargo.tomlcrates/xtask/Cargo.tomlcrates/xtask/src/generate_docs.rscrates/xtask/src/generate_metrics.rscrates/xtask/src/generate_summary.rscrates/xtask/src/generate_tools.rscrates/xtask/src/main.rsdocs/LAST_SYNCEDdocs/book.tomldocs/src/guide/best-practices.mddocs/src/guide/consensus-calling.mddocs/src/guide/duplex-consensus-calling.mddocs/src/guide/getting-started.mddocs/src/guide/migration-from-fgbio.mddocs/src/guide/performance-tuning.mddocs/src/guide/read-structures.mddocs/src/guide/tracking-reads.mddocs/src/guide/umi-grouping.mddocs/src/guide/working-with-metrics.mddocs/src/index.mddocs/theme/custom.cssdocs/theme/sidebar-brand.jssrc/lib/commands/clip.rssrc/lib/commands/codec.rssrc/lib/commands/command.rssrc/lib/commands/common.rssrc/lib/commands/compare/bams.rssrc/lib/commands/compare/metrics.rssrc/lib/commands/compare/mod.rssrc/lib/commands/compare/raw_compare.rssrc/lib/commands/consensus_runner.rssrc/lib/commands/correct.rssrc/lib/commands/dedup.rssrc/lib/commands/downsample.rssrc/lib/commands/duplex.rssrc/lib/commands/duplex_metrics.rssrc/lib/commands/extract.rssrc/lib/commands/fastq.rssrc/lib/commands/filter.rssrc/lib/commands/group.rssrc/lib/commands/merge.rssrc/lib/commands/mod.rssrc/lib/commands/review.rssrc/lib/commands/shared_metrics.rssrc/lib/commands/simplex.rssrc/lib/commands/simplex_metrics.rssrc/lib/commands/simulate/common.rssrc/lib/commands/simulate/consensus_reads.rssrc/lib/commands/simulate/correct_reads.rssrc/lib/commands/simulate/fastq_reads.rssrc/lib/commands/simulate/grouped_reads.rssrc/lib/commands/simulate/mapped_reads.rssrc/lib/commands/simulate/mod.rssrc/lib/commands/simulate/sort.rssrc/lib/commands/sort.rssrc/lib/commands/zipper.rssrc/lib/mod.rssrc/lib/sort/inline_buffer.rssrc/lib/sort/segmented_buf.rssrc/lib/unified_pipeline/rebalancer.rssrc/lib/validation.rssrc/lib/version.rssrc/main.rs
💤 Files with no reviewable changes (1)
- src/lib/sort/inline_buffer.rs
✅ Files skipped from review due to trivial changes (37)
- .cargo/config.toml
- src/lib/commands/merge.rs
- docs/LAST_SYNCED
- src/lib/sort/segmented_buf.rs
- src/lib/commands/fastq.rs
- src/lib/commands/consensus_runner.rs
- src/lib/commands/compare/metrics.rs
- src/lib/commands/simulate/correct_reads.rs
- .readthedocs.yaml
- src/lib/commands/compare/bams.rs
- src/lib/commands/downsample.rs
- src/lib/validation.rs
- src/lib/unified_pipeline/rebalancer.rs
- src/lib/commands/shared_metrics.rs
- src/lib/commands/simulate/consensus_reads.rs
- src/lib/commands/review.rs
- docs/book.toml
- src/lib/commands/simulate/grouped_reads.rs
- src/lib/commands/correct.rs
- src/lib/commands/clip.rs
- src/lib/commands/duplex.rs
- src/lib/commands/simplex_metrics.rs
- crates/xtask/Cargo.toml
- src/lib/commands/codec.rs
- src/lib/commands/zipper.rs
- src/lib/commands/duplex_metrics.rs
- src/lib/commands/filter.rs
- docs/src/guide/working-with-metrics.md
- docs/src/guide/duplex-consensus-calling.md
- docs/src/guide/migration-from-fgbio.md
- docs/src/index.md
- docs/src/guide/tracking-reads.md
- docs/theme/custom.css
- docs/theme/sidebar-brand.js
- docs/src/guide/getting-started.md
- docs/src/guide/umi-grouping.md
- docs/src/guide/performance-tuning.md
🚧 Files skipped from review as they are similar to previous changes (14)
- src/lib/mod.rs
- Cargo.toml
- src/lib/commands/simulate/mapped_reads.rs
- src/lib/commands/extract.rs
- src/lib/commands/simplex.rs
- src/lib/commands/dedup.rs
- src/lib/commands/common.rs
- src/lib/commands/simulate/fastq_reads.rs
- crates/xtask/src/main.rs
- src/lib/commands/simulate/common.rs
- crates/xtask/src/generate_summary.rs
- src/lib/commands/group.rs
- crates/xtask/src/generate_tools.rs
- crates/xtask/src/generate_metrics.rs
…ges since v0.1.2 Updates all guide pages to reflect changes made to fgumi since the initial documentation was written (ec8c1ab..2f14de1): - getting-started: add merge step, simplex-metrics option, zipper BAM note, --metrics for group, --cell-tag for sort with single-cell data - best-practices: add merge, simplex-metrics (with yield curve explanation), --metrics prefix for group, --allow-unmapped, boolean flag values, updated dedup/filter examples to use explicit bool values, cell-tag in sort - umi-grouping: document --allow-unmapped, expand --metrics prefix and position_group_sizes.txt, improve cell barcode section, update sort order to mention CB tag inclusion - working-with-metrics: add simplex-metrics to commands table and output files, document position_group_sizes.txt, document --metrics prefix for group - migration-from-fgbio: add merge and simplex-metrics to command mapping, document boolean flag values, note --sort-order removal from simplex/codec, note group position_group_sizes metric, note sort --cell-tag - performance-tuning: add merge and metrics commands to command-specific section, document zipper raw-byte merge and sort LoserTree improvements - consensus-calling: note removal of --sort-order from simplex and codec - docs/LAST_SYNCED: record the commit through which guides were last reviewed
- Add Fulcrum Genomics sidebar logo (inlined SVG), product name in brand colors (fg=blue, umi=green), tagline, and corporate link - Add breadcrumb navigation on guide/tool/metric pages - Add page footer with Visit Us section and quick links (GitHub, API Docs, Issues, Discussions) injected on all non-index pages - Reorganize sidebar: User Guide grouped into Core Concepts / Consensus / Advanced Topics; Tool Reference in pipeline order with GROUP+DEDUP merged; Metrics grouped by type - Set sidebar fold level=0 (all collapsed by default) - Rename Introduction to Home in sidebar - Fix inline code contrast (light blue background, dark blue text) - Fix tool index missing descriptions - Increase base font size to 18px; use IBM Plex Sans/Mono throughout - Widen content area (max-width 1000px, up from 750px default) - Polish: tighter heading line-height, h4 sizing/color, blockquote background, table alternate rows, button padding, print styles, selective localStorage clearing, menu title coloring
RTD only supports specific pinned Rust versions; 1.87 is not in the allowed list. Using "latest" is correct since rust-toolchain.toml in the repo pins the actual toolchain version at build time.
29caa55 to
d64420c
Compare
Summary
Test plan
cargo docs-buildcompletes without errors