There should be a guide for compat-block writing

This afternoon (time zone: east 8), I noticed several topics in JuliaCN, all asking about package using problems. I looked at the github repos and noticed that, although packages vary in (science) fields, they aren’t able to have an accurate [compat] block. And many old repo demos fail to act properly.

When I make packages myself, I don’t bother/have time to check details of dependencies either. I just use current version+a little analysis to write that block.

This problem might not seem surious currently, but combining packages will surely be difficult if this continues and package&sub-ecosystem&version amounts keep rising.

And this also contribute to discussion Why I no longer recommend Julia

So what the community probably need are:

  1. a standard to standardize necessary details of versioning ( for example, what do same-minor must ensure? ) and include it in official docs
  2. a package/tool/guide to check the finest way to write [compat] block
  3. a guide for 1. and 2.
1 Like

https://pkgdocs.julialang.org/dev/compatibility/

And every package should use CompatHelper. That solves the keeping up with compat issues.

1 Like

You know, that pkgdoc doesn’t standardize necessary details and CompatHelper requires too much resource (some packages are slow/huge, so I guess a tool/guide might be better).

? It’s free and instant.

See also GunnarFarneback/PackageCompatUI.jl.

2 Likes

I see, I guess the second problem might be solved (I’ll test these packages later).
But we do have 1 and 2, and the mission to fix old packages.

But it requires git(hub) action (which limits without paying), instead of developing locally for smooth human use.

It doesn’t limit at which you need to pay for open source repos: I’ve had it on hundreds of repos for years without paying, and it runs in about 30 seconds a few times a day. Yes it’s not local, but it’s free and instant.

Limit is high, though.

I guess many developers prefer using locally and/or it’s not quoted in docs, since I rarely see action-using in groups other than Juliaxxx, which are usually made up of the same group of (limited) people.

I also hope that some day CompatHelper would support local usage. Was really surprised to see that it’s not the case still!

In the meantime, I’ve made a small package Alexander Plavin / CompatHelperLocal.jl · GitLab (registered in General). It’s most convenient to put these lines:

import CompatHelperLocal as CHL
CHL.@check()

into your package tests. Then, every time the tests are run, it will check if all compats exists and are up-to-date. If not, it’ll suggest the compat section content to copy-paste into Project.toml.

7 Likes