diff --git a/last_commit.txt b/last_commit.txt index f19ac6b6c0..31d8136f8a 100644 --- a/last_commit.txt +++ b/last_commit.txt @@ -1,112 +1,85 @@ -Repository: plone.supermodel +Repository: plone.session Branch: refs/heads/master -Date: 2023-02-04T00:26:04+01:00 +Date: 2023-02-05T15:25:41+01:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.supermodel/commit/30da160950ddba17481e763d56374fefa47fe41e +Commit: https://github.com/plone/plone.session/commit/1cb55cdc984116be4f992e932ed2b5f2111cbf54 Configuring with plone/meta Files changed: M .meta.toml M lint-requirements.txt -M setup.cfg M tox.ini -b'diff --git a/.meta.toml b/.meta.toml\nindex fbaceac..91690d5 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -2,4 +2,4 @@\n # https://github.com/plone/meta/tree/master/config/default\n [meta]\n template = "default"\n-commit-id = "05a78883"\n+commit-id = "78307cdf"\ndiff --git a/lint-requirements.txt b/lint-requirements.txt\nindex 129db4d..d2b64ff 100644\n--- a/lint-requirements.txt\n+++ b/lint-requirements.txt\n@@ -5,4 +5,6 @@ check-manifest==0.49\n codespell==2.2.2\n flake8==6.0.0\n isort==5.11.4\n+pyroma==4.1\n pyupgrade==3.3.1\n+z3c.dependencychecker==2.10\ndiff --git a/setup.cfg b/setup.cfg\nindex b4adcb1..8849fbc 100644\n--- a/setup.cfg\n+++ b/setup.cfg\n@@ -20,3 +20,4 @@ ignore =\n .editorconfig\n .meta.toml\n tox.ini\n+ lint-requirements.txt\ndiff --git a/tox.ini b/tox.ini\nindex 5d1a605..c4810c9 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -30,10 +30,21 @@ skip_install = true\n deps =\n flake8\n codespell\n+ tomli # needed for codespell to read pyproject.toml\n check-manifest\n+ pyroma\n -c lint-requirements.txt\n commands =\n sh -c \'{[testenv]py_files} | xargs flake8\'\n sh -c \'{[testenv]py_files} | xargs codespell\'\n sh -c \'{[testenv]text_files} | xargs codespell\'\n check-manifest\n+ pyroma -n 10 .\n+\n+[testenv:dependencies]\n+description = check if the package defines all its dependencies\n+deps =\n+ z3c.dependencychecker\n+ -c lint-requirements.txt\n+commands =\n+ dependencychecker\n' +b'diff --git a/.meta.toml b/.meta.toml\nindex dc0e730..cb35385 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -2,7 +2,7 @@\n # https://github.com/plone/meta/tree/master/config/default\n [meta]\n template = "default"\n-commit-id = "26c2ecc2"\n+commit-id = "78307cdf"\n \n [codespell]\n additional-ignores = "bund"\ndiff --git a/lint-requirements.txt b/lint-requirements.txt\nindex b363062..d2b64ff 100644\n--- a/lint-requirements.txt\n+++ b/lint-requirements.txt\n@@ -7,3 +7,4 @@ flake8==6.0.0\n isort==5.11.4\n pyroma==4.1\n pyupgrade==3.3.1\n+z3c.dependencychecker==2.10\ndiff --git a/tox.ini b/tox.ini\nindex 3dd2b41..c4810c9 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -40,3 +40,11 @@ commands =\n sh -c \'{[testenv]text_files} | xargs codespell\'\n check-manifest\n pyroma -n 10 .\n+\n+[testenv:dependencies]\n+description = check if the package defines all its dependencies\n+deps =\n+ z3c.dependencychecker\n+ -c lint-requirements.txt\n+commands =\n+ dependencychecker\n' -Repository: plone.supermodel +Repository: plone.session Branch: refs/heads/master -Date: 2023-02-04T00:29:33+01:00 +Date: 2023-02-05T15:26:16+01:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.supermodel/commit/f5a96e9ee732ecd280da99d364ad43dcbca73005 +Commit: https://github.com/plone/plone.session/commit/a0228e85bd8be244baecd750ba26a88a946efa67 -chore: configure z3c.dependencychecker +chore: configure z3c.dependencycheker Files changed: M .meta.toml M pyproject.toml -b'diff --git a/.meta.toml b/.meta.toml\nindex 91690d5..7c9dd1f 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -3,3 +3,6 @@\n [meta]\n template = "default"\n commit-id = "78307cdf"\n+\n+[dependencies]\n+ignores = "[\'plone.rfc822\']"\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 0f96c85..0447505 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -41,3 +41,6 @@ profile = "plone"\n \n [tool.black]\n target-version = ["py38"]\n+\n+[tool.dependencychecker]\n+ignore-packages = [\'plone.rfc822\']\n' +b'diff --git a/.meta.toml b/.meta.toml\nindex cb35385..9c45210 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -6,3 +6,8 @@ commit-id = "78307cdf"\n \n [codespell]\n additional-ignores = "bund"\n+\n+[dependencies]\n+mappings = [\n+ "Zope = [\'App\', \'OFS\', \'Products.Five\', \'Products.PageTemplates\']",\n+ ]\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 831004b..f5c61e9 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -44,3 +44,6 @@ target-version = ["py38"]\n \n [tool.codespell]\n ignore-words-list = "bund"\n+\n+[tool.dependencychecker]\n+Zope = [\'App\', \'OFS\', \'Products.Five\', \'Products.PageTemplates\']\n' -Repository: plone.supermodel +Repository: plone.session Branch: refs/heads/master -Date: 2023-02-04T00:33:32+01:00 +Date: 2023-02-05T15:26:30+01:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.supermodel/commit/3a6b84697e588c47cfffaef6ca65e6fdd9d363aa +Commit: https://github.com/plone/plone.session/commit/8b632b7f351dd00ad31ab561bba481745bb8f8dc -fix: declare all dependencies +feat: declare dependencies Files changed: M setup.py -b'diff --git a/setup.py b/setup.py\nindex 50d6117..9e53c53 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -59,6 +59,7 @@ def read(*rnames):\n "plone.rfc822": ["plone.rfc822"],\n "test": [\n "plone.rfc822",\n+ "zope.configuration",\n ],\n },\n entry_points="""\n' +b'diff --git a/setup.py b/setup.py\nindex 25b890c..86fd62c 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -40,13 +40,16 @@\n python_requires=">=3.8",\n extras_require=dict(\n test=[\n- "zope.configuration",\n+ "plone.app.testing",\n "zope.publisher",\n ]\n ),\n install_requires=[\n+ "AccessControl",\n "plone.keyring",\n "plone.protect",\n+ "Products.GenericSetup",\n+ "Products.CMFPlone",\n "Products.PluggableAuthService",\n "setuptools",\n "zope.component",\n' -Repository: plone.supermodel +Repository: plone.session Branch: refs/heads/master -Date: 2023-02-04T00:41:58+01:00 +Date: 2023-02-05T15:26:58+01:00 Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.supermodel/commit/b19c76ff7c7eb79e1dd4c342665742aad7fa1e50 - -feat: remove six - -Files changed: -M plone/supermodel/exportimport.py -M plone/supermodel/fields.rst -M plone/supermodel/schemaclass.rst -M plone/supermodel/tests.py -M plone/supermodel/utils.py -M setup.py - -b'diff --git a/plone/supermodel/exportimport.py b/plone/supermodel/exportimport.py\nindex 4e3645d..e767cb7 100644\n--- a/plone/supermodel/exportimport.py\n+++ b/plone/supermodel/exportimport.py\n@@ -16,7 +16,6 @@\n from zope.schema.vocabulary import SimpleTerm\n from zope.schema.vocabulary import SimpleVocabulary\n \n-import six\n import zope.schema\n \n \n@@ -361,7 +360,7 @@ def write(self, field, name, type, elementName="field"):\n for term in field.vocabulary:\n if isinstance(term.value, int) or (\n isinstance(term.value, str)\n- and six.b(term.token) == term.value.encode("unicode_escape")\n+ and term.token.encode() == term.value.encode("unicode_escape")\n ):\n if term.title and term.title != term.value:\n value.append((term.value, term.title))\ndiff --git a/plone/supermodel/fields.rst b/plone/supermodel/fields.rst\nindex 6c5a256..c1087b6 100644\n--- a/plone/supermodel/fields.rst\n+++ b/plone/supermodel/fields.rst\n@@ -49,7 +49,6 @@ Then, let\'s test each field in turn.\n \n >>> import datetime\n >>> import plone.supermodel.tests\n- >>> import six\n \n \n Bytes\ndiff --git a/plone/supermodel/schemaclass.rst b/plone/supermodel/schemaclass.rst\nindex 66dee60..1dc5098 100644\n--- a/plone/supermodel/schemaclass.rst\n+++ b/plone/supermodel/schemaclass.rst\n@@ -42,20 +42,19 @@ resolved.\n Somehow the issue got solved when using python 3, so we need to check python\n version to get expected results here.\n \n- >>> import six\n >>> class ISomeInterface(Interface):\n ... pass\n \n >>> adapter_calls = []\n >>> class IB(ISomeInterface, IA):\n ... pass\n- >>> adapter_calls == ([] if six.PY2 else [(\'TestPlugin\', \'IB\')])\n+ >>> adapter_calls == [(\'TestPlugin\', \'IB\')]\n True\n \n >>> adapter_calls = []\n >>> class IC(IB):\n ... pass\n- >>> adapter_calls == ([] if six.PY2 else [(\'TestPlugin\', \'IC\')])\n+ >>> adapter_calls == ([(\'TestPlugin\', \'IC\')])\n True\n \n To support the registration of schema plugins in ZCML, plugins are\n@@ -71,18 +70,13 @@ directly.\n >>> from plone.supermodel.model import finalizeSchemas\n \n >>> finalizeSchemas(IA)\n- >>> adapter_calls == (\n- ... [\n- ... (\'TestPlugin2\', \'IA\'),\n- ... (\'TestPlugin\', \'IA\'),\n- ... ] if six.PY2 else [\n- ... (\'TestPlugin2\', \'IA\'),\n- ... (\'TestPlugin\', \'IA\'),\n- ... (\'TestPlugin2\', \'IB\'),\n- ... (\'TestPlugin\', \'IB\'),\n- ... (\'TestPlugin2\', \'IC\'),\n- ... (\'TestPlugin\', \'IC\'),\n- ... ]\n- ... )\n+ >>> adapter_calls == [\n+ ... (\'TestPlugin2\', \'IA\'),\n+ ... (\'TestPlugin\', \'IA\'),\n+ ... (\'TestPlugin2\', \'IB\'),\n+ ... (\'TestPlugin\', \'IB\'),\n+ ... (\'TestPlugin2\', \'IC\'),\n+ ... (\'TestPlugin\', \'IC\'),\n+ ... ]\n True\n >>> adapter_calls = []\ndiff --git a/plone/supermodel/tests.py b/plone/supermodel/tests.py\nindex f7cd954..8f6c814 100644\n--- a/plone/supermodel/tests.py\n+++ b/plone/supermodel/tests.py\n@@ -19,7 +19,6 @@\n \n import doctest\n import re\n-import six\n import unittest\n import zope.component.testing\n \n@@ -358,7 +357,7 @@ def setUp(self):\n \n def _assertSerialized(self, field, value, expected):\n element = utils.valueToElement(field, value, b"value")\n- sio = StringIO() if six.PY2 else BytesIO()\n+ sio = BytesIO()\n etree.ElementTree(element).write(sio)\n self.assertEqual(sio.getvalue(), expected)\n unserialized = utils.elementToValue(field, element)\n@@ -546,9 +545,7 @@ def test_choice_serialized(self):\n choice_with_integers,\n ):\n field, expected = case\n- expected = (\n- bytes(expected) if six.PY2 else bytes(expected, encoding="latin-1")\n- )\n+ expected = bytes(expected, encoding="latin-1")\n el = self.handler.write(field, "myfield", "zope.schema.Choice")\n self.assertEqual(etree.tostring(el), expected)\n \ndiff --git a/plone/supermodel/utils.py b/plone/supermodel/utils.py\nindex 33caf63..af296a6 100644\n--- a/plone/supermodel/utils.py\n+++ b/plone/supermodel/utils.py\n@@ -19,7 +19,6 @@\n \n import os.path\n import re\n-import six\n import sys\n \n \n@@ -69,8 +68,6 @@ def indent(node, level=0):\n def prettyXML(tree):\n indent(tree)\n xml = etree.tostring(tree)\n- if six.PY2:\n- return xml\n return xml.decode()\n \n \ndiff --git a/setup.py b/setup.py\nindex 9e53c53..7d07843 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -44,7 +44,6 @@ def read(*rnames):\n python_requires=">=3.8",\n install_requires=[\n "setuptools",\n- "six",\n "lxml",\n "zope.component",\n "zope.i18nmessageid",\n' - -Repository: plone.supermodel - - -Branch: refs/heads/master -Date: 2023-02-04T00:41:58+01:00 -Author: Gil Forcada Codinachs (gforcada) -Commit: https://github.com/plone/plone.supermodel/commit/9973f9a8e11affdc21677e09d7b7e065de70e71e +Commit: https://github.com/plone/plone.session/commit/7cf05e4d8db039796a5167723c79ded1c3fc98ac Add news entry Files changed: -A news/1.bugfix +A news/1.bugfix.234 -b'diff --git a/news/1.bugfix b/news/1.bugfix\nnew file mode 100644\nindex 0000000..816f44e\n--- /dev/null\n+++ b/news/1.bugfix\n@@ -0,0 +1,2 @@\n+Update package configuration.\n+[gforcada]\n' +b'diff --git a/news/1.bugfix.234 b/news/1.bugfix.234\nnew file mode 100644\nindex 0000000..86b5b8d\n--- /dev/null\n+++ b/news/1.bugfix.234\n@@ -0,0 +1,2 @@\n+Declare all dependencies.\n+[gforcada]\n' -Repository: plone.supermodel +Repository: plone.session Branch: refs/heads/master -Date: 2023-02-06T11:45:41+01:00 -Author: Maurits van Rees (mauritsvanrees) -Commit: https://github.com/plone/plone.supermodel/commit/6b77d4a0b1e007cee3f39ccb398399c9a9af7b25 +Date: 2023-02-06T14:10:08+01:00 +Author: Maurits van Rees (mauritsvanrees) +Commit: https://github.com/plone/plone.session/commit/9835c664c752e15ff7638c95ea3c9d87b689c9de -Merge pull request #45 from plone/config-with-default-template-30da1609 +Merge pull request #36 from plone/config-with-default-template-94ac6570 Config with default template (dependencies) Files changed: -A news/1.bugfix +A news/1.bugfix.234 M .meta.toml M lint-requirements.txt -M plone/supermodel/exportimport.py -M plone/supermodel/fields.rst -M plone/supermodel/schemaclass.rst -M plone/supermodel/tests.py -M plone/supermodel/utils.py M pyproject.toml -M setup.cfg M setup.py M tox.ini -b'diff --git a/.meta.toml b/.meta.toml\nindex fbaceac..7c9dd1f 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -2,4 +2,7 @@\n # https://github.com/plone/meta/tree/master/config/default\n [meta]\n template = "default"\n-commit-id = "05a78883"\n+commit-id = "78307cdf"\n+\n+[dependencies]\n+ignores = "[\'plone.rfc822\']"\ndiff --git a/lint-requirements.txt b/lint-requirements.txt\nindex 129db4d..d2b64ff 100644\n--- a/lint-requirements.txt\n+++ b/lint-requirements.txt\n@@ -5,4 +5,6 @@ check-manifest==0.49\n codespell==2.2.2\n flake8==6.0.0\n isort==5.11.4\n+pyroma==4.1\n pyupgrade==3.3.1\n+z3c.dependencychecker==2.10\ndiff --git a/news/1.bugfix b/news/1.bugfix\nnew file mode 100644\nindex 0000000..816f44e\n--- /dev/null\n+++ b/news/1.bugfix\n@@ -0,0 +1,2 @@\n+Update package configuration.\n+[gforcada]\ndiff --git a/plone/supermodel/exportimport.py b/plone/supermodel/exportimport.py\nindex 4e3645d..e767cb7 100644\n--- a/plone/supermodel/exportimport.py\n+++ b/plone/supermodel/exportimport.py\n@@ -16,7 +16,6 @@\n from zope.schema.vocabulary import SimpleTerm\n from zope.schema.vocabulary import SimpleVocabulary\n \n-import six\n import zope.schema\n \n \n@@ -361,7 +360,7 @@ def write(self, field, name, type, elementName="field"):\n for term in field.vocabulary:\n if isinstance(term.value, int) or (\n isinstance(term.value, str)\n- and six.b(term.token) == term.value.encode("unicode_escape")\n+ and term.token.encode() == term.value.encode("unicode_escape")\n ):\n if term.title and term.title != term.value:\n value.append((term.value, term.title))\ndiff --git a/plone/supermodel/fields.rst b/plone/supermodel/fields.rst\nindex 6c5a256..c1087b6 100644\n--- a/plone/supermodel/fields.rst\n+++ b/plone/supermodel/fields.rst\n@@ -49,7 +49,6 @@ Then, let\'s test each field in turn.\n \n >>> import datetime\n >>> import plone.supermodel.tests\n- >>> import six\n \n \n Bytes\ndiff --git a/plone/supermodel/schemaclass.rst b/plone/supermodel/schemaclass.rst\nindex 66dee60..1dc5098 100644\n--- a/plone/supermodel/schemaclass.rst\n+++ b/plone/supermodel/schemaclass.rst\n@@ -42,20 +42,19 @@ resolved.\n Somehow the issue got solved when using python 3, so we need to check python\n version to get expected results here.\n \n- >>> import six\n >>> class ISomeInterface(Interface):\n ... pass\n \n >>> adapter_calls = []\n >>> class IB(ISomeInterface, IA):\n ... pass\n- >>> adapter_calls == ([] if six.PY2 else [(\'TestPlugin\', \'IB\')])\n+ >>> adapter_calls == [(\'TestPlugin\', \'IB\')]\n True\n \n >>> adapter_calls = []\n >>> class IC(IB):\n ... pass\n- >>> adapter_calls == ([] if six.PY2 else [(\'TestPlugin\', \'IC\')])\n+ >>> adapter_calls == ([(\'TestPlugin\', \'IC\')])\n True\n \n To support the registration of schema plugins in ZCML, plugins are\n@@ -71,18 +70,13 @@ directly.\n >>> from plone.supermodel.model import finalizeSchemas\n \n >>> finalizeSchemas(IA)\n- >>> adapter_calls == (\n- ... [\n- ... (\'TestPlugin2\', \'IA\'),\n- ... (\'TestPlugin\', \'IA\'),\n- ... ] if six.PY2 else [\n- ... (\'TestPlugin2\', \'IA\'),\n- ... (\'TestPlugin\', \'IA\'),\n- ... (\'TestPlugin2\', \'IB\'),\n- ... (\'TestPlugin\', \'IB\'),\n- ... (\'TestPlugin2\', \'IC\'),\n- ... (\'TestPlugin\', \'IC\'),\n- ... ]\n- ... )\n+ >>> adapter_calls == [\n+ ... (\'TestPlugin2\', \'IA\'),\n+ ... (\'TestPlugin\', \'IA\'),\n+ ... (\'TestPlugin2\', \'IB\'),\n+ ... (\'TestPlugin\', \'IB\'),\n+ ... (\'TestPlugin2\', \'IC\'),\n+ ... (\'TestPlugin\', \'IC\'),\n+ ... ]\n True\n >>> adapter_calls = []\ndiff --git a/plone/supermodel/tests.py b/plone/supermodel/tests.py\nindex f7cd954..8f6c814 100644\n--- a/plone/supermodel/tests.py\n+++ b/plone/supermodel/tests.py\n@@ -19,7 +19,6 @@\n \n import doctest\n import re\n-import six\n import unittest\n import zope.component.testing\n \n@@ -358,7 +357,7 @@ def setUp(self):\n \n def _assertSerialized(self, field, value, expected):\n element = utils.valueToElement(field, value, b"value")\n- sio = StringIO() if six.PY2 else BytesIO()\n+ sio = BytesIO()\n etree.ElementTree(element).write(sio)\n self.assertEqual(sio.getvalue(), expected)\n unserialized = utils.elementToValue(field, element)\n@@ -546,9 +545,7 @@ def test_choice_serialized(self):\n choice_with_integers,\n ):\n field, expected = case\n- expected = (\n- bytes(expected) if six.PY2 else bytes(expected, encoding="latin-1")\n- )\n+ expected = bytes(expected, encoding="latin-1")\n el = self.handler.write(field, "myfield", "zope.schema.Choice")\n self.assertEqual(etree.tostring(el), expected)\n \ndiff --git a/plone/supermodel/utils.py b/plone/supermodel/utils.py\nindex 33caf63..af296a6 100644\n--- a/plone/supermodel/utils.py\n+++ b/plone/supermodel/utils.py\n@@ -19,7 +19,6 @@\n \n import os.path\n import re\n-import six\n import sys\n \n \n@@ -69,8 +68,6 @@ def indent(node, level=0):\n def prettyXML(tree):\n indent(tree)\n xml = etree.tostring(tree)\n- if six.PY2:\n- return xml\n return xml.decode()\n \n \ndiff --git a/pyproject.toml b/pyproject.toml\nindex 0f96c85..0447505 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -41,3 +41,6 @@ profile = "plone"\n \n [tool.black]\n target-version = ["py38"]\n+\n+[tool.dependencychecker]\n+ignore-packages = [\'plone.rfc822\']\ndiff --git a/setup.cfg b/setup.cfg\nindex b4adcb1..8849fbc 100644\n--- a/setup.cfg\n+++ b/setup.cfg\n@@ -20,3 +20,4 @@ ignore =\n .editorconfig\n .meta.toml\n tox.ini\n+ lint-requirements.txt\ndiff --git a/setup.py b/setup.py\nindex 50d6117..7d07843 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -44,7 +44,6 @@ def read(*rnames):\n python_requires=">=3.8",\n install_requires=[\n "setuptools",\n- "six",\n "lxml",\n "zope.component",\n "zope.i18nmessageid",\n@@ -59,6 +58,7 @@ def read(*rnames):\n "plone.rfc822": ["plone.rfc822"],\n "test": [\n "plone.rfc822",\n+ "zope.configuration",\n ],\n },\n entry_points="""\ndiff --git a/tox.ini b/tox.ini\nindex 5d1a605..c4810c9 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -30,10 +30,21 @@ skip_install = true\n deps =\n flake8\n codespell\n+ tomli # needed for codespell to read pyproject.toml\n check-manifest\n+ pyroma\n -c lint-requirements.txt\n commands =\n sh -c \'{[testenv]py_files} | xargs flake8\'\n sh -c \'{[testenv]py_files} | xargs codespell\'\n sh -c \'{[testenv]text_files} | xargs codespell\'\n check-manifest\n+ pyroma -n 10 .\n+\n+[testenv:dependencies]\n+description = check if the package defines all its dependencies\n+deps =\n+ z3c.dependencychecker\n+ -c lint-requirements.txt\n+commands =\n+ dependencychecker\n' +b'diff --git a/.meta.toml b/.meta.toml\nindex dc0e730..9c45210 100644\n--- a/.meta.toml\n+++ b/.meta.toml\n@@ -2,7 +2,12 @@\n # https://github.com/plone/meta/tree/master/config/default\n [meta]\n template = "default"\n-commit-id = "26c2ecc2"\n+commit-id = "78307cdf"\n \n [codespell]\n additional-ignores = "bund"\n+\n+[dependencies]\n+mappings = [\n+ "Zope = [\'App\', \'OFS\', \'Products.Five\', \'Products.PageTemplates\']",\n+ ]\ndiff --git a/lint-requirements.txt b/lint-requirements.txt\nindex b363062..d2b64ff 100644\n--- a/lint-requirements.txt\n+++ b/lint-requirements.txt\n@@ -7,3 +7,4 @@ flake8==6.0.0\n isort==5.11.4\n pyroma==4.1\n pyupgrade==3.3.1\n+z3c.dependencychecker==2.10\ndiff --git a/news/1.bugfix.234 b/news/1.bugfix.234\nnew file mode 100644\nindex 0000000..86b5b8d\n--- /dev/null\n+++ b/news/1.bugfix.234\n@@ -0,0 +1,2 @@\n+Declare all dependencies.\n+[gforcada]\ndiff --git a/pyproject.toml b/pyproject.toml\nindex 831004b..f5c61e9 100644\n--- a/pyproject.toml\n+++ b/pyproject.toml\n@@ -44,3 +44,6 @@ target-version = ["py38"]\n \n [tool.codespell]\n ignore-words-list = "bund"\n+\n+[tool.dependencychecker]\n+Zope = [\'App\', \'OFS\', \'Products.Five\', \'Products.PageTemplates\']\ndiff --git a/setup.py b/setup.py\nindex 25b890c..86fd62c 100644\n--- a/setup.py\n+++ b/setup.py\n@@ -40,13 +40,16 @@\n python_requires=">=3.8",\n extras_require=dict(\n test=[\n- "zope.configuration",\n+ "plone.app.testing",\n "zope.publisher",\n ]\n ),\n install_requires=[\n+ "AccessControl",\n "plone.keyring",\n "plone.protect",\n+ "Products.GenericSetup",\n+ "Products.CMFPlone",\n "Products.PluggableAuthService",\n "setuptools",\n "zope.component",\ndiff --git a/tox.ini b/tox.ini\nindex 3dd2b41..c4810c9 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -40,3 +40,11 @@ commands =\n sh -c \'{[testenv]text_files} | xargs codespell\'\n check-manifest\n pyroma -n 10 .\n+\n+[testenv:dependencies]\n+description = check if the package defines all its dependencies\n+deps =\n+ z3c.dependencychecker\n+ -c lint-requirements.txt\n+commands =\n+ dependencychecker\n'