我无法确定更新github上我的R软件包版本号的工作流程,以避免错误地命名为"中间"版本.这就是我现在所做的.
这个问题是,如果有人(比方说我)在我做了一些修复之后从github下载但是在我碰到版本之前,他们认为他们拥有的版本是1.0.0(因为这仍然是描述中的内容) )但它真的有1.0.0和1.0.1之间的东西.
这样的事情似乎在" 是否有可能使用git/github添加版本号 "的问题中进行讨论,其中R不是特定的,所以我不知道它是否在谈论同样的事情或者如何无论如何,这将为R实施.
还有一个问题是" 自动增加R软件包的版本 ",它有一个自动更新它的答案,虽然在评论中,我们看到Hadley"基本上不会出售自动增加版本的好处"(https:// github. com/hadley/devtools/issues/501).那里的代码也取决于Make所以不是跨平台的.
我强烈建议遵循Git Flow分支模型,其中:
master分支包含最新稳定版本的代码.使用版本格式x.y.zdevelop分支包含正在开发的代码.使用版本格式x.y.z-9000让我们master成为GitHub上的默认结帐分支.这样,当用户使用以下命令安装R软件包时,用户将始终获得最新版本:
install_github("owner/repos")
Run Code Online (Sandbox Code Playgroud)
希望安装开发人员版本的用户可以使用:
install_github("owner/repos@develop")
Run Code Online (Sandbox Code Playgroud)
接下来,如果你的包也在CRAN上,那么要严格并且master反映出CRAN上究竟是什么.这样,无论用户是否使用,用户都会安装相同的相同包版本:
install.packages("repos")
Run Code Online (Sandbox Code Playgroud)
要么
install_github("owner/repos")
Run Code Online (Sandbox Code Playgroud)
这样人们也可以看到相同的信息,无论他们访问您的CRAN页面还是您的GitHub页面.此外,您可以放心,所有用户都会看到相同的稳定信息/版本,即使您标记更新develop(只有精明的用户才会知道这个分支).
接下来,当您发布新版本时,您可以git tag使用其版本号,例如
git checkout master
git tag 1.2.3
git push --tags
Run Code Online (Sandbox Code Playgroud)
这样,用户可以安装他们喜欢的任何版本,例如
install_github("owner/repos@1.2.3")
Run Code Online (Sandbox Code Playgroud)
这个工具?所述git flow扩展是编排以上,例如一个真棒工具
git checkout develop
git flow release start 1.2.4
emacs DESCRIPTION ## Update version x.y.z-9000 -> x.y.z+1
R CMD build ...
R CMD check ...
git flow release finish 1.2.4
git checkout master
git push
git push --tags
git checkout develop
emacs DESCRIPTION ## Bump version to x.y.(z+1)-9000
git commit -am "Bump develop version [ci skip]"
git push
Run Code Online (Sandbox Code Playgroud)
我已经每天使用上面的两年了 - 我无法想象不使用它.
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |