Commit Graph

34 Commits

Author SHA1 Message Date
Jurko Gospodnetić 9ca8cf3e59 update project Python 2.5 compatibility documentation 2014-12-25 19:23:05 +01:00
Jurko Gospodnetić 3ece6d16a0 make 'setup.py test' command support passing pytest specific arguments
Added a new 'setup.py test' command-line options --pytest-args/-a accepting all
pytest specific command-line arguments as a single whitespace separated string.

For example, the following command will run only tests containing ``binding`` in
their name, will stop on first failure and will automatically drop into Python's
post-mortem debugger on failure::

  setup.py test -a "-k binding -x --pdb"

Does not currently support passing pytest specific command-line arguments
containing embedded whitespace.
2014-05-31 13:58:17 +02:00
Jurko Gospodnetić 62977f5969 port tools/run_all_tests.cmd to Python
Now uses the same list of Python environments as used by
'tools/setup_base_environments.py' stored inside the project's main
configuration file 'setup.cfg'.

Updated todo list.
2014-05-29 19:28:33 +02:00
Jurko Gospodnetić d949e38363 reword docs to make it clearer that the project supports Python 2.4+ 2014-05-26 13:05:33 +02:00
Jurko Gospodnetić 9e94620274 remove code duplication between setup.py & tools/setup_base_environments.py
Duplicate code extracted to new modules under the suds_devel package:
  - specifying the project's requirements - requirements.py
  - specifying the used setuptool install script - ez_setup_versioned.py

Updated todo list.
2014-05-26 13:04:24 +02:00
Jurko Gospodnetić 43f608b9b4 document more detailed Python 2/3 source code compatibility notes 2014-05-22 19:46:25 +02:00
Jurko Gospodnetić 5a4b0678b8 change development version identification to use standard .dev# suffixes
Updated relevant release procedure docs.
Updated the current project version information.
2014-05-17 15:41:02 +02:00
Jurko Gospodnetić dcbd129a01 clarify that we upload releases to PyPI using setup.py 2014-05-17 15:25:16 +02:00
Jurko Gospodnetić 1618ae351f reorganize tests - run on installed suds version + do not require py2to3
The test suite is no longer installed together with the project and can now be
run from the project's source distribution. This resolves the issue of the suds
test suite confusing users by getting installed as a top level tests package in
their Python environment.

Project to be tested now need to be explicitly installed prior to running its
tests using pytest, except in case of Python 2 tests being run from the top
level project folder. This requires the user to install the project (suggested
way is to install it in editable mode using 'pip install -e') but also allows
him to run the tests on other non-sandbox project versions, e.g. an externally
installed version.

Project testing now requires the six Python 2/3 compatibility support package
(installed automatically, together with other test requirements).
Test support code now moved to a separate testutils package located under the
tests folder.
Updated project README.rst & HACKING.rst docs.
Minor stylistic changes.
2014-05-17 14:08:18 +02:00
Jurko Gospodnetić 411dae9c9c add support for releasing suds as a wheel distribution 2014-05-15 20:01:36 +02:00
Jurko Gospodnetić ea02fb96ad add tools/setup_base_environments.py development script
Installs packages into multiple Python environments so they can be used for
testing this project. This automates all the previously manually done work on
setting up those environments.

The script contains a multitude of open TODO comments and should still be
considered 'work in progress', but successfully gets the work done at least on
one Windows 7 x64 SP1 machine with 17 different parallel Python installations.

Updated relevant HACKING.rst docs.

Relevant configuration added to the main project Python configuration file
'setup.cfg'.

All Python modules indended for use in different project development utility
scripts have been placed under the suds_devel package folder located under the
tools project folder.

The new scripts:
 - are included in the project's source distribution,
 - are not installed with the project
 - do not need py2to3 processing
 - do not have any tests of their own yet

tools/__* folders get created and used as local caches by the new
tools/setup_base_environments.py development script and so must not included in
the project's source distribution.
2014-05-15 17:10:55 +02:00
Jurko Gospodnetić c6b64a1849 add new tools folder for holding internal project development utility scripts
Moved the top-level run_all_tests.cmd script under the newly added tools folder.
Updated relevant docs.
2014-05-15 15:36:26 +02:00
Jurko Gospodnetić ba2df799a7 document setting up the Python 3.1.x testing and development environments 2014-05-14 09:22:59 +02:00
Jurko Gospodnetić f8245655b9 reorganize HACKING.rst docs into multiple separate sections
All sections now linked to from the top of the file.

The whole document will require further work, but for now, at least the
sections are consistently named, separated & linked to (even if they are not yet
positioned in a completely logical order).
2014-05-12 15:23:24 +02:00
Jurko Gospodnetić 0a34333f43 fix installation on Python 3.1 - project source files containing UTF-8 BOM
py2to3 does not support reading source files with an explicitly specified UTF-8
BOM prior to Python 3.2. This was causing errors when using it to process two
of our project files.

Updated relevant HACKING.rst documentation.
2014-05-12 11:02:17 +02:00
Jurko Gospodnetić 8dfe54fd14 mark Python 3.0 minor release as an unsupported Python version
Added relevant HACKING docs.
setup.py now exits with a clean error message when run using Python 3.0.
Python 3.0 removed from a list of supported Python versions stored in the
project's meta-data.
2014-05-04 22:18:22 +02:00
Jurko Gospodnetić b7eb2dc83f HACKING.rst documentation stylistic changes 2014-05-12 10:49:43 +02:00
Jurko Gospodnetić ebb560406d remove the strict setup.py --> setuptools dependency
setup.py will now attempt to use setuptools if available (there is no version
check for preinstalled setuptools), and if not - attempts to install its own
tested setuptools version after downloading it from PyPI. If all attempts to
use setuptools fail, setup.py will fall back on using distutils with a bit
reduced functionality.

See extensive in-code comments for more detailed information on all the
setuptools related functionality, as well as the rationale behind choosing the
current setuptools usage design.
2014-04-26 19:21:50 +02:00
Jurko Gospodnetić df175f2273 internal development operations care less about backward compatibility
Operations such as setup.py support for uploading a new project distribution
package to PyPI need to be supported on the latest Python 2 & 3 releases only
and no additional backward compatibility is either tested or guaranteed for
them.
2014-04-26 02:37:43 +02:00
Jurko Gospodnetić 8d821522b0 extract the hacking docs' Python compatibility notes into a separate section
Also removed some duplicate development & testing environment related notes.
2014-04-26 02:34:05 +02:00
Jurko Gospodnetić 8069654cfd update the 'development & testing environment' project hacking docs section
* documented the minimum required pytest version - 2.4.0
* noted the display problems when running tests using Python 2.4 on Windows
* added more detailed notes on setting up the Python 2.4.3 project development
  environment
* removed some duplicate content
* stylistic cleanup
2014-04-26 02:27:12 +02:00
Jurko Gospodnetić 7bd14ad666 document the --pdb pytest command-line option 2014-04-26 02:17:15 +02:00
Jurko Gospodnetić 080383ae89 project does not need to be re-registered on PyPI with every release 2014-04-26 02:16:40 +02:00
Jurko Gospodnetić cca37c0ea2 update HACKING.rst setup.py command notes 2014-04-26 02:14:06 +02:00
Jurko Gospodnetić e677e4de8e update notes on setting up Python 2.4.x development environments 2014-03-23 22:21:11 +01:00
Jurko Gospodnetić 8d3f86e34b remove old & now stale Python 3 compatibility related HACKING note 2014-03-23 18:41:22 +01:00
Jurko Gospodnetić ba39464cec update Python 2.4 compatibility notes - BaseException introduced in 2.5
Code wanting to support Python versions prior to 2.5 needs to re-raise
KeyboardInterrupt & SystemExit exceptions before handling the generic
'Exception' case, unless it really wants to gobble up those special
infrastructural exceptions. Python 2.5 made those exceptions parallel to the
Exception class and so no longer requires them to be handled specially by user
code.
2014-04-27 01:26:40 +02:00
Jurko Gospodnetić ac23dfbbd7 use the latest compatible setuptools version for the current Python version
Now using setuptools 1.4.2 with Python 2.4 & 2.5, and using setuptools 3.3 with
later Python versions. This should help avoid installation issues in different
exotic use cases that were once not being handled by setuptools but have since
been corrected.
2014-03-23 18:39:23 +01:00
Jurko Gospodnetić 508f183889 sort pytest test parametrizations the same in every test process
This avoids issues with pytest xdist plugin collecting tests differently in
different test processes when running them using multiple parallal test
processes.

Kudos to Bruno Oliveira (nicoddemus at BitBucket) for researching related pytest
xdist usage problems, discovering & explaining the underlying issue as well as
providing an initial project patch for it.

Introduced a new 'Project implementation note #xxx' concept for documenting
unintuitive code without duplicating embedded explanation comments. Such
implementation notes now documented in the HACKING.rst project document.
2014-03-06 03:45:20 +01:00
Jurko Gospodnetić c66a6ed1cb note that class decorators are not supported before Python 2.6 2014-02-24 09:52:12 +01:00
Jurko Gospodnetić 37adf92b4e correct HACKING.rst documentation typo 2014-02-09 10:05:13 +01:00
Jurko Gospodnetić 8bb5397619 document that Python 2.6 introduced fractions & numbers modules
That means that such modules can not be used in code expected to run on earlier
Python interpreter versions.
2014-01-29 13:07:45 +01:00
Jurko Gospodnetić 438601e9eb start project's internal notes documentation
Added a 'notes/' project folder. Described the new folder both in a readme.txt
file contained in that folder and in the project's central HACKING.rst
documentation. The folder and its *.rst/*.txt content is included in the
project's source distribution, but is not included in project builds &
installations.

Updated project release notes.
Updated todo list.
2014-01-23 19:53:33 +01:00
Jurko Gospodnetić af39259484 rename HACKING.txt to HACKING.rst 2014-01-23 00:07:18 +01:00