Products.GenericSetup


NameProducts.GenericSetup JSON
Version 3.0.0 PyPI version JSON
download
home_pagehttps://github.com/zopefoundation/Products.GenericSetup
SummaryRead Zope configuration state from profile dirs / tarballs
upload_time2023-02-01 08:59:48
maintainer
docs_urlNone
authorZope Foundation and Contributors
requires_python>=3.7
licenseZPL 2.1
keywords web application server zope zope4 cmf
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://img.shields.io/pypi/v/Products.GenericSetup.svg
        :target: https://pypi.python.org/pypi/Products.GenericSetup/
        :alt: Latest release

.. image:: https://img.shields.io/pypi/pyversions/Products.GenericSetup.svg
        :target: https://pypi.org/project/Products.GenericSetup/
        :alt: Supported Python versions

.. image:: https://travis-ci.com/zopefoundation/Products.GenericSetup.svg?branch=master
        :target: https://travis-ci.com/zopefoundation/Products.GenericSetup

.. image:: https://coveralls.io/repos/github/zopefoundation/Products.GenericSetup/badge.svg?branch=master
        :target: https://coveralls.io/github/zopefoundation/Products.GenericSetup?branch=master

.. image:: https://readthedocs.org/projects/productsgenericsetup/badge/?version=latest
        :target: https://productsgenericsetup.readthedocs.io/
        :alt: Documentation Status


Products.GenericSetup
=====================

This product provides a mini-framework for expressing the configured
state of a Zope Site as a set of filesystem artifacts.  These artifacts
consist of declarative XML files, which spell out the configuration
settings for each "tool" in the site , and supporting scripts / templates,
in their "canonical" filesystem representations.

See https://productsgenericsetup.readthedocs.io/ for full documentation.

------------------------------------------------------------

Changelog
=========

3.0.0 (2023-02-01)
------------------

- Drop support for Python 2.7, 3.5, 3.6.


2.3.0 (2022-12-16)
------------------

- Fix insidious buildout configuration bug for tests against Zope 4.

- Add support for Python 3.11.


2.2.0 (2022-04-04)
------------------

- Add method ``tool.hasUpgrades``.
  This is more efficient than checking if ``tool.listUpgrades`` returns a non-empty list.

- Add options ``dest`` and ``simple`` to ``tool.listUpgrades``.
  Use this to simplify the ``upgradeProfile`` method.

- Fix #118: Import handler not found .
  (`#118 <https://github.com/zopefoundation/Products.GenericSetup/issues/118>`_)

- Allow passing ``quiet=True`` to ``upgradeProfile``.
  Then we do not complain when the profile is not installed or needs no upgrade.


2.1.5 (2021-12-03)
------------------

- Fix #114: Problems using ZMI on multi-instance clusters due to instable hash key.
  (`#114 <https://github.com/zopefoundation/Products.GenericSetup/issues/114>`_)

- Move several tabs to Zope 4+ ZMI-markup standard.  [jensens]


2.1.4 (2021-09-15)
------------------

- Fix compatibility with Zope 5.3, where a lines property is expected to contain text,
  instead of bytes.
  (`#109 <https://github.com/zopefoundation/Products.GenericSetup/issues/109>`_)


2.1.3 (2021-07-28)
------------------

- Fix Issue #83 where empty Versions caused an Error [gogobd]

2.1.2 (2021-07-02)
------------------

- Document and fix behavior of methods that open/read/write filesystem files
  (`#107 <https://github.com/zopefoundation/Products.GenericSetup/issues/107>`_)

- Fix snapshot comparisons under Python 3
  (`#85 <https://github.com/zopefoundation/Products.GenericSetup/issues/85>`_)


2.1.1 (2021-03-02)
------------------

- Enforce access control on setup tool log files and snapshot files and folders.
  (`#101 <https://github.com/zopefoundation/Products.GenericSetup/issues/101>`_)


2.1.0 (2021-01-26)
------------------

- Add support for Python 3.9.


2.0.3 (2020-09-28)
------------------

- When logging an upgrade, print the version tuple joined by dots.

- Renamed ``xml`` dir to ``xml_templates``.
  This avoids an import warning on Python 2.7.


2.0.2 (2020-01-29)
------------------

- Remove Zope 2.13 fossils to stay compatible with Zope 5

- Force saving unpersisted changes in toolset registry.
  (`#86 <https://github.com/zopefoundation/Products.GenericSetup/issues/86>`_)


2.0.1 (2019-10-12)
------------------

- Fix the sorting of upgrade steps.  [vanderbauwhede]


2.0 (2019-05-10)
----------------

- no changes since 2.0b6


2.0b6 (2019-04-09)
------------------

- Zope 4 ZMI: Added icon

- Zope 4 ZMI: declare that creating a GS tool does not need an add dialog
  (`#80 <https://github.com/zopefoundation/Products.GenericSetup/issues/80>`_)

- clean up ``setup.py`` and remove support for ``setup.py test``
  (`#73 <https://github.com/zopefoundation/Products.GenericSetup/issues/73>`_)

- add support for unicode data in ``writeDataFile``
  (`#79 <https://github.com/zopefoundation/Products.GenericSetup/issues/79>`_)

- Specify supported Python versions using ``python_requires`` in setup.py

- Adding suport for Python 3.8


2.0b5 (2018-12-14)
------------------

- Fix deprecation warnings for ``cgi.escape`` by using ``html.escape``
  (`#76 <https://github.com/zopefoundation/Products.GenericSetup/issues/76>`_)


2.0b4 (2018-11-22)
------------------

- Convert input from xml configuration with correct encoding before passing to
  type_converter.
  (`#77 <https://github.com/zopefoundation/Products.GenericSetup/pull/77>`_)
  [sallner]


2.0b3 (2018-11-07)
------------------

- Do not turn ulines and multiple selection into bytes.
  [davisagli]

- Set body of PythonScripts as text in py3.
  [pbauer]

- Compare encodings so that UTF-8 and utf-8 are the same.
  [pbauer]

- Compare DOM as text in py3.
  [pbauer]


2.0b2 (2018-10-17)
------------------

New features:

- Add Python 3.7 support.

- Support `zope.configuration >= 4.2`.

Bug fixes:

- Proper string/bytes handling for _createObjectByType.
  In Python2 everything is written as bytes,
  while on Python3 everything is written as text except files and images
  which are stored as bytes
  [ale-rt]


2.0b1 (2018-05-16)
------------------

Breaking changes:

- Require Zope 4.0b4 as minimum supported Zope version and drop
  explicit ``Zope2`` egg dependency.

- Drop Python 3.4 support

New features:

- Fixed tests with ``Products.ZCatalog 4.1``.  [maurits]

- When ``metadata.xml`` parsing fails, show the filename in the ``ExpatError``.
  Fixes `Plone issue 2303 <https://github.com/plone/Products.CMFPlone/issues/2303>`_.

- Prevent AttributeError 'NoneType' object has no attribute 'decode'.
  [maurits]

- Finished compatibility with Python 3.5 and 3.6

- Made the code PEP-8 compliant

Bug fixes:

- Do not mask KeyError in 'getProfileDependencies' from missing
  dependency profiles.
  Refs: https://github.com/plone/Products.CMFPlone/issues/2228
  [ida]


1.10.0 (2017-12-07)
-------------------

Breaking changes:

- Require Zope 4.0a6 as minimum supported Zope version.

- Moved support for `MailHost` import/export into the
  ``Products.MailHost`` package to cut the hard dependency.

New features:

- Added ``tox`` testing configuration.

- Pushed documentation to RTD: https://productsgenericsetup.readthedocs.io/.

1.9.1 (2017-05-06)
------------------

Bug fixes:

- Fixed ``upgradeStep`` discriminator so that similar steps
  for different profiles will not conflict.

- Fixed ``upgradeDepends`` discriminator so that steps inside
  ``upgradeSteps`` will conflict with steps outside if they
  have the same ``checker``.

- Fix import of UnrestrictedUser.

1.9.0 (2017-05-04)
------------------

Breaking changes:

- Drop support for Python 2.6.

- Require Zope 4.0a3 as minimum supported Zope version.

1.8.7 (2017-03-26)
------------------

- Allow registering the same profile twice if it really is the same.
  This is mostly for tests where the registry may not be cleaned up
  correctly in case of problems in test teardown.
  If you register the same profile twice in zcml, you still get a
  conflict from ``zope.configuration`` during Zope startup.
  [maurits]


1.8.6 (2016-12-30)
------------------

- Added a ``purge_old`` option to the tarball import form.
  By default this option is checked, which matches the previous behavior.
  If you uncheck it, this avoids purging old settings for any import step
  that is run.  [maurits]


1.8.5 (2016-11-01)
------------------

- Stopped using a form library to render the components form.

1.8.4 (2016-09-21)
------------------

- Made ``_profile_upgrade_versions`` a PersistentMapping.  When
  ``(un)setLastVersionForProfile`` is called, we migrate the original
  Python dictionary.  This makes some code easier and plays nicer with
  transactions, which may especially help during tests.  [maurits]


1.8.3 (2016-04-28)
------------------

- Allowed overriding required and forbidden tools in ``toolset.xml``.
  If a tool is currently required and you import a ``toolset.xml``
  where it is forbidden, we remove the tool from the required list and
  add it to the forbidden list.  And the other way around.  The
  previous behavior was to raise an exception, which left no way in
  xml to remove a tool.  Fail with a ValueError when the ``remove``
  keyword is used.  The expected behavior is unclear.  [maurits]


1.8.2 (2016-02-24)
------------------

- Added optional ``pre_handler`` and ``post_handler`` to
  ``registerProfile`` directive.  When set, these dotted names are
  resolved to a function and are passed the setup tool as single
  argument.  They are called before and after applying all import
  steps of the profile they are registered for.  [maurits]

- Sorted import profiles alphabetically lowercase.  Allow selecting a
  profile by title or id.  [maurits]

- Do not show dependency options on the full import tab when there are
  no dependencies.  [maurits]

- Do not select a profile by default in the import tabs.  [maurits]

- Added simple toggle for all steps on the advanced import tab.
  Also added this on the export tab.
  [maurits]

- Fixed importing a tarball.  This got an AttributeError: "'NoneType'
  object has no attribute 'startswith'".
  [maurits]

- Split overly complex Import tab into three tabs: Import (for
  importing a full profile), Advanced Import (the original
  ``manage_importSteps`` url leads to this tab), and Tarball Import.
  [maurits]

- Show note on import tab when there are pending upgrades.  Especially
  show this for the currently selected profile.
  [maurits]

- Upgrades tab: show profiles with pending upgrades separately.  These
  are the most important ones.  This avoids the need to manually go
  through the whole list in order to find profiles that may need
  action.  This uses new methods on the setup tool:
  ``hasPendingUpgrades``, ``listProfilesWithPendingUpgrades``,
  ``listUptodateProfiles``.
  [maurits]


1.8.1 (2015-12-16)
------------------

- Purge the profile upgrade versions before applying a base profile.

- Added ``purgeProfileVersions`` method to ``portal_setup``.  This
  removes the all profiles profile upgrade versions.

- Added ``unsetLastVersionForProfile`` method to ``portal_setup``.  This
  removes the profile id from the profile upgrade versions.  Calling
  ``setLastVersionForProfile`` with ``unknown`` as version now has the
  same effect.


1.8.0 (2015-09-21)
------------------

- Be more forgiving when dealing with profile ids with or without
  ``profile-`` at the start.  All functions that accept a profile id
  argument and only work when the id does *not* have this string at
  the start, will now strip it off if it is there.  For example,
  ``getLastVersionForProfile`` will give the same answer whether you
  ask it for the version of profile id ``foo`` or ``profile-foo``.

- Dependency profiles from ``metadata.xml`` that are already applied,
  are not applied again.  Instead, its upgrade steps, if any, are
  applied.  In code you can choose the old behavior of always applying
  the dependencies, by calling ``runAllImportStepsFromProfile`` with
  ``dependency_strategy=DEPENDENCY_STRATEGY_REAPPLY``.  There are four
  strategies, which you can choose in the ZMI.


1.7.7 (2015-08-11)
------------------

- Fix: when the last applied upgrade step had a checker, the profile
  version was not updated.  Now we no longer look at the checker of
  the last applied step when deciding whether to set the profile
  version.  The checker, if any is set, normally returns True before
  running the step (it can be applied), and False afterwards (it
  was already applied).

- Add ``upgradeProfile`` method to setup tool.  This method applies all
  upgrades steps for the given profile, or updates it to the optional
  given version.  If the profile does not exist, or if there is no upgrade
  step to go to the specified version, the method warns and does nothing.

- Check the boolean value of the ``remove`` option when importing
  objects.  Previously we only checked if the ``remove`` option was
  given, regardless of its value.  Supported are ``True``, ``Yes``,
  and ``1``, where case does not matter.  The syntax for removing
  objects, properties, and elements is now the same.

- Support ``remove="True"`` for properties.


1.7.6 (2015-07-15)
------------------

- Enable testing under Travis.

- Fix compatibility with Setuptools 8.0 and later.  Upgrade steps
  could get sorted in the wrong order, especially an empty version
  string (upgrade step from any source version) sorted last instead of
  first.


1.7.5 (2014-10-23)
------------------

- Allow skipping certain steps on ``runAllImportStepsFromProfile``.


1.7.4 (2013-06-12)
------------------

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


1.7.3 (2012-10-16)
------------------

- Sort profiles on Upgrade form.

- Use clickable labels with checkboxes on import, export and upgrade forms
  to improve usability.


1.7.2 (2012-07-23)
------------------

- Avoid using ``manage_FTPGet`` on snapshot exports: that method messes
  up the response headers.

- ZopePageTemplate handler:  Fix export encoding: since 1.7.0, exports
  must be UTF-8 strings


1.7.1 (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.7.0 (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.

- Exporters now explicitly only understand strings. The provided
  registry handlers encode and decode data automatically to and from
  UTF-8. Their default encoding changed from None to UTF-8.
  If you have custom registry handlers, ensure that you encode your unicode.
  Check especially if you use a page template to generate xml. They return
  unicode and their output must also encoded.
  If you choose to encode your strings with UTF-8, you can be sure that
  your code will also work with GenericSetup < 1.7

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/zopefoundation/Products.GenericSetup",
    "name": "Products.GenericSetup",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "web application server zope zope4 cmf",
    "author": "Zope Foundation and Contributors",
    "author_email": "zope-dev@zope.dev",
    "download_url": "https://files.pythonhosted.org/packages/3f/97/f7b0b297ce50126026303ff0aebf558f3f3b8f6e785f10e3cb61a00d5043/Products.GenericSetup-3.0.0.tar.gz",
    "platform": null,
    "description": ".. image:: https://img.shields.io/pypi/v/Products.GenericSetup.svg\n        :target: https://pypi.python.org/pypi/Products.GenericSetup/\n        :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/Products.GenericSetup.svg\n        :target: https://pypi.org/project/Products.GenericSetup/\n        :alt: Supported Python versions\n\n.. image:: https://travis-ci.com/zopefoundation/Products.GenericSetup.svg?branch=master\n        :target: https://travis-ci.com/zopefoundation/Products.GenericSetup\n\n.. image:: https://coveralls.io/repos/github/zopefoundation/Products.GenericSetup/badge.svg?branch=master\n        :target: https://coveralls.io/github/zopefoundation/Products.GenericSetup?branch=master\n\n.. image:: https://readthedocs.org/projects/productsgenericsetup/badge/?version=latest\n        :target: https://productsgenericsetup.readthedocs.io/\n        :alt: Documentation Status\n\n\nProducts.GenericSetup\n=====================\n\nThis product provides a mini-framework for expressing the configured\nstate of a Zope Site as a set of filesystem artifacts.  These artifacts\nconsist of declarative XML files, which spell out the configuration\nsettings for each \"tool\" in the site , and supporting scripts / templates,\nin their \"canonical\" filesystem representations.\n\nSee https://productsgenericsetup.readthedocs.io/ for full documentation.\n\n------------------------------------------------------------\n\nChangelog\n=========\n\n3.0.0 (2023-02-01)\n------------------\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n\n2.3.0 (2022-12-16)\n------------------\n\n- Fix insidious buildout configuration bug for tests against Zope 4.\n\n- Add support for Python 3.11.\n\n\n2.2.0 (2022-04-04)\n------------------\n\n- Add method ``tool.hasUpgrades``.\n  This is more efficient than checking if ``tool.listUpgrades`` returns a non-empty list.\n\n- Add options ``dest`` and ``simple`` to ``tool.listUpgrades``.\n  Use this to simplify the ``upgradeProfile`` method.\n\n- Fix #118: Import handler not found .\n  (`#118 <https://github.com/zopefoundation/Products.GenericSetup/issues/118>`_)\n\n- Allow passing ``quiet=True`` to ``upgradeProfile``.\n  Then we do not complain when the profile is not installed or needs no upgrade.\n\n\n2.1.5 (2021-12-03)\n------------------\n\n- Fix #114: Problems using ZMI on multi-instance clusters due to instable hash key.\n  (`#114 <https://github.com/zopefoundation/Products.GenericSetup/issues/114>`_)\n\n- Move several tabs to Zope 4+ ZMI-markup standard.  [jensens]\n\n\n2.1.4 (2021-09-15)\n------------------\n\n- Fix compatibility with Zope 5.3, where a lines property is expected to contain text,\n  instead of bytes.\n  (`#109 <https://github.com/zopefoundation/Products.GenericSetup/issues/109>`_)\n\n\n2.1.3 (2021-07-28)\n------------------\n\n- Fix Issue #83 where empty Versions caused an Error [gogobd]\n\n2.1.2 (2021-07-02)\n------------------\n\n- Document and fix behavior of methods that open/read/write filesystem files\n  (`#107 <https://github.com/zopefoundation/Products.GenericSetup/issues/107>`_)\n\n- Fix snapshot comparisons under Python 3\n  (`#85 <https://github.com/zopefoundation/Products.GenericSetup/issues/85>`_)\n\n\n2.1.1 (2021-03-02)\n------------------\n\n- Enforce access control on setup tool log files and snapshot files and folders.\n  (`#101 <https://github.com/zopefoundation/Products.GenericSetup/issues/101>`_)\n\n\n2.1.0 (2021-01-26)\n------------------\n\n- Add support for Python 3.9.\n\n\n2.0.3 (2020-09-28)\n------------------\n\n- When logging an upgrade, print the version tuple joined by dots.\n\n- Renamed ``xml`` dir to ``xml_templates``.\n  This avoids an import warning on Python 2.7.\n\n\n2.0.2 (2020-01-29)\n------------------\n\n- Remove Zope 2.13 fossils to stay compatible with Zope 5\n\n- Force saving unpersisted changes in toolset registry.\n  (`#86 <https://github.com/zopefoundation/Products.GenericSetup/issues/86>`_)\n\n\n2.0.1 (2019-10-12)\n------------------\n\n- Fix the sorting of upgrade steps.  [vanderbauwhede]\n\n\n2.0 (2019-05-10)\n----------------\n\n- no changes since 2.0b6\n\n\n2.0b6 (2019-04-09)\n------------------\n\n- Zope 4 ZMI: Added icon\n\n- Zope 4 ZMI: declare that creating a GS tool does not need an add dialog\n  (`#80 <https://github.com/zopefoundation/Products.GenericSetup/issues/80>`_)\n\n- clean up ``setup.py`` and remove support for ``setup.py test``\n  (`#73 <https://github.com/zopefoundation/Products.GenericSetup/issues/73>`_)\n\n- add support for unicode data in ``writeDataFile``\n  (`#79 <https://github.com/zopefoundation/Products.GenericSetup/issues/79>`_)\n\n- Specify supported Python versions using ``python_requires`` in setup.py\n\n- Adding suport for Python 3.8\n\n\n2.0b5 (2018-12-14)\n------------------\n\n- Fix deprecation warnings for ``cgi.escape`` by using ``html.escape``\n  (`#76 <https://github.com/zopefoundation/Products.GenericSetup/issues/76>`_)\n\n\n2.0b4 (2018-11-22)\n------------------\n\n- Convert input from xml configuration with correct encoding before passing to\n  type_converter.\n  (`#77 <https://github.com/zopefoundation/Products.GenericSetup/pull/77>`_)\n  [sallner]\n\n\n2.0b3 (2018-11-07)\n------------------\n\n- Do not turn ulines and multiple selection into bytes.\n  [davisagli]\n\n- Set body of PythonScripts as text in py3.\n  [pbauer]\n\n- Compare encodings so that UTF-8 and utf-8 are the same.\n  [pbauer]\n\n- Compare DOM as text in py3.\n  [pbauer]\n\n\n2.0b2 (2018-10-17)\n------------------\n\nNew features:\n\n- Add Python 3.7 support.\n\n- Support `zope.configuration >= 4.2`.\n\nBug fixes:\n\n- Proper string/bytes handling for _createObjectByType.\n  In Python2 everything is written as bytes,\n  while on Python3 everything is written as text except files and images\n  which are stored as bytes\n  [ale-rt]\n\n\n2.0b1 (2018-05-16)\n------------------\n\nBreaking changes:\n\n- Require Zope 4.0b4 as minimum supported Zope version and drop\n  explicit ``Zope2`` egg dependency.\n\n- Drop Python 3.4 support\n\nNew features:\n\n- Fixed tests with ``Products.ZCatalog 4.1``.  [maurits]\n\n- When ``metadata.xml`` parsing fails, show the filename in the ``ExpatError``.\n  Fixes `Plone issue 2303 <https://github.com/plone/Products.CMFPlone/issues/2303>`_.\n\n- Prevent AttributeError 'NoneType' object has no attribute 'decode'.\n  [maurits]\n\n- Finished compatibility with Python 3.5 and 3.6\n\n- Made the code PEP-8 compliant\n\nBug fixes:\n\n- Do not mask KeyError in 'getProfileDependencies' from missing\n  dependency profiles.\n  Refs: https://github.com/plone/Products.CMFPlone/issues/2228\n  [ida]\n\n\n1.10.0 (2017-12-07)\n-------------------\n\nBreaking changes:\n\n- Require Zope 4.0a6 as minimum supported Zope version.\n\n- Moved support for `MailHost` import/export into the\n  ``Products.MailHost`` package to cut the hard dependency.\n\nNew features:\n\n- Added ``tox`` testing configuration.\n\n- Pushed documentation to RTD: https://productsgenericsetup.readthedocs.io/.\n\n1.9.1 (2017-05-06)\n------------------\n\nBug fixes:\n\n- Fixed ``upgradeStep`` discriminator so that similar steps\n  for different profiles will not conflict.\n\n- Fixed ``upgradeDepends`` discriminator so that steps inside\n  ``upgradeSteps`` will conflict with steps outside if they\n  have the same ``checker``.\n\n- Fix import of UnrestrictedUser.\n\n1.9.0 (2017-05-04)\n------------------\n\nBreaking changes:\n\n- Drop support for Python 2.6.\n\n- Require Zope 4.0a3 as minimum supported Zope version.\n\n1.8.7 (2017-03-26)\n------------------\n\n- Allow registering the same profile twice if it really is the same.\n  This is mostly for tests where the registry may not be cleaned up\n  correctly in case of problems in test teardown.\n  If you register the same profile twice in zcml, you still get a\n  conflict from ``zope.configuration`` during Zope startup.\n  [maurits]\n\n\n1.8.6 (2016-12-30)\n------------------\n\n- Added a ``purge_old`` option to the tarball import form.\n  By default this option is checked, which matches the previous behavior.\n  If you uncheck it, this avoids purging old settings for any import step\n  that is run.  [maurits]\n\n\n1.8.5 (2016-11-01)\n------------------\n\n- Stopped using a form library to render the components form.\n\n1.8.4 (2016-09-21)\n------------------\n\n- Made ``_profile_upgrade_versions`` a PersistentMapping.  When\n  ``(un)setLastVersionForProfile`` is called, we migrate the original\n  Python dictionary.  This makes some code easier and plays nicer with\n  transactions, which may especially help during tests.  [maurits]\n\n\n1.8.3 (2016-04-28)\n------------------\n\n- Allowed overriding required and forbidden tools in ``toolset.xml``.\n  If a tool is currently required and you import a ``toolset.xml``\n  where it is forbidden, we remove the tool from the required list and\n  add it to the forbidden list.  And the other way around.  The\n  previous behavior was to raise an exception, which left no way in\n  xml to remove a tool.  Fail with a ValueError when the ``remove``\n  keyword is used.  The expected behavior is unclear.  [maurits]\n\n\n1.8.2 (2016-02-24)\n------------------\n\n- Added optional ``pre_handler`` and ``post_handler`` to\n  ``registerProfile`` directive.  When set, these dotted names are\n  resolved to a function and are passed the setup tool as single\n  argument.  They are called before and after applying all import\n  steps of the profile they are registered for.  [maurits]\n\n- Sorted import profiles alphabetically lowercase.  Allow selecting a\n  profile by title or id.  [maurits]\n\n- Do not show dependency options on the full import tab when there are\n  no dependencies.  [maurits]\n\n- Do not select a profile by default in the import tabs.  [maurits]\n\n- Added simple toggle for all steps on the advanced import tab.\n  Also added this on the export tab.\n  [maurits]\n\n- Fixed importing a tarball.  This got an AttributeError: \"'NoneType'\n  object has no attribute 'startswith'\".\n  [maurits]\n\n- Split overly complex Import tab into three tabs: Import (for\n  importing a full profile), Advanced Import (the original\n  ``manage_importSteps`` url leads to this tab), and Tarball Import.\n  [maurits]\n\n- Show note on import tab when there are pending upgrades.  Especially\n  show this for the currently selected profile.\n  [maurits]\n\n- Upgrades tab: show profiles with pending upgrades separately.  These\n  are the most important ones.  This avoids the need to manually go\n  through the whole list in order to find profiles that may need\n  action.  This uses new methods on the setup tool:\n  ``hasPendingUpgrades``, ``listProfilesWithPendingUpgrades``,\n  ``listUptodateProfiles``.\n  [maurits]\n\n\n1.8.1 (2015-12-16)\n------------------\n\n- Purge the profile upgrade versions before applying a base profile.\n\n- Added ``purgeProfileVersions`` method to ``portal_setup``.  This\n  removes the all profiles profile upgrade versions.\n\n- Added ``unsetLastVersionForProfile`` method to ``portal_setup``.  This\n  removes the profile id from the profile upgrade versions.  Calling\n  ``setLastVersionForProfile`` with ``unknown`` as version now has the\n  same effect.\n\n\n1.8.0 (2015-09-21)\n------------------\n\n- Be more forgiving when dealing with profile ids with or without\n  ``profile-`` at the start.  All functions that accept a profile id\n  argument and only work when the id does *not* have this string at\n  the start, will now strip it off if it is there.  For example,\n  ``getLastVersionForProfile`` will give the same answer whether you\n  ask it for the version of profile id ``foo`` or ``profile-foo``.\n\n- Dependency profiles from ``metadata.xml`` that are already applied,\n  are not applied again.  Instead, its upgrade steps, if any, are\n  applied.  In code you can choose the old behavior of always applying\n  the dependencies, by calling ``runAllImportStepsFromProfile`` with\n  ``dependency_strategy=DEPENDENCY_STRATEGY_REAPPLY``.  There are four\n  strategies, which you can choose in the ZMI.\n\n\n1.7.7 (2015-08-11)\n------------------\n\n- Fix: when the last applied upgrade step had a checker, the profile\n  version was not updated.  Now we no longer look at the checker of\n  the last applied step when deciding whether to set the profile\n  version.  The checker, if any is set, normally returns True before\n  running the step (it can be applied), and False afterwards (it\n  was already applied).\n\n- Add ``upgradeProfile`` method to setup tool.  This method applies all\n  upgrades steps for the given profile, or updates it to the optional\n  given version.  If the profile does not exist, or if there is no upgrade\n  step to go to the specified version, the method warns and does nothing.\n\n- Check the boolean value of the ``remove`` option when importing\n  objects.  Previously we only checked if the ``remove`` option was\n  given, regardless of its value.  Supported are ``True``, ``Yes``,\n  and ``1``, where case does not matter.  The syntax for removing\n  objects, properties, and elements is now the same.\n\n- Support ``remove=\"True\"`` for properties.\n\n\n1.7.6 (2015-07-15)\n------------------\n\n- Enable testing under Travis.\n\n- Fix compatibility with Setuptools 8.0 and later.  Upgrade steps\n  could get sorted in the wrong order, especially an empty version\n  string (upgrade step from any source version) sorted last instead of\n  first.\n\n\n1.7.5 (2014-10-23)\n------------------\n\n- Allow skipping certain steps on ``runAllImportStepsFromProfile``.\n\n\n1.7.4 (2013-06-12)\n------------------\n\n- On import, avoid clearing indexes whose state is unchanged.\n\n\n1.7.3 (2012-10-16)\n------------------\n\n- Sort profiles on Upgrade form.\n\n- Use clickable labels with checkboxes on import, export and upgrade forms\n  to improve usability.\n\n\n1.7.2 (2012-07-23)\n------------------\n\n- Avoid using ``manage_FTPGet`` on snapshot exports: that method messes\n  up the response headers.\n\n- ZopePageTemplate handler:  Fix export encoding: since 1.7.0, exports\n  must be UTF-8 strings\n\n\n1.7.1 (2012-02-28)\n------------------\n\n- Restore the ability to make the setup tool use only import / export\n  steps explicitly called out by the current profile, ignoring any which\n  might be globally registered.  This is particularly useful for configuring\n  sites with baseline profiles, where arbitrary add-on steps are not only\n  useless, but potentially damaging.\n\n\n1.7.0 (2012-01-27)\n------------------\n\n- While importing ``toolset.xml``, print a warning when the class of a\n  required tool is not found and continue with the next tool.  The\n  previous behaviour could break the install or uninstall of any\n  add-on, as the missing class may easily be from a different\n  unrelated add-on that is no longer available in the zope instance.\n\n- Exporters now explicitly only understand strings. The provided\n  registry handlers encode and decode data automatically to and from\n  UTF-8. Their default encoding changed from None to UTF-8.\n  If you have custom registry handlers, ensure that you encode your unicode.\n  Check especially if you use a page template to generate xml. They return\n  unicode and their output must also encoded.\n  If you choose to encode your strings with UTF-8, you can be sure that\n  your code will also work with GenericSetup < 1.7\n",
    "bugtrack_url": null,
    "license": "ZPL 2.1",
    "summary": "Read Zope configuration state from profile dirs / tarballs",
    "version": "3.0.0",
    "split_keywords": [
        "web",
        "application",
        "server",
        "zope",
        "zope4",
        "cmf"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e5586c1447a1061bf4b35e66bb5b08a136b44caaff9fa8b118228348e2a2241",
                "md5": "bbf4b648be4ae2e9cb213d7c9a503b12",
                "sha256": "79fe8da8bed3cd39728c9e8ed1c3ef7e43836ebf5801b324cb92dc410f6a8976"
            },
            "downloads": -1,
            "filename": "Products.GenericSetup-3.0.0-py3-none-any.whl",
            "has_sig": true,
            "md5_digest": "bbf4b648be4ae2e9cb213d7c9a503b12",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 178672,
            "upload_time": "2023-02-01T08:59:38",
            "upload_time_iso_8601": "2023-02-01T08:59:38.119911Z",
            "url": "https://files.pythonhosted.org/packages/4e/55/86c1447a1061bf4b35e66bb5b08a136b44caaff9fa8b118228348e2a2241/Products.GenericSetup-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f97f7b0b297ce50126026303ff0aebf558f3f3b8f6e785f10e3cb61a00d5043",
                "md5": "37aa1e343266e26f84571f261f65976f",
                "sha256": "99c1d73e473067f10595b95c876251fc6feaeb25cda42eeda834cd2aa000ca92"
            },
            "downloads": -1,
            "filename": "Products.GenericSetup-3.0.0.tar.gz",
            "has_sig": true,
            "md5_digest": "37aa1e343266e26f84571f261f65976f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 150182,
            "upload_time": "2023-02-01T08:59:48",
            "upload_time_iso_8601": "2023-02-01T08:59:48.032080Z",
            "url": "https://files.pythonhosted.org/packages/3f/97/f7b0b297ce50126026303ff0aebf558f3f3b8f6e785f10e3cb61a00d5043/Products.GenericSetup-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-01 08:59:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "zopefoundation",
    "github_project": "Products.GenericSetup",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "products.genericsetup"
}
        
Elapsed time: 0.04107s