如何自动执行发布开源软件的任务?

时间:2021-12-07 13:10:50

Everyone managing open-source-software runs into the problem, that with the time the process of releasing a new version gets more and more work. You have to tag the release in your version-control, create the distributions (that should be easy with automated builds), upload them to your website and/or open-source-hoster. You have to announce the new release with nearly the same message on chosen web-forums, the news-system on sourceforge, mailinglists and your blog or website. And you have to update the entry of your software on freshmeat. Possible more tasks have to be done for the release.

管理开源软件的每个人都遇到了问题,随着发布新版本的过程越来越多,工作越来越多。您必须在版本控制中标记版本,创建分发(使用自动构建应该很容易),将它们上传到您的网站和/或开源托管服务商。您必须在选定的网络论坛,sourceforge上的新闻系统,邮件列表以及您的博客或网站上宣布新版本的消息几乎相同。而且您必须在freshmeat上更新软件的条目。可能需要为发布完成更多任务。

Do you developed techniques to automate some of these tasks? Does software exist that supports you with this?

您是否开发了自动执行某些任务的技术?是否存在支持此功能的软件?

3 个解决方案

#1


1  

Pragmatic Project Automation shows how to do all of that. They use Ant for practically everything in the book, so if you know Ant you can make different targets to do any step in the build-release cycle.

务实的项目自动化展示了如何做到这一切。他们几乎将书中的所有内容都用于Ant,所以如果你了解Ant,你可以制定不同的目标来完成构建发布周期中的任何步骤。

#2


1  

For my Perl stuff, I wrote Module::Release. In the top-level directory I type a single command:

对于我的Perl,我写了Module :: Release。在*目录中,我输入一个命令:

% release

If checks several things and dies if anything is wrong. If everything checks out, it uploads the distribution.

如果有什么不对的话,检查几件事情就会死如果一切都结束,它会上传分发。

It automates my entire process:

它使我的整个过程自动化:

  • Test against multiple versions of Perl
  • 针对多个版本的Perl进行测试

  • Test distribution files
  • 测试分发文件

  • Check the status of source control
  • 检查源控件的状态

  • Check for code and distribution quality metrics
  • 检查代码和分发质量指标

  • Update changes file
  • 更新更改文件

  • Determine new version number
  • 确定新版本号

  • Release code to multiple places
  • 将代码发布到多个地方

  • Tag source control with new version number
  • 使用新版本号标记源代码控制

Everyone seems to write their own release automator though. Most people like their process how they like their process, so general solutions don't work out that well socially.

每个人似乎都在编写自己的发布自动机。大多数人都喜欢他们的流程,他们喜欢他们的流程,所以一般的解决方案在社交方面做得不好。

#3


1  

Brad Fitzpatrick has ShipIt which is a Perl program to automate releases. There's slightly more info in his original announcement.

Brad Fitzpatrick拥有ShipIt,这是一个自动发布的Perl程序。他的原始公告中有更多信息。

#1


1  

Pragmatic Project Automation shows how to do all of that. They use Ant for practically everything in the book, so if you know Ant you can make different targets to do any step in the build-release cycle.

务实的项目自动化展示了如何做到这一切。他们几乎将书中的所有内容都用于Ant,所以如果你了解Ant,你可以制定不同的目标来完成构建发布周期中的任何步骤。

#2


1  

For my Perl stuff, I wrote Module::Release. In the top-level directory I type a single command:

对于我的Perl,我写了Module :: Release。在*目录中,我输入一个命令:

% release

If checks several things and dies if anything is wrong. If everything checks out, it uploads the distribution.

如果有什么不对的话,检查几件事情就会死如果一切都结束,它会上传分发。

It automates my entire process:

它使我的整个过程自动化:

  • Test against multiple versions of Perl
  • 针对多个版本的Perl进行测试

  • Test distribution files
  • 测试分发文件

  • Check the status of source control
  • 检查源控件的状态

  • Check for code and distribution quality metrics
  • 检查代码和分发质量指标

  • Update changes file
  • 更新更改文件

  • Determine new version number
  • 确定新版本号

  • Release code to multiple places
  • 将代码发布到多个地方

  • Tag source control with new version number
  • 使用新版本号标记源代码控制

Everyone seems to write their own release automator though. Most people like their process how they like their process, so general solutions don't work out that well socially.

每个人似乎都在编写自己的发布自动机。大多数人都喜欢他们的流程,他们喜欢他们的流程,所以一般的解决方案在社交方面做得不好。

#3


1  

Brad Fitzpatrick has ShipIt which is a Perl program to automate releases. There's slightly more info in his original announcement.

Brad Fitzpatrick拥有ShipIt,这是一个自动发布的Perl程序。他的原始公告中有更多信息。