fix(gpx): output valid <wpt> tag for home waypoint (resolves #20)#31
Conversation
- Remove underscore prefix from home_coordinates parameter (now used) - Add home position waypoint to GPX files using first available H frame - Waypoint includes name, symbol (Flag), and description for mapping tools - Home coordinates are rendered before track segment for proper GPX structure - Provides visual reference point in GPS mapping applications - Backward compatible: waypoints are optional in GPX 1.1 spec Resolves #20
- Add missing closing bracket to <wpt> tag in GPX export - Home waypoint now produces valid XML, fixing Google Maps and GPX tool import errors - Resolves #20
📝 WalkthroughWalkthroughReplaces the unused Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related issues
Possibly related PRs
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used📓 Path-based instructions (4)src/**/*.rs📄 CodeRabbit inference engine (AGENTS.md)
Files:
src/{parser/**/*.rs,export.rs}📄 CodeRabbit inference engine (AGENTS.md)
Files:
src/{export.rs,lib.rs}📄 CodeRabbit inference engine (AGENTS.md)
Files:
{src/**/*.rs,Cargo.toml}📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (3)📓 Common learnings📚 Learning: 2025-12-13T15:51:00.137ZApplied to files:
📚 Learning: 2025-12-13T15:51:00.137ZApplied to files:
🧬 Code graph analysis (1)src/export.rs (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
🔇 Additional comments (5)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/export.rs(3 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
src/**/*.rs
📄 CodeRabbit inference engine (AGENTS.md)
src/**/*.rs: Do not remove or modify comments unless the related code is changed
Only add comments that explain code functionality; no AI instructional comments
Never embed or call external binaries from Rust code
Ensurecargo build --releasehas no errors or warnings
Only commit ifcargo clippy --all-targets --all-features -- -D warningspasses
Only commit ifcargo fmt --all -- --checkpasses
Only commit ifcargo test --verbosepasses
Only commit ifcargo build --releasepasses with no errors or warnings
BEFORE ANY CODE CHANGES: Always runcargo clippy --all-targets --all-features -- -D warningsto catch ALL issues
BEFORE ANY CODE CHANGES: Always runcargo fmt --all -- --checkto ensure formatting compliance
Ifcargo fmt --all -- --checkfails, IMMEDIATELY runcargo fmt --allto fix formatting
Code must passcargo fmt --all -- --checkwithout any formatting issues
Never skip clippy checks or formatting checks. Never allow warnings to pass
ALWAYS runcargo fmt --allafter making ANY code changes before moving to next steps
After runningcargo fmt --all, ALWAYS verify withcargo fmt --all -- --checkbefore proceeding
Files:
src/export.rs
src/{parser/**/*.rs,export.rs}
📄 CodeRabbit inference engine (AGENTS.md)
Parser modules should be placed in
src/parser/and export functions insrc/export.rsfor sharing between library and CLI
Files:
src/export.rs
src/{export.rs,lib.rs}
📄 CodeRabbit inference engine (AGENTS.md)
The CSV output must precisely match the format and header order of blackbox_decode CSV files
Files:
src/export.rs
{src/**/*.rs,Cargo.toml}
📄 CodeRabbit inference engine (AGENTS.md)
{src/**/*.rs,Cargo.toml}: Only commit ifcargo test --features=cli --verbosepasses
All feature combinations must compile without errors
Files:
src/export.rs
🧠 Learnings (3)
📓 Common learnings
Learnt from: nerdCopter
Repo: nerdCopter/bbl_parser PR: 2
File: LICENSE_COMMERCIAL:1-4
Timestamp: 2025-08-29T19:52:05.099Z
Learning: nerdCopter prefers to avoid publishing personal information in license files for privacy and security reasons, as they are an individual maintainer rather than a company.
Learnt from: nerdCopter
Repo: nerdCopter/bbl_parser PR: 2
File: README.md:520-521
Timestamp: 2025-08-29T19:53:41.354Z
Learning: nerdCopter uses AGPL-3.0-or-later licensing for the bbl_parser project with a dual-licensing approach that includes a separate commercial license option.
Learnt from: nerdCopter
Repo: nerdCopter/bbl_parser PR: 2
File: CONTRIBUTING.md:9-14
Timestamp: 2025-08-21T20:25:45.741Z
Learning: nerdCopter prefers to keep CLA language general using "project maintainer" rather than specifying a legal entity name, as they are an individual maintainer without an associated company.
Learnt from: nerdCopter
Repo: nerdCopter/bbl_parser PR: 2
File: LICENSE_COMMERCIAL:0-0
Timestamp: 2025-08-29T20:15:04.624Z
Learning: nerdCopter prefers clear positive indicators (✅) when describing fixes rather than using ❌ symbols which can be confusing when describing what was corrected in a positive context.
📚 Learning: 2025-12-13T15:51:00.137Z
Learnt from: CR
Repo: nerdCopter/bbl_parser PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-13T15:51:00.137Z
Learning: Applies to src/main.rs : CLI (`src/main.rs`) should use library export functions (`export_to_csv`, `export_to_gpx`, `export_to_event`) with CLI-specific status messages
Applied to files:
src/export.rs
📚 Learning: 2025-12-13T15:51:00.137Z
Learnt from: CR
Repo: nerdCopter/bbl_parser PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-13T15:51:00.137Z
Learning: Applies to src/lib.rs : Public API must expose: `parse_bbl_file()`, `parse_bbl_bytes()`, `BBLLog`, `ExportOptions`, `export_to_csv()`, `export_to_gpx()`, `export_to_event()`, conversion utilities, parser helpers
Applied to files:
src/export.rs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Build Release Binaries (macos-latest, bbl_parser-macos-x64, target/release/bbl_parser)
- GitHub Check: Build Release Binaries (ubuntu-latest, bbl_parser-linux-x64, target/release/bbl_parser)
- GitHub Check: Build Release Binaries (windows-latest, bbl_parser-windows-x64, target/release/bbl_parser.exe)
🔇 Additional comments (2)
src/export.rs (2)
351-357: LGTM! Clear documentation of the home waypoint feature.The updated parameter documentation and new Features section accurately describe the functionality. The documentation is concise and helpful for users of this API.
368-368: LGTM! Parameter now actively used.Correctly removes the underscore prefix since
home_coordinatesis now used in the implementation. This aligns with Rust conventions.
…Dir auto-cleanup, 8 cases, 100% coverage)
Summary
Validation
Closes #20.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.