title: How are versions of a sub module managed?
body: <p>If a Go repository has a <code>go.mod</code> file in its root but also in a sub folder, how are versions of the submodule released?</p>
  
  <p>By way of example, My team have been working with vault on our internal cli tool.
  We have ended up using:</p>
  
  <p><code>github.com/hashicorp/vault/api</code> &lt;-- has a go.mod</p>
  
  <p>and</p>
  
  <p><code>github.com/hashicorp/vault/commands</code> &lt;-- doesn't have a go.mod so inherits from <code>github.com/hashicorp/vault</code></p>
  
  <p>I am trying to update vault/api to the latest version 1.3.3:</p>
  
  <pre><code>github.com/hashicorp/vault v1.3.3
  github.com/hashicorp/vault/api v1.3.3
  </code></pre>
  
  <p>The problem is I get:</p>
  
  <p><code>go: github.com/hashicorp/vault/api@v1.3.3: reading github.com/hashicorp/vault/api/api/go.mod at revision api/v1.3.3: unknown revision api/v1.3.3</code></p>
  
  <p>Which I think is caused by this root module and a conflict.</p>