Okay. So, after having spent quite some time never really tracking down
why my package NEWS files were unacceptable to readNEWS(), I
noticed that there was recent (to me anyway) development that allowed
the NEWS to be done as an Rd file. Sweet! A more standard format...
I converted a NEWS file in one of my unreleased packages to Rd format.
checkNEWS() gave it a thumbs up.
But then it went south. Tried the following after installation:
checkNEWS("myapp/trunk/MyApp/inst/NEWS.Rd")
[1] TRUE
news(package="MyApp")
Nothing.
Debugging news() itself left me wondering. The first thing checked
for was 'inst/NEWS.Rd' - once I install the package, that would never
exist though, right? Should tools:::.build_news_db() instead use:
nfile <- file.path(dir, c("NEWS.Rd", file.path("inst", "NEWS.Rd")))
On the slim chance it should, I modified the path to my
source folder's copy and continued debugging into
tools:::.build_news_db_from_package_NEWS_Rd().
debug: ind <- grepl(re_v, nms, ignore.case = TRUE)
Browse[2]>
debug: if (!all(ind)) warning("Cannot extract version info from the following section titles:\n",
Browse[2]> ind
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Browse[2]>
debug: NULL
Browse[2]>
debug: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
Browse[2]>
debugging in: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
debug: {
out <- data.frame(x, row.names = NULL, stringsAsFactors = FALSE)
colnames(out) <- c("Version", "Date", "Category", "Text")
if (!is.null(bad))
attr(out, "bad") <- bad
class(out) <- unique(c(classes, "news_db", "data.frame"))
out
}
Browse[3]>
debug: out <- data.frame(x, row.names = NULL, stringsAsFactors = FALSE)
Browse[3]>
debug: colnames(out) <- c("Version", "Date", "Category", "Text")
Browse[3]>
debug: if (!is.null(bad)) attr(out, "bad") <- bad
Browse[3]>
debug: attr(out, "bad") <- bad
Browse[3]>
debug: class(out) <- unique(c(classes, "news_db", "data.frame"))
Browse[3]>
debug: out
Browse[3]>
exiting from: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
exiting from: tools:::.build_news_db_from_package_NEWS_Rd(newsfile)
Error: invalid version specification CHANGES IN VERSION 1.0.0CHANGES IN VERSION 1.0.1CHANGES IN VERSION 2.0.0
Well, so it didn't like my version numbers. But is the regexp check correct?
Browse[2]> .standard_regexps()$valid_package_version
[1] "([[:digit:]]+[.-]){1,}[[:digit:]]+"
Would appear as though packages with only major.minor comparisons would
pass. Or did I miss something...
----
P.S. Another thing I didn't see specified was whether this was an acceptable format
in current Rd format:
\section{CHANGES IN VERSION 2.0.0}{
Trying to get original TEXT files to be read by readNEWS(), the sections had to
read "CHANGES IN R VERSION nnn". Using Rd format, checkNEWS() seemed
to allow optionally using a package name instead (of 'R'). As it also allowed using
nothing, i went with that. What's the intended canonical format?
Okay. So, after having spent quite some time never really tracking down
why my package NEWS files were unacceptable to readNEWS(), I
noticed that there was recent (to me anyway) development that allowed
the NEWS to be done as an Rd file. Sweet! A more standard format...
I converted a NEWS file in one of my unreleased packages to Rd format.
checkNEWS() gave it a thumbs up.
But then it went south. Tried the following after installation:
All of this works much better for r-devel: in particular, this makes
clear that checkNEWS is for old-style (pre 2.12.0) R NEWS files ...
Best
-k
checkNEWS("myapp/trunk/MyApp/inst/NEWS.Rd")
[1] TRUE
news(package="MyApp")
Nothing.
Debugging news() itself left me wondering. The first thing checked
for was 'inst/NEWS.Rd' - once I install the package, that would never
exist though, right? Should tools:::.build_news_db() instead use:
On the slim chance it should, I modified the path to my
source folder's copy and continued debugging into
tools:::.build_news_db_from_package_NEWS_Rd().
debug: ind <- grepl(re_v, nms, ignore.case = TRUE)
Browse[2]>
debug: if (!all(ind)) warning("Cannot extract version info from the following section titles:\n",
Browse[2]> ind
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Browse[2]>
debug: NULL
Browse[2]>
debug: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
Browse[2]>
debugging in: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
debug: {
out <- data.frame(x, row.names = NULL, stringsAsFactors = FALSE)
colnames(out) <- c("Version", "Date", "Category", "Text")
if (!is.null(bad))
attr(out, "bad") <- bad
class(out) <- unique(c(classes, "news_db", "data.frame"))
out
}
Browse[3]>
debug: out <- data.frame(x, row.names = NULL, stringsAsFactors = FALSE)
Browse[3]>
debug: colnames(out) <- c("Version", "Date", "Category", "Text")
Browse[3]>
debug: if (!is.null(bad)) attr(out, "bad") <- bad
Browse[3]>
debug: attr(out, "bad") <- bad
Browse[3]>
debug: class(out) <- unique(c(classes, "news_db", "data.frame"))
Browse[3]>
debug: out
Browse[3]>
exiting from: .make_news_db(cbind(ifelse(ind, sub(re_v, "\\1", nms), NA_character_),
ifelse(grepl(re_d, nms), sub(re_d, "\\1", nms), NA_character_),
db[, 2L], sub("\n*$", "", db[, 3L])), logical(nrow(db)),
"news_db_from_Rd")
exiting from: tools:::.build_news_db_from_package_NEWS_Rd(newsfile)
Error: invalid version specification CHANGES IN VERSION 1.0.0CHANGES IN VERSION 1.0.1CHANGES IN VERSION 2.0.0
Well, so it didn't like my version numbers. But is the regexp check correct?
Would appear as though packages with only major.minor comparisons would
pass. Or did I miss something...
----
P.S. Another thing I didn't see specified was whether this was an acceptable format
in current Rd format:
\section{CHANGES IN VERSION 2.0.0}{
Trying to get original TEXT files to be read by readNEWS(), the sections had to
read "CHANGES IN R VERSION nnn". Using Rd format, checkNEWS() seemed
to allow optionally using a package name instead (of 'R'). As it also allowed using
nothing, i went with that. What's the intended canonical format?