Is this the correct approach to major-v-bumping a module? I had understood the "vN" slug in the module to be a "virtual" element, signalling the deliberate introduction of an upgrade to a new major version of a dependency. i.e. it avoids (or at least makes less likely) the chance of inadvertently taking a dependency on a new version of a module already in use that introduces breaking changes (as usually signalled by a major version bump).
i.e. the module ref "host/module/path/v2" is resolved to the repository at "host/module/path". The /vN suffix in an import ref must match the module id in the go.mod at the revision tagged by the version specified in the import.
For pre-release versions of a new major version, "pre-release" code module exists in a development branch for that new version, with a version (tag) similar to "v2.0.0-alpha". If someone wishes to import that to experiment with, they need to import (e.g.) "host/module/path/v...@v2.0.0-alpha". Having said that, if the intention is to maintain 1.x and 2.x versions as both "current" then I could see how this v2 folder approach might work, though I struggle then to imagine how one would make sense of tagged versions of the repo (i.e. the tagged "v2.0.0" also contains a "production" release of "v1.?.?")
What happens if if a project contains code where some packages use the v1 of an imported module while other packages use v2?
With modules using the "/vN" virtual suffix this remains straightforward (I think): each major version is held separately, at the referenced version for that major version, in the mod cache. But if using major version folder, the cached mod for the later major version also contains some version of previous major versions. And the cached mod of earlier major versions may contain pre-release versions of later major versions. Maybe I just need to get my head around it properly, but this feels like it could get confusing (for the wetware - i.e. humans - if not the tooling).
This is a genuine question, not intended to criticise the approach but to understand it as - if "official" - it's something I did not come across when researching this issue in the one instance in the past where I needed to bump the major version of a module.