Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jaraco.context for
openSUSE:Factory checked in at 2022-07-05 12:27:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jaraco.context (Old)
and /work/SRC/openSUSE:Factory/.python-jaraco.context.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jaraco.context"
Tue Jul 5 12:27:24 2022 rev:3 rq:986611 version:4.1.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-jaraco.context/python-jaraco.context.changes
2021-04-01 14:18:43.496110594 +0200
+++
/work/SRC/openSUSE:Factory/.python-jaraco.context.new.1548/python-jaraco.context.changes
2022-07-05 12:27:31.005874167 +0200
@@ -1,0 +2,8 @@
+Tue Jun 28 14:35:38 UTC 2022 - Adrian Schr??ter <[email protected]>
+
+- Update to version 4.1.1
+ * Fixed some docs rendering issues.
+ * To the ``ExceptionTrap``, added ``.raises()`` and ``.passes``
+ decorators.
+
+-------------------------------------------------------------------
Old:
----
jaraco.context-4.0.0.tar.gz
New:
----
jaraco.context-4.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jaraco.context.spec ++++++
--- /var/tmp/diff_new_pack.xElVHp/_old 2022-07-05 12:27:31.453874822 +0200
+++ /var/tmp/diff_new_pack.xElVHp/_new 2022-07-05 12:27:31.457874828 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jaraco.context
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-jaraco.context
-Version: 4.0.0
+Version: 4.1.1
Release: 0
Summary: Tools to work with functools
License: MIT
++++++ jaraco.context-4.0.0.tar.gz -> jaraco.context-4.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.coveragerc
new/jaraco.context-4.1.1/.coveragerc
--- old/jaraco.context-4.0.0/.coveragerc 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/.coveragerc 2021-10-31 18:21:07.000000000
+0100
@@ -1,5 +1,7 @@
[run]
-omit = .tox/*
+omit =
+ # leading `*/` for pytest-dev/pytest-cov#456
+ */.tox/*
[report]
show_missing = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.editorconfig
new/jaraco.context-4.1.1/.editorconfig
--- old/jaraco.context-4.0.0/.editorconfig 1970-01-01 01:00:00.000000000
+0100
+++ new/jaraco.context-4.1.1/.editorconfig 2021-10-31 18:21:07.000000000
+0100
@@ -0,0 +1,16 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = tab
+indent_size = 4
+insert_final_newline = true
+end_of_line = lf
+
+[*.py]
+indent_style = space
+max_line_length = 88
+
+[*.{yml,yaml}]
+indent_style = space
+indent_size = 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.github/dependabot.yml
new/jaraco.context-4.1.1/.github/dependabot.yml
--- old/jaraco.context-4.0.0/.github/dependabot.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/jaraco.context-4.1.1/.github/dependabot.yml 2021-10-31
18:21:07.000000000 +0100
@@ -0,0 +1,8 @@
+version: 2
+updates:
+ - package-ecosystem: "pip"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ allow:
+ - dependency-type: "all"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.github/workflows/automerge.yml
new/jaraco.context-4.1.1/.github/workflows/automerge.yml
--- old/jaraco.context-4.0.0/.github/workflows/automerge.yml 2021-01-29
03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/.github/workflows/automerge.yml 1970-01-01
01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-name: automerge
-on:
- pull_request:
- types:
- - labeled
- - unlabeled
- - synchronize
- - opened
- - edited
- - ready_for_review
- - reopened
- - unlocked
- pull_request_review:
- types:
- - submitted
- check_suite:
- types:
- - completed
- status: {}
-jobs:
- automerge:
- runs-on: ubuntu-latest
- steps:
- - name: automerge
- uses: "pascalgn/[email protected]"
- env:
- GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.github/workflows/main.yml
new/jaraco.context-4.1.1/.github/workflows/main.yml
--- old/jaraco.context-4.0.0/.github/workflows/main.yml 2021-01-29
03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/.github/workflows/main.yml 2021-10-31
18:21:07.000000000 +0100
@@ -6,8 +6,14 @@
test:
strategy:
matrix:
- python: [3.6, 3.8, 3.9]
- platform: [ubuntu-latest, macos-latest, windows-latest]
+ python:
+ - 3.6
+ - 3.9
+ - "3.10"
+ platform:
+ - ubuntu-latest
+ - macos-latest
+ - windows-latest
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
@@ -31,7 +37,7 @@
- name: Setup Python
uses: actions/setup-python@v2
with:
- python-version: 3.9
+ python-version: "3.10"
- name: Install tox
run: |
python -m pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/.pre-commit-config.yaml
new/jaraco.context-4.1.1/.pre-commit-config.yaml
--- old/jaraco.context-4.0.0/.pre-commit-config.yaml 2021-01-29
03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/.pre-commit-config.yaml 2021-10-31
18:21:07.000000000 +0100
@@ -3,8 +3,3 @@
rev: 20.8b1
hooks:
- id: black
-
-- repo: https://github.com/asottile/blacken-docs
- rev: v1.9.1
- hooks:
- - id: blacken-docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/CHANGES.rst
new/jaraco.context-4.1.1/CHANGES.rst
--- old/jaraco.context-4.0.0/CHANGES.rst 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/CHANGES.rst 2021-10-31 18:21:07.000000000
+0100
@@ -1,3 +1,14 @@
+v4.1.1
+======
+
+Fixed some docs rendering issues.
+
+v4.1.0
+======
+
+To the ``ExceptionTrap``, added ``.raises()`` and ``.passes``
+decorators.
+
v4.0.0
======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/PKG-INFO
new/jaraco.context-4.1.1/PKG-INFO
--- old/jaraco.context-4.0.0/PKG-INFO 2021-01-29 03:42:34.967781800 +0100
+++ new/jaraco.context-4.1.1/PKG-INFO 2021-10-31 18:21:28.133270700 +0100
@@ -1,30 +1,11 @@
Metadata-Version: 2.1
Name: jaraco.context
-Version: 4.0.0
+Version: 4.1.1
Summary: Context managers by jaraco
Home-page: https://github.com/jaraco/jaraco.context
Author: Jason R. Coombs
Author-email: [email protected]
License: UNKNOWN
-Description: .. image:: https://img.shields.io/pypi/v/jaraco.context.svg
- :target: `PyPI link`_
-
- .. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
- :target: `PyPI link`_
-
- .. _PyPI link: https://pypi.org/project/jaraco.context
-
- .. image::
https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
- :target:
https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
- :alt: tests
-
- .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
- :target: https://github.com/psf/black
- :alt: Code style: Black
-
- .. image::
https://readthedocs.org/projects/jaracocontext/badge/?version=latest
- :target:
https://jaracocontext.readthedocs.io/en/latest/?badge=latest
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
@@ -34,3 +15,28 @@
Requires-Python: >=3.6
Provides-Extra: testing
Provides-Extra: docs
+License-File: LICENSE
+
+.. image:: https://img.shields.io/pypi/v/jaraco.context.svg
+ :target: `PyPI link`_
+
+.. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
+ :target: `PyPI link`_
+
+.. _PyPI link: https://pypi.org/project/jaraco.context
+
+.. image:: https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
+ :target:
https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
+ :alt: tests
+
+.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
+ :target: https://github.com/psf/black
+ :alt: Code style: Black
+
+.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest
+ :target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
+
+.. image:: https://img.shields.io/badge/skeleton-2021-informational
+ :target: https://blog.jaraco.com/skeleton
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/README.rst
new/jaraco.context-4.1.1/README.rst
--- old/jaraco.context-4.0.0/README.rst 2021-01-29 03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/README.rst 2021-10-31 18:21:07.000000000 +0100
@@ -16,3 +16,6 @@
.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest
:target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
+
+.. image:: https://img.shields.io/badge/skeleton-2021-informational
+ :target: https://blog.jaraco.com/skeleton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/docs/conf.py
new/jaraco.context-4.1.1/docs/conf.py
--- old/jaraco.context-4.0.0/docs/conf.py 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/docs/conf.py 2021-10-31 18:21:07.000000000
+0100
@@ -24,3 +24,17 @@
],
)
}
+
+# Be strict about any broken references:
+nitpicky = True
+
+nitpick_ignore = [
+ ('py:class', 'contextlib.suppress'),
+]
+
+# Include Python intersphinx mapping to prevent failures
+# jaraco/skeleton#51
+extensions += ['sphinx.ext.intersphinx']
+intersphinx_mapping = {
+ 'python': ('https://docs.python.org/3', None),
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/jaraco/context.py
new/jaraco.context-4.1.1/jaraco/context.py
--- old/jaraco.context-4.0.0/jaraco/context.py 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/jaraco/context.py 2021-10-31 18:21:07.000000000
+0100
@@ -4,9 +4,7 @@
import functools
import tempfile
import shutil
-
-
-__metaclass__ = type
+import operator
@contextlib.contextmanager
@@ -155,7 +153,53 @@
def __bool__(self):
return bool(self.type)
- __nonzero__ = __bool__
+ def raises(self, func, *, _test=bool):
+ """
+ Wrap func and replace the result with the truth
+ value of the trap (True if an exception occurred).
+
+ First, give the decorator an alias to support Python 3.8
+ Syntax.
+
+ >>> raises = ExceptionTrap(ValueError).raises
+
+ Now decorate a function that always fails.
+
+ >>> @raises
+ ... def fail():
+ ... raise ValueError('failed')
+ >>> fail()
+ True
+ """
+
+ @functools.wraps(func)
+ def wrapper(*args, **kwargs):
+ with ExceptionTrap(self.exceptions) as trap:
+ func(*args, **kwargs)
+ return _test(trap)
+
+ return wrapper
+
+ def passes(self, func):
+ """
+ Wrap func and replace the result with the truth
+ value of the trap (True if no exception).
+
+ First, give the decorator an alias to support Python 3.8
+ Syntax.
+
+ >>> passes = ExceptionTrap(ValueError).passes
+
+ Now decorate a function that always fails.
+
+ >>> @passes
+ ... def fail():
+ ... raise ValueError('failed')
+
+ >>> fail()
+ False
+ """
+ return self.raises(func, _test=operator.not_)
class suppress(contextlib.suppress, contextlib.ContextDecorator):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco.context-4.0.0/jaraco.context.egg-info/PKG-INFO
new/jaraco.context-4.1.1/jaraco.context.egg-info/PKG-INFO
--- old/jaraco.context-4.0.0/jaraco.context.egg-info/PKG-INFO 2021-01-29
03:42:34.000000000 +0100
+++ new/jaraco.context-4.1.1/jaraco.context.egg-info/PKG-INFO 2021-10-31
18:21:28.000000000 +0100
@@ -1,30 +1,11 @@
Metadata-Version: 2.1
Name: jaraco.context
-Version: 4.0.0
+Version: 4.1.1
Summary: Context managers by jaraco
Home-page: https://github.com/jaraco/jaraco.context
Author: Jason R. Coombs
Author-email: [email protected]
License: UNKNOWN
-Description: .. image:: https://img.shields.io/pypi/v/jaraco.context.svg
- :target: `PyPI link`_
-
- .. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
- :target: `PyPI link`_
-
- .. _PyPI link: https://pypi.org/project/jaraco.context
-
- .. image::
https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
- :target:
https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
- :alt: tests
-
- .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
- :target: https://github.com/psf/black
- :alt: Code style: Black
-
- .. image::
https://readthedocs.org/projects/jaracocontext/badge/?version=latest
- :target:
https://jaracocontext.readthedocs.io/en/latest/?badge=latest
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
@@ -34,3 +15,28 @@
Requires-Python: >=3.6
Provides-Extra: testing
Provides-Extra: docs
+License-File: LICENSE
+
+.. image:: https://img.shields.io/pypi/v/jaraco.context.svg
+ :target: `PyPI link`_
+
+.. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
+ :target: `PyPI link`_
+
+.. _PyPI link: https://pypi.org/project/jaraco.context
+
+.. image:: https://github.com/jaraco/jaraco.context/workflows/tests/badge.svg
+ :target:
https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22
+ :alt: tests
+
+.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
+ :target: https://github.com/psf/black
+ :alt: Code style: Black
+
+.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest
+ :target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
+
+.. image:: https://img.shields.io/badge/skeleton-2021-informational
+ :target: https://blog.jaraco.com/skeleton
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco.context-4.0.0/jaraco.context.egg-info/SOURCES.txt
new/jaraco.context-4.1.1/jaraco.context.egg-info/SOURCES.txt
--- old/jaraco.context-4.0.0/jaraco.context.egg-info/SOURCES.txt
2021-01-29 03:42:34.000000000 +0100
+++ new/jaraco.context-4.1.1/jaraco.context.egg-info/SOURCES.txt
2021-10-31 18:21:28.000000000 +0100
@@ -1,4 +1,5 @@
.coveragerc
+.editorconfig
.flake8
.pre-commit-config.yaml
.readthedocs.yml
@@ -10,9 +11,8 @@
pytest.ini
setup.cfg
setup.py
-skeleton.md
tox.ini
-.github/workflows/automerge.yml
+.github/dependabot.yml
.github/workflows/main.yml
docs/conf.py
docs/history.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco.context-4.0.0/jaraco.context.egg-info/requires.txt
new/jaraco.context-4.1.1/jaraco.context.egg-info/requires.txt
--- old/jaraco.context-4.0.0/jaraco.context.egg-info/requires.txt
2021-01-29 03:42:34.000000000 +0100
+++ new/jaraco.context-4.1.1/jaraco.context.egg-info/requires.txt
2021-10-31 18:21:28.000000000 +0100
@@ -5,11 +5,11 @@
rst.linker>=1.9
[testing]
-pytest!=3.7.3,>=3.5
-pytest-checkdocs>=1.2.3
+pytest>=6
+pytest-checkdocs>=2.4
pytest-flake8
pytest-cov
-pytest-enabler
+pytest-enabler>=1.0.1
[testing:platform_python_implementation != "PyPy"]
pytest-black>=0.3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jaraco.context-4.0.0/jaraco.context.egg-info/top_level.txt
new/jaraco.context-4.1.1/jaraco.context.egg-info/top_level.txt
--- old/jaraco.context-4.0.0/jaraco.context.egg-info/top_level.txt
2021-01-29 03:42:34.000000000 +0100
+++ new/jaraco.context-4.1.1/jaraco.context.egg-info/top_level.txt
2021-10-31 18:21:28.000000000 +0100
@@ -1,2 +1 @@
-dist
jaraco
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/pyproject.toml
new/jaraco.context-4.1.1/pyproject.toml
--- old/jaraco.context-4.0.0/pyproject.toml 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/pyproject.toml 2021-10-31 18:21:07.000000000
+0100
@@ -1,5 +1,5 @@
[build-system]
-requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=3.4.1"]
+requires = ["setuptools>=56", "setuptools_scm[toml]>=3.4.1"]
build-backend = "setuptools.build_meta"
[tool.black]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/pytest.ini
new/jaraco.context-4.1.1/pytest.ini
--- old/jaraco.context-4.0.0/pytest.ini 2021-01-29 03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/pytest.ini 2021-10-31 18:21:07.000000000 +0100
@@ -2,8 +2,8 @@
norecursedirs=dist build .tox .eggs
addopts=--doctest-modules
doctest_optionflags=ALLOW_UNICODE ELLIPSIS
-# workaround for warning pytest-dev/pytest#6178
-junit_family=xunit2
filterwarnings=
- # https://github.com/pytest-dev/pytest/issues/6928
- ignore:direct construction of .*Item has been deprecated:DeprecationWarning
+ # Suppress deprecation warning in flake8
+ ignore:SelectableGroups dict interface is deprecated::flake8
+ # Suppress deprecation warning in pypa/packaging#433
+ ignore:The distutils package is deprecated::packaging.tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/setup.cfg
new/jaraco.context-4.1.1/setup.cfg
--- old/jaraco.context-4.0.0/setup.cfg 2021-01-29 03:42:34.967781800 +0100
+++ new/jaraco.context-4.1.1/setup.cfg 2021-10-31 18:21:28.133270700 +0100
@@ -1,6 +1,4 @@
[metadata]
-license_files =
- LICENSE
name = jaraco.context
author = Jason R. Coombs
author_email = [email protected]
@@ -19,23 +17,25 @@
include_package_data = true
python_requires = >=3.6
install_requires =
-setup_requires = setuptools_scm[toml] >= 3.4.1
[options.packages.find]
exclude =
build*
+ dist*
docs*
tests*
[options.extras_require]
testing =
- pytest >= 3.5, !=3.7.3
- pytest-checkdocs >= 1.2.3
+ pytest >= 6
+ pytest-checkdocs >= 2.4
pytest-flake8
- pytest-black >= 0.3.7; python_implementation != "PyPy"
+ pytest-black >= 0.3.7; \
+ python_implementation != "PyPy"
pytest-cov
- pytest-mypy; python_implementation != "PyPy"
- pytest-enabler
+ pytest-mypy; \
+ python_implementation != "PyPy"
+ pytest-enabler >= 1.0.1
docs =
sphinx
jaraco.packaging >= 8.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/skeleton.md
new/jaraco.context-4.1.1/skeleton.md
--- old/jaraco.context-4.0.0/skeleton.md 2021-01-29 03:42:18.000000000
+0100
+++ new/jaraco.context-4.1.1/skeleton.md 1970-01-01 01:00:00.000000000
+0100
@@ -1,166 +0,0 @@
-# Overview
-
-This project is merged with [skeleton](https://github.com/jaraco/skeleton).
What is skeleton? It's the scaffolding of a Python project jaraco [introduced
in his blog](https://blog.jaraco.com/a-project-skeleton-for-python-projects/).
It seeks to provide a means to re-use techniques and inherit advances when
managing projects for distribution.
-
-## An SCM-Managed Approach
-
-While maintaining dozens of projects in PyPI, jaraco derives best practices
for project distribution and publishes them in the [skeleton
repo](https://github.com/jaraco/skeleton), a Git repo capturing the evolution
and culmination of these best practices.
-
-It's intended to be used by a new or existing project to adopt these practices
and honed and proven techniques. Adopters are encouraged to use the project
directly and maintain a small deviation from the technique, make their own fork
for more substantial changes unique to their environment or preferences, or
simply adopt the skeleton once and abandon it thereafter.
-
-The primary advantage to using an SCM for maintaining these techniques is that
those tools help facilitate the merge between the template and its adopting
projects.
-
-Another advantage to using an SCM-managed approach is that tools like GitHub
recognize that a change in the skeleton is the _same change_ across all
projects that merge with that skeleton. Without the ancestry, with a
traditional copy/paste approach, a [commit like
this](https://github.com/jaraco/skeleton/commit/12eed1326e1bc26ce256e7b3f8cd8d3a5beab2d5)
would produce notifications in the upstream project issue for each and every
application, but because it's centralized, GitHub provides just the one
notification when the change is added to the skeleton.
-
-# Usage
-
-## new projects
-
-To use skeleton for a new project, simply pull the skeleton into a new project:
-
-```
-$ git init my-new-project
-$ cd my-new-project
-$ git pull gh://jaraco/skeleton
-```
-
-Now customize the project to suit your individual project needs.
-
-## existing projects
-
-If you have an existing project, you can still incorporate the skeleton by
merging it into the codebase.
-
-```
-$ git merge skeleton --allow-unrelated-histories
-```
-
-The `--allow-unrelated-histories` is necessary because the history from the
skeleton was previously unrelated to the existing codebase. Resolve any merge
conflicts and commit to the master, and now the project is based on the shared
skeleton.
-
-## Updating
-
-Whenever a change is needed or desired for the general technique for
packaging, it can be made in the skeleton project and then merged into each of
the derived projects as needed, recommended before each release. As a result,
features and best practices for packaging are centrally maintained and readily
trickle into a whole suite of packages. This technique lowers the amount of
tedious work necessary to create or maintain a project, and coupled with other
techniques like continuous integration and deployment, lowers the cost of
creating and maintaining refined Python projects to just a few, familiar Git
operations.
-
-For example, here's a session of the [path
project](https://pypi.org/project/path) pulling non-conflicting changes from
the skeleton:
-
-<img
src="https://raw.githubusercontent.com/jaraco/skeleton/gh-pages/docs/refresh.svg">
-
-Thereafter, the target project can make whatever customizations it deems
relevant to the scaffolding. The project may even at some point decide that the
divergence is too great to merit renewed merging with the original skeleton.
This approach applies maximal guidance while creating minimal constraints.
-
-## Periodic Collapse
-
-In late 2020, this project
[introduced](https://github.com/jaraco/skeleton/issues/27) the idea of a
periodic but infrequent (O(years)) collapse of commits to limit the number of
commits a new consumer will need to accept to adopt the skeleton.
-
-The full history of commits is collapsed into a single commit and that commit
becomes the new mainline head.
-
-When one of these collapse operations happens, any project that previously
pulled from the skeleton will no longer have a related history with that new
main branch. For those projects, the skeleton provides a "handoff" branch that
reconciles the two branches. Any project that has previously merged with the
skeleton but now gets an error "fatal: refusing to merge unrelated histories"
should instead use the handoff branch once to incorporate the new main branch.
-
-```
-$ git pull https://github.com/jaraco/skeleton 2020-handoff
-```
-
-This handoff needs to be pulled just once and thereafter the project can pull
from the main head.
-
-The archive and handoff branches from prior collapses are indicate here:
-
-| refresh | archive | handoff |
-|---------|-----------------|--------------|
-| 2020-12 | archive/2020-12 | 2020-handoff |
-
-# Features
-
-The features/techniques employed by the skeleton include:
-
-- PEP 517/518-based build relying on Setuptools as the build tool
-- Setuptools declarative configuration using setup.cfg
-- tox for running tests
-- A README.rst as reStructuredText with some popular badges, but with Read the
Docs and AppVeyor badges commented out
-- A CHANGES.rst file intended for publishing release notes about the project
-- Use of [Black](https://black.readthedocs.io/en/stable/) for code formatting
(disabled on unsupported Python 3.5 and earlier)
-- Integrated type checking through [mypy](https://github.com/python/mypy/).
-
-## Packaging Conventions
-
-A pyproject.toml is included to enable PEP 517 and PEP 518 compatibility and
declares the requirements necessary to build the project on Setuptools (a
minimum version compatible with setup.cfg declarative config).
-
-The setup.cfg file implements the following features:
-
-- Assumes universal wheel for release
-- Advertises the project's LICENSE file (MIT by default)
-- Reads the README.rst file into the long description
-- Some common Trove classifiers
-- Includes all packages discovered in the repo
-- Data files in the package are also included (not just Python files)
-- Declares the required Python versions
-- Declares install requirements (empty by default)
-- Declares setup requirements for legacy environments
-- Supplies two 'extras':
- - testing: requirements for running tests
- - docs: requirements for building docs
- - these extras split the declaration into "upstream" (requirements as
declared by the skeleton) and "local" (those specific to the local project);
these markers help avoid merge conflicts
-- Placeholder for defining entry points
-
-Additionally, the setup.py file declares `use_scm_version` which relies on
[setuptools_scm](https://pypi.org/project/setuptools_scm) to do two things:
-
-- derive the project version from SCM tags
-- ensure that all files committed to the repo are automatically included in
releases
-
-## Running Tests
-
-The skeleton assumes the developer has [tox](https://pypi.org/project/tox)
installed. The developer is expected to run `tox` to run tests on the current
Python version using [pytest](https://pypi.org/project/pytest).
-
-Other environments (invoked with `tox -e {name}`) supplied include:
-
- - a `docs` environment to build the documentation
- - a `release` environment to publish the package to PyPI
-
-A pytest.ini is included to define common options around running tests. In
particular:
-
-- rely on default test discovery in the current directory
-- avoid recursing into common directories not containing tests
-- run doctests on modules and invoke Flake8 tests
-- in doctests, allow Unicode literals and regular literals to match, allowing
for doctests to run on Python 2 and 3. Also enable ELLIPSES, a default that
would be undone by supplying the prior option.
-- filters out known warnings caused by libraries/functionality included by the
skeleton
-
-Relies on a .flake8 file to correct some default behaviors:
-
-- disable mutually incompatible rules W503 and W504
-- support for Black format
-
-## Continuous Integration
-
-The project is pre-configured to run Continuous Integration tests.
-
-### Github Actions
-
-[Github Actions](https://docs.github.com/en/free-pro-team@latest/actions) are
the preferred provider as they provide free, fast, multi-platform services with
straightforward configuration. Configured in `.github/workflows`.
-
-Features include:
-- test against multiple Python versions
-- run on late (and updated) platform versions
-- automated releases of tagged commits
-- [automatic merging of
PRs](https://github.com/marketplace/actions/merge-pull-requests) (requires
[protecting branches with required status
checks](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/enabling-required-status-checks),
[not possible through
API](https://github.community/t/set-all-status-checks-to-be-required-as-branch-protection-using-the-github-api/119493))
-
-
-### Continuous Deployments
-
-In addition to running tests, an additional publish stage is configured to
automatically release tagged commits to PyPI using [API
tokens](https://pypi.org/help/#apitoken). The release process expects an
authorized token to be configured with each Github project (or org)
`PYPI_TOKEN`
[secret](https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets).
Example:
-
-```
-pip-run -q jaraco.develop -- -m jaraco.develop.add-github-secrets
-```
-
-## Building Documentation
-
-Documentation is automatically built by [Read the
Docs](https://readthedocs.org) when the project is registered with it, by way
of the .readthedocs.yml file. To test the docs build manually, a tox env may be
invoked as `tox -e docs`. Both techniques rely on the dependencies declared in
`setup.cfg/options.extras_require.docs`.
-
-In addition to building the Sphinx docs scaffolded in `docs/`, the docs build
a `history.html` file that first injects release dates and hyperlinks into the
CHANGES.rst before incorporating it as history in the docs.
-
-## Cutting releases
-
-By default, tagged commits are released through the continuous integration
deploy stage.
-
-Releases may also be cut manually by invoking the tox environment `release`
with the PyPI token set as the TWINE_PASSWORD:
-
-```
-TWINE_PASSWORD={token} tox -e release
-```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jaraco.context-4.0.0/tox.ini
new/jaraco.context-4.1.1/tox.ini
--- old/jaraco.context-4.0.0/tox.ini 2021-01-29 03:42:18.000000000 +0100
+++ new/jaraco.context-4.1.1/tox.ini 2021-10-31 18:21:07.000000000 +0100
@@ -19,14 +19,13 @@
testing
changedir = docs
commands =
- python -m sphinx . {toxinidir}/build/html
+ python -m sphinx -W --keep-going . {toxinidir}/build/html
[testenv:release]
skip_install = True
deps =
build
- twine[keyring]>=1.13
- path
+ twine>=3
jaraco.develop>=7.1
passenv =
TWINE_PASSWORD
@@ -34,7 +33,7 @@
setenv =
TWINE_USERNAME = {env:TWINE_USERNAME:__token__}
commands =
- python -c "import path; path.Path('dist').rmtree_p()"
+ python -c "import shutil; shutil.rmtree('dist', ignore_errors=True)"
python -m build
python -m twine upload dist/*
python -m jaraco.develop.create-github-release