|
| 1 | +# quartify 1.0.0 - CRAN Submission Checklist |
| 2 | + |
| 3 | +## ✅ All CRAN Issues Fixed |
| 4 | + |
| 5 | +### 1. Interactive Examples ✅ |
| 6 | +- **Before**: Used `\dontrun{}` in Shiny function examples |
| 7 | +- **After**: Replaced with `if(interactive()){}` in: |
| 8 | + - `quartify_app.Rd` |
| 9 | + - `quartify_app_web.Rd` |
| 10 | +- **Impact**: Examples clearly show these are interactive-only functions |
| 11 | + |
| 12 | +### 2. Console Output ✅ |
| 13 | +- **Before**: Used `cat()` to write to console in `rtoqmd_dir.R` |
| 14 | +- **After**: Replaced with `message()` |
| 15 | +- **Impact**: Output can now be suppressed with `suppressMessages()` |
| 16 | + |
| 17 | +### 3. Working Directory Management ✅ |
| 18 | +- **Before**: `setwd()` called without immediate `on.exit()` |
| 19 | +- **After**: Added `on.exit(setwd(old_wd), add = TRUE)` immediately after every `setwd()` |
| 20 | +- **Files fixed**: |
| 21 | + - `R/rtoqmd.R` (line 969-974) |
| 22 | + - `R/rtoqmd_dir.R` (line 458-459) |
| 23 | + - `R/quartify_app_web.R` (lines 659-660, 813-814) |
| 24 | +- **Impact**: Working directory always restored, even on error |
| 25 | + |
| 26 | +### 4. File Writing to Home Directory ✅ |
| 27 | +- **Before**: `install_quartify_snippets()` wrote to `~/.R/snippets/` by default |
| 28 | +- **After**: |
| 29 | + - Added `path` parameter for custom location |
| 30 | + - Examples use `tempdir()` for testing |
| 31 | + - Interactive examples wrapped in `if(interactive())` |
| 32 | +- **Impact**: No default writes to user's home directory in non-interactive context |
| 33 | + |
| 34 | +### 5. Path Handling (Bonus Fix) ✅ |
| 35 | +- **Issue**: Tilde (~) paths not expanded, causing Quarto errors |
| 36 | +- **Fix**: Added `path.expand()` for all file paths in `rtoqmd()` |
| 37 | +- **Impact**: Paths like `~/file.qmd` now work correctly |
| 38 | + |
| 39 | +## 📦 Package Status |
| 40 | + |
| 41 | +**Version**: 1.0.0 (updated from 0.0.9) |
| 42 | +**R CMD check**: 0 errors ✔ | 0 warnings ✔ | 1 note ✖ (time verification only) |
| 43 | + |
| 44 | +## 📄 Documentation Updated |
| 45 | + |
| 46 | +- **NEWS.md**: Complete changelog for version 1.0.0 |
| 47 | +- **cran-comments.md**: Updated with all fixes and compliance notes |
| 48 | +- **Vignettes**: Added comprehensive `apply_styler` documentation (EN/FR) |
| 49 | + |
| 50 | +## 🚀 Ready for CRAN Submission |
| 51 | + |
| 52 | +The package is now fully compliant with CRAN policies and ready for submission! |
| 53 | + |
| 54 | +### Next Steps: |
| 55 | + |
| 56 | +1. **Build the package**: |
| 57 | + ```r |
| 58 | + devtools::build() |
| 59 | + ``` |
| 60 | + |
| 61 | +2. **Final check**: |
| 62 | + ```r |
| 63 | + devtools::check(remote = TRUE, manual = TRUE) |
| 64 | + ``` |
| 65 | + |
| 66 | +3. **Submit to CRAN**: |
| 67 | + ```r |
| 68 | + devtools::submit_cran() |
| 69 | + ``` |
| 70 | + Or manually via https://cran.r-project.org/submit.html |
| 71 | + |
| 72 | +## 📋 Files Modified |
| 73 | + |
| 74 | +- `R/quartify_app.R` - Interactive examples |
| 75 | +- `R/quartify_app_web.R` - on.exit() fixes, interactive examples |
| 76 | +- `R/rtoqmd.R` - Path expansion, on.exit() fixes |
| 77 | +- `R/rtoqmd_dir.R` - message() instead of cat(), on.exit() fixes |
| 78 | +- `R/snippets.R` - Path parameter, interactive examples |
| 79 | +- `DESCRIPTION` - Version bump to 1.0.0 |
| 80 | +- `NEWS.md` - Version 1.0.0 changelog |
| 81 | +- `cran-comments.md` - Updated submission notes |
| 82 | +- `man/*.Rd` - Regenerated documentation |
| 83 | + |
| 84 | +## 🎉 Summary |
| 85 | + |
| 86 | +All 4 major CRAN policy violations have been fixed: |
| 87 | +1. ✅ Interactive functions properly documented |
| 88 | +2. ✅ Console output uses message() not cat() |
| 89 | +3. ✅ Working directory always restored with on.exit() |
| 90 | +4. ✅ No default writes to user home directory |
| 91 | + |
| 92 | +Plus bonus fix: |
| 93 | +5. ✅ Tilde path expansion for better UX |
| 94 | + |
| 95 | +The package is production-ready for CRAN! 🚀 |
0 commit comments