From 4c0540bf348ea78d9e334f0f30c49298254718c8 Mon Sep 17 00:00:00 2001 From: shikokuchuo <53399081+shikokuchuo@users.noreply.github.com> Date: Fri, 1 Mar 2024 21:08:08 +0000 Subject: [PATCH 1/3] actually check the live URL --- DESCRIPTION | 2 +- NAMESPACE | 2 ++ NEWS.md | 4 ++++ R/assert_package.R | 11 +++++++++++ R/package.R | 2 +- tests/test-assert_package.R | 11 +++++++++++ 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 35efac7..13357d6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: r.releases.utils Title: Utilities for An R Universe of Package Releases Description: Utilities for an R universe of package releases. -Version: 0.0.5 +Version: 0.0.5.9000 License: MIT + file LICENSE URL: https://r-releases.github.io/r.releases.utils/, diff --git a/NAMESPACE b/NAMESPACE index 6bd490d..24a3379 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,6 +9,8 @@ export(try_message) importFrom(gh,gh) importFrom(jsonlite,parse_json) importFrom(jsonlite,read_json) +importFrom(nanonext,ncurl) importFrom(nanonext,parse_url) +importFrom(nanonext,status_code) importFrom(pkgsearch,cran_package) importFrom(vctrs,vec_rbind) diff --git a/NEWS.md b/NEWS.md index f3f949c..708b759 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# r.releases.utils 0.0.5.9000 (development) + +* Check URL exists as part of package verification. + # r.releases.utils 0.0.5 * Write pretty JSON to `packages.json` (@llrs, https://github.com/r-releases/help/issues/4). diff --git a/R/assert_package.R b/R/assert_package.R index 228f668..45f3d94 100644 --- a/R/assert_package.R +++ b/R/assert_package.R @@ -48,6 +48,17 @@ assert_package <- function(name, url) { return(paste("URL", shQuote(url), "appears to use a CRAN mirror.")) } assert_cran_url(name = name, url = url) + status <- nanonext::ncurl(url)[["status"]] + if (status != 200L) { + return( + paste( + "URL", + shQuote(url), + "returned HTTP error", + nanonext::status_code(status) + ) + ) + } } assert_package_lite <- function(name, url) { diff --git a/R/package.R b/R/package.R index 704c66f..f73f627 100644 --- a/R/package.R +++ b/R/package.R @@ -4,7 +4,7 @@ #' @family help #' @importFrom gh gh #' @importFrom jsonlite parse_json read_json -#' @importFrom nanonext parse_url +#' @importFrom nanonext ncurl parse_url status_code #' @importFrom pkgsearch cran_package #' @importFrom vctrs vec_rbind NULL diff --git a/tests/test-assert_package.R b/tests/test-assert_package.R index 8eafc58..5bef07d 100644 --- a/tests/test-assert_package.R +++ b/tests/test-assert_package.R @@ -140,6 +140,17 @@ stopifnot( ) ) +stopifnot( + grepl( + "returned HTTP error", + r.releases.utils::assert_package( + name = "afantasticallylongandimpossiblepackage", + url = "https://github.com/r-lib/afantasticallylongandimpossiblepackage" + ), + fixed = TRUE + ) +) + stopifnot( is.null( r.releases.utils::assert_package( From f335bb8c6e84c21400892988dbeb5bf752e5c1da Mon Sep 17 00:00:00 2001 From: wlandau Date: Sat, 2 Mar 2024 14:00:05 -0500 Subject: [PATCH 2/3] Version bump --- DESCRIPTION | 2 +- NEWS.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 13357d6..5655eb6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: r.releases.utils Title: Utilities for An R Universe of Package Releases Description: Utilities for an R universe of package releases. -Version: 0.0.5.9000 +Version: 0.0.6 License: MIT + file LICENSE URL: https://r-releases.github.io/r.releases.utils/, diff --git a/NEWS.md b/NEWS.md index 708b759..8447807 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# r.releases.utils 0.0.5.9000 (development) +# r.releases.utils 0.0.6 * Check URL exists as part of package verification. From 898657d7c78238132a56efc6069cc54e42c4d0c7 Mon Sep 17 00:00:00 2001 From: wlandau Date: Sat, 2 Mar 2024 14:01:20 -0500 Subject: [PATCH 3/3] Reorder checks --- R/assert_package.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/assert_package.R b/R/assert_package.R index 45f3d94..d8b08c7 100644 --- a/R/assert_package.R +++ b/R/assert_package.R @@ -47,7 +47,6 @@ assert_package <- function(name, url) { if (identical(owner, "cran")) { return(paste("URL", shQuote(url), "appears to use a CRAN mirror.")) } - assert_cran_url(name = name, url = url) status <- nanonext::ncurl(url)[["status"]] if (status != 200L) { return( @@ -59,6 +58,7 @@ assert_package <- function(name, url) { ) ) } + assert_cran_url(name = name, url = url) } assert_package_lite <- function(name, url) {