Subject: CVS commit: pkgsrc/databases/py-alembic
From: Adam Ciarcinski
Date: 2021-11-14 19:42:37
Message id: 20211114184238.05FACFAEC@cvs.NetBSD.org

Log Message:
py-alembic: updated to 1.7.5

1.7.5
Released: November 11, 2021
bug

[bug] [tests]
Adjustments to the test suite to accommodate for error message changes occurring \ 
as of SQLAlchemy 1.4.27.
1.7.4
Released: October 6, 2021
bug

[bug] [regression]
Fixed a regression that prevented the use of post write hooks on python version \ 
lower than 3.9
[bug] [environment]
Fixed issue where the MigrationContext.autocommit_block() feature would fail to \ 
function when using a SQLAlchemy engine using 2.0 future mode.

1.7.3
Released: September 17, 2021
bug

[bug] [mypy]
Fixed type annotations for the “constraint_name” argument of operations \ 
create_primary_key(), create_foreign_key(). Pull request courtesy TilmanK.

1.7.2
Released: September 17, 2021
bug

[bug] [typing]
Added missing attributes from context stubs.

[bug] [mypy]
Fixed an import in one of the .pyi files that was triggering an assertion error \ 
in some versions of mypy.

[bug] [ops] [regression]
Fixed issue where registration of custom ops was prone to failure due to the \ 
registration process running exec() on generated code that as of the 1.7 series \ 
includes pep-484 annotations, which in the case of end user code would result in \ 
name resolution errors when the exec occurs. The logic in question has been \ 
altered so that the annotations are rendered as forward references so that the \ 
exec() can proceed.

1.7.1
Released: August 30, 2021
bug

[bug] [installation]
Corrected “universal wheel” directive in setup.cfg so that building a wheel \ 
does not target Python 2. The PyPi files index for 1.7.0 was corrected manually. \ 
Pull request courtesy layday.

[bug] [pep484]
Fixed issue in generated .pyi files where default values for Optional arguments \ 
were missing, thereby causing mypy to consider them as required.

[bug] [batch] [regression]
Fixed regression in batch mode due to 883 where the “auto” mode of batch \ 
would fail to accommodate any additional migration directives beyond \ 
encountering an add_column() directive, due to a mis-application of the \ 
conditional logic that was added as part of this change, leading to \ 
“recreate” mode not being used in cases where it is required for SQLite such \ 
as for unique constraints.

1.7.0
Released: August 30, 2021
changed

[changed] [installation]
Alembic 1.7 now supports Python 3.6 and above; support for prior versions \ 
including Python 2.7 has been dropped.
[changed] [installation]
Make the python-dateutil library an optional dependency. This library is only \ 
required if the timezone option is used in the Alembic configuration. An extra \ 
require named tz is available with pip install alembic[tz] to install it.

[changed] [installation]
The dependency on pkg_resources which is part of setuptools has been removed, so \ 
there is no longer any runtime dependency on setuptools. The functionality has \ 
been replaced with importlib.metadata and importlib.resources which are both \ 
part of Python std.lib, or via pypy dependency importlib-metadata for Python \ 
version < 3.8 and importlib-resources for Python version < 3.9 (while \ 
importlib.resources was added to Python in 3.7, it did not include the \ 
“files” API until 3.9).

feature

[feature] [environment]
Enhance version_locations parsing to handle paths containing spaces. The new \ 
configuration option version_path_separator specifies the character to use when \ 
splitting the version_locations string. The default for new configurations is \ 
version_path_separator = os, which will use os.pathsep (e.g., ; on Windows).

[feature] [tests]
Created a “test suite” similar to the one for SQLAlchemy, allowing \ 
developers of third-party dialects to test their code against a set of Alembic \ 
tests that have been specially selected to exercise back-end database \ 
operations. At the time of release, third-party dialects that have adopted the \ 
Alembic test suite to verify compatibility include CockroachDB and SAP ASE \ 
(Sybase).

[feature] [general]
pep-484 type annotations have been added throughout the library. Additionally, \ 
stub .pyi files have been added for the “dynamically” generated Alembic \ 
modules alembic.op and alembic.config, which include complete function \ 
signatures and docstrings, so that the functions in these namespaces will have \ 
both IDE support (vscode, pycharm, etc) as well as support for typing tools like \ 
Mypy. The files themselves are statically generated from their source functions \ 
within the source tree.
usecase

[usecase] [batch]
Named CHECK constraints are now supported by batch mode, and will automatically \ 
be part of the recreated table assuming they are named. They also can be \ 
explicitly dropped using op.drop_constraint(). For “unnamed” CHECK \ 
constraints, these are still skipped as they cannot be distinguished from the \ 
CHECK constraints that are generated by the Boolean and Enum datatypes.
Note that this change may require adjustments to migrations that drop or rename \ 
columns which feature an associated named check constraint, such that an \ 
additional op.drop_constraint() directive should be added for that named \ 
constraint as there will no longer be an associated column for it; for the \ 
Boolean and Enum datatypes, an existing_type keyword may be passed to \ 
BatchOperations.drop_constraint as well.
See also Changing the Type of Boolean, Enum and other implicit CHECK datatypes
Including CHECK constraints

bug

[bug] [operations]
Fixed regression due to 803 where the .info and .comment attributes of Table \ 
would be lost inside of the DropTableOp class, which when “reversed” into a \ 
CreateTableOp would then have lost these elements. Pull request courtesy Nicolas \ 
CANIART.

[bug] [batch] [sqlite]
Batch “auto” mode will now select for “recreate” if the add_column() \ 
operation is used on SQLite, and the column itself meets the criteria for SQLite \ 
where ADD COLUMN is not allowed, in this case a functional or parenthesized SQL \ 
expression or a Computed (i.e. generated) column.

[bug] [commands]
Re-implemented the python-editor dependency as a small internal function to \ 
avoid the need for external dependencies.

[bug] [postgresql]
Fixed issue where usage of the PostgreSQL postgresql_include option within a \ 
Operations.create_index() would raise a KeyError, as the additional column(s) \ 
need to be added to the table object used by the construct internally. The issue \ 
is equivalent to the SQL Server issue fixed in 513. Pull request courtesy Steven \ 
Bronson.

1.6.5
Released: May 27, 2021
bug

[bug] [autogenerate]
Fixed issue where dialect-specific keyword arguments within the DropIndex \ 
operation directive would not render in the autogenerated Python code. As \ 
support was improved for adding dialect specific arguments to directives as part \ 
of 803, in particular arguments such as “postgresql_concurrently” which \ 
apply to the actual create/drop of the index, support was needed for these to \ 
render even in a drop index operation. Pull request courtesy Jet Zhou.

1.6.4
Released: May 24, 2021
bug

[bug] [op directives] [regression]
Fixed regression caused by just fixed 844 that scaled back the filter for \ 
unique=True/index=True too far such that these directives no longer worked for \ 
the op.create_table() op, this has been fixed.

1.6.3
Released: May 21, 2021
bug

[bug] [autogenerate] [regression]
Fixed 1.6-series regression where UniqueConstraint and to a lesser extent Index \ 
objects would be doubled up in the generated model when the unique=True / \ 
index=True flags were used.

[bug] [autogenerate]
Fixed a bug where paths defined in post-write hook options would be wrongly \ 
escaped in non posix environment (Windows).

[bug] [regression] [versioning]
Fixed regression where a revision file that contained its own down revision as a \ 
dependency would cause an endless loop in the traversal logic.

1.6.2
Released: May 6, 2021
bug

[bug] [regression] [versioning]
Fixed additional regression nearly the same as that of 838 just released in \ 
1.6.1 but within a slightly different codepath, where “alembic downgrade \ 
head” (or equivalent) would fail instead of iterating no revisions.

1.6.1
Released: May 6, 2021
bug

[bug] [regression] [versioning]
Fixed regression in new revisioning traversal where “alembic downgrade base” \ 
would fail if the database itself were clean and unversioned; additionally \ 
repairs the case where downgrade would fail if attempting to downgrade to the \ 
current head that is already present.

1.6.0
Released: May 3, 2021
feature

[feature] [autogenerate]
Fix the documentation regarding the default command-line argument position of \ 
the revision script filename within the post-write hook arguments. Implement a \ 
REVISION_SCRIPT_FILENAME token, enabling the position to be changed. Switch from \ 
str.split() to shlex.split() for more robust command-line argument parsing.

[feature]
Implement a .cwd (current working directory) suboption for post-write hooks (of \ 
type console_scripts). This is useful for tools like pre-commit, which rely on \ 
the working directory to locate the necessary config files. Add pre-commit as an \ 
example to the documentation. Minor change: rename some variables from ticket \ 
819 to improve readability.

bug

[bug] [autogenerate]
Refactored the implementation of MigrateOperation constructs such as \ 
CreateIndexOp, CreateTableOp, etc. so that they no longer rely upon maintaining \ 
a persistent version of each schema object internally; instead, the state \ 
variables of each operation object will be used to produce the corresponding \ 
construct when the operation is invoked. The rationale is so that environments \ 
which make use of operation-manipulation schemes such as those those discussed \ 
in Fine-Grained Autogenerate Generation with Rewriters are better supported, \ 
allowing end-user code to manipulate the public attributes of these objects \ 
which will then be expressed in the final output, an example is \ 
some_create_index_op.kw["postgresql_concurrently"] = True.
Previously, these objects when generated from autogenerate would typically hold \ 
onto the original, reflected element internally without honoring the other state \ 
variables of each construct, preventing the public API from working.

[bug] [environment]
Fixed regression caused by the SQLAlchemy 1.4/2.0 compatibility switch where \ 
calling .rollback() or .commit() explicitly within the \ 
context.begin_transaction() context manager would cause it to fail when the \ 
block ended, as it did not expect that the transaction was manually closed.

[bug] [autogenerate]
Improved the rendering of op.add_column() operations when adding multiple \ 
columns to an existing table, so that the order of these statements matches the \ 
order in which the columns were declared in the application’s table metadata. \ 
Previously the added columns were being sorted alphabetically.

[bug] [versioning]
The algorithm used for calculating downgrades/upgrades/iterating revisions has \ 
been rewritten, to resolve ongoing issues of branches not being handled \ 
consistently particularly within downgrade operations, as well as for overall \ 
clarity and maintainability. This change includes that a deprecation warning is \ 
emitted if an ambiguous command such as “downgrade -1” when multiple heads \ 
are present is given.
In particular, the change implements a long-requested use case of allowing \ 
downgrades of a single branch to a branchpoint.
Huge thanks to Simon Bowly for their impressive efforts in successfully tackling \ 
this very difficult problem.

[bug] [batch] ¶
Added missing batch_op.create_table_comment(), batch_op.drop_table_comment() \ 
directives to batch ops.

Files:
RevisionActionfile
1.28modifypkgsrc/databases/py-alembic/Makefile
1.8modifypkgsrc/databases/py-alembic/PLIST
1.26modifypkgsrc/databases/py-alembic/distinfo