qcthat 1.1.3
This patch release streamlines and hones the GitHub Action installed via Action_qcthat().
Action changes
-
Action_qcthat()now installs an action from a dedicated “actions” branch, allowing us to keep the action up-to-date with changes in GitHub policies without requiring an update to the package itself (#303, #205). - The
sessioninforuns are now displayed in the action runs and linked to from PR comments, rather than displaying in the comments themselves. This makes it easier to read comments generated by this package in email (#295). - The issue-test matrix underlying the full package report is attached to releases as JSON (via
SaveAsJSON()), which can be read back into R withReadJSONAsIssueTestMatrix()(#298). - If the
fail-for-missing-testsinput istrue(default), the qcthat action fails if any issues associated with the triggering PR lack tests (and are not tagged withqcthat-nocov) (#288). -
TriggerUAT()checks the status of PRs again before triggering re-runs of actions, to minimize instances were actions try to run an extra time if a PR is closed whileTriggerUAT()is processing (#299). - Actions triggered via workflow dispatch now set the branch properly (#308), and action input names match a more standard style (#310).
Other changes
-
ExpectUserAccepts()now automatically assigns UAT issues to GitHub usernames passed aschrAssignees, defaulting to the value of aqcthat_UAT_ASSIGNEESenvironment variable. This variable can be set in the GitHub action via theuat-assigneesinput, automatically triggering different UAT reviewers at different stages of development (#193). -
vignette("expect_user_accepts")added to describe the “User acceptance testing with ExpectUserAccepts” process (#293). - qcthat installs the dev version of gh to avoid issues with GitHub PATs caused by recent changes to the GitHub API.
qcthat 1.1.2
This patch release focuses on introducing the world to qcthat.
Documentation improvements
- Two new vignettes have been added,
vignette("qcthat")andvignette("business_process"). They were split off and refined from information that was previously in the README (#98, #236). - The slide deck on the pkgdown site has been finalized ahead of PHUSE US Connect 2026 (#170).
qcthat 1.1.1
This patch release contains improvements and bug fixes discovered while applying the experimental AI agent features released in qcthat v1.1.0. These changes are tracked in #241.
New features
- The experimental
tag-tests-with-issuesskill now generates a report inpkgdown/assetsdescribing the reasons that tests were tagged with each issue. If the pkgdown uses pkgdown, this report will be available at{pkgdown_root}/test_tag_reasons.html. We recommend using this report locally to verify results, and then deleting the report without merging it into your pkgdown site (#242).
Bug fixes
-
FetchRepoIssueClosers()is now better at determining which pull request or merge caused each issue to be closed. Other portions of the issue-test relationship mechanism are properly fetched from GitHub (in case the local repo does not have all changes), but the fetches are now much more optimized (#243, #251). -
ExtractTestsFromFiles()now uses a much more robust mechanism to quickly parse tests, built with the {astgrepr} R package (#247, #257). -
GetGHRemote()no longer truncates the repo name for repositories with a.in the name (such as “gsm.reporting”) (#248). - The
qcthat.yamlworkflow no longer erroneously mentions “push” triggers (#259).
qcthat 1.1.0
New features and tools to help you track user acceptance testing, and to help you use AI agents to get started with qcthat.
New features
Experimental functions for tracking user-acceptance testing (UAT):
-
ExpectUserAccepts()enables tracking of user acceptance by connectingtestthattests to GitHub issues. Once the UAT issue is closed, the test will pass (#65, #111, #113, #115, #120). -
TriggerUAT()triggers the UAT test cycle for a closed issue. This function is used by the improved GitHub Actions framework, installable viaAction_qcthat()(#65, #111, #114, #115, #116, #157).
Improved onboarding:
-
use_qcthat()callsSetupGHLabels()andAction_qcthat(), to set up your repository with GitHub Actions workflows and labels used for QC tracking (#129, #141, #143, #161, #165, #181, #198). - Experimental AI agent features:
Skill_TagTestsWithIssues()installs an AI agent skill to tag tests with issues, using new functionsExtractTestsFromFiles(),MapTestFilesToPotentialIssues(), andPrepareTestIssueContext()(#52, #53, #200, #201, #233).
Other changes
- Additional improvements to QC reports, such as links to the GitHub Actions run (#150), timestamps (#172), and attaching QC Reports to releases within the release description (#152). Additional changes are tracked in the parent issues (#123, #160).
- The
pkgdownsite forqcthatnow includes a slide deck to introduce the package and the associated system (#166, #167, #168, #169).
Bug fixes
- Ignored issues are filtered out of reports (#118).
- Reports work properly when the active branch is associated with multiple PRs (#132), when the PRs contain a lot of commits (#133), and after PRs are merged (#149).
-
GetGHOwner()andGetGHRepo()should now work for forks, even if the local repo name does not match the upstream repo name (#199).
qcthat 1.0.0
You can now use this package to implement a QC framework for any R package associated with a GitHub repository.
New features
A series of QC*() functions to generate QC reports for different sets of issues:
-
QCPackage()for all issues and tests for an R package and its associated GitHub repository (#46, #69). -
QCCompletedIssues()for only issues closed as completed (#69, #80). -
QCIssues()for specific issues (#86), andQCMilestones()for issues associated with specific named milestones (#68, #88) -
QCPR()for issues associated with specific GitHub pull requests,QCMergeGH()to generalize to issues associated with any GitHub merge using GitHub’s graph to determine connections, andQCMergeLocal()to detect probable associations based on commit messages (#68, #84).
A series of Action_*() functions to set up GitHub actions for QC reports:
-
Action_QCCompletedIssues()to runQCCompletedIssues()(#69, #73). -
Action_QCPRIssues()to runQCPR()for specific pull requests (#55, #68). -
Action_QCMilestone()to runQCMilestones()for pull requests associated with milestones, and for releases with names that match milestones (#68, #88).
qcthat 0.2.0
This is a complete rewrite of the package to implement a framework that links GitHub issues to evidence that those issues have been implemented.
New features
- Function
FetchRepoIssues()to get issues from a GitHub repository and compile them into a user-friendly data frame (#34, #47). - Function
CompileTestResults()to extract test results fromtestthattest runs and compile them into a user-friendly data frame (#32). - Function
CompileIssueTestMatrix()to link GitHub issues to test results, producing anIssueTestMatrixobject that summarizes the state of issues and their associated tests (#35, #49). - Custom print methods for
qcthat_SingleIssueTestResults,qcthat_Milestone, andqcthat_IssueTestMatrixobjects to display their contents in a user-friendly tree format (#31, #36, #45, #60, #61).