1. 16 Oct, 2018 1 commit
  2. 22 Aug, 2018 1 commit
  3. 26 Apr, 2018 1 commit
    • Tristan Van Berkom's avatar
      Use versioneer instead of setuptools_scm · 4be462d3
      Tristan Van Berkom authored
      Using setuptools_scm had a couple of bad problems:
        o Unexpected versioning semantics, setuptools_scm would
          increment the micro version by itself in the case that
          we derive a version number from something that is not a tag,
          making the assumption that we are "leading up to" the next
          micro version.
          People mostly dont expect this.
        o When installing in developer mode, i.e. with `pip3 install --user -e .`,
          then we were always picking the generated version at install time
          and never again dynamically resolving it.
          Many of our users install this way and update through git, so it's
          important that we report more precise versions all the time.
      This commit needs to make a series of changes at the same time:
        o Adds versioneer.py to the toplevel, this is used by setup.py
          for various activities.
          This is modified only to inform the linter to skip
        o Adds buildstream/_version.py, which is generated by versioneer
          and gives us the machinery to automatically derive the correct version
          This is modified only to inform the linter to skip
        o Adds a .gitattributes file which informs git to substitute
          the buildstream/_version.py file, this is just to ensure that
          the versioning output would work if ever we used `git archive`
          to release a tarball.
        o Modifies setup.py and setup.cfg for versioneer
        o Modifies utils.py and _frontend/cli.py such as to avoid importing
          the derived version when running bash completion mode, we dont
          derive the version at completion time because this can result
          in running a subprocess (when running in developer install mode)
          and is an undesirable overhead.
        o Updates tests/frontend/version.py to expect changed version output