virtualgo v0.7.0 Release Notes

Release Date: 2017-09-04 // about 4 years ago
  • ๐Ÿš€ First of all if you don't know what vg is yet, just check the README, which is much more informative in that case. Otherwise these release notes contain the changes to the previous major release of vg that you should know about.

    โฌ†๏ธ How to upgrade

    go get -u

    โšก๏ธ Afterwards, restart all your shells to make sure it's using the updated version.

    ๐Ÿ”„ Changes

    ๐Ÿ‘ bindfs support

    ๐Ÿšš The main cause of issues with vg is its usage of symbolic links. These are not supported well by go tooling (golang/go#15507, golang/go#17451). For this reason bindfs support has been added, which removes all of the issues caused by having symbolic links in your GOPATH. To use this you have to install bindfs though:

    # OSXbrew install bindfs# Ubuntuapt install bindfs# Arch Linuxpacaur -S bindfs # or yaourt or whatever tool you use for AUR

    ๐Ÿšš There's one important thing if you do this though. DON'T remove things manually from the ~/.virtualgo directory. Only use vg destroy/vg uninstall, otherwise you can very well lose data.

    0๏ธโƒฃ Global fallback import mode is the default again

    ๐Ÿ‘Œ Support for full isolation was added in the previous version (v0.6.0). This was made the default, because it seemed like a really useful feature. However, after more usage by more people it turned out that some things stopped working as expected. Since one of the main goals of vg is that you should be able to use your tools as before this was considered a big issue.

    โช The worst of these issues were caused by the usage of symbolic links, which are thus fixed now. Sadly, some others remained present. Luckily, the remaining issues have simple workarounds. However, without knowing about the issues confusion will likely occur as some common commands don't work as expected. This was still considered a big enough issue that the default for new workspaces has been reverted to "global fallback" import mode. A more thorough explanation of the issues and workarounds can be found in this section of the README.

    0๏ธโƒฃ One important thing to keep in mind is that existing workspaces won't be changed automatically. If you want to use the new default for existing workspaces you should recreate them:

    vg destroy example
    vg activate example

    If after reading the section from the README you still want to use full isolation, you should create new workspaces with the --full-isolation flag as described there.

    Small changes

    Other than these big changes there's also some small improvements:

    • vg destroy now works without arguments when inside a workspace. It will destroy the current workspace in that case.
    • vg destroy deactivates the current workspace if it was destroyed.
    • When creating a new workspace the output contains the import mode that the new workspace uses.