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

Julia 开发扩展包

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

由 陈 创建, 最后一次修改 2016-08-12 开发扩展包Julia 中设有包管理器,当你安装了扩展包时,你可以看到它的源代码和完整的开发历史。你也可以修改扩展包,并使用 git 提交它们,为修复和增加扩展包功能做贡献。相似地,这个系统设计用来当你想要创建一个新扩展包时,最简单的方法就是利用包管理器中提供的基础设施。 初始化设置由于扩展包存储于 git 仓库中,所以在做扩展包开发之前,你需要先设置如下全局 git 配置: $ git config --global user.name "FULL NAME" $ git config --global user.email "EMAIL"FULL NAME 是你真实的全名(双引号之间允许有空格)并且 EMAIL 是你真实的邮箱地址。尽管创建和发布 Julia 扩展包时使用 GitHub 并不是必要的,然而大多数 Julia 扩展包都存在 GitHub 上并且包管理器知道如何正确地格式化源 URL,并在其他方面上顺利的使用服务。我们建议你创建一个免费账号 在 GitHub 上然后做: $ git config --global github.user "USERNAME"在这里 USERNAME 是你 GitHub 上正确的用户名。只要你做了这一点,包管理器就知道你的 GitHub 用户名然后可以配置相关事项。你还需要上传 你的 SSH 公钥到 GitHub 上并设置一个 SSH 代理在你的开发机器上,这样你可以最简单的推送你的修改。在将来,我们会让这个系统具有扩展性,支持更多其它的常见 git 工具例如 BitBucket 并且允许开发者选择他们所喜欢的。生成新扩展包假如你想创建一个新的 Julia 扩展包,名为 FooBar。首先,你需要 Pkg.generate(pkg,license),其中 pkg 是新扩展包的名字并且 license 是生成器知晓的许可的名字: julia> Pkg.generate("FooBar","MIT") INFO: Initializing FooBar repo: /Users/stefan/.julia/v0.3/FooBar INFO: Origin: git://github.com/StefanKarpinski/FooBar.jl.git INFO: Generating LICENSE.md INFO: Generating README.md INFO: Generating src/FooBar.jl INFO: Generating test/runtests.jl INFO: Generating .travis.yml INFO: Committing FooBar generated files这样创建了一个目录 ~/.julia/v0.3/FooBar,将它初始化为一个 git 仓库,生成所有包需要有的一系列文件,并把它们提交到仓库: $ cd ~/.julia/v0.3/FooBar && git show --stat commit 84b8e266dae6de30ab9703150b3bf771ec7b6285 Author: Stefan Karpinski <stefan@karpinski.org> Date: Wed Oct 16 17:57:58 2013 -0400 FooBar.jl generated files. license: MIT authors: Stefan Karpinski years: 2013 user: StefanKarpinski Julia Version 0.3.0-prerelease+3217 [5fcfb13*] .travis.yml | 16 +++++++++++++ LICENSE.md | 22 +++++++++++++++++++++++ README.md | 3 +++ src/FooBar.jl | 5 +++++ test/runtests.jl | 5 +++++ 5 files changed, 51 insertions(+)此时,包管理器知道 MIT "Expat" 证书用 "MIT" 表示,Simplified BSD 证书用 "BSD" 表示,2.0 版本的 Apache 软件证书用 "ASL" 表示。如果你想要使用不同的证书,你可以让我们把它添加到扩展包生成器上,或者就选这三者之一然后在生成之后修改 ~/.julia/v0.3/PACKAGE/LICENSE.md 文件。 如果你创建了一个 GitHub 账户并且配置了 git,Pkg.generate 将会设置一个合适的源 URL 给你。它还会自动生成 .travis.yml 文件来使用 Travis 自动测试服务。你可以在 Travis website 上测试你的扩展包仓库,但是只要你做了这个它就已经开始测试了。当然,所有的默认测试是查证 using FooBar 能否在 Julia 上工作。 使你的扩展包具有可用性只要你提交了一些内容,那么你会为测试 FooBar 是否可以工作而感到高兴,你可能想要一些其他人来测试一下。首先,你需要创建一个远程仓库并把你的代码推送进去;我们不会自动的为你做这件事,但是未来将会,这配置起来并不难[3]。只要你完成了这个,只需将发布的仓库的 URL 发给他们就可以请让他们来试一下你的代码 - 像这样: git://github.com/StefanKarpinski/FooBar.jl.git对于你的扩展包而言,它将具有你的 GitHub 用户名和你的扩展包名,但是你明白是什么意思。收到你发的 URL 的人们可以使用 Pkg.clone 来安装扩展包并测试它: julia> Pkg.clone("git://github.com/StefanKarpinski/FooBar.jl.git") INFO: Cloning FooBar from git@github.com:StefanKarpinski/FooBar.jl.git[3]: 极度推荐安装并使用 GitHub 的 "hub" 工具。它允许你在扩展包仓库中像运行 hub create 那样做事,然后它会通过 GitHub 的 API 自动创建。发布你的扩展包一旦你决定 FooBar 已经准备好注册成为一个官方正式扩展包,你可以把它添加到你的本地 METADATA 的拷贝,并命名为 Pkg.register: julia> Pkg.register("FooBar") INFO: Registering FooBar at git://github.com/StefanKarpinski/FooBar.jl.git INFO: Committing METADATA for FooBar这会在 ~/.julia/v0.3/METADATA 仓库中创建一次提交: $ cd ~/.julia/v0.3/METADATA && git show commit 9f71f4becb05cadacb983c54a72eed744e5c019d Author: Stefan Karpinski <stefan@karpinski.org> Date: Wed Oct 16 18:46:02 2013 -0400 Register FooBar diff --git a/FooBar/url b/FooBar/url new file mode 100644 index 0000000..30e525e --- /dev/null +++ b/FooBar/url @@ -0,0 +1 @@ +git://github.com/StefanKarpinski/FooBar.jl.git然而,这次提交只是本地可见的。为了能将它公诸于世,你需要将你的本地 METADATA 上传到正式库中合并。Pkg.publish() 命令将在 GitHub 上创建 METADATA 仓库的分支,并将你的修改提交到分支上,并打开一个拉取请求: julia> Pkg.publish() INFO: Validating METADATA INFO: No new package versions to publish INFO: Submitting METADATA changes INFO: Forking JuliaLang/METADATA.jl to StefanKarpinski INFO: Pushing changes as branch pull-request/ef45f54b INFO: To

[1] [2]  下一页


Julia 开发扩展包