New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setup and Test Requirements considered harmful #71
Comments
+1 the whole approach seems to be screwed at the moment and we need to find a way to fix it... |
To be fair, |
Hm... but |
Let's separate two things, for one, what we would like to have, and then what setuptools does and how this differs from what we would like to have in an environment where we use virtualenvs: What we want: we would like to have a way to specify dependencies that we only need for executing a setup.py and not during runtime. What setuptools offers: Setup requirements can be specified and are installed in a Nowadays, we have virtualenvs, so what we want is, to install all packages we need during development into a development virtualenv. We build a wheel for packaging our package up and install it in another, fresh virtualenv that does not pull any setup requirements for running the software. Virtualenvs enable us to not use the My workflow involves having a ExampleWhat kind of trouble is it when packages are installed in a .eggs directory?
So I will go on and install pytest in my virtualenv. No I have two pytest installations. |
@HolgerPeters, good explanation. So when everything is already in your virtual environment, it should be no problem. It only causes trouble if setuptools installs software into the egg folder that was not available before. The question is if setuptools allows changing from easy_install to pip. Another option would be to raise an error for at least all packages in setup_requires instead of installing them with the help of setuptools. |
After our discussion, several things will be done to avoid this issue. First of all #72 will limit those possible conflicts to PyScaffold itself. Then avoiding |
…035b38 a035b38 make readme pypi compatible again 7b72db5 prepare 1.10.0 release cb38b67 whitespace fixes 4c5789a introduce parse_scm_fallback concept and fix parse hooks d80fde9 coding and documentation style cleanups c6f4ee6 introduce scm parser overriding fixes #70 and #71 af0095b support enforcing version numbers via the env b4baef9 Merge pull request #68 from pypa/issue-67 f0d86ef add missing space ff897ce first attempt at fixing issue #67 2d3b653 minor flake8 cleanup 04d8a87 address #63 - change the tag matching pattern 25b0529 fix issue #63 by passing a match parameter to git describe 9672e57 finish restructuring tests 32f8bca simplify callable_or_entrypoint(group, callable_or_name) cab8949 remove forgotten tests b977fe0 extract git tests 937a308 finish extracting mercurial tests into own file 05e4600 simplify data from mime test 5f9dd40 move hg archival test 1227628 Now that /tmp is no longer hard-coded, supply a more interesting root. 5294e37 Extend the extraction of the root assertion so that it's re-used by all test_root functions 20c57ae It seems the cache parameter is unused and needs not be supplied 4283d06 Transfer documentation from docstring to README. Fixes #64. 0ac8221 Added tag v1.9.0 for changeset 1092123ef785 a2fbff3 Add alias for simple distutils-based release. d3923f6 Add relative_to parameter to get_version. Fixes #44 and fixes #45. b6320b0 Extract assert_root_tmp fixture 52ecdba Merge pull request #58 from mcmtroffaes/feature/fix-main 6792706 Wrap test_main into a function so travis will pick it up. 644edd2 Fix __main__.py to import from the correct places. 27f0b64 Test 'python -m setuptools_scm' invocation (__main__.py). 81a0e74 Merge pull request #57 from felixonmars/master 9542ba9 Fix small typos in README git-subtree-dir: pyscaffold/contrib/setuptools_scm git-subtree-split: a035b38bad6a3505fd2c24306080dc9a6e1dffe3
Currently the setup.py that pyscaffold generates contains these lines:
usage of
setup_requires
andtests_require
is unfortunately a little problematic. Setuptools/distutils will install the packages listed there into the.eggs
directory upon callingpython setup.py develop
andpython setup.py test
. Since the introduction of virtualenvs in the python workflows, one is probably more interested to use one virtualenv for developing and building the tool, and another one for running the tool that does not include the dev requirements.The text was updated successfully, but these errors were encountered: