Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-extension-helpers for 
openSUSE:Factory checked in at 2022-04-06 21:51:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-extension-helpers (Old)
 and      /work/SRC/openSUSE:Factory/.python-extension-helpers.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-extension-helpers"

Wed Apr  6 21:51:37 2022 rev:3 rq:967131 version:1.0.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-extension-helpers/python-extension-helpers.changes
        2021-02-21 22:14:24.530105495 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-extension-helpers.new.1900/python-extension-helpers.changes
      2022-04-06 21:51:59.391225882 +0200
@@ -1,0 +2,12 @@
+Tue Apr  5 15:57:58 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Update to 1.0
+  * Added support for coverage>=5 for the extension-helpers test
+    suite. [#24]
+  * Removed any direct usage of distutils. [#34]
+  * Remove support for the undocumented --compiler argument to
+    setup.py. [#36]
+  * Added support for enabling extension-helpers from setup.cfg.
+    [#33]
+
+-------------------------------------------------------------------

Old:
----
  extension-helpers-0.1.tar.gz

New:
----
  extension-helpers-1.0.0.tar.gz

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

Other differences:
------------------
++++++ python-extension-helpers.spec ++++++
--- /var/tmp/diff_new_pack.a8isIL/_old  2022-04-06 21:52:00.071218123 +0200
+++ /var/tmp/diff_new_pack.a8isIL/_new  2022-04-06 21:52:00.075218077 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-extension-helpers
 #
-# 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,23 +19,26 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-extension-helpers
-Version:        0.1
+Version:        1.0.0
 Release:        0
 Summary:        Utilities for building and installing packages in the Astropy 
ecosystem
 License:        BSD-3-Clause
 URL:            https://github.com/astropy/extension-helpers
 Source:         
https://files.pythonhosted.org/packages/source/e/extension-helpers/extension-helpers-%{version}.tar.gz
 Source100:      python-extension-helpers-rpmlintrc
-BuildRequires:  %{python_module setuptools_scm}
-BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module setuptools >= 43}
+BuildRequires:  %{python_module setuptools_scm >= 6.2}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 # SECTION test requirements
 BuildRequires:  %{python_module devel}
+BuildRequires:  %{python_module numpy-devel}
 BuildRequires:  %{python_module pytest}
-BuildRequires:  %{python_module numpy-devel if (%python-base without 
python36-base)}
+BuildRequires:  %{python_module wheel}
 # /SECTION
-Requires:       python-setuptools
+Requires:       python-setuptools >= 40.2
 BuildArch:      noarch
 %python_subpackages
 
@@ -53,10 +56,10 @@
 %setup -q -n extension-helpers-%{version}
 
 %build
-%python_build
+%pyproject_wheel
 
 %install
-%python_install
+%pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
@@ -67,6 +70,6 @@
 %doc CHANGES.rst README.rst
 %license LICENSE.rst licenses/LICENSE_ASTROSCRAPPY.rst
 %{python_sitelib}/extension_helpers
-%{python_sitelib}/extension_helpers-%{version}-py*.egg-info
+%{python_sitelib}/extension_helpers-%{version}*-info
 
 %changelog

++++++ extension-helpers-0.1.tar.gz -> extension-helpers-1.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/.circleci/config.yml 
new/extension-helpers-1.0.0/.circleci/config.yml
--- old/extension-helpers-0.1/.circleci/config.yml      2019-12-16 
21:50:17.000000000 +0100
+++ new/extension-helpers-1.0.0/.circleci/config.yml    1970-01-01 
01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-version: 2
-
-jobs:
-  html-docs:
-    docker:
-      - image: circleci/python:3.6
-    steps:
-      - checkout
-      - run:
-          name: Install Python dependencies
-          command: |
-            python3 -m venv venv
-            . venv/bin/activate
-            pip install .[docs]
-      - run:
-          name: Build Documentation
-          command: |
-            . venv/bin/activate
-            cd docs
-            make html
-            make linkcheck
-
-      - store_artifacts:
-          path: docs/_build/html
-
-      - run:
-          name: "Built documentation is available at:"
-          command: 
DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/docs/_build/html/index.html";
 echo $DOCS_URL
-
-
-workflows:
-  version: 2
-  tests_and_docs:
-    jobs:
-      - html-docs
-
-notify:
-  webhooks:
-    - url: https://giles.cadair.com/circleci
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/.coveragerc 
new/extension-helpers-1.0.0/.coveragerc
--- old/extension-helpers-0.1/.coveragerc       2019-12-16 21:50:17.000000000 
+0100
+++ new/extension-helpers-1.0.0/.coveragerc     1970-01-01 01:00:00.000000000 
+0100
@@ -1,32 +0,0 @@
-[run]
-
-source = extension_helpers
-
-omit =
-   extension_helpers/*/setup_package.py
-   extension_helpers/tests/*
-   extension_helpers/conftest.py
-
-[report]
-
-omit =
-   extension_helpers/*/setup_package.py
-   extension_helpers/tests/*
-   extension_helpers/conftest.py
-
-exclude_lines =
-   # Have to re-enable the standard pragma
-   pragma: no cover
-
-   # Don't complain about packages we have installed
-   except ImportError
-
-   # Don't complain if tests don't hit assertions
-   raise AssertionError
-   raise NotImplementedError
-
-   # Don't complain about script hooks
-   def main\(.*\):
-
-   # Ignore branches that don't pertain to this version of Python
-   pragma: py{ignore_python_version}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/.github/workflows/main.yml 
new/extension-helpers-1.0.0/.github/workflows/main.yml
--- old/extension-helpers-0.1/.github/workflows/main.yml        1970-01-01 
01:00:00.000000000 +0100
+++ new/extension-helpers-1.0.0/.github/workflows/main.yml      2022-03-16 
22:44:31.000000000 +0100
@@ -0,0 +1,41 @@
+name: CI
+
+on:
+  push:
+  pull_request:
+
+jobs:
+  tests:
+    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
+    with:
+      posargs: --openmp-expected=True
+      coverage: codecov
+      envs: |
+        # Code style
+        - linux: style
+        # Docs
+        - linux: build_docs
+        # Standard tests
+        - linux: py36-test-oldestdeps
+        - linux: py37-test
+        - linux: py38-test
+        - linux: py38-test-dev
+        - macos: py38-test-dev
+          posargs: --openmp-expected=False
+        - windows: py36-test
+          runs-on: windows-2019
+        - windows: py38-test-dev
+          runs-on: windows-2019
+        # Test with more compilers, for the OpenMP helpers
+        - macos: py38-test-osxclang-conda
+        - linux: py38-test-linuxgcc-conda
+        # Test downstream packages
+        - linux: py39-downstream
+  publish:
+    needs: tests
+    uses: 
OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v1
+    with:
+      test_extras: test
+      test_command: pytest --pyargs extension_helpers
+    secrets:
+      pypi_token: ${{ secrets.PYPI_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/.gitignore 
new/extension-helpers-1.0.0/.gitignore
--- old/extension-helpers-0.1/.gitignore        2019-12-16 21:50:17.000000000 
+0100
+++ new/extension-helpers-1.0.0/.gitignore      2022-03-16 22:44:31.000000000 
+0100
@@ -53,3 +53,6 @@
 
 # PyCharm
 .idea
+
+# Hypothesis
+.hypothesis
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/CHANGES.rst 
new/extension-helpers-1.0.0/CHANGES.rst
--- old/extension-helpers-0.1/CHANGES.rst       2019-12-18 13:28:02.000000000 
+0100
+++ new/extension-helpers-1.0.0/CHANGES.rst     2022-03-16 22:44:31.000000000 
+0100
@@ -1,4 +1,15 @@
+1.0.0 (2022-03-16)
+------------------
+
+* Added support for coverage>=5 for the extension-helpers test suite. [#24]
+
+* Removed any direct usage of distutils. [#34]
+
+* Remove support for the undocumented --compiler argument to setup.py. [#36]
+
+* Added support for enabling extension-helpers from setup.cfg. [#33]
+
 0.1 (2019-12-18)
 ----------------
 
-Initial release of extension-helpers, which was forked from astropy-helpers 
4.0.
+* Initial release of extension-helpers, which was forked from astropy-helpers 
4.0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/CONTRIBUTING.md 
new/extension-helpers-1.0.0/CONTRIBUTING.md
--- old/extension-helpers-0.1/CONTRIBUTING.md   2019-12-16 21:50:17.000000000 
+0100
+++ new/extension-helpers-1.0.0/CONTRIBUTING.md 2022-03-16 22:44:31.000000000 
+0100
@@ -3,18 +3,7 @@
 
 The guidelines for contributing to ``extension-helpers`` are generally the same
 as the [contributing guidelines for the astropy core
-package](http://github.com/astropy/astropy/blob/master/CONTRIBUTING.md).
+package](http://github.com/astropy/astropy/blob/main/CONTRIBUTING.md).
 Basically, report relevant issues in the ``extension-helpers`` issue tracker, 
and
 we welcome pull requests that broadly follow the [Astropy coding
 guidelines](http://docs.astropy.org/en/latest/development/codeguide.html).
-
-The key subtlety lies in understanding the relationship between ``astropy`` and
-``extension-helpers``.  This package contains the build, installation, and
-documentation tools used by astropy.  It also includes support for the
-``setup.py test`` command, though Astropy is still required for this to
-function (it does not currently include the full Astropy test runner).  So
-issues or improvements to that functionality should be addressed in this
-package. Any other aspect of the [astropy core
-package](http://github.com/astropy/astropy) (or any other package that uses
-``extension-helpers``) should be addressed in the github repository for that
-package.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/PKG-INFO 
new/extension-helpers-1.0.0/PKG-INFO
--- old/extension-helpers-0.1/PKG-INFO  2019-12-18 13:29:05.164452600 +0100
+++ new/extension-helpers-1.0.0/PKG-INFO        2022-03-16 22:44:51.766397000 
+0100
@@ -1,27 +1,11 @@
 Metadata-Version: 2.1
 Name: extension-helpers
-Version: 0.1
-Summary: Utilities for building and installing packages in the Astropy 
ecosystem
-Home-page: https://github.com/astropy/astropy-helpers
+Version: 1.0.0
+Summary: Utilities for building and installing packages with compiled 
extensions
+Home-page: https://github.com/astropy/extension-helpers
 Author: The Astropy Developers
 Author-email: astropy.t...@gmail.com
 License: BSD 3-Clause License
-Description: extension-helpers
-        =================
-        
-        .. image:: 
https://dev.azure.com/astropy-project/extension-helpers/_apis/build/status/astropy.extension-helpers?branchName=master
-          :target: 
https://dev.azure.com/astropy-project/extension-helpers/_build/latest?definitionId=4&branchName=master
-        
-        .. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/master/graph/badge.svg
-          :target: https://codecov.io/gh/astropy/extension-helpers
-        
-        The **extension-helpers** package includes convenience helpers to 
assist with
-        building Python packages with compiled C/Cython extensions. It is 
developed by
-        the Astropy project but is intended to be general and usable by any 
Python
-        package.
-        
-        For more information, see the documentation at 
http://extension-helpers.readthedocs.io
-        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -37,3 +21,26 @@
 Requires-Python: >=3.6
 Provides-Extra: test
 Provides-Extra: docs
+License-File: LICENSE.rst
+
+extension-helpers
+=================
+
+.. image:: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml/badge.svg
+  :target: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml
+
+.. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/main/graph/badge.svg
+  :target: https://codecov.io/gh/astropy/extension-helpers
+
+.. image:: 
https://readthedocs.org/projects/extension-helpers/badge/?version=latest
+  :target: https://extension-helpers.readthedocs.io/en/latest/?badge=latest
+  :alt: Documentation Status
+
+The **extension-helpers** package includes convenience helpers to assist with
+building Python packages with compiled C/Cython extensions. It is developed by
+the Astropy project but is intended to be general and usable by any Python
+package.
+
+For more information, see the documentation at 
http://extension-helpers.readthedocs.io
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/README.rst 
new/extension-helpers-1.0.0/README.rst
--- old/extension-helpers-0.1/README.rst        2019-12-18 13:27:20.000000000 
+0100
+++ new/extension-helpers-1.0.0/README.rst      2022-03-16 22:44:31.000000000 
+0100
@@ -1,12 +1,16 @@
 extension-helpers
 =================
 
-.. image:: 
https://dev.azure.com/astropy-project/extension-helpers/_apis/build/status/astropy.extension-helpers?branchName=master
-  :target: 
https://dev.azure.com/astropy-project/extension-helpers/_build/latest?definitionId=4&branchName=master
+.. image:: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml/badge.svg
+  :target: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml
 
-.. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/master/graph/badge.svg
+.. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/main/graph/badge.svg
   :target: https://codecov.io/gh/astropy/extension-helpers
 
+.. image:: 
https://readthedocs.org/projects/extension-helpers/badge/?version=latest
+  :target: https://extension-helpers.readthedocs.io/en/latest/?badge=latest
+  :alt: Documentation Status
+
 The **extension-helpers** package includes convenience helpers to assist with
 building Python packages with compiled C/Cython extensions. It is developed by
 the Astropy project but is intended to be general and usable by any Python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/azure-pipelines.yml 
new/extension-helpers-1.0.0/azure-pipelines.yml
--- old/extension-helpers-0.1/azure-pipelines.yml       2019-12-18 
13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/azure-pipelines.yml     1970-01-01 
01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-resources:
-  repositories:
-  - repository: OpenAstronomy
-    type: github
-    endpoint: astropy
-    name: OpenAstronomy/azure-pipelines-templates
-    ref: master
-
-jobs:
-- template: run-tox-env.yml@OpenAstronomy
-  parameters:
-    posargs: --openmp-expected=True
-    coverage: codecov
-    envs:
-    # Code style
-    - linux: style
-    # Docs
-    - linux: build_docs
-    # Standard tests
-    - linux: py36-test
-    - linux: py37-test
-    - linux: py38-test
-    - linux: py38-test-dev
-    - macos: py36-test
-      posargs: --openmp-expected=False
-    - macos: py38-test-dev
-      posargs: --openmp-expected=False
-    - windows: py36-test
-    - windows: py38-test-dev
-    # Test with more compilers, for the OpenMP helpers
-    - macos: py38-test-osxgcc-conda
-    - macos: py38-test-osxclang-conda
-    - linux: py38-test-linuxgcc-conda
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/docs/using.rst 
new/extension-helpers-1.0.0/docs/using.rst
--- old/extension-helpers-0.1/docs/using.rst    2019-12-18 13:27:20.000000000 
+0100
+++ new/extension-helpers-1.0.0/docs/using.rst  2022-03-16 22:44:31.000000000 
+0100
@@ -39,3 +39,9 @@
 Note that if you use this, extension-helpers will also we create a
 ``packagename.compiler_version`` submodule that contain information about the
 compilers used.
+
+It is also possible to enable extension-helpers in ``setup.cfg`` instead of
+``setup.py`` by adding the following configuration to the ``setup.cfg`` file::
+
+    [extension-helpers]
+    use_extension_helpers = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/extension_helpers/__init__.py 
new/extension-helpers-1.0.0/extension_helpers/__init__.py
--- old/extension-helpers-0.1/extension_helpers/__init__.py     2019-12-18 
13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/__init__.py   2022-03-16 
22:44:31.000000000 +0100
@@ -1,5 +1,21 @@
-from ._distutils_helpers import get_compiler
+from configparser import ConfigParser
+
 from ._openmp_helpers import add_openmp_flags_if_available
-from ._setup_helpers import get_extensions, pkg_config
+from ._setup_helpers import get_compiler, get_extensions, pkg_config
 from ._utils import import_file, write_if_different
 from .version import version as __version__
+
+
+def _finalize_distribution_hook(distribution):
+    """
+    Entry point for setuptools which allows extension-helpers to be enabled
+    from setup.cfg without the need for setup.py.
+    """
+    config_files = distribution.find_config_files()
+    if len(config_files) == 0:
+        return
+    cfg = ConfigParser()
+    cfg.read(config_files[0])
+    if (cfg.has_option("extension-helpers", "use_extension_helpers") and
+            cfg.get("extension-helpers", "use_extension_helpers").lower() == 
'true'):
+        distribution.ext_modules = get_extensions()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/_distutils_helpers.py 
new/extension-helpers-1.0.0/extension_helpers/_distutils_helpers.py
--- old/extension-helpers-0.1/extension_helpers/_distutils_helpers.py   
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/_distutils_helpers.py 
1970-01-01 01:00:00.000000000 +0100
@@ -1,115 +0,0 @@
-"""
-This module contains various utilities for introspecting the distutils
-module and the setup process.
-
-Some of these utilities require the
-`extension_helpers.setup_helpers.register_commands` function to be called 
first,
-as it will affect introspection of setuptools command-line arguments.  Other
-utilities in this module do not have that restriction.
-"""
-
-import os
-import sys
-from distutils import ccompiler
-from distutils.dist import Distribution
-from distutils.errors import DistutilsError
-
-from ._utils import silence
-
-__all__ = ['get_compiler']
-
-
-def get_dummy_distribution():
-    """
-    Returns a distutils Distribution object used to instrument the setup
-    environment before calling the actual setup() function.
-    """
-
-    # Pre-parse the Distutils command-line options and config files to if
-    # the option is set.
-    dist = Distribution({'script_name': os.path.basename(sys.argv[0]),
-                         'script_args': sys.argv[1:]})
-
-    with silence():
-        try:
-            dist.parse_config_files()
-            dist.parse_command_line()
-        except (DistutilsError, AttributeError, SystemExit):
-            # Let distutils handle DistutilsErrors itself AttributeErrors can
-            # get raise for ./setup.py --help SystemExit can be raised if a
-            # display option was used, for example
-            pass
-
-    return dist
-
-
-def get_main_package_directory(distribution):
-    """
-    Given a Distribution object, return the main package directory.
-    """
-    return min(distribution.packages, key=len).replace('.', os.sep)
-
-
-def get_distutils_option(option, commands):
-    """ Returns the value of the given distutils option.
-
-    Parameters
-    ----------
-    option : str
-        The name of the option
-
-    commands : list of str
-        The list of commands on which this option is available
-
-    Returns
-    -------
-    val : str or None
-        the value of the given distutils option. If the option is not set,
-        returns None.
-    """
-
-    dist = get_dummy_distribution()
-
-    for cmd in commands:
-        cmd_opts = dist.command_options.get(cmd)
-        if cmd_opts is not None and option in cmd_opts:
-            return cmd_opts[option][1]
-    else:
-        return None
-
-
-def get_distutils_build_option(option):
-    """ Returns the value of the given distutils build option.
-
-    Parameters
-    ----------
-    option : str
-        The name of the option
-
-    Returns
-    -------
-    val : str or None
-        The value of the given distutils build option. If the option
-        is not set, returns None.
-    """
-    return get_distutils_option(option, ['build', 'build_ext', 'build_clib'])
-
-
-def get_compiler():
-    """
-    Determines the compiler that will be used to build extension modules.
-
-    Returns
-    -------
-    compiler : str
-        The compiler option specified for the build, build_ext, or build_clib
-        command; or the default compiler for the platform if none was
-        specified.
-
-    """
-
-    compiler = get_distutils_build_option('compiler')
-    if compiler is None:
-        return ccompiler.get_default_compiler()
-
-    return compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/_openmp_helpers.py 
new/extension-helpers-1.0.0/extension_helpers/_openmp_helpers.py
--- old/extension-helpers-0.1/extension_helpers/_openmp_helpers.py      
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/_openmp_helpers.py    
2022-03-16 22:44:31.000000000 +0100
@@ -15,25 +15,27 @@
 import sys
 import glob
 import time
+import logging
 import datetime
 import tempfile
 import subprocess
-from distutils import log
-from distutils.errors import LinkError, CompileError
-from distutils.ccompiler import new_compiler
-from distutils.sysconfig import get_config_var, customize_compiler
 
-from ._distutils_helpers import get_compiler
+from setuptools.command.build_ext import customize_compiler, get_config_var, 
new_compiler
+
+from ._setup_helpers import get_compiler
 
 __all__ = ['add_openmp_flags_if_available']
 
 try:
     # Check if this has already been instantiated, only set the default once.
-    _ASTROPY_DISABLE_SETUP_WITH_OPENMP_
+    _EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_
 except NameError:
     import builtins
+
     # It hasn't, so do so.
-    builtins._ASTROPY_DISABLE_SETUP_WITH_OPENMP_ = False
+    builtins._EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_ = False
+
+log = logging.getLogger(__name__)
 
 CCODE = """
 #include <omp.h>
@@ -173,48 +175,48 @@
     compile_flags = openmp_flags.get('compiler_flags')
     link_flags = openmp_flags.get('linker_flags')
 
-    tmp_dir = tempfile.mkdtemp()
-    start_dir = os.path.abspath('.')
+    with tempfile.TemporaryDirectory() as tmp_dir:
+        start_dir = os.path.abspath('.')
 
-    try:
-        os.chdir(tmp_dir)
+        try:
+            os.chdir(tmp_dir)
 
-        # Write test program
-        with open('test_openmp.c', 'w') as f:
-            f.write(CCODE)
-
-        os.mkdir('objects')
-
-        # Compile, test program
-        ccompiler.compile(['test_openmp.c'], output_dir='objects',
-                          extra_postargs=compile_flags)
-
-        # Link test program
-        objects = glob.glob(os.path.join('objects', '*' + 
ccompiler.obj_extension))
-        ccompiler.link_executable(objects, 'test_openmp',
-                                  extra_postargs=link_flags)
-
-        # Run test program
-        output = subprocess.check_output('./test_openmp')
-        output = output.decode(sys.stdout.encoding or 'utf-8').splitlines()
-
-        if 'nthreads=' in output[0]:
-            nthreads = int(output[0].strip().split('=')[1])
-            if len(output) == nthreads:
-                is_openmp_supported = True
+            # Write test program
+            with open('test_openmp.c', 'w') as f:
+                f.write(CCODE)
+
+            os.mkdir('objects')
+
+            # Compile, test program
+            ccompiler.compile(['test_openmp.c'], output_dir='objects',
+                              extra_postargs=compile_flags)
+
+            # Link test program
+            objects = glob.glob(os.path.join('objects', '*' + 
ccompiler.obj_extension))
+            ccompiler.link_executable(objects, 'test_openmp',
+                                      extra_postargs=link_flags)
+
+            # Run test program
+            output = subprocess.check_output('./test_openmp')
+            output = output.decode(sys.stdout.encoding or 'utf-8').splitlines()
+
+            if 'nthreads=' in output[0]:
+                nthreads = int(output[0].strip().split('=')[1])
+                if len(output) == nthreads:
+                    is_openmp_supported = True
+                else:
+                    log.warn("Unexpected number of lines from output of test 
OpenMP "
+                             "program (output was {0})".format(output))
+                    is_openmp_supported = False
             else:
-                log.warn("Unexpected number of lines from output of test 
OpenMP "
+                log.warn("Unexpected output from test OpenMP "
                          "program (output was {0})".format(output))
                 is_openmp_supported = False
-        else:
-            log.warn("Unexpected output from test OpenMP "
-                     "program (output was {0})".format(output))
+        except Exception:
             is_openmp_supported = False
-    except (CompileError, LinkError, subprocess.CalledProcessError):
-        is_openmp_supported = False
 
-    finally:
-        os.chdir(start_dir)
+        finally:
+            os.chdir(start_dir)
 
     return is_openmp_supported
 
@@ -223,9 +225,10 @@
     """
     Determine whether the build compiler has OpenMP support.
     """
-    log_threshold = log.set_threshold(log.FATAL)
+    log_threshold = log.level
+    log.setLevel('CRITICAL')
     ret = check_openmp_support()
-    log.set_threshold(log_threshold)
+    log.setLevel(log_threshold)
     return ret
 
 
@@ -237,7 +240,7 @@
     Returns `True` if the flags were added, `False` otherwise.
     """
 
-    if _ASTROPY_DISABLE_SETUP_WITH_OPENMP_:
+    if _EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_:
         log.info("OpenMP support has been explicitly disabled.")
         return False
 
@@ -258,7 +261,7 @@
 
 
 _IS_OPENMP_ENABLED_SRC = """
-# Autogenerated by {packagetitle}'s setup.py on {timestamp!s}
+# Autogenerated by {packagename}'s setup.py on {timestamp!s}
 
 def is_openmp_enabled():
     \"\"\"
@@ -275,22 +278,17 @@
     OpenMP support.
     """
 
-    if packagename.lower() == 'astropy':
-        packagetitle = 'Astropy'
-    else:
-        packagetitle = packagename
-
     epoch = int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))
     timestamp = datetime.datetime.utcfromtimestamp(epoch)
 
     if disable_openmp is not None:
         import builtins
-        builtins._ASTROPY_DISABLE_SETUP_WITH_OPENMP_ = disable_openmp
-    if _ASTROPY_DISABLE_SETUP_WITH_OPENMP_:
+        builtins._EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_ = disable_openmp
+    if _EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_:
         log.info("OpenMP support has been explicitly disabled.")
-    openmp_support = False if _ASTROPY_DISABLE_SETUP_WITH_OPENMP_ else 
is_openmp_supported()
+    openmp_support = False if _EXTENSION_HELPERS_DISABLE_OPENMP_SETUP_ else 
is_openmp_supported()
 
-    src = _IS_OPENMP_ENABLED_SRC.format(packagetitle=packagetitle,
+    src = _IS_OPENMP_ENABLED_SRC.format(packagename=packagename,
                                         timestamp=timestamp,
                                         return_bool=openmp_support)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/_setup_helpers.py 
new/extension-helpers-1.0.0/extension_helpers/_setup_helpers.py
--- old/extension-helpers-0.1/extension_helpers/_setup_helpers.py       
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/_setup_helpers.py     
2022-03-16 22:44:31.000000000 +0100
@@ -7,18 +7,33 @@
 import os
 import sys
 import shutil
+import logging
 import subprocess
-from distutils import log
 from collections import defaultdict
-from distutils.core import Extension
 
-from setuptools import find_packages
-from setuptools.config import read_configuration
+from setuptools import Extension, find_packages
+from setuptools.command.build_ext import new_compiler
 
-from ._distutils_helpers import get_compiler
 from ._utils import import_file, walk_skip_hidden
 
-__all__ = ['get_extensions', 'pkg_config']
+__all__ = ['get_compiler', 'get_extensions', 'pkg_config']
+
+log = logging.getLogger(__name__)
+
+
+def get_compiler():
+    """
+    Determines the compiler that will be used to build extension modules.
+
+    Returns
+    -------
+    compiler : str
+        The compiler option specified for the build, build_ext, or build_clib
+        command; or the default compiler for the platform if none was
+        specified.
+
+    """
+    return new_compiler().compiler_type
 
 
 def get_extensions(srcdir='.'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/extension_helpers/_utils.py 
new/extension-helpers-1.0.0/extension_helpers/_utils.py
--- old/extension-helpers-0.1/extension_helpers/_utils.py       2019-12-18 
13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/_utils.py     2022-03-16 
22:44:31.000000000 +0100
@@ -9,64 +9,6 @@
 __all__ = ['write_if_different', 'import_file']
 
 
-# Note: The following Warning subclasses are simply copies of the Warnings in
-# Astropy of the same names.
-class AstropyWarning(Warning):
-    """
-    The base warning class from which all Astropy warnings should inherit.
-
-    Any warning inheriting from this class is handled by the Astropy logger.
-    """
-
-
-class AstropyDeprecationWarning(AstropyWarning):
-    """
-    A warning class to indicate a deprecated feature.
-    """
-
-
-class AstropyPendingDeprecationWarning(PendingDeprecationWarning,
-                                       AstropyWarning):
-    """
-    A warning class to indicate a soon-to-be deprecated feature.
-    """
-
-
-class _DummyFile(object):
-    """A noop writeable object."""
-
-    errors = ''
-
-    def write(self, s):
-        pass
-
-    def flush(self):
-        pass
-
-
-@contextlib.contextmanager
-def silence():
-    """A context manager that silences sys.stdout and sys.stderr."""
-
-    old_stdout = sys.stdout
-    old_stderr = sys.stderr
-    sys.stdout = _DummyFile()
-    sys.stderr = _DummyFile()
-    exception_occurred = False
-    try:
-        yield
-    except:  # noqa
-        exception_occurred = True
-        # Go ahead and clean up so that exception handling can work normally
-        sys.stdout = old_stdout
-        sys.stderr = old_stderr
-        raise
-
-    if not exception_occurred:
-        sys.stdout = old_stdout
-        sys.stderr = old_stderr
-
-
 if sys.platform == 'win32':
     import ctypes
 
@@ -175,7 +117,7 @@
     generated from the filename.
     """
     # Specifying a traditional dot-separated fully qualified name here
-    # results in a number of "Parent module 'astropy' not found while
+    # results in a number of "Parent module '...' not found while
     # handling absolute import" warnings.  Using the same name, the
     # namespaces of the modules get merged together.  So, this
     # generates an underscore-separated name which is more likely to
@@ -185,7 +127,7 @@
 
     if name is None:
         basename = os.path.splitext(filename)[0]
-        name = '_'.join(os.path.relpath(basename).split(os.sep)[1:])
+        name = '_'.join(os.path.abspath(basename).split(os.sep)[1:])
 
     if not os.path.exists(filename):
         raise ImportError('Could not import file {0}'.format(filename))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/extension_helpers/conftest.py 
new/extension-helpers-1.0.0/extension_helpers/conftest.py
--- old/extension-helpers-0.1/extension_helpers/conftest.py     2019-12-16 
21:50:17.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/conftest.py   2022-03-16 
22:44:31.000000000 +0100
@@ -9,13 +9,16 @@
 
 try:
     from coverage import CoverageData
+    from coverage import __version__ as coverage_version
 except ImportError:
     HAS_COVERAGE = False
+    CoverageData = None
 else:
-    HAS_COVERAGE = True
+    # Set to the major version number
+    HAS_COVERAGE = int(coverage_version.split('.')[0])
 
-if HAS_COVERAGE:
-    SUBPROCESS_COVERAGE = []
+
+SUBPROCESS_COVERAGE = []
 
 
 def pytest_configure(config):
@@ -27,9 +30,6 @@
 
     if HAS_COVERAGE:
 
-        # We create an empty coverage data object
-        combined_cdata = CoverageData()
-
         # Add all files from extension_helpers to make sure we compute the 
total
         # coverage, not just the coverage of the files that have non-zero
         # coverage.
@@ -52,6 +52,14 @@
                 if os.path.exists(short_filename):
                     
lines[os.path.abspath(short_filename)].extend(cdata.lines(filename))
 
-        combined_cdata.add_lines(lines)
-
-        combined_cdata.write_file('.coverage.subprocess')
+        if HAS_COVERAGE >= 5:
+            # Support coverage<5 and >=5; see
+            # https://github.com/astropy/extension-helpers/issues/24
+            # We create an empty coverage data object
+            combined_cdata = CoverageData(suffix='subprocess')
+            combined_cdata.add_lines(lines)
+            combined_cdata.write()
+        else:
+            combined_cdata = CoverageData()
+            combined_cdata.add_lines(lines)
+            combined_cdata.write_file('.coverage.subprocess')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/tests/__init__.py 
new/extension-helpers-1.0.0/extension_helpers/tests/__init__.py
--- old/extension-helpers-0.1/extension_helpers/tests/__init__.py       
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/tests/__init__.py     
2022-03-16 22:44:31.000000000 +0100
@@ -4,13 +4,7 @@
 
 import pytest
 
-try:
-    from coverage import CoverageData
-except ImportError:
-    HAS_COVERAGE = False
-else:
-    HAS_COVERAGE = True
-    from ..conftest import SUBPROCESS_COVERAGE
+from ..conftest import HAS_COVERAGE, SUBPROCESS_COVERAGE, CoverageData
 
 PACKAGE_DIR = os.path.dirname(__file__)
 
@@ -65,7 +59,13 @@
         stdout, stderr = p.communicate()
 
         cdata = CoverageData()
-        cdata.read_file(os.path.join(path, '.coverage'))
+        if HAS_COVERAGE >= 5:
+            # Support coverage<5 and >=5; see
+            # https://github.com/astropy/extension-helpers/issues/24
+            cdata.read()
+        else:
+            cdata.read_file(os.path.join(path, '.coverage'))
+
         SUBPROCESS_COVERAGE.append(cdata)
 
     else:
@@ -83,18 +83,6 @@
         raise SystemExit(p.returncode)
 
 
-@pytest.fixture(scope='function', autouse=True)
-def reset_distutils_log():
-    """
-    This is a setup/teardown fixture that ensures the log-level of the
-    distutils log is always set to a default of WARN, since different
-    settings could affect tests that check the contents of stdout.
-    """
-
-    from distutils import log
-    log.set_threshold(log.WARN)
-
-
 TEST_PACKAGE_SETUP_PY = """\
 #!/usr/bin/env python
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/tests/test_openmp_helpers.py 
new/extension-helpers-1.0.0/extension_helpers/tests/test_openmp_helpers.py
--- old/extension-helpers-0.1/extension_helpers/tests/test_openmp_helpers.py    
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/tests/test_openmp_helpers.py  
2022-03-16 22:44:31.000000000 +0100
@@ -1,20 +1,24 @@
+
 import os
 import sys
 import types
 from copy import deepcopy
 from importlib import machinery
-from distutils.core import Extension
 
 import pytest
+from setuptools import Extension
 
 from .._openmp_helpers import add_openmp_flags_if_available, 
generate_openmp_enabled_py
 
 
 @pytest.fixture
 def openmp_expected(request):
-    openmp_expected = request.config.getoption("--openmp-expected")
-    if openmp_expected is not None:
-        return openmp_expected.lower() == 'true'
+    try:
+        openmp_expected = request.config.getoption("--openmp-expected")
+        if openmp_expected is not None:
+            return openmp_expected.lower() == 'true'
+    except ValueError:
+        return None
 
 
 def test_add_openmp_flags_if_available(openmp_expected):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/tests/test_setup_helpers.py 
new/extension-helpers-1.0.0/extension_helpers/tests/test_setup_helpers.py
--- old/extension-helpers-0.1/extension_helpers/tests/test_setup_helpers.py     
2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/tests/test_setup_helpers.py   
2022-03-16 22:44:31.000000000 +0100
@@ -1,12 +1,13 @@
 import os
 import sys
+import uuid
 import importlib
+import subprocess
 from textwrap import dedent
 
 import pytest
 
-from .._setup_helpers import get_extensions
-from . import reset_distutils_log  # noqa
+from .._setup_helpers import get_compiler, get_extensions
 from . import cleanup_import, run_setup
 
 extension_helpers_PATH = 
os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))  # noqa
@@ -20,19 +21,26 @@
         os.remove(tmpfile)
 
 
+POSSIBLE_COMPILERS = ['unix', 'msvc', 'bcpp', 'cygwin', 'mingw32']
+
+
+def test_get_compiler():
+    assert get_compiler() in POSSIBLE_COMPILERS
+
+
 def _extension_test_package(tmpdir, request, extension_type='c',
                             include_numpy=False):
     """Creates a simple test package with an extension module."""
 
     test_pkg = tmpdir.mkdir('test_pkg')
-    test_pkg.mkdir('apyhtest_eva').ensure('__init__.py')
+    test_pkg.mkdir('helpers_test_package').ensure('__init__.py')
 
     # TODO: It might be later worth making this particular test package into a
     # reusable fixture for other build_ext tests
 
     if extension_type in ('c', 'both'):
         # A minimal C extension for testing
-        test_pkg.join('apyhtest_eva', 'unit01.c').write(dedent("""\
+        test_pkg.join('helpers_test_package', 'unit01.c').write(dedent("""\
             #include <Python.h>
 
             static struct PyModuleDef moduledef = {
@@ -50,7 +58,7 @@
 
     if extension_type in ('pyx', 'both'):
         # A minimal Cython extension for testing
-        test_pkg.join('apyhtest_eva', 'unit02.pyx').write(dedent("""\
+        test_pkg.join('helpers_test_package', 'unit02.pyx').write(dedent("""\
             print("Hello cruel angel.")
         """))
 
@@ -64,11 +72,13 @@
     include_dirs = ['numpy'] if include_numpy else []
 
     extensions_list = [
-        "Extension('apyhtest_eva.{0}', [join('apyhtest_eva', '{1}')], 
include_dirs={2})".format(
+        "Extension('helpers_test_package.{0}', "
+        "[join('helpers_test_package', '{1}')], "
+        "include_dirs={2})".format(
             os.path.splitext(extension)[0], extension, include_dirs)
         for extension in extensions]
 
-    test_pkg.join('apyhtest_eva', 'setup_package.py').write(dedent("""\
+    test_pkg.join('helpers_test_package', 'setup_package.py').write(dedent("""\
         from setuptools import Extension
         from os.path import join
         def get_extensions():
@@ -83,7 +93,7 @@
         from extension_helpers import get_extensions
 
         setup(
-            name='apyhtest_eva',
+            name='helpers_test_package',
             version='0.1',
             packages=find_packages(),
             ext_modules=get_extensions()
@@ -96,7 +106,7 @@
     sys.path.insert(0, '')
 
     def finalize():
-        cleanup_import('apyhtest_eva')
+        cleanup_import('helpers_test_package')
 
     request.addfinalizer(finalize)
 
@@ -123,7 +133,7 @@
 
 def test_cython_autoextensions(tmpdir):
     """
-    Regression test for https://github.com/astropy/extension-helpers/pull/19
+    Regression test for https://github.com/astropy/astropy-helpers/pull/19
 
     Ensures that Cython extensions in sub-packages are discovered and built
     only once.
@@ -163,10 +173,107 @@
                    '--record={0}'.format(install_temp.join('record.txt'))])
 
     with install_temp.as_cwd():
-        import apyhtest_eva
-        # Make sure we imported the apyhtest_eva package from the correct place
-        dirname = os.path.abspath(os.path.dirname(apyhtest_eva.__file__))
-        assert dirname == str(install_temp.join('apyhtest_eva'))
+        import helpers_test_package
+
+        # Make sure we imported the helpers_test_package package from the 
correct place
+        dirname = 
os.path.abspath(os.path.dirname(helpers_test_package.__file__))
+        assert dirname == str(install_temp.join('helpers_test_package'))
+
+        import helpers_test_package.compiler_version
+        assert helpers_test_package.compiler_version != 'unknown'
+
+
+@pytest.mark.parametrize('use_extension_helpers', [None, False, True])
+def test_no_setup_py(tmpdir, use_extension_helpers):
+    """
+    Test that makes sure that extension-helpers can be enabled without a
+    setup.py file.
+    """
+
+    package_name = 'helpers_test_package_' + str(uuid.uuid4()).replace('-', 
'_')
+
+    test_pkg = tmpdir.mkdir('test_pkg')
+    test_pkg.mkdir(package_name).ensure('__init__.py')
+
+    simple_c = test_pkg.join(package_name, 'simple.c')
+
+    simple_c.write(dedent("""\
+        #include <Python.h>
+
+        static struct PyModuleDef moduledef = {
+            PyModuleDef_HEAD_INIT,
+            "simple",
+            NULL,
+            -1,
+            NULL
+        };
+        PyMODINIT_FUNC
+        PyInit_simple(void) {
+            return PyModule_Create(&moduledef);
+        }
+    """))
+
+    test_pkg.join(package_name, 'setup_package.py').write(dedent(f"""\
+        from setuptools import Extension
+        from os.path import join
+        def get_extensions():
+            return [Extension('{package_name}.simple', [join('{package_name}', 
'simple.c')])]
+        """))
+
+    if use_extension_helpers is None:
+        test_pkg.join('setup.cfg').write(dedent(f"""\
+            [metadata]
+            name = {package_name}
+            version = 0.1
+
+            [options]
+            packages = find:
+        """))
+    else:
+        test_pkg.join('setup.cfg').write(dedent(f"""\
+            [metadata]
+            name = {package_name}
+            version = 0.1
+
+            [options]
+            packages = find:
+
+            [extension-helpers]
+            use_extension_helpers = {str(use_extension_helpers).lower()}
+        """))
+
+    test_pkg.join('pyproject.toml').write(dedent("""\
+        [build-system]
+        requires = ["setuptools>=43.0.0",
+                    "wheel"]
+        build-backend = 'setuptools.build_meta'
+    """))
+
+    install_temp = test_pkg.mkdir('install_temp')
+
+    with test_pkg.as_cwd():
+        # NOTE: we disable build isolation as we need to pick up the current
+        # developer version of extension-helpers
+        subprocess.call([sys.executable, '-m', 'pip', 'install', '.',
+                         '--no-build-isolation',
+                         f'--target={install_temp}'])
+
+    if '' in sys.path:
+        sys.path.remove('')
+
+    sys.path.insert(0, '')
+
+    with install_temp.as_cwd():
+
+        importlib.import_module(package_name)
 
-        import apyhtest_eva.compiler_version
-        assert apyhtest_eva.compiler_version != 'unknown'
+        if use_extension_helpers:
+            compiler_version_mod = importlib.import_module(package_name + 
'.compiler_version')
+            assert compiler_version_mod.compiler != 'unknown'
+        else:
+            try:
+                importlib.import_module(package_name + '.compiler_version')
+            except ImportError:
+                pass
+            else:
+                raise AssertionError(package_name + '.compiler_version should 
not exist')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers/tests/test_utils.py 
new/extension-helpers-1.0.0/extension_helpers/tests/test_utils.py
--- old/extension-helpers-0.1/extension_helpers/tests/test_utils.py     
1970-01-01 01:00:00.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/tests/test_utils.py   
2022-03-16 22:44:31.000000000 +0100
@@ -0,0 +1,26 @@
+import os
+import time
+
+from .._utils import import_file, write_if_different
+
+
+def test_import_file(tmpdir):
+    filename = str(tmpdir / 'spam.py')
+    with open(filename, 'w') as f:
+        f.write('magic = 12345')
+    module = import_file(filename)
+    assert module.magic == 12345
+
+
+def test_write_if_different(tmpdir):
+    filename = str(tmpdir / 'test.txt')
+    write_if_different(filename, b'abc')
+    time1 = os.path.getmtime(filename)
+    time.sleep(0.01)
+    write_if_different(filename, b'abc')
+    time2 = os.path.getmtime(filename)
+    assert time2 == time1
+    time.sleep(0.01)
+    write_if_different(filename, b'abcd')
+    time3 = os.path.getmtime(filename)
+    assert time3 > time1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/extension_helpers/version.py 
new/extension-helpers-1.0.0/extension_helpers/version.py
--- old/extension-helpers-0.1/extension_helpers/version.py      2019-12-18 
13:29:04.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers/version.py    2022-03-16 
22:44:50.000000000 +0100
@@ -1,4 +1,5 @@
 # coding: utf-8
 # file generated by setuptools_scm
 # don't change, don't track in version control
-version = '0.1'
+version = '1.0.0'
+version_tuple = (1, 0, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers.egg-info/PKG-INFO 
new/extension-helpers-1.0.0/extension_helpers.egg-info/PKG-INFO
--- old/extension-helpers-0.1/extension_helpers.egg-info/PKG-INFO       
2019-12-18 13:29:04.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers.egg-info/PKG-INFO     
2022-03-16 22:44:51.000000000 +0100
@@ -1,27 +1,11 @@
 Metadata-Version: 2.1
 Name: extension-helpers
-Version: 0.1
-Summary: Utilities for building and installing packages in the Astropy 
ecosystem
-Home-page: https://github.com/astropy/astropy-helpers
+Version: 1.0.0
+Summary: Utilities for building and installing packages with compiled 
extensions
+Home-page: https://github.com/astropy/extension-helpers
 Author: The Astropy Developers
 Author-email: astropy.t...@gmail.com
 License: BSD 3-Clause License
-Description: extension-helpers
-        =================
-        
-        .. image:: 
https://dev.azure.com/astropy-project/extension-helpers/_apis/build/status/astropy.extension-helpers?branchName=master
-          :target: 
https://dev.azure.com/astropy-project/extension-helpers/_build/latest?definitionId=4&branchName=master
-        
-        .. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/master/graph/badge.svg
-          :target: https://codecov.io/gh/astropy/extension-helpers
-        
-        The **extension-helpers** package includes convenience helpers to 
assist with
-        building Python packages with compiled C/Cython extensions. It is 
developed by
-        the Astropy project but is intended to be general and usable by any 
Python
-        package.
-        
-        For more information, see the documentation at 
http://extension-helpers.readthedocs.io
-        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -37,3 +21,26 @@
 Requires-Python: >=3.6
 Provides-Extra: test
 Provides-Extra: docs
+License-File: LICENSE.rst
+
+extension-helpers
+=================
+
+.. image:: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml/badge.svg
+  :target: 
https://github.com/astropy/extension-helpers/actions/workflows/main.yml
+
+.. image:: 
https://codecov.io/gh/astropy/extension-helpers/branch/main/graph/badge.svg
+  :target: https://codecov.io/gh/astropy/extension-helpers
+
+.. image:: 
https://readthedocs.org/projects/extension-helpers/badge/?version=latest
+  :target: https://extension-helpers.readthedocs.io/en/latest/?badge=latest
+  :alt: Documentation Status
+
+The **extension-helpers** package includes convenience helpers to assist with
+building Python packages with compiled C/Cython extensions. It is developed by
+the Astropy project but is intended to be general and usable by any Python
+package.
+
+For more information, see the documentation at 
http://extension-helpers.readthedocs.io
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers.egg-info/SOURCES.txt 
new/extension-helpers-1.0.0/extension_helpers.egg-info/SOURCES.txt
--- old/extension-helpers-0.1/extension_helpers.egg-info/SOURCES.txt    
2019-12-18 13:29:05.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers.egg-info/SOURCES.txt  
2022-03-16 22:44:51.000000000 +0100
@@ -1,4 +1,3 @@
-.coveragerc
 .gitignore
 .readthedocs.yml
 CHANGES.rst
@@ -6,13 +5,11 @@
 LICENSE.rst
 MANIFEST.in
 README.rst
-azure-pipelines.yml
 conftest.py
 pyproject.toml
 setup.cfg
-setup.py
 tox.ini
-.circleci/config.yml
+.github/workflows/main.yml
 docs/Makefile
 docs/api.rst
 docs/conf.py
@@ -21,7 +18,6 @@
 docs/openmp.rst
 docs/using.rst
 extension_helpers/__init__.py
-extension_helpers/_distutils_helpers.py
 extension_helpers/_openmp_helpers.py
 extension_helpers/_setup_helpers.py
 extension_helpers/_utils.py
@@ -30,6 +26,7 @@
 extension_helpers.egg-info/PKG-INFO
 extension_helpers.egg-info/SOURCES.txt
 extension_helpers.egg-info/dependency_links.txt
+extension_helpers.egg-info/entry_points.txt
 extension_helpers.egg-info/not-zip-safe
 extension_helpers.egg-info/requires.txt
 extension_helpers.egg-info/top_level.txt
@@ -37,4 +34,5 @@
 extension_helpers/tests/__init__.py
 extension_helpers/tests/test_openmp_helpers.py
 extension_helpers/tests/test_setup_helpers.py
+extension_helpers/tests/test_utils.py
 licenses/LICENSE_ASTROSCRAPPY.rst
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers.egg-info/entry_points.txt 
new/extension-helpers-1.0.0/extension_helpers.egg-info/entry_points.txt
--- old/extension-helpers-0.1/extension_helpers.egg-info/entry_points.txt       
1970-01-01 01:00:00.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers.egg-info/entry_points.txt     
2022-03-16 22:44:51.000000000 +0100
@@ -0,0 +1,2 @@
+[setuptools.finalize_distribution_options]
+extension_helpers_get_extensions = 
extension_helpers:_finalize_distribution_hook
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/extension-helpers-0.1/extension_helpers.egg-info/requires.txt 
new/extension-helpers-1.0.0/extension_helpers.egg-info/requires.txt
--- old/extension-helpers-0.1/extension_helpers.egg-info/requires.txt   
2019-12-18 13:29:04.000000000 +0100
+++ new/extension-helpers-1.0.0/extension_helpers.egg-info/requires.txt 
2022-03-16 22:44:51.000000000 +0100
@@ -1,8 +1,11 @@
+setuptools>=40.2
 
 [docs]
-sphinx-astropy
+sphinx
+sphinx-automodapi
 
 [test]
-pytest-astropy
+wheel
+pytest
 pytest-cov
-coverage<5
+coverage>=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/pyproject.toml 
new/extension-helpers-1.0.0/pyproject.toml
--- old/extension-helpers-0.1/pyproject.toml    2019-12-18 13:27:20.000000000 
+0100
+++ new/extension-helpers-1.0.0/pyproject.toml  2022-03-16 22:44:31.000000000 
+0100
@@ -1,5 +1,8 @@
 [build-system]
-requires = ["setuptools",
-            "setuptools_scm",
+requires = ["setuptools>=43.0.0",
+            "setuptools_scm>=6.2",
             "wheel"]
 build-backend = 'setuptools.build_meta'
+
+[tool.setuptools_scm]
+write_to = "extension_helpers/version.py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/setup.cfg 
new/extension-helpers-1.0.0/setup.cfg
--- old/extension-helpers-0.1/setup.cfg 2019-12-18 13:29:05.166231600 +0100
+++ new/extension-helpers-1.0.0/setup.cfg       2022-03-16 22:44:51.766397000 
+0100
@@ -5,8 +5,8 @@
 author_email = astropy.t...@gmail.com
 license = BSD 3-Clause License
 license_file = LICENSE.rst
-url = https://github.com/astropy/astropy-helpers
-description = Utilities for building and installing packages in the Astropy 
ecosystem
+url = https://github.com/astropy/extension-helpers
+description = Utilities for building and installing packages with compiled 
extensions
 long_description = file: README.rst
 classifiers = 
        Development Status :: 5 - Production/Stable
@@ -24,17 +24,25 @@
 zip_safe = False
 python_requires = >=3.6
 packages = find:
+install_requires = 
+       setuptools>=40.2
 
 [options.package_data]
 extension_helpers = src/compiler.c
 
+[options.entry_points]
+setuptools.finalize_distribution_options = 
+       extension_helpers_get_extensions = 
extension_helpers:_finalize_distribution_hook
+
 [options.extras_require]
 test = 
-       pytest-astropy
+       wheel
+       pytest
        pytest-cov
-       coverage<5
+       coverage>=4
 docs = 
-       sphinx-astropy
+       sphinx
+       sphinx-automodapi
 
 [tool:pytest]
 norecursedirs = 
@@ -51,7 +59,27 @@
 multi_line_output = 0
 balanced_wrapping = True
 include_trailing_comma = false
-length_sort_stdlib = true
+length_sort = False
+length_sort_sections = stdlib
+
+[coverage:run]
+omit = 
+       extension_helpers/*/setup_package.py
+       extension_helpers/tests/*
+       extension_helpers/conftest.py
+       */extension_helpers/*/setup_package.py
+       */extension_helpers/tests/*
+       */extension_helpers/conftest.py
+
+[coverage:report]
+exclude_lines = 
+       pragma: no cover
+       except ImportError
+       raise AssertionError
+       raise NotImplementedError
+       def main\(.*\):
+       pragma: py{ignore_python_version}
+       def _ipython_key_completions_
 
 [egg_info]
 tag_build = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/setup.py 
new/extension-helpers-1.0.0/setup.py
--- old/extension-helpers-0.1/setup.py  2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/setup.py        1970-01-01 01:00:00.000000000 
+0100
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-# Licensed under a 3-clause BSD style license - see LICENSE.rst
-
-# NOTE: most of the configuration, including the version number,
-# is defined in setup.cfg
-
-import os
-import sys
-from distutils.version import LooseVersion
-
-import setuptools
-from setuptools import setup
-
-if LooseVersion(setuptools.__version__) < '30.3':
-    sys.stderr.write("ERROR: setuptools 30.3 or later is required by 
extension-helpers\n")
-    sys.exit(1)
-
-setup(use_scm_version={'write_to': os.path.join('extension_helpers', 
'version.py')})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/extension-helpers-0.1/tox.ini 
new/extension-helpers-1.0.0/tox.ini
--- old/extension-helpers-0.1/tox.ini   2019-12-18 13:27:20.000000000 +0100
+++ new/extension-helpers-1.0.0/tox.ini 2022-03-16 22:44:31.000000000 +0100
@@ -1,6 +1,6 @@
 [tox]
 envlist =
-    py{36,37,38}-test{,-conda}
+    py{36,37,38,39,310}-test{,-conda}
     build_docs
     pycodestyle
 requires =
@@ -9,10 +9,11 @@
 isolated_build = true
 
 [testenv]
+passenv =
+    CONDA_BUILD_SYSROOT
 setenv =
-    osxgcc: CC=gcc
-    osxclang: CC=clang-4.0
-    linuxgcc: CC=x86_64-conda_cos6-linux-gnu-gcc
+    osxclang: CC=clang-10
+    linuxgcc: CC=gcc_linux-64
 changedir =
     test: .tmp/{envname}
     build_docs: docs
@@ -22,26 +23,36 @@
     test: run tests with pytest
     build_docs: invoke sphinx-build to build the HTML docs
     all: run tests with all optional dependencies
-    dev: run tests with numpy and astropy dev versions
+    dev: run tests with setuptools dev versions
+    oldestdeps: run tests with oldest supported version of setuptools
+deps =
+    oldestdeps: setuptools==42.0
 conda_deps =
-    osxgcc: gcc
-    osxclang: clang_osx-64
+    osxclang: clang_osx-64==10
     osxclang: llvm-openmp
     linuxgcc: gcc_linux-64
 conda_channels =
-    osxgcc: conda-forge
+    linuxgcc: conda-forge
 extras =
     test: test
     build_docs: docs
     all: all
 commands =
-    dev: bash -ec "rm -rf setuptools_repo; git clone 
https://github.com/pypa/setuptools.git setuptools_repo && cd setuptools_repo && 
python bootstrap.py"
-    dev: pip install setuptools_repo/ --no-build-isolation
+    dev: pip install git+https://github.com/pypa/setuptools.git
     pip freeze
     test: python -c 'import setuptools; print(setuptools.__version__)'
-    test: pytest --pyargs extension_helpers {toxinidir}/docs --cov 
extension_helpers {posargs}
+    test: pytest --pyargs extension_helpers {toxinidir}/docs --cov 
extension_helpers --cov-config={toxinidir}/setup.cfg {posargs}
     build_docs: sphinx-build -W -b html . _build/html
 
+[testenv:py39-downstream]
+changedir = test: .tmp/downstream
+commands =
+    pip install setuptools setuptools_scm wheel cython numpy
+    pip install --no-build-isolation 
"git+https://github.com/astropy/astropy#egg=astropy[test]";
+    pytest --pyargs astropy
+    pip install --no-build-isolation 
"git+https://github.com/sunpy/sunpy#egg=sunpy[all,tests]";
+    pytest --pyargs sunpy
+
 [testenv:style]
 skip_install = true
 description = invoke pycodestyle and isort on package code
@@ -50,4 +61,4 @@
     isort
 commands =
     pycodestyle extension_helpers --max-line-length=100
-    isort -c -rc extension_helpers
+    isort -c extension_helpers

Reply via email to