当前位置:K88软件开发文章中心编程语言非主流编程语言Julia → 文章内容

Julia 开发扩展包

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 16:28:30

create a pull-request open: https://github.com/StefanKarpinski/METADATA.jl/compare/pull-request/ef45f54b由于各种各样的原因 Pkg.publish() 有时并不会成功。在那些情况下,你可能在 GitHub 上做了一个拉取请求,这并不难。 只要 FooBar 扩展包的 URL 在正式 METADATA 仓库中注册,人们就知道从哪里克隆这个扩展包,但是这并没有一些注册过的版本可供下载。这意味着 Pkg.add("FooBar") 在只安装正式版本时并没有工作。Pkg.clone("FooBar") 没有一个指定的 URL 指向它。此外,当他们运行 Pkg.update(),他们将会得到你上传到仓库中最新版本的 FooBar。当你还在修改它,在它没有成为正式版之前这是一个比较好的方式测试你的扩展包。 扩展包版本号标签当你准备好为你的扩展包制作一个正式版本时,你可以使用 Pkg.tag 命令为它添加版本号并注册: julia> Pkg.tag("FooBar") INFO: Tagging FooBar v0.0.1 INFO: Committing METADATA for FooBar这个 v0.0.1 标签在 FooBar 仓库中: $ cd ~/.julia/v0.3/FooBar && git tag v0.0.1它也可以为 FooBar 在你的本地 METADATA 仓库中创建一个新的版本入口: $ cd ~/.julia/v0.3/FooBar && git show commit de77ee4dc0689b12c5e8b574aef7f70e8b311b0e Author: Stefan Karpinski <stefan@karpinski.org> Date: Wed Oct 16 23:06:18 2013 -0400 Tag FooBar v0.0.1 diff --git a/FooBar/versions/0.0.1/sha1 b/FooBar/versions/0.0.1/sha1 new file mode 100644 index 0000000..c1cb1c1 --- /dev/null +++ b/FooBar/versions/0.0.1/sha1 @@ -0,0 +1 @@ +84b8e266dae6de30ab9703150b3bf771ec7b6285如果在你的扩展包仓库中有一个 REQUIRE 文件,它将会在你标记版本时拷贝到 METADATA 中适当的位置。扩展包开发者们需要确定他们的扩展包中的 REQUIRE 文件确实反应他们扩展包的需求,如果你使用 Pkg.tag 命令,这将自动进入你的正式版。看 Requirements Specification 来了解完整格式的 REQUIRE。 Pkg.tag 命令有第二个可选参数是一个显示的版本号对象如 v"0.0.1" 或者一个标志 :patch,:minor 或者 :major。这会智能地添加你的扩展包的补丁、副本或者主版本号。 正如使用 Pkg.register,这些对于 METADATA 的修改不会对其它任何人可见直到这些修改被上传。再一次使用 Pkg.publish()命令行,它第一次使用的时候要确定每个独立的扩展包仓库已经被标记,如果它们没有被标记要提交它们,然后打开一个到 METADATA 的拉取请求: julia> Pkg.publish() INFO: Validating METADATA INFO: Pushing FooBar permanent tags: v0.0.1 INFO: Submitting METADATA changes INFO: Forking JuliaLang/METADATA.jl to StefanKarpinski INFO: Pushing changes as branch pull-request/3ef4f5c4 INFO: To create a pull-request open: https://github.com/StefanKarpinski/METADATA.jl/compare/pull-request/3ef4f5c4修改扩展包需求如果你需要修改一个已发布扩展包版本的注册需求,你只需要修改这个版本的 metadata 即可,这样可以保持相同的提交散列值 – 散列值与一个版本永久相关: $ cd ~/.julia/v0.3/METADATA/FooBar/versions/0.0.1 && cat requires julia 0.3- $ vi requires为了保持提交的散列值保持一致,需要检验仓库中的 REQUIRE 文件的内容是否与在 METADATA 中的在修改之后不匹配;这是不可避免的。尽管当你在 METADATA 中为之前版本的扩展包修改了需求,你仍需要在当前版本的扩展包中修改 REQUIRE 文件。 依赖关系在扩展包中的 ~/.julia/v0.3/REQUIRE 文件, REQUIRE 文件,和 METADATA 包 requires 文件使用一个简单的基于行的格式来显示需要安装的扩展包版本的范围。包 REQUIRE 和 METADATA requires 文件也需要包括扩展包兼容的 julia 的版本范围。这里是这些包如何被解析和解释的。 所有在 # 号后的内容被从行中剥离成为注释。如果出了空白什么都没有,那么这一行被忽略。如果剩下的都是非空字符,那么这一行是一个依赖关系,并且需要用空格分开每个单词。最简单的有可能的依赖关系是这一行只有扩展包的名字: Distributions这个依赖将被任何版本的 Distributions 扩展包满足。这个扩展包的名字可以紧随零活更多升序版本号之后,指明可以接受的那个扩展包的版本间隔。一个版本号开始一个间距,下一个是这个间距的结束,然后下一个又是一个新的开始,然后继续;如果出现了一个奇怪的版本号,那么任意更高的版本都将兼容;如果给出了一个相同的版本号,那么后一个是可以兼容的最高版本。举个例子,这一行: Distributions 0.10.1.0 及其之后的版本的 Distributions 都将被兼容。一个版本号以 - 作为后缀也允许任何相同前缀的发布版本兼容。例如: Distributions 0.1-兼容相同前缀的版本例如 0.1-dev 或 0.1-rc1,或 0.1.0 及其之后的任何版本。这个依赖条目: Distributions 0.1 0.2.5兼容从 0.1.0 起的任何版本,但是不包括 0.2.5。如果你想要表明任何 0.1.x 版本被兼容,你可以这样写: Distributions 0.1 0.2-如果你想要兼容在 0.2.7 之后的版本,你可以这样写: Distributions 0.1 0.2- 0.2.7如果一个依赖行以引导字符 @ 开始,这是一个系统依赖关系。如果你的系统匹配这些系统环境,依赖关系就会被包含,否则将被忽略。例如: @osx Homebrew将仅在操作系统是 OS X 时需要 Homebrew 扩展包。当前支持的系统环境包括: @windows @unix @osx @linux@unix 环境适应于所有的 UNIX 操作系统,包括 OS X, Linux 和 FreeBSD。在引导字符 @ 后添加 ! 表示否定的操作系统。例子: @!windows @unix @!osx第一个环境应用于任何系统除了 Windows ,第二个环境应用于任何 UNIX 系统除了 OS X。 运行时检查 Julia 的当前版本可以应用在内置 VERSION 变量,这是一种 VersionNumber。这些代码偶尔是必要的用来跟踪在发布的 Julia 版本之间的新功能或弃用的功能。运行时检查的例子: VERSION < v"0.3-" #exclude all pre-release versions of 0.3 v"0.2-" <= VERSION < v"0.3-" #get all 0.2 versions, including pre-releases, up to the above v"0.2" <= VERSION < v"0.3-" #To get only stable 0.2 versions (Note v"0.2" == v"0.2.0") VERSION >= v"0.2.1" #get at least version 0.2.1到 version number literals 查看跟过更完整的描述细节。

上一页  [1] [2] 


Julia 开发扩展包