Changelog
Source:NEWS.md
Athlytics 1.0.2
Documentation & Review Fixes
Runnable vignettes: Added executable demo chunks using built-in sample datasets so key plots render during
build_vignettes().Sample data naming: Renamed built-in datasets from
athlytics_sample_*tosample_*and updated docs/examples accordingly.Styling: Ran
styler::style_pkg()to improve formatting consistency.
Athlytics 1.0.1
Code Quality Improvements
Reduced Cyclomatic Complexity: Refactored
calculate_acwr()andcalculate_exposure()by extracting shared load calculation logic into internal helper functions (calculate_daily_load_internal(),compute_single_load(),validate_load_metric_params()). This improves code maintainability and testability without changing the public API.Dependency Cleanup: Removed unused
viridispackage from Imports. The package was declared as a dependency but never actually called (ggplot2’s built-inscale_color_viridis_d()was used instead).Documentation Fixes: Fixed Rd line width issues in
plot_with_reference()examples.-
API Naming Consistency: Added verb-first primary APIs and kept previous names as deprecated wrappers for backward compatibility.
- New:
calculate_cohort_reference()(replacescohort_reference()) - New:
summarize_quality()(replacesquality_summary()) - Old names remain available but emit a deprecation warning to guide migration.
- New:
Build Configuration: Updated
.Rbuildignoreto properly exclude development files.
Athlytics 1.0.0
This major release transitions from Strava API to local data export processing, prioritizing user privacy and data ownership while eliminating API rate limits and authentication requirements.
Breaking Changes & New Features
-
Privacy-First Architecture: Complete shift from Strava API to local ZIP file processing
- New
load_local_activities()function supports direct ZIP file loading (no manual extraction needed) - Removed API dependencies and authentication requirements
- All data processing happens locally - no cloud services involved
- New
-
Enhanced Documentation: Comprehensive documentation improvements across all core functions
- Added detailed parameter explanations with recommended values
- Included interpretation guidelines and typical value ranges
- Added algorithm descriptions and best practices
- Expanded with academic references and cross-function links
- Enhanced
calculate_acwr(),calculate_ef(), andcalculate_decoupling()documentation
-
Multi-Athlete Cohort Analysis: Improved support for research and team analytics
- Better documentation for
cohort_reference()and multi-athlete workflows - Examples updated to show intervention/control group comparisons
- Proper use of
group_modify()for batch processing
- Better documentation for
-
README & Package Updates
- Updated all code examples to reflect local data processing workflow
- Corrected function parameter names throughout (e.g.,
activities_df→activities_data) - Added installation guidance emphasizing GitHub v1.0.0 as latest version
- Removed outdated API-related content
Academic Paper
- Added comprehensive JOSS-style paper (
paper/paper.mdandpaper/paper.bib)- Detailed comparison with related R packages (rStrava, trackeR, activatr, FITfileR, ACWR, injurytools)
- Updated methodology to reflect local data processing approach
- Enhanced reproducible examples using local exports
Technical Improvements
- Fixed encoding issues in BibTeX references
- Updated
.gitignoreto track README.md and paper/ directory - Synchronized all documentation with actual function implementations
- Improved pkgdown website generation
Migration Guide
For users upgrading from 0.1.x:
- Download your Strava bulk data export (Settings > My Account > Download Request)
- Replace
fetch_strava_activities()calls withload_local_activities("export.zip") - Update function calls:
activities_df→activities_data,plot_*()now accepts data directly - Remove Strava API authentication code
Athlytics 0.1.2
CRAN release: 2025-05-16
-
CRAN Resubmission: Carefully addressed feedback from CRAN by making detailed updates and modifications for package resubmission. This primarily involved refining examples (e.g., consistently using
\dontrun{}as advised) and ensuring metadata files meet all CRAN standards.
- Testing: Focused on increasing test coverage towards the goal of 85% across the package. Integrated Codecov for ongoing coverage monitoring.
- Bug Fixes
Athlytics 0.1.1
Core Improvement: Enhanced Reliability & Testing with Simulated Data
This significant update enhances package reliability and ease of use by integrating sample datasets. This enables all examples to run offline and ensures core functionalities have undergone more rigorous, reproducible testing.
Key Changes
-
Examples & Vignettes: All Roxygen examples and key vignette examples now primarily use sample datasets for offline execution and clarity. Network-dependent examples are clearly separated in
\donttest{}blocks. -
Test Suite: Fundamentally refactored the test suite to extensively use sample datasets and
mockery, improving test robustness and parameter coverage. -
Strengthened Package Quality & Compliance: Undertook thorough package validation, leading to key enhancements for overall robustness and adherence to R packaging standards. This involved: ensuring all function examples are correct and reliably executable (notably addressing
strava_oauth(...)scenarios for offline/testing contexts); providing accurate and refined documentation for data objects inR/data.R; fixing Roxygen import directives for precise namespace definition; improving help file readability through Rd line width adjustments; and optimizing package data loading by addingLazyData: truetoDESCRIPTION. - Documentation: Minor improvements to documentation clarity and consistency (e.g., date formatting in plots, explicit naming of data frame arguments in examples).
Athlytics 0.1.0
Major Changes
-
Decoupling Calculation: Switched from
rStrava::get_activity_streamsto direct Strava API calls usinghttrandjsonlitefor fetching activity streams incalculate_decoupling. This aims to resolve previous errors but might impact performance and rate limiting.
Bug Fixes & Improvements
- Fixed
calculate_acwrerror (condition has length > 1) by forcing evaluation before the dplyr pipe. - Corrected
plot_pbsusage in examples and test scripts to include the requireddistance_metersargument. - Added missing dependencies (
httr,jsonlite) toDESCRIPTIONfile. - Improved error handling and messages in several functions.
- Simplified Roxygen documentation for core functions.
- Updated README examples and descriptions for clarity and consistency with code.