From 1dee2652113e28e6620ce432e10feddc8c5da7e2 Mon Sep 17 00:00:00 2001 From: jensens Date: Thu, 5 Oct 2023 09:42:07 +0200 Subject: [PATCH] [fc] Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-06-25T09:30:23+02:00 Author: Gil Forcada Codinachs (gforcada) Commit: https://github.com/plone/plone.app.contentrules/commit/4bed20c8b7d956711e44725f39ec2b289a722803 Configuring with plone/meta Files changed: A .flake8 A .github/workflows/meta.yml A news/cfffba8c.internal M .editorconfig M .gitignore M .meta.toml M .pre-commit-config.yaml M pyproject.toml M tox.ini Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) Commit: https://github.com/plone/plone.app.contentrules/commit/79d17152f538e815ba5b39adb0706a709109450a cleanup: remove unused file Files changed: D setup.cfg Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) Commit: https://github.com/plone/plone.app.contentrules/commit/cbb6c50e73f370f88f1faca91c4b58f41e595f05 fix: adjust setup.py Files changed: M setup.py Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) Commit: https://github.com/plone/plone.app.contentrules/commit/ef9142774c2d97da360102d9027486810b6c7b9f fix: adjust dependencies Files changed: M setup.py Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-10-04T18:01:01+02:00 Author: Jens W. Klein (jensens) Commit: https://github.com/plone/plone.app.contentrules/commit/1f3deb6b81da20d3ffe41b844dd374097c1a011d Merge branch 'master' into config-with-default-template-74477809 Files changed: M .pre-commit-config.yaml Repository: plone.app.contentrules Branch: refs/heads/master Date: 2023-10-05T09:42:07+02:00 Author: Jens W. Klein (jensens) Commit: https://github.com/plone/plone.app.contentrules/commit/eb865aacd538191d30900978c067002057770720 Merge pull request #86 from plone/config-with-default-template-74477809 Config with default template [skip ci] Files changed: A .flake8 A .github/workflows/meta.yml A news/cfffba8c.internal M .editorconfig M .gitignore M .meta.toml M .pre-commit-config.yaml M pyproject.toml M setup.py M tox.ini D setup.cfg --- last_commit.txt | 58 +++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/last_commit.txt b/last_commit.txt index fdd9616d7c..1db267ecb7 100644 --- a/last_commit.txt +++ b/last_commit.txt @@ -1,10 +1,10 @@ -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-06-25T09:15:46+02:00 +Date: 2023-06-25T09:30:23+02:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.app.customerize/commit/5daee09639b375ca8f01928c49f1f23687f178d7 +Commit: https://github.com/plone/plone.app.contentrules/commit/4bed20c8b7d956711e44725f39ec2b289a722803 Configuring with plone/meta @@ -19,15 +19,15 @@ M .pre-commit-config.yaml M pyproject.toml M tox.ini -b'diff --git a/.editorconfig b/.editorconfig\nindex b4158b8..919b411 100644\n--- a/.editorconfig\n+++ b/.editorconfig\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n #\n # EditorConfig Configuration file, for more details see:\n # http://EditorConfig.org\n@@ -32,8 +33,21 @@ indent_size = 4\n # 2 space indentation\n indent_size = 2\n \n+[*.{json,jsonl,js,jsx,ts,tsx,css,less,scss,html}] # Frontend development\n+# 2 space indentation\n+indent_size = 2\n+\n [{Makefile,.gitmodules}]\n # Tab indentation (no size specified, but view as 4 spaces)\n indent_style = tab\n indent_size = unset\n tab_width = unset\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [editorconfig]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.flake8 b/.flake8\nnew file mode 100644\nindex 0000000..7ef4f64\n--- /dev/null\n+++ b/.flake8\n@@ -0,0 +1,22 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+[flake8]\n+doctests = 1\n+ignore =\n+ # black takes care of line length\n+ E501,\n+ # black takes care of where to break lines\n+ W503,\n+ # black takes care of spaces within slicing (list[:])\n+ E203,\n+ # black takes care of spaces after commas\n+ E231,\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [flake8]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml\nnew file mode 100644\nindex 0000000..a7f25e0\n--- /dev/null\n+++ b/.github/workflows/meta.yml\n@@ -0,0 +1,28 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+name: Meta\n+on:\n+ push:\n+ branches:\n+ - master\n+ - main\n+ pull_request:\n+ branches:\n+ - master\n+ - main\n+ workflow_dispatch:\n+\n+jobs:\n+ qa:\n+ uses: plone/meta/.github/workflows/qa.yml@main\n+ test:\n+ uses: plone/meta/.github/workflows/test.yml@main\n+ coverage:\n+ uses: plone/meta/.github/workflows/coverage.yml@main\n+ dependencies:\n+ uses: plone/meta/.github/workflows/dependencies.yml@main\n+ release-ready:\n+ uses: plone/meta/.github/workflows/release_ready.yml@main\n+ circular:\n+ uses: plone/meta/.github/workflows/circular.yml@main\ndiff --git a/.gitignore b/.gitignore\nindex 0b11b53..81594fd 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -1,76 +1,51 @@\n-# Compiled source #\n-###################\n-*.com\n-*.class\n-*.dll\n-*.exe\n-*.o\n-*.so\n-*.lo\n-*.la\n-*.rej\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+# python related\n+*.egg-info\n *.pyc\n *.pyo\n \n-# Packages #\n-############\n-# it\'s better to unpack these files and commit the raw source\n-# git has its own built in compression methods\n-*.7z\n-*.dmg\n-*.gz\n-*.iso\n-*.jar\n-*.rar\n-*.tar\n-*.zip\n-\n-# Logs and databases #\n-######################\n-*.log\n-*.sql\n-*.sqlite\n-\n-# OS generated files #\n-######################\n-.DS_Store\n-.DS_Store?\n-ehthumbs.db\n-Icon?\n-Thumbs.db\n-*.tmproj\n-\n-# Editor backup files #\n-#######################\n-*~\n-*.sw[op]\n-\n-# Other VCSes #\n-###############\n-.svn\n-\n-# Python projects related #\n-###########################\n-*.egg-info\n-.egg-info.installed.cfg\n-*.pt.py\n-*.cpt.py\n-*.zpt.py\n-*.html.py\n-*.egg\n-.mr.developer.cfg\n+# tools related\n+build/\n+.coverage\n+coverage.xml\n+dist/\n+docs/_build\n+__pycache__/\n+.tox\n+.vscode/\n+node_modules/\n+\n+# venv / buildout related\n+bin/\n+develop-eggs/\n+eggs/\n+.eggs/\n+etc/\n .installed.cfg\n-\n-# Eclipse pydev related #\n-#########################\n-.project\n-.pydevproject\n-.settings\n-\n-# Buildout generated folders #\n-##############################\n-bin\n-parts\n-develop-eggs\n-var\n-\n+include/\n+lib/\n+lib64\n+.mr.developer.cfg\n+parts/\n+pyvenv.cfg\n+var/\n+\n+# mxdev\n+/instance/\n+/.make-sentinels/\n+/*-mxdev.txt\n+/reports/\n+/sources/\n+/venv/\n+.installed.txt\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [gitignore]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.meta.toml b/.meta.toml\nindex 4f67994..150211a 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -1,5 +1,11 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [meta]\n template = "default"\n-commit-id = "5623f8b3"\n+commit-id = "cfffba8c"\n+\n+[pre_commit]\n+extra_lines = """\n+ exclude: tests/.*pt\n+"""\ndiff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex ea50e47..b4ef785 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n ci:\n autofix_prs: false\n autoupdate_schedule: monthly\n@@ -22,16 +23,40 @@ repos:\n rev: 3.1.0a2\n hooks:\n - id: zpretty\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# zpretty_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/PyCQA/flake8\n rev: 6.0.0\n hooks:\n - id: flake8\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# flake8_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/codespell-project/codespell\n rev: v2.2.4\n hooks:\n - id: codespell\n additional_dependencies:\n - tomli\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# codespell_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/mgedmin/check-manifest\n rev: "0.49"\n hooks:\n@@ -40,3 +65,21 @@ repos:\n rev: "4.2"\n hooks:\n - id: pyroma\n+- repo: https://github.com/mgedmin/check-python-versions\n+ rev: "0.21.2"\n+ hooks:\n+ - id: check-python-versions\n+ args: [\'--only\', \'setup.py,pyproject.toml\']\n+- repo: https://github.com/collective/i18ndude\n+ rev: "6.0.0"\n+ hooks:\n+ - id: i18ndude\n+ exclude: tests/.*pt\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/news/cfffba8c.internal b/news/cfffba8c.internal\nnew file mode 100644\nindex 0000000..c08f539\n--- /dev/null\n+++ b/news/cfffba8c.internal\n@@ -0,0 +1,2 @@\n+Update configuration files.\n+[plone devs]\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 9eb73f3..e442bd0 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -1,8 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tool.towncrier]\n-filename = "CHANGES.rst"\n directory = "news/"\n+filename = "CHANGES.rst"\n title_format = "{version} ({project_date})"\n underlines = ["-", ""]\n \n@@ -36,27 +37,121 @@ directory = "tests"\n name = "Tests"\n showcontent = true\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# towncrier_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.isort]\n profile = "plone"\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# isort_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.black]\n target-version = ["py38"]\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# black_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n+[tool.codespell]\n+ignore-words-list = "discreet,"\n+skip = "*.po,"\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# codespell_ignores = "foo,bar"\n+# codespell_skip = "*.po,*.map,package-lock.json"\n+##\n+\n [tool.dependencychecker]\n Zope = [\n # Zope own provided namespaces\n \'App\', \'OFS\', \'Products.Five\', \'Products.OFSP\', \'Products.PageTemplates\',\n \'Products.SiteAccess\', \'Shared\', \'Testing\', \'ZPublisher\', \'ZTUtils\',\n \'Zope2\', \'webdav\', \'zmi\',\n+ # ExtensionClass own provided namespaces\n+ \'ExtensionClass\', \'ComputedAttribute\', \'MethodObject\',\n # Zope dependencies\n- \'Acquisition\', \'DateTime\', \'transaction\', \'zExceptions\', \'ZODB\', \'zope.component\',\n- \'zope.configuration\', \'zope.container\', \'zope.deferredimport\', \'zope.event\',\n- \'zope.exceptions\', \'zope.globalrequest\', \'zope.i18n\', \'zope.i18nmessageid\',\n- \'zope.interface\', \'zope.lifecycleevent\', \'zope.location\', \'zope.publisher\',\n- \'zope.schema\', \'zope.security\', \'zope.site\', \'zope.traversing\', \'AccessControl\',\n+ \'AccessControl\', \'Acquisition\', \'AuthEncoding\', \'beautifulsoup4\', \'BTrees\',\n+ \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\',\n+ \'MultiMapping\', \'multipart\', \'PasteDeploy\', \'Persistence\', \'persistent\',\n+ \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\',\n+ \'soupsieve\', \'transaction\', \'waitress\', \'WebOb\', \'WebTest\', \'WSGIProxy2\',\n+ \'z3c.pt\', \'zc.lockfile\', \'ZConfig\', \'zExceptions\', \'ZODB\', \'zodbpickle\',\n+ \'zope.annotation\', \'zope.browser\', \'zope.browsermenu\', \'zope.browserpage\',\n+ \'zope.browserresource\', \'zope.cachedescriptors\', \'zope.component\',\n+ \'zope.configuration\', \'zope.container\', \'zope.contentprovider\',\n+ \'zope.contenttype\', \'zope.datetime\', \'zope.deferredimport\',\n+ \'zope.deprecation\', \'zope.dottedname\', \'zope.event\', \'zope.exceptions\',\n+ \'zope.filerepresentation\', \'zope.globalrequest\', \'zope.hookable\',\n+ \'zope.i18n\', \'zope.i18nmessageid\', \'zope.interface\', \'zope.lifecycleevent\',\n+ \'zope.location\', \'zope.pagetemplate\', \'zope.processlifetime\', \'zope.proxy\',\n+ \'zope.ptresource\', \'zope.publisher\', \'zope.schema\', \'zope.security\',\n+ \'zope.sequencesort\', \'zope.site\', \'zope.size\', \'zope.structuredtext\',\n+ \'zope.tal\', \'zope.tales\', \'zope.testbrowser\', \'zope.testing\',\n+ \'zope.traversing\', \'zope.viewlet\'\n+]\n+\'Products.CMFCore\' = [\n+ \'docutils\', \'five.localsitemanager\', \'Missing\', \'Products.BTreeFolder2\',\n+ \'Products.GenericSetup\', \'Products.MailHost\', \'Products.PythonScripts\',\n+ \'Products.StandardCacheManagers\', \'Products.ZCatalog\', \'Record\',\n+ \'zope.sendmail\', \'Zope\'\n ]\n \'plone.base\' = [\n- \'AccessControl\', \'Products.BTreeFolder2\', \'Products.CMFCore\',\n- \'Products.CMFDynamicViewFTI\', \'zope.deprecation\',\n+ \'plone.batching\', \'plone.registry\', \'plone.schema\',\'plone.z3cform\',\n+ \'Products.CMFCore\', \'Products.CMFDynamicViewFTI\',\n ]\n python-dateutil = [\'dateutil\']\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# dependencies_ignores = "[\'zestreleaser.towncrier\']"\n+# dependencies_mappings = [\n+# "gitpython = [\'git\']",\n+# "pygithub = [\'github\']",\n+# ]\n+# """\n+##\n+\n+[tool.check-manifest]\n+ignore = [\n+ ".editorconfig",\n+ ".meta.toml",\n+ ".pre-commit-config.yaml",\n+ "tox.ini",\n+ ".flake8",\n+ "mx.ini",\n+\n+]\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# check_manifest_ignores = """\n+# "*.map.js",\n+# "*.pyc",\n+# """\n+##\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/tox.ini b/tox.ini\nindex 8274373..28e631f 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -1,16 +1,36 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tox]\n # We need 4.4.0 for constrain_package_deps.\n min_version = 4.4.0\n envlist =\n- format\n lint\n test\n+ dependencies\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# envlist_lines = """\n+# my_other_environment\n+# """\n+# config_lines = """\n+# my_extra_top_level_tox_configuration_lines\n+# """\n+##\n \n [testenv]\n+skip_install = true\n allowlist_externals =\n- sh\n+ echo\n+ false\n+# Make sure typos like `tox -e formaat` are caught instead of silently doing nothing.\n+# See https://github.com/tox-dev/tox/issues/2858.\n+commands =\n+ echo "Unrecognized environment name {envname}"\n+ false\n \n [testenv:format]\n description = automatically reformat code\n@@ -32,23 +52,138 @@ commands =\n pre-commit run -a\n \n [testenv:dependencies]\n-description = check if the package defines all its dependencies and generate a graph out of them\n+description = check if the package defines all its dependencies\n+skip_install = true\n deps =\n+ build\n z3c.dependencychecker==2.11\n+commands =\n+ python -m build --sdist --no-isolation\n+ dependencychecker\n+\n+[testenv:dependencies-graph]\n+description = generate a graph out of the dependencies of the package\n+skip_install = false\n+allowlist_externals =\n+ sh\n+deps =\n pipdeptree==2.5.1\n graphviz # optional dependency of pipdeptree\n commands =\n- dependencychecker\n- sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,z3c.dependencychecker,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n+ sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n \n [testenv:test]\n-usedevelop = true\n+description = run the distribution tests\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+##\n+# Specify a custom constraints file in .meta.toml:\n+# [tox]\n+# constraints_file = "https://my-server.com/constraints.txt"\n+##\n commands =\n zope-testrunner --all --test-path={toxinidir} -s plone.app.customerize {posargs}\n extras =\n test\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# test_extras = """\n+# tests\n+# widgets\n+# """\n+##\n+\n+[testenv:coverage]\n+description = get a test coverage report\n+use_develop = true\n+skip_install = false\n+constrain_package_deps = true\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+deps =\n+ coverage\n+ zope.testrunner\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ coverage run --branch --source plone.app.customerize {envbindir}/zope-testrunner --quiet --all --test-path={toxinidir} -s plone.app.customerize {posargs}\n+ coverage report -m --format markdown\n+ coverage xml\n+extras =\n+ test\n+\n+\n+[testenv:release-check]\n+description = ensure that the distribution is ready to release\n+skip_install = true\n+deps =\n+ twine\n+ build\n+ towncrier\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # fake version to not have to install the package\n+ # we build the change log as news entries might break\n+ # the README that is displayed on PyPI\n+ towncrier build --version=100.0.0 --yes\n+ python -m build --sdist --no-isolation\n+ twine check dist/*\n+\n+[testenv:circular]\n+description = ensure there are no cyclic dependencies\n+use_develop = true\n+skip_install = false\n+set_env =\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+allowlist_externals =\n+ sh\n+deps =\n+ pipdeptree\n+ pipforester\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # Generate the full dependency tree\n+ sh -c \'pipdeptree -j > forest.json\'\n+ # Generate a DOT graph with the circular dependencies, if any\n+ pipforester -i forest.json -o forest.dot --cycles\n+ # Report if there are any circular dependencies, i.e. error if there are any\n+ pipforester -i forest.json --check-cycles -o /dev/null\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n' +b'diff --git a/.editorconfig b/.editorconfig\nindex b4158b8..919b411 100644\n--- a/.editorconfig\n+++ b/.editorconfig\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n #\n # EditorConfig Configuration file, for more details see:\n # http://EditorConfig.org\n@@ -32,8 +33,21 @@ indent_size = 4\n # 2 space indentation\n indent_size = 2\n \n+[*.{json,jsonl,js,jsx,ts,tsx,css,less,scss,html}] # Frontend development\n+# 2 space indentation\n+indent_size = 2\n+\n [{Makefile,.gitmodules}]\n # Tab indentation (no size specified, but view as 4 spaces)\n indent_style = tab\n indent_size = unset\n tab_width = unset\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [editorconfig]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.flake8 b/.flake8\nnew file mode 100644\nindex 0000000..7ef4f64\n--- /dev/null\n+++ b/.flake8\n@@ -0,0 +1,22 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+[flake8]\n+doctests = 1\n+ignore =\n+ # black takes care of line length\n+ E501,\n+ # black takes care of where to break lines\n+ W503,\n+ # black takes care of spaces within slicing (list[:])\n+ E203,\n+ # black takes care of spaces after commas\n+ E231,\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [flake8]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml\nnew file mode 100644\nindex 0000000..a7f25e0\n--- /dev/null\n+++ b/.github/workflows/meta.yml\n@@ -0,0 +1,28 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+name: Meta\n+on:\n+ push:\n+ branches:\n+ - master\n+ - main\n+ pull_request:\n+ branches:\n+ - master\n+ - main\n+ workflow_dispatch:\n+\n+jobs:\n+ qa:\n+ uses: plone/meta/.github/workflows/qa.yml@main\n+ test:\n+ uses: plone/meta/.github/workflows/test.yml@main\n+ coverage:\n+ uses: plone/meta/.github/workflows/coverage.yml@main\n+ dependencies:\n+ uses: plone/meta/.github/workflows/dependencies.yml@main\n+ release-ready:\n+ uses: plone/meta/.github/workflows/release_ready.yml@main\n+ circular:\n+ uses: plone/meta/.github/workflows/circular.yml@main\ndiff --git a/.gitignore b/.gitignore\nindex 4decf05..81594fd 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -1,13 +1,51 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+# python related\n *.egg-info\n-*.py[co]\n-*.mo\n-build\n-dist\n-.project\n-.pydevproject\n-.settings\n+*.pyc\n+*.pyo\n+\n+# tools related\n+build/\n+.coverage\n+coverage.xml\n+dist/\n+docs/_build\n+__pycache__/\n+.tox\n+.vscode/\n+node_modules/\n+\n+# venv / buildout related\n+bin/\n+develop-eggs/\n+eggs/\n+.eggs/\n+etc/\n .installed.cfg\n-/bin\n-/develop-eggs\n-/parts\n-*.bak\n+include/\n+lib/\n+lib64\n+.mr.developer.cfg\n+parts/\n+pyvenv.cfg\n+var/\n+\n+# mxdev\n+/instance/\n+/.make-sentinels/\n+/*-mxdev.txt\n+/reports/\n+/sources/\n+/venv/\n+.installed.txt\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [gitignore]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.meta.toml b/.meta.toml\nindex 2026b3e..70ffe0f 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -1,12 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [meta]\n template = "default"\n-commit-id = "0b0246aa"\n-ignore-packages = [\n- # we need this because of an ugly circular dependency:\n- "Products.CMFPlone",\n- # those because of https://github.com/reinout/z3c.dependencychecker/issues/111\n- "Products.CMFCore",\n- "Products.GenericSetup"\n-]\n+commit-id = "cfffba8c"\n+\n+[pyproject]\n+dependencies_ignores = "[\'Products.CMFPlone\',]"\ndiff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex ea50e47..7de9fd7 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n ci:\n autofix_prs: false\n autoupdate_schedule: monthly\n@@ -22,16 +23,40 @@ repos:\n rev: 3.1.0a2\n hooks:\n - id: zpretty\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# zpretty_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/PyCQA/flake8\n rev: 6.0.0\n hooks:\n - id: flake8\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# flake8_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/codespell-project/codespell\n rev: v2.2.4\n hooks:\n - id: codespell\n additional_dependencies:\n - tomli\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# codespell_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/mgedmin/check-manifest\n rev: "0.49"\n hooks:\n@@ -40,3 +65,20 @@ repos:\n rev: "4.2"\n hooks:\n - id: pyroma\n+- repo: https://github.com/mgedmin/check-python-versions\n+ rev: "0.21.2"\n+ hooks:\n+ - id: check-python-versions\n+ args: [\'--only\', \'setup.py,pyproject.toml\']\n+- repo: https://github.com/collective/i18ndude\n+ rev: "6.0.0"\n+ hooks:\n+ - id: i18ndude\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/news/cfffba8c.internal b/news/cfffba8c.internal\nnew file mode 100644\nindex 0000000..c08f539\n--- /dev/null\n+++ b/news/cfffba8c.internal\n@@ -0,0 +1,2 @@\n+Update configuration files.\n+[plone devs]\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 0dad625..2f2300d 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -1,8 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tool.towncrier]\n-filename = "CHANGES.rst"\n directory = "news/"\n+filename = "CHANGES.rst"\n title_format = "{version} ({project_date})"\n underlines = ["-", ""]\n \n@@ -36,23 +37,59 @@ directory = "tests"\n name = "Tests"\n showcontent = true\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# towncrier_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.isort]\n profile = "plone"\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# isort_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.black]\n target-version = ["py38"]\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# black_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n+[tool.codespell]\n+ignore-words-list = "discreet,"\n+skip = "*.po,"\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# codespell_ignores = "foo,bar"\n+# codespell_skip = "*.po,*.map,package-lock.json"\n+##\n+\n [tool.dependencychecker]\n Zope = [\n # Zope own provided namespaces\n \'App\', \'OFS\', \'Products.Five\', \'Products.OFSP\', \'Products.PageTemplates\',\n \'Products.SiteAccess\', \'Shared\', \'Testing\', \'ZPublisher\', \'ZTUtils\',\n \'Zope2\', \'webdav\', \'zmi\',\n+ # ExtensionClass own provided namespaces\n+ \'ExtensionClass\', \'ComputedAttribute\', \'MethodObject\',\n # Zope dependencies\n \'AccessControl\', \'Acquisition\', \'AuthEncoding\', \'beautifulsoup4\', \'BTrees\',\n- \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\', \'ExtensionClass\',\n+ \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\',\n \'MultiMapping\', \'multipart\', \'PasteDeploy\', \'Persistence\', \'persistent\',\n- \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\', \'six\',\n+ \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\',\n \'soupsieve\', \'transaction\', \'waitress\', \'WebOb\', \'WebTest\', \'WSGIProxy2\',\n \'z3c.pt\', \'zc.lockfile\', \'ZConfig\', \'zExceptions\', \'ZODB\', \'zodbpickle\',\n \'zope.annotation\', \'zope.browser\', \'zope.browsermenu\', \'zope.browserpage\',\n@@ -79,3 +116,43 @@ Zope = [\n \'Products.CMFCore\', \'Products.CMFDynamicViewFTI\',\n ]\n python-dateutil = [\'dateutil\']\n+ignore-packages = [\'Products.CMFPlone\',]\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# dependencies_ignores = "[\'zestreleaser.towncrier\']"\n+# dependencies_mappings = [\n+# "gitpython = [\'git\']",\n+# "pygithub = [\'github\']",\n+# ]\n+# """\n+##\n+\n+[tool.check-manifest]\n+ignore = [\n+ ".editorconfig",\n+ ".meta.toml",\n+ ".pre-commit-config.yaml",\n+ "tox.ini",\n+ ".flake8",\n+ "mx.ini",\n+\n+]\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# check_manifest_ignores = """\n+# "*.map.js",\n+# "*.pyc",\n+# """\n+##\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/tox.ini b/tox.ini\nindex f50cf19..9ec745b 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -1,16 +1,36 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tox]\n # We need 4.4.0 for constrain_package_deps.\n min_version = 4.4.0\n envlist =\n- format\n lint\n test\n+ dependencies\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# envlist_lines = """\n+# my_other_environment\n+# """\n+# config_lines = """\n+# my_extra_top_level_tox_configuration_lines\n+# """\n+##\n \n [testenv]\n+skip_install = true\n allowlist_externals =\n- sh\n+ echo\n+ false\n+# Make sure typos like `tox -e formaat` are caught instead of silently doing nothing.\n+# See https://github.com/tox-dev/tox/issues/2858.\n+commands =\n+ echo "Unrecognized environment name {envname}"\n+ false\n \n [testenv:format]\n description = automatically reformat code\n@@ -32,37 +52,138 @@ commands =\n pre-commit run -a\n \n [testenv:dependencies]\n-description = check if the package defines all its dependencies and generate a graph out of them\n+description = check if the package defines all its dependencies\n+skip_install = true\n deps =\n+ build\n z3c.dependencychecker==2.11\n+commands =\n+ python -m build --sdist --no-isolation\n+ dependencychecker\n+\n+[testenv:dependencies-graph]\n+description = generate a graph out of the dependencies of the package\n+skip_install = false\n+allowlist_externals =\n+ sh\n+deps =\n pipdeptree==2.5.1\n graphviz # optional dependency of pipdeptree\n commands =\n- dependencychecker\n- sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,z3c.dependencychecker,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n+ sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n \n [testenv:test]\n-usedevelop = true\n+description = run the distribution tests\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+##\n+# Specify a custom constraints file in .meta.toml:\n+# [tox]\n+# constraints_file = "https://my-server.com/constraints.txt"\n+##\n commands =\n zope-testrunner --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n extras =\n test\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# test_extras = """\n+# tests\n+# widgets\n+# """\n+##\n+\n [testenv:coverage]\n-usedevelop = true\n+description = get a test coverage report\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n coverage\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n commands =\n- coverage run {envbindir}/zope-testrunner --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n+ coverage run --branch --source plone.app.contentrules {envbindir}/zope-testrunner --quiet --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n coverage report -m --format markdown\n+ coverage xml\n extras =\n test\n+\n+\n+[testenv:release-check]\n+description = ensure that the distribution is ready to release\n+skip_install = true\n+deps =\n+ twine\n+ build\n+ towncrier\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # fake version to not have to install the package\n+ # we build the change log as news entries might break\n+ # the README that is displayed on PyPI\n+ towncrier build --version=100.0.0 --yes\n+ python -m build --sdist --no-isolation\n+ twine check dist/*\n+\n+[testenv:circular]\n+description = ensure there are no cyclic dependencies\n+use_develop = true\n+skip_install = false\n+set_env =\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+allowlist_externals =\n+ sh\n+deps =\n+ pipdeptree\n+ pipforester\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # Generate the full dependency tree\n+ sh -c \'pipdeptree -j > forest.json\'\n+ # Generate a DOT graph with the circular dependencies, if any\n+ pipforester -i forest.json -o forest.dot --cycles\n+ # Report if there are any circular dependencies, i.e. error if there are any\n+ pipforester -i forest.json --check-cycles -o /dev/null\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n' -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-06-25T09:15:46+02:00 +Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.app.customerize/commit/3de5267ebd599c66a76904035e99958e9a120a7d +Commit: https://github.com/plone/plone.app.contentrules/commit/79d17152f538e815ba5b39adb0706a709109450a cleanup: remove unused file @@ -36,62 +36,60 @@ D setup.cfg b'diff --git a/setup.cfg b/setup.cfg\ndeleted file mode 100644\nindex 0da8f8f..0000000\n--- a/setup.cfg\n+++ /dev/null\n@@ -1,23 +0,0 @@\n-# Generated from:\n-# https://github.com/plone/meta/tree/master/config/default\n-[bdist_wheel]\n-universal = 0\n-\n-[flake8]\n-doctests = 1\n-ignore =\n- # black takes care of line length\n- E501,\n- # black takes care of where to break lines\n- W503,\n- # black takes care of spaces within slicing (list[:])\n- E203,\n- # black takes care of spaces after commas\n- E231,\n-\n-[check-manifest]\n-ignore =\n- .editorconfig\n- .meta.toml\n- .pre-commit-config.yaml\n- tox.ini\n' -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-06-25T09:15:46+02:00 +Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.app.customerize/commit/4099fe849b25f4f46c3397402fef415eb897a27c +Commit: https://github.com/plone/plone.app.contentrules/commit/cbb6c50e73f370f88f1faca91c4b58f41e595f05 fix: adjust setup.py Files changed: M setup.py -b'diff --git a/setup.py b/setup.py\nindex 9ac01e3..8126a27 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -1,36 +1,38 @@\n+from pathlib import Path\n from setuptools import find_packages\n from setuptools import setup\n \n \n version = "2.0.1.dev0"\n \n+long_description = (\n+ f"{Path(\'README.rst\').read_text()}\\n{Path(\'CHANGES.rst\').read_text()}"\n+)\n+\n setup(\n name="plone.app.customerize",\n version=version,\n description="Integrate five.customerize into Plone.",\n- long_description=open("README.rst").read() + "\\n" + open("CHANGES.rst").read(),\n+ long_description=long_description,\n+ long_description_content_type="text/x-rst",\n+ # Get more strings from\n+ # https://pypi.org/classifiers/\n classifiers=[\n "Development Status :: 5 - Production/Stable",\n "Environment :: Web Environment",\n "Framework :: Plone",\n- "Framework :: Plone :: 5.0",\n- "Framework :: Plone :: 5.1",\n- "Framework :: Plone :: 5.2",\n "Framework :: Plone :: 6.0",\n "Framework :: Plone :: Core",\n- "Framework :: Zope2",\n- "Framework :: Zope :: 4",\n "Framework :: Zope :: 5",\n "Intended Audience :: Other Audience",\n "Intended Audience :: System Administrators",\n "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",\n "Operating System :: OS Independent",\n "Programming Language :: Python",\n- "Programming Language :: Python :: 2.7",\n- "Programming Language :: Python :: 3.6",\n- "Programming Language :: Python :: 3.7",\n "Programming Language :: Python :: 3.8",\n "Programming Language :: Python :: 3.9",\n+ "Programming Language :: Python :: 3.10",\n+ "Programming Language :: Python :: 3.11",\n "Topic :: Internet :: WWW/HTTP :: Site Management",\n ],\n keywords="customerize plone views page templates zmi",\n' +b'diff --git a/setup.py b/setup.py\nindex 24bf89d..cca73a0 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -1,14 +1,22 @@\n+from pathlib import Path\n from setuptools import find_packages\n from setuptools import setup\n \n \n version = "5.0.3.dev0"\n \n+long_description = (\n+ f"{Path(\'README.rst\').read_text()}\\n{Path(\'CHANGES.rst\').read_text()}"\n+)\n+\n setup(\n name="plone.app.contentrules",\n version=version,\n description="Plone integration for plone.contentrules",\n- long_description=(open("README.rst").read() + "\\n\\n" + open("CHANGES.rst").read()),\n+ long_description=long_description,\n+ long_description_content_type="text/x-rst",\n+ # Get more strings from\n+ # https://pypi.org/classifiers/\n classifiers=[\n "Development Status :: 5 - Production/Stable",\n "Environment :: Web Environment",\n' -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-06-25T09:15:47+02:00 +Date: 2023-06-25T09:30:24+02:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.app.customerize/commit/e43f541a3e446fcd09471d3d5b88fd5f593fd19e +Commit: https://github.com/plone/plone.app.contentrules/commit/ef9142774c2d97da360102d9027486810b6c7b9f -fix: mark strings for translation +fix: adjust dependencies Files changed: -M plone/app/customerize/customize.pt -M plone/app/customerize/registrations.pt +M setup.py -b'diff --git a/plone/app/customerize/customize.pt b/plone/app/customerize/customize.pt\nindex f22b463..e88d691 100644\n--- a/plone/app/customerize/customize.pt\n+++ b/plone/app/customerize/customize.pt\n@@ -35,23 +35,23 @@\n
\n-
\n+
\n view name\n
\n
\n-
\n+
\n registered for interface\n
\n
\n-
\n+
\n registered for request type\n
\n
\n-
\n+
\n template file\n
\n
\n-
\n+
\n zcml file\n
\n
\n@@ -78,6 +78,7 @@\n \n \n \ndiff --git a/plone/app/customerize/registrations.pt b/plone/app/customerize/registrations.pt\nindex 0dc4dad..00b8491 100644\n--- a/plone/app/customerize/registrations.pt\n+++ b/plone/app/customerize/registrations.pt\n@@ -14,13 +14,14 @@\n \n \n \n-

\n+

\n The following list shows all registered (template-based) views\n sorted by interface. Click one of the links to see the contents\n of the view template and possibly customize it. Views that already\n have been customized are\n- highlighted like\n+ highlighted like\n this.\n

\n \n' +b'diff --git a/setup.py b/setup.py\nindex cca73a0..f3d3fe0 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -53,6 +53,7 @@\n install_requires=[\n "lxml",\n "plone.app.contenttypes",\n+ "plone.app.discussion",\n "plone.app.uuid",\n "plone.app.vocabularies",\n "plone.autoform",\n@@ -63,6 +64,8 @@\n "plone.supermodel",\n "plone.uuid",\n "Products.PluggableAuthService",\n+ "Products.GenericSetup",\n+ "Products.MailHost",\n "Products.statusmessages",\n "setuptools",\n "z3c.form",\n' -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-10-04T17:19:41+02:00 +Date: 2023-10-04T18:01:01+02:00 Author: Jens W. Klein (jensens) -Commit: https://github.com/plone/plone.app.customerize/commit/05b24a5e873299b8a51177aa64eb3bee2a202f24 +Commit: https://github.com/plone/plone.app.contentrules/commit/1f3deb6b81da20d3ffe41b844dd374097c1a011d -Merge branch 'master' into config-with-default-template-df445ade +Merge branch 'master' into config-with-default-template-74477809 Files changed: M .pre-commit-config.yaml -M CHANGES.rst -b'diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex b4ef785..648f95a 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -7,7 +7,7 @@ ci:\n \n repos:\n - repo: https://github.com/asottile/pyupgrade\n- rev: v3.4.0\n+ rev: v3.14.0\n hooks:\n - id: pyupgrade\n args: [--py38-plus]\n@@ -16,11 +16,11 @@ repos:\n hooks:\n - id: isort\n - repo: https://github.com/psf/black\n- rev: 23.3.0\n+ rev: 23.9.1\n hooks:\n - id: black\n - repo: https://github.com/collective/zpretty\n- rev: 3.1.0a2\n+ rev: 3.1.0\n hooks:\n - id: zpretty\n \n@@ -32,7 +32,7 @@ repos:\n # """\n ##\n - repo: https://github.com/PyCQA/flake8\n- rev: 6.0.0\n+ rev: 6.1.0\n hooks:\n - id: flake8\n \n@@ -44,7 +44,7 @@ repos:\n # """\n ##\n - repo: https://github.com/codespell-project/codespell\n- rev: v2.2.4\n+ rev: v2.2.6\n hooks:\n - id: codespell\n additional_dependencies:\ndiff --git a/CHANGES.rst b/CHANGES.rst\nindex e588031..f7d0039 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -168,7 +168,7 @@ Fixes:\n - Fixed Chameleon incompatibility.\n [swampmonkey]\n \n-- Fix #11409 by storing the customized view name for future re-use\n+- Fix #11409 by storing the customized view name for future reuse\n [kiorky]\n \n \n' +b'diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex 7de9fd7..235e4ad 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -7,7 +7,7 @@ ci:\n \n repos:\n - repo: https://github.com/asottile/pyupgrade\n- rev: v3.4.0\n+ rev: v3.14.0\n hooks:\n - id: pyupgrade\n args: [--py38-plus]\n@@ -16,11 +16,11 @@ repos:\n hooks:\n - id: isort\n - repo: https://github.com/psf/black\n- rev: 23.3.0\n+ rev: 23.9.1\n hooks:\n - id: black\n - repo: https://github.com/collective/zpretty\n- rev: 3.1.0a2\n+ rev: 3.1.0\n hooks:\n - id: zpretty\n \n@@ -32,7 +32,7 @@ repos:\n # """\n ##\n - repo: https://github.com/PyCQA/flake8\n- rev: 6.0.0\n+ rev: 6.1.0\n hooks:\n - id: flake8\n \n@@ -44,7 +44,7 @@ repos:\n # """\n ##\n - repo: https://github.com/codespell-project/codespell\n- rev: v2.2.4\n+ rev: v2.2.6\n hooks:\n - id: codespell\n additional_dependencies:\n' -Repository: plone.app.customerize +Repository: plone.app.contentrules Branch: refs/heads/master -Date: 2023-10-05T09:41:22+02:00 +Date: 2023-10-05T09:42:07+02:00 Author: Jens W. Klein (jensens) -Commit: https://github.com/plone/plone.app.customerize/commit/a43d9d97250ca3f55dcb64a5666440f592493c3e +Commit: https://github.com/plone/plone.app.contentrules/commit/eb865aacd538191d30900978c067002057770720 -Merge pull request #24 from plone/config-with-default-template-df445ade +Merge pull request #86 from plone/config-with-default-template-74477809 Config with default template @@ -105,12 +103,10 @@ M .editorconfig M .gitignore M .meta.toml M .pre-commit-config.yaml -M plone/app/customerize/customize.pt -M plone/app/customerize/registrations.pt M pyproject.toml M setup.py M tox.ini D setup.cfg -b'diff --git a/.editorconfig b/.editorconfig\nindex b4158b8..919b411 100644\n--- a/.editorconfig\n+++ b/.editorconfig\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n #\n # EditorConfig Configuration file, for more details see:\n # http://EditorConfig.org\n@@ -32,8 +33,21 @@ indent_size = 4\n # 2 space indentation\n indent_size = 2\n \n+[*.{json,jsonl,js,jsx,ts,tsx,css,less,scss,html}] # Frontend development\n+# 2 space indentation\n+indent_size = 2\n+\n [{Makefile,.gitmodules}]\n # Tab indentation (no size specified, but view as 4 spaces)\n indent_style = tab\n indent_size = unset\n tab_width = unset\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [editorconfig]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/setup.cfg b/.flake8\nsimilarity index 62%\nrename from setup.cfg\nrename to .flake8\nindex 0da8f8f..7ef4f64 100644\n--- a/setup.cfg\n+++ b/.flake8\n@@ -1,8 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n-[bdist_wheel]\n-universal = 0\n-\n+# See the inline comments on how to expand/tweak this configuration file\n [flake8]\n doctests = 1\n ignore =\n@@ -15,9 +13,10 @@ ignore =\n # black takes care of spaces after commas\n E231,\n \n-[check-manifest]\n-ignore =\n- .editorconfig\n- .meta.toml\n- .pre-commit-config.yaml\n- tox.ini\n+##\n+# Add extra configuration options in .meta.toml:\n+# [flake8]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml\nnew file mode 100644\nindex 0000000..a7f25e0\n--- /dev/null\n+++ b/.github/workflows/meta.yml\n@@ -0,0 +1,28 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+name: Meta\n+on:\n+ push:\n+ branches:\n+ - master\n+ - main\n+ pull_request:\n+ branches:\n+ - master\n+ - main\n+ workflow_dispatch:\n+\n+jobs:\n+ qa:\n+ uses: plone/meta/.github/workflows/qa.yml@main\n+ test:\n+ uses: plone/meta/.github/workflows/test.yml@main\n+ coverage:\n+ uses: plone/meta/.github/workflows/coverage.yml@main\n+ dependencies:\n+ uses: plone/meta/.github/workflows/dependencies.yml@main\n+ release-ready:\n+ uses: plone/meta/.github/workflows/release_ready.yml@main\n+ circular:\n+ uses: plone/meta/.github/workflows/circular.yml@main\ndiff --git a/.gitignore b/.gitignore\nindex 0b11b53..81594fd 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -1,76 +1,51 @@\n-# Compiled source #\n-###################\n-*.com\n-*.class\n-*.dll\n-*.exe\n-*.o\n-*.so\n-*.lo\n-*.la\n-*.rej\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+# python related\n+*.egg-info\n *.pyc\n *.pyo\n \n-# Packages #\n-############\n-# it\'s better to unpack these files and commit the raw source\n-# git has its own built in compression methods\n-*.7z\n-*.dmg\n-*.gz\n-*.iso\n-*.jar\n-*.rar\n-*.tar\n-*.zip\n-\n-# Logs and databases #\n-######################\n-*.log\n-*.sql\n-*.sqlite\n-\n-# OS generated files #\n-######################\n-.DS_Store\n-.DS_Store?\n-ehthumbs.db\n-Icon?\n-Thumbs.db\n-*.tmproj\n-\n-# Editor backup files #\n-#######################\n-*~\n-*.sw[op]\n-\n-# Other VCSes #\n-###############\n-.svn\n-\n-# Python projects related #\n-###########################\n-*.egg-info\n-.egg-info.installed.cfg\n-*.pt.py\n-*.cpt.py\n-*.zpt.py\n-*.html.py\n-*.egg\n-.mr.developer.cfg\n+# tools related\n+build/\n+.coverage\n+coverage.xml\n+dist/\n+docs/_build\n+__pycache__/\n+.tox\n+.vscode/\n+node_modules/\n+\n+# venv / buildout related\n+bin/\n+develop-eggs/\n+eggs/\n+.eggs/\n+etc/\n .installed.cfg\n-\n-# Eclipse pydev related #\n-#########################\n-.project\n-.pydevproject\n-.settings\n-\n-# Buildout generated folders #\n-##############################\n-bin\n-parts\n-develop-eggs\n-var\n-\n+include/\n+lib/\n+lib64\n+.mr.developer.cfg\n+parts/\n+pyvenv.cfg\n+var/\n+\n+# mxdev\n+/instance/\n+/.make-sentinels/\n+/*-mxdev.txt\n+/reports/\n+/sources/\n+/venv/\n+.installed.txt\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [gitignore]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.meta.toml b/.meta.toml\nindex 4f67994..150211a 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -1,5 +1,11 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [meta]\n template = "default"\n-commit-id = "5623f8b3"\n+commit-id = "cfffba8c"\n+\n+[pre_commit]\n+extra_lines = """\n+ exclude: tests/.*pt\n+"""\ndiff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex 14c1f9c..648f95a 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n ci:\n autofix_prs: false\n autoupdate_schedule: monthly\n@@ -22,16 +23,40 @@ repos:\n rev: 3.1.0\n hooks:\n - id: zpretty\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# zpretty_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/PyCQA/flake8\n rev: 6.1.0\n hooks:\n - id: flake8\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# flake8_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/codespell-project/codespell\n rev: v2.2.6\n hooks:\n - id: codespell\n additional_dependencies:\n - tomli\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# codespell_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/mgedmin/check-manifest\n rev: "0.49"\n hooks:\n@@ -40,3 +65,21 @@ repos:\n rev: "4.2"\n hooks:\n - id: pyroma\n+- repo: https://github.com/mgedmin/check-python-versions\n+ rev: "0.21.2"\n+ hooks:\n+ - id: check-python-versions\n+ args: [\'--only\', \'setup.py,pyproject.toml\']\n+- repo: https://github.com/collective/i18ndude\n+ rev: "6.0.0"\n+ hooks:\n+ - id: i18ndude\n+ exclude: tests/.*pt\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/news/cfffba8c.internal b/news/cfffba8c.internal\nnew file mode 100644\nindex 0000000..c08f539\n--- /dev/null\n+++ b/news/cfffba8c.internal\n@@ -0,0 +1,2 @@\n+Update configuration files.\n+[plone devs]\ndiff --git a/plone/app/customerize/customize.pt b/plone/app/customerize/customize.pt\nindex f22b463..e88d691 100644\n--- a/plone/app/customerize/customize.pt\n+++ b/plone/app/customerize/customize.pt\n@@ -35,23 +35,23 @@\n
\n-
\n+
\n view name\n
\n
\n-
\n+
\n registered for interface\n
\n
\n-
\n+
\n registered for request type\n
\n
\n-
\n+
\n template file\n
\n
\n-
\n+
\n zcml file\n
\n
\n@@ -78,6 +78,7 @@\n \n \n \ndiff --git a/plone/app/customerize/registrations.pt b/plone/app/customerize/registrations.pt\nindex 0dc4dad..00b8491 100644\n--- a/plone/app/customerize/registrations.pt\n+++ b/plone/app/customerize/registrations.pt\n@@ -14,13 +14,14 @@\n \n \n \n-

\n+

\n The following list shows all registered (template-based) views\n sorted by interface. Click one of the links to see the contents\n of the view template and possibly customize it. Views that already\n have been customized are\n- highlighted like\n+ highlighted like\n this.\n

\n \ndiff --git a/pyproject.toml b/pyproject.toml\nindex 9eb73f3..e442bd0 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -1,8 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tool.towncrier]\n-filename = "CHANGES.rst"\n directory = "news/"\n+filename = "CHANGES.rst"\n title_format = "{version} ({project_date})"\n underlines = ["-", ""]\n \n@@ -36,27 +37,121 @@ directory = "tests"\n name = "Tests"\n showcontent = true\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# towncrier_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.isort]\n profile = "plone"\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# isort_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.black]\n target-version = ["py38"]\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# black_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n+[tool.codespell]\n+ignore-words-list = "discreet,"\n+skip = "*.po,"\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# codespell_ignores = "foo,bar"\n+# codespell_skip = "*.po,*.map,package-lock.json"\n+##\n+\n [tool.dependencychecker]\n Zope = [\n # Zope own provided namespaces\n \'App\', \'OFS\', \'Products.Five\', \'Products.OFSP\', \'Products.PageTemplates\',\n \'Products.SiteAccess\', \'Shared\', \'Testing\', \'ZPublisher\', \'ZTUtils\',\n \'Zope2\', \'webdav\', \'zmi\',\n+ # ExtensionClass own provided namespaces\n+ \'ExtensionClass\', \'ComputedAttribute\', \'MethodObject\',\n # Zope dependencies\n- \'Acquisition\', \'DateTime\', \'transaction\', \'zExceptions\', \'ZODB\', \'zope.component\',\n- \'zope.configuration\', \'zope.container\', \'zope.deferredimport\', \'zope.event\',\n- \'zope.exceptions\', \'zope.globalrequest\', \'zope.i18n\', \'zope.i18nmessageid\',\n- \'zope.interface\', \'zope.lifecycleevent\', \'zope.location\', \'zope.publisher\',\n- \'zope.schema\', \'zope.security\', \'zope.site\', \'zope.traversing\', \'AccessControl\',\n+ \'AccessControl\', \'Acquisition\', \'AuthEncoding\', \'beautifulsoup4\', \'BTrees\',\n+ \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\',\n+ \'MultiMapping\', \'multipart\', \'PasteDeploy\', \'Persistence\', \'persistent\',\n+ \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\',\n+ \'soupsieve\', \'transaction\', \'waitress\', \'WebOb\', \'WebTest\', \'WSGIProxy2\',\n+ \'z3c.pt\', \'zc.lockfile\', \'ZConfig\', \'zExceptions\', \'ZODB\', \'zodbpickle\',\n+ \'zope.annotation\', \'zope.browser\', \'zope.browsermenu\', \'zope.browserpage\',\n+ \'zope.browserresource\', \'zope.cachedescriptors\', \'zope.component\',\n+ \'zope.configuration\', \'zope.container\', \'zope.contentprovider\',\n+ \'zope.contenttype\', \'zope.datetime\', \'zope.deferredimport\',\n+ \'zope.deprecation\', \'zope.dottedname\', \'zope.event\', \'zope.exceptions\',\n+ \'zope.filerepresentation\', \'zope.globalrequest\', \'zope.hookable\',\n+ \'zope.i18n\', \'zope.i18nmessageid\', \'zope.interface\', \'zope.lifecycleevent\',\n+ \'zope.location\', \'zope.pagetemplate\', \'zope.processlifetime\', \'zope.proxy\',\n+ \'zope.ptresource\', \'zope.publisher\', \'zope.schema\', \'zope.security\',\n+ \'zope.sequencesort\', \'zope.site\', \'zope.size\', \'zope.structuredtext\',\n+ \'zope.tal\', \'zope.tales\', \'zope.testbrowser\', \'zope.testing\',\n+ \'zope.traversing\', \'zope.viewlet\'\n+]\n+\'Products.CMFCore\' = [\n+ \'docutils\', \'five.localsitemanager\', \'Missing\', \'Products.BTreeFolder2\',\n+ \'Products.GenericSetup\', \'Products.MailHost\', \'Products.PythonScripts\',\n+ \'Products.StandardCacheManagers\', \'Products.ZCatalog\', \'Record\',\n+ \'zope.sendmail\', \'Zope\'\n ]\n \'plone.base\' = [\n- \'AccessControl\', \'Products.BTreeFolder2\', \'Products.CMFCore\',\n- \'Products.CMFDynamicViewFTI\', \'zope.deprecation\',\n+ \'plone.batching\', \'plone.registry\', \'plone.schema\',\'plone.z3cform\',\n+ \'Products.CMFCore\', \'Products.CMFDynamicViewFTI\',\n ]\n python-dateutil = [\'dateutil\']\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# dependencies_ignores = "[\'zestreleaser.towncrier\']"\n+# dependencies_mappings = [\n+# "gitpython = [\'git\']",\n+# "pygithub = [\'github\']",\n+# ]\n+# """\n+##\n+\n+[tool.check-manifest]\n+ignore = [\n+ ".editorconfig",\n+ ".meta.toml",\n+ ".pre-commit-config.yaml",\n+ "tox.ini",\n+ ".flake8",\n+ "mx.ini",\n+\n+]\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# check_manifest_ignores = """\n+# "*.map.js",\n+# "*.pyc",\n+# """\n+##\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/setup.py b/setup.py\nindex 9ac01e3..8126a27 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -1,36 +1,38 @@\n+from pathlib import Path\n from setuptools import find_packages\n from setuptools import setup\n \n \n version = "2.0.1.dev0"\n \n+long_description = (\n+ f"{Path(\'README.rst\').read_text()}\\n{Path(\'CHANGES.rst\').read_text()}"\n+)\n+\n setup(\n name="plone.app.customerize",\n version=version,\n description="Integrate five.customerize into Plone.",\n- long_description=open("README.rst").read() + "\\n" + open("CHANGES.rst").read(),\n+ long_description=long_description,\n+ long_description_content_type="text/x-rst",\n+ # Get more strings from\n+ # https://pypi.org/classifiers/\n classifiers=[\n "Development Status :: 5 - Production/Stable",\n "Environment :: Web Environment",\n "Framework :: Plone",\n- "Framework :: Plone :: 5.0",\n- "Framework :: Plone :: 5.1",\n- "Framework :: Plone :: 5.2",\n "Framework :: Plone :: 6.0",\n "Framework :: Plone :: Core",\n- "Framework :: Zope2",\n- "Framework :: Zope :: 4",\n "Framework :: Zope :: 5",\n "Intended Audience :: Other Audience",\n "Intended Audience :: System Administrators",\n "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",\n "Operating System :: OS Independent",\n "Programming Language :: Python",\n- "Programming Language :: Python :: 2.7",\n- "Programming Language :: Python :: 3.6",\n- "Programming Language :: Python :: 3.7",\n "Programming Language :: Python :: 3.8",\n "Programming Language :: Python :: 3.9",\n+ "Programming Language :: Python :: 3.10",\n+ "Programming Language :: Python :: 3.11",\n "Topic :: Internet :: WWW/HTTP :: Site Management",\n ],\n keywords="customerize plone views page templates zmi",\ndiff --git a/tox.ini b/tox.ini\nindex 8274373..28e631f 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -1,16 +1,36 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tox]\n # We need 4.4.0 for constrain_package_deps.\n min_version = 4.4.0\n envlist =\n- format\n lint\n test\n+ dependencies\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# envlist_lines = """\n+# my_other_environment\n+# """\n+# config_lines = """\n+# my_extra_top_level_tox_configuration_lines\n+# """\n+##\n \n [testenv]\n+skip_install = true\n allowlist_externals =\n- sh\n+ echo\n+ false\n+# Make sure typos like `tox -e formaat` are caught instead of silently doing nothing.\n+# See https://github.com/tox-dev/tox/issues/2858.\n+commands =\n+ echo "Unrecognized environment name {envname}"\n+ false\n \n [testenv:format]\n description = automatically reformat code\n@@ -32,23 +52,138 @@ commands =\n pre-commit run -a\n \n [testenv:dependencies]\n-description = check if the package defines all its dependencies and generate a graph out of them\n+description = check if the package defines all its dependencies\n+skip_install = true\n deps =\n+ build\n z3c.dependencychecker==2.11\n+commands =\n+ python -m build --sdist --no-isolation\n+ dependencychecker\n+\n+[testenv:dependencies-graph]\n+description = generate a graph out of the dependencies of the package\n+skip_install = false\n+allowlist_externals =\n+ sh\n+deps =\n pipdeptree==2.5.1\n graphviz # optional dependency of pipdeptree\n commands =\n- dependencychecker\n- sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,z3c.dependencychecker,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n+ sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n \n [testenv:test]\n-usedevelop = true\n+description = run the distribution tests\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+##\n+# Specify a custom constraints file in .meta.toml:\n+# [tox]\n+# constraints_file = "https://my-server.com/constraints.txt"\n+##\n commands =\n zope-testrunner --all --test-path={toxinidir} -s plone.app.customerize {posargs}\n extras =\n test\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# test_extras = """\n+# tests\n+# widgets\n+# """\n+##\n+\n+[testenv:coverage]\n+description = get a test coverage report\n+use_develop = true\n+skip_install = false\n+constrain_package_deps = true\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+deps =\n+ coverage\n+ zope.testrunner\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ coverage run --branch --source plone.app.customerize {envbindir}/zope-testrunner --quiet --all --test-path={toxinidir} -s plone.app.customerize {posargs}\n+ coverage report -m --format markdown\n+ coverage xml\n+extras =\n+ test\n+\n+\n+[testenv:release-check]\n+description = ensure that the distribution is ready to release\n+skip_install = true\n+deps =\n+ twine\n+ build\n+ towncrier\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # fake version to not have to install the package\n+ # we build the change log as news entries might break\n+ # the README that is displayed on PyPI\n+ towncrier build --version=100.0.0 --yes\n+ python -m build --sdist --no-isolation\n+ twine check dist/*\n+\n+[testenv:circular]\n+description = ensure there are no cyclic dependencies\n+use_develop = true\n+skip_install = false\n+set_env =\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+allowlist_externals =\n+ sh\n+deps =\n+ pipdeptree\n+ pipforester\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # Generate the full dependency tree\n+ sh -c \'pipdeptree -j > forest.json\'\n+ # Generate a DOT graph with the circular dependencies, if any\n+ pipforester -i forest.json -o forest.dot --cycles\n+ # Report if there are any circular dependencies, i.e. error if there are any\n+ pipforester -i forest.json --check-cycles -o /dev/null\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n' +b'diff --git a/.editorconfig b/.editorconfig\nindex b4158b8..919b411 100644\n--- a/.editorconfig\n+++ b/.editorconfig\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n #\n # EditorConfig Configuration file, for more details see:\n # http://EditorConfig.org\n@@ -32,8 +33,21 @@ indent_size = 4\n # 2 space indentation\n indent_size = 2\n \n+[*.{json,jsonl,js,jsx,ts,tsx,css,less,scss,html}] # Frontend development\n+# 2 space indentation\n+indent_size = 2\n+\n [{Makefile,.gitmodules}]\n # Tab indentation (no size specified, but view as 4 spaces)\n indent_style = tab\n indent_size = unset\n tab_width = unset\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [editorconfig]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/setup.cfg b/.flake8\nsimilarity index 62%\nrename from setup.cfg\nrename to .flake8\nindex 0da8f8f..7ef4f64 100644\n--- a/setup.cfg\n+++ b/.flake8\n@@ -1,8 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n-[bdist_wheel]\n-universal = 0\n-\n+# See the inline comments on how to expand/tweak this configuration file\n [flake8]\n doctests = 1\n ignore =\n@@ -15,9 +13,10 @@ ignore =\n # black takes care of spaces after commas\n E231,\n \n-[check-manifest]\n-ignore =\n- .editorconfig\n- .meta.toml\n- .pre-commit-config.yaml\n- tox.ini\n+##\n+# Add extra configuration options in .meta.toml:\n+# [flake8]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml\nnew file mode 100644\nindex 0000000..a7f25e0\n--- /dev/null\n+++ b/.github/workflows/meta.yml\n@@ -0,0 +1,28 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+name: Meta\n+on:\n+ push:\n+ branches:\n+ - master\n+ - main\n+ pull_request:\n+ branches:\n+ - master\n+ - main\n+ workflow_dispatch:\n+\n+jobs:\n+ qa:\n+ uses: plone/meta/.github/workflows/qa.yml@main\n+ test:\n+ uses: plone/meta/.github/workflows/test.yml@main\n+ coverage:\n+ uses: plone/meta/.github/workflows/coverage.yml@main\n+ dependencies:\n+ uses: plone/meta/.github/workflows/dependencies.yml@main\n+ release-ready:\n+ uses: plone/meta/.github/workflows/release_ready.yml@main\n+ circular:\n+ uses: plone/meta/.github/workflows/circular.yml@main\ndiff --git a/.gitignore b/.gitignore\nindex 4decf05..81594fd 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -1,13 +1,51 @@\n+# Generated from:\n+# https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n+# python related\n *.egg-info\n-*.py[co]\n-*.mo\n-build\n-dist\n-.project\n-.pydevproject\n-.settings\n+*.pyc\n+*.pyo\n+\n+# tools related\n+build/\n+.coverage\n+coverage.xml\n+dist/\n+docs/_build\n+__pycache__/\n+.tox\n+.vscode/\n+node_modules/\n+\n+# venv / buildout related\n+bin/\n+develop-eggs/\n+eggs/\n+.eggs/\n+etc/\n .installed.cfg\n-/bin\n-/develop-eggs\n-/parts\n-*.bak\n+include/\n+lib/\n+lib64\n+.mr.developer.cfg\n+parts/\n+pyvenv.cfg\n+var/\n+\n+# mxdev\n+/instance/\n+/.make-sentinels/\n+/*-mxdev.txt\n+/reports/\n+/sources/\n+/venv/\n+.installed.txt\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [gitignore]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/.meta.toml b/.meta.toml\nindex 2026b3e..70ffe0f 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -1,12 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [meta]\n template = "default"\n-commit-id = "0b0246aa"\n-ignore-packages = [\n- # we need this because of an ugly circular dependency:\n- "Products.CMFPlone",\n- # those because of https://github.com/reinout/z3c.dependencychecker/issues/111\n- "Products.CMFCore",\n- "Products.GenericSetup"\n-]\n+commit-id = "cfffba8c"\n+\n+[pyproject]\n+dependencies_ignores = "[\'Products.CMFPlone\',]"\ndiff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml\nindex 14c1f9c..235e4ad 100644\n--- a/.pre-commit-config.yaml\n+++ b/.pre-commit-config.yaml\n@@ -1,5 +1,6 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n ci:\n autofix_prs: false\n autoupdate_schedule: monthly\n@@ -22,16 +23,40 @@ repos:\n rev: 3.1.0\n hooks:\n - id: zpretty\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# zpretty_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/PyCQA/flake8\n rev: 6.1.0\n hooks:\n - id: flake8\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# flake8_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/codespell-project/codespell\n rev: v2.2.6\n hooks:\n - id: codespell\n additional_dependencies:\n - tomli\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# codespell_extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n - repo: https://github.com/mgedmin/check-manifest\n rev: "0.49"\n hooks:\n@@ -40,3 +65,20 @@ repos:\n rev: "4.2"\n hooks:\n - id: pyroma\n+- repo: https://github.com/mgedmin/check-python-versions\n+ rev: "0.21.2"\n+ hooks:\n+ - id: check-python-versions\n+ args: [\'--only\', \'setup.py,pyproject.toml\']\n+- repo: https://github.com/collective/i18ndude\n+ rev: "6.0.0"\n+ hooks:\n+ - id: i18ndude\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pre_commit]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/news/cfffba8c.internal b/news/cfffba8c.internal\nnew file mode 100644\nindex 0000000..c08f539\n--- /dev/null\n+++ b/news/cfffba8c.internal\n@@ -0,0 +1,2 @@\n+Update configuration files.\n+[plone devs]\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 0dad625..2f2300d 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -1,8 +1,9 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tool.towncrier]\n-filename = "CHANGES.rst"\n directory = "news/"\n+filename = "CHANGES.rst"\n title_format = "{version} ({project_date})"\n underlines = ["-", ""]\n \n@@ -36,23 +37,59 @@ directory = "tests"\n name = "Tests"\n showcontent = true\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# towncrier_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.isort]\n profile = "plone"\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# isort_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n [tool.black]\n target-version = ["py38"]\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# black_extra_lines = """\n+# extra_configuration\n+# """\n+##\n+\n+[tool.codespell]\n+ignore-words-list = "discreet,"\n+skip = "*.po,"\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# codespell_ignores = "foo,bar"\n+# codespell_skip = "*.po,*.map,package-lock.json"\n+##\n+\n [tool.dependencychecker]\n Zope = [\n # Zope own provided namespaces\n \'App\', \'OFS\', \'Products.Five\', \'Products.OFSP\', \'Products.PageTemplates\',\n \'Products.SiteAccess\', \'Shared\', \'Testing\', \'ZPublisher\', \'ZTUtils\',\n \'Zope2\', \'webdav\', \'zmi\',\n+ # ExtensionClass own provided namespaces\n+ \'ExtensionClass\', \'ComputedAttribute\', \'MethodObject\',\n # Zope dependencies\n \'AccessControl\', \'Acquisition\', \'AuthEncoding\', \'beautifulsoup4\', \'BTrees\',\n- \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\', \'ExtensionClass\',\n+ \'cffi\', \'Chameleon\', \'DateTime\', \'DocumentTemplate\',\n \'MultiMapping\', \'multipart\', \'PasteDeploy\', \'Persistence\', \'persistent\',\n- \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\', \'six\',\n+ \'pycparser\', \'python-gettext\', \'pytz\', \'RestrictedPython\', \'roman\',\n \'soupsieve\', \'transaction\', \'waitress\', \'WebOb\', \'WebTest\', \'WSGIProxy2\',\n \'z3c.pt\', \'zc.lockfile\', \'ZConfig\', \'zExceptions\', \'ZODB\', \'zodbpickle\',\n \'zope.annotation\', \'zope.browser\', \'zope.browsermenu\', \'zope.browserpage\',\n@@ -79,3 +116,43 @@ Zope = [\n \'Products.CMFCore\', \'Products.CMFDynamicViewFTI\',\n ]\n python-dateutil = [\'dateutil\']\n+ignore-packages = [\'Products.CMFPlone\',]\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# dependencies_ignores = "[\'zestreleaser.towncrier\']"\n+# dependencies_mappings = [\n+# "gitpython = [\'git\']",\n+# "pygithub = [\'github\']",\n+# ]\n+# """\n+##\n+\n+[tool.check-manifest]\n+ignore = [\n+ ".editorconfig",\n+ ".meta.toml",\n+ ".pre-commit-config.yaml",\n+ "tox.ini",\n+ ".flake8",\n+ "mx.ini",\n+\n+]\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# check_manifest_ignores = """\n+# "*.map.js",\n+# "*.pyc",\n+# """\n+##\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [pyproject]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\ndiff --git a/setup.py b/setup.py\nindex 24bf89d..f3d3fe0 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -1,14 +1,22 @@\n+from pathlib import Path\n from setuptools import find_packages\n from setuptools import setup\n \n \n version = "5.0.3.dev0"\n \n+long_description = (\n+ f"{Path(\'README.rst\').read_text()}\\n{Path(\'CHANGES.rst\').read_text()}"\n+)\n+\n setup(\n name="plone.app.contentrules",\n version=version,\n description="Plone integration for plone.contentrules",\n- long_description=(open("README.rst").read() + "\\n\\n" + open("CHANGES.rst").read()),\n+ long_description=long_description,\n+ long_description_content_type="text/x-rst",\n+ # Get more strings from\n+ # https://pypi.org/classifiers/\n classifiers=[\n "Development Status :: 5 - Production/Stable",\n "Environment :: Web Environment",\n@@ -45,6 +53,7 @@\n install_requires=[\n "lxml",\n "plone.app.contenttypes",\n+ "plone.app.discussion",\n "plone.app.uuid",\n "plone.app.vocabularies",\n "plone.autoform",\n@@ -55,6 +64,8 @@\n "plone.supermodel",\n "plone.uuid",\n "Products.PluggableAuthService",\n+ "Products.GenericSetup",\n+ "Products.MailHost",\n "Products.statusmessages",\n "setuptools",\n "z3c.form",\ndiff --git a/tox.ini b/tox.ini\nindex f50cf19..9ec745b 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -1,16 +1,36 @@\n # Generated from:\n # https://github.com/plone/meta/tree/master/config/default\n+# See the inline comments on how to expand/tweak this configuration file\n [tox]\n # We need 4.4.0 for constrain_package_deps.\n min_version = 4.4.0\n envlist =\n- format\n lint\n test\n+ dependencies\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# envlist_lines = """\n+# my_other_environment\n+# """\n+# config_lines = """\n+# my_extra_top_level_tox_configuration_lines\n+# """\n+##\n \n [testenv]\n+skip_install = true\n allowlist_externals =\n- sh\n+ echo\n+ false\n+# Make sure typos like `tox -e formaat` are caught instead of silently doing nothing.\n+# See https://github.com/tox-dev/tox/issues/2858.\n+commands =\n+ echo "Unrecognized environment name {envname}"\n+ false\n \n [testenv:format]\n description = automatically reformat code\n@@ -32,37 +52,138 @@ commands =\n pre-commit run -a\n \n [testenv:dependencies]\n-description = check if the package defines all its dependencies and generate a graph out of them\n+description = check if the package defines all its dependencies\n+skip_install = true\n deps =\n+ build\n z3c.dependencychecker==2.11\n+commands =\n+ python -m build --sdist --no-isolation\n+ dependencychecker\n+\n+[testenv:dependencies-graph]\n+description = generate a graph out of the dependencies of the package\n+skip_install = false\n+allowlist_externals =\n+ sh\n+deps =\n pipdeptree==2.5.1\n graphviz # optional dependency of pipdeptree\n commands =\n- dependencychecker\n- sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,z3c.dependencychecker,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n+ sh -c \'pipdeptree --exclude setuptools,wheel,pipdeptree,zope.interface,zope.component --graph-output svg > dependencies.svg\'\n \n [testenv:test]\n-usedevelop = true\n+description = run the distribution tests\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+##\n+# Specify a custom constraints file in .meta.toml:\n+# [tox]\n+# constraints_file = "https://my-server.com/constraints.txt"\n+##\n commands =\n zope-testrunner --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n extras =\n test\n \n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# test_extras = """\n+# tests\n+# widgets\n+# """\n+##\n+\n [testenv:coverage]\n-usedevelop = true\n+description = get a test coverage report\n+use_develop = true\n+skip_install = false\n constrain_package_deps = true\n-set_env = ROBOT_BROWSER=headlesschrome\n+set_env =\n+ ROBOT_BROWSER=headlesschrome\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n deps =\n coverage\n zope.testrunner\n -c https://dist.plone.org/release/6.0-dev/constraints.txt\n commands =\n- coverage run {envbindir}/zope-testrunner --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n+ coverage run --branch --source plone.app.contentrules {envbindir}/zope-testrunner --quiet --all --test-path={toxinidir} -s plone.app.contentrules {posargs}\n coverage report -m --format markdown\n+ coverage xml\n extras =\n test\n+\n+\n+[testenv:release-check]\n+description = ensure that the distribution is ready to release\n+skip_install = true\n+deps =\n+ twine\n+ build\n+ towncrier\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # fake version to not have to install the package\n+ # we build the change log as news entries might break\n+ # the README that is displayed on PyPI\n+ towncrier build --version=100.0.0 --yes\n+ python -m build --sdist --no-isolation\n+ twine check dist/*\n+\n+[testenv:circular]\n+description = ensure there are no cyclic dependencies\n+use_develop = true\n+skip_install = false\n+set_env =\n+\n+##\n+# Specify extra test environment variables in .meta.toml:\n+# [tox]\n+# test_environment_variables = """\n+# PIP_EXTRA_INDEX_URL=https://my-pypi.my-server.com/\n+# """\n+##\n+allowlist_externals =\n+ sh\n+deps =\n+ pipdeptree\n+ pipforester\n+ -c https://dist.plone.org/release/6.0-dev/constraints.txt\n+commands =\n+ # Generate the full dependency tree\n+ sh -c \'pipdeptree -j > forest.json\'\n+ # Generate a DOT graph with the circular dependencies, if any\n+ pipforester -i forest.json -o forest.dot --cycles\n+ # Report if there are any circular dependencies, i.e. error if there are any\n+ pipforester -i forest.json --check-cycles -o /dev/null\n+\n+\n+##\n+# Add extra configuration options in .meta.toml:\n+# [tox]\n+# extra_lines = """\n+# _your own configuration lines_\n+# """\n+##\n'