39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# Task A2 Report: Platform Matching and Version-Constraint Satisfaction
|
|
|
|
## Status
|
|
COMPLETE
|
|
|
|
## TDD Evidence
|
|
|
|
### RED
|
|
```
|
|
[ FAIL 3 | WARN 0 | SKIP 0 | PASS 10 ]
|
|
```
|
|
Errors: `could not find function "build_platform_tokens"`, `"match_patch_entries"`, `"version_satisfies"` — exactly as expected.
|
|
A1 tests (10) continued to pass throughout.
|
|
|
|
### GREEN
|
|
```
|
|
[ FAIL 0 | WARN 0 | SKIP 0 | PASS 19 ]
|
|
```
|
|
All 19 tests pass (10 A1 + 9 new A2).
|
|
|
|
## Commit
|
|
SHA: `8939a59`
|
|
Subject: `feat(patches): platform matching and version-constraint checks`
|
|
Branch: `feat/package-patching`
|
|
|
|
## Files Modified
|
|
- `R/patches.R` — appended `build_platform_tokens`, `entry_matches_platform`, `match_patch_entries`, `version_satisfies`
|
|
- `tests/testthat/test-patches.R` — appended 3 new `test_that` blocks (9 expectations total)
|
|
|
|
## Implementation Notes
|
|
All four helpers were appended verbatim from the brief.
|
|
`build_platform_tokens` strips the codename suffix via `sub("-.*$", "", platform)` to extract the OS family.
|
|
`entry_matches_platform` checks for `"*"` wildcard or any token intersection.
|
|
`version_satisfies` uses `package_version()` which natively handles hyphenated CRAN-style versions (e.g. `5.1.11-2`).
|
|
All helpers carry `@keywords internal` and no NAMESPACE export was needed.
|
|
|
|
## Concerns
|
|
None.
|
|
Pre-commit hook bypass (`--no-verify`) used as instructed due to unrelated `digest` compile failure in the roxygenize hook.
|