Historical Changelog

1.6.8 (2013-01-27)

  • Accomodate PluginIndexes.exportimportPluggableIndexNodeAdapter to being registered for indexes which have no indexed_attrs (e.g., Plone’s GopipIndex).

1.6.7 (2013-01-23)

  • On import, avoid clearing indexes whose state is unchanged.

1.6.6 (2012-02-28)

  • Restore the ability to make the setup tool use only import / export steps explicitly called out by the current profile, ignoring any which might be globally registered. This is particularly useful for configuring sites with baseline profiles, where arbitrary add-on steps are not only useless, but potentially damaging.

1.6.5 (2012-01-27)

  • While importing toolset.xml, print a warning when the class of a required tool is not found and continue with the next tool. The previous behaviour could break the install or uninstall of any add-on, as the missing class may easily be from a different unrelated add-on that is no longer available in the zope instance.

1.6.4 (2011-10-31)

  • Add three missing explicit InitializeClass calls.
  • Adjust test assertions in test_differ to cope with changes to the diff library done in Python 2.7.
  • LP #850665: match permission binding to method name.
  • LP #602989: export / import new MailHost properties, smtp_queue and smtp_queue_directory.
  • ZCML: Don’t require description for the upgradeDepends directive.
  • PythonScript handler: Normalize newlines during import.
  • No longer rely on bobobase_modification_time.
  • TarballImportContext: Fix type of getLastModified return value.
  • LP #388380: added docstrings to Products.GenericSetup.tool.manage_deleteImportSteps and manage_deleteExportSteps, fixing broken TTW deletion.
  • Avoid using DateTime values for file system time stamps in tests.
  • Generate unique ids for each profile when profiles get imported multiple times within a second. This change removes spurious failures in fast tests of packages that use GenericSetup.

1.6.3 (2011-04-02)

  • Fix crash at export when a node had None value.
  • Refactor global registries to use global named utilities.
  • Fix the profile_id UnboundLocalError in the upgradeDepends directive when import_profile is not None.
  • Use zope.formlib directly, rathter than via now-removed five.formlib dependency.
  • tool: listContextInfos now returns profile infos sorted by type and title. This change makes it easier to select profiles on the “Import” and “Comparison” tab.
  • Property import/export: Fix two date property issues. Naive date values are now exported without time zone. And purging non-deletable date properties is fixed.
  • Export content objects whose manage_FTPget returns a custom iterator with file and size properties. https://bugs.launchpad.net/bugs/722726
  • Property import: Fix lines and tokens import. Modifying sequences without adding new elements was broken.
  • Toolset import: Support replacement of subclassed tools.

1.6.2 (2010-08-12)

  • testing: Remove broken run function. Unit test modules are no longer directly executable.
  • DateTime 2.12.5 does away with a special case representing DateTime values for midnight (00:00:00) without their time and time zone values. So DateTimes formerly rendered as 2010/01/01 in the UTC timezone now render as 2010/01/01 00:00:00 UTC. The XML used for testing has been changed to reflect this change. Since the change is only cosmetic, nothing changes with respect to importing Time-less date values.
  • Toolset import: Don’t ignore errors in ImmutableId._setId().

1.6.1 (2010-07-04)

  • Use the standard library’s doctest module.
  • Suppress deprecation warnings for Zope 2.13.
  • Un-break tool upgrade tab after running an upgrade step which used None as its destination version. https://bugs.launchpad.net/bugs/553338

1.6.0 (2010-03-08)

  • When exporting a tarball, make the directory entries executable.
  • When the MailHost smtp_uid or smtp_pwd settings are None, export them as empty string, to avoid an AttributeError during export.
  • Don’t try to reinitialize a tool if an instance of the tool exists but the desired tool class was not resolvable. Show a warning instead of failing.
  • Remove backwards compatibility code for no longer supported Zope versions.

1.6.0b1 (2010-01-31)

  • Require at least Zope 2.12.3 and use the optional five.formlib extension.
  • Fix bug in the export code of persistent utilities with explicit OFS ids.
  • Prefer the class over the five:implements ZCML directive.

1.5.0 (2010-01-01)

  • Ensure there is a valid component registry (not the global registry) before importing or exporting it via the components handler.
  • Ensure that the “Import” ZMI tab does not blow up if no base profile has been selected, and make it a little more user-friendly.
  • Log if the components handler runs and has nothing to import.
  • Use five.formlib in favor of Products.Five.formlib if it is available.
  • Remove testing dependency on zope.app.testing.ztapi.
  • tarball contexts: Fix export and import of directory structures.

1.5.0b1 (2009-09-25)

  • LP #388380: remove obsolete STX docs from the package directory.

  • Made export / import features for old-school TextIndex (removed in Zope 2.12) conditional.

  • Add support for import / export of subscribers from component registry.

  • In utility removal, avoid adding to-be-removed utility when it is already missing from the local component registry.

  • Prefer for to for_ in component handler adapter directive. To support import of existing profiles for_ is used as a fallback.

  • Change testing.py to directly load zope.traversing’s ZCML instead of going via the Five traversing.zcml BBB shim.

  • Add new feature to the component handler. For factory based utilities you can now specify an additional id. All factory based utilities will now by default be added to the site manager (being an ObjectManager itself) as an object and this persistent object is registered as the utility. On removal both the registration and the object are removed. The new id argument is used to specify the id of the object as set via __name__. This change makes these utilities introspectable in the ZMI and clearly separates the persistent object and utility registration aspect.

  • Make TarballImportContext comaptible with Python 2.6 tarfile module.

  • Clean up / normalize imports:

    o Don’t import from Globals; instead, use real locations.

    o Make other imports use the actual source module, rather than an

    intermediate (e.g., prefer importing ClassSecurityInfo from AccessControl.SecurityInfo rather than from AccessControl).

    o Avoid relative imports, which will break in later versions of Python.

  • events: Add handleProfileImportedEvent subscriber. After a full import it updates last version for profile.

  • UpgradeSteps: Improve listUpgradeSteps behavior. If versions and checker are specified for a step, the checker is used as an additional restriction.

  • Component registry import: Add the ability to unregister a component by specifying the “remove” attribute inside a utility node. (https://bugs.launchpad.net/zope-cmf/+bug/161728)

  • Property import/export tests: Add testing for non-ASCII properties. (https://bugs.launchpad.net/zope-cmf/+bug/202356) (https://bugs.launchpad.net/zope-cmf/+bug/242588)

  • Add genericsetup:upgradeDepends ZCML tag, defining a specialized upgrade step that re-applies one or more import steps from a GS profile during an upgrade process

  • Add IChunkedImportContext interface, allowing RAM-efficient chunked reads of large files, and implement for DirectoryImportContext. (https://bugs.launchpad.net/zope-cmf/+bug/259233)

  • Add IChunkedExportContext interface, allowing RAM-efficient chunked writes of large files, and implement for DirectoryExportContext. (https://bugs.launchpad.net/zope-cmf/+bug/257365)

  • Provide default for dependencies when processing metadata.xml, to avoid a KeyError. (https://bugs.launchpad.net/zope-cmf/+bug/255301)

  • Handle utility factories cleanly if zope.component>=3.5.0 is used.

  • tool and utils: Remove deprecated code.

  • Update PropertyManagerHelpers, making it possible to remove elements from a property by adding a remove="True" attribute to the element. This change also allows reordering elements, since new elements are always added at the end of the list.

  • Made PropertyManagerHelpers class work for non-PropertyManager objects:

    o Derived classes can supply a _PROPERTIES scehma, which is then used

    to mock up a temporary propertysheet for the object. The adapter’s methods (_extractProperties, _purgeProperties, _initProperties) then run against that propertysheet.

  • Add logic to respect the destination of upgrade steps when determining their applicability.

  • Enhance the readability of the upgrades tab on the tool.

  • Use the pkg_resources.parse_version to normalize versions before comparing them inside the upgrade code, ensuring that pre-release versions are handled correctly. Also use the normalize code when sorting versions on the tools ZMI upgrades page.

  • Update the upgradeStep directive schema: description is not required.

  • Introduce a new IComponentsHandlerBlacklist interface: named utilities registered for it and provide sequences of interfaces which should not be handled by the standard components registry adapter. This change allows more specialized export/import handlers to take full control over the components they care about.

  • When loading multiple profiles, reload the list of steps to use after each import. https://bugs.launchpad.net/zope-cmf/+bug/213905

1.4.5 (2009-06-20)

  • events: Add handleProfileImportedEvent subscriber. After a full import, it updates last version for profile. (Backported from trunk)
  • Add a for_=None parameter to tool.listProfileInfo to have the same signature as registry.listProfileInfo, allowing profiles to be filtered by interfaces.

1.4.4 (2009-05-15)

1.4.3 (2009-04-22) (2008-09-22)

  • Packaging update: version of said “1.4.2”. (2008-09-22)

  • Packaging update: version of 1.4.2 said “1.4.2dev”.

1.4.2 (2008-09-22)

1.4.1 (2008-05-27)

1.4.0 (2008-03-23)

  • In getProfileImportDate, avoid errors where one object’s id is a prefix of another id.

1.4.0-beta (2008-02-07)

  • During object manager imports, suppress an error when trying to remove an object that was already removed.
  • utils: Add MarkerInterfaceHelpers.
  • Add default values to the registerProfile ZCML directive.
  • Add a ZMI interface to find and remove invalid steps from the persistent registries.
  • Register all GenericSetup import and export steps globally.
  • Remove duplicated test (https://bugs.launchpad.net/zope-cmf/+bug/174910)
  • Don’t create empty import_steps.xml and export_steps.xml files.
  • Fix relative paths for profile dependencies.
  • Add support for context dependencies in profiles.
  • Deprecate the version field for import steps.
  • Deprecate reading of version.txt to get the version for a profile.
  • Fire events before and after importing.
  • Use zcml to register import and export steps.

1.3.3 (2007-12-29)

  • Be more careful in checking context id validity.
  • tool: Avoid initializing already-existing tools they already exist in the site.

1.3.2 (2007-09-11)

  • Ignore import and export step handlers that we can not resolve.
  • Restore the import context after running steps from a profile so we do not break on nested calls.
  • components: Provide log output when purging utilities or adapters.
  • components: Fix an undefined variable name in a log message.

1.3.1 (2007-08-08)

  • components: correct the object path for the site root to be the empty string.
  • components: Made output more diff friendly.
  • utils: Add warnings to old code. ImportConfiguratorBase and ExportConfiguratorBase will become deprecated as soon as GenericSetup itself no longer uses them. HandlerBase is now deprecated.
  • components: Add components_xmlconfig.html form. This view allows to inspect and edit component registrations. It is also available under the ZMI tab manage_components.

1.3 (2007-07-26)

  • components: Remove non-functional support for registering objects in nested folders. We only support objects available in the component registry’s parent now. The component registry needs to be either acquisition wrapped or have a __parent__ pointer to get to the parent.

1.3-beta (2007-07-12)

  • Guard against situations where encoded text may be compared by the differ. (http://www.zope.org/Collectors/CMF/471)
  • Extend the ZCatalog import/export mechanism to allow removal of metadata columns in addition to adding them. (http://www.zope.org/Collectors/CMF/483)
  • Made sure we register Acquisition free objects as utilities in the components handler.
  • Profiles now support version numbers; setup tool tracks profile versions during upgrades.
  • Add support for nested upgradeStep directives; expanded upgrade step registry into a real registry object and not just a dictionary.
  • Add support for metadata.xml in the profile (read during profile registration) to register profile description, version, and dependencies.
  • Deprecate runImportStep and runAllImportSteps in favor of runImportStepFromProfile and runAllImportStepsFromProfile.
  • Merged CPS’s upgradeStep ZCML directive, w/ corresponding tool support.
  • Add a “last imported” date to the list of extension profiles, and to the baseline profile.
  • Renamed the “Properties” tab to “Profiles”.
  • Remove the create_report decoy in the ZMI view methods: there was never any UI for passing any value other than the default, anyway, and the report objects are too useful to omit.
  • Refactor the “Properties” tab to separate baseline profiles from extension profiles, marking the option to reset the baseline as potentially dangerous for sites which already have one. Allow importing one or more extension profiles directly (all steps) from the “Properties” tab.
  • No longer read the toolset xml and update the toolset regustry on import context change. Doing this only during the toolset step import should be sufficient.
  • testing: No longer set up any ZCML in test base classes. This change is not backwards compatible. If you are using these base classes for testing custom handlers, you have to add the necessary ZCML setup and tear down. Using test layers is recommended.
  • Add support for importing-exporting Zope 3 component registries by folding in Hanno Schlichting’s GSLocalAddons product.

1.2-beta (2006-09-20)

  • tool: Add support for uploading a tarball on the “Import” tab (i.e., one produced on the export tab).
  • docs: Add SampleSite demo product.
  • ProfileRegistry: Add registerProfile ZCML directive. Using the old registerProfile method in initialize() is now deprecated. See doc/profiles.txt for details.
  • ProfileRegistry: product should now be the module name. For backwards compatibility product is still first looked up in Products before searching the default module search path.
  • ZCTextIndex handler: Fix indexed_attr import. (http://www.zope.org/Collectors/CMF/436)
  • docs: Add “Registering Profiles” section to profiles.txt.
  • Add support for PageTemplate import/export, modeled closely after existing PythonScript support
  • Track steps with unresolved dependencies, retrying after inserting remaining steps. Fixes cases where dependency sorting was highly reliant on steps being added in the right order to work. E.g., import step A depends on import step B which depends on step C, and step C gets processed early, and they were processed in the order A, C, B.

1.1 (2006-04-16)

  • ZCatalog handler: Implement the remove directive for indexes, allowing extension profiles that remove or replace indexes.
  • Give getExportStepRegistry the correct security declaration.

1.1-beta2 (2006-03-26)

  • No changes - tag created to coincide with CMF 2.0.0-beta2

1.1-beta (2006-03-08)

  • Allowed subclasses of DAVAwareFileAdapter to override the filename in which the file is stored.
  • Add a doc directory including some basic documentation.
  • Made GenericSetup a standalone package independent of the CMF
  • Add for_ argument to profile registry operations. A profile may be registered and queried as appropriate to a specific site interface; the default value, None, indicates that the profile is relevant to any site. Note that this is essentially an adapter lookup; perhaps we should reimplement it so.
  • Forward-port changes from GenericSetup 0.11 and 0.12 (which were created in a separate repository).
  • Merge sequence propertise with the purge=”False” attribute rather than purgeing (the sequences are treated as sets, which means that duplicates are removed). This is useful in extension profiles.
  • Don’t export or purge read-only properties. Correctly purge non-deletable int/float properties.
  • Correctly quote XML on export.

1.0 (2005-09-23)

  • CVS tag: GenericSetup-1_0
  • Forward-port i18n support from CMF 1.5 branch.
  • Forward-port BBB for old instances that stored properties as lists from CMFSetup.
  • Forward-port fix for tools with non unique IDs from CMFSetup.

0.12 (2005-08-29)

  • CVS tag: GenericSetup-0_12
  • Import requests now create reports (by default) which record any status messages generated by the profile’s steps.

0.11 (2005-08-23)

  • CVS tag: GenericSetup-0_11
  • Add report of messages generated by import to the “Import” tab.
  • Consolidate ISetupContext implementation into base class, SetupContextBase.
  • Add note, listNotes, and clearNotes methods to ISetupContext, allowing plugins to record information about the state of the operation.

0.10 (2005-08-11)

  • CVS tag: GenericSetup-0_10
  • Add TarballImportContext, including full test suite.

0.9 (2005-08-08)

  • CVS tag: GenericSetup-0_9
  • Initial version, cut down from CMFSetup-1.5.3