Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zope.i18nmessageid for 
openSUSE:Factory checked in at 2024-01-05 22:59:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.i18nmessageid (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.i18nmessageid.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.i18nmessageid"

Fri Jan  5 22:59:12 2024 rev:17 rq:1136297 version:6.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-zope.i18nmessageid/python-zope.i18nmessageid.changes
      2023-07-27 16:50:11.801606863 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-zope.i18nmessageid.new.28375/python-zope.i18nmessageid.changes
   2024-01-05 22:59:15.097533887 +0100
@@ -1,0 +2,6 @@
+Tue Jan  2 21:42:05 UTC 2024 - Dirk Müller <dmuel...@suse.com>
+
+- update to 6.1.0:
+  * Add support for Python 3.12.
+
+-------------------------------------------------------------------

Old:
----
  zope.i18nmessageid-6.0.1.tar.gz

New:
----
  zope.i18nmessageid-6.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-zope.i18nmessageid.spec ++++++
--- /var/tmp/diff_new_pack.hivYAx/_old  2024-01-05 22:59:16.185573754 +0100
+++ /var/tmp/diff_new_pack.hivYAx/_new  2024-01-05 22:59:16.185573754 +0100
@@ -1,7 +1,7 @@
 #
 # spec file
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 # Copyright (c) 2013-2022 LISA GmbH, Bingen, Germany.
 #
 # All modifications and additions to the file contributed by third parties
@@ -27,15 +27,17 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-zope.i18nmessageid%{psuffix}
-Version:        6.0.1
+Version:        6.1.0
 Release:        0
 Summary:        Zope Location
 License:        ZPL-2.1
 URL:            https://github.com/zopefoundation/zope.i18nmessageid
 Source:         
https://files.pythonhosted.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-%{version}.tar.gz
 BuildRequires:  %{python_module devel}
+BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 # SECTION documentation requirements
@@ -64,13 +66,13 @@
 
 %build
 %if !%{with test}
-%python_build
+%pyproject_wheel
 sphinx-build -b html docs build/sphinx/html && rm -r 
build/sphinx/html/.{buildinfo,doctrees} build/sphinx/html/objects.inv
 %endif
 
 %install
 %if !%{with test}
-%python_install
+%pyproject_install
 # don't bother with development files
 %{python_expand rm -f 
%{buildroot}%{$python_sitearch}/zope/i18nmessageid/_zope_i18nmessageid_message.c
   %fdupes %{buildroot}%{$python_sitearch}
@@ -88,7 +90,7 @@
 %doc CHANGES.rst COPYRIGHT.txt README.rst
 %dir %{python_sitearch}/zope
 %{python_sitearch}/zope/i18nmessageid
-%{python_sitearch}/zope.i18nmessageid-%{version}*-info
+%{python_sitearch}/zope.i18nmessageid-%{version}.dist-info
 %{python_sitearch}/zope.i18nmessageid-%{version}*-nspkg.pth
 %endif
 

++++++ zope.i18nmessageid-6.0.1.tar.gz -> zope.i18nmessageid-6.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/.manylinux-install.sh 
new/zope.i18nmessageid-6.1.0/.manylinux-install.sh
--- old/zope.i18nmessageid-6.0.1/.manylinux-install.sh  2023-03-24 
07:58:02.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/.manylinux-install.sh  2023-10-05 
13:19:39.000000000 +0200
@@ -28,12 +28,12 @@
 
 tox_env_map() {
     case $1 in
-        *"cp312"*) echo 'py312';;
         *"cp37"*) echo 'py37';;
         *"cp38"*) echo 'py38';;
         *"cp39"*) echo 'py39';;
         *"cp310"*) echo 'py310';;
         *"cp311"*) echo 'py311';;
+        *"cp312"*) echo 'py312';;
         *) echo 'py';;
     esac
 }
@@ -41,19 +41,14 @@
 # Compile wheels
 for PYBIN in /opt/python/*/bin; do
     if \
-       [[ "${PYBIN}" == *"cp312"* ]] || \
        [[ "${PYBIN}" == *"cp311"* ]] || \
+       [[ "${PYBIN}" == *"cp312"* ]] || \
        [[ "${PYBIN}" == *"cp37"* ]] || \
        [[ "${PYBIN}" == *"cp38"* ]] || \
        [[ "${PYBIN}" == *"cp39"* ]] || \
        [[ "${PYBIN}" == *"cp310"* ]] ; then
-        if [[ "${PYBIN}" == *"cp312"* ]] ; then
-            "${PYBIN}/pip" install --pre -e /io/
-            "${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
-        else
-            "${PYBIN}/pip" install -e /io/
-            "${PYBIN}/pip" wheel /io/ -w wheelhouse/
-        fi
+        "${PYBIN}/pip" install -e /io/
+        "${PYBIN}/pip" wheel /io/ -w wheelhouse/
         if [ `uname -m` == 'aarch64' ]; then
           cd /io/
           ${PYBIN}/pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/.readthedocs.yaml 
new/zope.i18nmessageid-6.1.0/.readthedocs.yaml
--- old/zope.i18nmessageid-6.0.1/.readthedocs.yaml      1970-01-01 
01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/.readthedocs.yaml      2023-10-05 
13:19:39.000000000 +0200
@@ -0,0 +1,25 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/c-code
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the version of Python and other tools you might need
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3.11"
+
+# Build documentation in the docs/ directory with Sphinx
+sphinx:
+  configuration: docs/conf.py
+
+# We recommend specifying your dependencies to enable reproducible builds:
+# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
+python:
+  install:
+  - requirements: docs/requirements.txt
+  - method: pip
+    path: .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/CHANGES.rst 
new/zope.i18nmessageid-6.1.0/CHANGES.rst
--- old/zope.i18nmessageid-6.0.1/CHANGES.rst    2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/CHANGES.rst    2023-10-05 13:36:23.000000000 
+0200
@@ -2,6 +2,12 @@
  Changes
 =========
 
+6.1.0 (2023-10-05)
+==================
+
+- Add support for Python 3.12.
+
+
 6.0.1 (2023-03-24)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/MANIFEST.in 
new/zope.i18nmessageid-6.1.0/MANIFEST.in
--- old/zope.i18nmessageid-6.0.1/MANIFEST.in    2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/MANIFEST.in    2023-10-05 13:19:39.000000000 
+0200
@@ -14,5 +14,6 @@
 recursive-include docs Makefile
 
 recursive-include src *.py
+include *.yaml
 include *.sh
 recursive-include docs *.bat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/PKG-INFO 
new/zope.i18nmessageid-6.1.0/PKG-INFO
--- old/zope.i18nmessageid-6.0.1/PKG-INFO       2023-03-24 07:58:03.586184700 
+0100
+++ new/zope.i18nmessageid-6.1.0/PKG-INFO       2023-10-05 14:02:43.680762500 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.i18nmessageid
-Version: 6.0.1
+Version: 6.1.0
 Summary: Message Identifiers for internationalization
 Home-page: https://github.com/zopefoundation/zope.i18nmessageid
 Author: Zope Foundation and Contributors
@@ -18,6 +18,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Natural Language :: English
@@ -25,10 +26,17 @@
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
 Requires-Python: >=3.7
+License-File: LICENSE.txt
+Requires-Dist: setuptools
 Provides-Extra: testing
+Requires-Dist: zope.testrunner; extra == "testing"
+Requires-Dist: coverage; extra == "testing"
 Provides-Extra: test
+Requires-Dist: zope.testrunner; extra == "test"
+Requires-Dist: coverage; extra == "test"
 Provides-Extra: docs
-License-File: LICENSE.txt
+Requires-Dist: Sphinx; extra == "docs"
+Requires-Dist: sphinx_rtd_theme; extra == "docs"
 
 ``zope.i18nmessageid``
 ======================
@@ -74,6 +82,12 @@
  Changes
 =========
 
+6.1.0 (2023-10-05)
+==================
+
+- Add support for Python 3.12.
+
+
 6.0.1 (2023-03-24)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/appveyor.yml 
new/zope.i18nmessageid-6.1.0/appveyor.yml
--- old/zope.i18nmessageid-6.0.1/appveyor.yml   2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/appveyor.yml   2023-10-05 13:19:39.000000000 
+0200
@@ -14,9 +14,7 @@
     - python: 39-x64
     - python: 310-x64
     - python: 311-x64
-    # `multibuild` cannot install non-final versions as they are not on
-    # ftp.python.org, so we skip Python 3.11 until its final release:
-    # - python: 312-x64
+    - python: 312-x64
 
 install:
   - "SET PYTHONVERSION=%PYTHON%"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/docs/_build/doctest/output.txt 
new/zope.i18nmessageid-6.1.0/docs/_build/doctest/output.txt
--- old/zope.i18nmessageid-6.0.1/docs/_build/doctest/output.txt 1970-01-01 
01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/_build/doctest/output.txt 2023-10-05 
12:57:07.000000000 +0200
@@ -0,0 +1,17 @@
+Results of doctest builder run on 2023-10-05 12:57:07
+=====================================================
+
+Document: narr
+--------------
+1 items passed all tests:
+  35 tests in default
+35 tests in 1 items.
+35 passed and 0 failed.
+Test passed.
+
+Doctest summary
+===============
+   35 tests
+    0 failures in tests
+    0 failures in setup code
+    0 failures in cleanup code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/api.rst.txt 
new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/api.rst.txt
--- old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/api.rst.txt  
1970-01-01 01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/api.rst.txt  
2022-11-03 15:37:34.000000000 +0100
@@ -0,0 +1,11 @@
+:mod:`zope.i18nmessageid` API Reference
+=======================================
+
+:mod:`zope.i18nmessageid.message`
+---------------------------------
+
+.. automodule:: zope.i18nmessageid.message
+
+   .. autoclass:: Message
+
+   .. autoclass:: MessageFactory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/hacking.rst.txt 
new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/hacking.rst.txt
--- old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/hacking.rst.txt      
1970-01-01 01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/hacking.rst.txt      
2022-11-03 15:37:34.000000000 +0100
@@ -0,0 +1,300 @@
+Hacking on :mod:`zope.i18nmessageid`
+====================================
+
+
+Getting the Code
+################
+
+The main repository for :mod:`zope.i18nmessageid` is in the Zope Foundation
+Github repository:
+
+  https://github.com/zopefoundation/zope.i18nmessageid
+
+You can get a read-only checkout from there:
+
+.. code-block:: sh
+
+   $ git clone https://github.com/zopefoundation/zope.i18nmessageid.git
+
+or fork it and get a writeable checkout of your fork:
+
+.. code-block:: sh
+
+   $ git clone g...@github.com/jrandom/zope.i18nmessageid.git
+
+The project also mirrors the trunk from the Github repository as a
+Bazaar branch on Launchpad:
+
+https://code.launchpad.net/zope.i8nmessageid
+
+You can branch the trunk from there using Bazaar:
+
+.. code-block:: sh
+
+   $ bzr branch lp:zope.i8nmessageid
+
+
+
+Working in a ``virtualenv``
+###########################
+
+Installing
+----------
+
+If you use the ``virtualenv`` package to create lightweight Python
+development environments, you can run the tests using nothing more
+than the ``python`` binary in a virtualenv.  First, create a scratch
+environment:
+
+.. code-block:: sh
+
+   $ /path/to/virtualenv --no-site-packages /tmp/hack-zope.i18nmessageid
+
+Next, get this package registered as a "development egg" in the
+environment:
+
+.. code-block:: sh
+
+   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py develop
+
+Running the tests
+-----------------
+
+Run the tests using the build-in ``setuptools`` testrunner:
+
+.. code-block:: sh
+
+   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py test -q
+   running test
+   ....................
+   ----------------------------------------------------------------------
+   Ran 20 tests in 0.001s
+
+   OK
+
+The ``dev`` command alias downloads and installs extra tools, like the
+:mod:`nose` testrunner and the :mod:`coverage` coverage analyzer:
+
+.. code-block:: sh
+
+   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py dev
+   $ /tmp/hack-zope.i8nmessageid/bin/nosetests
+   running nosetests
+   ....................
+   ----------------------------------------------------------------------
+   Ran 20 tests in 0.030s
+
+   OK
+
+If you have the :mod:`coverage` pacakge installed in the virtualenv,
+you can see how well the tests cover the code:
+
+.. code-block:: sh
+
+   $ /tmp/hack-zope.i8nmessageid/bin/nosetests --with coverage
+   running nosetests
+   ....................
+   Name                         Stmts   Miss  Cover   Missing
+   ----------------------------------------------------------
+   zope.i18nmessageid               3      0   100%   
+   zope.i18nmessageid.message      36      0   100%   
+   ----------------------------------------------------------
+   TOTAL                           39      0   100%   
+   ----------------------------------------------------------------------
+   Ran 21 tests in 0.036s
+
+   OK
+
+
+Building the documentation
+--------------------------
+
+:mod:`zope.i18nmessageid` uses the nifty :mod:`Sphinx` documentation system
+for building its docs.  Using the same virtualenv you set up to run the
+tests, you can build the docs:
+
+The ``docs`` command alias downloads and installs Sphinx and its dependencies:
+
+.. code-block:: sh
+
+   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py docs
+   ...
+   $ bin/sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
+   ...
+   build succeeded.
+
+You can also test the code snippets in the documentation:
+
+.. code-block:: sh
+
+   $ bin/sphinx-build -b doctest -d docs/_build/doctrees docs 
docs/_build/doctest
+   ...
+   running tests...
+
+   Document: index
+   ---------------
+   1 items passed all tests:
+     17 tests in default
+   17 tests in 1 items.
+   17 passed and 0 failed.
+   Test passed.
+
+   Doctest summary
+   ===============
+      17 tests
+       0 failures in tests
+       0 failures in setup code
+   build succeeded.
+
+
+Using :mod:`zc.buildout`
+########################
+
+Setting up the buildout
+-----------------------
+
+:mod:`zope.i18nmessageid` ships with its own :file:`buildout.cfg` file and
+:file:`bootstrap.py` for setting up a development buildout:
+
+.. code-block:: sh
+
+   $ /path/to/python2.6 bootstrap.py
+   ...
+   Generated script '.../bin/buildout'
+   $ bin/buildout
+   Develop: '/home/jrandom/projects/Zope/BTK/i18nmessageid/.'
+   ...
+   Generated script '.../bin/sphinx-quickstart'.
+   Generated script '.../bin/sphinx-build'.
+
+
+Running the tests
+-----------------
+
+You can now run the tests:
+
+.. code-block:: sh
+
+   $ bin/test --all
+   Running zope.testing.testrunner.layer.UnitTests tests:
+     Set up zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
+     Ran 702 tests with 0 failures and 0 errors in 0.000 seconds.
+   Tearing down left over layers:
+     Tear down zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
+
+
+Using :mod:`tox`
+################
+
+
+Running Tests on Multiple Python Versions
+-----------------------------------------
+
+`tox <http://tox.testrun.org/latest/>`_ is a Python-based test automation
+tool designed to run tests against multiple Python versions.  It creates
+a ``virtualenv`` for each configured version, installs the current package
+and configured dependencies into each ``virtualenv``, and then runs the
+configured commands.
+   
+:mod:`zope.i18nmessageid` configures the following :mod:`tox` environments via
+its ``tox.ini`` file:
+
+- The ``py26``, ``py27``, ``py33``, ``py34``, and ``pypy`` environments
+  builds a ``virtualenv`` with ``pypy``,
+  installs :mod:`zope.i18nmessageid` and dependencies, and runs the tests
+  via ``python setup.py test -q``.
+
+- The ``coverage`` environment builds a ``virtualenv`` with ``python2.6``,
+  installs :mod:`zope.i18nmessageid` and dependencies, installs
+  :mod:`nose` and :mod:`coverage`, and runs ``nosetests`` with statement
+  coverage.
+
+- The ``docs`` environment builds a virtualenv with ``python2.6``, installs
+  :mod:`zope.i18nmessageid` and dependencies, installs ``Sphinx`` and
+  dependencies, and then builds the docs and exercises the doctest snippets.
+
+This example requires that you have a working ``python2.6`` on your path,
+as well as installing ``tox``:
+
+.. code-block:: sh
+
+   $ tox -e py26
+   GLOB sdist-make: .../zope.i18nmessageid/setup.py
+   py26 sdist-reinst: 
.../zope.i18nmessageid/.tox/dist/zope.i18nmessageid-4.0.2dev.zip
+   py26 runtests: commands[0]
+   ...
+   ----------------------------------------------------------------------
+   Ran 1341 tests in 0.477s
+
+   OK
+   ___________________________________ summary 
____________________________________
+   py26: commands succeeded
+   congratulations :)
+
+Running ``tox`` with no arguments runs all the configured environments,
+including building the docs and testing their snippets:
+
+.. code-block:: sh
+
+   $ tox
+   GLOB sdist-make: .../zope.i18nmessageid/setup.py
+   py26 sdist-reinst: 
.../zope.i18nmessageid/.tox/dist/zope.i18nmessageid-4.0.2dev.zip
+   py26 runtests: commands[0]
+   ...
+   Doctest summary
+   ===============
+   678 tests
+      0 failures in tests
+      0 failures in setup code
+      0 failures in cleanup code
+   build succeeded.
+   ___________________________________ summary 
____________________________________
+   py26: commands succeeded
+   py27: commands succeeded
+   py32: commands succeeded
+   pypy: commands succeeded
+   coverage: commands succeeded
+   docs: commands succeeded
+   congratulations :)
+
+
+
+Contributing to :mod:`zope.i18nmessageid`
+#########################################
+
+Submitting a Bug Report
+-----------------------
+
+:mod:`zope.i18nmessageid` tracks its bugs on Github:
+
+  https://github.com/zopefoundation/zope.i18nmessageid/issues
+
+Please submit bug reports and feature requests there.
+
+Sharing Your Changes
+--------------------
+
+.. note::
+
+   Please ensure that all tests are passing before you submit your code.
+   If possible, your submission should include new tests for new features
+   or bug fixes, although it is possible that you may have tested your
+   new code by updating existing tests.
+
+If have made a change you would like to share, the best route is to fork
+the Githb repository, check out your fork, make your changes on a branch
+in your fork, and push it.  You can then submit a pull request from your
+branch:
+
+  https://github.com/zopefoundation/zope.i18nmessageid/pulls
+
+If you branched the code from Launchpad using Bazaar, you have another
+option:  you can "push" your branch to Launchpad:
+
+.. code-block:: sh
+
+   $ bzr push lp:~jrandom/zope.i18nmessageid/cool_feature
+
+After pushing your branch, you can link it to a bug report on Launchpad,
+or request that the maintainers merge your branch using the Launchpad
+"merge request" feature.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/index.rst.txt 
new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/index.rst.txt
--- old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/index.rst.txt        
1970-01-01 01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/index.rst.txt        
2022-11-03 15:37:34.000000000 +0100
@@ -0,0 +1,21 @@
+:mod:`zope.i18nmessageid` Documentation
+=======================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   narr
+   api
+   hacking
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/narr.rst.txt 
new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/narr.rst.txt
--- old/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/narr.rst.txt 
1970-01-01 01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/_build/html/_sources/narr.rst.txt 
2023-04-20 10:28:06.000000000 +0200
@@ -0,0 +1,168 @@
+Using :mod:`zope.i18nmessageid`
+===============================
+
+Rationale
+---------
+
+To translate any text, we must be able to discover the source domain
+of the text.  A source domain is an identifier that identifies a
+project that produces program source strings.  Source strings occur as
+literals in python programs, text in templates, and some text in XML
+data.  The project implies a source language and an application
+context.
+
+Messages and Domains
+--------------------
+
+We can think of a source domain as a collection of messages and
+associated translation strings.  The domain helps to disambiguate messages
+based on context:  for instance, the message whose source string is ``draw``
+means one thing in a first-person shooter game, and quite another in a
+graphics package:  in the first case, the domain for the message might
+be ``ok_corral``, while in the second it might be ``gimp``.
+
+We often need to create unicode strings that will be displayed by
+separate views.  The view cannot translate the string without knowing
+its source domain.  A string or unicode literal carries no domain
+information, therefore we use instances of the
+:class:`~zope.i18nmessageid.message.Message` class.  Messages are unicode
+strings which carry a translation source domain and possibly a default
+translation.
+
+Message Factories
+-----------------
+
+Messages are created by a message factory belonging to a given translation
+domain. Each message factory is created by instantiating a
+:class:`~zope.i18nmessageid.message.MessageFactory`, passing the domain
+corresponding to the project which manages the corrresponding translations.
+
+.. doctest::
+
+  >>> from zope.i18nmessageid import MessageFactory
+  >>> factory = MessageFactory('myproject')
+  >>> foo = factory('foo')
+  >>> foo.domain
+  'myproject'
+
+The Zope project uses the ``zope`` domain for its messages.  This package
+exports an already-created factory for that domain:
+
+.. doctest::
+
+  >>> from zope.i18nmessageid import ZopeMessageFactory as _z_
+  >>> foo = _z_('foo')
+  >>> foo.domain
+  'zope'
+
+
+Example Usage
+-------------
+
+In this example, we create a message factory and assign it to _.  By
+convention, we use _ as the name of our factory to be compatible with
+translatable string extraction tools such as xgettext.  We then call _
+with a string that needs to be translatable:
+
+.. doctest::
+
+  >>> from zope.i18nmessageid import MessageFactory, Message
+  >>> _ = MessageFactory("futurama")
+  >>> robot = _(u"robot-message", u"${name} is a robot.")
+
+Messages at first seem like they are text strings:
+
+.. doctest::
+
+  >>> robot == 'robot-message'
+  True
+  >>> isinstance(robot, str)
+  True
+
+The additional domain, default and mapping information is available
+through attributes:
+
+.. doctest::
+
+  >>> robot.default == '${name} is a robot.'
+  True
+  >>> robot.mapping
+  >>> robot.domain
+  'futurama'
+
+The message's attributes are considered part of the immutable message
+object.  They cannot be changed once the message id is created:
+
+.. doctest::
+
+  >>> robot.domain = "planetexpress"
+  Traceback (most recent call last):
+  ...
+  AttributeError: readonly attribute
+
+  >>> robot.default = u"${name} is not a robot."
+  Traceback (most recent call last):
+  ...
+  AttributeError: readonly attribute
+
+  >>> robot.mapping = {'name': 'Bender'}
+  Traceback (most recent call last):
+  ...
+  AttributeError: readonly attribute
+
+If you need to change their information, yo'll have to make a new
+message id object:
+
+.. doctest::
+
+  >>> new_robot = Message(robot, mapping={'name': 'Bender'})
+  >>> new_robot == 'robot-message'
+  True
+  >>> new_robot.domain
+  'futurama'
+  >>> new_robot.default == '${name} is a robot.'
+  True
+  >>> new_robot.mapping == {'name': 'Bender'}
+  True
+
+Last but not least, messages are reduceable for pickling:
+
+.. doctest::
+
+  >>> callable, args = new_robot.__reduce__()
+  >>> callable is Message
+  True
+  >>> args == ('robot-message',
+  ...          'futurama',
+  ...          '${name} is a robot.',
+  ...          {'name': 'Bender'},
+  ...          None,
+  ...          None,
+  ...          None)
+  True
+
+  >>> fembot = Message('fembot')
+  >>> callable, args = fembot.__reduce__()
+  >>> callable is Message
+  True
+  >>> args == ('fembot', None, None, None, None, None, None)
+  True
+
+Pickling and unpickling works, which means we can store message IDs in
+a database:
+
+.. doctest::
+
+   >>> from pickle import dumps, loads
+   >>> pystate = dumps(new_robot)
+   >>> pickle_bot = loads(pystate)
+   >>> (pickle_bot,
+   ...  pickle_bot.domain,
+   ...  pickle_bot.default,
+   ...  pickle_bot.mapping) == ('robot-message',
+   ...                          'futurama',
+   ...                          '${name} is a robot.',
+   ...                          {'name': 'Bender'})
+   True
+   >>> pickle_bot.__reduce__()[0] is Message
+   True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/docs/conf.py 
new/zope.i18nmessageid-6.1.0/docs/conf.py
--- old/zope.i18nmessageid-6.0.1/docs/conf.py   2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/docs/conf.py   2023-10-05 13:19:39.000000000 
+0200
@@ -91,7 +91,7 @@
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-html_theme = 'default'
+html_theme = 'sphinx_rtd_theme'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/docs/requirements.txt 
new/zope.i18nmessageid-6.1.0/docs/requirements.txt
--- old/zope.i18nmessageid-6.0.1/docs/requirements.txt  1970-01-01 
01:00:00.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/docs/requirements.txt  2023-10-05 
13:19:39.000000000 +0200
@@ -0,0 +1,3 @@
+Sphinx
+sphinx_rtd_theme>1
+docutils<0.19
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/setup.cfg 
new/zope.i18nmessageid-6.1.0/setup.cfg
--- old/zope.i18nmessageid-6.0.1/setup.cfg      2023-03-24 07:58:03.586763000 
+0100
+++ new/zope.i18nmessageid-6.1.0/setup.cfg      2023-10-05 14:02:43.681088700 
+0200
@@ -20,7 +20,7 @@
 force_single_line = True
 combine_as_imports = True
 sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
-known_third_party = six, docutils, pkg_resources, pytz
+known_third_party = docutils, pkg_resources, pytz
 known_zope = 
 known_first_party = 
 default_section = ZOPE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/setup.py 
new/zope.i18nmessageid-6.1.0/setup.py
--- old/zope.i18nmessageid-6.0.1/setup.py       2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/setup.py       2023-10-05 13:36:33.000000000 
+0200
@@ -95,7 +95,7 @@
 
 setup(
     name='zope.i18nmessageid',
-    version='6.0.1',
+    version='6.1.0',
     author='Zope Foundation and Contributors',
     author_email='zope-...@zope.org',
     description='Message Identifiers for internationalization',
@@ -117,6 +117,7 @@
         'Programming Language :: Python :: 3.9',
         'Programming Language :: Python :: 3.10',
         'Programming Language :: Python :: 3.11',
+        'Programming Language :: Python :: 3.12',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Natural Language :: English',
@@ -140,6 +141,6 @@
     extras_require={
         'testing': tests_require,
         'test': tests_require,
-        'docs': ['Sphinx'],
+        'docs': ['Sphinx', 'sphinx_rtd_theme'],
     },
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/PKG-INFO 
new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/PKG-INFO
--- old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/PKG-INFO       
2023-03-24 07:58:03.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/PKG-INFO       
2023-10-05 14:02:43.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.i18nmessageid
-Version: 6.0.1
+Version: 6.1.0
 Summary: Message Identifiers for internationalization
 Home-page: https://github.com/zopefoundation/zope.i18nmessageid
 Author: Zope Foundation and Contributors
@@ -18,6 +18,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Natural Language :: English
@@ -25,10 +26,17 @@
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
 Requires-Python: >=3.7
+License-File: LICENSE.txt
+Requires-Dist: setuptools
 Provides-Extra: testing
+Requires-Dist: zope.testrunner; extra == "testing"
+Requires-Dist: coverage; extra == "testing"
 Provides-Extra: test
+Requires-Dist: zope.testrunner; extra == "test"
+Requires-Dist: coverage; extra == "test"
 Provides-Extra: docs
-License-File: LICENSE.txt
+Requires-Dist: Sphinx; extra == "docs"
+Requires-Dist: sphinx_rtd_theme; extra == "docs"
 
 ``zope.i18nmessageid``
 ======================
@@ -74,6 +82,12 @@
  Changes
 =========
 
+6.1.0 (2023-10-05)
+==================
+
+- Add support for Python 3.12.
+
+
 6.0.1 (2023-03-24)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/SOURCES.txt 
new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/SOURCES.txt
--- old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/SOURCES.txt    
2023-03-24 07:58:03.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/SOURCES.txt    
2023-10-05 14:02:43.000000000 +0200
@@ -1,6 +1,7 @@
 .coveragerc
 .manylinux-install.sh
 .manylinux.sh
+.readthedocs.yaml
 CHANGES.rst
 CONTRIBUTING.md
 COPYRIGHT.txt
@@ -19,6 +20,12 @@
 docs/index.rst
 docs/make.bat
 docs/narr.rst
+docs/requirements.txt
+docs/_build/doctest/output.txt
+docs/_build/html/_sources/api.rst.txt
+docs/_build/html/_sources/hacking.rst.txt
+docs/_build/html/_sources/index.rst.txt
+docs/_build/html/_sources/narr.rst.txt
 src/zope/__init__.py
 src/zope.i18nmessageid.egg-info/PKG-INFO
 src/zope.i18nmessageid.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/requires.txt 
new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/requires.txt
--- old/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/requires.txt   
2023-03-24 07:58:03.000000000 +0100
+++ new/zope.i18nmessageid-6.1.0/src/zope.i18nmessageid.egg-info/requires.txt   
2023-10-05 14:02:43.000000000 +0200
@@ -2,6 +2,7 @@
 
 [docs]
 Sphinx
+sphinx_rtd_theme
 
 [test]
 zope.testrunner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-6.0.1/tox.ini 
new/zope.i18nmessageid-6.1.0/tox.ini
--- old/zope.i18nmessageid-6.0.1/tox.ini        2023-03-24 07:58:02.000000000 
+0100
+++ new/zope.i18nmessageid-6.1.0/tox.ini        2023-10-05 13:19:39.000000000 
+0200
@@ -16,12 +16,13 @@
 
 [testenv]
 usedevelop = true
-pip_pre = py312: true
 deps =
-    Sphinx
+    py37: urllib3 < 2
 setenv =
     pure: PURE_PYTHON=1
     !pure-!pypy3: PURE_PYTHON=0
+    py312: VIRTUALENV_PIP=23.1.2
+    py312: PIP_REQUIRE_VIRTUALENV=0
 commands =
     zope-testrunner --test-path=src {posargs:-vc}
     sphinx-build -b doctest -d {envdir}/.cache/doctrees docs 
{envdir}/.cache/doctest
@@ -35,6 +36,7 @@
     mkdir
 deps =
     coverage
+    py37: urllib3 < 2
 setenv =
     PURE_PYTHON=1
 commands =

Reply via email to