- Nothing changed yet.
Update to zope.interface 5.3. and zope.component 5.0. This lets the
BTreeAdapterRegistry
andBTreeLocalSiteManager
work much more smoothly and scale better.Important
The automatic conversion from dicts to BTrees has been removed. You must explicitly migrate by calling
BTreeLocalSiteManager.rebuild()
.
- Fix
BTreePersistentComponents
attempting BTree conversion during_p_activate()
. Only actual mutations via registering or unregistering utilities, adapters or subscribers should trigger conversion. See :issue:`38`.
- Fix a
TypeError
in logging during the conversion performed byBTreePersistentComponents
.
- Substantially reduce the thresholds at which the
BTreePersistentComponents
will convert internal data structures from plaindict
objects intoBTree
objects. This is intended to reduce the pickle size of, and number of ghost objects created by, components containing many utilities. Previously, the thresholds were set very high and mostly worked for sites with many adapters. - Add support for Python 3.9.
- Move to Github Actions from Travis CI.
Make
threadSiteSubscriber
(the traversal subscriber forISite
objects) will install a traversed site that is a root if there is no current site.Previously, it never installed root sites.
Make
threadSiteSubscriber
install sites when their configuration is not recognized.Previously, it would raise
LocationError
.Fix tests with, and require, zope.site 4.4.0 or above. See :issue:`34`.
Fix deprecation warning from
nti.transactions
. Requiresnti.transactions
4.0. See :issue:`33`.
- Improvements and bug fixes to
nti.testing.print_tree
.
Test changes: Depend on
nti.testing
3.0 and refactor certain internal test methods for improved isolation. The dependency on ZODB is now >= 5.6.0.Some internal, undocumented test attributes (
current_mock_db
, a ZODB.DB, andcurrent_transaction
which was actually a ZODB Connection) have been removed. The former is replaced withnti.testing.zodb.ZODBLayer.db
, and there is no replacement for the later.Add the module
nti.site.testing
. This contains extensible, documnted versions of the functions that were previously innti.site.tests
as private helpers.Add support for Python 3.8.
Make
hostpolicy.install_main_application_and_sites()
set the root_alias correctly. Previously, instead of setting it to the root_name, it set it to the main_name.
- Update
run_job_in_site
to work with nti.transactions 3.0 and enable the optimizations of an explicit transaction manager. - Test support for Python 3.7.
- Stop claiming support for Python 3.4 or 3.5; those aren't tested.
- Test support for PyPy3.
- Add subscriber to unregister
IBaseComponents
on host policy folder removal.
- Allow
ISiteMapping
to map between persistent sites.
- Add the ability to map one (non-persistent) site to another via
configuration. If
get_site_for_site_names
does not find persistent site components for a site, it will fall back to looking for a configuredISiteMapping
pointing to another target site.
- Require zope.interface 4.4.2 or greater; 4.4.1 has regressions.
- Require transaction >= 2.1.2 for its more relaxed handling of text or byte meta data.
- Require BTrees >= 4.3.2 for its relaxed handling of objects with default comparison.
run_job_in_site
now supports :func:`functools.partial` objects and other callables that don't have a__name__
and/or__doc__
. See :issue:`16`.
- Support for transaction 2.0, and fix a lurking UnicodeError under Python 3. See :issue:`14`.
- If you are using zope.interface 4.3.0 or greater, you can register
utilities and adapters using
implementedBy
(so bare classes) in a BTreeLocalSiteManager. Otherwise, using an older version, you'll get a TypeError and may be unable to complete the registration or transition to BTrees, and the map data may be inconsistent.
- First PyPI release.
- Add support for Python 3.
- Remove HostPolicySiteManager.subscribedRegisterUtility and subscribeUnregisterUtility. See :issue:`5`. This may be a small performance regression in large sites. If so we'll find a different way to deal with it.
- Remove HostSitesFolder._delitemf. It was unused and buggy.
- Add BTreesLocalSiteManager to automatically switch internal registration data to BTrees when possible and necessary. See :issue:`4`.
- Add :func:`nti.site.hostpolicy.install_main_application_and_sites` for setting up a database. See :issue:`9`.