I have just tested Julia1.8, the first minor version after the changes in Manifest.toml of 1.7 and got a bit surprised that it activated my 1.7-made project without even a warning.
I admit I didn’t follow the discussions concerning this issue, but as first idea I think there should be at least a warning if not an error with a message like “Activation of Project at /foo/goo failed. The project has been created using Julia 1.7.1. Either activate it using Julia 1.7.1 or pass the parameter
strict=false to the activation call.”
The idea is that this would guarantee replicability, not only at the level of the packages but also of Julia itself…
I’m not sure what you mean but isn’t each Project.toml is allowed to contain a compat field for the julia version?
The Project.toml would specify which version(s) my program can work with, but it shouldn’t be used to provide which exact version has been used. That’s the task of the Manifest.toml file.
When I developed a project and I want to present the results (a scientific paper or a customer…) I don’t use the Project.toml, but the Manifest.toml.
Pkg will warn when instantiating a manifest from a different julia version, but not when activating it.
Early on in the design process for the new manifest stuff it did, but it was considered to be too noisy. My first impression from reconsidering it here is that I agree that it does make sense for activate to warn too.
It may be worth opening a Pkg issue to capture the idea