Title: | Compilies NEWS files from different packages |
---|---|
Description: | The package takes NEWS files from other packages and puts them into a single file |
Authors: | Marcel Ramos [aut, cre] |
Maintainer: | Marcel Ramos <[email protected]> |
License: | Artistic-2.0 |
Version: | 0.0.8 |
Built: | 2024-11-03 06:22:35 UTC |
Source: | https://github.com/waldronlab/newsfeed |
This package will take the first chunk of a NEWS file and return it as a character vector. Users should call this function within a folder *above* all of the packages in the 'packages' argument. This will ensure that the proper NEWS path is obtained.
collect( packages, vpattern = "Changes in version", render = TRUE, rawHTML = FALSE )
collect( packages, vpattern = "Changes in version", render = TRUE, rawHTML = FALSE )
packages |
character() A vector of packages with NEWS files |
vpattern |
character(1) The 'grep' input for searching the versioning line in the NEWS files. This usually starts with 'Changes in version' but may differ. |
render |
logical(1) Whether to produce an HTML document for viewing (default: TRUE) |
rawHTML |
logical(1) Whether to return the raw HTML text when 'render = TRUE' (default: FALSE) |
The NEWS file location can be in one of four locations relative to the package directory:
"NEWS.md"
"NEWS"
"inst/NEWS"
"inst/NEWS.md"
"inst/NEWS.Rd"
Obtained from Bioconductor NEWS guidelines: https://www.bioconductor.org/developers/package-guidelines/#news
collect("newsfeed") ## Not run: pkgs <- c( "MultiAssayExperiment", "curatedTCGAData", "TCGAutils", "cBioPortalData", "SingleCellMultiModal", "RTCGAToolbox", "RaggedExperiment", "terraTCGAdata", "BiocBaseUtils", "TENxIO", "BiocHubsShiny" ) stopifnot(all(dir.exists(pkgs))) collect(pkgs) ## End(Not run)
collect("newsfeed") ## Not run: pkgs <- c( "MultiAssayExperiment", "curatedTCGAData", "TCGAutils", "cBioPortalData", "SingleCellMultiModal", "RTCGAToolbox", "RaggedExperiment", "terraTCGAdata", "BiocBaseUtils", "TENxIO", "BiocHubsShiny" ) stopifnot(all(dir.exists(pkgs))) collect(pkgs) ## End(Not run)
This function is used internally for collating the latest NEWS after validation with the 'validate' function.
extract(pkg, vpattern = "Changes in version")
extract(pkg, vpattern = "Changes in version")
vpattern |
character(1) The 'grep' input for searching the versioning line in the NEWS files. This usually starts with 'Changes in version' but may differ. |
We provide several utilties for working with Markdown-style NEWS.md files. Such operations include the manipulation of NEWS.md file headers and header case.
pkgHeadings(packages, vpattern = "Changes in version")
pkgHeadings(packages, vpattern = "Changes in version")
packages |
character() A vector of package names that correspond to folders in the current directory. |
vpattern |
character(1) The 'grep' input for searching the versioning line in the NEWS files. This usually starts with 'Changes in version' (default) but may differ. |
pkg |
character(1) The name of a local package whose folder is in in the current working directory. |
dry.run |
logical(1) Whether to print changes to the console (TRUE) or change the actual NEWS file in the package. |
bumpHeaders |
logical(1) Whether to increase all markdown headers by one (usually '##' to '###'; default TRUE) |
from |
character(1) The Markdown header to identify in the NEWS.md file (default '#' aka HTML tag 'h1') |
to |
character(1) The Markdown header to replace in the NEWS.md file (default '##' aka HTML tag 'h2') |
Obtain the NEWS file Markdown headings ('##') for a list of packages
with pkgHeadings
which calls headingsFormat
recursively.
It is useful to see whether there is consistency in the headings
corresponding to the 'Changes in version' line in the NEWS.md file
headerCase
uses the vpattern
input to replace any differently
formatted NEWS.md heading, e.g. CHANGES IN VERSION
to
Changes in version
where the differences are by case only.
updateHeading
Increases the Markdown HTML h1 tags to h2 tags with the
option (bumpHeaders = TRUE
) to bump all the headers for the remaining
sub-headers in order to maintain hierarchy, e.g., h2 to h3.
## Not run: pkgHeadings( c("MultiAssayExperiment", "curatedTCGAData", "TCGAutils", "cBioPortalData", "SingleCellMultiModal", "RTCGAToolbox", "RaggedExperiment") ) headingsFormat("curatedTCGAData", "Changes in version") headerCase("RTCGAToolbox") updateHeading("cBioPortalData") ## End(Not run)
## Not run: pkgHeadings( c("MultiAssayExperiment", "curatedTCGAData", "TCGAutils", "cBioPortalData", "SingleCellMultiModal", "RTCGAToolbox", "RaggedExperiment") ) headingsFormat("curatedTCGAData", "Changes in version") headerCase("RTCGAToolbox") updateHeading("cBioPortalData") ## End(Not run)
This function will take an existing NEWS.md file and convert it to pkgdown readable format. The former format should have headings that begin with
CHANGES for 'CHANGES IN VERSION'
'New' for 'New features'
'Bug' for 'Bug fixes and minor improvements'
These headings usually begin with 'h2' headers or double hashtag. An n-1 operation is performed on these headings (if the heading had two hashtags 'h2', they are now converted to one hashtag 'h1').
reformat(pkg = ".", backup = ".bak")
reformat(pkg = ".", backup = ".bak")
pkg |
character(1) The directory location of the package usually the current directory (default: ".") |
backup |
character(1) The file extension to add for backing up the original news file (default: '.bak') |
Saves a "NEWS.md" file with alternative format
Some 'NEWS.md' files have the package name in the heading. This is not yet supported in the 'collect' code. This convenience function will help the user modify those headings to exclude the package name and include the keywords 'Changes in version' for aggregating news files across packages. Version control of the NEWS files is highly recommended. By default, the function saves a '*.bak' backup NEWS file in the package directory.
rename(pkg, backup = ".bak", dry.run = TRUE)
rename(pkg, backup = ".bak", dry.run = TRUE)
pkg |
character(1) The directory location of the package usually the current directory (default: ".") |
backup |
character(1) The file extension to add for backing up the original news file (default: '.bak') |
Saves a "NEWS.md" file with substituted headers
# create phony DESC for usethis # otherwise temp 'package' is not recognized desc <- usethis:::build_description( basename(tempdir()), roxygen = TRUE, fields = list() ) lines <- desc$str(by_field = TRUE, normalize = FALSE, mode = "file") usethis:::write_over( file.path(tempdir(), "DESCRIPTION"), lines, quiet = TRUE ) tempNews <- file.path(tempdir(), "NEWS.md") writeLines("# TempPackage 0.99.0", con = file(tempNews)) rename(pkg = tempdir()) readLines(tempNews)
# create phony DESC for usethis # otherwise temp 'package' is not recognized desc <- usethis:::build_description( basename(tempdir()), roxygen = TRUE, fields = list() ) lines <- desc$str(by_field = TRUE, normalize = FALSE, mode = "file") usethis:::write_over( file.path(tempdir(), "DESCRIPTION"), lines, quiet = TRUE ) tempNews <- file.path(tempdir(), "NEWS.md") writeLines("# TempPackage 0.99.0", con = file(tempNews)) rename(pkg = tempdir()) readLines(tempNews)
This function will add a package name line to the current NEWS file and write a NEWS.md file for viewing on GitHub. Future iterations will simplify formatting changes to the NEWS file so that it can be converted to a markdown file. Current files should have markdown syntax in the NEWS file.
translate(pkg = ".", overwrite = FALSE)
translate(pkg = ".", overwrite = FALSE)
pkg |
character(1) The directory location of the package usually the current directory (default: ".") |
overwite |
logical(1) Whether to overwrite the existing NEWS.md file (default: FALSE) |
Saves a file with the name "NEWS.md" in the package directory
The NEWS file contains version information that can be parsed and checked against the package version in the DESCRIPTION file.
validate(pkg, vpattern = "Changes in version")
validate(pkg, vpattern = "Changes in version")
vpattern |
character(1) The 'grep' input for searching the versioning line in the NEWS files. This usually starts with 'Changes in version' but may differ. |
## Not run: validate("MultiAssayExperiment") validate("RaggedExperiment") ## End(Not run)
## Not run: validate("MultiAssayExperiment") validate("RaggedExperiment") ## End(Not run)