Bumping package version after Artifact update

If I update the source of the artifact (.tar.gz file in another repo) that the package depends upon, do I need to bump the package version? Or will the artifact system automatically see, that the source has changed and will redownload the artifact?

_jll has versions too as long as the comp in Project.toml allows you don’t have to bump anything manually?

@jling I don’t think jll packages are relevant here at all, the question seems to be about artifacts.

@Gregstrq yes, you need to update Artifacts.toml with the new URL and hash of the artifact. If the URL stays the same and the content changes, then old versions of the package would fail - please don’t do that! After updating Artifacts.toml, you do need to update Project.toml as well, releasing a new package version.

1 Like

The url stays the same, but the contents will change. Do I understand correctly that the older version would fail because the sha key is changed when the content is altered?

@aplavin How can I change url? Tag the repo with artifact source and bump the tag when I update tge contents?

Yes: the old version would download the archive, check its sha vs Artifacts.toml, and fail because these hashes don’t match.

It depends on where you host it. Check the service documentation on how to put the new archive at a different url.

since _jll uses artifact mechanism I was guessing there’s a change they are referring to the artifact we download for _jll

I host it in another githab repo.

That’s a terrible practice, it makes things unreproducible, please refrain from doing it. URLs should be versioned and persistent, the content they point to should never, ever, change.


My artifact sits in another github repo.

How precisely do I do it with github repo? Do I need to tag different versions? Do I need to setup Artifact.toml with github permalink? Will permalink change when I push new commits?

The file in question is about 2.5 MB large, in compressed form only 310 KB. Why not make it directly a part of your package?

Because Pkg docs point out that data files should be loaded up as Artifacts. It is what Artifacts were designed for.