diff --git a/CHANGELOG.md b/CHANGELOG.md index 10ed97951..ccf1ddb1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ -Version 1.1.0 (unreleased) -========================== +Version 1.1.1 +============= +* Windows is now _officially_ supported (64 bit, Python 3.5 and 3.6). From now on, + code is automatically compiled and tested on Linux, OSX, and Windows + (thanks @TWAC for support). Windows binary wheels are uploaded to pypi. +* Added supported for fetching results in batches of NumPy objects with + `cursor.fetchnumpybatches()` (thanks @yaxxie) +* MSSQL is now part of the Windows test suite (thanks @TWAC) + +Version 1.1.0 +============= * Added support for databases that require Unicode data to be transported in UCS-2/UCS-16 format rather than UTF-8, e.g., MSSQL. * Added _experimental_ support for Windows source distribution builds. @@ -26,7 +35,7 @@ Version 1.1.0 (unreleased) Version 1.0.5 ============= -* Internal: Remove some `const` pointer to resolve some compile issues with +* Internal: Remove some `const` pointers to resolve some compile issues with xcode 6.4 (thanks @xhochy) Version 1.0.4 diff --git a/README.md b/README.md index ff5f4b4b9..48fb00633 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Features `int`, `float`, `str`, `bool`, `datetime.date`, `datetime.datetime` * Also provides a high-level C++11 database driver under the hood * Tested with Python 2.7, 3.4, 3.5, and 3.6 -* Tested on Linux and OSX. Windows support is _experimental_ and not very convenient yet. +* Tested on 64 bit versions of Linux, OSX, and Windows (Python 3.5+). Installation @@ -34,28 +34,24 @@ To install turbodbc, please use the following command: pip install turbodbc -If you want to leverage turbodbc's NumPy support, please make sure to `pip install numpy` -before installing turbodbc, since turbodbc searches for NumPy headers +On Windows, this will download and install a precompiled Python package. On Linux +and OSX, this will trigger a source build. If you want to leverage turbodbc's +NumPy support, please make sure to `pip install numpy` +before installing turbodbc. Turbodbc searches for NumPy headers at installation time to determine whether NumPy support can be provided. -Since turbodbc includes C-extensions, make sure the following prerequisites -are given: +Compiling turbodbc yourself requires the following prerequisites: -Requirement | Linux (`apt-get install`) | OSX (`brew install`) | Windows (experimental) | +Requirement | Linux (`apt-get install`) | OSX (`brew install`) | Windows | ----------------------------|---------------------------|------------------------|------------------------| C++11 compiler | G++-4.8 or higher | clang with OSX 10.9+ | Visual C++ 2015 | -Boost library + headers (1) | `libboost-all-dev` | `boost` | Boost sources (2) | +Boost library + headers (1) | `libboost-all-dev` | `boost` | Boost sources | ODBC library + headers | `unixodbc-dev` | `unixodbc` | Windows Kits | -Python headers | `python-dev` | use `pyenv` to install | Python 3.5+ (3) | +Python headers | `python-dev` | use `pyenv` to install | Python 3.5+ | (1) The minimum viable Boost setup requires the libraries `variant`, `optional`, `datetime`, and `locale`. -(2) After unpacking Boost run Simplified Build From Source (`bootstrap` and `.\b2`). -Also make sure the enviroment variable `BOOST_ROOT` is pointing to the installation. - -(3) Python 2.7 and 3.4 uses older compilers on Windows, and can not be used. - Why should I use turbodbc instead of other ODBC modules? -------------------------------------------------------- @@ -268,7 +264,7 @@ To use the latest version of turbodbc, do the following. as a comma-separated list of the json files you've just copied and run the test suite, as follows: - export TURBODBC_TEST_CONFIGURATION_FILES=",," + export TURBODBC_TEST_CONFIGURATION_FILES=",, " ctest --output-on-failure 1. Finally, to create a Python source distribution for `pip` installation, run @@ -293,8 +289,10 @@ dependencies: Supported environments ---------------------- +* 64 bit operating systems (32 bit not supported) * Linux (successfully built on Ubuntu 12, Ubuntu 14, Debian 7, Debian 8) * OSX (successfully built on Sierra a.k.a. 10.12 and El Capitan a.k.a. 10.11) +* Windows (successfully built on Windows 10) * Python 2.7, 3.4, 3.5, 3.6 * More environments probably work as well, but these are the versions that are regularly tested on Travis or local development machines. @@ -307,19 +305,20 @@ Turbodbc uses suites of unit and integration tests to ensure quality. Every time turbodbc's code is updated on GitHub, turbodbc is automatically built from scratch and tested with the following databases: -* PostgreSQL -* MySQL +* PostgreSQL (Linux, OSX, Windows) +* MySQL (Linux, OSX, Windows) +* MSSQL (Windows, with official MS driver) During development, turbodbc is tested with the following database: -* Exasol +* Exasol (Linux, OSX) Releases will not be made if any (implemented) test fails for any of the databases -listed above. In addition to these well-supported databases, the following databases -are tested on an irregular basis: +listed above. The following databases/driver combinations are tested on an irregular +basis: -* MSSQL with FreeTDS -* MSSQL with Microsoft's official ODBC driver +* MSSQL with FreeTDS (Linux, OSX) +* MSSQL with Microsoft's official ODBC driver (Linux) There is a good chance that turbodbc will work with other, totally untested databases as well. There is, however, an equally good chance that you will encounter compatibility @@ -333,7 +332,7 @@ SQLAlchemy support Using Turbodbc in combination with SQLAlchemy is possible for a limited number of databases: * Exasol: [sqlalchemy_exasol](https://github.com/blue-yonder/sqlalchemy_exasol) -* MSSQL: [sqlalchemy-turbodbc](https://github.com/dirkjonker/sqlalchemy-turbodbc) (experimental) +* MSSQL: [sqlalchemy-turbodbc](https://github.com/dirkjonker/sqlalchemy-turbodbc) I got questions and issues to report! diff --git a/setup.py b/setup.py index 5d2d996ac..0c7a48e78 100644 --- a/setup.py +++ b/setup.py @@ -168,11 +168,12 @@ def get_extension_modules(): author='Michael Koenig', author_email = 'michael.koenig@blue-yonder.com', packages = ['turbodbc'], - classifiers = ['Development Status :: 4 - Beta', + classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS :: MacOS X', + 'Operating System :: Microsoft :: Windows', 'Programming Language :: C++', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.4',