Note that Pkg.checkout accepts an optional branch argument:
help?> Pkg.checkout checkout(pkg, [branch="master"]; merge=true, pull=true) Checkout the Pkg.dir(pkg) repo to the branch branch. Defaults to checking out the "master" branch. To go back to using the newest compatible released version, use Pkg.free(pkg). Changes are merged (fast-forward only) if the keyword argument merge == true, and the latest version is pulled from the upstream repo if pull == true.
So you can do Pkg.checkout("MyPackage", "v0.6.0") . To ensure that the modules are reloaded, the workspace() function may be useful; or a new Julia process can be performed for each version of the package.
source share