sqlobject-cvs Mailing List for SQLObject (Page 7)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(74) |
May
(29) |
Jun
(16) |
Jul
(28) |
Aug
(10) |
Sep
(57) |
Oct
(9) |
Nov
(29) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(14) |
Mar
(6) |
Apr
(3) |
May
(12) |
Jun
(34) |
Jul
(9) |
Aug
(29) |
Sep
(22) |
Oct
(2) |
Nov
(15) |
Dec
(52) |
2005 |
Jan
(47) |
Feb
(78) |
Mar
(14) |
Apr
(35) |
May
(33) |
Jun
(16) |
Jul
(26) |
Aug
(63) |
Sep
(40) |
Oct
(96) |
Nov
(96) |
Dec
(123) |
2006 |
Jan
(159) |
Feb
(144) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(48) |
Jul
(16) |
Aug
(64) |
Sep
(87) |
Oct
(92) |
Nov
(56) |
Dec
(76) |
2007 |
Jan
(94) |
Feb
(103) |
Mar
(126) |
Apr
(123) |
May
(85) |
Jun
(11) |
Jul
(130) |
Aug
(47) |
Sep
(65) |
Oct
(70) |
Nov
(12) |
Dec
(11) |
2008 |
Jan
(30) |
Feb
(55) |
Mar
(88) |
Apr
(20) |
May
(50) |
Jun
|
Jul
(38) |
Aug
(1) |
Sep
(9) |
Oct
(5) |
Nov
(6) |
Dec
(39) |
2009 |
Jan
(8) |
Feb
(16) |
Mar
(3) |
Apr
(33) |
May
(44) |
Jun
(1) |
Jul
(10) |
Aug
(33) |
Sep
(74) |
Oct
(22) |
Nov
|
Dec
(15) |
2010 |
Jan
(28) |
Feb
(22) |
Mar
(46) |
Apr
(29) |
May
(1) |
Jun
(1) |
Jul
(27) |
Aug
(8) |
Sep
(5) |
Oct
(33) |
Nov
(24) |
Dec
(41) |
2011 |
Jan
(4) |
Feb
(12) |
Mar
(35) |
Apr
(29) |
May
(19) |
Jun
(16) |
Jul
(32) |
Aug
(25) |
Sep
(5) |
Oct
(11) |
Nov
(21) |
Dec
(12) |
2012 |
Jan
(3) |
Feb
(4) |
Mar
(20) |
Apr
(4) |
May
(25) |
Jun
(13) |
Jul
|
Aug
|
Sep
(2) |
Oct
(25) |
Nov
(9) |
Dec
(1) |
2013 |
Jan
(6) |
Feb
(8) |
Mar
|
Apr
(10) |
May
(31) |
Jun
(7) |
Jul
(18) |
Aug
(33) |
Sep
(4) |
Oct
(16) |
Nov
|
Dec
(27) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(11) |
May
(39) |
Jun
(8) |
Jul
(11) |
Aug
(4) |
Sep
|
Oct
(27) |
Nov
|
Dec
(71) |
2015 |
Jan
(17) |
Feb
(47) |
Mar
(33) |
Apr
|
May
|
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(8) |
2016 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
(12) |
Jun
(7) |
Jul
(9) |
Aug
(31) |
Sep
(8) |
Oct
(3) |
Nov
(15) |
Dec
(1) |
2017 |
Jan
(13) |
Feb
(7) |
Mar
(14) |
Apr
(8) |
May
(10) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(5) |
2018 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2019 |
Jan
(1) |
Feb
(16) |
Mar
(1) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
|
2024 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(9) |
2025 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Oleg B. <no...@so...> - 2017-04-07 04:51:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 4d196203af98b7c418ad8a0ebeba081e1cf76c48 (commit) via ed552e3fdf2f2b101c6eba9f83b1e27fe4d2e51b (commit) via f3d1c3641393f098f92c1b3e54504198158c65c8 (commit) via d89e61b8dadc60cea619ac089c6fafcf9556a48d (commit) via 3a6f6eda84323d1dca94ec90d3affa111ec5ef90 (commit) via 0d02d45489718c709192c53f158ad9242d4bf5ea (commit) via 0fa4628d67982d8fd9e599c5bb68a7af47ba3fad (commit) via 47af309433e5dc70eb61f758747e2886cb7fb274 (commit) via 6f641c9e34c5f2ad108ab571f2a5a304c19ee028 (commit) via 380a776fdf43b1edf755a700a1f02b2870d81867 (commit) via d6a1e7537d4e6f954b9a80ec22cab6ae5253ec76 (commit) via f67f0b550714416a82c03d749aa519e61a752fd5 (commit) via 98ab6094fd6f990ea527d8b2e07bac3d8ca3fba7 (commit) via b654cbf4f45d5e27d52c86dcee64a7d119fb86fc (commit) via b7e0a90be5c926b1b0478d1b24ccee9aa67ce2cb (commit) via 58925e1a6fdbadd200c9b41c251317c30d34bd9b (commit) via d62190196491847b78f0e0ab953bc2e72f654e6f (commit) via b4e68b5bac08d4163f31d65365881511748eb594 (commit) via 6fa36b817c9bc7c7af42647a99cb8a28f48bb726 (commit) from b6c60444aefc8cb2a8a192ba38f59e61a2505ec8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/4d196203af98b7c418ad8a0ebeba081e1cf76c48 commit 4d196203af98b7c418ad8a0ebeba081e1cf76c48 Author: Oleg Broytman <ph...@ph...> Date: Fri Apr 7 07:49:39 2017 +0300 Use '/usr/bin/env python' for scripts This allows eggs/wheels to be installed into virtual environments. [skip ci] diff --git a/devscripts/release b/devscripts/release index d04373c..3a6fc74 100755 --- a/devscripts/release +++ b/devscripts/release @@ -8,11 +8,13 @@ chmod -R a+rX . && ../set-commit-date.py && python setup.py build_py && +python setup.py build --executable '/usr/bin/env python' && python setup.py sdist && for py in 2.6 2.7 3.4 3.5 3.6; do find build -name '*.py[co]' -delete && python$py setup.py build_py && + python$py setup.py build --executable '/usr/bin/env python' && python$py -m compileall build && python$py -O -m compileall build && python$py setup.py bdist_egg || exit 1 http://sourceforge.net/p/sqlobject/sqlobject/ci/ed552e3fdf2f2b101c6eba9f83b1e27fe4d2e51b commit ed552e3fdf2f2b101c6eba9f83b1e27fe4d2e51b Author: Oleg Broytman <ph...@ph...> Date: Fri Apr 7 06:56:36 2017 +0300 sqlite-memory tests fail at Travis for no apparent reason diff --git a/.travis.yml b/.travis.yml index c56d9ff..921df72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,6 +71,10 @@ matrix: - env: TOXENV=py34-pypostgresql - env: TOXENV=py35-pypostgresql - env: TOXENV=py36-pypostgresql + - env: TOXENV=py27-sqlite-memory + - env: TOXENV=py34-sqlite-memory + - env: TOXENV=py35-sqlite-memory + - env: TOXENV=py36-sqlite-memory - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb http://sourceforge.net/p/sqlobject/sqlobject/ci/f3d1c3641393f098f92c1b3e54504198158c65c8 commit f3d1c3641393f098f92c1b3e54504198158c65c8 Author: Oleg Broytman <ph...@ph...> Date: Fri Apr 7 06:53:23 2017 +0300 Prevent flake8 to complain about 'unicode' under PY3 diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 7792e8b..c8d9b35 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -211,7 +211,7 @@ class PostgresConnection(DBAPI): conn.setdecoding(self.module.SQL_WCHAR, encoding=dbEncoding) if PY2: conn.setencoding(str, encoding=dbEncoding) - conn.setencoding(unicode, encoding=dbEncoding) + conn.setencoding(unicode, encoding=dbEncoding) # noqa else: conn.setencoding(encoding=dbEncoding) self._executeRetry(conn, c, http://sourceforge.net/p/sqlobject/sqlobject/ci/d89e61b8dadc60cea619ac089c6fafcf9556a48d commit d89e61b8dadc60cea619ac089c6fafcf9556a48d Author: Oleg Broytman <ph...@ph...> Date: Fri Apr 7 06:51:30 2017 +0300 Stop running tests at Travis with Python 2.6. diff --git a/.travis.yml b/.travis.yml index e7773d1..c56d9ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,29 +19,23 @@ addons: postgresql: "9.4" env: - - TOXENV=py26-mysqldb - TOXENV=py27-mysqldb - TOXENV=py34-mysqlclient - TOXENV=py35-mysqlclient - TOXENV=py36-mysqlclient - - TOXENV=py26-mysql-connector - TOXENV=py27-mysql-connector - TOXENV=py34-mysql-connector - TOXENV=py35-mysql-connector - TOXENV=py36-mysql-connector - - TOXENV=py26-mysql-oursql - TOXENV=py27-mysql-oursql - - TOXENV=py26-pymysql - TOXENV=py27-pymysql - TOXENV=py34-pymysql - TOXENV=py35-pymysql - TOXENV=py36-pymysql - - TOXENV=py26-postgres-psycopg - TOXENV=py27-postgres-psycopg - TOXENV=py34-postgres-psycopg - TOXENV=py35-postgres-psycopg - TOXENV=py36-postgres-psycopg - - TOXENV=py26-postgres-pygresql - TOXENV=py27-postgres-pygresql - TOXENV=py34-postgres-pygresql - TOXENV=py35-postgres-pygresql @@ -49,12 +43,10 @@ env: - TOXENV=py34-pypostgresql - TOXENV=py35-pypostgresql - TOXENV=py36-pypostgresql - - TOXENV=py26-sqlite - TOXENV=py27-sqlite - TOXENV=py34-sqlite - TOXENV=py35-sqlite - TOXENV=py36-sqlite - - TOXENV=py26-sqlite-memory - TOXENV=py27-sqlite-memory - TOXENV=py34-sqlite-memory - TOXENV=py35-sqlite-memory @@ -72,7 +64,6 @@ env: matrix: allow_failures: - - env: TOXENV=py26-postgres-pygresql - env: TOXENV=py27-postgres-pygresql - env: TOXENV=py34-postgres-pygresql - env: TOXENV=py35-postgres-pygresql diff --git a/docs/News.rst b/docs/News.rst index e0fea06..f2697d6 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -29,6 +29,8 @@ Tests * Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64. +* Stop running tests at Travis with Python 2.6. + SQLObject 3.2.0 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/3a6f6eda84323d1dca94ec90d3affa111ec5ef90 commit 3a6f6eda84323d1dca94ec90d3affa111ec5ef90 Author: Oleg Broytman <ph...@ph...> Date: Thu Apr 6 23:36:24 2017 +0300 [devscripts] Remove log files from pyodbc [skip ci] diff --git a/devscripts/cleanup b/devscripts/cleanup index fa38d79..19fdb46 100755 --- a/devscripts/cleanup +++ b/devscripts/cleanup @@ -1,5 +1,5 @@ #! /bin/sh cd "`dirname $0`" && -find . \( -name \*.orig -o -name \*.rej -o -name \*.tmp \) -type f -delete && +find . \( -name \*.orig -o -name \*.rej -o -name \*.tmp -o -name \*.log \) -type f -delete && exec rm -f /tmp/test-sqlite.sqdb* http://sourceforge.net/p/sqlobject/sqlobject/ci/0d02d45489718c709192c53f158ad9242d4bf5ea commit 0d02d45489718c709192c53f158ad9242d4bf5ea Author: Oleg Broytman <ph...@ph...> Date: Thu Apr 6 21:27:43 2017 +0300 Add support for PyODBC and PyPyODBC for MySQL diff --git a/appveyor.yml b/appveyor.yml index 8dda819..e7d182c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -56,6 +56,26 @@ environment: PYTHON_ARCH: "32" db: mysql TOX_ENV: "py36-mysql-connector-w32" + - PYTHON_HOME: "C:\\Python27-x64" + PYTHON_VERSION: "2.7" + PYTHON_ARCH: "64" + db: mysql + TOX_ENV: "py27-mysql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python34-x64" + PYTHON_VERSION: "3.4" + PYTHON_ARCH: "64" + db: mysql + TOX_ENV: "py34-mysql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python35-x64" + PYTHON_VERSION: "3.5" + PYTHON_ARCH: "64" + db: mysql + TOX_ENV: "py35-mysql-pyodbc-w32" + - PYTHON_HOME: "C:\\Python36-x64" + PYTHON_VERSION: "3.6" + PYTHON_ARCH: "64" + db: mysql + TOX_ENV: "py36-mysql-pyodbc-w32" - PYTHON_HOME: "C:\\Python27" PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" @@ -116,26 +136,6 @@ environment: PYTHON_ARCH: "64" db: postgresql TOX_ENV: "py36-postgres-pyodbc-w32" - - PYTHON_HOME: "C:\\Python27-x64" - PYTHON_VERSION: "2.7" - PYTHON_ARCH: "64" - db: postgresql - TOX_ENV: "py27-postgres-pypyodbc-w32" - - PYTHON_HOME: "C:\\Python34-x64" - PYTHON_VERSION: "3.4" - PYTHON_ARCH: "64" - db: postgresql - TOX_ENV: "py34-postgres-pypyodbc-w32" - - PYTHON_HOME: "C:\\Python35-x64" - PYTHON_VERSION: "3.5" - PYTHON_ARCH: "64" - db: postgresql - TOX_ENV: "py35-postgres-pypyodbc-w32" - - PYTHON_HOME: "C:\\Python36-x64" - PYTHON_VERSION: "3.6" - PYTHON_ARCH: "64" - db: postgresql - TOX_ENV: "py36-postgres-pypyodbc-w32" - PYTHON_HOME: "C:\\Python27" PYTHON_VERSION: "2.7" PYTHON_ARCH: "32" diff --git a/docs/News.rst b/docs/News.rst index 975e185..e0fea06 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -21,8 +21,8 @@ Drivers (work in progress) -------------------------- * Add support for PyODBC and PyPyODBC (pure-python ODBC DB API driver) for - PostgreSQL. Driver names are ``pyodbc``, ``pypyodbc`` or ``odbc`` (try - ``pyodbc`` and ``pypyodbc``). There are some problems. + MySQL and PostgreSQL. Driver names are ``pyodbc``, ``pypyodbc`` or + ``odbc`` (try ``pyodbc`` and ``pypyodbc``). There are some problems. Tests ----- diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index 291092a..e1b9622 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -47,14 +47,14 @@ Requirements ============ Currently SQLObject supports MySQL_ via MySQLdb_ aka MySQL-python (called -mysqlclient_ for Python 3), `MySQL Connector`_, oursql_ and PyMySQL_. For -PostgreSQL_ psycopg2_ or psycopg1 are recommended; PyGreSQL_, -py-postgresql_, PyODBC_ and PyPyODBC_ are supported but have problems (not -all tests passed). SQLite_ has a built-in driver or PySQLite_. Firebird_ -is supported via fdb_ or kinterbasdb_; pyfirebirdsql_ is supported but has -problems. `MAX DB`_ (also known as SAP DB) is supported via sapdb_. Sybase -via Sybase_. `MSSQL Server`_ via pymssql_ (+ FreeTDS_) or adodbapi_ -(Win32). +mysqlclient_ for Python 3), `MySQL Connector`_, oursql_, PyMySQL_, PyODBC_ +and PyPyODBC_. For PostgreSQL_ psycopg2_ or psycopg1 are recommended; +PyGreSQL_, py-postgresql_, PyODBC_ and PyPyODBC_ are supported but have +problems (not all tests passed). SQLite_ has a built-in driver or +PySQLite_. Firebird_ is supported via fdb_ or kinterbasdb_; pyfirebirdsql_ +is supported but has problems. `MAX DB`_ (also known as SAP DB) is +supported via sapdb_. Sybase via Sybase_. `MSSQL Server`_ via pymssql_ (+ +FreeTDS_) or adodbapi_ (Win32). .. _MySQL: https://www.mysql.com/ .. _MySQLdb: https://sourceforge.net/projects/mysql-python/ @@ -1785,7 +1785,9 @@ transactions_ when using the InnoDB backend; SQLObject can explicitly define the backend using ``sqlmeta.createSQL``. Supported drivers are ``mysqldb``, ``connector``, ``oursql`` and -``pymysql``; defualt is ``mysqldb``. +``pymysql``, ``pyodbc``, ``pypyodbc`` or ``odbc`` (try ``pyodbc`` and +``pypyodbc``); defualt is ``mysqldb``. + Keyword argument ``conv`` allows to pass a list of custom converters. Example:: diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index 05ef526..3da502b 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -8,7 +8,10 @@ from sqlobject.dbconnection import DBAPI class ErrorMessage(str): def __new__(cls, e, append_msg=''): obj = str.__new__(cls, e.args[1] + append_msg) - obj.code = int(e.args[0]) + try: + obj.code = int(e.args[0]) + except ValueError: + obj.code = e.args[0] obj.module = e.__module__ obj.exception = e.__class__.__name__ return obj @@ -67,11 +70,24 @@ class MySQLConnection(DBAPI): oursql.errnos['CR_SERVER_GONE_ERROR'] self.CR_SERVER_LOST = oursql.errnos['CR_SERVER_LOST'] self.ER_DUP_ENTRY = oursql.errnos['ER_DUP_ENTRY'] + elif driver == 'pyodbc': + import pyodbc + self.module = pyodbc + elif driver == 'pypyodbc': + import pypyodbc + self.module = pypyodbc + elif driver == 'odbc': + try: + import pyodbc + except ImportError: + import pypyodbc as pyodbc + self.module = pyodbc else: raise ValueError( 'Unknown MySQL driver "%s", ' 'expected mysqldb, connector, ' - 'oursql or pymysql' % driver) + 'oursql, pymysql, ' + 'odbc, pyodbc or pypyodbc' % driver) except ImportError: pass else: @@ -104,6 +120,11 @@ class MySQLConnection(DBAPI): self.dbEncoding = None self.driver = driver + if driver in ('odbc', 'pyodbc', 'pypyodbc'): + self.make_odbc_conn_str(db, host, port, user, password, + kw.pop('odbcdrv', + 'MySQL ODBC 5.3 ANSI Driver')) + global mysql_Bin if not PY2 and mysql_Bin is None: mysql_Bin = self.module.Binary @@ -133,12 +154,17 @@ class MySQLConnection(DBAPI): if self.driver == 'connector': self.kw['consume_results'] = True try: - conn = self.module.connect( - host=self.host, port=self.port, db=self.db, - user=self.user, passwd=self.password, **self.kw) - if self.driver != 'oursql': - # Attempt to reconnect. This setting is persistent. - conn.ping(True) + if self.driver in ('odbc', 'pyodbc', 'pypyodbc'): + self.debugWriter.write( + "ODBC connect string: " + self.odbc_conn_str) + conn = self.module.connect(self.odbc_conn_str) + else: + conn = self.module.connect( + host=self.host, port=self.port, db=self.db, + user=self.user, passwd=self.password, **self.kw) + if self.driver != 'oursql': + # Attempt to reconnect. This setting is persistent. + conn.ping(True) except self.module.OperationalError as e: conninfo = ("; used connection string: " "host=%(host)s, port=%(port)s, " @@ -236,7 +262,13 @@ class MySQLConnection(DBAPI): try: id = c.lastrowid except AttributeError: - id = c.insert_id() + try: + id = c.insert_id + except AttributeError: + self._executeRetry(conn, c, "SELECT LAST_INSERT_ID();") + id = c.fetchone()[0] + else: + id = c.insert_id() if self.debugOutput: self.printDebug(conn, id, 'QueryIns', 'result') return id @@ -274,7 +306,7 @@ class MySQLConnection(DBAPI): self.query('DESCRIBE %s' % (tableName)) return True except dberrors.ProgrammingError as e: - if e.args[0].code == 1146: # ER_NO_SUCH_TABLE + if e.args[0].code in (1146, '42S02'): # ER_NO_SUCH_TABLE return False raise diff --git a/tox.ini b/tox.ini index 7519d99..0dfb792 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql,mysql-connector,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pygresql,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql,mysql-connector,mysql-pyodbc,mysql-pypyodbc,postgres-psycopg,postgres-pyodbc,postgres-pypyodbc,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] @@ -29,8 +29,8 @@ deps = postgres-psycopg: psycopg2 postgres-pygresql: pygresql pypostgresql: py-postgresql - postgres-pyodbc: pyodbc - postgres-pypyodbc: pypyodbc + pyodbc: pyodbc + pypyodbc: pypyodbc firebird-fdb: fdb firebirdsql: firebirdsql mssql: pymssql @@ -137,6 +137,53 @@ commands = {[pymysql]commands} [testenv:py36-pymysql] commands = {[pymysql]commands} +[mysql-pyodbc] +commands = + {[testenv]commands} + {envpython} -c "import pyodbc; print(pyodbc.drivers())" + -mysql -e 'drop database sqlobject_test;' + mysql -e 'create database sqlobject_test;' + pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pyodbc&odbcdrv=MySQL&charset=utf8&debug=1 + mysql -e 'drop database sqlobject_test;' + +[testenv:py26-mysql-pyodbc] +commands = {[mysql-pyodbc]commands} + +[testenv:py27-mysql-pyodbc] +commands = {[mysql-pyodbc]commands} + +[testenv:py34-mysql-pyodbc] +commands = {[mysql-pyodbc]commands} + +[testenv:py35-mysql-pyodbc] +commands = {[mysql-pyodbc]commands} + +[testenv:py36-mysql-pyodbc] +commands = {[mysql-pyodbc]commands} + +[mysql-pypyodbc] +commands = + {[testenv]commands} + -mysql -e 'drop database sqlobject_test;' + mysql -e 'create database sqlobject_test;' + pytest --cov=sqlobject -D mysql://root:@localhost/sqlobject_test?driver=pypyodbc&odbcdrv=MySQL&charset=utf8&debug=1 + mysql -e 'drop database sqlobject_test;' + +[testenv:py26-mysql-pypyodbc] +commands = {[mysql-pypyodbc]commands} + +[testenv:py27-mysql-pypyodbc] +commands = {[mysql-pypyodbc]commands} + +[testenv:py34-mysql-pypyodbc] +commands = {[mysql-pypyodbc]commands} + +[testenv:py35-mysql-pypyodbc] +commands = {[mysql-pypyodbc]commands} + +[testenv:py36-mysql-pypyodbc] +commands = {[mysql-pypyodbc]commands} + # PostgreSQL test environments [psycopg] commands = ... 1927 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-26 01:19:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via b6c60444aefc8cb2a8a192ba38f59e61a2505ec8 (commit) via aa993f05dfaa4e12e7c501e14e70e0c2d9861f19 (commit) from ca89f873c3137c2f47e18fbb435ee0c4af3a3a4a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/b6c60444aefc8cb2a8a192ba38f59e61a2505ec8 commit b6c60444aefc8cb2a8a192ba38f59e61a2505ec8 Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 26 03:40:07 2017 +0300 Work with Python 3.6 [skip ci] diff --git a/devscripts/release b/devscripts/release index 3043a88..ee492aa 100755 --- a/devscripts/release +++ b/devscripts/release @@ -10,7 +10,7 @@ chmod -R a+rX . && python setup.py build_py && python setup.py register sdist upload --sign && -for py in 2.6 2.7 3.4 3.5; do +for py in 2.6 2.7 3.4 3.5 3.6; do find build -name '*.py[co]' -delete && python$py -m compileall build && python$py -O -m compileall build && diff --git a/devscripts/run-all-tests b/devscripts/run-all-tests index 6c1bae6..80b2e1a 100755 --- a/devscripts/run-all-tests +++ b/devscripts/run-all-tests @@ -3,7 +3,7 @@ cd "`dirname \"$0\"`"/SQLObject && SO_DIR="`dirname $0`" -for py_ver in 2.6 2.7 3.4 3.5; do +for py_ver in 2.6 2.7 3.4 3.5 3.6; do echo "---------- PYTHON $py_ver "$1" ----------" "$SO_DIR"/cleanup && PY_VER=$py_ver "$SO_DIR"/run-tests-"$1" \ diff --git a/devscripts/setup b/devscripts/setup index 8f4d2f5..315e84a 100755 --- a/devscripts/setup +++ b/devscripts/setup @@ -4,7 +4,7 @@ umask 002 # -rwxrwxr-x cd "`dirname \"$0\"`"/SQLObject && python2.6 setup.py install -O2 && -for py_ver in 2.7 3.4 3.5; do +for py_ver in 2.7 3.4 3.5 3.6; do python$py_ver -m pip install --install-option=-O2 --upgrade . done && http://sourceforge.net/p/sqlobject/sqlobject/ci/aa993f05dfaa4e12e7c501e14e70e0c2d9861f19 commit aa993f05dfaa4e12e7c501e14e70e0c2d9861f19 Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 26 01:56:20 2017 +0300 Fix tests under Python 3.6 + SQLite memory DB diff --git a/sqlobject/tests/dbtest.py b/sqlobject/tests/dbtest.py index 8ddcaa3..ed1cb48 100644 --- a/sqlobject/tests/dbtest.py +++ b/sqlobject/tests/dbtest.py @@ -101,7 +101,7 @@ def getConnection(**kw): conn.debug = True if conftest.option.show_sql_output: conn.debugOutput = True - if conn.dbName == 'sqlite': + if (conn.dbName == 'sqlite') and not conn._memory: speedupSQLiteConnection(conn) return conn ----------------------------------------------------------------------- Summary of changes: devscripts/release | 2 +- devscripts/run-all-tests | 2 +- devscripts/setup | 2 +- sqlobject/tests/dbtest.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-25 22:14:23
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via ca89f873c3137c2f47e18fbb435ee0c4af3a3a4a (commit) via 801dae53ba83aa313b281a1aa5782f84433b79e1 (commit) via 0faf96630e54a95b43e5829ac5ab5251136a0975 (commit) via 8d714e82c7fb3618c2a960ef417d799e07932170 (commit) via 093945bac78e061b5daf58a6dc544597f10b2c53 (commit) from 6c87d84438b7259af7e8348a16c3831df8abedb7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/ca89f873c3137c2f47e18fbb435ee0c4af3a3a4a commit ca89f873c3137c2f47e18fbb435ee0c4af3a3a4a Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 23:23:35 2017 +0300 Run MySQL tests at AppVeyor with Python 3.5 and 3.6 diff --git a/appveyor.yml b/appveyor.yml index ae8b89a..5966552 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,6 +29,12 @@ environment: - PYTHON: "C:\\Python34" db: mysql TOX_ENV: "py34-mysql-connector-w32" + - PYTHON: "C:\\Python35" + db: mysql + TOX_ENV: "py35-mysql-connector-w32" + - PYTHON: "C:\\Python36" + db: mysql + TOX_ENV: "py36-mysql-connector-w32" - PYTHON: "C:\\Python27" db: postgresql TOX_ENV: "py27-postgres-psycopg-w32" diff --git a/tox.ini b/tox.ini index edf6e41..3d37e1d 100644 --- a/tox.ini +++ b/tox.ini @@ -300,7 +300,7 @@ commands = {[mssql-w32]commands} commands = -mysql -u root "-pPassword12!" -e 'drop database sqlobject_test;' mysql -u root "-pPassword12!" -e 'create database sqlobject_test;' - pytest --cov=sqlobject -D "mysql://root:Password12!@localhost/sqlobject_test?driver=connector&debug=1" + pytest --cov=sqlobject -D "mysql://root:Password12!@localhost/sqlobject_test?driver=connector&charset=utf8&debug=1" mysql -u root "-pPassword12!" -e 'drop database sqlobject_test;' [testenv:py27-mysql-connector-w32] http://sourceforge.net/p/sqlobject/sqlobject/ci/801dae53ba83aa313b281a1aa5782f84433b79e1 commit 801dae53ba83aa313b281a1aa5782f84433b79e1 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 22:48:12 2017 +0300 Use mysql-connector version <= 2.2.2 mysql-connector >= 2.2.3 requires Protobuf >= 2.6.0. diff --git a/tox.ini b/tox.ini index 58c9498..edf6e41 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ deps = py{26,27}: egenix-mx-base mysqldb: mysql-python mysqlclient: mysqlclient - mysql-connector: mysql-connector + mysql-connector: mysql-connector <= 2.2.2 mysql-oursql: oursql pymysql: pymysql postgres-psycopg: psycopg2 http://sourceforge.net/p/sqlobject/sqlobject/ci/0faf96630e54a95b43e5829ac5ab5251136a0975 commit 0faf96630e54a95b43e5829ac5ab5251136a0975 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 18:27:54 2017 +0300 Disable microseconds at AppVeyor for MySQL diff --git a/sqlobject/mysql/mysqlconnection.py b/sqlobject/mysql/mysqlconnection.py index cffb7d5..05ef526 100644 --- a/sqlobject/mysql/mysqlconnection.py +++ b/sqlobject/mysql/mysqlconnection.py @@ -1,3 +1,5 @@ +import os + from sqlobject import col, dberrors from sqlobject.compat import PY2 from sqlobject.dbconnection import DBAPI @@ -411,6 +413,9 @@ class MySQLConnection(DBAPI): def can_use_microseconds(self): if self._can_use_microseconds is not None: return self._can_use_microseconds + if os.environ.get('APPVEYOR'): + self._can_use_microseconds = False + return False server_version = self.server_version() if server_version is None: return None diff --git a/sqlobject/tests/dbtest.py b/sqlobject/tests/dbtest.py index 9102d99..8ddcaa3 100644 --- a/sqlobject/tests/dbtest.py +++ b/sqlobject/tests/dbtest.py @@ -120,7 +120,11 @@ except Exception as e: if 'sphinx' not in sys.modules: print("Could not open database: %s" % e, file=sys.stderr) else: - if connection.dbName == 'firebird': + if (connection.dbName == 'firebird') \ + or ( + (connection.dbName == 'mysql') and + (os.environ.get('APPVEYOR')) + ): use_microseconds(False) diff --git a/tox.ini b/tox.ini index 38a8778..58c9498 100644 --- a/tox.ini +++ b/tox.ini @@ -24,7 +24,7 @@ deps = firebird-fdb: fdb firebirdsql: firebirdsql mssql: pymssql -passenv = CI TRAVIS TRAVIS_* PGPASSWORD +passenv = CI TRAVIS TRAVIS_* PGPASSWORD APPVEYOR # Don't fail or warn on uninstalled commands whitelist_externals = mysql http://sourceforge.net/p/sqlobject/sqlobject/ci/8d714e82c7fb3618c2a960ef417d799e07932170 commit 8d714e82c7fb3618c2a960ef417d799e07932170 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 16:30:29 2017 +0300 Refactor .travis.yml: move around some sections diff --git a/.travis.yml b/.travis.yml index d29b2ba..e7773d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,23 +18,6 @@ addons: - firebird2.5-super postgresql: "9.4" -before_install: - # Start the firebird database server. - # We use firebird-super, so there's none of the inetd configuration - # required by firebird-classic. - # We also create a test user for the firebird test and - # create a script that can be fed into isql-fb - # to create the test database. - - if [[ $TOXENV = *firebird* ]]; then - sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && - sudo /etc/init.d/firebird2.5-super start && sleep 5 && - sudo touch /var/lib/firebird/create_test_db && - sudo chmod 666 /var/lib/firebird/create_test_db && - echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && - sudo chmod 644 /var/lib/firebird/create_test_db && - sudo gsec -user sysdba -pass masterkey -add test -pw test; - fi - env: - TOXENV=py26-mysqldb - TOXENV=py27-mysqldb @@ -87,8 +70,6 @@ env: - TOXENV=py35-firebirdsql - TOXENV=py36-firebirdsql -install: travis_retry pip install tox coveralls codecov - matrix: allow_failures: - env: TOXENV=py26-postgres-pygresql @@ -109,6 +90,25 @@ matrix: - env: TOXENV=py36-firebirdsql fast_finish: true +before_install: + # Start the firebird database server. + # We use firebird-super, so there's none of the inetd configuration + # required by firebird-classic. + # We also create a test user for the firebird test and + # create a script that can be fed into isql-fb + # to create the test database. + - if [[ $TOXENV = *firebird* ]]; then + sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && + sudo /etc/init.d/firebird2.5-super start && sleep 5 && + sudo touch /var/lib/firebird/create_test_db && + sudo chmod 666 /var/lib/firebird/create_test_db && + echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && + sudo chmod 644 /var/lib/firebird/create_test_db && + sudo gsec -user sysdba -pass masterkey -add test -pw test; + fi + +install: travis_retry pip install tox coveralls codecov + script: tox -e ${TOXENV} after_success: http://sourceforge.net/p/sqlobject/sqlobject/ci/093945bac78e061b5daf58a6dc544597f10b2c53 commit 093945bac78e061b5daf58a6dc544597f10b2c53 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 16:21:46 2017 +0300 Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64 diff --git a/.travis.yml b/.travis.yml index eca2470..d29b2ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ sudo: required language: python +python: + - "3.6" + cache: pip addons: @@ -37,42 +40,52 @@ env: - TOXENV=py27-mysqldb - TOXENV=py34-mysqlclient - TOXENV=py35-mysqlclient + - TOXENV=py36-mysqlclient - TOXENV=py26-mysql-connector - TOXENV=py27-mysql-connector - TOXENV=py34-mysql-connector - TOXENV=py35-mysql-connector + - TOXENV=py36-mysql-connector - TOXENV=py26-mysql-oursql - TOXENV=py27-mysql-oursql - TOXENV=py26-pymysql - TOXENV=py27-pymysql - TOXENV=py34-pymysql - TOXENV=py35-pymysql + - TOXENV=py36-pymysql - TOXENV=py26-postgres-psycopg - TOXENV=py27-postgres-psycopg - TOXENV=py34-postgres-psycopg - TOXENV=py35-postgres-psycopg + - TOXENV=py36-postgres-psycopg - TOXENV=py26-postgres-pygresql - TOXENV=py27-postgres-pygresql - TOXENV=py34-postgres-pygresql - TOXENV=py35-postgres-pygresql + - TOXENV=py36-postgres-pygresql - TOXENV=py34-pypostgresql - TOXENV=py35-pypostgresql + - TOXENV=py36-pypostgresql - TOXENV=py26-sqlite - TOXENV=py27-sqlite - TOXENV=py34-sqlite - TOXENV=py35-sqlite + - TOXENV=py36-sqlite - TOXENV=py26-sqlite-memory - TOXENV=py27-sqlite-memory - TOXENV=py34-sqlite-memory - TOXENV=py35-sqlite-memory + - TOXENV=py36-sqlite-memory - TOXENV=py27-flake8 - TOXENV=py34-flake8 - TOXENV=py27-firebird-fdb - TOXENV=py34-firebird-fdb - TOXENV=py35-firebird-fdb + - TOXENV=py36-firebird-fdb - TOXENV=py27-firebirdsql - TOXENV=py34-firebirdsql - TOXENV=py35-firebirdsql + - TOXENV=py36-firebirdsql install: travis_retry pip install tox coveralls codecov @@ -82,14 +95,18 @@ matrix: - env: TOXENV=py27-postgres-pygresql - env: TOXENV=py34-postgres-pygresql - env: TOXENV=py35-postgres-pygresql + - env: TOXENV=py36-postgres-pygresql - env: TOXENV=py34-pypostgresql - env: TOXENV=py35-pypostgresql + - env: TOXENV=py36-pypostgresql - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb + - env: TOXENV=py36-firebird-fdb - env: TOXENV=py27-firebirdsql - env: TOXENV=py34-firebirdsql - env: TOXENV=py35-firebirdsql + - env: TOXENV=py36-firebirdsql fast_finish: true script: tox -e ${TOXENV} diff --git a/appveyor.yml b/appveyor.yml index c7ccf44..ae8b89a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,6 +47,12 @@ environment: - PYTHON: "C:\\Python35-x64" db: postgresql TOX_ENV: "py35-postgres-psycopg-w32" + - PYTHON: "C:\\Python36" + db: postgresql + TOX_ENV: "py36-postgres-psycopg-w32" + - PYTHON: "C:\\Python36-x64" + db: postgresql + TOX_ENV: "py36-postgres-psycopg-w32" - PYTHON: "C:\\Python27" TOX_ENV: "py27-sqlite-w32" - PYTHON: "C:\\Python27-x64" @@ -59,6 +65,10 @@ environment: TOX_ENV: "py35-sqlite-w32" - PYTHON: "C:\\Python35-x64" TOX_ENV: "py35-sqlite-w32" + - PYTHON: "C:\\Python36" + TOX_ENV: "py36-sqlite-w32" + - PYTHON: "C:\\Python36-x64" + TOX_ENV: "py36-sqlite-w32" - PYTHON: "C:\\Python27" TOX_ENV: "py27-sqlite-memory-w32" - PYTHON: "C:\\Python27-x64" @@ -71,6 +81,10 @@ environment: TOX_ENV: "py35-sqlite-memory-w32" - PYTHON: "C:\\Python35-x64" TOX_ENV: "py35-sqlite-memory-w32" + - PYTHON: "C:\\Python36" + TOX_ENV: "py36-sqlite-memory-w32" + - PYTHON: "C:\\Python36-x64" + TOX_ENV: "py36-sqlite-memory-w32" install: # Ensure we use the right python version diff --git a/docs/News.rst b/docs/News.rst index 57fa4c0..6123ae0 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -17,6 +17,11 @@ Minor features Some of thses scripts are version-dependent so it's better to have them in the main repo. +Tests +----- + +* Run tests at Travis CI and AppVeyor with Python 3.6, x86 and x64. + SQLObject 3.2.0 =============== diff --git a/setup.py b/setup.py index 031c43d..d4b4324 100755 --- a/setup.py +++ b/setup.py @@ -80,6 +80,7 @@ and `GitHub <https://github.com/sqlobject>`_. "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries :: Python Modules", diff --git a/tox.ini b/tox.ini index 3cd1677..38a8778 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory}-w32 +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35,36}-{mysqlclient,pypostgresql},py{26,27,34,35,36}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35,36}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35,36}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] @@ -10,7 +10,7 @@ deps = pytest pytest-cov py{26,27}: FormEncode >= 1.1.1, != 1.3.0 - py{34,35}: FormEncode >= 1.3.1 + py{34,35,36}: FormEncode >= 1.3.1 PyDispatcher>=2.0.4 py{26,27}: egenix-mx-base mysqldb: mysql-python @@ -62,6 +62,9 @@ commands = {[mysqlclient]commands} [testenv:py35-mysqlclient] commands = {[mysqlclient]commands} +[testenv:py36-mysqlclient] +commands = {[mysqlclient]commands} + [mysql-connector] commands = -mysql -e 'drop database sqlobject_test;' @@ -81,6 +84,9 @@ commands = {[mysql-connector]commands} [testenv:py35-mysql-connector] commands = {[mysql-connector]commands} +[testenv:py36-mysql-connector] +commands = {[mysql-connector]commands} + [oursql] commands = -mysql -e 'drop database sqlobject_test;' @@ -113,6 +119,9 @@ commands = {[pymysql]commands} [testenv:py35-pymysql] commands = {[pymysql]commands} +[testenv:py36-pymysql] +commands = {[pymysql]commands} + # PostgreSQL test environments [psycopg] commands = @@ -133,6 +142,9 @@ commands = {[psycopg]commands} [testenv:py35-postgres-psycopg] commands = {[psycopg]commands} +[testenv:py36-postgres-psycopg] +commands = {[psycopg]commands} + [pygresql] commands = -dropdb -U postgres -w sqlobject_test @@ -152,6 +164,9 @@ commands = {[pygresql]commands} [testenv:py35-postgres-pygresql] commands = {[pygresql]commands} +[testenv:py36-postgres-pygresql] +commands = {[pygresql]commands} + [pypostgresql] commands = -dropdb -U postgres -w sqlobject_test @@ -165,6 +180,9 @@ commands = {[pypostgresql]commands} [testenv:py35-pypostgresql] commands = {[pypostgresql]commands} +[testenv:py36-pypostgresql] +commands = {[pypostgresql]commands} + # SQLite test environments [sqlite] commands = @@ -184,6 +202,9 @@ commands = {[sqlite]commands} [testenv:py35-sqlite] commands = {[sqlite]commands} +[testenv:py36-sqlite] +commands = {[sqlite]commands} + [sqlite-memory] commands = pytest --cov=sqlobject -D sqlite:/:memory:?debug=1 @@ -200,6 +221,9 @@ commands = {[sqlite-memory]commands} [testenv:py35-sqlite-memory] commands = {[sqlite-memory]commands} +[testenv:py36-sqlite-memory] +commands = {[sqlite-memory]commands} + # Firebird database test environments [fdb] commands = @@ -217,6 +241,9 @@ commands = {[fdb]commands} [testenv:py35-firebird-fdb] commands = {[fdb]commands} +[testenv:py36-firebird-fdb] +commands = {[fdb]commands} + [firebirdsql] commands = sudo rm -f /tmp/test.fdb @@ -233,6 +260,9 @@ commands = {[firebirdsql]commands} [testenv:py35-firebirdsql] commands = {[firebirdsql]commands} +[testenv:py36-firebirdsql] +commands = {[firebirdsql]commands} + # Special test environments [testenv:py27-flake8] changedir = ./ @@ -263,6 +293,9 @@ commands = {[mssql-w32]commands} [testenv:py35-mssql-w32] commands = {[mssql-w32]commands} +[testenv:py36-mssql-w32] +commands = {[mssql-w32]commands} + [mysql-connector-w32] commands = -mysql -u root "-pPassword12!" -e 'drop database sqlobject_test;' @@ -279,6 +312,9 @@ commands = {[mysql-connector-w32]commands} [testenv:py35-mysql-connector-w32] ... 47 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-25 04:37:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 6c87d84438b7259af7e8348a16c3831df8abedb7 (commit) from dd3a93bd6d11a2580789c59f852a9b5f94c1c219 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/6c87d84438b7259af7e8348a16c3831df8abedb7 commit 6c87d84438b7259af7e8348a16c3831df8abedb7 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 25 07:15:28 2017 +0300 Change release process Edit ANNOUNCE.rst in prerelease script. Edit build-all-docs before merging upward. We stopped using ReadTheDocs. Do not commit docs - we stopped using Github/Gitlab Pages. Announce new releases at Twitter/Wiki after mailing lists. [skip ci] diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST index 43e939c..cbc08c2 100644 --- a/devscripts/RELEASE-CHECKLIST +++ b/devscripts/RELEASE-CHECKLIST @@ -2,24 +2,25 @@ tests passed. 1. Check out the release branch. If it is a stable release - edit - docs/News.rst to set release date. Commit. If it's not master - merge - to all higher branches and master. + docs/News.rst to set release date. Commit. -2. If release branch is not master - run ../prerelease $NEW_TAG; if it's - master - run ../prerelease $NEW_TAG master. +2. If it's the first stable release of the branch - edit build-all-docs, + advance stable branch. Commit. If it's not master - merge to all higher + branches and master. -2a. The script checks out the release branch and calls editor; edit - __version__.py and README.rst in the release branch - fix versions. - Edit section [egg_info] in setup.cfg - set if it is a stable or - development release. In setup.py edit "Development Status" in trove - classifiers; edit download URL: if a non-stable version - append - 'dev' and date stamp, for a stable version remove 'dev' and date - stamp). Commit. Verify. +3. If release branch is not master - run ../prerelease $NEW_TAG; if it's + master - run ../prerelease $NEW_TAG master. -3. If it's not master - null-merge to the next higher branch. +3a. The script checks out the release branch and calls editor; update + version, the list of contributors, the list of changes and download + URL in ANNOUNCE.rst; edit __version__.py and README.rst in the release + branch - fix versions. Edit section [egg_info] in setup.cfg - set if + it is a stable or development release. In setup.py edit "Development + Status" in trove classifiers; edit download URL: if a non-stable + version - append 'dev' and date stamp, for a stable version remove + 'dev' and date stamp). Commit. Verify. -4. Update version, the list of changes, the list of contributors and - download URL in ANNOUNCE.rst +4. If it's not master - null-merge to the next higher branch. 5. If release branch is not master - run ../prerelease-tag $NEW_TAG; if it's master - run ../prerelease-tag $NEW_TAG master. This checks out @@ -32,19 +33,17 @@ 7. Hide/show old releases at PyPI and SourceForge. -8. If it's the first stable release of the branch - edit build-all-docs, - advance stable branch. If it's a stable release edit stable tag at - ReadTheDocs. Generate new docs using ./build-all-docs. Commit generated - docs. Upload docs using ./publish-docs. +8. Generate new docs using ./build-all-docs. Upload docs using + ./publish-docs. 9. Run ../push-all in the development repository to push all branches and tags to the public repositories. -10. Announce new release(s) at Twitter (https://twitter.com/SQLObject) and - Wikipedia (https://en.wikipedia.org/wiki/SQLObject). If it is a stable - release - announce it at - https://en.wikipedia.org/wiki/Comparison_of_object-relational_mapping_software. - -11. Send announcement to the SQLObject mailing list. For a stable +10. Send announcement to the SQLObject mailing list. For a stable release send announcements to python, python-announce and python-db mailing lists. + +11. Announce new release(s) at Twitter (https://twitter.com/SQLObject) and + Wikipedia (https://en.wikipedia.org/wiki/SQLObject). If it is a stable + release - announce it at + https://en.wikipedia.org/wiki/Comparison_of_object-relational_mapping_software. diff --git a/devscripts/prerelease b/devscripts/prerelease index 0386c16..17ed890 100755 --- a/devscripts/prerelease +++ b/devscripts/prerelease @@ -22,5 +22,5 @@ micro = $micro release_level = '$state' serial = $serial version_info = (major, minor, micro, release_level, serial)" > sqlobject/__version__.py && -`git var GIT_EDITOR` docs/News.rst sqlobject/__version__.py README.rst setup.cfg setup.py && -exec git commit --message="Release $tag" docs/News.rst sqlobject/__version__.py README.rst setup.cfg setup.py +`git var GIT_EDITOR` ANNOUNCE.rst docs/News.rst sqlobject/__version__.py README.rst setup.cfg setup.py && +exec git commit --message="Release $tag" ANNOUNCE.rst docs/News.rst sqlobject/__version__.py README.rst setup.cfg setup.py ----------------------------------------------------------------------- Summary of changes: devscripts/RELEASE-CHECKLIST | 47 ++++++++++++++++++++++---------------------- devscripts/prerelease | 4 ++-- 2 files changed, 25 insertions(+), 26 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-22 23:11:15
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via dd3a93bd6d11a2580789c59f852a9b5f94c1c219 (commit) from fdf95c96fc2f06719af798c27825d4507f3ab9a8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/dd3a93bd6d11a2580789c59f852a9b5f94c1c219 commit dd3a93bd6d11a2580789c59f852a9b5f94c1c219 Author: Oleg Broytman <ph...@ph...> Date: Thu Mar 23 02:05:30 2017 +0300 Refactor release script [skip ci] diff --git a/devscripts/release b/devscripts/release index 21ce6e4..3043a88 100755 --- a/devscripts/release +++ b/devscripts/release @@ -10,27 +10,15 @@ chmod -R a+rX . && python setup.py build_py && python setup.py register sdist upload --sign && -for py in 6 7; do +for py in 2.6 2.7 3.4 3.5; do find build -name '*.py[co]' -delete && - python2.$py -m compileall build && - python2.$py -O -m compileall build && - python2.$py setup.py bdist_egg upload --sign || exit 1 + python$py -m compileall build && + python$py -O -m compileall build && + python$py setup.py bdist_egg upload --sign || exit 1 done -version="`python setup.py -V`" && -. `dirname $0`/split.sh && -split_tag $version - -if [ "$major" -ge 3 ]; then - find build -name '*.py[co]' -delete && - python setup.py bdist_wheel --universal upload --sign && - for py in 4 5; do - find build -name '*.py[co]' -delete && - python3.$py -m compileall build && - python3.$py -O -m compileall build && - python3.$py setup.py bdist_egg upload --sign || exit 1 - done -fi +find build -name '*.py[co]' -delete && +python setup.py bdist_wheel --universal upload --sign && if [ "$state" = final ]; then cp -a dist/* "$HOME"/tmp/ && ----------------------------------------------------------------------- Summary of changes: devscripts/release | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-21 14:34:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via fdf95c96fc2f06719af798c27825d4507f3ab9a8 (commit) via 899d057a1a2465c8f2fecd0164306a6f70858c8e (commit) via 63cdcff9efd3ada1509e8e6f2fd1ce2765c6eae6 (commit) from aa22d9f6f0c92001ac87d035d5e95d9e310f9946 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/fdf95c96fc2f06719af798c27825d4507f3ab9a8 commit fdf95c96fc2f06719af798c27825d4507f3ab9a8 Author: Oleg Broytman <ph...@ph...> Date: Tue Mar 21 17:32:16 2017 +0300 The next minor version will be 3.3. [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index 1dc2eb2..e636be5 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,12 +1,28 @@ Hello! -I'm pleased to announce version 3.2.1, the first bugfix release of branch +I'm pleased to announce version 3.3.0a1, the first alpha of the upcoming +release of branch 3.2 of SQLObject. + +I'm pleased to announce version 3.3.0a2, the second alpha of the upcoming +release of branch 3.2 of SQLObject. + +I'm pleased to announce version 3.3.0b1, the first beta of the upcoming +release of branch 3.2 of SQLObject. + +I'm pleased to announce version 3.3.0rc1, the first release candidate +of the upcoming release of branch 3.2 of SQLObject. + +I'm pleased to announce version 3.3.0, the first stable release of branch +3.2 of SQLObject. + +I'm pleased to announce version 3.3.1, the first bugfix release of branch 3.2 of SQLObject. What's new in SQLObject ======================= + Contributor for this release is For a more complete list, please see the news: @@ -42,7 +58,7 @@ Archives: http://news.gmane.org/gmane.comp.python.sqlobject Download: -https://pypi.python.org/pypi/SQLObject/3.2.1a0.dev20170311 +https://pypi.python.org/pypi/SQLObject/3.3.0a0.dev20170110 News and changes: http://sqlobject.org/News.html http://sourceforge.net/p/sqlobject/sqlobject/ci/899d057a1a2465c8f2fecd0164306a6f70858c8e commit 899d057a1a2465c8f2fecd0164306a6f70858c8e Author: Oleg Broytman <ph...@ph...> Date: Tue Mar 21 17:31:42 2017 +0300 The next bugfix version will be 3.2.1 [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst index d10189d..1dc2eb2 100644 --- a/ANNOUNCE.rst +++ b/ANNOUNCE.rst @@ -1,105 +1,13 @@ Hello! -I'm pleased to announce version 3.2.0, the first stable release of branch +I'm pleased to announce version 3.2.1, the first bugfix release of branch 3.2 of SQLObject. What's new in SQLObject ======================= -Contributor for this release is Neil Muller. - -Minor features --------------- - -* Drop table name from ``VACUUM`` command in SQLiteConnection: SQLite - doesn't vacuum a single table and SQLite 3.15 uses the supplied name as - the name of the attached database to vacuum. - -* Remove ``driver`` keyword from RdbhostConnection as it allows one driver - ``rdbhdb``. - -* Add ``driver`` keyword for FirebirdConnection. Allowed values are 'fdb', - 'kinterbasdb' and 'pyfirebirdsql'. Default is to test 'fdb' and - 'kinterbasdb' in that order. pyfirebirdsql is supported but has problems. - -* Add ``driver`` keyword for MySQLConnection. Allowed values are 'mysqldb', - 'connector', 'oursql' and 'pymysql'. Default is to test for mysqldb only. - -* Add support for `MySQL Connector - <https://pypi.python.org/pypi/mysql-connector>`_ (pure python; `binary - packages <https://dev.mysql.com/doc/connector-python/en/>`_ are not at - PyPI and hence are hard to install and test). - -* Add support for `oursql <https://github.com/python-oursql/oursql>`_ MySQL - driver (only Python 2.6 and 2.7 until oursql author fixes Python 3 - compatibility). - -* Add support for `PyMySQL <https://github.com/PyMySQL/PyMySQL/>`_ - pure - python mysql interface). - -* Add parameter ``timeout`` for MSSQLConnection (usable only with pymssql - driver); timeouts are in seconds. - -* Remove deprecated ez_setup.py. - -Drivers (work in progress) --------------------------- - -* Extend support for PyGreSQL driver. There are still some problems. - -* Add support for `py-postgresql - <https://pypi.python.org/pypi/py-postgresql>`_ PostgreSQL driver. There - are still problems with the driver. - -* Add support for `pyfirebirdsql - <https://pypi.python.org/pypi/firebirdsql>`_.There are still problems with - the driver. - -Bug fixes ---------- - -* Fix MSSQLConnection.columnsFromSchema: remove `(` and `)` from default - value. - -* Fix MSSQLConnection and SybaseConnection: insert default values into a table - with just one IDENTITY column. - -* Remove excessive NULLs from ``CREATE TABLE`` for MSSQL/Sybase. - -* Fix concatenation operator for MSSQL/Sybase (it's ``+``, not ``||``). - -* Fix MSSQLConnection.server_version() under Py3 (decode version to str). - -Documentation -------------- - -* The docs are now generated with Sphinx. - -* Move ``docs/LICENSE`` to the top-level directory so that Github - recognizes it. - -Tests ------ - -* Rename ``py.test`` -> ``pytest`` in tests and docs. - -* Great Renaming: fix ``pytest`` warnings by renaming ``TestXXX`` classes - to ``SOTestXXX`` to prevent ``pytest`` to recognize them as test classes. - -* Fix ``pytest`` warnings by converting yield tests to plain calls: yield - tests were deprecated in ``pytest``. - -* Tests are now run at CIs with Python 3.5. - -* Drop ``Circle CI``. - -* Run at Travis CI tests with Firebird backend (server version 2.5; - drivers fdb and firebirdsql). There are problems with tests. - -* Run tests at AppVeyor for windows testing. Run tests with MS SQL, - MySQL, Postgres and SQLite backends; use Python 2.7, 3.4 and 3.5, - x86 and x64. There are problems with MS SQL and MySQL. +Contributor for this release is For a more complete list, please see the news: http://sqlobject.org/News.html @@ -134,7 +42,7 @@ Archives: http://news.gmane.org/gmane.comp.python.sqlobject Download: -https://pypi.python.org/pypi/SQLObject/3.2.0 +https://pypi.python.org/pypi/SQLObject/3.2.1a0.dev20170311 News and changes: http://sqlobject.org/News.html http://sourceforge.net/p/sqlobject/sqlobject/ci/63cdcff9efd3ada1509e8e6f2fd1ce2765c6eae6 commit 63cdcff9efd3ada1509e8e6f2fd1ce2765c6eae6 Author: Oleg Broytman <ph...@ph...> Date: Tue Mar 21 17:22:04 2017 +0300 Add ANNOUNCE.rst for version 3.2.0 Announcements are rather version dependent and should have been under version control from the very beginning. [skip ci] diff --git a/ANNOUNCE.rst b/ANNOUNCE.rst new file mode 100644 index 0000000..d10189d --- /dev/null +++ b/ANNOUNCE.rst @@ -0,0 +1,140 @@ +Hello! + +I'm pleased to announce version 3.2.0, the first stable release of branch +3.2 of SQLObject. + + +What's new in SQLObject +======================= + +Contributor for this release is Neil Muller. + +Minor features +-------------- + +* Drop table name from ``VACUUM`` command in SQLiteConnection: SQLite + doesn't vacuum a single table and SQLite 3.15 uses the supplied name as + the name of the attached database to vacuum. + +* Remove ``driver`` keyword from RdbhostConnection as it allows one driver + ``rdbhdb``. + +* Add ``driver`` keyword for FirebirdConnection. Allowed values are 'fdb', + 'kinterbasdb' and 'pyfirebirdsql'. Default is to test 'fdb' and + 'kinterbasdb' in that order. pyfirebirdsql is supported but has problems. + +* Add ``driver`` keyword for MySQLConnection. Allowed values are 'mysqldb', + 'connector', 'oursql' and 'pymysql'. Default is to test for mysqldb only. + +* Add support for `MySQL Connector + <https://pypi.python.org/pypi/mysql-connector>`_ (pure python; `binary + packages <https://dev.mysql.com/doc/connector-python/en/>`_ are not at + PyPI and hence are hard to install and test). + +* Add support for `oursql <https://github.com/python-oursql/oursql>`_ MySQL + driver (only Python 2.6 and 2.7 until oursql author fixes Python 3 + compatibility). + +* Add support for `PyMySQL <https://github.com/PyMySQL/PyMySQL/>`_ - pure + python mysql interface). + +* Add parameter ``timeout`` for MSSQLConnection (usable only with pymssql + driver); timeouts are in seconds. + +* Remove deprecated ez_setup.py. + +Drivers (work in progress) +-------------------------- + +* Extend support for PyGreSQL driver. There are still some problems. + +* Add support for `py-postgresql + <https://pypi.python.org/pypi/py-postgresql>`_ PostgreSQL driver. There + are still problems with the driver. + +* Add support for `pyfirebirdsql + <https://pypi.python.org/pypi/firebirdsql>`_.There are still problems with + the driver. + +Bug fixes +--------- + +* Fix MSSQLConnection.columnsFromSchema: remove `(` and `)` from default + value. + +* Fix MSSQLConnection and SybaseConnection: insert default values into a table + with just one IDENTITY column. + +* Remove excessive NULLs from ``CREATE TABLE`` for MSSQL/Sybase. + +* Fix concatenation operator for MSSQL/Sybase (it's ``+``, not ``||``). + +* Fix MSSQLConnection.server_version() under Py3 (decode version to str). + +Documentation +------------- + +* The docs are now generated with Sphinx. + +* Move ``docs/LICENSE`` to the top-level directory so that Github + recognizes it. + +Tests +----- + +* Rename ``py.test`` -> ``pytest`` in tests and docs. + +* Great Renaming: fix ``pytest`` warnings by renaming ``TestXXX`` classes + to ``SOTestXXX`` to prevent ``pytest`` to recognize them as test classes. + +* Fix ``pytest`` warnings by converting yield tests to plain calls: yield + tests were deprecated in ``pytest``. + +* Tests are now run at CIs with Python 3.5. + +* Drop ``Circle CI``. + +* Run at Travis CI tests with Firebird backend (server version 2.5; + drivers fdb and firebirdsql). There are problems with tests. + +* Run tests at AppVeyor for windows testing. Run tests with MS SQL, + MySQL, Postgres and SQLite backends; use Python 2.7, 3.4 and 3.5, + x86 and x64. There are problems with MS SQL and MySQL. + +For a more complete list, please see the news: +http://sqlobject.org/News.html + + +What is SQLObject +================= + +SQLObject is an object-relational mapper. Your database tables are described +as classes, and rows are instances of those classes. SQLObject is meant to be +easy to use and quick to get started with. + +SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, +Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB). + +Python 2.6, 2.7 or 3.4+ is required. + + +Where is SQLObject +================== + +Site: +http://sqlobject.org + +Development: +http://sqlobject.org/devel/ + +Mailing list: +https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss + +Archives: +http://news.gmane.org/gmane.comp.python.sqlobject + +Download: +https://pypi.python.org/pypi/SQLObject/3.2.0 + +News and changes: +http://sqlobject.org/News.html diff --git a/devscripts/BRANCH-CHECKLIST b/devscripts/BRANCH-CHECKLIST index 4e64f48..61e06be 100644 --- a/devscripts/BRANCH-CHECKLIST +++ b/devscripts/BRANCH-CHECKLIST @@ -17,9 +17,7 @@ a branch, a commit id or a tag. appveyor.yml. In setup.py edit "Development Status" in trove classifiers. Commit. -1c. If the branching point was master the script updates versions in - SQLObject-master.rst. If the branching point was not master the - script updates versions in SQLObject-$branch.rst. +1c. The script updates versions in ANNOUNCE.rst. 2. To deprecate a version of Python edit files docs/News.rst, docs/SQLObject.rst, docs/TODO.rst, sqlobject/main.py, README.rst and diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST index acfc14f..43e939c 100644 --- a/devscripts/RELEASE-CHECKLIST +++ b/devscripts/RELEASE-CHECKLIST @@ -18,17 +18,17 @@ 3. If it's not master - null-merge to the next higher branch. -4. If release branch is not master - run ../prerelease-tag $NEW_TAG; if +4. Update version, the list of changes, the list of contributors and + download URL in ANNOUNCE.rst + +5. If release branch is not master - run ../prerelease-tag $NEW_TAG; if it's master - run ../prerelease-tag $NEW_TAG master. This checks out the release branch and creates the new tag at the head of the release branch. -5. Update version, the list of changes, the list of contributors and - download URL in SQLObject-$branch.rst. - 6. Run ../release. This generates and uploads new archives to PyPI and if it is a stable release - uploads archives and release announcement - (SQLObject-$branch.rst) to SourceForge. + (ANNOUNCE.rst) to SourceForge. 7. Hide/show old releases at PyPI and SourceForge. diff --git a/devscripts/branch b/devscripts/branch index e3d4771..38ca214 100755 --- a/devscripts/branch +++ b/devscripts/branch @@ -45,12 +45,8 @@ version_info = (major, minor, micro, release_level, serial)" > sqlobject/__versi `git var GIT_EDITOR` README.rst sqlobject/__version__.py docs/News.rst appveyor.yml setup.py && git commit --message="Next branch will be $major.$next_minor" README.rst sqlobject/__version__.py docs/News.rst setup.py && - cd .. && - cp -p SQLObject-master.rst SQLObject-"$branch".rst && - exec ./replace "$major\.$minor" "$major.$next_minor" SQLObject-master.rst + exec ./replace "$major\.$minor" "$major.$next_minor" ANNOUNCE.rst else - cd .. && - cp -p SQLObject-"$prev_branch".rst SQLObject-"$branch".rst && - exec ./replace "$prev_branch" "$major.$next_minor" SQLObject-"$branch".rst + exec ./replace "$prev_branch" "$major.$next_minor" ANNOUNCE.rst fi diff --git a/devscripts/release b/devscripts/release index 8e8d829..21ce6e4 100755 --- a/devscripts/release +++ b/devscripts/release @@ -35,7 +35,7 @@ fi if [ "$state" = final ]; then cp -a dist/* "$HOME"/tmp/ && rsync -ahP4 dist/* frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/ && - rsync -ahP4 ../SQLObject-"$branch".rst frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/README.rst || exit 1 + rsync -ahP4 ANNOUNCE.rst frs.sourceforge.net:/home/frs/project/sqlobject/sqlobject/"$version"/README.rst || exit 1 fi exec rm -rf build dist docs/html SQLObject.egg-info ----------------------------------------------------------------------- Summary of changes: ANNOUNCE.rst | 64 ++++++++++++++++++++++++++++++++++++++++++++ devscripts/BRANCH-CHECKLIST | 4 +-- devscripts/RELEASE-CHECKLIST | 10 +++---- devscripts/branch | 8 ++---- devscripts/release | 2 +- 5 files changed, 73 insertions(+), 15 deletions(-) create mode 100644 ANNOUNCE.rst hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-19 19:37:01
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via aa22d9f6f0c92001ac87d035d5e95d9e310f9946 (commit) from 01fee4436e02e1079fe2af3ad2a9433f30c724fb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/aa22d9f6f0c92001ac87d035d5e95d9e310f9946 commit aa22d9f6f0c92001ac87d035d5e95d9e310f9946 Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 19 21:26:01 2017 +0300 Use travis_retry to retry after a network timeout diff --git a/.travis.yml b/.travis.yml index 848791a..eca2470 100644 --- a/.travis.yml +++ b/.travis.yml @@ -74,7 +74,7 @@ env: - TOXENV=py34-firebirdsql - TOXENV=py35-firebirdsql -install: pip install tox coveralls codecov +install: travis_retry pip install tox coveralls codecov matrix: allow_failures: ----------------------------------------------------------------------- Summary of changes: .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-19 03:04:53
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 01fee4436e02e1079fe2af3ad2a9433f30c724fb (commit) via 69097bb952e46ec8b767a42e042891dcd734c080 (commit) from 1b2aaadcbbe49a1e5d8cb97937fa27f579a60b99 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/01fee4436e02e1079fe2af3ad2a9433f30c724fb commit 01fee4436e02e1079fe2af3ad2a9433f30c724fb Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 19 05:54:16 2017 +0300 Fix: ../SQLObject-docs no longer is a repo [skip ci] diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index 29fca50..5e8f286 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -7,8 +7,4 @@ build_docs() { } cd "`dirname \"$0\"`"/SQLObject && -build_docs 3.2.0 && -build_docs master devel && - -cd ../SQLObject-docs && -exec git status +build_docs 3.2.0 && exec build_docs master devel http://sourceforge.net/p/sqlobject/sqlobject/ci/69097bb952e46ec8b767a42e042891dcd734c080 commit 69097bb952e46ec8b767a42e042891dcd734c080 Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 19 05:36:10 2017 +0300 Include devscripts into sdist [skip ci] diff --git a/MANIFEST.in b/MANIFEST.in index f486d46..212861b 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,5 +2,7 @@ global-include *.py *.rst *.txt include LICENSE MANIFEST.in .travis.yml circle.yml tox.ini include debian/* sqlobject/.coveragerc include docs/Makefile docs/genapidocs docs/rebuild +recursive-include devscripts * recursive-include docs *.css *.html *.js *.gif *.png +global-exclude *.py[co] prune docs/_build ----------------------------------------------------------------------- Summary of changes: MANIFEST.in | 2 ++ devscripts/build-all-docs | 6 +----- 2 files changed, 3 insertions(+), 5 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-19 02:32:34
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 1b2aaadcbbe49a1e5d8cb97937fa27f579a60b99 (commit) from ac3e39da98448311e97d070dce6436d36750bcfd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/1b2aaadcbbe49a1e5d8cb97937fa27f579a60b99 commit 1b2aaadcbbe49a1e5d8cb97937fa27f579a60b99 Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 19 05:28:57 2017 +0300 Stop publishing docs at GitHub/GitLab Pages and PyPI [skip ci] diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs index e16b726..29fca50 100755 --- a/devscripts/build-all-docs +++ b/devscripts/build-all-docs @@ -3,8 +3,7 @@ build_docs() { git checkout "$1" && ../build-docs && - rsync -ahP --del --exclude=.git --exclude=.gitlab-ci.yml \ - --exclude=.nojekyll docs/html/ ../SQLObject-docs/"$2"/ + rsync -ahP --del docs/html/ ../SQLObject-docs/"$2"/ } cd "`dirname \"$0\"`"/SQLObject && diff --git a/devscripts/publish-docs b/devscripts/publish-docs index 10f7596..37276d7 100755 --- a/devscripts/publish-docs +++ b/devscripts/publish-docs @@ -1,7 +1,5 @@ #! /bin/sh -cd "`dirname \"$0\"`"/SQLObject-docs && -../set-commit-date.py && chmod -R u=rwX,go=rX . && -rsync -hlrtP4 --del . web.sourceforge.net:/home/project-web/sqlobject/htdocs/ && -git archive --format=zip -o "$HOME"/tmp/SQLObject-docs.zip master && -git push gl master && exec git push gh master +cd "`dirname \"$0\"`"/SQLObject-docs && chmod -R u=rwX,go=rX . && +exec rsync -hlrtP4 --del . \ + web.sourceforge.net:/home/project-web/sqlobject/htdocs/ ----------------------------------------------------------------------- Summary of changes: devscripts/build-all-docs | 3 +-- devscripts/publish-docs | 8 +++----- 2 files changed, 4 insertions(+), 7 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-19 02:24:56
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via ac3e39da98448311e97d070dce6436d36750bcfd (commit) via 8926bcf778dcf4789328618a155cdcbaa8bc2162 (commit) from 80fa7be57fa66d9acfcdc3abde1d4098bb2da12f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/ac3e39da98448311e97d070dce6436d36750bcfd commit ac3e39da98448311e97d070dce6436d36750bcfd Author: Oleg Broytman <ph...@ph...> Date: Sun Mar 19 05:02:12 2017 +0300 Convert scripts repository to devscripts subdirectory Some of thses scripts are version-dependent so it's better to have them in the main repo. [skip ci] diff --git a/devscripts/BRANCH-CHECKLIST b/devscripts/BRANCH-CHECKLIST new file mode 100644 index 0000000..4e64f48 --- /dev/null +++ b/devscripts/BRANCH-CHECKLIST @@ -0,0 +1,32 @@ +0. Run full test suite in master. Continue if all tests passed. + +1. If the branching point is master run ../branch $NEW_BRANCH. If it's +not master run ../branch $NEW_BRANCH $TREEISH, where $TREEISH is +a branch, a commit id or a tag. + +1a. The script creates a new branch and calls editor; edit README.rst, + __version__.py and News.rst in the branch - set version. In + setup.cfg in the branch edit section [publish] - uncomment doc-dest + for stable branch. In setup.py in the branch edit URL (remove + '/devel') and download URL. In setup.py and DeveloperGuide.rst edit + Travis CI build status image URL (change branch). Commit. + +1b. If the branching point was master the script checks out master and + calls editor again; edit README.rst, __version__.py and News.rst in + master - set version for the next release. Edit branch in + appveyor.yml. In setup.py edit "Development Status" in trove + classifiers. Commit. + +1c. If the branching point was master the script updates versions in + SQLObject-master.rst. If the branching point was not master the + script updates versions in SQLObject-$branch.rst. + +2. To deprecate a version of Python edit files docs/News.rst, + docs/SQLObject.rst, docs/TODO.rst, sqlobject/main.py, README.rst and + setup.py in master. + +3. Do a null-merge from the new branch to the higher branch or the + master. + +4. Run ../push-all to push all branches and tags to the public + repositories. diff --git a/devscripts/RELEASE-CHECKLIST b/devscripts/RELEASE-CHECKLIST new file mode 100644 index 0000000..acfc14f --- /dev/null +++ b/devscripts/RELEASE-CHECKLIST @@ -0,0 +1,50 @@ +0. Run full test suite in all branches and in master. Continue if all + tests passed. + +1. Check out the release branch. If it is a stable release - edit + docs/News.rst to set release date. Commit. If it's not master - merge + to all higher branches and master. + +2. If release branch is not master - run ../prerelease $NEW_TAG; if it's + master - run ../prerelease $NEW_TAG master. + +2a. The script checks out the release branch and calls editor; edit + __version__.py and README.rst in the release branch - fix versions. + Edit section [egg_info] in setup.cfg - set if it is a stable or + development release. In setup.py edit "Development Status" in trove + classifiers; edit download URL: if a non-stable version - append + 'dev' and date stamp, for a stable version remove 'dev' and date + stamp). Commit. Verify. + +3. If it's not master - null-merge to the next higher branch. + +4. If release branch is not master - run ../prerelease-tag $NEW_TAG; if + it's master - run ../prerelease-tag $NEW_TAG master. This checks out + the release branch and creates the new tag at the head of the release + branch. + +5. Update version, the list of changes, the list of contributors and + download URL in SQLObject-$branch.rst. + +6. Run ../release. This generates and uploads new archives to PyPI and + if it is a stable release - uploads archives and release announcement + (SQLObject-$branch.rst) to SourceForge. + +7. Hide/show old releases at PyPI and SourceForge. + +8. If it's the first stable release of the branch - edit build-all-docs, + advance stable branch. If it's a stable release edit stable tag at + ReadTheDocs. Generate new docs using ./build-all-docs. Commit generated + docs. Upload docs using ./publish-docs. + +9. Run ../push-all in the development repository to push all branches + and tags to the public repositories. + +10. Announce new release(s) at Twitter (https://twitter.com/SQLObject) and + Wikipedia (https://en.wikipedia.org/wiki/SQLObject). If it is a stable + release - announce it at + https://en.wikipedia.org/wiki/Comparison_of_object-relational_mapping_software. + +11. Send announcement to the SQLObject mailing list. For a stable + release send announcements to python, python-announce and python-db + mailing lists. diff --git a/devscripts/add-remotes b/devscripts/add-remotes new file mode 100755 index 0000000..3b664bd --- /dev/null +++ b/devscripts/add-remotes @@ -0,0 +1,29 @@ +#! /bin/sh + +if [ -z "$2" ]; then + echo "Usage: $0 sf-url gl-url gh-url" >&2 + exit 1 +fi + +sf_url="$1" +gl_url="$2" +gh_url="$3" + +if ! echo "$sf_url" | grep -q ^$USER@git\\.code\\.sf\\.net:/p/sqlobject/; then + echo "Usage: $0 SF-URL gl-url gh-url" >&2 + exit 1 +fi + +if ! echo "$gl_url" | grep -q ^gi...@gi...:sqlobject/; then + echo "Usage: $0 sf-url GL-URL gh-url" >&2 + exit 1 +fi + +if ! echo "$gh_url" | grep -q ^gi...@gi...:sqlobject/; then + echo "Usage: $0 sf-url gl-url GH-URL" >&2 + exit 1 +fi + + git remote add sf "$sf_url" && + git remote add gl "$gl_url" && +exec git remote add gh "$gh_url" diff --git a/devscripts/branch b/devscripts/branch new file mode 100755 index 0000000..e3d4771 --- /dev/null +++ b/devscripts/branch @@ -0,0 +1,56 @@ +#! /bin/sh + +if [ -z "$1" -o -n "$3" ]; then + echo "Usage: $0 branch [treeish]" >&2 + exit 1 +fi + +branch="$1" +treeish="$2" + +. `dirname $0`/split.sh && +branch="$1" + +if [ -z "$treeish" ]; then + treeish="master" +fi + +split_tag "`git describe --abbrev=0 \"$treeish\"`" +prev_branch="$major.$minor" + +split_tag $branch +next_minor="`expr $minor + 1`" + +git checkout -b "$branch" "$treeish" && +echo " +version = '$major.$minor' +major = $major +minor = $minor +micro = 0 +release_level = 'branch' +serial = 0 +version_info = (major, minor, micro, release_level, serial)" > sqlobject/__version__.py && +`git var GIT_EDITOR` README.rst sqlobject/__version__.py docs/News.rst setup.cfg setup.py docs/DeveloperGuide.rst && +git commit --message="Branch $branch" README.rst sqlobject/__version__.py docs/News.rst setup.cfg setup.py docs/DeveloperGuide.rst && + +if [ "$treeish" = master ]; then + git checkout master && echo " +version = '$major.$next_minor' +major = $major +minor = $next_minor +micro = 0 +release_level = 'trunk' +serial = 0 +version_info = (major, minor, micro, release_level, serial)" > sqlobject/__version__.py && + `git var GIT_EDITOR` README.rst sqlobject/__version__.py docs/News.rst appveyor.yml setup.py && + git commit --message="Next branch will be $major.$next_minor" README.rst sqlobject/__version__.py docs/News.rst setup.py && + + cd .. && + cp -p SQLObject-master.rst SQLObject-"$branch".rst && + exec ./replace "$major\.$minor" "$major.$next_minor" SQLObject-master.rst + +else + cd .. && + cp -p SQLObject-"$prev_branch".rst SQLObject-"$branch".rst && + exec ./replace "$prev_branch" "$major.$next_minor" SQLObject-"$branch".rst +fi diff --git a/devscripts/build-all-docs b/devscripts/build-all-docs new file mode 100755 index 0000000..e16b726 --- /dev/null +++ b/devscripts/build-all-docs @@ -0,0 +1,15 @@ +#! /bin/sh + +build_docs() { + git checkout "$1" && + ../build-docs && + rsync -ahP --del --exclude=.git --exclude=.gitlab-ci.yml \ + --exclude=.nojekyll docs/html/ ../SQLObject-docs/"$2"/ +} + +cd "`dirname \"$0\"`"/SQLObject && +build_docs 3.2.0 && +build_docs master devel && + +cd ../SQLObject-docs && +exec git status diff --git a/devscripts/build-docs b/devscripts/build-docs new file mode 100755 index 0000000..8f9895b --- /dev/null +++ b/devscripts/build-docs @@ -0,0 +1,5 @@ +#! /bin/sh + +cd "`dirname \"$0\"`"/SQLObject && +cd docs && +exec ./rebuild diff --git a/devscripts/cleanup b/devscripts/cleanup new file mode 100755 index 0000000..fa38d79 --- /dev/null +++ b/devscripts/cleanup @@ -0,0 +1,5 @@ +#! /bin/sh + +cd "`dirname $0`" && +find . \( -name \*.orig -o -name \*.rej -o -name \*.tmp \) -type f -delete && +exec rm -f /tmp/test-sqlite.sqdb* diff --git a/devscripts/flake8/.gitignore b/devscripts/flake8/.gitignore new file mode 100644 index 0000000..d2eae24 --- /dev/null +++ b/devscripts/flake8/.gitignore @@ -0,0 +1,5 @@ +E* +F* +W* +all-results +sort-by-lines diff --git a/devscripts/flake8/run b/devscripts/flake8/run new file mode 100755 index 0000000..2000dd6 --- /dev/null +++ b/devscripts/flake8/run @@ -0,0 +1,5 @@ +#! /bin/sh + +flake8 ../SQLObject | sort >all-results && +awk '{print $2}' all-results | sort | uniq -c | + sort -k 1,1nr -k 2,2 >sort-by-lines diff --git a/devscripts/flake8/split b/devscripts/flake8/split new file mode 100755 index 0000000..958b758 --- /dev/null +++ b/devscripts/flake8/split @@ -0,0 +1,5 @@ +#! /bin/sh + +while read _count code; do + grep -F " $code " all-results | sort -t : -k 1,1 -k 2,2nr >"$code" +done <sort-by-lines diff --git a/devscripts/git-hooks/post-checkout b/devscripts/git-hooks/post-checkout new file mode 100755 index 0000000..2bd5be0 --- /dev/null +++ b/devscripts/git-hooks/post-checkout @@ -0,0 +1,22 @@ +#!/bin/sh + +# post-checkout hook: compile python files to byte code + +prev_HEAD="$1" +new_HEAD="$2" +new_branch="$3" + +if [ "$new_branch" = 1 ]; then + # if branch was changed - remove old bytecode files, + # empty directories and outdated docs + find . -name '*.py[co]' -delete && + for d in sqlobject/include/pydispatch sqlobject/include/tests; do + if [ "`echo $d/*`" = "$d/*" ]; then rm -rf $d; fi + done && + rm -rf docs/html +fi && + +python -m compileall -q -x '\.tox/.+' . && +python -O -m compileall -q -x '\.tox/.+' . + +exit 0 diff --git a/devscripts/git-hooks/post-merge b/devscripts/git-hooks/post-merge new file mode 100755 index 0000000..633a1d0 --- /dev/null +++ b/devscripts/git-hooks/post-merge @@ -0,0 +1,8 @@ +#!/bin/sh + +# post-merge hook that compiles python files to byte code + +python -m compileall -q -x '\.tox/.+' . && +python -O -m compileall -q -x '\.tox/.+' . + +exit 0 diff --git a/devscripts/git-hooks/post-rewrite b/devscripts/git-hooks/post-rewrite new file mode 100755 index 0000000..df28442 --- /dev/null +++ b/devscripts/git-hooks/post-rewrite @@ -0,0 +1,8 @@ +#!/bin/sh + +# post-rewrite hook that compiles python files to byte code + +python -m compileall -q -x '\.tox/.+' . && +python -O -m compileall -q -x '\.tox/.+' . + +exit 0 diff --git a/devscripts/git-svn/SQLObject-gitignore/.gitignore b/devscripts/git-svn/SQLObject-gitignore/.gitignore new file mode 100644 index 0000000..52d4a58 --- /dev/null +++ b/devscripts/git-svn/SQLObject-gitignore/.gitignore @@ -0,0 +1,10 @@ +*~ +*.tmp +*.pyc +*.pyo +/MANIFEST +/SQLObject.egg-info +/build +/data +/dist +/temp diff --git a/devscripts/git-svn/SQLObject-gitignore/docs/.gitignore b/devscripts/git-svn/SQLObject-gitignore/docs/.gitignore new file mode 100644 index 0000000..5937020 --- /dev/null +++ b/devscripts/git-svn/SQLObject-gitignore/docs/.gitignore @@ -0,0 +1,3 @@ +/*.html +/data.db +/html diff --git a/devscripts/git-svn/svn2git b/devscripts/git-svn/svn2git new file mode 100755 index 0000000..e93e4f6 --- /dev/null +++ b/devscripts/git-svn/svn2git @@ -0,0 +1,55 @@ +#! /bin/sh + +if [ -z "$1" ]; then + echo "Usage: $0 svn_url [dir]" >&2 + exit 1 +fi + +url="$1" + +if [ ! -f authors.txt ]; then + echo "Run \"get-authors $1\" first" >&2 + exit 2 +fi + +if [ -z "$2" ]; then + dir="`basename $url`" +else + dir="$2" +fi + +if [ -z "$dir" ]; then + echo "Usage: $0 $url dir" >&2 + exit 1 +fi + +# init + fetch +git svn clone "$url" --authors-file=authors.txt --prefix=svn/ --stdlayout "$dir" && +cd "$dir" && + +# Convert tags and branches + +# See http://blog.jessitron.com/2013/08/converting-from-svn-to-git.html + +git for-each-ref --format="%(refname:short)" refs/remotes/svn | + sed 's#svn/##' | grep -v '^tags' | + while read aBranch; do git branch $aBranch svn/$aBranch || exit 1; done + +# See http://thomasrast.ch/git/git-svn-conversion.html + +git for-each-ref --format="%(refname:short)" refs/remotes/svn/tags/ | +while read tag; do + GIT_COMMITTER_DATE="`git log -1 --pretty=format:\"%ad\" \"$tag\"`" \ + GIT_COMMITTER_EMAIL="`git log -1 --pretty=format:\"%ce\" \"$tag\"`" \ + GIT_COMMITTER_NAME="`git log -1 --pretty=format:\"%cn\" \"$tag\"`" \ + git tag -a -m "`git for-each-ref --format=\"%(contents)\" \"$tag\"`" \ + "`echo \"$tag\" | sed 's#svn/tags/##'`" "$tag" || exit 1 +done + +# preserve authors.txt +cp -p ../authors.txt .git/info && +git config --local --path svn.authorsfile .git/info/authors.txt + +git svn gc && +git gc --aggressive && +echo "Cloned from $url using git-svn" >.git/description diff --git a/devscripts/git-svn/svn2git-fullhistory b/devscripts/git-svn/svn2git-fullhistory new file mode 100755 index 0000000..bc74b89 --- /dev/null +++ b/devscripts/git-svn/svn2git-fullhistory @@ -0,0 +1,33 @@ +#! /bin/sh + +"`dirname \"$0\"`"/svn2git \ + http://svn.colorstudy.com/SQLObject SQLObject-fullhistory && + +git init --bare SQLObject.git && +cd SQLObject.git && +echo "Bare SQLObject repository" >description && +git fetch ../SQLObject-fullhistory master:master 1.5:1.5 1.6:1.6 1.7:1.7 tag 1.5.0b1 tag 1.5.0rc1 tag 1.5.0 tag 1.5.1 tag 1.5.2 tag 1.6.0a1 tag 1.6.0b1 tag 1.6.0 tag 1.7.0b1 && + +cd .. && +git clone SQLObject.git SQLObject && rm -rf SQLObject.git && +cd SQLObject && git remote rm origin && rmdir .git/refs/remotes/origin && + +echo "Development SQLObject repository" >.git/description && +git branch --track 1.5 origin/1.5 && +git branch --track 1.6 origin/1.6 && +git branch --track 1.7 origin/1.7 && + +# Null merges +git checkout 1.6 && git merge --no-commit -s ours 1.5 && +git checkout HEAD sqlobject/main.py && git commit && + +git checkout 1.7 && git merge --no-commit -s ours 1.6 && +git checkout HEAD sqlobject/col.py && git commit && + +git checkout master && git merge --no-commit -s ours 1.7 && +git checkout HEAD setup.cfg setup.py \ + sqlobject/__version__.py sqlobject/converters.py \ + sqlobject/tests/test_converters.py sqlobject/tests/test_datetime.py && +git commit && + +exec vim .git/config diff --git a/devscripts/null-merge b/devscripts/null-merge new file mode 100755 index 0000000..036782b --- /dev/null +++ b/devscripts/null-merge @@ -0,0 +1,54 @@ +#! /bin/sh + +new_branch="" +old_branch="" + +while getopts n:o: opt; do + case $opt in + n ) new_branch="$OPTARG" ;; + o ) old_branch="$OPTARG" ;; + esac +done +shift `expr $OPTIND - 1` + +usage() { + echo "Usage: $0 [-o old_branch] [-n new_branch]|[old_branch new_branch]" >&2 + exit 1 +} + +get_current_branch() { + current_branch="`git branch | grep '^\*' | awk '{print $2}'`" +} + +if [ -n "$new_branch" ]; then + if [ -n "$old_branch" ]; then ... 670 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-11 15:55:30
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.2.0 has been created at 9a32e187527d4796bd0b0d716a0996aec9bfd434 (tag) tagging 9582ea5f09b30def878733aeb6c2684e06f749dd (commit) replaces 3.2.0b1 tagged by Oleg Broytman on Sat Mar 11 18:21:16 2017 +0300 - Log ----------------------------------------------------------------- Release 3.2.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCgAGBQJYxBXtAAoJEG4IC3C2KHsDGWUP/RF26xx4LbbXGitC1MxcIgfA qgRMDgfo+kNb0XXuTme+/Mg0Ik9zOzM5lt6gLlaTfFZUD7bEnmSSvffeJKrISiE3 EXZvo4EQr6Zr4OMuMDMjsttqaE6jQw0SiXBQZsCULiBSkW5D2NzhdpPXZnt1zkdh +T4Ug3U/eWvwhiGOKRFizOin754rPrRPBQ1iEiJB/wjwiCgCnbKbgS4FBKEQYWBv 3vmH3i/F0lw9Q8PWTY503JNCjpm/FrCSqAAWG1nENNgDvdW2DdP0ZGSngf7aO87S BJ18E4xuL4Vyzjsh4Ml4ec9eez3E8fWtTtPENx13HhKLm17/broMxv/XFAinNNZu L1YQAoGdBd5TQfw+/vEh8JPZYBtaim61/YVPKWHJIldHnAKzIWtxoJY1/QPI1PXI lplPPGK3VpUWczwuxi/j/v9R84r6E+AtgFSpSGpU0jfv2B+oBI/tJFkozfhBV6D2 RVdWMbRJZ3chW1k2f+L6DG3i64NLwWoazj5ip+dlR0hpgaFLjkWVGJaMoqNfxfvj 1AZw1TSbHS9WmEY2QmtJuYZnJcF22MxbaGVLWMvTdsSENOlNNq1Z/OWAyUoPqymK CPTWMo//jX5GQHQVClNUpIc5lNEmVgHgmwxLooJrw2aQUnyudM3DAl+DBIrzk5BI 1z6fOecDYmpvFLe1rFV8 =mw35 -----END PGP SIGNATURE----- Oleg Broytman (5): Update docs: explain branch workflow Fix github URL docs/conf.py: minor refactoring SQLObject 3.2.0 was released 11 Mar 2017 Release 3.2.0 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-11 15:55:28
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 80fa7be57fa66d9acfcdc3abde1d4098bb2da12f (commit) via 9582ea5f09b30def878733aeb6c2684e06f749dd (commit) via a668ae7d10a46ffe0cd41a4986382aaecfcd4046 (commit) from 5cf21b222d8ee8bacf31c4aab7680bf784ec65e2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/80fa7be57fa66d9acfcdc3abde1d4098bb2da12f commit 80fa7be57fa66d9acfcdc3abde1d4098bb2da12f Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 11 18:42:20 2017 +0300 The next minor release will be 3.3.0 diff --git a/README.rst b/README.rst index aeba538..173a5de 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.2.0 -=============== +SQLObject 3.3.0a0 +================= Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/appveyor.yml b/appveyor.yml index 3d95e3b..c7ccf44 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ # Install SQLObject on windows and test against MS SQL server and postgres # Heavily inspired by Oliver Grisel's appveyor-demo (https://github.com/ogrisel/python-appveyor-demo) # and Michael Sverdlik's appveyor-utils (https://github.com/cloudify-cosmo/appveyor-utils) -version: 3.2.{build} +version: 3.3.{build} # Match travis clone_depth: 50 diff --git a/docs/News.rst b/docs/News.rst index f724643..c266992 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -7,6 +7,9 @@ News .. _start: +SQLObject 3.3.0 (master) +======================== + SQLObject 3.2.0 =============== diff --git a/setup.cfg b/setup.cfg index 09f2643..4c5fd41 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [egg_info] -tag_build = -tag_date = 0 +tag_build = dev +tag_date = 1 tag_svn_revision = 0 [flake8] diff --git a/setup.py b/setup.py index ea28429..031c43d 100755 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ and `GitHub <https://github.com/sqlobject>`_. :target: https://travis-ci.org/sqlobject/sqlobject """, classifiers=[ - "Development Status :: 5 - Production/Stable", + "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: " "GNU Library or Lesser General Public License (LGPL)", diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 8d6b483..cc4f6fb 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.2.0' +version = '3.3.0' major = 3 -minor = 2 +minor = 3 micro = 0 -release_level = 'final' +release_level = 'alpha' serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/9582ea5f09b30def878733aeb6c2684e06f749dd commit 9582ea5f09b30def878733aeb6c2684e06f749dd Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 11 18:20:25 2017 +0300 Release 3.2.0 diff --git a/README.rst b/README.rst index 02a8dbf..aeba538 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -SQLObject 3.2.0b1 -================= +SQLObject 3.2.0 +=============== Thanks for looking at SQLObject. SQLObject is an object-relational mapper, i.e., a library that will wrap your database tables in Python diff --git a/setup.cfg b/setup.cfg index 4c5fd41..09f2643 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [egg_info] -tag_build = dev -tag_date = 1 +tag_build = +tag_date = 0 tag_svn_revision = 0 [flake8] diff --git a/setup.py b/setup.py index d1bd5f5..ea28429 100755 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ and `GitHub <https://github.com/sqlobject>`_. :target: https://travis-ci.org/sqlobject/sqlobject """, classifiers=[ - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: " "GNU Library or Lesser General Public License (LGPL)", @@ -89,8 +89,7 @@ and `GitHub <https://github.com/sqlobject>`_. maintainer="Oleg Broytman", maintainer_email="ph...@ph...", url="http://sqlobject.org/devel/", - download_url="https://pypi.python.org/pypi/SQLObject/%s.dev20170223" % - version, + download_url="https://pypi.python.org/pypi/SQLObject/%s" % version, license="LGPL", packages=["sqlobject"] + ['sqlobject.%s' % package for package in subpackages], diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 554ea74..8d6b483 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.2.0b1' +version = '3.2.0' major = 3 minor = 2 micro = 0 -release_level = 'beta' -serial = 1 +release_level = 'final' +serial = 0 version_info = (major, minor, micro, release_level, serial) http://sourceforge.net/p/sqlobject/sqlobject/ci/a668ae7d10a46ffe0cd41a4986382aaecfcd4046 commit a668ae7d10a46ffe0cd41a4986382aaecfcd4046 Author: Oleg Broytman <ph...@ph...> Date: Sat Mar 11 18:15:53 2017 +0300 SQLObject 3.2.0 was released 11 Mar 2017 diff --git a/docs/News.rst b/docs/News.rst index 7cce01d..f724643 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -7,8 +7,10 @@ News .. _start: -SQLObject 3.2.0 (master) -======================== +SQLObject 3.2.0 +=============== + +Released 11 Mar 2017. Minor features -------------- ----------------------------------------------------------------------- Summary of changes: README.rst | 2 +- appveyor.yml | 2 +- docs/News.rst | 7 ++++++- setup.py | 5 ++--- sqlobject/__version__.py | 8 ++++---- 5 files changed, 14 insertions(+), 10 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-10 19:04:29
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 5cf21b222d8ee8bacf31c4aab7680bf784ec65e2 (commit) from d19424a617f6ae928c74a9c65ba75a6b5931ab54 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/5cf21b222d8ee8bacf31c4aab7680bf784ec65e2 commit 5cf21b222d8ee8bacf31c4aab7680bf784ec65e2 Author: Oleg Broytman <ph...@ph...> Date: Fri Mar 10 22:03:29 2017 +0300 docs/conf.py: minor refactoring [skip ci] diff --git a/docs/conf.py b/docs/conf.py index 230944d..f8272ab 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,6 +20,7 @@ import os # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ------------------------------------------------ @@ -55,7 +56,6 @@ copyright = u'2004-%d, %s' % (date.today().year, authors) # |version| and |release|, also used in various other places throughout the # built documents. # -sys.path.insert(0, os.path.abspath('..')) from sqlobject.__version__ import version as __version__ # noqa: E402 # The short X.Y version. version = '.'.join(__version__.split('.')[:2]) ----------------------------------------------------------------------- Summary of changes: docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-08 00:47:19
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via d19424a617f6ae928c74a9c65ba75a6b5931ab54 (commit) from bb5179f953319c1db7b98cc048d7635bd996eff4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/d19424a617f6ae928c74a9c65ba75a6b5931ab54 commit d19424a617f6ae928c74a9c65ba75a6b5931ab54 Author: Oleg Broytman <ph...@ph...> Date: Wed Mar 8 03:46:22 2017 +0300 Fix github URL [skip ci] diff --git a/docs/DeveloperGuide.rst b/docs/DeveloperGuide.rst index 1b33cdd..6969978 100644 --- a/docs/DeveloperGuide.rst +++ b/docs/DeveloperGuide.rst @@ -20,7 +20,7 @@ First install `FormEncode <http://www.formencode.org/en/latest/download.html>`_: Then do the same for SQLObject:: - $ git clone git clone git://github.com/sqlobject/sqlobject + $ git clone git clone git://github.com/sqlobject/sqlobject.git $ cd sqlobject $ sudo python setup.py develop ----------------------------------------------------------------------- Summary of changes: docs/DeveloperGuide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-03-07 19:34:13
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via bb5179f953319c1db7b98cc048d7635bd996eff4 (commit) from b294c06c6cd6b5d55e015cc69c00c0c1f9b03494 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/bb5179f953319c1db7b98cc048d7635bd996eff4 commit bb5179f953319c1db7b98cc048d7635bd996eff4 Author: Oleg Broytman <ph...@ph...> Date: Tue Mar 7 22:30:22 2017 +0300 Update docs: explain branch workflow [skip ci] diff --git a/docs/DeveloperGuide.rst b/docs/DeveloperGuide.rst index 517bbcc..1b33cdd 100644 --- a/docs/DeveloperGuide.rst +++ b/docs/DeveloperGuide.rst @@ -104,6 +104,19 @@ converters. Another approach for ``from_python`` is to return an object that has ``__sqlrepr__`` method. Such objects convert to SQL strings themselves, converters are not used. +Branch workflow +=============== + +Initially ``SQLObject`` was being developed using ``Subversion``. Even +after switching to git development process somewhat preserves the old +workflow. + +The ``trunk``, called ``master`` in git, is the most advanced and the +most unstable branch. It is where new features are applied. Bug fixes +are applied to ``oldstable`` and ``stable`` branches and are merged +upward -- from ``oldstable`` to ``stable`` and from ``stable`` to +``master``. + Style Guide =========== ----------------------------------------------------------------------- Summary of changes: docs/DeveloperGuide.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-23 13:50:03
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.2.0b1 has been created at 944072c2c194c21df57df779a0d6b7abca898c0f (tag) tagging b294c06c6cd6b5d55e015cc69c00c0c1f9b03494 (commit) replaces 3.2.0a1 tagged by Oleg Broytman on Thu Feb 23 16:40:00 2017 +0300 - Log ----------------------------------------------------------------- Release 3.2.0b1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCgAGBQJYruYwAAoJEG4IC3C2KHsDFWQQALiISNay4sZLicgo7qiw2tdO hMH1tQwPqnnQagH5aI18xJJcMaQrJyf9ktuGpGri2Yzecd5F3zqZYepZOAglM+Ae J9fFECxeFAZDuo9me5VpD+sVXeKixhF03qhkz5Ucs0njKkndZd2qpeCbnsSwxS07 pLsnXX612ojohcbqJdqewUCQbT2pFDoJliK5RRbo4UL9nMrs1r5dfG6QeS9f4kvI gsve1Yn3lJ2fKY4vN3OIPrZ4mF65QSuZEIAMwL+XkXLiwwqQHtjLF0Sq9ExR1S8/ /8OFi/XrTG/+tiTTuyIJlxsyrUlnh7iQOdtsBs1CpPEJpWlgUQXoIinoGJ0PkoLT apQ5uCFayI+HsMucKr3lmRkSzqFGP9hvj8zpyG4o+NXVbDfZ2gXYMysDDW21vABB jjZd0WfJ/fjNOFQHFChlYUOBbFG3SwsxH3+80oevWS0rPOSBt/VJ+3sYb4JNCg55 OAJyj2RQvXk+e8G/IbAiW0s3u3BbcWqpg9ux3Ve+y2XhaP6V4XEypHkBBUCZ0+za jbdQqOAsbgruKADZoqMVntrivNeA/Eb6dhk8Yuc1XaDXo216zkR7xK7frCPg3tI7 veqUgkgSzN5pAV9CxEk8FKZIdXnShvifprr/2jlPks1IQNFJsHxeVDFSEICNb+/Y XYoapDa6smAzbtY0mZDg =h9X1 -----END PGP SIGNATURE----- Oleg Broytman (12): Remove pg8000 driver Start and configure Firebird server only in *firebird* environments Rename win* tox envs to *-w32 Remove the list of test dirs from mssql-w32 tox envs Run tests at AppVeyor with MySQL Run Pg and SQLite tests with Py3.5-win Rename pywin-* test envs to py-*-w32 Run tests at AppVeyor with Python-x64 Run createdb/dropdb with option -w Update docs: simplify logging example Pause for 5 seconds after starting Firebird Release 3.2.0b1 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-23 13:50:01
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The annotated tag, 3.2.0a1 has been created at baa226b15a33196f3f0fe8d4cfbfeba38b944c06 (tag) tagging 11c9d096545979fdca49bb20dd7e12bb8f295b13 (commit) replaces 3.1.0 tagged by Oleg Broytman on Sun Feb 5 19:33:49 2017 +0300 - Log ----------------------------------------------------------------- Release 3.2.0a1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCgAGBQJYl1PtAAoJEG4IC3C2KHsDN6MP/15ZXijN54YdWgeyAGbLhNoC yEIkqHnNddejrarwsKYFC7UPuu0ZtROjHpDT3l6xLRna1CCIq83jTWA9a7SkKqRR u3bk0/PumhoeDLdMXE4jlD+5wpDj3463l24UsalX0Wo2VYkQg8V4Tuf8pjmwMfJ1 mDebT8P6URfbx6f6jLPlDd4THFsTYgEDdUsgFf68KkbamPtY/LeuUhVfUkEHUu0B 3UZ3/0mCJa6cZIFBNyVJyaPd2DA4g6IteBi2SRc6PMeV0AMontdXDdekZS5rICmG rSo7zJSGTxj5hnuIJO9pHPnVv9eulsZcSuGo/rVPFv/KwmFmmUoo06c5LGScdo/n V6X5jCnP+3+3sHQFXv6YO82HH6W5e9pPW50PC4Aty/OyPzLjWVYbmQBfHV1vk0vT LGPA40KZ4qwb//Bl2BK7dTsr380VLZrtw8n8771B+HjWJvBuHoarj/zKNwgTgGQy pch5Qsflcr+38aGTbbdvptuxxYSSHotoHzbamEwcChLQGFphkWfNZvgSDC9bQQQZ RO6bc86Mjdmei5zF54Jn6vzONw/2G4E8Fv2x0i1Nvn5ouzAULD1ZGi0M6gJftvmY vXBc821WBxTpuAxaCGdfVMBBqK9BRabjEFtx6Z3JEsQHYbYe5LauMQE8q4xnxY39 bje8qILgAzsac8yK+UNE =UJEw -----END PGP SIGNATURE----- Neil (14): Fix issue 128 by dropping the table name from the call First stab at firebird support in travis Simplify firebird setup Fix firebirdsql driver parameters Rename test environment and mark fdb tests as failing for now Also mark firebirdsql as failing Trying to make appveyor work Add -w flags so postgres password issues fail Whitelist PGPASSWORD for windows Trying to get ms sql tests running reduce number of tests run for now. Use pytest-timeout to avoid mssql tests hanging Longer timeout Drop -v for pymssql. Use postgres test order so more tests are run before timeout issues kick in Oleg Broytman (153): The next release from master will be 3.2.0a0 Do not include .gitignore into sdist Add missing comma News.rst: fix grammar (passive voice) Fix strange problem manifested with py 2.7.12 Restore mxDateTime installation in tox.ini Remove global [flake8]ignore from setup.cfg Use Sphinx to build docs Use Sphinx autodoc extension to build modules' docs from docstrings Copy _build/html to docs to include into sdist and eggs Change index: add toctree and indices Build docs from the current sources Deduce version/release for docs from __version__ Use this year for copyright year in docs Ignore flake8 warning E402: import not at the top News: The docs are now generated with Sphinx Radically simplify MANIFEST.in by using global-include tox.ini: Remove basepython from flake8 environments Run tests with python3.5 Fix py.test warnings by renaming TestXXX classes to SOTestXXX Fix py.test warnings by converting yield test to plain calls Ignore .cache and .tox directories only at the top Remove SQLObjectClass from conftest.py Rename testDestroyCascade.py -> test_destroy_cascade.py The problem is related to neither tox nor Python 2.7.12 Reorder .gitignore alphabetically Remove basepython from tox.ini Use createdb/dropdb for Postgres apt-get python3-psycopg2 for tests Update docker key at Circle CI Run tests at Circle CI in parallel Remove unused whitelisted psql from tox.ini Run flake8 from root to test docs and scripts TODO: Quote table/column names that are reserved keywords Move docs/LICENSE to the top-level directory so that Github recognizes it Delete unused docs/default.css Rename py.test -> pytest in tests and docs Fix API docs Merge pull request #129 from drnlm/bugs/fix_issue_128_sqlite_3.15 Update news TODO: Type annotations and mypy tests TODO: Ultramysql Fix reST links Declarative dependencies for Travis CI Fix indent in circle.yml RdbhostConnection allows one driver ``rdbhdb`` Update news. Add ``driver`` keyword for FirebirdConnection Add ``driver`` keyword for MySQLConnection Ignore flake8 E305 error Prepare MySQLConnection to use different drivers Add support for oursql MySQL driver Add support for mysql-connector Do not ping using oursql driver Fix mysql-connector tests in tox.ini Declare mysql-connector and oursql work in progress TODO: add PyMySQL and umysqldb TODO: remove MyPy Add support for PyMySQL TODO: remove ultramysql Change URLs to PyPI in TODO TODO: reformat reST TODO: add dbms - a DB API wrapper for DB API drivers Fix bytearray encoding/decoding Rename postgres[ql] test envs to psycopg Extend support for PyGreSQL driver Add support for pg8000 PostgreSQL driver Add support for py-postgresql driver Add support for pyfirebirdsql driver Upgrade ez_setup.py Fix DevGuide: we use Sphinx instead of pudge Upgrade ez_setup.py Fix py-postgresql driver Fix pg8000 driver Reformat case statement in circle.yml Remove temporary apt-key workarounds from circle.yml Fix tests: convert data to lists and tuples Fix pg8000 driver: no need to replace password Register a converter for pg8000 Bytea type Force utf-8 charset for tests Fix pg8000: DuplicateEntryError is a kind of ProgrammingError Fix py-postgresql: register a converter for bytes Fix DuplicateEntryError in py-postgresql We fixed most problems with py-postgresql MySQL: use driver instead of module.__name__ MySQL: call set_character_set(dbEncoding) for all drivers Set charset=utf8 for test DB URIs for oursql There are major problems with pg8000 driver Drop Circle CI Drop database before tests; just in case Fix oursql dependencies Remove test where dbEncoding for a column differs from database Fix unicode test: convert everything to bytes under Py2 Fix mysql-connector driver: encode unicode query with surrogate escape Fix non-standard port for Postgres drivers Fixed mysql-connector, oursql, pymysql Merge pull request #131 from drnlm/feature/enable_firebird_testing Refactor pyXY factors in tox.ini Rename tox envs to allow running db-specific tests Set cache size for testing with pg8000 driver Handle bytes in BinaryValidator (for PyGreSQL) Refactor calls to registerConverter Update News: run at Travis CI tests with Firebird backend Fix tests for Firebird Fix test for Firebird: skip RLIKE test Merge pull request #132 from drnlm/feature/add_appveyor_for_windows_testing Update News: add appveyor for windows testing Remove excessive spaces and blank lines Run sqlite tests at AppVeyor Fix test_parse_uri.py on w32 Skip test_sslmode on w32 Update DeveloperGuide: we now use AppVeyor Add debug print in _executeRetry in MySQLConnection Force debugging output in tests: append debug=1 to DB URIs Fix tests for Firebird: prevent microseconds Fix tests for Firebird: shorten table names Fix TEXT type in id/foreign keys: Firebird doesn't have TEXT type Fix test: convert mx.DateTime to date Fix flake8 warning: change indent due to shorter class name Refactor skipping DB-specific test Run SQLite tests with in-memory DB Fix string.find - it returns -1 on error pyfirebirdsql driver is tested but has problems Add parameter ``timeout`` for MSSQLConnection (only for pymssql) Fix MSSQLConnection.columnsFromSchema: remove () from default value Fix MSSQLConnection and SybaseConnection Remove excessive NULLs for MSSQL/Sybase Fix concatenation operator for MSSQL/Sybase Fix test_auto.py: turn off microseconds for MS SQL Ignore error in case we don't have DROP permission Document newer MS SQL server versions Fix N-quoted values: under Py2 they must be bytes Fix MSSQLConnection.server_version() under Py3 Update docs Fix tests: getConnectionURI() can raise AttributeError under Sphinx Minor updates in FAQ and News Fix docs: SelectResult => SelectResults TODO: support PyODBC Remove gmane: it's currently partially offline Remove FreeNode IRC from the community docs Update docs Update links: remove outdated projects Update main docs: I => we Update main docs: stop mentioning new-style classes Update main docs: specify WebWare links Update main docs: clarify import examples Update main docs: clarify how to pass boolean parameters in DB URIs Update main docs: add AUTOINCREMENT for SQLite Update main docs: the Interbase calculator was moved Update main docs: minor clarifications, enhancements and reformatting Update main docs: list connection-specific parameters Remove deprecated ez_setup.py Release 3.2.0a1 ----------------------------------------------------------------------- hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-23 13:49:16
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via b294c06c6cd6b5d55e015cc69c00c0c1f9b03494 (commit) from 052a6f478c817f98d2d0414455990fb19ba50cf3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/b294c06c6cd6b5d55e015cc69c00c0c1f9b03494 commit b294c06c6cd6b5d55e015cc69c00c0c1f9b03494 Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 23 16:39:20 2017 +0300 Release 3.2.0b1 diff --git a/README.rst b/README.rst index c72ee14..02a8dbf 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -SQLObject 3.2.0a1 +SQLObject 3.2.0b1 ================= Thanks for looking at SQLObject. SQLObject is an object-relational diff --git a/setup.py b/setup.py index cc788d0..d1bd5f5 100755 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ and `GitHub <https://github.com/sqlobject>`_. :target: https://travis-ci.org/sqlobject/sqlobject """, classifiers=[ - "Development Status :: 3 - Alpha", + "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: " "GNU Library or Lesser General Public License (LGPL)", @@ -89,7 +89,7 @@ and `GitHub <https://github.com/sqlobject>`_. maintainer="Oleg Broytman", maintainer_email="ph...@ph...", url="http://sqlobject.org/devel/", - download_url="https://pypi.python.org/pypi/SQLObject/%s.dev20170205" % + download_url="https://pypi.python.org/pypi/SQLObject/%s.dev20170223" % version, license="LGPL", packages=["sqlobject"] + diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 61ac4eb..554ea74 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.2.0a1' +version = '3.2.0b1' major = 3 minor = 2 micro = 0 -release_level = 'alpha' +release_level = 'beta' serial = 1 version_info = (major, minor, micro, release_level, serial) ----------------------------------------------------------------------- Summary of changes: README.rst | 2 +- setup.py | 4 ++-- sqlobject/__version__.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-21 19:25:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 052a6f478c817f98d2d0414455990fb19ba50cf3 (commit) via 0aa1621e6bf08692525ebdb8fac69aed0bb42f10 (commit) from 0fee3500a949c3d0021786792082483caa82920d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/052a6f478c817f98d2d0414455990fb19ba50cf3 commit 052a6f478c817f98d2d0414455990fb19ba50cf3 Author: Oleg Broytman <ph...@ph...> Date: Tue Feb 21 22:09:53 2017 +0300 Pause for 5 seconds after starting Firebird Give the server time to warm up. diff --git a/.travis.yml b/.travis.yml index cb55d65..848791a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ before_install: # to create the test database. - if [[ $TOXENV = *firebird* ]]; then sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && - sudo /etc/init.d/firebird2.5-super start && + sudo /etc/init.d/firebird2.5-super start && sleep 5 && sudo touch /var/lib/firebird/create_test_db && sudo chmod 666 /var/lib/firebird/create_test_db && echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && http://sourceforge.net/p/sqlobject/sqlobject/ci/0aa1621e6bf08692525ebdb8fac69aed0bb42f10 commit 0aa1621e6bf08692525ebdb8fac69aed0bb42f10 Author: Oleg Broytman <ph...@ph...> Date: Fri Feb 10 14:59:41 2017 +0300 Update docs: simplify logging example [skip ci] diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index be704c2..003172e 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -1759,20 +1759,17 @@ empty SQLObject uses ``print``'s instead of logging; `loglevel` can be To configure logging one can do something like that:: import logging - logging.basicConfig() - for handler in logging.root.handlers[:]: - logging.root.removeHandler(handler) - handler = logging.FileHandler("test.log") - fmt = '[%(asctime)s] %(name)s %(levelname)s: %(message)s' - handler.setFormatter(logging.Formatter(fmt)) - logging.root.addHandler(handler) - logging.root.setLevel(logging.DEBUG) + logging.basicConfig( + filename='test.log', + format='[%(asctime)s] %(name)s %(levelname)s: %(message)s', + level=logging.DEBUG, + ) log = logging.getLogger("TEST") log.info("Log started") __connection__ = "sqlite:/:memory:?debug=1&logger=TEST&loglevel=debug" -The code redirects SQLObject debug messages to the `test.log` file. +The code redirects SQLObject debug messages to `test.log` file. MySQL ----- ----------------------------------------------------------------------- Summary of changes: .travis.yml | 2 +- docs/SQLObject.rst | 15 ++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-09 13:07:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 0fee3500a949c3d0021786792082483caa82920d (commit) via 60b412218b53f2443e1e3f701c82b223e6d7509e (commit) via ffcdbe970272a35b40e4f78d05170d83e47010c6 (commit) via 50ae1a7da60555e7da80bf10c4b5e6cfebfa8a9d (commit) via 347e63397079d08ad78ba6e616bdad93fa7bed1f (commit) via 882e147c9c5c04faf6ea7d8b9f5bae9898d36afa (commit) via 23332ccd1bd6b8c2b3bc1c0682fc8ade0e41c289 (commit) from b06003c4189912aae186244e90ed950cc641f19d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/0fee3500a949c3d0021786792082483caa82920d commit 0fee3500a949c3d0021786792082483caa82920d Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 9 14:45:18 2017 +0300 Run createdb/dropdb with option -w These are non-interactive tests. diff --git a/tox.ini b/tox.ini index 4837f8f..3cd1677 100644 --- a/tox.ini +++ b/tox.ini @@ -116,10 +116,10 @@ commands = {[pymysql]commands} # PostgreSQL test environments [psycopg] commands = - -dropdb -U postgres sqlobject_test - createdb -U postgres sqlobject_test + -dropdb -U postgres -w sqlobject_test + createdb -U postgres -w sqlobject_test pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=psycopg&charset=utf-8&debug=1 tests include/tests inheritance/tests versioning/test - dropdb -U postgres sqlobject_test + dropdb -U postgres -w sqlobject_test [testenv:py26-postgres-psycopg] commands = {[psycopg]commands} @@ -135,10 +135,10 @@ commands = {[psycopg]commands} [pygresql] commands = - -dropdb -U postgres sqlobject_test - createdb -U postgres sqlobject_test + -dropdb -U postgres -w sqlobject_test + createdb -U postgres -w sqlobject_test pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pygresql&charset=utf-8&debug=1 tests include/tests inheritance/tests versioning/test - dropdb -U postgres sqlobject_test + dropdb -U postgres -w sqlobject_test [testenv:py26-postgres-pygresql] commands = {[pygresql]commands} @@ -154,10 +154,10 @@ commands = {[pygresql]commands} [pypostgresql] commands = - -dropdb -U postgres sqlobject_test - createdb -U postgres sqlobject_test + -dropdb -U postgres -w sqlobject_test + createdb -U postgres -w sqlobject_test pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pypostgresql&charset=utf-8&debug=1 tests include/tests inheritance/tests versioning/test - dropdb -U postgres sqlobject_test + dropdb -U postgres -w sqlobject_test [testenv:py34-pypostgresql] commands = {[pypostgresql]commands} @@ -281,10 +281,10 @@ commands = {[mysql-connector-w32]commands} [psycopg-w32] commands = - -dropdb -w -U postgres sqlobject_test - createdb -w -U postgres sqlobject_test + -dropdb -U postgres -w sqlobject_test + createdb -U postgres -w sqlobject_test pytest --cov=sqlobject -D "postgres://postgres:Password12!@localhost/sqlobject_test?driver=psycopg2&charset=utf-8&debug=1" tests include/tests inheritance/tests versioning/test - dropdb -w -U postgres sqlobject_test + dropdb -U postgres -w sqlobject_test [testenv:py27-postgres-psycopg-w32] commands = {[psycopg-w32]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/60b412218b53f2443e1e3f701c82b223e6d7509e commit 60b412218b53f2443e1e3f701c82b223e6d7509e Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 9 04:41:12 2017 +0300 Run tests at AppVeyor with Python-x64 diff --git a/appveyor.yml b/appveyor.yml index 930c9c2..3d95e3b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -32,24 +32,45 @@ environment: - PYTHON: "C:\\Python27" db: postgresql TOX_ENV: "py27-postgres-psycopg-w32" + - PYTHON: "C:\\Python27-x64" + db: postgresql + TOX_ENV: "py27-postgres-psycopg-w32" - PYTHON: "C:\\Python34" db: postgresql TOX_ENV: "py34-postgres-psycopg-w32" + - PYTHON: "C:\\Python34-x64" + db: postgresql + TOX_ENV: "py34-postgres-psycopg-w32" - PYTHON: "C:\\Python35" db: postgresql TOX_ENV: "py35-postgres-psycopg-w32" + - PYTHON: "C:\\Python35-x64" + db: postgresql + TOX_ENV: "py35-postgres-psycopg-w32" - PYTHON: "C:\\Python27" TOX_ENV: "py27-sqlite-w32" + - PYTHON: "C:\\Python27-x64" + TOX_ENV: "py27-sqlite-w32" - PYTHON: "C:\\Python34" TOX_ENV: "py34-sqlite-w32" + - PYTHON: "C:\\Python34-x64" + TOX_ENV: "py34-sqlite-w32" - PYTHON: "C:\\Python35" TOX_ENV: "py35-sqlite-w32" + - PYTHON: "C:\\Python35-x64" + TOX_ENV: "py35-sqlite-w32" - PYTHON: "C:\\Python27" TOX_ENV: "py27-sqlite-memory-w32" + - PYTHON: "C:\\Python27-x64" + TOX_ENV: "py27-sqlite-memory-w32" - PYTHON: "C:\\Python34" TOX_ENV: "py34-sqlite-memory-w32" + - PYTHON: "C:\\Python34-x64" + TOX_ENV: "py34-sqlite-memory-w32" - PYTHON: "C:\\Python35" TOX_ENV: "py35-sqlite-memory-w32" + - PYTHON: "C:\\Python35-x64" + TOX_ENV: "py35-sqlite-memory-w32" install: # Ensure we use the right python version diff --git a/docs/News.rst b/docs/News.rst index 6e757d3..7cce01d 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -99,8 +99,8 @@ Tests drivers fdb and firebirdsql). There are problems with tests. * Run tests at AppVeyor for windows testing. Run tests with MS SQL, - MySQL, Postgres and SQLite backends; use Python 2.7, 3.4 and 3.5. - There are problems with MS SQL and MySQL. + MySQL, Postgres and SQLite backends; use Python 2.7, 3.4 and 3.5, + x86 and x64. There are problems with MS SQL and MySQL. SQLObject 3.1.0 =============== http://sourceforge.net/p/sqlobject/sqlobject/ci/ffcdbe970272a35b40e4f78d05170d83e47010c6 commit ffcdbe970272a35b40e4f78d05170d83e47010c6 Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 9 04:31:57 2017 +0300 Rename pywin-* test envs to py-*-w32 diff --git a/appveyor.yml b/appveyor.yml index 5d91470..930c9c2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -19,37 +19,37 @@ environment: # from https://www.appveyor.com/docs/installed-software/#python - PYTHON: "C:\\Python27" db: mssql2014 - TOX_ENV: "pywin27-mssql" + TOX_ENV: "py27-mssql-w32" - PYTHON: "C:\\Python34" db: mssql2014 - TOX_ENV: "pywin34-mssql" + TOX_ENV: "py34-mssql-w32" - PYTHON: "C:\\Python27" db: mysql - TOX_ENV: "pywin27-mysql-connector" + TOX_ENV: "py27-mysql-connector-w32" - PYTHON: "C:\\Python34" db: mysql - TOX_ENV: "pywin34-mysql-connector" + TOX_ENV: "py34-mysql-connector-w32" - PYTHON: "C:\\Python27" db: postgresql - TOX_ENV: "pywin27-postgres-psycopg" + TOX_ENV: "py27-postgres-psycopg-w32" - PYTHON: "C:\\Python34" db: postgresql - TOX_ENV: "pywin34-postgres-psycopg" + TOX_ENV: "py34-postgres-psycopg-w32" - PYTHON: "C:\\Python35" db: postgresql - TOX_ENV: "pywin35-postgres-psycopg" + TOX_ENV: "py35-postgres-psycopg-w32" - PYTHON: "C:\\Python27" - TOX_ENV: "pywin27-sqlite" + TOX_ENV: "py27-sqlite-w32" - PYTHON: "C:\\Python34" - TOX_ENV: "pywin34-sqlite" + TOX_ENV: "py34-sqlite-w32" - PYTHON: "C:\\Python35" - TOX_ENV: "pywin35-sqlite" + TOX_ENV: "py35-sqlite-w32" - PYTHON: "C:\\Python27" - TOX_ENV: "pywin27-sqlite-memory" + TOX_ENV: "py27-sqlite-memory-w32" - PYTHON: "C:\\Python34" - TOX_ENV: "pywin34-sqlite-memory" + TOX_ENV: "py34-sqlite-memory-w32" - PYTHON: "C:\\Python35" - TOX_ENV: "pywin35-sqlite-memory" + TOX_ENV: "py35-sqlite-memory-w32" install: # Ensure we use the right python version diff --git a/tox.ini b/tox.ini index 59d4946..4837f8f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,pywin{27,34,35}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory} +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,py{27,34,35}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory}-w32 # Base test environment settings [testenv] @@ -254,13 +254,13 @@ commands = pytest --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pymssql&timeout=30&debug=1" sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" -[testenv:pywin27-mssql] +[testenv:py27-mssql-w32] commands = {[mssql-w32]commands} -[testenv:pywin34-mssql] +[testenv:py34-mssql-w32] commands = {[mssql-w32]commands} -[testenv:pywin35-mssql] +[testenv:py35-mssql-w32] commands = {[mssql-w32]commands} [mysql-connector-w32] @@ -270,13 +270,13 @@ commands = pytest --cov=sqlobject -D "mysql://root:Password12!@localhost/sqlobject_test?driver=connector&debug=1" mysql -u root "-pPassword12!" -e 'drop database sqlobject_test;' -[testenv:pywin27-mysql-connector] +[testenv:py27-mysql-connector-w32] commands = {[mysql-connector-w32]commands} -[testenv:pywin34-mysql-connector] +[testenv:py34-mysql-connector-w32] commands = {[mysql-connector-w32]commands} -[testenv:pywin35-mysql-connector] +[testenv:py35-mysql-connector-w32] commands = {[mysql-connector-w32]commands} [psycopg-w32] @@ -286,37 +286,37 @@ commands = pytest --cov=sqlobject -D "postgres://postgres:Password12!@localhost/sqlobject_test?driver=psycopg2&charset=utf-8&debug=1" tests include/tests inheritance/tests versioning/test dropdb -w -U postgres sqlobject_test -[testenv:pywin27-postgres-psycopg] +[testenv:py27-postgres-psycopg-w32] commands = {[psycopg-w32]commands} -[testenv:pywin34-postgres-psycopg] +[testenv:py34-postgres-psycopg-w32] commands = {[psycopg-w32]commands} -[testenv:pywin35-postgres-psycopg] +[testenv:py35-postgres-psycopg-w32] commands = {[psycopg-w32]commands} [sqlite-w32] commands = pytest --cov=sqlobject -D sqlite:/C:/projects/sqlobject/sqlobject_test.sqdb?debug=1 -[testenv:pywin27-sqlite] +[testenv:py27-sqlite-w32] commands = {[sqlite-w32]commands} -[testenv:pywin34-sqlite] +[testenv:py34-sqlite-w32] commands = {[sqlite-w32]commands} -[testenv:pywin35-sqlite] +[testenv:py35-sqlite-w32] commands = {[sqlite-w32]commands} [sqlite-memory-w32] commands = pytest --cov=sqlobject -D sqlite:/:memory:?debug=1 -[testenv:pywin27-sqlite-memory] +[testenv:py27-sqlite-memory-w32] commands = {[sqlite-memory-w32]commands} -[testenv:pywin34-sqlite-memory] +[testenv:py34-sqlite-memory-w32] commands = {[sqlite-memory-w32]commands} -[testenv:pywin35-sqlite-memory] +[testenv:py35-sqlite-memory-w32] commands = {[sqlite-memory-w32]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/50ae1a7da60555e7da80bf10c4b5e6cfebfa8a9d commit 50ae1a7da60555e7da80bf10c4b5e6cfebfa8a9d Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 9 04:28:13 2017 +0300 Run Pg and SQLite tests with Py3.5-win diff --git a/appveyor.yml b/appveyor.yml index efa3097..5d91470 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,53 +20,36 @@ environment: - PYTHON: "C:\\Python27" db: mssql2014 TOX_ENV: "pywin27-mssql" - - PYTHON: "C:\\Python27" - db: mysql - TOX_ENV: "pywin27-mysql-connector" - - PYTHON: "C:\\Python27" - db: postgresql - TOX_ENV: "pywin27-postgres-psycopg" - #- PYTHON: "C:\\Python27-x64" - # db: mssql2014 - #- PYTHON: "C:\\Python27-x64" - # db: postgresql - PYTHON: "C:\\Python34" db: mssql2014 TOX_ENV: "pywin34-mssql" + - PYTHON: "C:\\Python27" + db: mysql + TOX_ENV: "pywin27-mysql-connector" - PYTHON: "C:\\Python34" db: mysql TOX_ENV: "pywin34-mysql-connector" + - PYTHON: "C:\\Python27" + db: postgresql + TOX_ENV: "pywin27-postgres-psycopg" - PYTHON: "C:\\Python34" db: postgresql TOX_ENV: "pywin34-postgres-psycopg" - #- PYTHON: "C:\\Python34-x64" - # db: mssql2014 - #- PYTHON: "C:\\Python34-x64" - # db: postgresql - #- PYTHON: "C:\\Python35" - # db: mssql2014 - #- PYTHON: "C:\\Python35" - # db: postgresql - #- PYTHON: "C:\\Python35-x64" - # db: mssql2014 - #- PYTHON: "C:\\Python35-x64" - # db: postgresql - #- PYTHON: "C:\\Python36" - # db: mssql2014 - #- PYTHON: "C:\\Python36" - # db: postgresql - #- PYTHON: "C:\\Python36-x64" - # db: mssql2014 - #- PYTHON: "C:\\Python36-x64" - # db: postgresql + - PYTHON: "C:\\Python35" + db: postgresql + TOX_ENV: "pywin35-postgres-psycopg" - PYTHON: "C:\\Python27" TOX_ENV: "pywin27-sqlite" - PYTHON: "C:\\Python34" TOX_ENV: "pywin34-sqlite" + - PYTHON: "C:\\Python35" + TOX_ENV: "pywin35-sqlite" - PYTHON: "C:\\Python27" TOX_ENV: "pywin27-sqlite-memory" - PYTHON: "C:\\Python34" TOX_ENV: "pywin34-sqlite-memory" + - PYTHON: "C:\\Python35" + TOX_ENV: "pywin35-sqlite-memory" install: # Ensure we use the right python version diff --git a/docs/News.rst b/docs/News.rst index df02ff6..6e757d3 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -95,11 +95,12 @@ Tests * Drop ``Circle CI``. -* Run at Travis CI tests with Firebird backend (server version 2.5; drivers fdb - and firebirdsql). There are problems with tests. +* Run at Travis CI tests with Firebird backend (server version 2.5; + drivers fdb and firebirdsql). There are problems with tests. -* Run tests at AppVeyor for windows testing. Run tests with MS SQL, MySQL, - Postgres and SQLite. There are problems with MS SQL and MySQL. +* Run tests at AppVeyor for windows testing. Run tests with MS SQL, + MySQL, Postgres and SQLite backends; use Python 2.7, 3.4 and 3.5. + There are problems with MS SQL and MySQL. SQLObject 3.1.0 =============== diff --git a/tox.ini b/tox.ini index 3e604d6..59d4946 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,pywin{27,34}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory} +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,pywin{27,34,35}-{mssql,mysql-connector,postgres-psycopg,sqlite,sqlite-memory} # Base test environment settings [testenv] @@ -260,6 +260,9 @@ commands = {[mssql-w32]commands} [testenv:pywin34-mssql] commands = {[mssql-w32]commands} +[testenv:pywin35-mssql] +commands = {[mssql-w32]commands} + [mysql-connector-w32] commands = -mysql -u root "-pPassword12!" -e 'drop database sqlobject_test;' @@ -273,6 +276,9 @@ commands = {[mysql-connector-w32]commands} [testenv:pywin34-mysql-connector] commands = {[mysql-connector-w32]commands} +[testenv:pywin35-mysql-connector] +commands = {[mysql-connector-w32]commands} + [psycopg-w32] commands = -dropdb -w -U postgres sqlobject_test @@ -286,6 +292,9 @@ commands = {[psycopg-w32]commands} [testenv:pywin34-postgres-psycopg] commands = {[psycopg-w32]commands} +[testenv:pywin35-postgres-psycopg] +commands = {[psycopg-w32]commands} + [sqlite-w32] commands = pytest --cov=sqlobject -D sqlite:/C:/projects/sqlobject/sqlobject_test.sqdb?debug=1 @@ -296,6 +305,9 @@ commands = {[sqlite-w32]commands} [testenv:pywin34-sqlite] commands = {[sqlite-w32]commands} +[testenv:pywin35-sqlite] +commands = {[sqlite-w32]commands} + [sqlite-memory-w32] commands = pytest --cov=sqlobject -D sqlite:/:memory:?debug=1 @@ -305,3 +317,6 @@ commands = {[sqlite-memory-w32]commands} [testenv:pywin34-sqlite-memory] commands = {[sqlite-memory-w32]commands} + +[testenv:pywin35-sqlite-memory] +commands = {[sqlite-memory-w32]commands} http://sourceforge.net/p/sqlobject/sqlobject/ci/347e63397079d08ad78ba6e616bdad93fa7bed1f commit 347e63397079d08ad78ba6e616bdad93fa7bed1f Author: Oleg Broytman <ph...@ph...> Date: Thu Feb 9 01:59:00 2017 +0300 Run tests at AppVeyor with MySQL diff --git a/appveyor.yml b/appveyor.yml index a92631c..efa3097 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,9 +7,11 @@ version: 3.2.{build} clone_depth: 50 services: + - mysql - postgresql environment: + MYSQL_PWD: "Password12!" PGUSER: "postgres" PGPASSWORD: "Password12!" ... 166 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-08 22:10:52
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via b06003c4189912aae186244e90ed950cc641f19d (commit) via aca6f12710642610c0711e5446efb21a6df09f3c (commit) from 11c9d096545979fdca49bb20dd7e12bb8f295b13 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/b06003c4189912aae186244e90ed950cc641f19d commit b06003c4189912aae186244e90ed950cc641f19d Author: Oleg Broytman <ph...@ph...> Date: Wed Feb 8 22:56:23 2017 +0300 Start and configure Firebird server only in *firebird* environments diff --git a/.travis.yml b/.travis.yml index 315b73c..cb55d65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,13 +15,22 @@ addons: - firebird2.5-super postgresql: "9.4" -# Start the firebird database server -# We use firebird-super, so there's none of the inetd configuration required by firebird-classic -# We also create a test user for the firebird test and create a script that can be fed into isql-fb to create the test database before_install: - - sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && sudo /etc/init.d/firebird2.5-super start - - sudo touch /var/lib/firebird/create_test_db && sudo chmod 666 /var/lib/firebird/create_test_db && echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && sudo chmod 644 /var/lib/firebird/create_test_db - - sudo gsec -user sysdba -pass masterkey -add test -pw test + # Start the firebird database server. + # We use firebird-super, so there's none of the inetd configuration + # required by firebird-classic. + # We also create a test user for the firebird test and + # create a script that can be fed into isql-fb + # to create the test database. + - if [[ $TOXENV = *firebird* ]]; then + sudo sed -i /etc/default/firebird2.5 -e 's/=no/=yes/' && + sudo /etc/init.d/firebird2.5-super start && + sudo touch /var/lib/firebird/create_test_db && + sudo chmod 666 /var/lib/firebird/create_test_db && + echo "CREATE DATABASE 'localhost:/tmp/test.fdb';" > /var/lib/firebird/create_test_db && + sudo chmod 644 /var/lib/firebird/create_test_db && + sudo gsec -user sysdba -pass masterkey -add test -pw test; + fi env: - TOXENV=py26-mysqldb http://sourceforge.net/p/sqlobject/sqlobject/ci/aca6f12710642610c0711e5446efb21a6df09f3c commit aca6f12710642610c0711e5446efb21a6df09f3c Author: Oleg Broytman <ph...@ph...> Date: Wed Feb 8 21:51:06 2017 +0300 Remove pg8000 driver There are major problems with the driver. We can reconsider it if our pull requests will be accepted. diff --git a/.travis.yml b/.travis.yml index 0f83b96..315b73c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,10 +48,6 @@ env: - TOXENV=py35-postgres-pygresql - TOXENV=py34-pypostgresql - TOXENV=py35-pypostgresql - - TOXENV=py26-postgres-pg8000 - - TOXENV=py27-postgres-pg8000 - - TOXENV=py34-postgres-pg8000 - - TOXENV=py35-postgres-pg8000 - TOXENV=py26-sqlite - TOXENV=py27-sqlite - TOXENV=py34-sqlite @@ -79,10 +75,6 @@ matrix: - env: TOXENV=py35-postgres-pygresql - env: TOXENV=py34-pypostgresql - env: TOXENV=py35-pypostgresql - - env: TOXENV=py26-postgres-pg8000 - - env: TOXENV=py27-postgres-pg8000 - - env: TOXENV=py34-postgres-pg8000 - - env: TOXENV=py35-postgres-pg8000 - env: TOXENV=py27-firebird-fdb - env: TOXENV=py34-firebird-fdb - env: TOXENV=py35-firebird-fdb diff --git a/docs/News.rst b/docs/News.rst index 534171b..b27c6dc 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -53,10 +53,6 @@ Drivers (work in progress) <https://pypi.python.org/pypi/py-postgresql>`_ PostgreSQL driver. There are still problems with the driver. -* Add support for `pg8000 <https://pypi.python.org/pypi/pg8000>`_ - PostgreSQL driver. There are major problems with the driver caused by both - the driver and SQLObject. - * Add support for `pyfirebirdsql <https://pypi.python.org/pypi/firebirdsql>`_.There are still problems with the driver. diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index 783060b..be704c2 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -48,8 +48,8 @@ Requirements Currently SQLObject supports MySQL_ via MySQLdb_ aka MySQL-python (called mysqlclient_ for Python 3), `MySQL Connector`_, oursql_ and PyMySQL_. For -PostgreSQL_ psycopg2_ or psycopg1 are recommended; PyGreSQL_, py-postgresql_ -and pg8000_ are supported but have problems (not all tests passed). SQLite_ has +PostgreSQL_ psycopg2_ or psycopg1 are recommended; PyGreSQL_ and py-postgresql_ +are supported but have problems (not all tests passed). SQLite_ has a built-in driver or PySQLite_. Firebird_ is supported via fdb_ or kinterbasdb_; pyfirebirdsql_ is supported but has problems. `MAX DB`_ (also known as SAP DB) is supported via sapdb_. Sybase via Sybase_. `MSSQL Server`_ @@ -65,7 +65,6 @@ via pymssql_ (+ FreeTDS_) or adodbapi_ (Win32). .. _psycopg2: http://initd.org/psycopg/ .. _PyGreSQL: http://www.pygresql.org/ .. _py-postgresql: https://pypi.python.org/pypi/py-postgresql -.. _pg8000: https://pypi.python.org/pypi/pg8000 .. _SQLite: https://sqlite.org/ .. _PySQLite: https://github.com/ghaering/pysqlite .. _Firebird: http://www.firebirdsql.org/en/python-driver/ @@ -1830,8 +1829,8 @@ PostgresConnection supports transactions and all other features. The user can choose a DB API driver for PostgreSQL by using a ``driver`` parameter in DB URI or PostgresConnection that can be a comma-separated list of driver names. Possible drivers are: ``psycopg2``, psycopg1, -``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pygresql``, -``pg8000`` or ``pypostgresql``. Default is ``psycopg``. +``psycopg`` (tries psycopg2 and psycopg1), ``pygresql``, ``pygresql`` +or ``pypostgresql``. Default is ``psycopg``. Connection-specific parameters are: ``sslmode``, ``unicodeCols``, ``schema``, ``charset``. diff --git a/sqlobject/postgres/pgconnection.py b/sqlobject/postgres/pgconnection.py index 5fb9f99..5920cd5 100644 --- a/sqlobject/postgres/pgconnection.py +++ b/sqlobject/postgres/pgconnection.py @@ -1,6 +1,4 @@ -from getpass import getuser import re -import sys from sqlobject import col from sqlobject import dberrors from sqlobject import sqlbuilder @@ -55,14 +53,11 @@ class PostgresConnection(DBAPI): elif driver in ('py-postgresql', 'pypostgresql'): from postgresql.driver import dbapi20 self.module = dbapi20 - elif driver == 'pg8000': - import pg8000 - self.module = pg8000 else: raise ValueError( 'Unknown PostgreSQL driver "%s", ' 'expected psycopg2, psycopg1, ' - 'pygresql, pg8000 or pypostgresql' % driver) + 'pygresql or pypostgresql' % driver) except ImportError: pass else: @@ -142,12 +137,6 @@ class PostgresConnection(DBAPI): else: if "unix" in dsn_dict: del dsn_dict["unix"] - if driver == 'pg8000': - if host and host.startswith('/'): - dsn_dict["host"] = None - dsn_dict["unix_sock"] = host - if user is None: - dsn_dict["user"] = getuser() self.driver = driver self.dsn = dsn self.unicodeCols = kw.pop('unicodeCols', False) @@ -183,11 +172,6 @@ class PostgresConnection(DBAPI): raise dberrors.OperationalError( ErrorMessage(e, "used connection string %r" % self.dsn)) - if self.driver == 'pg8000' and \ - 'sqlobject.tests.dbtest' in sys.modules and \ - hasattr(conn, 'set_cache_size'): - conn.set_cache_size(1000) # rows - # For printDebug in _executeRetry self._connectionNumbers[id(conn)] = self._connectionCount diff --git a/tox.ini b/tox.ini index cf0066a..96f4fcd 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 1.8 -envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,postgres-pg8000,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,pywin{27,34}-{mssql,postgres-psycopg,sqlite,sqlite-memory} +envlist = py{26,27}-{mysqldb,mysql-oursql},py{34,35}-{mysqlclient,pypostgresql},py{26,27,34,35}-{mysql-connector,pymysql,postgres-psycopg,postgres-pygresql,sqlite,sqlite-memory},py{27,34,35}-{firebird-fdb,firebirdsql},py{27,34}-flake8,pywin{27,34}-{mssql,postgres-psycopg,sqlite,sqlite-memory} # Base test environment settings [testenv] @@ -23,7 +23,6 @@ deps = pypostgresql: py-postgresql firebird-fdb: fdb firebirdsql: firebirdsql - postgres-pg8000: pg8000 mssql: pymssql passenv = CI TRAVIS TRAVIS_* PGPASSWORD # Don't fail or warn on uninstalled commands @@ -166,25 +165,6 @@ commands = {[pypostgresql]commands} [testenv:py35-pypostgresql] commands = {[pypostgresql]commands} -[pg8000] -commands = - -dropdb -U postgres sqlobject_test - createdb -U postgres sqlobject_test - pytest --cov=sqlobject -D postgres://postgres:@localhost/sqlobject_test?driver=pg8000&charset=utf-8&debug=1 tests include/tests inheritance/tests versioning/test - dropdb -U postgres sqlobject_test - -[testenv:py26-postgres-pg8000] -commands = {[pg8000]commands} - -[testenv:py27-postgres-pg8000] -commands = {[pg8000]commands} - -[testenv:py34-postgres-pg8000] -commands = {[pg8000]commands} - -[testenv:py35-postgres-pg8000] -commands = {[pg8000]commands} - # SQLite test environments [sqlite] commands = ----------------------------------------------------------------------- Summary of changes: .travis.yml | 29 +++++++++++++++-------------- docs/News.rst | 4 ---- docs/SQLObject.rst | 9 ++++----- sqlobject/postgres/pgconnection.py | 18 +----------------- tox.ini | 22 +--------------------- 5 files changed, 21 insertions(+), 61 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-02-05 16:44:52
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 11c9d096545979fdca49bb20dd7e12bb8f295b13 (commit) from dec28cb8e3a3aab0f819b7f2d8d45190d8cab2a4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/11c9d096545979fdca49bb20dd7e12bb8f295b13 commit 11c9d096545979fdca49bb20dd7e12bb8f295b13 Author: Oleg Broytman <ph...@ph...> Date: Sun Feb 5 19:32:45 2017 +0300 Release 3.2.0a1 diff --git a/README.rst b/README.rst index 499adf6..c72ee14 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -SQLObject 3.2.0a0 +SQLObject 3.2.0a1 ================= Thanks for looking at SQLObject. SQLObject is an object-relational diff --git a/setup.py b/setup.py index e54f83f..cc788d0 100755 --- a/setup.py +++ b/setup.py @@ -69,7 +69,7 @@ and `GitHub <https://github.com/sqlobject>`_. :target: https://travis-ci.org/sqlobject/sqlobject """, classifiers=[ - "Development Status :: 2 - Pre-Alpha", + "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: " "GNU Library or Lesser General Public License (LGPL)", @@ -89,7 +89,7 @@ and `GitHub <https://github.com/sqlobject>`_. maintainer="Oleg Broytman", maintainer_email="ph...@ph...", url="http://sqlobject.org/devel/", - download_url="https://pypi.python.org/pypi/SQLObject/%s.dev20160816" % + download_url="https://pypi.python.org/pypi/SQLObject/%s.dev20170205" % version, license="LGPL", packages=["sqlobject"] + diff --git a/sqlobject/__version__.py b/sqlobject/__version__.py index 032c6a0..61ac4eb 100644 --- a/sqlobject/__version__.py +++ b/sqlobject/__version__.py @@ -1,8 +1,8 @@ -version = '3.2.0a0' +version = '3.2.0a1' major = 3 minor = 2 micro = 0 -release_level = 'pre-alpha' -serial = 0 +release_level = 'alpha' +serial = 1 version_info = (major, minor, micro, release_level, serial) ----------------------------------------------------------------------- Summary of changes: README.rst | 2 +- setup.py | 4 ++-- sqlobject/__version__.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-01-31 21:19:04
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via dec28cb8e3a3aab0f819b7f2d8d45190d8cab2a4 (commit) via c8f304a427f12ac0786fbccf166b674703005f1c (commit) via 792dbbeb99194bb5b7b67672d1b71bf48dff81d3 (commit) via 1652e518453ee2965966c6f0e8579801d3abb6f0 (commit) via e744d39481772d5521258959f150a31ab7d39e58 (commit) via 5d4d8d224d82adfebe83c64a11d2c00382b5c6c0 (commit) via a7c1eddcee298b65aa9e48fda655baaed442ba6c (commit) via 6a3e2eb65f0ae029408f20e2026763c359074c03 (commit) via 16692fa96609c6b5f36d9370472386c52decf12b (commit) via f840a860a36c941e7946cc80e288c07fc7d904ad (commit) via adc173f290fc99b3310c4bdd47946ae1e1f933d7 (commit) via fbf0ce9dcb0c7b8cee0f1cc6dd2d300d3a11c321 (commit) via 5381f4cd73466fe3379429f5220f63f3bb3da286 (commit) via 2f0d4fe25292c317eb94139de7a89443a3b01654 (commit) via dfed78480e7d8179750bb61ce24b595b569d717b (commit) via 08fce24a80a9b723e56843fcdff5bfab67c05ade (commit) via 9d5af49f96a4b0372b3f1669376df938f68109f3 (commit) from c0962266abd0bbb729d1f1d8af4b1b1c8caf0e37 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/dec28cb8e3a3aab0f819b7f2d8d45190d8cab2a4 commit dec28cb8e3a3aab0f819b7f2d8d45190d8cab2a4 Author: Oleg Broytman <ph...@ph...> Date: Mon Jan 30 13:34:59 2017 +0300 Remove deprecated ez_setup.py diff --git a/docs/News.rst b/docs/News.rst index e25a8be..534171b 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -42,6 +42,8 @@ Minor features * Add parameter ``timeout`` for MSSQLConnection (usable only with pymssql driver); timeouts are in seconds. +* Remove deprecated ez_setup.py. + Drivers (work in progress) -------------------------- diff --git a/ez_setup.py b/ez_setup.py deleted file mode 100644 index 83c0595..0000000 --- a/ez_setup.py +++ /dev/null @@ -1,437 +0,0 @@ -#!/usr/bin/env python - -""" -Setuptools bootstrapping installer. - -Maintained at https://github.com/pypa/setuptools/tree/bootstrap. - -Run this script to install or upgrade setuptools. -""" - -import os -import shutil -import sys -import tempfile -import zipfile -import optparse -import subprocess -import platform -import textwrap -import contextlib -import json -import codecs - -from distutils import log - -try: - from urllib.request import urlopen - from urllib.parse import urljoin -except ImportError: - from urllib2 import urlopen - from urlparse import urljoin - -try: - from site import USER_SITE -except ImportError: - USER_SITE = None - -LATEST = object() -DEFAULT_VERSION = LATEST -DEFAULT_URL = "https://pypi.io/packages/source/s/setuptools/" -DEFAULT_SAVE_DIR = os.curdir - -MEANINGFUL_INVALID_ZIP_ERR_MSG = 'Maybe {0} is corrupted, delete it and try again.' - - -def _python_cmd(*args): - """ - Execute a command. - - Return True if the command succeeded. - """ - args = (sys.executable,) + args - return subprocess.call(args) == 0 - - -def _install(archive_filename, install_args=()): - """Install Setuptools.""" - with archive_context(archive_filename): - # installing - log.warn('Installing Setuptools') - if not _python_cmd('setup.py', 'install', *install_args): - log.warn('Something went wrong during the installation.') - log.warn('See the error message above.') - # exitcode will be 2 - return 2 - - -def _build_egg(egg, archive_filename, to_dir): - """Build Setuptools egg.""" - with archive_context(archive_filename): - # building an egg - log.warn('Building a Setuptools egg in %s', to_dir) - _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir) - # returning the result - log.warn(egg) - if not os.path.exists(egg): - raise IOError('Could not build the egg.') - - -class ContextualZipFile(zipfile.ZipFile): - - """Supplement ZipFile class to support context manager for Python 2.6.""" - - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - self.close() - - def __new__(cls, *args, **kwargs): - """Construct a ZipFile or ContextualZipFile as appropriate.""" - if hasattr(zipfile.ZipFile, '__exit__'): - return zipfile.ZipFile(*args, **kwargs) - return super(ContextualZipFile, cls).__new__(cls) - - -...@co...ntextmanager -def archive_context(filename): - """ - Unzip filename to a temporary directory, set to the cwd. - - The unzipped target is cleaned up after. - """ - tmpdir = tempfile.mkdtemp() - log.warn('Extracting in %s', tmpdir) - old_wd = os.getcwd() - try: - os.chdir(tmpdir) - try: - with ContextualZipFile(filename) as archive: - archive.extractall() - except zipfile.BadZipfile as err: - if not err.args: - err.args = ('', ) - err.args = err.args + ( - MEANINGFUL_INVALID_ZIP_ERR_MSG.format(filename), - ) - raise - - # going in the directory - subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0]) - os.chdir(subdir) - log.warn('Now working in %s', subdir) - yield - - finally: - os.chdir(old_wd) - shutil.rmtree(tmpdir) - - -def _do_download(version, download_base, to_dir, download_delay): - """Download Setuptools.""" - py_desig = 'py{sys.version_info[0]}.{sys.version_info[1]}'.format(sys=sys) - tp = 'setuptools-{version}-{py_desig}.egg' - egg = os.path.join(to_dir, tp.format(**locals())) - if not os.path.exists(egg): - archive = download_setuptools(version, download_base, - to_dir, download_delay) - _build_egg(egg, archive, to_dir) - sys.path.insert(0, egg) - - # Remove previously-imported pkg_resources if present (see - # https://bitbucket.org/pypa/setuptools/pull-request/7/ for details). - if 'pkg_resources' in sys.modules: - _unload_pkg_resources() - - import setuptools - setuptools.bootstrap_install_from = egg - - -def use_setuptools( - version=DEFAULT_VERSION, download_base=DEFAULT_URL, - to_dir=DEFAULT_SAVE_DIR, download_delay=15): - """ - Ensure that a setuptools version is installed. - - Return None. Raise SystemExit if the requested version - or later cannot be installed. - """ - version = _resolve_version(version) - to_dir = os.path.abspath(to_dir) - - # prior to importing, capture the module state for - # representative modules. - rep_modules = 'pkg_resources', 'setuptools' - imported = set(sys.modules).intersection(rep_modules) - - try: - import pkg_resources - pkg_resources.require("setuptools>=" + version) - # a suitable version is already installed - return - except ImportError: - # pkg_resources not available; setuptools is not installed; download - pass - except pkg_resources.DistributionNotFound: - # no version of setuptools was found; allow download - pass - except pkg_resources.VersionConflict as VC_err: - if imported: - _conflict_bail(VC_err, version) - - # otherwise, unload pkg_resources to allow the downloaded version to - # take precedence. - del pkg_resources - _unload_pkg_resources() - - return _do_download(version, download_base, to_dir, download_delay) - - -def _conflict_bail(VC_err, version): - """ - Setuptools was imported prior to invocation, so it is - unsafe to unload it. Bail out. - """ - conflict_tmpl = textwrap.dedent(""" - The required version of setuptools (>={version}) is not available, - and can't be installed while this script is running. Please - install a more recent version first, using - 'easy_install -U setuptools'. - - (Currently using {VC_err.args[0]!r}) - """) - msg = conflict_tmpl.format(**locals()) - sys.stderr.write(msg) - sys.exit(2) - - -def _unload_pkg_resources(): - sys.meta_path = [ - importer - for importer in sys.meta_path - if importer.__class__.__module__ != 'pkg_resources.extern' - ] - del_modules = [ - name for name in sys.modules - if name.startswith('pkg_resources') - ] - for mod_name in del_modules: - del sys.modules[mod_name] - - -def _clean_check(cmd, target): - """ - Run the command to download target. - - If the command fails, clean up before re-raising the error. - """ - try: - subprocess.check_call(cmd) - except subprocess.CalledProcessError: - if os.access(target, os.F_OK): - os.unlink(target) - raise - - -def download_file_powershell(url, target): - """ - Download the file at url to target using Powershell. - - Powershell will validate trust. - Raise an exception if the command cannot complete. - """ - target = os.path.abspath(target) - ps_cmd = ( - "[System.Net.WebRequest]::DefaultWebProxy.Credentials = " - "[System.Net.CredentialCache]::DefaultCredentials; " - '(new-object System.Net.WebClient).DownloadFile("%(url)s", "%(target)s")' - % locals() - ) - cmd = [ - 'powershell', - '-Command', - ps_cmd, - ] - _clean_check(cmd, target) - - -def has_powershell(): - """Determine if Powershell is available.""" - if platform.system() != 'Windows': - return False - cmd = ['powershell', '-Command', 'echo test'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True -download_file_powershell.viable = has_powershell - - -def download_file_curl(url, target): - cmd = ['curl', url, '--location', '--silent', '--output', target] - _clean_check(cmd, target) - - -def has_curl(): - cmd = ['curl', '--version'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True -download_file_curl.viable = has_curl - - -def download_file_wget(url, target): - cmd = ['wget', url, '--quiet', '--output-document', target] - _clean_check(cmd, target) - - -def has_wget(): - cmd = ['wget', '--version'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True -download_file_wget.viable = has_wget - - -def download_file_insecure(url, target): - """Use Python to download the file, without connection authentication.""" - src = urlopen(url) - try: - # Read all the data in one block. - data = src.read() - finally: - src.close() - - # Write all the data in one block to avoid creating a partial file. - with open(target, "wb") as dst: - dst.write(data) -download_file_insecure.viable = lambda: True - - -def get_best_downloader(): - downloaders = ( - download_file_powershell, - download_file_curl, - download_file_wget, - download_file_insecure, - ) - viable_downloaders = (dl for dl in downloaders if dl.viable()) - return next(viable_downloaders, None) - - -def download_setuptools( - version=DEFAULT_VERSION, download_base=DEFAULT_URL, - to_dir=DEFAULT_SAVE_DIR, delay=15, - downloader_factory=get_best_downloader): - """ - Download setuptools from a specified location and return its filename. - - `version` should be a valid setuptools version number that is available - as an sdist for download under the `download_base` URL (which should end - with a '/'). `to_dir` is the directory where the egg will be downloaded. - `delay` is the number of seconds to pause before an actual download - attempt. - - ``downloader_factory`` should be a function taking no arguments and - returning a function for downloading a URL to a target. - """ - version = _resolve_version(version) - # making sure we use the absolute path - to_dir = os.path.abspath(to_dir) - zip_name = "setuptools-%s.zip" % version - url = download_base + zip_name - saveto = os.path.join(to_dir, zip_name) - if not os.path.exists(saveto): # Avoid repeated downloads - log.warn("Downloading %s", url) - downloader = downloader_factory() - downloader(url, saveto) - return os.path.realpath(saveto) - - -def _resolve_version(version): - """ - Resolve LATEST version - """ - if version is not LATEST: - return version - - meta_url = urljoin(DEFAULT_URL, '/pypi/setuptools/json') - resp = urlopen(meta_url) - fallback = 'UTF-8' - with contextlib.closing(resp): - try: - charset = resp.info().get_content_charset(fallback) - except Exception: - # Python 2 compat - charset = fallback - reader = codecs.getreader(charset) - doc = json.load(reader(resp)) - - return str(doc['info']['version']) - - -def _build_install_args(options): - """ - Build the arguments to 'python setup.py install' on the setuptools package. - - Returns list of command line arguments. - """ - return ['--user'] if options.user_install else [] - - -def _parse_args(): - """Parse the command line for options.""" - parser = optparse.OptionParser() - parser.add_option( - '--user', dest='user_install', action='store_true', default=False, - help='install in user site package') - parser.add_option( - '--download-base', dest='download_base', metavar="URL", - default=DEFAULT_URL, - help='alternative URL from where to download the setuptools package') - parser.add_option( - '--insecure', dest='downloader_factory', action='store_const', - const=lambda: download_file_insecure, default=get_best_downloader, - help='Use internal, non-validating downloader' - ) - parser.add_option( - '--version', help="Specify which version to download", - default=DEFAULT_VERSION, - ) - parser.add_option( - '--to-dir', - help="Directory to save (and re-use) package", - default=DEFAULT_SAVE_DIR, - ) - options, args = parser.parse_args() - # positional arguments are ignored - return options - - -def _download_args(options): - """Return args for download_setuptools function from cmdline args.""" - return dict( - version=options.version, - download_base=options.download_base, - downloader_factory=options.downloader_factory, - to_dir=options.to_dir, - ) - - -def main(): - """Install or upgrade setuptools and EasyInstall.""" - options = _parse_args() - archive = download_setuptools(**_download_args(options)) - return _install(archive, _build_install_args(options)) - -if __name__ == '__main__': - sys.exit(main()) diff --git a/setup.py b/setup.py index d7e4d7d..e54f83f 100755 --- a/setup.py +++ b/setup.py @@ -5,8 +5,6 @@ from imp import load_source from os.path import abspath, dirname, join try: - from ez_setup import use_setuptools - use_setuptools() from setuptools import setup is_setuptools = True ... 964 lines suppressed ... hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-01-20 17:55:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via c0962266abd0bbb729d1f1d8af4b1b1c8caf0e37 (commit) via 9ddd0080803c7f88ab5da772fea811a7736ec1b7 (commit) from 1c6f0a43ea6d29d84979687f4f0b6d1d1ab30c9c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/c0962266abd0bbb729d1f1d8af4b1b1c8caf0e37 commit c0962266abd0bbb729d1f1d8af4b1b1c8caf0e37 Author: Oleg Broytman <ph...@ph...> Date: Fri Jan 20 20:53:00 2017 +0300 Fix tests: getConnectionURI() can raise AttributeError under Sphinx diff --git a/sqlobject/tests/test_mysql.py b/sqlobject/tests/test_mysql.py index d712ed0..de4b040 100644 --- a/sqlobject/tests/test_mysql.py +++ b/sqlobject/tests/test_mysql.py @@ -5,7 +5,7 @@ from sqlobject.tests.dbtest import getConnection, setupClass try: connection = getConnection() -except NameError: +except (AttributeError, NameError): # The module was imported during documentation building pass else: diff --git a/sqlobject/tests/test_postgres.py b/sqlobject/tests/test_postgres.py index ab01717..e656ce7 100644 --- a/sqlobject/tests/test_postgres.py +++ b/sqlobject/tests/test_postgres.py @@ -11,7 +11,7 @@ from sqlobject.tests.dbtest import getConnection, setupClass try: connection = getConnection() -except NameError: +except (AttributeError, NameError): # The module was imported during documentation building pass else: diff --git a/sqlobject/tests/test_sqlite.py b/sqlobject/tests/test_sqlite.py index b782eea..442ecf3 100644 --- a/sqlobject/tests/test_sqlite.py +++ b/sqlobject/tests/test_sqlite.py @@ -9,7 +9,7 @@ from .test_basic import SOTestSO1 try: connection = getConnection() -except NameError: +except (AttributeError, NameError): # The module was imported during documentation building pass else: http://sourceforge.net/p/sqlobject/sqlobject/ci/9ddd0080803c7f88ab5da772fea811a7736ec1b7 commit 9ddd0080803c7f88ab5da772fea811a7736ec1b7 Author: Oleg Broytman <ph...@ph...> Date: Fri Jan 20 20:46:49 2017 +0300 Update docs [skip ci] diff --git a/docs/News.rst b/docs/News.rst index 4f2f853..d68d8a7 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -20,9 +20,9 @@ Minor features * Remove ``driver`` keyword from RdbhostConnection as it allows one driver ``rdbhdb``. -* Add ``driver`` keyword for FirebirdConnection. Allowed values are 'fdb' - or 'kinterbasdb'. Default is to test 'fdb' and 'kinterbasdb' in that - order. pyfirebirdsql is supported but has problems. +* Add ``driver`` keyword for FirebirdConnection. Allowed values are 'fdb', + 'kinterbasdb' and 'pyfirebirdsql'. Default is to test 'fdb' and + 'kinterbasdb' in that order. pyfirebirdsql is supported but has problems. * Add ``driver`` keyword for MySQLConnection. Allowed value are 'mysqldb', 'connector', 'oursql' and 'pymysql'. Default is to test for mysqldb only. @@ -54,12 +54,15 @@ Drivers (work in progress) PostgreSQL driver. There are major problems with the driver caused by both the driver and SQLObject. -* Add support for `pyfirebirdsql <https://pypi.python.org/pypi/firebirdsql>`_. +* Add support for `pyfirebirdsql + <https://pypi.python.org/pypi/firebirdsql>`_.There are still problems with + the driver. -Bug fix -------- +Bug fixes +--------- -* Fix MSSQLConnection.columnsFromSchema: remove () from default value. +* Fix MSSQLConnection.columnsFromSchema: remove `(` and `)` from default + value. * Fix MSSQLConnection and SybaseConnection: insert default values into a table with just one IDENTITY column. @@ -89,17 +92,15 @@ Tests * Fix ``pytest`` warnings by converting yield tests to plain calls: yield tests were deprecated in ``pytest``. -* Tests are now run at CIs with ``python3.5``. +* Tests are now run at CIs with Python 3.5. * Drop ``Circle CI``. * Run at Travis CI tests with Firebird backend (server version 2.5; drivers fdb and firebirdsql). There are problems with tests. -* Add AppVeyor for windows testing. Run tests with Postgres and MS SQL. There - are problems with MS SQL. - -* Run sqlite tests at AppVeyor. +* Add AppVeyor for windows testing. Run tests with MS SQL, Postgres and + SQLite. There are problems with MS SQL. SQLObject 3.1.0 =============== diff --git a/docs/SQLObject.rst b/docs/SQLObject.rst index 6f02661..a6bb575 100644 --- a/docs/SQLObject.rst +++ b/docs/SQLObject.rst @@ -51,9 +51,9 @@ mysqlclient_ for Python 3), `MySQL Connector`_, oursql_ and PyMySQL_. For PostgreSQL_ psycopg2_ or psycopg1 are recommended; PyGreSQL_, py-postgresql_ and pg8000_ are supported but have problems (not all tests passed). SQLite_ has a built-in driver or PySQLite_. Firebird_ is supported via fdb_ or -kinterbasdb_; pyfirebirdsql_ is supported but untested. `MAX DB`_ (also known -as SAP DB) is supported via sapdb_. Sybase via Sybase_. `MSSQL Server`_ via -pymssql_ (+ FreeTDS_) or adodbapi_ (Win32). +kinterbasdb_; pyfirebirdsql_ is supported but has problems. `MAX DB`_ (also +known as SAP DB) is supported via sapdb_. Sybase via Sybase_. `MSSQL Server`_ +via pymssql_ (+ FreeTDS_) or adodbapi_ (Win32). .. _MySQL: https://www.mysql.com/ .. _MySQLdb: https://sourceforge.net/projects/mysql-python/ ----------------------------------------------------------------------- Summary of changes: docs/News.rst | 25 +++++++++++++------------ docs/SQLObject.rst | 6 +++--- sqlobject/tests/test_mysql.py | 2 +- sqlobject/tests/test_postgres.py | 2 +- sqlobject/tests/test_sqlite.py | 2 +- 5 files changed, 19 insertions(+), 18 deletions(-) hooks/post-receive -- SQLObject development repository |
From: Oleg B. <no...@so...> - 2017-01-17 23:57:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "SQLObject development repository". The branch, master has been updated via 1c6f0a43ea6d29d84979687f4f0b6d1d1ab30c9c (commit) via ab58e61a1b11e97a85cff7503b5936704b856175 (commit) via f40463a8193c8479c19649c320763f340397a73e (commit) via b313c1fb5d6c1fb1535dbc297f0dc71a2c8485d3 (commit) via afe2ca4d6f07aaacd7aca8c238eff155ac5dbebb (commit) via 3d86b18aff0e935e34c2489d3737ca35ae23ab00 (commit) via f362e07698a017da0d7b63f685f5eddf123a676b (commit) via 970d6e68dc1441dbbdd52de0c0e74081a2297542 (commit) via 4e781b567ce07b65a9f559b529c2d61cc00f3713 (commit) via a2b4c6ac06dbe68d188520d5b67bdabe978011d9 (commit) from ac4a243bc2e029e29991b99a33d5fb5cb386b901 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://sourceforge.net/p/sqlobject/sqlobject/ci/1c6f0a43ea6d29d84979687f4f0b6d1d1ab30c9c commit 1c6f0a43ea6d29d84979687f4f0b6d1d1ab30c9c Author: Oleg Broytman <ph...@ph...> Date: Wed Jan 18 02:48:32 2017 +0300 Fix MSSQLConnection.server_version() under Py3 diff --git a/docs/News.rst b/docs/News.rst index caf4dfe..4f2f853 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -68,6 +68,8 @@ Bug fix * Fix concatenation operator for MSSQL/Sybase (it's ``+``, not ``||``). +* Fix MSSQLConnection.server_version() under Py3 (decode version to str). + Documentation ------------- diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 792298f..1350514 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -1,6 +1,7 @@ -from sqlobject.dbconnection import DBAPI -from sqlobject import col import re +from sqlobject import col +from sqlobject.dbconnection import DBAPI +from sqlobject.compat import PY2 class MSSQLConnection(DBAPI): @@ -347,6 +348,8 @@ class MSSQLConnection(DBAPI): try: server_version = self.queryOne( "SELECT SERVERPROPERTY('productversion')")[0] + if not PY2 and isinstance(server_version, bytes): + server_version = server_version.decode('ascii') server_version = server_version.split('.')[0] server_version = int(server_version) except: http://sourceforge.net/p/sqlobject/sqlobject/ci/ab58e61a1b11e97a85cff7503b5936704b856175 commit ab58e61a1b11e97a85cff7503b5936704b856175 Author: Oleg Broytman <ph...@ph...> Date: Wed Jan 18 01:54:28 2017 +0300 Fix N-quoted values: under Py2 they must be bytes diff --git a/sqlobject/col.py b/sqlobject/col.py index a7741c9..26c9a51 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -623,7 +623,6 @@ class StringCol(Col): class NQuoted(sqlbuilder.SQLExpression): def __init__(self, value): - assert isinstance(value, unicode_type) self.value = value def __hash__(self): @@ -664,6 +663,8 @@ class UnicodeStringValidator(SOValidator): pass else: if connection.dbName == 'mssql': + if PY2: + value = value.encode(self.getDbEncoding(state)) return NQuoted(value) return value.encode(self.getDbEncoding(state)) if hasattr(value, '__unicode__'): http://sourceforge.net/p/sqlobject/sqlobject/ci/f40463a8193c8479c19649c320763f340397a73e commit f40463a8193c8479c19649c320763f340397a73e Author: Oleg Broytman <ph...@ph...> Date: Wed Jan 18 00:18:32 2017 +0300 Document newer MS SQL server versions diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 2c0647e..792298f 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -339,6 +339,8 @@ class MSSQLConnection(DBAPI): 9 - 2005 10 - 2008 11 - 2012 + 12 - 2014 + 13 - 2016 """ if self._server_version is not None: return self._server_version http://sourceforge.net/p/sqlobject/sqlobject/ci/b313c1fb5d6c1fb1535dbc297f0dc71a2c8485d3 commit b313c1fb5d6c1fb1535dbc297f0dc71a2c8485d3 Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 23:20:14 2017 +0300 Ignore error in case we don't have DROP permission diff --git a/sqlobject/tests/test_auto.py b/sqlobject/tests/test_auto.py index e201d4d..e58ab1a 100644 --- a/sqlobject/tests/test_auto.py +++ b/sqlobject/tests/test_auto.py @@ -191,7 +191,10 @@ class TestAuto: dbName = conn.dbName dropper = getattr(self, dbName + 'Drop', None) if dropper: - conn.query(dropper) + try: + conn.query(dropper) + except: # Perhaps we don't have DROP permission + pass def test_classCreate(self): class AutoTest(SQLObject): http://sourceforge.net/p/sqlobject/sqlobject/ci/afe2ca4d6f07aaacd7aca8c238eff155ac5dbebb commit afe2ca4d6f07aaacd7aca8c238eff155ac5dbebb Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 23:11:16 2017 +0300 Fix test_auto.py: turn off microseconds for MS SQL diff --git a/sqlobject/tests/test_auto.py b/sqlobject/tests/test_auto.py index f3aa6da..e201d4d 100644 --- a/sqlobject/tests/test_auto.py +++ b/sqlobject/tests/test_auto.py @@ -3,6 +3,7 @@ from pytest import raises from sqlobject import KeyCol, MultipleJoin, SQLObject, StringCol, \ classregistry, sqlmeta +from sqlobject.col import use_microseconds from sqlobject.tests.dbtest import getConnection, setupClass @@ -199,6 +200,8 @@ class TestAuto: class sqlmeta(sqlmeta): idName = 'auto_id' fromDatabase = True + if AutoTest._connection.dbName == 'mssql': + use_microseconds(False) john = AutoTest(firstName='john', lastName='doe', age=10, @@ -221,3 +224,5 @@ class TestAuto: columns = AutoTest.sqlmeta.columns assert columns["lastName"].dbName == "last_name" assert columns["wannahavefun"].dbName == "wannahavefun" + if AutoTest._connection.dbName == 'mssql': + use_microseconds(True) http://sourceforge.net/p/sqlobject/sqlobject/ci/3d86b18aff0e935e34c2489d3737ca35ae23ab00 commit 3d86b18aff0e935e34c2489d3737ca35ae23ab00 Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 22:37:59 2017 +0300 Fix concatenation operator for MSSQL/Sybase diff --git a/docs/News.rst b/docs/News.rst index 60866d8..caf4dfe 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -66,6 +66,8 @@ Bug fix * Remove excessive NULLs for MSSQL/Sybase. +* Fix concatenation operator for MSSQL/Sybase (it's ``+``, not ``||``). + Documentation ------------- diff --git a/sqlobject/sqlbuilder.py b/sqlobject/sqlbuilder.py index 76b982c..2b4cdc7 100644 --- a/sqlobject/sqlbuilder.py +++ b/sqlobject/sqlbuilder.py @@ -1067,6 +1067,8 @@ class _LikeQuoted: values.append(quote_str(self.postfix, db)) if db == "mysql": return "CONCAT(%s)" % ", ".join(values) + elif db in ("mssql", "sybase"): + return " + ".join(values) else: return " || ".join(values) elif isinstance(s, string_type): @@ -1096,6 +1098,8 @@ class CONCAT(SQLExpression): values = [sqlrepr(expr, db) for expr in self.expressions] if db == "mysql": return "CONCAT(%s)" % ", ".join(values) + elif db in ("mssql", "sybase"): + return " + ".join(values) else: return " || ".join(values) diff --git a/sqlobject/tests/test_sqlbuilder.py b/sqlobject/tests/test_sqlbuilder.py index 64170b1..9a3b6e3 100644 --- a/sqlobject/tests/test_sqlbuilder.py +++ b/sqlobject/tests/test_sqlbuilder.py @@ -96,6 +96,7 @@ def test_CONCAT(): SOTestSQLBuilder(name='test', so_value=42) assert sqlrepr(CONCAT('a', 'b'), 'mysql') == "CONCAT('a', 'b')" + assert sqlrepr(CONCAT('a', 'b'), 'mssql') == "'a' + 'b'" assert sqlrepr(CONCAT('a', 'b'), 'sqlite') == "'a' || 'b'" assert sqlrepr(CONCAT('prefix', SOTestSQLBuilder.q.name), 'mysql') == \ "CONCAT('prefix', so_test_sql_builder.name)" http://sourceforge.net/p/sqlobject/sqlobject/ci/f362e07698a017da0d7b63f685f5eddf123a676b commit f362e07698a017da0d7b63f685f5eddf123a676b Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 22:24:23 2017 +0300 Remove excessive NULLs for MSSQL/Sybase diff --git a/docs/News.rst b/docs/News.rst index 089ad2f..60866d8 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -64,6 +64,8 @@ Bug fix * Fix MSSQLConnection and SybaseConnection: insert default values into a table with just one IDENTITY column. +* Remove excessive NULLs for MSSQL/Sybase. + Documentation ------------- diff --git a/sqlobject/col.py b/sqlobject/col.py index c919e59..a7741c9 100644 --- a/sqlobject/col.py +++ b/sqlobject/col.py @@ -540,8 +540,6 @@ class SOStringLikeCol(SOCol): def _sybaseType(self): self._check_case_sensitive("SYBASE") type = self._sqlType() - if not self.notNone and not self.alternateID: - type += ' NULL' return type def _mssqlType(self): @@ -556,8 +554,6 @@ class SOStringLikeCol(SOCol): type = 'VARCHAR(%i)' % self.length else: type = 'CHAR(%i)' % self.length - if not self.notNone and not self.alternateID: - type += ' NULL' return type def _firebirdType(self): @@ -895,11 +891,11 @@ class SOKeyCol(SOCol): return self.key_type[self._idType()] def _sybaseType(self): - key_type = {int: "NUMERIC(18,0) NULL", str: "TEXT"} + key_type = {int: "NUMERIC(18,0)", str: "TEXT"} return key_type[self._idType()] def _mssqlType(self): - key_type = {int: "INT NULL", str: "TEXT"} + key_type = {int: "INT", str: "TEXT"} return key_type[self._idType()] def _firebirdType(self): http://sourceforge.net/p/sqlobject/sqlobject/ci/970d6e68dc1441dbbdd52de0c0e74081a2297542 commit 970d6e68dc1441dbbdd52de0c0e74081a2297542 Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 21:43:43 2017 +0300 Fix MSSQLConnection and SybaseConnection Insert default values into a table with just one IDENTITY column. diff --git a/docs/News.rst b/docs/News.rst index 7ad5582..089ad2f 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -61,6 +61,9 @@ Bug fix * Fix MSSQLConnection.columnsFromSchema: remove () from default value. +* Fix MSSQLConnection and SybaseConnection: insert default values into a table + with just one IDENTITY column. + Documentation ------------- diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 633fe24..2c0647e 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -169,7 +169,10 @@ class MSSQLConnection(DBAPI): else: c.execute('SET IDENTITY_INSERT %s OFF' % table) - q = self._insertSQL(table, names, values) + if names and values: + q = self._insertSQL(table, names, values) + else: + q = "INSERT INTO %s DEFAULT VALUES" % table if self.debug: self.printDebug(conn, q, 'QueryIns') c.execute(q) diff --git a/sqlobject/sybase/sybaseconnection.py b/sqlobject/sybase/sybaseconnection.py index 15e8914..f79441a 100644 --- a/sqlobject/sybase/sybaseconnection.py +++ b/sqlobject/sybase/sybaseconnection.py @@ -84,7 +84,10 @@ class SybaseConnection(DBAPI): identity_insert_on = True c.execute('SET IDENTITY_INSERT %s ON' % table) - q = self._insertSQL(table, names, values) + if names and values: + q = self._insertSQL(table, names, values) + else: + q = "INSERT INTO %s DEFAULT VALUES" % table if self.debug: self.printDebug(conn, q, 'QueryIns') c.execute(q) http://sourceforge.net/p/sqlobject/sqlobject/ci/4e781b567ce07b65a9f559b529c2d61cc00f3713 commit 4e781b567ce07b65a9f559b529c2d61cc00f3713 Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 21:33:11 2017 +0300 Fix MSSQLConnection.columnsFromSchema: remove () from default value diff --git a/docs/News.rst b/docs/News.rst index f0e3466..7ad5582 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -56,6 +56,11 @@ Drivers (work in progress) * Add support for `pyfirebirdsql <https://pypi.python.org/pypi/firebirdsql>`_. +Bug fix +------- + +* Fix MSSQLConnection.columnsFromSchema: remove () from default value. + Documentation ------------- diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index af7aa48..633fe24 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -271,6 +271,9 @@ class MSSQLConnection(DBAPI): if defaultText[0] == "'": defaultText = defaultText[1:-1] else: + if t in ("int", "float", "numeric") and \ + defaultText[0] == "(": + defaultText = defaultText[1:-1] if t == "int": defaultText = int(defaultText) if t == "float": http://sourceforge.net/p/sqlobject/sqlobject/ci/a2b4c6ac06dbe68d188520d5b67bdabe978011d9 commit a2b4c6ac06dbe68d188520d5b67bdabe978011d9 Author: Oleg Broytman <ph...@ph...> Date: Tue Jan 17 00:02:28 2017 +0300 Add parameter ``timeout`` for MSSQLConnection (only for pymssql) diff --git a/docs/News.rst b/docs/News.rst index 0d60aee..f0e3466 100644 --- a/docs/News.rst +++ b/docs/News.rst @@ -38,6 +38,9 @@ Minor features * Add support for `PyMySQL <https://github.com/PyMySQL/PyMySQL/>`_ - pure python mysql interface). +* Add parameter ``timeout`` for MSSQLConnection (usable only with pymssql + driver); timeouts are in seconds. + Drivers (work in progress) -------------------------- diff --git a/sqlobject/mssql/mssqlconnection.py b/sqlobject/mssql/mssqlconnection.py index 3ec7366..af7aa48 100644 --- a/sqlobject/mssql/mssqlconnection.py +++ b/sqlobject/mssql/mssqlconnection.py @@ -60,8 +60,8 @@ class MSSQLConnection(DBAPI): self.make_conn_str = lambda keys: conn_str % ( keys.host, keys.db, keys.user, keys.password) - kw.pop("sspi", None) kw.pop("ncli", None) + kw.pop("sspi", None) else: # pymssql self.dbconnection = sqlmodule.connect @@ -69,14 +69,20 @@ class MSSQLConnection(DBAPI): # don't know whether pymssql uses unicode self.usingUnicodeStrings = False + timeout = kw.pop('timeout', None) + if timeout: + timeout = int(timeout) + self.timeout = timeout + def _make_conn_str(keys): keys_dict = {} for attr, value in ( + ('database', keys.db), ('user', keys.user), ('password', keys.password), ('host', keys.host), ('port', keys.port), - ('database', keys.db), + ('timeout', keys.timeout), ): if value: keys_dict[attr] = value diff --git a/tox.ini b/tox.ini index 7f86236..cf0066a 100644 --- a/tox.ini +++ b/tox.ini @@ -25,7 +25,6 @@ deps = firebirdsql: firebirdsql postgres-pg8000: pg8000 mssql: pymssql - mssql: pytest-timeout passenv = CI TRAVIS TRAVIS_* PGPASSWORD # Don't fail or warn on uninstalled commands whitelist_externals = @@ -272,7 +271,7 @@ commands = flake8 . commands = -sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "CREATE DATABASE sqlobject_test" - pytest --timeout=30 --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pymssql&debug=1" tests include/tests inheritance/tests versioning/test + pytest --cov=sqlobject -D "mssql://sa:Password12!@localhost\SQL2014/sqlobject_test?driver=pymssql&timeout=30&debug=1" tests include/tests inheritance/tests versioning/test sqlcmd -U sa -P "Password12!" -S .\SQL2014 -Q "DROP DATABASE sqlobject_test" ----------------------------------------------------------------------- Summary of changes: docs/News.rst | 17 +++++++++++++++++ sqlobject/col.py | 11 ++++------- sqlobject/mssql/mssqlconnection.py | 27 ++++++++++++++++++++++----- sqlobject/sqlbuilder.py | 4 ++++ sqlobject/sybase/sybaseconnection.py | 5 ++++- sqlobject/tests/test_auto.py | 10 +++++++++- sqlobject/tests/test_sqlbuilder.py | 1 + tox.ini | 3 +-- 8 files changed, 62 insertions(+), 16 deletions(-) hooks/post-receive -- SQLObject development repository |