Julia is started and some packages are imported as part of an editing environment (e.g. IJulia, Atom etc.) or from the startup file. These imports happen in some (Julia) environment (possibly the default) with its set of package versions for direct and indirect dependencies.
A different environment is activated. This might have different package versions in its manifest than the first environment had because the compat requirements makes it necessary to resolve to a different set of versions.
Some package is imported in the new environment. In case this package or one of its dependencies was already loaded in step 1, that will be reused since Julia can only have one version of a given package loaded in the same process. However, if that was of a different version than we wanted to load this time, we wonāt have the code we intended and if there were breaking changes between the versions things might, well, break.
Actually Revise has very few non-stdlib indirect dependencies but if Requires or OrderedCollections ever get breaking updates, things might get ugly.
The using JuliaFormatter step at the start is crucial. Since JuliaFormatter depends on CommonMark, which depends on JSON which claims to be and truly is compatible with Parsers versions 1 and 2, Iām not sure where to lay blame here. Truthfully, JuliaFormatters and Parsers should have to be recompiled once Parsers was downgraded or CSV should see a different Parsers to JuliaFormatter (which is stated non-policy, as far as I remember).
Is there documentation/precedent for how this is handled?
Dear All, I canāt understand any of thisā¦ I just canāt load CSV. I donāt need/want to know why it is failing, but I will not be able to use Julia until this is fixed and I can run
The solution suggested by @GunnarFarneback is more general, however a very Atom-specific work-around is to add CSV to the base environment and then restarting Atom. The dependencies of CSV are then incorporated early enough in the initiation process not to cause problems. After that it works fine to activate other environments and adding CSV to them as needed.