- Nothing changed yet.
- Drop support for all versions of Python before 3.10.
- Add support for current versions of Python, up to 3.13.
Update to zope.interface 5.3. and zope.component 5.0. This lets the
BTreeAdapterRegistryandBTreeLocalSiteManagerwork 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
BTreePersistentComponentsattempting BTree conversion during_p_activate(). Only actual mutations via registering or unregistering utilities, adapters or subscribers should trigger conversion. See :issue:`38`.
- Fix a
TypeErrorin logging during the conversion performed byBTreePersistentComponents.
- Substantially reduce the thresholds at which the
BTreePersistentComponentswill convert internal data structures from plaindictobjects intoBTreeobjects. 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 forISiteobjects) will install a traversed site that is a root if there is no current site.Previously, it never installed root sites.
Make
threadSiteSubscriberinstall 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.transactions4.0. See :issue:`33`.
- Improvements and bug fixes to
nti.testing.print_tree.
Test changes: Depend on
nti.testing3.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_transactionwhich 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.testsas 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_siteto 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
IBaseComponentson host policy folder removal.
- Allow
ISiteMappingto map between persistent sites.
- Add the ability to map one (non-persistent) site to another via
configuration. If
get_site_for_site_namesdoes not find persistent site components for a site, it will fall back to looking for a configuredISiteMappingpointing 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_sitenow 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`.