Helps keep [compat]
entries in your Project.toml
up to date. Notifies when a [compat]
is absent or incompatible with the latest available version of the corresponding dependency.
Put the following lines to <your package>/test/runtests.jl
:
import CompatHelperLocal as CHL
CHL.@check()
Project.toml
content:
name = "TestPackage"
uuid = "fde2a2d7-f0f0-4afe-ab6c-a8c3d7349667"
authors = ["Alexander Plavin <alexander@plav.in>"]
version = "0.1.0"
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
Scratch = "6c6a2e73-6563-6170-7368-637461726353"
xxxPackageXXX = "6c6a2e73-6563-6170-7368-637461726355"
YYYPackageYYY = "6c6a2e73-6563-6170-7368-637461726354"
[compat]
Scratch = "0.1, 0.2"
xxxPackageXXX = "1.0"
CompatHelperLocal
output:
import CompatHelperLocal as CHL
CHL.@check()
┌ Warning: Project has issues with [compat]
│ project = "./test/test_package_dir/Project.toml"
└ @ CompatHelperLocal ~/.julia/dev/CompatHelperLocal/src/CompatHelperLocal.jl:141
┌ Info: [compat] missing
└ name = "CSV"
┌ Info: [compat] missing
└ name = "DataFrames"
┌ Info: [compat] missing
└ name = "OrderedCollections"
┌ Info: [compat] missing
└ name = "julia"
┌ Info: [compat] outdated
│ name = "Scratch"
│ compat = (val = VersionSpec("0.1-0.2"), str = "0.1, 0.2")
└ latest = v"1.0.3"
┌ Info: package in [deps] but not found in registries
└ name = "YYYPackageYYY"
┌ Info: package in [deps] but not found in registries
└ name = "xxxPackageXXX"
Suggested content:
[compat]
CSV = "0.8"
DataFrames = "0.22"
OrderedCollections = "1.4"
Scratch = "0.1, 0.2, 1.0"
xxxPackageXXX = "1.0"
julia = "1.6"
#
CompatHelperLocal.check
— Method.
check(m::Module) -> Bool
Check [compat] entries for package that contains module m
. Reports issues and returns whether checks pass.
#
CompatHelperLocal.check
— Method.
check(pkg_dir::String) -> Bool
Check [compat] entries for package in pkg_dir
. Reports issues and returns whether checks pass.
#
CompatHelperLocal.@check
— Macro.
Check [compat] entries for current package. Reports issues and returns whether checks pass. Can be called from the package itself, or from its tests.