version-control - 生产环境中的 Julia 包版本控制

标签 version-control julia

如果你想在生产环境中使用它,你如何在 Julia 中进行版本控制。也就是说,大多数 Julia 包和 Julia 本身都有 0.3.10 或类似的版本号,因此您应该为(不久的)将来的重大接口(interface)更改做好准备,尤其是当第一位数字从 0 翻转到 1 时。

我的包裹状态如下所示:

julia> Pkg.status()
4 required packages:
 - DataFrames                    0.6.9
 - Gadfly                        0.3.13
 - Jewel                         1.0.5
 - Mongo                         0.1.3
44 additional packages:
 - ArrayViews                    0.6.3
 - BinDeps                       0.3.15
 - Calculus                      0.1.10
 - Codecs                        0.1.4
 - Color                         0.4.7
 - Compat                        0.6.0
 - Compose                       0.3.13
 - Contour                       0.0.7
 - DataArrays                    0.2.17
 - DataStructures                0.3.12
etc...

建议您使用Pkg.update()通常,您的所有软件包上都有最新的补丁。

如果你因为这些补丁需要更新一个包或者你需要使用一个新特性,你可能会破坏你的代码,并且各个包之间也可能存在依赖关系。

Julia 可能是一种足够成熟的语言,没有严重的版本控制问题,但我觉得有必要就 Julia 用户的体验进行民意调查。

最佳答案

在生产环境中你不应该使用 Pkg.update()通常,或者至少在没有首先在非生产环境中进行测试的情况下。对于每个包装系统都是如此,而不仅仅是 Julia。
特别是对于 Julia,我还建议建立一组适合您的版本,然后在 REQUIRE 中使用适当的下限和上限。文件。

例如,假设 JuMP 0.9.2 和 Gadfly 0.4.2 一样适合我。我可能会在 ~/.julia/v0.3/REQUIRE 中执行以下操作:

JuMP 0.9.2 0.10
Gadfly 0.4.2 0.5

这样,如果我运行 Pkg.update()我会得到0.9.30.4.3如果他们出来了,但我不会自动升级到JuMP 0.10 .当然,这只有在您信任软件包维护者明智地使用版本号时才有效,这是一个严重的问题,尤其是当它们是 1.0 之前的版本时。 .

关于version-control - 生产环境中的 Julia 包版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255002/

相关文章:

time - 如何在 Julia 中以 "H:M:S.s"格式打印 3600.125 秒

git - 小提交消息还是大提交消息?

git - 使用 Git 管理大型二进制文件

julia - Julia 中不可变对象(immutable对象)的地址

Julia - 检查浮点值是否为整数

parallel-processing - 如何在第一个函数运行时调用第二个函数,反之亦然?

git - 使用git merge 两个文件夹

git - 为什么基于 merge 的 SCM 优于基于锁的系统?

version-control - TFS 2008,从源代码管理中删除文件但将其保留在项目中

terminal - Jupyter 笔记本中的 Julia .jl