Changes

3.0.0 (2021-03-23)

  • Update to zope.interface 5.3. and zope.component 5.0. This lets the BTreeAdapterRegistry and BTreeLocalSiteManager 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().

2.4.2 (2021-03-01)

  • 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.

2.4.1 (2021-03-01)

  • Fix a TypeError in logging during the conversion performed by BTreePersistentComponents.

2.4.0 (2021-02-25)

  • Substantially reduce the thresholds at which the BTreePersistentComponents will convert internal data structures from plain dict objects into BTree 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.

2.3.0 (2020-09-11)

  • Make threadSiteSubscriber (the traversal subscriber for ISite 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. Requires nti.transactions 4.0. See issue #33.

2.2.0 (2020-07-30)

  • Improvements and bug fixes to nti.testing.print_tree.

2.1.0 (2020-06-17)

  • 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, and current_transaction which was actually a ZODB Connection) have been removed. The former is replaced with nti.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 in nti.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.

2.0.0 (2019-09-10)

  • 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.

1.4.0 (2019-05-06)

  • Add subscriber to unregister IBaseComponents on host policy folder removal.

1.3.0 (2017-11-16)

  • Allow ISiteMapping to map between persistent sites.

1.2.0 (2017-09-18)

  • 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 configured ISiteMapping pointing to another target site.

1.1.0 (2017-06-14)

  • 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.

1.0.3 (2016-11-21)

1.0.2 (2016-11-21)

  • Support for transaction 2.0, and fix a lurking UnicodeError under Python 3. See issue #14.

1.0.1 (2016-09-08)

  • 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.

1.0.0 (2016-08-02)

  • 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 nti.site.hostpolicy.install_main_application_and_sites() for setting up a database. See issue #9.