小ネタです。

自分で簡単なパッケージを作っている時に、Project.toml内のversionの情報を取りたくなったので。

プロジェクト情報はPkg.project()で取得できます。 ドキュメントにはJulia 1.4以上が必要で、この機能はexperimentalとありました。

julia> using Pkg

julia> pj = Pkg.project()
Pkg.Types.ProjectInfo("RunOut", UUID("03328d24-db5d-422f-afe8-b99de72c82b3"), v"0.1.0", true, Dict{String,Base.UUID}("JSON" => UUID("682c06a0-de6a-54ab-a142-c8b1cf79cde6"),"HTTP" => UUID("cd3eb016-35fb-5094-929b-558a96fad6f3")), "/juliatmp/Project.toml")

バージョン取得は

julia> pj.version
v"0.1.0"

julia> typeof(pj.version)
VersionNumber

でできて、Base.VersionNumberが返ってきます。

julia> String(pj.version)
ERROR: MethodError: no method matching String(::VersionNumber)
Closest candidates are:
  String(::String) at boot.jl:321
  String(::Array{UInt8,1}) at strings/string.jl:39
  String(::Base.CodeUnits{UInt8,String}) at strings/string.jl:77
  ...
Stacktrace:
 [1] top-level scope at REPL[16]:1

文字列に変換するには、Stringではなく$を使えばいいのかな。

julia> "$(pj.version)"
"0.1.0"

julia> typeof("$(pj.version)")
String