title: Python Setuptools and PBR - how to create a package release using the git tag as the version?
body: <p>How do I actually create a release/distro of a python package that uses a git repo tag for the versioning, using <code>setuptools</code> and <code>pbr</code>?</p>
  
  <p>There is plenty of information on the basic setup and configuration required:</p>
  
  <ul>
  <li><a href="https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files" rel="nofollow noreferrer">SetupTools Documentation - setup() and setup.py configuration</a></li>
  <li><a href="https://packaging.python.org/tutorials/installing-packages/" rel="nofollow noreferrer">Python Packaging User Guide - Installing Packages</a></li>
  <li><a href="https://docs.openstack.org/pbr/3.1.1/index.htmlhttps://docs.openstack.org/pbr/3.1.1/index.html" rel="nofollow noreferrer">PBR v3.1.1 documentation</a></li>
  <li><a href="https://stackoverflow.com/q/55921981/6501141">StackOverflow: How to use version info generated using <code>setuptools</code> and <code>pbr</code></a></li>
  </ul>
  
  <p>But where is the simple info on how to actually create the distro?</p>
  
  <p>i.e. I'm looking for whatever command finds the git tag with the version info and pulls it into the configuration info, so the source with that new version info can be distributed, and the version info is discoverable from the scripts, using a method like described in <a href="https://stackoverflow.com/a/2073599/6501141">this answer</a>.</p>
  
  <hr>
  
  <h2>Additional details</h2>
  
  <p>I'm working on a project that will be distributed to other developers only through a git repo, not through <strong>PyPi</strong>. The project will be released to users as an executable using <code>pyinstaller</code>, so this package distribution will only serve a few key purposes:</p>
  
  <ol>
  <li>Install/Setup the package for other developers so that dependencies/environment can be recreated cleanly.</li>
  <li>Manage versioning - Current plan is to use <code>pbr</code> to generate versions from the Git repo tags, so those tags can be our source of truth for versioning</li>
  <li>Use <code>pbr</code> for other auto generation of mundane items from Git, such as authors, manifest.in file, release notes, etc.</li>
  </ol>
  
  <p>Since <code>setuptools</code> docs focus on setting up a fully distributable and reusable package with <strong>PyPi</strong> and <code>pip</code>, and <code>pbr</code> docs only really tell you how to modify <code>setuptools</code> configuration to use <code>pbr</code>, I can't find the info on how to just run the distribution/release process.</p>
  
  <p>I'm sure it exists somewhere in the documentation, but after several false starts I'm asking here. It is implied everywhere I look that everyone either knows how to do this or it just magically happens as a part of the process.</p>
  
  <p>Am I just missing the obvious?</p>
  
  <hr>
  
  <p><strong>Update:</strong></p>
  
  <p>Based on sinoroc's answer, it appears I need to look into development mode installs. i.e. Anyone developing the project will clone from git, and then install via using <code>setuptools</code> development install mode.</p>
  
  <p>This wasn't directly a part of the original question, but implied, and I believe will be of interest to people in the same situation (info I couldn't easily find).</p>
  
  <p>More info is available in his answer on updating some of the metadata, and via <a href="https://packaging.python.org/guides/distributing-packages-using-setuptools/#working-in-development-mode" rel="nofollow noreferrer">this <code>setuptools</code> documentation link to working in "Development Mode"</a></p>