Reverting back to avoid precompile errors?

That functionality already exists: If you keep your old Manifest.toml around and only instantiate it, pinning all versions to their original ones and don’t update, old code will still work as it originally did (provided you’re using the same julia version). Manifest.toml has as its sole purpose to record package versions.

A dependency is a dependency for a reason: The package requires functionality provided by it. Since the smallest unit of encapsulation is a julia package, there is no smaller part that could be reasonably swapped out for something else - it’s a whole version or no version. There’s no mixing between versions of the same package.

If all dependencies are properly versioned, package versions should only be able installable with working versions. If some sub-dependency fails to precompile, something has gone wrong during that version tagging process.

I don’t understand though why neither combination works for you. Are you certain those two are the versions actually installed & pinned? Do you have any other packages in those environments? Can you try two empty environments with both combinations of packages?

1 Like