R/bumpr.R

#' @title
#' Easy systematic version bumping and more
#'
#' @description
#' Makes it really easy to bump the version of an R package project placed 
#' under Git version control (see \url{http://git-scm.com}) to a new version 
#' number. 
#' 
#' @details 
#' Version numbers must follow the \emph{semantical versioning} conventions
#' (see \url{http://semver.org/}).
#' 
#' @section Classes and constructors:
#' 
#' \itemize{
#'    \item{\code{\link[bumpr]{GitVersion.S3}}: }{
#'    
#'      Constructor function for instances of class 
#'      \code{\link[bumpr]{GitVersion.S3}}
#'    }
#'    \item{\code{\link[bumpr]{RPackageVersion.S3}}: }{
#'    
#'      Constructor function for instances of class 
#'      \code{\link[bumpr]{RPackageVersion.S3}}
#'    }
#'    \item{\code{\link[bumpr]{SystemState.S3}}: }{
#'    
#'      Constructor function for instances of class 
#'      \code{\link[bumpr]{SystemState.S3}}.
#'      Used to track system states across function calls.
#'    }
#' }
#' 
#' @section Main functions/methods:
#' 
#'  \itemize{
#'    \item{\code{\link[bumpr]{bumpPackageVersion}}: }{
#'    
#'      Retrieves the current package version from the \code{DESCRIPTION} file,
#'      suggest the next version number and prompts the user for a new 
#'      version number. After asking permission, the new version number is 
#'      written to the \code{DESCRIPTION} file along with additional
#'      information provided via \code{desc_fields}. Currently, only 
#'      an element of form \code{Date = NULL} is allowed/used, which 
#'      corresponds to also updating the \code{Date} field of the 
#'      \code{DESCRIPTION} file. \code{desc_fields = list()} suppresses that.
#'          
#'      Essentially, this function is a mere convenience wrapper for the 
#'      actual workhorse function \code{\link[bumpr]{bump}} and its 
#'      method associated to class \code{Bumpr.RPackageVersion.s3}.
#'      
#'      In case anything goes wrong, the changes to \code{DESCRIPTION} are 
#'      automatically rolled back.
#'    }
#'    \item{\code{\link[bumpr]{bumpGitVersion}}: }{
#'    
#'      Performs all sorts of Git-related checks and tasks in order to take care
#'      that everything necessary is done that is related to bumping a project
#'      to a higher version number.
#'       
#'      This provided version number is transferred to \code{v{version-number}},
#'      e.g. \code{v0.1.1}, and added as a Git tag. 

#'      All commits linked to the \emph{previous} version/tag are queried and added
#'      to file \code{CHANGES.md}. Additionally, a template section to state the 
#'      changes in the \emph{new} version is added in file \code{NEWS.md}.
#'      
#'      Files \code{DESCRIPTION} and \code{CHANGES.md} are automatically 
#'      commited to signal the version bump.
#'      
#'      Per default, the function expects that you want to include a remote 
#'      repository in the version bump (default: `origin`). This can be any 
#'      valid Git remote repository, including a GitHub repository. 
#'      In this case the bump commit as well as the new version 
#'      (i.e. the new tag) are pushed to the remote repository as well. 
#'      You can, however, also choose to only work with your local Git 
#'      repository (**not recommended**). Simply answer the first question 
#'      accordingly.
#'      
#'      Essentially, this function is a mere convenience wrapper for the 
#'      actual workhorse function \code{\link[bumpr]{bump}} and its 
#'      method associated to class \code{Bumpr.GitVersion.s3}.
#'      
#'      In case anything goes wrong, all changes made up to this point are
#'      automatically rolled back.
#'    }
#'    \item{\code{\link[bumpr]{bump}}: }{
#'    
#'      The actual workhorse function of this package. Introduced in order to 
#'      generalize the package's purpose and scope to other aspects than 
#'      version bumping only. 
#'      
#'      The long-term goal of this package is to provide a simple interface
#'      to all sorts of things "that can be bumped".
#'    }
#' }
#' 
#' @section Disclaimer:
#' 
#' \itemize{
#'    \item{
#'    \strong{This package is really new. So please test it with 
#'    repositories that are not crucial for your productive work!}
#'    }
#' }
#' 
#' @section Inspiration and aknowledgements:
#' This package was greatly inspired by these ressources:
#' \itemize{
#'    \item{\url{http://nvie.com/posts/a-successful-git-branching-model/}: } {
#'      A very thorough and well designed branching model.
#'    }
#'    \item{\url{https://gist.githubusercontent.com/pete-otaqui/4188238/raw/9675e75948294fd3b05186f30af6ff97e7e9e47e/bumpversion.sh}: } {
#'      Bash script for Git version bumping.
#'    }
#'    \item{\url{http://stackoverflow.com/questions/18648737/use-r-to-push-local-repo-to-github-on-windows}: } {
#'      Description of how to access GitHub repositories via R using HTTP
#'      authentication.
#'    }
#'    
#' }
#' 
#' @template author
#' @template references
#' @docType package
#' @name bumpr
#' @seealso \url{http://git-scm.com}, \url{https://github.com/}
NULL
rappster/bumpr documentation built on May 26, 2019, 11:09 p.m.