A while back, I started to create an R package that would help me and my collegues at STATWORX with our daily work. After writing the
DESCRIPTION file, I did not want to do this ever again. I found the
desc package which let's you parse, manipulate and reformat this file via some functions and ergo a script. If you want more info on that, check out their github. However, I was too lazy still, because I had to manually write the
I longed for the functionality of editing the
NEWS file in the same script I built for the
DESCRIPTION file. Since I could not find anything – and already was in a mood for programming – I wrote one my self. In this blog post, I will briefly explain what the package does.
The main part of the package is the
news object, which is an R6 class object and contains the text for the
NEWS.md file. You can add versions, subtitles and bullet points to it via the object's methods.
Initialise a new object
To initialise a new object you can use two different ways:
# install.packages("devtools") devtools::install_github("Dschaykib/newsmd") library(newsmd) my_news <- news$new() my_news <- newsmd()
The default text contains markdown code and looks like this:
## version 0.0.0.9000 --- ### setup - added NEWS.md creation
Adding a the next version
add_version you can update the version number.
Adding a new subtitle
add_subtitle you can add a new subtile, where the follwoing bullet points will be under.
Adding more bullets
add_bullet you can add more bullet points to the latest version and latest subtitle.
my_news$add_bullet(c("this is point 1", "this is point 2"))
Getting the whole text
After these fews changes, let's see how the file looks. The
get_text method will return each single line of the file. Alternativly you can just use
my_news$get_text()  "## version 0.0.1"  ""  "---"  ""  ""  "### Bugfixes"  ""  "- this is point 1"  "- this is point 2"  ""  ""  "## version 0.0.0.9000"  ""  "---"  ""  "### setup"  ""  "- added NEWS.md creation"  ""
Writing the NEWS.md file
At last, with
write you can save all your changes into the
Combination with the
The goal of this package is to update the
NEWS.md file in addition to the
DESCRIPTION file. To optimize the workflow I suggest the
desc package. For example instead of manually defining the version number, you can use
get_version() of the
my_desc$bump_version("patch") my_news$add_version(my_desc$get_version()) my_news$add_bullet("added automated creation for DESCRIPTION and NEWS.md")
The full example script I used for my other package, can be found here.
I hope this little package will be of help to some of you. If you find some bugs or have ideas that would improve the usage and functionality, I would be pleased if you let me know on my Github.