【问题标题】:sharing ruby code within an organisation在组织内共享 ruby​​ 代码
【发布时间】:2009-06-16 08:09:18
【问题描述】:

我和我的团队开始构建一些可重复使用的脚本。仅当它们与专有应用程序和我们特定的服务器环境一起使用时,它们才能在我们的组织中重复使用。所以不太适合rubyforge或者github等。

我的问题是,确保我们在所有用户中都使用最新最好的脚本的最佳做法是什么?我们几乎在一台服务器上运行这些脚本,但可能需要扩展到其他服务器。

我们是否应该将它们捆绑到 gem 中并启动一个私有 gem 服务器?

或者更简单的东西,比如一个通用的、可共享的 lib 目录。也许使用脚本从我们的 SCM 下载/更新?

其他想法?

谢谢....

【问题讨论】:

    标签: ruby rubygems jruby


    【解决方案1】:

    这取决于一些因素,比如有多少人想要更改代码(只有你的团队,或者其他人),或者你有多少钱?

    我个人会创建一个 build+gem 服务器,您可以在其中使用一些版本控制系统(如 git 或 svn,取决于有多少人在项目上工作)上传脚本,然后创建一个 cron 作业,即将以通用间隔自动从源生成 gem 并将它们存储为不同的版本。通过这种方式,您可以确保始终拥有存储应用程序 gem 的授权服务器,并且如果出现问题,您始终可以获得早期版本。您的脚本可能会创建单独的 gem 版本名称,例如“appserv-edge”或“appserv-stable”

    如果您有钱,您可能还想查看 github 的封闭源代码选项。但是我不知道他们是否有用于非开源程序的 gem 构建和托管设施。

    【讨论】:

      【解决方案2】:

      我创建了一个私人 gemserver,这非常容易。唯一棘手的一点是决定您希望用户如何上传 gem。就个人而言,我只是使用 PHP 上传表单,并让它检查以确保它没有掩盖任何现有的 gem。

      【讨论】:

        【解决方案3】:

        在我的办公室,我们对一些共享脚本和库使用了一些混合方法。我们确实将它们全部捆绑到一个 gem 中,但我们没有使用 gem 服务器,而是将它们保存在源代码控制中,然后构建 gem(使用 newgem)并根据需要在本地安装它。

        这种方法的缺点是它需要两个命令而不是一个来安装 gem,但是这在 qa 和生产环境中很大程度上得到缓解,因为我们使用 Capistrano 进行部署。

        好处是它非常简单,而且在开发过程中,如果您正在处理需要更改 gem 的东西,那么编辑/构建/部署周期非常短。我目前正在将许多常见功能引入共享 gem,所以我非常欣赏这方面。

        【讨论】:

          猜你喜欢
          • 2022-01-17
          • 1970-01-01
          • 2015-08-04
          • 2015-10-15
          • 1970-01-01
          • 2017-07-03
          • 2014-02-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多