Comments (9)
Here is a work around that appears to work for me.
def version_scheme(version):
from setuptools_scm.version import guess_next_dev_version
version = guess_next_dev_version(version)
return version.lstrip("v")
setup(
setup_requires=['setuptools_scm'],
use_scm_version={
'version_scheme': version_scheme,
},
....
from setuptools_scm.
Without overriding local-scheme AS well, chances are this will break
from setuptools_scm.
Not sure I understand what you mean. Am just using the default version_scheme, just striping the leading "v". Haven't seen any breakage yet.
from setuptools_scm.
a non-tagged version will cause a local version tag which is not supported by older setuptools versions
from setuptools_scm.
Maybe I still haven't understood your concern. If I use setup.py sdist
and then extract the result into a directory with no git everything works fine (apart from some expected warnings). This is with setuptools 5.5.1 - in Debian stable:
brian@prune:~/tree/sshuttle$ python setup.py sdist
your setuptools is too old (<12)
setuptools_scm functionality is degraded
running sdist
running egg_info
writing sshuttle.egg-info/PKG-INFO
writing top-level names to sshuttle.egg-info/top_level.txt
writing dependency_links to sshuttle.egg-info/dependency_links.txt
writing entry points to sshuttle.egg-info/entry_points.txt
reading manifest template 'MANIFEST.in'
writing manifest file 'sshuttle.egg-info/SOURCES.txt'
running check
creating sshuttle-0.76.dev8-ngf59508f
creating sshuttle-0.76.dev8-ngf59508f/sshuttle
creating sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
creating sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
creating sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
making hard links in sshuttle-0.76.dev8-ngf59508f...
hard linking .gitignore -> sshuttle-0.76.dev8-ngf59508f
hard linking .travis.yml -> sshuttle-0.76.dev8-ngf59508f
hard linking CHANGES.rst -> sshuttle-0.76.dev8-ngf59508f
hard linking LICENSE -> sshuttle-0.76.dev8-ngf59508f
hard linking MANIFEST.in -> sshuttle-0.76.dev8-ngf59508f
hard linking README.rst -> sshuttle-0.76.dev8-ngf59508f
hard linking VERSION.txt -> sshuttle-0.76.dev8-ngf59508f
hard linking run -> sshuttle-0.76.dev8-ngf59508f
hard linking setup.py -> sshuttle-0.76.dev8-ngf59508f
hard linking tox.ini -> sshuttle-0.76.dev8-ngf59508f
hard linking sshuttle/__init__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/__main__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/assembler.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/client.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/firewall.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/helpers.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/hostwatch.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/linux.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/options.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/server.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssh.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/sshuttle.md -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssnet.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssyslog.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/stresstest.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/version.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle.egg-info/PKG-INFO -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/SOURCES.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/dependency_links.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/entry_points.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/top_level.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle/methods/__init__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/nat.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/pf.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/tproxy.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/tests/test_firewall.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_helpers.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_nat.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_pf.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_tproxy.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
Writing sshuttle-0.76.dev8-ngf59508f/setup.cfg
Creating tar archive
removing 'sshuttle-0.76.dev8-ngf59508f' (and everything under it)
brian@prune:~/tree/sshuttle$ mkdir /tmp/sshuttle
brian@prune:~/tree/sshuttle$ cd /tmp/sshuttle/
brian@prune:/tmp/sshuttle$ tar -xzvf ~/tree/sshuttle/dist/sshuttle-0.76.dev8-ngf59508f.tar.gz
sshuttle-0.76.dev8-ngf59508f/
sshuttle-0.76.dev8-ngf59508f/setup.cfg
sshuttle-0.76.dev8-ngf59508f/tox.ini
sshuttle-0.76.dev8-ngf59508f/run
sshuttle-0.76.dev8-ngf59508f/PKG-INFO
sshuttle-0.76.dev8-ngf59508f/.travis.yml
sshuttle-0.76.dev8-ngf59508f/LICENSE
sshuttle-0.76.dev8-ngf59508f/sshuttle/
sshuttle-0.76.dev8-ngf59508f/sshuttle/version.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/helpers.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/options.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/ssh.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/hostwatch.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/__main__.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/assembler.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/linux.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/firewall.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/sshuttle.md
sshuttle-0.76.dev8-ngf59508f/sshuttle/ssnet.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/methods/
sshuttle-0.76.dev8-ngf59508f/sshuttle/methods/tproxy.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/methods/pf.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/methods/nat.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/methods/__init__.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/__init__.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/stresstest.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/ssyslog.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/test_methods_pf.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/test_helpers.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/test_methods_nat.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/test_firewall.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/tests/test_methods_tproxy.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/client.py
sshuttle-0.76.dev8-ngf59508f/sshuttle/server.py
sshuttle-0.76.dev8-ngf59508f/CHANGES.rst
sshuttle-0.76.dev8-ngf59508f/README.rst
sshuttle-0.76.dev8-ngf59508f/.gitignore
sshuttle-0.76.dev8-ngf59508f/MANIFEST.in
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/dependency_links.txt
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/SOURCES.txt
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/PKG-INFO
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/entry_points.txt
sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info/top_level.txt
sshuttle-0.76.dev8-ngf59508f/VERSION.txt
sshuttle-0.76.dev8-ngf59508f/setup.py
brian@prune:/tmp/sshuttle$ cd sshuttle-0.76.dev8-ngf59508f/
brian@prune:/tmp/sshuttle/sshuttle-0.76.dev8-ngf59508f$ python setup.py sdist
your setuptools is too old (<12)
setuptools_scm functionality is degraded
running sdist
running egg_info
writing sshuttle.egg-info/PKG-INFO
writing top-level names to sshuttle.egg-info/top_level.txt
writing dependency_links to sshuttle.egg-info/dependency_links.txt
writing entry points to sshuttle.egg-info/entry_points.txt
reading manifest file 'sshuttle.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'sshuttle.egg-info/SOURCES.txt'
running check
creating sshuttle-0.76.dev8-ngf59508f
creating sshuttle-0.76.dev8-ngf59508f/sshuttle
creating sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
creating sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
creating sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
making hard links in sshuttle-0.76.dev8-ngf59508f...
hard linking .gitignore -> sshuttle-0.76.dev8-ngf59508f
hard linking .travis.yml -> sshuttle-0.76.dev8-ngf59508f
hard linking CHANGES.rst -> sshuttle-0.76.dev8-ngf59508f
hard linking LICENSE -> sshuttle-0.76.dev8-ngf59508f
hard linking MANIFEST.in -> sshuttle-0.76.dev8-ngf59508f
hard linking README.rst -> sshuttle-0.76.dev8-ngf59508f
hard linking VERSION.txt -> sshuttle-0.76.dev8-ngf59508f
hard linking run -> sshuttle-0.76.dev8-ngf59508f
hard linking setup.cfg -> sshuttle-0.76.dev8-ngf59508f
hard linking setup.py -> sshuttle-0.76.dev8-ngf59508f
hard linking tox.ini -> sshuttle-0.76.dev8-ngf59508f
hard linking sshuttle/__init__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/__main__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/assembler.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/client.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/firewall.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/helpers.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/hostwatch.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/linux.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/options.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/server.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssh.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/sshuttle.md -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssnet.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/ssyslog.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/stresstest.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle/version.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle
hard linking sshuttle.egg-info/PKG-INFO -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/SOURCES.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/dependency_links.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/entry_points.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle.egg-info/top_level.txt -> sshuttle-0.76.dev8-ngf59508f/sshuttle.egg-info
hard linking sshuttle/methods/__init__.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/nat.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/pf.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/methods/tproxy.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/methods
hard linking sshuttle/tests/test_firewall.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_helpers.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_nat.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_pf.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
hard linking sshuttle/tests/test_methods_tproxy.py -> sshuttle-0.76.dev8-ngf59508f/sshuttle/tests
copying setup.cfg -> sshuttle-0.76.dev8-ngf59508f
Writing sshuttle-0.76.dev8-ngf59508f/setup.cfg
creating dist
Creating tar archive
removing 'sshuttle-0.76.dev8-ngf59508f' (and everything under it)
from setuptools_scm.
it seems it normalizes in that case, can you show me the output of setup.py --version
from setuptools_scm.
brian@prune:~/tree/sshuttle$ ./setup.py --version
your setuptools is too old (<12)
setuptools_scm functionality is degraded
0.76.dev8+ngf59508f
from setuptools_scm.
i see, looks reasonable
just wondering, would you be up for providing a pull request ensuring setuptools_scm would at least take leading non-numeric characters away on old setuptools?
from setuptools_scm.
I will have a look.
from setuptools_scm.
Related Issues (20)
- what are the available version_scheme HOT 4
- Add a `just-the-tag` version scheme HOT 12
- Be a smidge more error tolerant? HOT 2
- How to keep the version when changing tracked files? HOT 7
- documentation outdated? HOT 3
- Why is get_version at runtime deprecated? HOT 1
- setuptools_scm does not get the latest git tag HOT 5
- `AssertionError: assert main_version is not None` when `pyproject.toml` defines its own `version_schema` and provides its own callable. HOT 2
- LookupError: setuptools-scm was unable to detect version if [tool.setuptools_scm] is in pyproject.toml HOT 17
- setup(python_requires=">=3.9") seems not supported HOT 2
- 8.0.4 fails to install with Python 3.8/3.9 (but works fine with Python 3.10+) HOT 6
- 8.0.4 fails to build wheel on python 3.10 with gpep517 v15 HOT 3
- get_version(): normalize=False incompatible with several version schemes HOT 1
- Don't strip local version suffix from tag when specified
- Failing to point to project's root HOT 2
- change env var variable name to something more comprehensble than NORMALIZED_DIST_NAME
- Provide more guidance on how to use `.git_archival.txt`
- on windows, path comparison should be case-insensitive HOT 1
- listing git files failed on git repo HOT 5
- LookupError: setuptools-scm was unable to detect version for /app when project is used as a git submodule. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from setuptools_scm.