Feature/bring v0.4 into main#3
Conversation
…ttes, and templates
… OSS governance docs
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f76e705ab0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!(definition$strategy %in% c("ordered", "random"))) { | ||
| definition$strategy <- "ordered" | ||
| } |
There was a problem hiding this comment.
Propagate normalized MCQ-ref strategy to caller
validate_mcq_ref_definition() tries to coerce invalid strategy values to "ordered", but this assignment is local and the function only returns TRUE; the original invalid value is still passed to select_questions_from_bank(), where match.arg() raises an error. Any tutorizeR-mcq-ref block with a typo like strategy: ordred will fail conversion instead of following the validator’s fallback logic.
Useful? React with 👍 / 👎.
| )) | ||
| } | ||
|
|
||
| build_callout_question_lines(question = question, answers = answers, language = "en") |
There was a problem hiding this comment.
Respect selected language in explicit Quarto MCQ blocks
For explicit tutorizeR-mcq blocks rendered to quarto-live, the callout builder is hard-coded with language = "en", so tutorize(..., language = "fr") still emits English quiz labels. This creates mixed-language output in localized tutorials and bypasses the i18n flow used elsewhere.
Useful? React with 👍 / 👎.
| } else if (is_r_chunk(block)) { | ||
| item_type <- "exercise" |
There was a problem hiding this comment.
Exclude non-exercise tagged chunks from LMS manifest items
derive_manifest_items() labels every R chunk as an exercise without checking parsed tutorize tags, so chunks marked skip, narrative-only, or solution-only are still exported as learner exercises with solution_available. In files using these tags, the generated LMS manifest overstates interactive activities and can misrepresent what learners actually see.
Useful? React with 👍 / 👎.
Summary
This PR integrates the v0.4 publication-ready roadmap for
tutorizeR, with a focus on making conversion workflows more robust for teacher-scale usage.What this PR adds
load_question_bank(),validate_question_bank(){tutorizeR-mcq-ref}lint_source()with explicit severities/codestutorize_report+write_tutorize_report()tr()export_lms_manifest())export_tutorial_package())paper/paper.md,paper/paper.bib)question-bank,lint-and-debug)Validation
R CMD check --as-cran --no-manual(pass, with expected non-blocking environment notes)Rscript -e "lintr::lint_package()"(No lints found)Rscript -e "testthat::test_local()"(98 PASS, 0 FAIL)Breaking changes
convert_to_tutorial()preservedconvert_folder()preservedtutorize()kept additiveReviewer notes