From 421d1751d0a1883c387e4b0bec7167053346834c Mon Sep 17 00:00:00 2001 From: No Author Date: Fri, 28 Feb 2003 18:13:00 +0000 Subject: [PATCH 001/247] New repository initialized by cvs2svn. git-svn-id: svn+ssh://rubyforge.org/var/svn/rubygems/trunk@1 3d4018f9-ac1a-0410-99e9-8a154d859a19 From 566451360f78962ec0f74706d7a9012505f9a2e6 Mon Sep 17 00:00:00 2001 From: agustinhenze Date: Wed, 31 Jul 2013 04:08:08 -0700 Subject: [PATCH 002/247] Initial commit From c7ba5bd8afd74d04e82183d07f829439d2c74808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Suszy=C5=84ski=20Krzysztof?= Date: Tue, 13 Jun 2017 16:51:12 +0200 Subject: [PATCH 003/247] Initial commit From c83207d2c4f7b1fdc1e42d8af2756e73e953d312 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 18 Jan 2020 13:08:36 +0100 Subject: [PATCH 004/247] Initial commit From 1562549068b732f8ea08273473f561f268e3fd9e Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Tue, 22 Sep 2020 15:53:53 -0400 Subject: [PATCH 005/247] Initial commit Signed-off-by: Steven Esser --- .gitignore | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0abbef1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,69 @@ +# Python compiled files +*.py[cod] + +# virtualenv and other misc bits +*.egg-info +/dist +/build +/bin +/lib +/scripts +/Scripts +/Lib +/pip-selfcheck.json +/tmp +.Python +/include +/Include +/local +*/local/* +/local/ +/share/ +/tcl/ +/.eggs/ + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.cache +.coverage +.coverage.* +nosetests.xml +htmlcov + +# Translations +*.mo + +# IDEs +.project +.pydevproject +.idea +org.eclipse.core.resources.prefs +.vscode +.vs + +# Sphinx +docs/_build +docs/bin +docs/build +docs/include +docs/Lib +doc/pyvenv.cfg +pyvenv.cfg + +# Various junk and temp files +.DS_Store +*~ +.*.sw[po] +.build +.ve +*.bak +/.cache/ + +# pyenv +/.python-version +/man/ +/.pytest_cache/ +lib64 +tcl From 85d17806960eed420cf321f1683f8122f27344c2 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Tue, 22 Sep 2020 15:54:36 -0400 Subject: [PATCH 006/247] Add initial skeleton files This commit adds the inital skeleton files needed for a bare-bones python library. Includes a simple configure script and setup.py file Signed-off-by: Steven Esser --- README.rst | 3 + apache-2.0.LICENSE | 176 +++++++++++++++++++++++++++++++++++++++++ configure | 43 ++++++++++ requirements-tests.txt | 1 + setup.py | 124 +++++++++++++++++++++++++++++ 5 files changed, 347 insertions(+) create mode 100644 README.rst create mode 100644 apache-2.0.LICENSE create mode 100755 configure create mode 100644 requirements-tests.txt create mode 100644 setup.py diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..83376d5 --- /dev/null +++ b/README.rst @@ -0,0 +1,3 @@ +A Simple Python Project Skeleton +================================ +Note: configure script requires src/ directory to run correctly. diff --git a/apache-2.0.LICENSE b/apache-2.0.LICENSE new file mode 100644 index 0000000..d9a10c0 --- /dev/null +++ b/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/configure b/configure new file mode 100755 index 0000000..48c2628 --- /dev/null +++ b/configure @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# +# Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. +# + +set -e +#set -x + +# source this script for a basic setup and configuration for local development + +CONFIGURE_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + + +if [[ "$1" == "--clean" ]]; then + rm -rf "$CONFIGURE_ROOT_DIR/tmp" + exit +fi + + +if [[ "$PYTHON_EXE" == "" ]]; then + PYTHON_EXE=python3 +fi + + +function setup { + # create a virtualenv on Python + mkdir -p $CONFIGURE_ROOT_DIR/tmp + wget -O $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz + $PYTHON_EXE $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz $CONFIGURE_ROOT_DIR/tmp + source $CONFIGURE_ROOT_DIR/tmp/bin/activate + $CONFIGURE_ROOT_DIR/tmp/bin/pip install --upgrade pip virtualenv setuptools wheel +} + + +setup + +$CONFIGURE_ROOT_DIR/tmp/bin/pip install -r requirements-tests.txt -e . + +if [ -f "$CONFIGURE_ROOT_DIR/tmp/bin/activate" ]; then + source "$CONFIGURE_ROOT_DIR/tmp/bin/activate" +fi + +set +e diff --git a/requirements-tests.txt b/requirements-tests.txt new file mode 100644 index 0000000..e079f8a --- /dev/null +++ b/requirements-tests.txt @@ -0,0 +1 @@ +pytest diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..1c920c1 --- /dev/null +++ b/setup.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from __future__ import absolute_import +from __future__ import print_function + +import io +from glob import glob +from os.path import basename +from os.path import dirname +from os.path import join +from os.path import splitext +import re +import sys + +from setuptools import find_packages +from setuptools import setup + +version = '0.0.0' + +#### Small hack to force using a plain version number if the option +#### --plain-version is passed to setup.py + +USE_DEFAULT_VERSION = False +try: + sys.argv.remove('--use-default-version') + USE_DEFAULT_VERSION = True +except ValueError: + pass +#### + + +def get_version(default=version, template='{tag}.{distance}.{commit}{dirty}', + use_default=USE_DEFAULT_VERSION): + """ + Return a version collected from git if possible or fall back to an + hard-coded default version otherwise. If `use_default` is True, + always use the default version. + """ + if use_default: + return default + try: + tag, distance, commit, dirty = get_git_version() + if not distance and not dirty: + # we are from a clean Git tag: use tag + return tag + + distance = 'post{}'.format(distance) + if dirty: + time_stamp = get_time_stamp() + dirty = '.dirty.' + get_time_stamp() + else: + dirty = '' + + return template.format(**locals()) + except: + # no git data: use default version + return default + + +def get_time_stamp(): + """ + Return a numeric UTC time stamp without microseconds. + """ + from datetime import datetime + return (datetime.isoformat(datetime.utcnow()).split('.')[0] + .replace('T', '').replace(':', '').replace('-', '')) + + +def get_git_version(): + """ + Return version parts from Git or raise an exception. + """ + from subprocess import check_output, STDOUT + # this may fail with exceptions + cmd = 'git', 'describe', '--tags', '--long', '--dirty', + version = check_output(cmd, stderr=STDOUT).strip() + dirty = version.endswith('-dirty') + tag, distance, commit = version.split('-')[:3] + # lower tag and strip V prefix in tags + tag = tag.lower().lstrip('v ').strip() + # strip leading g from git describe commit + commit = commit.lstrip('g').strip() + return tag, int(distance), commit, dirty + + +def read(*names, **kwargs): + return io.open( + join(dirname(__file__), *names), + encoding=kwargs.get('encoding', 'utf8') + ).read() + + +setup( + name='', + version=get_version(), + license='Apache-2.0', + description='', + long_description=read('README.rst'), + author='nexB. Inc. and others', + author_email='info@aboutcode.org', + url='', + packages=find_packages('src'), + package_dir={'': 'src'}, + py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], + include_package_data=True, + zip_safe=False, + classifiers=[ + # complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Topic :: Software Development', + 'Topic :: Utilities', + ], + keywords=[ + ], + install_requires=[ + ] +) From aa71e06afd7f069202590cf532407f92fcafbf66 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Tue, 22 Sep 2020 16:21:54 -0400 Subject: [PATCH 007/247] Use pytest-xdist by default for threading support Signed-off-by: Steven Esser --- requirements-tests.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-tests.txt b/requirements-tests.txt index e079f8a..82d8d43 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -1 +1 @@ -pytest +pytest-xdist From 774dc7d6709119442e099c7b706ee3a9f89fa219 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Wed, 23 Sep 2020 19:24:10 -0400 Subject: [PATCH 008/247] Add additional files * Add AUTHORS.rst * Add CHANGELOG.rst * Add setup.cfg Signed-off-by: Steven Esser --- AUTHORS.rst | 3 +++ CHANGELOG.rst | 5 +++++ setup.cfg | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 AUTHORS.rst create mode 100644 CHANGELOG.rst create mode 100644 setup.cfg diff --git a/AUTHORS.rst b/AUTHORS.rst new file mode 100644 index 0000000..51a19cc --- /dev/null +++ b/AUTHORS.rst @@ -0,0 +1,3 @@ +The following organizations or individuals have contributed to this repo: + +- diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..5f8bc8d --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,5 @@ +Release notes +------------- +### Version 0.0.0 + +*xxxx-xx-xx* -- Initial release. diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..24aaefa --- /dev/null +++ b/setup.cfg @@ -0,0 +1,50 @@ +[wheel] +universal=1 + +[metadata] +license_files = + README.rst + CHANGELOG.rst + apache-2.0.LICENSE + bsd-new.LICENSE + mit.LICENSE + NOTICE + +[tool:pytest] +norecursedirs = + .git + bin + dist + build + _build + dist + etc + local + ci + docs + man + share + samples + .cache + .settings + Include + include + Lib + lib + lib64 + Lib64 + Scripts + thirdparty + tmp + tests/data + +python_files = *.py + +python_classes=Test +python_functions=test + +addopts = + -rfExXw + --strict + --ignore setup.py + --doctest-modules From 9a56b880389ce929a3c0e0dca8bdda576a3f2945 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Fri, 25 Sep 2020 13:03:15 -0400 Subject: [PATCH 009/247] Follow modern python packaging and conf practices * Add PEP 517/518 pyproject.toml file * Add setuptools_scm to handle versioning * Add setup.py content to setup.cfg * Update setup.py to act as a shim (so pip install -e works) Addresses: #2 Signed-off-by: Steven Esser --- configure | 2 +- pyproject.toml | 46 +++++++++++++++ requirements-tests.txt | 1 - setup.cfg | 73 ++++++++++-------------- setup.py | 124 +---------------------------------------- 5 files changed, 80 insertions(+), 166 deletions(-) create mode 100644 pyproject.toml delete mode 100644 requirements-tests.txt diff --git a/configure b/configure index 48c2628..a35c8c9 100755 --- a/configure +++ b/configure @@ -34,7 +34,7 @@ function setup { setup -$CONFIGURE_ROOT_DIR/tmp/bin/pip install -r requirements-tests.txt -e . +$CONFIGURE_ROOT_DIR/tmp/bin/pip install -e .[testing] if [ -f "$CONFIGURE_ROOT_DIR/tmp/bin/activate" ]; then source "$CONFIGURE_ROOT_DIR/tmp/bin/activate" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..e75f1ce --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,46 @@ +[build-system] +requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 4"] +build-backend = "setuptools.build_meta" + +[tool.setuptools_scm] + +[tool.pytest.ini_options] +norecursedirs = [ + ".git", + "bin", + "dist", + "build", + "_build", + "dist", + "etc", + "local", + "ci", + "docs", + "man", + "share", + "samples", + ".cache", + ".settings", + "Include", + "include", + "Lib", + "lib", + "lib64", + "Lib64", + "Scripts", + "thirdparty", + "tmp", + "tests/data", + ".eggs" +] + +python_files = "*.py" + +python_classes="Test" +python_functions="test" + +addopts = [ + "-rfExXw", + "--strict", + "--doctest-modules" +] \ No newline at end of file diff --git a/requirements-tests.txt b/requirements-tests.txt deleted file mode 100644 index 82d8d43..0000000 --- a/requirements-tests.txt +++ /dev/null @@ -1 +0,0 @@ -pytest-xdist diff --git a/setup.cfg b/setup.cfg index 24aaefa..b703e57 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,49 +2,36 @@ universal=1 [metadata] -license_files = - README.rst - CHANGELOG.rst - apache-2.0.LICENSE - bsd-new.LICENSE - mit.LICENSE - NOTICE +license_file = apache-2.0.LICENSE +name = skeleton +author = nexB. Inc. and others +author_email = info@aboutcode.org +description = skeleton +long_description = file:README.rst +url = https://github.com/nexB/skeleton +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only + Topic :: Software Development + Topic :: Utilities +keywords = -[tool:pytest] -norecursedirs = - .git - bin - dist - build - _build - dist - etc - local - ci - docs - man - share - samples - .cache - .settings - Include - include - Lib - lib - lib64 - Lib64 - Scripts - thirdparty - tmp - tests/data +[options] +package_dir= + =src +packages=find: +include_package_data = true +zip_safe = false +install_requires = +setup_requires = setuptools_scm[toml] >= 4 -python_files = *.py +[options.packages.find] +where=src -python_classes=Test -python_functions=test - -addopts = - -rfExXw - --strict - --ignore setup.py - --doctest-modules +[options.extras_require] +testing = + # upstream + pytest >= 6 + pytest-xdist >= 2 \ No newline at end of file diff --git a/setup.py b/setup.py index 1c920c1..45f160d 100644 --- a/setup.py +++ b/setup.py @@ -1,124 +1,6 @@ #!/usr/bin/env python -# -*- encoding: utf-8 -*- -from __future__ import absolute_import -from __future__ import print_function +import setuptools -import io -from glob import glob -from os.path import basename -from os.path import dirname -from os.path import join -from os.path import splitext -import re -import sys - -from setuptools import find_packages -from setuptools import setup - -version = '0.0.0' - -#### Small hack to force using a plain version number if the option -#### --plain-version is passed to setup.py - -USE_DEFAULT_VERSION = False -try: - sys.argv.remove('--use-default-version') - USE_DEFAULT_VERSION = True -except ValueError: - pass -#### - - -def get_version(default=version, template='{tag}.{distance}.{commit}{dirty}', - use_default=USE_DEFAULT_VERSION): - """ - Return a version collected from git if possible or fall back to an - hard-coded default version otherwise. If `use_default` is True, - always use the default version. - """ - if use_default: - return default - try: - tag, distance, commit, dirty = get_git_version() - if not distance and not dirty: - # we are from a clean Git tag: use tag - return tag - - distance = 'post{}'.format(distance) - if dirty: - time_stamp = get_time_stamp() - dirty = '.dirty.' + get_time_stamp() - else: - dirty = '' - - return template.format(**locals()) - except: - # no git data: use default version - return default - - -def get_time_stamp(): - """ - Return a numeric UTC time stamp without microseconds. - """ - from datetime import datetime - return (datetime.isoformat(datetime.utcnow()).split('.')[0] - .replace('T', '').replace(':', '').replace('-', '')) - - -def get_git_version(): - """ - Return version parts from Git or raise an exception. - """ - from subprocess import check_output, STDOUT - # this may fail with exceptions - cmd = 'git', 'describe', '--tags', '--long', '--dirty', - version = check_output(cmd, stderr=STDOUT).strip() - dirty = version.endswith('-dirty') - tag, distance, commit = version.split('-')[:3] - # lower tag and strip V prefix in tags - tag = tag.lower().lstrip('v ').strip() - # strip leading g from git describe commit - commit = commit.lstrip('g').strip() - return tag, int(distance), commit, dirty - - -def read(*names, **kwargs): - return io.open( - join(dirname(__file__), *names), - encoding=kwargs.get('encoding', 'utf8') - ).read() - - -setup( - name='', - version=get_version(), - license='Apache-2.0', - description='', - long_description=read('README.rst'), - author='nexB. Inc. and others', - author_email='info@aboutcode.org', - url='', - packages=find_packages('src'), - package_dir={'': 'src'}, - py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], - include_package_data=True, - zip_safe=False, - classifiers=[ - # complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Topic :: Software Development', - 'Topic :: Utilities', - ], - keywords=[ - ], - install_requires=[ - ] -) +if __name__ == "__main__": + setuptools.setup() \ No newline at end of file From 565feee243b68db1bc0608058178a8aa9ba485c9 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Fri, 25 Sep 2020 14:38:11 -0400 Subject: [PATCH 010/247] Add some minimal documentation Signed-off-by: Steven Esser --- README.rst | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 83376d5..049d38e 100644 --- a/README.rst +++ b/README.rst @@ -1,3 +1,31 @@ A Simple Python Project Skeleton ================================ -Note: configure script requires src/ directory to run correctly. +This repo attempts to standardize our python repositories using modern python +packaging and configuration techniques. Using this `blog post`_ as inspiration, this +repository will serve as the base for all new python projects and will be adopted to all +our existing ones as well. + +.. _blog post: https://blog.jaraco.com/a-project-skeleton-for-python-projects/ + +Usage +===== +A brand new project +------------------- +.. code-block:: bash + + git init my-new-repo + cd my-new-repo + git pull git@github.com:nexB/skeleton + +From here, you can make the appropriate changes to the files for your specific project. + +Update an existing project +--------------------------- +.. code-block:: bash + + cd my-existing-project + git remote add skeleton git@github.com:nexB/skeleton + git fetch skeleton + git merge skeleton --allow-unrelated-histories + +This is also the workflow to use when updating the skeleton files in any given repository. \ No newline at end of file From 5febefbe4f7b2cceef99a6b4b9c196fe76a266bf Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Tue, 29 Sep 2020 13:32:52 -0400 Subject: [PATCH 011/247] Fix hanging tag chars in setup.cfg Signed-off-by: Steven Esser --- setup.cfg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup.cfg b/setup.cfg index b703e57..a7ab2fe 100644 --- a/setup.cfg +++ b/setup.cfg @@ -10,10 +10,10 @@ description = skeleton long_description = file:README.rst url = https://github.com/nexB/skeleton classifiers = - Development Status :: 5 - Production/Stable - Intended Audience :: Developers - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only Topic :: Software Development Topic :: Utilities keywords = @@ -32,6 +32,6 @@ where=src [options.extras_require] testing = - # upstream - pytest >= 6 - pytest-xdist >= 2 \ No newline at end of file + # upstream + pytest >= 6 + pytest-xdist >= 2 From 343ff29e14958d31e151310608efac3ce1ad1d9c Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Wed, 30 Sep 2020 13:07:18 -0400 Subject: [PATCH 012/247] Update README instructions with proper git merge conventions Signed-off-by: Steven Esser --- README.rst | 4 ++-- setup.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 049d38e..0f1585b 100644 --- a/README.rst +++ b/README.rst @@ -26,6 +26,6 @@ Update an existing project cd my-existing-project git remote add skeleton git@github.com:nexB/skeleton git fetch skeleton - git merge skeleton --allow-unrelated-histories + git merge skeleton/main --allow-unrelated-histories -This is also the workflow to use when updating the skeleton files in any given repository. \ No newline at end of file +This is also the workflow to use when updating the skeleton files in any given repository. diff --git a/setup.cfg b/setup.cfg index a7ab2fe..5b665cf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,7 +25,7 @@ packages=find: include_package_data = true zip_safe = false install_requires = -setup_requires = setuptools_scm[toml] >= 4 +setup_requires = setuptools_scm >= 4 [options.packages.find] where=src From fa55f68fac8c80413f41bcbc3280d017e6d21198 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Fri, 16 Oct 2020 11:29:43 -0400 Subject: [PATCH 013/247] Add minimal .travis.yml CI config file Signed-off-by: Steven Esser --- .travis.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..bcc3be8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,21 @@ +# This is a skeleton Travis CI config file that provides a starting point for adding CI +# to a Python project. Since we primarily develop in python3, this skeleton config file +# will be specific to that language. +# +# See https://config.travis-ci.com/ for a full list of configuration options. + +os: linux + +dist: xenial + +language: python +python: + - "3.6" + - "3.7" + - "3.8" + +# Scripts to run at install stage +install: ./configure + +# Scripts to run at script stage +script: bin/pytest From 3296b9fde77cfbe36824d88e403652bcc72f8316 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Thu, 22 Oct 2020 14:07:23 -0400 Subject: [PATCH 014/247] Update setuptools_scm declaration Signed-off-by: Steven Esser --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 5b665cf..a7ab2fe 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,7 +25,7 @@ packages=find: include_package_data = true zip_safe = false install_requires = -setup_requires = setuptools_scm >= 4 +setup_requires = setuptools_scm[toml] >= 4 [options.packages.find] where=src From 083bd0483b5869219db51623eed44a9cd711989b Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 26 Oct 2020 15:30:56 -0700 Subject: [PATCH 015/247] Add azure pipeline config files and templates * Create configure.bat so we can use our skeleton for Windows projects Signed-off-by: Jono Yang --- .travis.yml | 4 +- azure-pipelines.yml | 45 ++++++++++++ configure.bat | 160 +++++++++++++++++++++++++++++++++++++++++ etc/ci/azure-linux.yml | 37 ++++++++++ etc/ci/azure-mac.yml | 36 ++++++++++ etc/ci/azure-win.yml | 36 ++++++++++ 6 files changed, 316 insertions(+), 2 deletions(-) create mode 100644 azure-pipelines.yml create mode 100644 configure.bat create mode 100644 etc/ci/azure-linux.yml create mode 100644 etc/ci/azure-mac.yml create mode 100644 etc/ci/azure-win.yml diff --git a/.travis.yml b/.travis.yml index bcc3be8..7a342df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ # This is a skeleton Travis CI config file that provides a starting point for adding CI # to a Python project. Since we primarily develop in python3, this skeleton config file -# will be specific to that language. +# will be specific to that language. # # See https://config.travis-ci.com/ for a full list of configuration options. @@ -18,4 +18,4 @@ python: install: ./configure # Scripts to run at script stage -script: bin/pytest +script: tmp/bin/pytest diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..904ac90 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,45 @@ + +################################################################################ +# We use Azure to run the full tests suites on Python 3.6 +# on Windows (32 and 64), macOS and Linux (64 various distro) +################################################################################ + +jobs: + +################################################################################ +# These jobs are using VMs and Azure-provided Python 3.6 +################################################################################ + + - template: etc/ci/azure-linux.yml + parameters: + job_name: vm_ubuntu16_py36 + image_name: ubuntu-16.04 + python_versions: ['3.6'] + test_suites: + all: bin/py.test -n 2 -vvs --reruns=3 + + - template: etc/ci/azure-mac.yml + parameters: + job_name: macos1015_py36 + image_name: macos-10.15 + python_versions: ['3.6'] + test_suites: + all: bin/py.test -n 2 -vvs --reruns=3 + + - template: etc/ci/azure-win.yml + parameters: + job_name: Win2016_32_py36 + image_name: vs2017-win2016 + python_versions: ['3.6'] + python_architecture: x86 + test_suites: + all: Scripts\py.test -vvs --reruns=3 + + - template: etc/ci/azure-win.yml + parameters: + job_name: Win2016_64_py36 + image_name: vs2017-win2016 + python_versions: ['3.6'] + python_architecture: x64 + test_suites: + misc: Scripts\py.test -vvs --reruns=3 diff --git a/configure.bat b/configure.bat new file mode 100644 index 0000000..0a2ca00 --- /dev/null +++ b/configure.bat @@ -0,0 +1,160 @@ +@echo OFF +@setlocal +@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. + +@rem ################################ +@rem # A configuration script for Windows +@rem # +@rem # The options and (optional) arguments are: +@rem # --clean : this is exclusive of anything else and cleans the environment +@rem # from built and installed files +@rem # +@rem # --python < path to python.exe> : this must be the first argument and set +@rem # the path to the Python executable to use. If < path to python.exe> is +@rem # set to "path", then the executable will be the python.exe available +@rem # in the PATH. +@rem # +@rem # : this must be the last argument and sets the path to a +@rem # configuration directory to use. +@rem ################################ + +@rem ################################ +@rem # Defaults. Change these variables to customize this script locally +@rem ################################ +@rem # you can define one or more thirdparty dirs, each where the varibale name +@rem # is prefixed with TPP_DIR +set "TPP_DIR=thirdparty" + +@rem # default configurations for dev +set "CONF_DEFAULT=etc/conf/dev" + +@rem # default thirdparty dist for dev +if ""%CONF_DEFAULT%""==""etc/conf/dev"" ( + set "TPP_DIR_DEV=thirdparty/dev" +) + +@rem # default supported version for Python 3 +set SUPPORTED_PYTHON3=3.6 + +@rem ################################# + +@rem python --version +@rem python -c "import sys;print(sys.executable)" + + +@rem Current directory where this .bat files lives +set CFG_ROOT_DIR=%~dp0 + +@rem path where a configured Python should live in the current virtualenv if installed +set CONFIGURED_PYTHON=%CFG_ROOT_DIR%Scripts\python.exe + +set PYTHON_EXECUTABLE= + +@rem parse command line options and arguments +:collectopts +if "%1" EQU "--help" (goto cli_help) +if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b +if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts + +@rem We are not cleaning: Either we have a provided configure config path or we use a default. +if ""%1""=="""" ( + set CFG_CMD_LINE_ARGS=%CONF_DEFAULT% +) else ( + set CFG_CMD_LINE_ARGS=%1 +) + +@rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run +if exist ""%CONFIGURED_PYTHON%"" ( + set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% + goto run +) + +@rem If we have a command arg for Python use this as-is +if ""%PROVIDED_PYTHON%""==""path"" ( + @rem use a bare python available in the PATH + set PYTHON_EXECUTABLE=python + goto run +) +if exist ""%PROVIDED_PYTHON%"" ( + set PYTHON_EXECUTABLE=%PROVIDED_PYTHON% + goto run +) + + +@rem otherwise we search for a suitable Python interpreter +:find_python + +@rem First check the existence of the "py" launcher (available in Python 3) +@rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 +@rem if not, check if we have an old py 2.7 +@rem exist if all fails + +where py >nul 2>nul +if %ERRORLEVEL% == 0 ( + @rem we have a py launcher, check for the availability of our required Python 3 version + py -3.6 --version >nul 2>nul + if %ERRORLEVEL% == 0 ( + set PYTHON_EXECUTABLE=py -3.6 + ) else ( + @rem we have no required python 3, let's try python 2: + py -2 --version >nul 2>nul + if %ERRORLEVEL% == 0 ( + set PYTHON_EXECUTABLE=py -2 + ) else ( + @rem we have py and no python 3 and 2, exit + echo * Unable to find an installation of Python. + exit /b 1 + ) + ) +) else ( + @rem we have no py launcher, check for a default Python 2 installation + if not exist ""%DEFAULT_PYTHON2%"" ( + echo * Unable to find an installation of Python. + exit /b 1 + ) else ( + set PYTHON_EXECUTABLE=%DEFAULT_PYTHON2% + ) +) + +:run + +@rem without this things may not always work on Windows 10, but this makes things slower +set PYTHONDONTWRITEBYTECODE=1 + +call mkdir "%CFG_ROOT_DIR%tmp" +call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz +call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" +call "%CFG_ROOT_DIR%tmp\Scripts\activate" +call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel + + +@rem Return a proper return code on failure +if %ERRORLEVEL% neq 0 ( + exit /b %ERRORLEVEL% +) +endlocal +goto activate + + +:cli_help +echo A configuration script for Windows +echo usage: configure [options] [path/to/config/directory] +echo. +echo The options and arguments are: +echo [path/to/config/directory] : this optionally sets the path to a +echo configuration directory to use. Defaults to etc/conf/dev if not set +echo. +echo --clean : this is exclusive of anything else and cleans the environment +echo from built and installed files +echo. +echo --python path/to/python.exe : this is set to the path of an alternative +echo Python executable to use. If path/to/python.exe is set to "path", +echo then the executable will be the python.exe available in the PATH. +echo. + + +:activate +@rem Activate the virtualenv +if exist "%CFG_ROOT_DIR%Scripts\activate" ( + "%CFG_ROOT_DIR%Scripts\activate" +) diff --git a/etc/ci/azure-linux.yml b/etc/ci/azure-linux.yml new file mode 100644 index 0000000..2e12e5b --- /dev/null +++ b/etc/ci/azure-linux.yml @@ -0,0 +1,37 @@ +parameters: + job_name: '' + image_name: 'ubuntu-16.04' + python_versions: [] + test_suites: {} + python_architecture: x64 + +jobs: + - job: ${{ parameters.job_name }} + + pool: + vmImage: ${{ parameters.image_name }} + + strategy: + matrix: + ${{ each pyver in parameters.python_versions }}: + ${{ each tsuite in parameters.test_suites }}: + ${{ format('py{0} {1}', pyver, tsuite.key) }}: + python_version: ${{ pyver }} + test_suite_label: ${{ tsuite.key }} + test_suite: ${{ tsuite.value }} + + steps: + - checkout: self + fetchDepth: 10 + + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python_version)' + architecture: '${{ parameters.python_architecture }}' + displayName: 'Install Python $(python_version)' + + - script: ./configure + displayName: 'Run Configure' + + - script: $(test_suite) + displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-mac.yml b/etc/ci/azure-mac.yml new file mode 100644 index 0000000..752ae2e --- /dev/null +++ b/etc/ci/azure-mac.yml @@ -0,0 +1,36 @@ +parameters: + job_name: '' + image_name: '' + python_versions: [] + test_suites: {} + python_architecture: x64 + +jobs: + - job: ${{ parameters.job_name }} + + pool: + vmImage: ${{ parameters.image_name }} + + strategy: + matrix: + ${{ each pyver in parameters.python_versions }}: + ${{ each tsuite in parameters.test_suites }}: + ${{ format('py{0} {1}', pyver, tsuite.key) }}: + python_version: ${{ pyver }} + test_suite_label: ${{ tsuite.key }} + test_suite: ${{ tsuite.value }} + steps: + - checkout: self + fetchDepth: 10 + + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python_version)' + architecture: '${{ parameters.python_architecture }}' + displayName: 'Install Python $(python_version)' + + - script: ./configure + displayName: 'Run Configure' + + - script: $(test_suite) + displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-win.yml b/etc/ci/azure-win.yml new file mode 100644 index 0000000..6220857 --- /dev/null +++ b/etc/ci/azure-win.yml @@ -0,0 +1,36 @@ +parameters: + job_name: '' + image_name: '' + python_versions: [] + test_suites: {} + python_architecture: x86 + +jobs: + - job: ${{ parameters.job_name }} + + pool: + vmImage: ${{ parameters.image_name }} + + strategy: + matrix: + ${{ each pyver in parameters.python_versions }}: + ${{ each tsuite in parameters.test_suites }}: + ${{ format('py{0} {1}', pyver, tsuite.key) }}: + python_version: ${{ pyver }} + test_suite_label: ${{ tsuite.key }} + test_suite: ${{ tsuite.value }} + steps: + - checkout: self + fetchDepth: 10 + + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python_version)' + architecture: '${{ parameters.python_architecture }}' + displayName: 'Install Python $(python_version)' + + - script: configure --python path + displayName: 'Run Configure' + + - script: $(test_suite) + displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' From 847564ead159cfcebe0f04066daa6f23e1a5a123 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 27 Oct 2020 10:40:38 -0700 Subject: [PATCH 016/247] Fix path to Scripts directory * Remove unused variables and options Signed-off-by: Jono Yang --- configure.bat | 48 ++++-------------------------------------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/configure.bat b/configure.bat index 0a2ca00..cbb4244 100644 --- a/configure.bat +++ b/configure.bat @@ -13,41 +13,12 @@ @rem # the path to the Python executable to use. If < path to python.exe> is @rem # set to "path", then the executable will be the python.exe available @rem # in the PATH. -@rem # -@rem # : this must be the last argument and sets the path to a -@rem # configuration directory to use. -@rem ################################ - @rem ################################ -@rem # Defaults. Change these variables to customize this script locally -@rem ################################ -@rem # you can define one or more thirdparty dirs, each where the varibale name -@rem # is prefixed with TPP_DIR -set "TPP_DIR=thirdparty" - -@rem # default configurations for dev -set "CONF_DEFAULT=etc/conf/dev" - -@rem # default thirdparty dist for dev -if ""%CONF_DEFAULT%""==""etc/conf/dev"" ( - set "TPP_DIR_DEV=thirdparty/dev" -) - -@rem # default supported version for Python 3 -set SUPPORTED_PYTHON3=3.6 - -@rem ################################# - -@rem python --version -@rem python -c "import sys;print(sys.executable)" - @rem Current directory where this .bat files lives set CFG_ROOT_DIR=%~dp0 - @rem path where a configured Python should live in the current virtualenv if installed -set CONFIGURED_PYTHON=%CFG_ROOT_DIR%Scripts\python.exe - +set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe set PYTHON_EXECUTABLE= @rem parse command line options and arguments @@ -56,13 +27,6 @@ if "%1" EQU "--help" (goto cli_help) if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts -@rem We are not cleaning: Either we have a provided configure config path or we use a default. -if ""%1""=="""" ( - set CFG_CMD_LINE_ARGS=%CONF_DEFAULT% -) else ( - set CFG_CMD_LINE_ARGS=%1 -) - @rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run if exist ""%CONFIGURED_PYTHON%"" ( set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% @@ -83,7 +47,6 @@ if exist ""%PROVIDED_PYTHON%"" ( @rem otherwise we search for a suitable Python interpreter :find_python - @rem First check the existence of the "py" launcher (available in Python 3) @rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 @rem if not, check if we have an old py 2.7 @@ -116,8 +79,8 @@ if %ERRORLEVEL% == 0 ( ) ) -:run +:run @rem without this things may not always work on Windows 10, but this makes things slower set PYTHONDONTWRITEBYTECODE=1 @@ -141,9 +104,6 @@ echo A configuration script for Windows echo usage: configure [options] [path/to/config/directory] echo. echo The options and arguments are: -echo [path/to/config/directory] : this optionally sets the path to a -echo configuration directory to use. Defaults to etc/conf/dev if not set -echo. echo --clean : this is exclusive of anything else and cleans the environment echo from built and installed files echo. @@ -155,6 +115,6 @@ echo. :activate @rem Activate the virtualenv -if exist "%CFG_ROOT_DIR%Scripts\activate" ( - "%CFG_ROOT_DIR%Scripts\activate" +if exist "%CFG_ROOT_DIR%tmp\Scripts\activate" ( + "%CFG_ROOT_DIR%tmp\Scripts\activate" ) From 0f293cb11374d96df99757ce8dc6bed4730c9751 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 27 Oct 2020 10:45:16 -0700 Subject: [PATCH 017/247] Install current project in configure.bat Signed-off-by: Jono Yang --- configure.bat | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.bat b/configure.bat index cbb4244..958f5bf 100644 --- a/configure.bat +++ b/configure.bat @@ -21,6 +21,7 @@ set CFG_ROOT_DIR=%~dp0 set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe set PYTHON_EXECUTABLE= + @rem parse command line options and arguments :collectopts if "%1" EQU "--help" (goto cli_help) @@ -89,7 +90,7 @@ call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtua call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" call "%CFG_ROOT_DIR%tmp\Scripts\activate" call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel - +call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] @rem Return a proper return code on failure if %ERRORLEVEL% neq 0 ( From 63f6946e1b3b070924b156a86b0ed0c3da6b7a48 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 27 Oct 2020 11:41:51 -0700 Subject: [PATCH 018/247] Call pytest from proper location * Remove rerun option from azure-pipelines.yml Signed-off-by: Jono Yang --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 904ac90..cf84da2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,7 +16,7 @@ jobs: image_name: ubuntu-16.04 python_versions: ['3.6'] test_suites: - all: bin/py.test -n 2 -vvs --reruns=3 + all: tmp/bin/pytest -n 2 -vvs - template: etc/ci/azure-mac.yml parameters: @@ -24,7 +24,7 @@ jobs: image_name: macos-10.15 python_versions: ['3.6'] test_suites: - all: bin/py.test -n 2 -vvs --reruns=3 + all: tmp/bin/pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: @@ -33,7 +33,7 @@ jobs: python_versions: ['3.6'] python_architecture: x86 test_suites: - all: Scripts\py.test -vvs --reruns=3 + all: tmp\Scripts\pytest -vvs - template: etc/ci/azure-win.yml parameters: @@ -42,4 +42,4 @@ jobs: python_versions: ['3.6'] python_architecture: x64 test_suites: - misc: Scripts\py.test -vvs --reruns=3 + misc: tmp\Scripts\pytest -vvs From 7fd250691c0f9db772e289d3cfb2224d70f3dcd0 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 27 Oct 2020 12:43:10 -0700 Subject: [PATCH 019/247] Use newer VM images on Azure Signed-off-by: Jono Yang --- azure-pipelines.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cf84da2..fad6928 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,8 +12,8 @@ jobs: - template: etc/ci/azure-linux.yml parameters: - job_name: vm_ubuntu16_py36 - image_name: ubuntu-16.04 + job_name: ubuntu18_py36 + image_name: ubuntu-18.04 python_versions: ['3.6'] test_suites: all: tmp/bin/pytest -n 2 -vvs @@ -28,8 +28,8 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: Win2016_32_py36 - image_name: vs2017-win2016 + job_name: win2019_32_py36 + image_name: windows-2019 python_versions: ['3.6'] python_architecture: x86 test_suites: @@ -37,9 +37,9 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: Win2016_64_py36 - image_name: vs2017-win2016 + job_name: win2019_64_py36 + image_name: windows-2019 python_versions: ['3.6'] python_architecture: x64 test_suites: - misc: tmp\Scripts\pytest -vvs + all: tmp\Scripts\pytest -vvs From bceb8f98633bda15982c667848dc86be19ee6f97 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 28 Oct 2020 17:03:27 -0700 Subject: [PATCH 020/247] Add .gitattributes * We have this to ensure the line ending of configure.bat is always CRLF Signed-off-by: Jono Yang --- .gitattributes | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2d555b2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Set configure.bat's line ending to CRLF. Sometimes batch scripts don't work +# properly on Windows if the line ending is LF and not CRLF +configure.bat eol=crlf From e772fe670da017a9ff51e3b7119996f12169e79c Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 3 Nov 2020 19:32:39 -0800 Subject: [PATCH 021/247] Clean template Signed-off-by: Jono Yang --- etc/ci/azure-linux.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/etc/ci/azure-linux.yml b/etc/ci/azure-linux.yml index 2e12e5b..752ae2e 100644 --- a/etc/ci/azure-linux.yml +++ b/etc/ci/azure-linux.yml @@ -1,6 +1,6 @@ parameters: job_name: '' - image_name: 'ubuntu-16.04' + image_name: '' python_versions: [] test_suites: {} python_architecture: x64 @@ -19,7 +19,6 @@ jobs: python_version: ${{ pyver }} test_suite_label: ${{ tsuite.key }} test_suite: ${{ tsuite.value }} - steps: - checkout: self fetchDepth: 10 From 629abedc035290810b4efa30b3e2cc47951f2344 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 5 Nov 2020 16:36:20 +0530 Subject: [PATCH 022/247] Update .gitignore to ignore Jupyter temp files Signed-off-by: Ayan Sinha Mahapatra --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 0abbef1..68de2d2 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,6 @@ pyvenv.cfg /.pytest_cache/ lib64 tcl + +# Ignore Jupyter Notebook related temp files +.ipynb_checkpoints/ From ef210cd813de2961fe8ca4a5ec7f14532ea6e9f8 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Mon, 16 Nov 2020 15:29:48 -0500 Subject: [PATCH 023/247] Quick doc update Signed-off-by: Steven Esser --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index 0f1585b..a0e682f 100644 --- a/README.rst +++ b/README.rst @@ -17,6 +17,9 @@ A brand new project cd my-new-repo git pull git@github.com:nexB/skeleton + # Create the new repo on GitHub, then update your remote + git remote set-url origin git@github.com:nexB/your-new-repo.git + From here, you can make the appropriate changes to the files for your specific project. Update an existing project From 0b6caf92fe394bec7f9f43a338dc0e2d3a32d5df Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 10 Dec 2020 14:17:12 +0530 Subject: [PATCH 024/247] Add RTD docs configuration file Adds a RTD configuration file (v2) to customize builds. Signed-off-by: Ayan Sinha Mahapatra --- .readthedocs.yml | 18 ++++++++++++++++++ setup.cfg | 4 ++++ 2 files changed, 22 insertions(+) create mode 100644 .readthedocs.yml diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..1b71cd9 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,18 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Where the Sphinx conf.py file is located +sphinx: + configuration: docs/source/conf.py + +# Setting the python version and doc build requirements +python: + install: + - method: pip + path: . + extra_requirements: + - docs diff --git a/setup.cfg b/setup.cfg index a7ab2fe..e4274bb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,3 +35,7 @@ testing = # upstream pytest >= 6 pytest-xdist >= 2 +docs= + Sphinx>=3.3.1 + sphinx-rtd-theme>=0.5.0 + doc8>=0.8.1 \ No newline at end of file From f2c1400e39aa99b2a53392910d01509a0a8114f7 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 10 Dec 2020 14:19:15 +0530 Subject: [PATCH 025/247] Add basic RTD documentaion #4 Signed-off-by: Ayan Sinha Mahapatra --- docs/Makefile | 20 +++++++++++ docs/make.bat | 35 +++++++++++++++++++ docs/source/conf.py | 63 ++++++++++++++++++++++++++++++++++ docs/source/index.rst | 15 ++++++++ docs/source/skeleton/index.rst | 15 ++++++++ 5 files changed, 148 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py create mode 100644 docs/source/index.rst create mode 100644 docs/source/skeleton/index.rst diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..6247f7e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..529cae3 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,63 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'nexb-skeleton' +copyright = 'nexb Inc.' +author = 'nexb Inc.' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +html_context = { + 'css_files': [ + '_static/theme_overrides.css', # override wide tables in RTD theme + ], + "display_github": True, + "github_user": "nexB", + "github_repo": "nexb-skeleton", + "github_version": "develop", # branch + "conf_py_path": "/docs/source/", # path in the checkout to the docs root + } \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..67fcf21 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,15 @@ +Welcome to nexb-skeleton's documentation! +========================================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + skeleton/index + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/skeleton/index.rst b/docs/source/skeleton/index.rst new file mode 100644 index 0000000..7dfc6cb --- /dev/null +++ b/docs/source/skeleton/index.rst @@ -0,0 +1,15 @@ +# Docs Structure Guide +# Rst docs - https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html +# +# 1. Place docs in folders under source for different sections +# 2. Link them by adding individual index files in each section +# to the main index, and then files for each section to their +# respective index files. +# 3. Use `.. include` statements to include other .rst files +# or part of them, or use hyperlinks to a section of the docs, +# to get rid of repetition. +# https://docutils.sourceforge.io/docs/ref/rst/directives.html#including-an-external-document-fragment +# +# Note: Replace these guide/placeholder docs + +.. include:: ../../../README.rst From e7d19903edae48c176baab11a9a5b7393ae74854 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 10 Dec 2020 14:20:49 +0530 Subject: [PATCH 026/247] Add RTD requirements file and test scripts Signed-off-by: Ayan Sinha Mahapatra --- docs/scripts/doc8_style_check.sh | 5 +++++ docs/scripts/sphinx_build_link_check.sh | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 docs/scripts/doc8_style_check.sh create mode 100644 docs/scripts/sphinx_build_link_check.sh diff --git a/docs/scripts/doc8_style_check.sh b/docs/scripts/doc8_style_check.sh new file mode 100644 index 0000000..9416323 --- /dev/null +++ b/docs/scripts/doc8_style_check.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# halt script on error +set -e +# Check for Style Code Violations +doc8 --max-line-length 100 source --ignore D000 --quiet \ No newline at end of file diff --git a/docs/scripts/sphinx_build_link_check.sh b/docs/scripts/sphinx_build_link_check.sh new file mode 100644 index 0000000..c542686 --- /dev/null +++ b/docs/scripts/sphinx_build_link_check.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# halt script on error +set -e +# Build locally, and then check links +sphinx-build -E -W -b linkcheck source build \ No newline at end of file From 7d37af0b6636ab23780503a0e8de8287ab282b66 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 16 Dec 2020 19:45:34 +0530 Subject: [PATCH 027/247] Add `src` folder to pass CI tests and RTD builds Signed-off-by: Ayan Sinha Mahapatra --- src/README.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/README.rst diff --git a/src/README.rst b/src/README.rst new file mode 100644 index 0000000..efb1a14 --- /dev/null +++ b/src/README.rst @@ -0,0 +1,5 @@ +Package Module +-------------- + +Put your python modules in this directory. + From 03ffc8a23606b22ad728bb093e52264bfe1af658 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 6 Jan 2021 18:54:31 +0100 Subject: [PATCH 028/247] Ensure we use official full text of Apache 2.0 Taken from https://www.apache.org/licenses/LICENSE-2.0.txt Signed-off-by: Philippe Ombredanne --- apache-2.0.LICENSE | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/apache-2.0.LICENSE b/apache-2.0.LICENSE index d9a10c0..261eeb9 100644 --- a/apache-2.0.LICENSE +++ b/apache-2.0.LICENSE @@ -174,3 +174,28 @@ of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 5e386d9ff0bfe77c170e37abde84313aa45b3a3f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:04:37 +0100 Subject: [PATCH 029/247] Never ever let Git convert line delimiters Signed-off-by: Philippe Ombredanne --- .gitattributes | 5 +- configure.bat | 242 ++++++++++++++++++++++++------------------------- 2 files changed, 123 insertions(+), 124 deletions(-) diff --git a/.gitattributes b/.gitattributes index 2d555b2..c446d38 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,2 @@ -# Set configure.bat's line ending to CRLF. Sometimes batch scripts don't work -# properly on Windows if the line ending is LF and not CRLF -configure.bat eol=crlf +# Ignore all Git auto CR/LF line endings conversions +* binary diff --git a/configure.bat b/configure.bat index 958f5bf..f03ea07 100644 --- a/configure.bat +++ b/configure.bat @@ -1,121 +1,121 @@ -@echo OFF -@setlocal -@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. - -@rem ################################ -@rem # A configuration script for Windows -@rem # -@rem # The options and (optional) arguments are: -@rem # --clean : this is exclusive of anything else and cleans the environment -@rem # from built and installed files -@rem # -@rem # --python < path to python.exe> : this must be the first argument and set -@rem # the path to the Python executable to use. If < path to python.exe> is -@rem # set to "path", then the executable will be the python.exe available -@rem # in the PATH. -@rem ################################ - -@rem Current directory where this .bat files lives -set CFG_ROOT_DIR=%~dp0 -@rem path where a configured Python should live in the current virtualenv if installed -set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe -set PYTHON_EXECUTABLE= - - -@rem parse command line options and arguments -:collectopts -if "%1" EQU "--help" (goto cli_help) -if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b -if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts - -@rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run -if exist ""%CONFIGURED_PYTHON%"" ( - set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% - goto run -) - -@rem If we have a command arg for Python use this as-is -if ""%PROVIDED_PYTHON%""==""path"" ( - @rem use a bare python available in the PATH - set PYTHON_EXECUTABLE=python - goto run -) -if exist ""%PROVIDED_PYTHON%"" ( - set PYTHON_EXECUTABLE=%PROVIDED_PYTHON% - goto run -) - - -@rem otherwise we search for a suitable Python interpreter -:find_python -@rem First check the existence of the "py" launcher (available in Python 3) -@rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 -@rem if not, check if we have an old py 2.7 -@rem exist if all fails - -where py >nul 2>nul -if %ERRORLEVEL% == 0 ( - @rem we have a py launcher, check for the availability of our required Python 3 version - py -3.6 --version >nul 2>nul - if %ERRORLEVEL% == 0 ( - set PYTHON_EXECUTABLE=py -3.6 - ) else ( - @rem we have no required python 3, let's try python 2: - py -2 --version >nul 2>nul - if %ERRORLEVEL% == 0 ( - set PYTHON_EXECUTABLE=py -2 - ) else ( - @rem we have py and no python 3 and 2, exit - echo * Unable to find an installation of Python. - exit /b 1 - ) - ) -) else ( - @rem we have no py launcher, check for a default Python 2 installation - if not exist ""%DEFAULT_PYTHON2%"" ( - echo * Unable to find an installation of Python. - exit /b 1 - ) else ( - set PYTHON_EXECUTABLE=%DEFAULT_PYTHON2% - ) -) - - -:run -@rem without this things may not always work on Windows 10, but this makes things slower -set PYTHONDONTWRITEBYTECODE=1 - -call mkdir "%CFG_ROOT_DIR%tmp" -call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz -call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" -call "%CFG_ROOT_DIR%tmp\Scripts\activate" -call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel -call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] - -@rem Return a proper return code on failure -if %ERRORLEVEL% neq 0 ( - exit /b %ERRORLEVEL% -) -endlocal -goto activate - - -:cli_help -echo A configuration script for Windows -echo usage: configure [options] [path/to/config/directory] -echo. -echo The options and arguments are: -echo --clean : this is exclusive of anything else and cleans the environment -echo from built and installed files -echo. -echo --python path/to/python.exe : this is set to the path of an alternative -echo Python executable to use. If path/to/python.exe is set to "path", -echo then the executable will be the python.exe available in the PATH. -echo. - - -:activate -@rem Activate the virtualenv -if exist "%CFG_ROOT_DIR%tmp\Scripts\activate" ( - "%CFG_ROOT_DIR%tmp\Scripts\activate" -) +@echo OFF +@setlocal +@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. + +@rem ################################ +@rem # A configuration script for Windows +@rem # +@rem # The options and (optional) arguments are: +@rem # --clean : this is exclusive of anything else and cleans the environment +@rem # from built and installed files +@rem # +@rem # --python < path to python.exe> : this must be the first argument and set +@rem # the path to the Python executable to use. If < path to python.exe> is +@rem # set to "path", then the executable will be the python.exe available +@rem # in the PATH. +@rem ################################ + +@rem Current directory where this .bat files lives +set CFG_ROOT_DIR=%~dp0 +@rem path where a configured Python should live in the current virtualenv if installed +set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe +set PYTHON_EXECUTABLE= + + +@rem parse command line options and arguments +:collectopts +if "%1" EQU "--help" (goto cli_help) +if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b +if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts + +@rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run +if exist ""%CONFIGURED_PYTHON%"" ( + set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% + goto run +) + +@rem If we have a command arg for Python use this as-is +if ""%PROVIDED_PYTHON%""==""path"" ( + @rem use a bare python available in the PATH + set PYTHON_EXECUTABLE=python + goto run +) +if exist ""%PROVIDED_PYTHON%"" ( + set PYTHON_EXECUTABLE=%PROVIDED_PYTHON% + goto run +) + + +@rem otherwise we search for a suitable Python interpreter +:find_python +@rem First check the existence of the "py" launcher (available in Python 3) +@rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 +@rem if not, check if we have an old py 2.7 +@rem exist if all fails + +where py >nul 2>nul +if %ERRORLEVEL% == 0 ( + @rem we have a py launcher, check for the availability of our required Python 3 version + py -3.6 --version >nul 2>nul + if %ERRORLEVEL% == 0 ( + set PYTHON_EXECUTABLE=py -3.6 + ) else ( + @rem we have no required python 3, let's try python 2: + py -2 --version >nul 2>nul + if %ERRORLEVEL% == 0 ( + set PYTHON_EXECUTABLE=py -2 + ) else ( + @rem we have py and no python 3 and 2, exit + echo * Unable to find an installation of Python. + exit /b 1 + ) + ) +) else ( + @rem we have no py launcher, check for a default Python 2 installation + if not exist ""%DEFAULT_PYTHON2%"" ( + echo * Unable to find an installation of Python. + exit /b 1 + ) else ( + set PYTHON_EXECUTABLE=%DEFAULT_PYTHON2% + ) +) + + +:run +@rem without this things may not always work on Windows 10, but this makes things slower +set PYTHONDONTWRITEBYTECODE=1 + +call mkdir "%CFG_ROOT_DIR%tmp" +call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz +call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" +call "%CFG_ROOT_DIR%tmp\Scripts\activate" +call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel +call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] + +@rem Return a proper return code on failure +if %ERRORLEVEL% neq 0 ( + exit /b %ERRORLEVEL% +) +endlocal +goto activate + + +:cli_help +echo A configuration script for Windows +echo usage: configure [options] [path/to/config/directory] +echo. +echo The options and arguments are: +echo --clean : this is exclusive of anything else and cleans the environment +echo from built and installed files +echo. +echo --python path/to/python.exe : this is set to the path of an alternative +echo Python executable to use. If path/to/python.exe is set to "path", +echo then the executable will be the python.exe available in the PATH. +echo. + + +:activate +@rem Activate the virtualenv +if exist "%CFG_ROOT_DIR%tmp\Scripts\activate" ( + "%CFG_ROOT_DIR%tmp\Scripts\activate" +) From 2e48dca222b6f5889a3874ed5cda5476a7e9ff9b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:05:30 +0100 Subject: [PATCH 030/247] Run tests on more OSes and Python versions Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 55 ++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fad6928..9a4c950 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,45 +1,64 @@ ################################################################################ -# We use Azure to run the full tests suites on Python 3.6 -# on Windows (32 and 64), macOS and Linux (64 various distro) +# We use Azure to run the full tests suites on multiple Python 3.x +# on multiple Windows, macOS and Linux versions all on 64 bits +# These jobs are using VMs with Azure-provided Python builds ################################################################################ jobs: -################################################################################ -# These jobs are using VMs and Azure-provided Python 3.6 -################################################################################ + - template: etc/ci/azure-linux.yml + parameters: + job_name: ubuntu16_cpython + image_name: ubuntu-16.04 + python_versions: ['3.6', '3.7', '3.8', '3.9'] + test_suites: + all: tmp/bin/pytest -vvs - template: etc/ci/azure-linux.yml parameters: - job_name: ubuntu18_py36 + job_name: ubuntu18_cpython image_name: ubuntu-18.04 - python_versions: ['3.6'] + python_versions: ['3.6', '3.7', '3.8', '3.9'] + test_suites: + all: tmp/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-linux.yml + parameters: + job_name: ubuntu20_cpython + image_name: ubuntu-20.04 + python_versions: ['3.6', '3.7', '3.8', '3.9'] + test_suites: + all: tmp/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-mac.yml + parameters: + job_name: macos1014_cpython + image_name: macos-10.14 + python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: all: tmp/bin/pytest -n 2 -vvs - template: etc/ci/azure-mac.yml parameters: - job_name: macos1015_py36 + job_name: macos1015_cpython image_name: macos-10.15 - python_versions: ['3.6'] + python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: all: tmp/bin/pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: - job_name: win2019_32_py36 - image_name: windows-2019 - python_versions: ['3.6'] - python_architecture: x86 + job_name: win2016_cpython + image_name: vs2017-win2016 + python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp\Scripts\pytest -vvs + all: tmp\Scripts\pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: - job_name: win2019_64_py36 + job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.6'] - python_architecture: x64 + python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp\Scripts\pytest -vvs + all: tmp\Scripts\pytest -n 2 -vvs From b959539450069bb573653a3d1265a95cb6c6f563 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:11:01 +0100 Subject: [PATCH 031/247] Do not make wheel universal Also include more license files Signed-off-by: Philippe Ombredanne --- setup.cfg | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/setup.cfg b/setup.cfg index e4274bb..f791084 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,11 +1,15 @@ -[wheel] -universal=1 - [metadata] -license_file = apache-2.0.LICENSE +license_files = + apache-2.0.LICENSE + NOTICE + AUTHORS.rst + CHANGELOG.rst name = skeleton author = nexB. Inc. and others author_email = info@aboutcode.org +license = Apache-2.0 + +# description must be on ONE line https://github.com/pypa/setuptools/issues/1390 description = skeleton long_description = file:README.rst url = https://github.com/nexB/skeleton @@ -17,6 +21,7 @@ classifiers = Topic :: Software Development Topic :: Utilities keywords = + utilities [options] package_dir= From 98641a067009e2b1c08682e99cbae84d30f59d15 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:12:00 +0100 Subject: [PATCH 032/247] Format and add license Signed-off-by: Philippe Ombredanne --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index a35c8c9..8f3a68e 100755 --- a/configure +++ b/configure @@ -1,6 +1,7 @@ #!/usr/bin/env bash # -# Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. +# Copyright (c) nexB Inc. and others. +# SPDX-License-Identifier: Apache-2.0 # set -e From 9fa3f315b7cc1495889b95d50a15cc738d48887f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:12:13 +0100 Subject: [PATCH 033/247] Format Signed-off-by: Philippe Ombredanne --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 45f160d..bac24a4 100644 --- a/setup.py +++ b/setup.py @@ -3,4 +3,4 @@ import setuptools if __name__ == "__main__": - setuptools.setup() \ No newline at end of file + setuptools.setup() From 0b8cd65580db4ad56b31fc67dd438a006cc66a6b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:12:27 +0100 Subject: [PATCH 034/247] Improve documentation Signed-off-by: Philippe Ombredanne --- src/README.rst | 5 +---- tests/README.rst | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 tests/README.rst diff --git a/src/README.rst b/src/README.rst index efb1a14..ec651fc 100644 --- a/src/README.rst +++ b/src/README.rst @@ -1,5 +1,2 @@ -Package Module --------------- - -Put your python modules in this directory. +Put your Python source code (and installable data) in this directory. diff --git a/tests/README.rst b/tests/README.rst new file mode 100644 index 0000000..d94783e --- /dev/null +++ b/tests/README.rst @@ -0,0 +1,2 @@ +Put your Python test modules in this directory. + From 300769149b530e283a4e4a6aa7f338ca72e5df5e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:12:48 +0100 Subject: [PATCH 035/247] Format for spaces Signed-off-by: Philippe Ombredanne --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e75f1ce..55fb92c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,11 +36,11 @@ norecursedirs = [ python_files = "*.py" -python_classes="Test" -python_functions="test" +python_classes = "Test" +python_functions = "test" addopts = [ "-rfExXw", "--strict", "--doctest-modules" -] \ No newline at end of file +] From b49895c69abd9713461de61032645cc2c492e73e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:14:47 +0100 Subject: [PATCH 036/247] Add manifest for source distributions Signed-off-by: Philippe Ombredanne --- MANIFEST.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..ef3721e --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,15 @@ +graft src + +include *.LICENSE +include NOTICE +include *.ABOUT +include *.toml +include *.yml +include *.rst +include setup.* +include configure* +include requirements* +include .git* + +global-exclude *.py[co] __pycache__ *.*~ + From d3e2d28d9f6cde0ded3d8450107d14fb4da05c4e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 14 Jan 2021 17:15:06 +0100 Subject: [PATCH 037/247] Add Apache license NOTICE Signed-off-by: Philippe Ombredanne --- NOTICE | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 NOTICE diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..65936b2 --- /dev/null +++ b/NOTICE @@ -0,0 +1,19 @@ +# +# Copyright (c) nexB Inc. and others. +# SPDX-License-Identifier: Apache-2.0 +# +# Visit https://aboutcode.org and https://github.com/nexB/ for support and download. +# ScanCode is a trademark of nexB Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# From f46bc48f7b056670f87cbc25e51a0979c7fff8db Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 24 Jan 2021 12:32:27 +0100 Subject: [PATCH 038/247] Default to 64 bits windows on CI Signed-off-by: Philippe Ombredanne --- etc/ci/azure-win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/ci/azure-win.yml b/etc/ci/azure-win.yml index 6220857..afe1686 100644 --- a/etc/ci/azure-win.yml +++ b/etc/ci/azure-win.yml @@ -3,7 +3,7 @@ parameters: image_name: '' python_versions: [] test_suites: {} - python_architecture: x86 + python_architecture: x64 jobs: - job: ${{ parameters.job_name }} From 182532f69052c75d3621ff214ede196cbeed16e7 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 25 Jan 2021 12:54:13 +0100 Subject: [PATCH 039/247] Use wheels embedded in virtualenv.pyz Signed-off-by: Philippe Ombredanne --- configure | 2 +- configure.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 8f3a68e..d41bf8e 100755 --- a/configure +++ b/configure @@ -27,7 +27,7 @@ function setup { # create a virtualenv on Python mkdir -p $CONFIGURE_ROOT_DIR/tmp wget -O $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz - $PYTHON_EXE $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz $CONFIGURE_ROOT_DIR/tmp + $PYTHON_EXE $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz --wheel embed --pip embed --setuptools embed --seeder pip $CONFIGURE_ROOT_DIR/tmp source $CONFIGURE_ROOT_DIR/tmp/bin/activate $CONFIGURE_ROOT_DIR/tmp/bin/pip install --upgrade pip virtualenv setuptools wheel } diff --git a/configure.bat b/configure.bat index f03ea07..ee68f9e 100644 --- a/configure.bat +++ b/configure.bat @@ -87,7 +87,7 @@ set PYTHONDONTWRITEBYTECODE=1 call mkdir "%CFG_ROOT_DIR%tmp" call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz -call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" +call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" --wheel embed --pip embed --setuptools embed --seeder pip "%CFG_ROOT_DIR%tmp" call "%CFG_ROOT_DIR%tmp\Scripts\activate" call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] From cd4e87beb91ea5e9380dfeb19c3530c0a92ff192 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 25 Jan 2021 12:56:18 +0100 Subject: [PATCH 040/247] Do not force an upgrade on virtualenv.pyz embeds Signed-off-by: Philippe Ombredanne --- configure | 1 - configure.bat | 1 - 2 files changed, 2 deletions(-) diff --git a/configure b/configure index d41bf8e..78e7498 100755 --- a/configure +++ b/configure @@ -29,7 +29,6 @@ function setup { wget -O $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz $PYTHON_EXE $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz --wheel embed --pip embed --setuptools embed --seeder pip $CONFIGURE_ROOT_DIR/tmp source $CONFIGURE_ROOT_DIR/tmp/bin/activate - $CONFIGURE_ROOT_DIR/tmp/bin/pip install --upgrade pip virtualenv setuptools wheel } diff --git a/configure.bat b/configure.bat index ee68f9e..00cb101 100644 --- a/configure.bat +++ b/configure.bat @@ -89,7 +89,6 @@ call mkdir "%CFG_ROOT_DIR%tmp" call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" --wheel embed --pip embed --setuptools embed --seeder pip "%CFG_ROOT_DIR%tmp" call "%CFG_ROOT_DIR%tmp\Scripts\activate" -call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] @rem Return a proper return code on failure From 51510cbdb2f2d066d6652695aed40175a37d88a4 Mon Sep 17 00:00:00 2001 From: Steven Esser Date: Thu, 11 Feb 2021 15:56:55 -0500 Subject: [PATCH 041/247] Fix .gitattributes Signed-off-by: Steven Esser --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index c446d38..b79df5c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ # Ignore all Git auto CR/LF line endings conversions -* binary +* -text From d6fe59fd2e832075905ecb27235640a2776dad7a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 7 May 2021 14:56:42 +0200 Subject: [PATCH 042/247] Update markers syntax for pytest Signed-off-by: Philippe Ombredanne --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 55fb92c..a3bda44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,6 +41,6 @@ python_functions = "test" addopts = [ "-rfExXw", - "--strict", + "--strict-markers", "--doctest-modules" ] From ca6ab2189a6ff6fd093dc9424aa17183a05e6988 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 7 May 2021 14:59:17 +0200 Subject: [PATCH 043/247] Add fallback version for setuptools_scm This will work even from a git archive or when git is not installed. Signed-off-by: Philippe Ombredanne --- .gitattributes | 1 + pyproject.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitattributes b/.gitattributes index b79df5c..96c89ce 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ # Ignore all Git auto CR/LF line endings conversions * -text +pyproject.toml export-subst diff --git a/pyproject.toml b/pyproject.toml index a3bda44..52caac4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 4"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] +fallback_version = "v9999.$Format:%h-%cs$" [tool.pytest.ini_options] norecursedirs = [ From 1364bbbb9c399bd535686ea4ec6bfc241eb0e689 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 10:57:19 +0200 Subject: [PATCH 044/247] Add note for setuptools_scam fallback version Signed-off-by: Philippe Ombredanne --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 52caac4..8eebe91 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,8 @@ requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 4"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] +# this is used populated when creating a git archive +# and when there is .git dir and/or there is no git installed fallback_version = "v9999.$Format:%h-%cs$" [tool.pytest.ini_options] From be851b017a6e5c98ad85a84cda8b3f070e7acf34 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:00:26 +0200 Subject: [PATCH 045/247] Use azure-posix.yml for linux and macOS Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 10 +++--- etc/ci/azure-mac.yml | 36 --------------------- etc/ci/{azure-linux.yml => azure-posix.yml} | 0 3 files changed, 5 insertions(+), 41 deletions(-) delete mode 100644 etc/ci/azure-mac.yml rename etc/ci/{azure-linux.yml => azure-posix.yml} (100%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9a4c950..31ef36f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,7 +7,7 @@ jobs: - - template: etc/ci/azure-linux.yml + - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu16_cpython image_name: ubuntu-16.04 @@ -15,7 +15,7 @@ jobs: test_suites: all: tmp/bin/pytest -vvs - - template: etc/ci/azure-linux.yml + - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu18_cpython image_name: ubuntu-18.04 @@ -23,7 +23,7 @@ jobs: test_suites: all: tmp/bin/pytest -n 2 -vvs - - template: etc/ci/azure-linux.yml + - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu20_cpython image_name: ubuntu-20.04 @@ -31,7 +31,7 @@ jobs: test_suites: all: tmp/bin/pytest -n 2 -vvs - - template: etc/ci/azure-mac.yml + - template: etc/ci/azure-posix.yml parameters: job_name: macos1014_cpython image_name: macos-10.14 @@ -39,7 +39,7 @@ jobs: test_suites: all: tmp/bin/pytest -n 2 -vvs - - template: etc/ci/azure-mac.yml + - template: etc/ci/azure-posix.yml parameters: job_name: macos1015_cpython image_name: macos-10.15 diff --git a/etc/ci/azure-mac.yml b/etc/ci/azure-mac.yml deleted file mode 100644 index 752ae2e..0000000 --- a/etc/ci/azure-mac.yml +++ /dev/null @@ -1,36 +0,0 @@ -parameters: - job_name: '' - image_name: '' - python_versions: [] - test_suites: {} - python_architecture: x64 - -jobs: - - job: ${{ parameters.job_name }} - - pool: - vmImage: ${{ parameters.image_name }} - - strategy: - matrix: - ${{ each pyver in parameters.python_versions }}: - ${{ each tsuite in parameters.test_suites }}: - ${{ format('py{0} {1}', pyver, tsuite.key) }}: - python_version: ${{ pyver }} - test_suite_label: ${{ tsuite.key }} - test_suite: ${{ tsuite.value }} - steps: - - checkout: self - fetchDepth: 10 - - - task: UsePythonVersion@0 - inputs: - versionSpec: '$(python_version)' - architecture: '${{ parameters.python_architecture }}' - displayName: 'Install Python $(python_version)' - - - script: ./configure - displayName: 'Run Configure' - - - script: $(test_suite) - displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-linux.yml b/etc/ci/azure-posix.yml similarity index 100% rename from etc/ci/azure-linux.yml rename to etc/ci/azure-posix.yml From 4f0aecf4f2a01c71b8d0f54987cd68de5f7922c2 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:14:23 +0200 Subject: [PATCH 046/247] Adopt new configure script derived from ScanCode Signed-off-by: Philippe Ombredanne --- configure | 164 ++++++++++++++++++++++++---- configure.bat | 238 ++++++++++++++++++++++++++--------------- etc/ci/azure-posix.yml | 7 +- etc/ci/azure-win.yml | 5 +- 4 files changed, 304 insertions(+), 110 deletions(-) diff --git a/configure b/configure index 78e7498..25ab0ce 100755 --- a/configure +++ b/configure @@ -1,43 +1,169 @@ #!/usr/bin/env bash # -# Copyright (c) nexB Inc. and others. +# Copyright (c) nexB Inc. and others. All rights reserved. # SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/ for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. # set -e #set -x -# source this script for a basic setup and configuration for local development +################################ +# A configuration script to set things up: +# create a virtualenv and install or update thirdparty packages. +# Source this script for initial configuration +# Use configure --help for details +# +# This script will search for a virtualenv.pyz app in etc/thirdparty/virtualenv.pyz +# Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default +################################ +CLI_ARGS=$1 -CONFIGURE_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +################################ +# Defaults. Change these variables to customize this script +################################ +# Requirement arguments passed to pip and used by default or with --dev. +REQUIREMENTS="--editable ." +DEV_REQUIREMENTS="--editable .[testing]" -if [[ "$1" == "--clean" ]]; then - rm -rf "$CONFIGURE_ROOT_DIR/tmp" - exit +# where we create a virtualenv +VIRTUALENV_DIR=tmp + +# Cleanable files and directories with the --clean option +CLEANABLE=" + build + tmp" + +# extra arguments passed to pip +PIP_EXTRA_ARGS=" " + +# the URL to download virtualenv.pyz if needed +VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz +################################ + + +################################ +# Current directory where this script lives +CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin + + +################################ +# Set the quiet flag to empty if not defined +if [[ "$CFG_QUIET" == "" ]]; then + CFG_QUIET=" " fi -if [[ "$PYTHON_EXE" == "" ]]; then - PYTHON_EXE=python3 +################################ +# find a proper Python to run +# Use environment variables or a file if available. +# Otherwise the latest Python by default. +if [[ "$PYTHON_EXECUTABLE" == "" ]]; then + # check for a file named PYTHON_EXECUTABLE + if [ -f "$CFG_ROOT_DIR/PYTHON_EXECUTABLE" ]; then + PYTHON_EXECUTABLE=$(cat "$CFG_ROOT_DIR/PYTHON_EXECUTABLE") + else + PYTHON_EXECUTABLE=python3 + fi fi -function setup { - # create a virtualenv on Python - mkdir -p $CONFIGURE_ROOT_DIR/tmp - wget -O $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz - $PYTHON_EXE $CONFIGURE_ROOT_DIR/tmp/virtualenv.pyz --wheel embed --pip embed --setuptools embed --seeder pip $CONFIGURE_ROOT_DIR/tmp - source $CONFIGURE_ROOT_DIR/tmp/bin/activate +################################ +cli_help() { + echo An initial configuration script + echo " usage: ./configure [options]" + echo + echo The default is to configure for regular use. Use --dev for development. + echo + echo The options are: + echo " --clean: clean built and installed files and exit." + echo " --dev: configure the environment for development." + echo " --help: display this help message and exit." + echo + echo By default, the python interpreter version found in the path is used. + echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to + echo configure another Python executable interpreter to use. If this is not + echo set, a file named PYTHON_EXECUTABLE containing a single line with the + echo path of the Python executable to use will be checked last. + set +e + exit } -setup +clean() { + # Remove cleanable file and directories and files from the root dir. + echo "* Cleaning ..." + for cln in $CLEANABLE; + do rm -rf "${CFG_ROOT_DIR:?}/${cln:?}"; + done + set +e + exit +} -$CONFIGURE_ROOT_DIR/tmp/bin/pip install -e .[testing] -if [ -f "$CONFIGURE_ROOT_DIR/tmp/bin/activate" ]; then - source "$CONFIGURE_ROOT_DIR/tmp/bin/activate" -fi +create_virtualenv() { + # create a virtualenv for Python + # Note: we do not use the bundled Python 3 "venv" because its behavior and + # presence is not consistent across Linux distro and sometimes pip is not + # included either by default. The virtualenv.pyz app cures all these issues. + + VENV_DIR="$1" + if [ ! -f "$CFG_BIN_DIR/python" ]; then + + mkdir -p "$CFG_ROOT_DIR/$VENV_DIR" + + if [ -f "$CFG_ROOT_DIR/etc/thirdparty/virtualenv.pyz" ]; then + VIRTUALENV_PYZ="$CFG_ROOT_DIR/etc/thirdparty/virtualenv.pyz" + else + VIRTUALENV_PYZ="$CFG_ROOT_DIR/$VENV_DIR/virtualenv.pyz" + wget -O "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL" + fi + + $PYTHON_EXECUTABLE "$VIRTUALENV_PYZ" \ + --wheel embed --pip embed --setuptools embed \ + --seeder pip \ + --never-download \ + --no-periodic-update \ + --no-vcs-ignore \ + $CFG_QUIET \ + "$CFG_ROOT_DIR/$VENV_DIR" + fi +} + + +install_packages() { + # install requirements in virtualenv + # note: --no-build-isolation means that pip/wheel/setuptools will not + # be reinstalled a second time and reused from the virtualenv and this + # speeds up the installation. + # We always have the PEP517 build dependencies installed already. + + "$CFG_BIN_DIR/pip" install \ + --upgrade \ + --no-build-isolation \ + $CFG_QUIET \ + $PIP_EXTRA_ARGS \ + $1 +} + + +################################ +# Main command line entry point +CFG_DEV_MODE=0 +CFG_REQUIREMENTS=$REQUIREMENTS + +case "$CLI_ARGS" in + --help) cli_help;; + --clean) clean;; + --dev) CFG_REQUIREMENTS="$DEV_REQUIREMENTS" && CFG_DEV_MODE=1;; +esac + +create_virtualenv "$VIRTUALENV_DIR" +install_packages "$CFG_REQUIREMENTS" +. "$CFG_BIN_DIR/activate" set +e diff --git a/configure.bat b/configure.bat index 00cb101..8c497ba 100644 --- a/configure.bat +++ b/configure.bat @@ -1,120 +1,180 @@ @echo OFF @setlocal -@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. + +@rem Copyright (c) nexB Inc. and others. All rights reserved. +@rem SPDX-License-Identifier: Apache-2.0 +@rem See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +@rem See https://github.com/nexB/ for support or download. +@rem See https://aboutcode.org for more information about nexB OSS projects. + @rem ################################ -@rem # A configuration script for Windows -@rem # -@rem # The options and (optional) arguments are: -@rem # --clean : this is exclusive of anything else and cleans the environment -@rem # from built and installed files -@rem # -@rem # --python < path to python.exe> : this must be the first argument and set -@rem # the path to the Python executable to use. If < path to python.exe> is -@rem # set to "path", then the executable will be the python.exe available -@rem # in the PATH. +@rem # A configuration script to set things up: +@rem # create a virtualenv and install or update thirdparty packages. +@rem # Source this script for initial configuration +@rem # Use configure --help for details + +@rem # This script will search for a virtualenv.pyz app in etc\thirdparty\virtualenv.pyz +@rem # Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default @rem ################################ -@rem Current directory where this .bat files lives -set CFG_ROOT_DIR=%~dp0 -@rem path where a configured Python should live in the current virtualenv if installed -set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe -set PYTHON_EXECUTABLE= +@rem ################################ +@rem # Defaults. Change these variables to customize this script +@rem ################################ + +@rem # Requirement arguments passed to pip and used by default or with --dev. +set "REQUIREMENTS=--editable ." +set "DEV_REQUIREMENTS=--editable .[testing]" + +@rem # where we create a virtualenv +set "VIRTUALENV_DIR=tmp" + +@rem # Cleanable files and directories to delete with the --clean option +set "CLEANABLE=build tmp" -@rem parse command line options and arguments -:collectopts -if "%1" EQU "--help" (goto cli_help) -if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b -if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts +@rem # extra arguments passed to pip +set "PIP_EXTRA_ARGS= " -@rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run -if exist ""%CONFIGURED_PYTHON%"" ( - set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% - goto run +@rem # the URL to download virtualenv.pyz if needed +set VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz +@rem ################################ + + +@rem ################################ +@rem # Current directory where this script lives +set CFG_ROOT_DIR=%~dp0 +set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" + + +@rem ################################ +@rem # Set the quiet flag to empty if not defined +if not defined CFG_QUIET ( + set "CFG_QUIET= " ) -@rem If we have a command arg for Python use this as-is -if ""%PROVIDED_PYTHON%""==""path"" ( - @rem use a bare python available in the PATH - set PYTHON_EXECUTABLE=python - goto run + +@rem ################################ +@rem # Main command line entry point +set CFG_DEV_MODE=0 +set "CFG_REQUIREMENTS=%REQUIREMENTS%" + +if "%1" EQU "--help" (goto cli_help) +if "%1" EQU "--clean" (goto clean) +if "%1" EQU "--dev" ( + set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" + set CFG_DEV_MODE=1 ) -if exist ""%PROVIDED_PYTHON%"" ( - set PYTHON_EXECUTABLE=%PROVIDED_PYTHON% - goto run +if "%1" EQU "--python" ( + echo "The --python is now DEPRECATED. Use the PYTHON_EXECUTABLE environment + echo "variable instead. Run configure --help for details." + exit /b 0 ) +@rem ################################ +@rem # find a proper Python to run +@rem # Use environment variables or a file if available. +@rem # Otherwise the latest Python by default. +if not defined PYTHON_EXECUTABLE ( + @rem # check for a file named PYTHON_EXECUTABLE + if exist ""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" ( + set /p PYTHON_EXECUTABLE=<""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" + ) else ( + set "PYTHON_EXECUTABLE=py" + ) +) -@rem otherwise we search for a suitable Python interpreter -:find_python -@rem First check the existence of the "py" launcher (available in Python 3) -@rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 -@rem if not, check if we have an old py 2.7 -@rem exist if all fails +:create_virtualenv +@rem # create a virtualenv for Python +@rem # Note: we do not use the bundled Python 3 "venv" because its behavior and +@rem # presence is not consistent across Linux distro and sometimes pip is not +@rem # included either by default. The virtualenv.pyz app cures all these issues. -where py >nul 2>nul -if %ERRORLEVEL% == 0 ( - @rem we have a py launcher, check for the availability of our required Python 3 version - py -3.6 --version >nul 2>nul - if %ERRORLEVEL% == 0 ( - set PYTHON_EXECUTABLE=py -3.6 - ) else ( - @rem we have no required python 3, let's try python 2: - py -2 --version >nul 2>nul - if %ERRORLEVEL% == 0 ( - set PYTHON_EXECUTABLE=py -2 - ) else ( - @rem we have py and no python 3 and 2, exit - echo * Unable to find an installation of Python. - exit /b 1 - ) +if not exist ""%CFG_BIN_DIR%\python.exe"" ( + if not exist "%CFG_BIN_DIR%" ( + mkdir %CFG_BIN_DIR% ) -) else ( - @rem we have no py launcher, check for a default Python 2 installation - if not exist ""%DEFAULT_PYTHON2%"" ( - echo * Unable to find an installation of Python. - exit /b 1 + + if exist ""%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz"" ( + %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ^ + --wheel embed --pip embed --setuptools embed ^ + --seeder pip ^ + --never-download ^ + --no-periodic-update ^ + --no-vcs-ignore ^ + %CFG_QUIET% ^ + %CFG_ROOT_DIR%\%VIRTUALENV_DIR% ) else ( - set PYTHON_EXECUTABLE=%DEFAULT_PYTHON2% + if not exist ""%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz"" ( + curl -o "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" %VIRTUALENV_PYZ_URL% + + if %ERRORLEVEL% neq 0 ( + exit /b %ERRORLEVEL% + ) + ) + %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" ^ + --wheel embed --pip embed --setuptools embed ^ + --seeder pip ^ + --never-download ^ + --no-periodic-update ^ + --no-vcs-ignore ^ + %CFG_QUIET% ^ + %CFG_ROOT_DIR%\%VIRTUALENV_DIR% ) ) +if %ERRORLEVEL% neq 0 ( + exit /b %ERRORLEVEL% +) + -:run -@rem without this things may not always work on Windows 10, but this makes things slower -set PYTHONDONTWRITEBYTECODE=1 +:install_packages +@rem # install requirements in virtualenv +@rem # note: --no-build-isolation means that pip/wheel/setuptools will not +@rem # be reinstalled a second time and reused from the virtualenv and this +@rem # speeds up the installation. +@rem # We always have the PEP517 build dependencies installed already. -call mkdir "%CFG_ROOT_DIR%tmp" -call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz -call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" --wheel embed --pip embed --setuptools embed --seeder pip "%CFG_ROOT_DIR%tmp" -call "%CFG_ROOT_DIR%tmp\Scripts\activate" -call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] +%CFG_BIN_DIR%\pip install ^ + --upgrade ^ + --no-build-isolation ^ + %CFG_QUIET% ^ + %PIP_EXTRA_ARGS% ^ + %CFG_REQUIREMENTS% -@rem Return a proper return code on failure if %ERRORLEVEL% neq 0 ( exit /b %ERRORLEVEL% ) -endlocal -goto activate +exit /b 0 + + +@rem ################################ :cli_help -echo A configuration script for Windows -echo usage: configure [options] [path/to/config/directory] -echo. -echo The options and arguments are: -echo --clean : this is exclusive of anything else and cleans the environment -echo from built and installed files -echo. -echo --python path/to/python.exe : this is set to the path of an alternative -echo Python executable to use. If path/to/python.exe is set to "path", -echo then the executable will be the python.exe available in the PATH. -echo. - - -:activate -@rem Activate the virtualenv -if exist "%CFG_ROOT_DIR%tmp\Scripts\activate" ( - "%CFG_ROOT_DIR%tmp\Scripts\activate" + echo An initial configuration script + echo " usage: configure [options]" + echo " " + echo The default is to configure for regular use. Use --dev for development. + echo " " + echo The options are: + echo " --clean: clean built and installed files and exit." + echo " --dev: configure the environment for development." + echo " --help: display this help message and exit." + echo " " + echo By default, the python interpreter version found in the path is used. + echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to + echo configure another Python executable interpreter to use. If this is not + echo set, a file named PYTHON_EXECUTABLE containing a single line with the + echo path of the Python executable to use will be checked last. + exit /b 0 + + +:clean +@rem # Remove cleanable file and directories and files from the root dir. +echo "* Cleaning ..." +for %%F in (%CLEANABLE%) do ( + rmdir /s /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 + del /f /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 ) +exit /b 0 diff --git a/etc/ci/azure-posix.yml b/etc/ci/azure-posix.yml index 752ae2e..0921d9b 100644 --- a/etc/ci/azure-posix.yml +++ b/etc/ci/azure-posix.yml @@ -19,6 +19,7 @@ jobs: python_version: ${{ pyver }} test_suite_label: ${{ tsuite.key }} test_suite: ${{ tsuite.value }} + steps: - checkout: self fetchDepth: 10 @@ -29,7 +30,11 @@ jobs: architecture: '${{ parameters.python_architecture }}' displayName: 'Install Python $(python_version)' - - script: ./configure + - script: | + python3 --version + python$(python_version) --version + echo "python$(python_version)" > PYTHON_EXECUTABLE + ./configure --dev displayName: 'Run Configure' - script: $(test_suite) diff --git a/etc/ci/azure-win.yml b/etc/ci/azure-win.yml index afe1686..03d8927 100644 --- a/etc/ci/azure-win.yml +++ b/etc/ci/azure-win.yml @@ -29,7 +29,10 @@ jobs: architecture: '${{ parameters.python_architecture }}' displayName: 'Install Python $(python_version)' - - script: configure --python path + - script: | + python --version + echo | set /p=python> PYTHON_EXECUTABLE + configure --dev displayName: 'Run Configure' - script: $(test_suite) From aa04429ae6e5d05ef8ee2a0fbad9872014463a25 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:17:09 +0200 Subject: [PATCH 047/247] Add notes on customization Signed-off-by: Philippe Ombredanne --- README.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.rst b/README.rst index a0e682f..a291173 100644 --- a/README.rst +++ b/README.rst @@ -32,3 +32,12 @@ Update an existing project git merge skeleton/main --allow-unrelated-histories This is also the workflow to use when updating the skeleton files in any given repository. + + +Customizing +----------- + +You typically want to perform these customizations: + +- remove or update the src/README.rst and tests/README.rst files +- check the configure and configure.bat defaults From 56ada8fffacac14140bf016fd3f6bee4f4615fcc Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:19:12 +0200 Subject: [PATCH 048/247] Adopt new configure --dev convention Signed-off-by: Philippe Ombredanne --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7a342df..1b52eb2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ python: - "3.8" # Scripts to run at install stage -install: ./configure +install: ./configure --dev # Scripts to run at script stage script: tmp/bin/pytest From 0dbcdc9f6c929b3d030910a69e5566c149e15d7a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:21:48 +0200 Subject: [PATCH 049/247] Clarify CHANGELOG to be Rst Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5f8bc8d..fc2b6e3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,8 @@ -Release notes -------------- -### Version 0.0.0 +Changelog +========= + + +v0.0.0 +------ *xxxx-xx-xx* -- Initial release. From d21aef35a61675289bbebf963030b539c10a7b28 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 11 May 2021 11:22:22 +0200 Subject: [PATCH 050/247] Add skeleton release notes to README.rst This was they do not end up in the template CHANGELOG.rst Signed-off-by: Philippe Ombredanne --- README.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.rst b/README.rst index a291173..b84a049 100644 --- a/README.rst +++ b/README.rst @@ -41,3 +41,10 @@ You typically want to perform these customizations: - remove or update the src/README.rst and tests/README.rst files - check the configure and configure.bat defaults + + +Release Notes +------------- + +- 2021-05-11: adopt new configure scripts from ScanCode TK that allows correct + configuration of which Python version is used. From 3aeb2ec68d313b75430539d9e4d2e57c53ef6998 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 31 May 2021 11:24:39 +0200 Subject: [PATCH 051/247] Update format Signed-off-by: Philippe Ombredanne --- setup.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index f791084..f192f22 100644 --- a/setup.cfg +++ b/setup.cfg @@ -20,7 +20,7 @@ classifiers = Programming Language :: Python :: 3 :: Only Topic :: Software Development Topic :: Utilities -keywords = +keywords = utilities [options] @@ -43,4 +43,4 @@ testing = docs= Sphinx>=3.3.1 sphinx-rtd-theme>=0.5.0 - doc8>=0.8.1 \ No newline at end of file + doc8>=0.8.1 From 2c412e8222d4d615384a24e2ddc472b0c9703916 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 31 May 2021 11:24:57 +0200 Subject: [PATCH 052/247] Add Python 3.9 to Travis Signed-off-by: Philippe Ombredanne --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1b52eb2..1a90a38 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ python: - "3.6" - "3.7" - "3.8" + - "3.9" # Scripts to run at install stage install: ./configure --dev From 69eec23792d59dbdc3a3acb1711884560cf27073 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 31 May 2021 11:27:35 +0200 Subject: [PATCH 053/247] Format and remove spurious spaces From https://github.com/nexB/typecode/pull/20 Reported-by: Pierre Tardy Signed-off-by: Philippe Ombredanne --- configure.bat | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.bat b/configure.bat index 8c497ba..80d0a43 100644 --- a/configure.bat +++ b/configure.bat @@ -9,7 +9,7 @@ @rem ################################ -@rem # A configuration script to set things up: +@rem # A configuration script to set things up: @rem # create a virtualenv and install or update thirdparty packages. @rem # Source this script for initial configuration @rem # Use configure --help for details @@ -48,7 +48,7 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ -@rem # Set the quiet flag to empty if not defined +@rem # Set the quiet flag to empty if not defined if not defined CFG_QUIET ( set "CFG_QUIET= " ) @@ -65,8 +65,8 @@ if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" set CFG_DEV_MODE=1 ) -if "%1" EQU "--python" ( - echo "The --python is now DEPRECATED. Use the PYTHON_EXECUTABLE environment +if "%1" EQU "--python"( + echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" echo "variable instead. Run configure --help for details." exit /b 0 ) @@ -76,7 +76,7 @@ if "%1" EQU "--python" ( @rem # Use environment variables or a file if available. @rem # Otherwise the latest Python by default. if not defined PYTHON_EXECUTABLE ( - @rem # check for a file named PYTHON_EXECUTABLE + @rem # check for a file named PYTHON_EXECUTABLE if exist ""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" ( set /p PYTHON_EXECUTABLE=<""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" ) else ( From 0e09ad9eb77ca0b580d71baa428955a0a56d19f1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 31 May 2021 19:17:43 +0200 Subject: [PATCH 054/247] Bump to more modern version of setuptools_scm And remove v prefix from fallback version Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8eebe91..852f0fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,11 @@ [build-system] -requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 4"] +requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 6"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] # this is used populated when creating a git archive # and when there is .git dir and/or there is no git installed -fallback_version = "v9999.$Format:%h-%cs$" +fallback_version = "9999.$Format:%h-%cs$" [tool.pytest.ini_options] norecursedirs = [ From e339a70e1a46b613fa73b9d0a9273fe7640acb8d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 31 May 2021 19:18:09 +0200 Subject: [PATCH 055/247] Add space for correct syntax Signed-off-by: Philippe Ombredanne --- configure.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.bat b/configure.bat index 80d0a43..c12f937 100644 --- a/configure.bat +++ b/configure.bat @@ -65,7 +65,7 @@ if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" set CFG_DEV_MODE=1 ) -if "%1" EQU "--python"( +if "%1" EQU "--python" ( echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" echo "variable instead. Run configure --help for details." exit /b 0 From 9dff54a1f827ee2d40761fae72cd0c1b69489818 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Thu, 17 Jun 2021 17:59:32 +0800 Subject: [PATCH 056/247] Create junction from Scripts to bin * This is handy for windows to have the same path as linux Signed-off-by: Chin Yeung Li --- configure.bat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.bat b/configure.bat index c12f937..bafa126 100644 --- a/configure.bat +++ b/configure.bat @@ -142,6 +142,9 @@ if %ERRORLEVEL% neq 0 ( %PIP_EXTRA_ARGS% ^ %CFG_REQUIREMENTS% +@rem # Create junction to bin to have the same directory between linux and windows +mklink /J %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts + if %ERRORLEVEL% neq 0 ( exit /b %ERRORLEVEL% ) From 77ce5e4068eaa64b876ca267d09e1689fe67ae8f Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 30 Aug 2021 17:40:27 -0700 Subject: [PATCH 057/247] Check for deps in local thirdparty directory #31 Signed-off-by: Jono Yang --- configure | 8 +++++--- configure.bat | 6 ++++++ thirdparty/README.rst | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 thirdparty/README.rst diff --git a/configure b/configure index 25ab0ce..99bdf57 100755 --- a/configure +++ b/configure @@ -11,7 +11,7 @@ set -e #set -x ################################ -# A configuration script to set things up: +# A configuration script to set things up: # create a virtualenv and install or update thirdparty packages. # Source this script for initial configuration # Use configure --help for details @@ -50,9 +50,11 @@ VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin +# Find packages from the local thirdparty directory or from pypi +PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" ################################ -# Set the quiet flag to empty if not defined +# Set the quiet flag to empty if not defined if [[ "$CFG_QUIET" == "" ]]; then CFG_QUIET=" " fi @@ -63,7 +65,7 @@ fi # Use environment variables or a file if available. # Otherwise the latest Python by default. if [[ "$PYTHON_EXECUTABLE" == "" ]]; then - # check for a file named PYTHON_EXECUTABLE + # check for a file named PYTHON_EXECUTABLE if [ -f "$CFG_ROOT_DIR/PYTHON_EXECUTABLE" ]; then PYTHON_EXECUTABLE=$(cat "$CFG_ROOT_DIR/PYTHON_EXECUTABLE") else diff --git a/configure.bat b/configure.bat index bafa126..be8f579 100644 --- a/configure.bat +++ b/configure.bat @@ -47,6 +47,12 @@ set CFG_ROOT_DIR=%~dp0 set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" +@rem ################################ +@rem # Thirdparty package locations and index handling +set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty" +@rem ################################ + + @rem ################################ @rem # Set the quiet flag to empty if not defined if not defined CFG_QUIET ( diff --git a/thirdparty/README.rst b/thirdparty/README.rst new file mode 100644 index 0000000..b31482f --- /dev/null +++ b/thirdparty/README.rst @@ -0,0 +1,2 @@ +Put your Python dependency wheels to be vendored in this directory. + From 1bcaaa574d4430ae363e66a3ace74ef3e4e8981b Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 1 Sep 2021 15:59:49 -0700 Subject: [PATCH 058/247] Enforce use of requirements.txt #34 Signed-off-by: Jono Yang --- configure | 12 ++++++++---- configure.bat | 11 ++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/configure b/configure index 99bdf57..66d939a 100755 --- a/configure +++ b/configure @@ -26,8 +26,8 @@ CLI_ARGS=$1 ################################ # Requirement arguments passed to pip and used by default or with --dev. -REQUIREMENTS="--editable ." -DEV_REQUIREMENTS="--editable .[testing]" +REQUIREMENTS="--editable . --constraint requirements.txt" +DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" # where we create a virtualenv VIRTUALENV_DIR=tmp @@ -50,8 +50,12 @@ VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin -# Find packages from the local thirdparty directory or from pypi -PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" +# Find packages from the local thirdparty directory or from thirdparty.aboutcode.org +PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty --find-links https://thirdparty.aboutcode.org/pypi" + +if [[ -f "$CFG_ROOT_DIR/requirements.txt" ]] && [[ -f "$CFG_ROOT_DIR/requirements-dev.txt" ]]; then + PIP_EXTRA_ARGS+=" --no-index" +fi ################################ # Set the quiet flag to empty if not defined diff --git a/configure.bat b/configure.bat index be8f579..75cab5f 100644 --- a/configure.bat +++ b/configure.bat @@ -24,8 +24,8 @@ @rem ################################ @rem # Requirement arguments passed to pip and used by default or with --dev. -set "REQUIREMENTS=--editable ." -set "DEV_REQUIREMENTS=--editable .[testing]" +set "REQUIREMENTS=--editable . --constraint requirements.txt" +set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" @rem # where we create a virtualenv set "VIRTUALENV_DIR=tmp" @@ -49,7 +49,12 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling -set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty" +if exist ""%CFG_ROOT_DIR%\requirements.txt"" if exist ""%CFG_ROOT_DIR%\requirements-dev.txt"" ( + set "INDEX_ARG= --no-index" +) else ( + set "INDEX_ARG= " +) +set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% @rem ################################ From e9067c81d14d07ec2dafc732292a078d0519c885 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 1 Sep 2021 18:04:25 -0700 Subject: [PATCH 059/247] Add scripts from scancode-toolkit/etc/release/ #33 Signed-off-by: Jono Yang --- etc/scripts/bootstrap.py | 212 ++ etc/scripts/build_wheels.py | 97 + etc/scripts/check_thirdparty.py | 32 + etc/scripts/fetch_requirements.py | 145 + etc/scripts/fix_thirdparty.py | 81 + etc/scripts/gen_requirements.py | 43 + etc/scripts/gen_requirements_dev.py | 55 + .../test_utils_pip_compatibility_tags.py | 128 + ...test_utils_pip_compatibility_tags.py.ABOUT | 14 + etc/scripts/test_utils_pypi_supported_tags.py | 91 + .../test_utils_pypi_supported_tags.py.ABOUT | 17 + etc/scripts/utils_dejacode.py | 213 ++ etc/scripts/utils_pip_compatibility_tags.py | 192 ++ .../utils_pip_compatibility_tags.py.ABOUT | 14 + etc/scripts/utils_pypi_supported_tags.py | 109 + .../utils_pypi_supported_tags.py.ABOUT | 17 + etc/scripts/utils_requirements.py | 103 + etc/scripts/utils_thirdparty.py | 2940 +++++++++++++++++ etc/scripts/utils_thirdparty.py.ABOUT | 15 + 19 files changed, 4518 insertions(+) create mode 100644 etc/scripts/bootstrap.py create mode 100644 etc/scripts/build_wheels.py create mode 100644 etc/scripts/check_thirdparty.py create mode 100644 etc/scripts/fetch_requirements.py create mode 100644 etc/scripts/fix_thirdparty.py create mode 100644 etc/scripts/gen_requirements.py create mode 100644 etc/scripts/gen_requirements_dev.py create mode 100644 etc/scripts/test_utils_pip_compatibility_tags.py create mode 100644 etc/scripts/test_utils_pip_compatibility_tags.py.ABOUT create mode 100644 etc/scripts/test_utils_pypi_supported_tags.py create mode 100644 etc/scripts/test_utils_pypi_supported_tags.py.ABOUT create mode 100644 etc/scripts/utils_dejacode.py create mode 100644 etc/scripts/utils_pip_compatibility_tags.py create mode 100644 etc/scripts/utils_pip_compatibility_tags.py.ABOUT create mode 100644 etc/scripts/utils_pypi_supported_tags.py create mode 100644 etc/scripts/utils_pypi_supported_tags.py.ABOUT create mode 100644 etc/scripts/utils_requirements.py create mode 100644 etc/scripts/utils_thirdparty.py create mode 100644 etc/scripts/utils_thirdparty.py.ABOUT diff --git a/etc/scripts/bootstrap.py b/etc/scripts/bootstrap.py new file mode 100644 index 0000000..54701f6 --- /dev/null +++ b/etc/scripts/bootstrap.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import itertools + +import click + +import utils_thirdparty +from utils_thirdparty import Environment +from utils_thirdparty import PypiPackage + + +@click.command() + +@click.option('-r', '--requirements-file', + type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), + metavar='FILE', + multiple=True, + default=['requirements.txt'], + show_default=True, + help='Path to the requirements file(s) to use for thirdparty packages.', +) +@click.option('-d', '--thirdparty-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + metavar='DIR', + default=utils_thirdparty.THIRDPARTY_DIR, + show_default=True, + help='Path to the thirdparty directory where wheels are built and ' + 'sources, ABOUT and LICENSE files fetched.', +) +@click.option('-p', '--python-version', + type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), + metavar='PYVER', + default=utils_thirdparty.PYTHON_VERSIONS, + show_default=True, + multiple=True, + help='Python version(s) to use for this build.', +) +@click.option('-o', '--operating-system', + type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), + metavar='OS', + default=tuple(utils_thirdparty.PLATFORMS_BY_OS), + multiple=True, + show_default=True, + help='OS(ses) to use for this build: one of linux, mac or windows.', +) +@click.option('-l', '--latest-version', + is_flag=True, + help='Get the latest version of all packages, ignoring version specifiers.', +) +@click.option('--sync-dejacode', + is_flag=True, + help='Synchronize packages with DejaCode.', +) +@click.option('--with-deps', + is_flag=True, + help='Also include all dependent wheels.', +) +@click.help_option('-h', '--help') +def bootstrap( + requirements_file, + thirdparty_dir, + python_version, + operating_system, + with_deps, + latest_version, + sync_dejacode, + build_remotely=False, +): + """ + Boostrap a thirdparty Python packages directory from pip requirements. + + Fetch or build to THIRDPARTY_DIR all the wheels and source distributions for + the pip ``--requirement-file`` requirements FILE(s). Build wheels compatible + with all the provided ``--python-version`` PYVER(s) and ```--operating_system`` + OS(s) defaulting to all supported combinations. Create or fetch .ABOUT and + .LICENSE files. + + Optionally ignore version specifiers and use the ``--latest-version`` + of everything. + + Sources and wheels are fetched with attempts first from PyPI, then our remote repository. + If missing wheels are built as needed. + """ + # rename variables for clarity since these are lists + requirements_files = requirements_file + python_versions = python_version + operating_systems = operating_system + + # create the environments we need + evts = itertools.product(python_versions, operating_systems) + environments = [Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] + + # collect all packages to process from requirements files + # this will fail with an exception if there are packages we cannot find + + required_name_versions = set() + + for req_file in requirements_files: + nvs = utils_thirdparty.load_requirements( + requirements_file=req_file, force_pinned=False) + required_name_versions.update(nvs) + if latest_version: + required_name_versions = set((name, None) for name, _ver in required_name_versions) + + print(f'PROCESSING {len(required_name_versions)} REQUIREMENTS in {len(requirements_files)} FILES') + + # fetch all available wheels, keep track of missing + # start with local, then remote, then PyPI + + print('==> COLLECTING ALREADY LOCALLY AVAILABLE REQUIRED WHEELS') + # list of all the wheel filenames either pre-existing, fetched or built + # updated as we progress + available_wheel_filenames = [] + + local_packages_by_namever = { + (p.name, p.version): p + for p in utils_thirdparty.get_local_packages(directory=thirdparty_dir) + } + + # list of (name, version, environment) not local and to fetch + name_version_envt_to_fetch = [] + + # start with a local check + for (name, version), envt in itertools.product(required_name_versions, environments): + local_pack = local_packages_by_namever.get((name, version,)) + if local_pack: + supported_wheels = list(local_pack.get_supported_wheels(environment=envt)) + if supported_wheels: + available_wheel_filenames.extend(w.filename for w in supported_wheels) + print(f'====> No fetch or build needed. ' + f'Local wheel already available for {name}=={version} ' + f'on os: {envt.operating_system} for Python: {envt.python_version}') + continue + + name_version_envt_to_fetch.append((name, version, envt,)) + + print(f'==> TRYING TO FETCH #{len(name_version_envt_to_fetch)} REQUIRED WHEELS') + + # list of (name, version, environment) not fetch and to build + name_version_envt_to_build = [] + + # then check if the wheel can be fetched without building from remote and Pypi + for name, version, envt in name_version_envt_to_fetch: + + fetched_fwn = utils_thirdparty.fetch_package_wheel( + name=name, + version=version, + environment=envt, + dest_dir=thirdparty_dir, + ) + + if fetched_fwn: + available_wheel_filenames.append(fetched_fwn) + else: + name_version_envt_to_build.append((name, version, envt,)) + + # At this stage we have all the wheels we could obtain without building + for name, version, envt in name_version_envt_to_build: + print(f'====> Need to build wheels for {name}=={version} on os: ' + f'{envt.operating_system} for Python: {envt.python_version}') + + packages_and_envts_to_build = [ + (PypiPackage(name, version), envt) + for name, version, envt in name_version_envt_to_build + ] + + print(f'==> BUILDING #{len(packages_and_envts_to_build)} MISSING WHEELS') + + package_envts_not_built, wheel_filenames_built = utils_thirdparty.build_missing_wheels( + packages_and_envts=packages_and_envts_to_build, + build_remotely=build_remotely, + with_deps=with_deps, + dest_dir=thirdparty_dir, +) + if wheel_filenames_built: + available_wheel_filenames.extend(available_wheel_filenames) + + for pack, envt in package_envts_not_built: + print( + f'====> FAILED to build any wheel for {pack.name}=={pack.version} ' + f'on os: {envt.operating_system} for Python: {envt.python_version}' + ) + + print(f'==> FETCHING SOURCE DISTRIBUTIONS') + # fetch all sources, keep track of missing + # This is a list of (name, version) + utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) + + print(f'==> FETCHING ABOUT AND LICENSE FILES') + utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) + + ############################################################################ + if sync_dejacode: + print(f'==> SYNC WITH DEJACODE') + # try to fetch from DejaCode any missing ABOUT + # create all missing DejaCode packages + pass + + utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + + +if __name__ == '__main__': + bootstrap() diff --git a/etc/scripts/build_wheels.py b/etc/scripts/build_wheels.py new file mode 100644 index 0000000..416adc7 --- /dev/null +++ b/etc/scripts/build_wheels.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click + +import utils_thirdparty + + +@click.command() + +@click.option('-n', '--name', + type=str, + metavar='PACKAGE_NAME', + required=True, + help='Python package name to add or build.', +) +@click.option('-v', '--version', + type=str, + default=None, + metavar='VERSION', + help='Python package version to add or build.', +) +@click.option('-d', '--thirdparty-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + metavar='DIR', + default=utils_thirdparty.THIRDPARTY_DIR, + show_default=True, + help='Path to the thirdparty directory where wheels are built.', +) +@click.option('-p', '--python-version', + type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), + metavar='PYVER', + default=utils_thirdparty.PYTHON_VERSIONS, + show_default=True, + multiple=True, + help='Python version to use for this build.', +) +@click.option('-o', '--operating-system', + type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), + metavar='OS', + default=tuple(utils_thirdparty.PLATFORMS_BY_OS), + multiple=True, + show_default=True, + help='OS to use for this build: one of linux, mac or windows.', +) +@click.option('--build-remotely', + is_flag=True, + help='Build missing wheels remotely.', +) +@click.option('--with-deps', + is_flag=True, + help='Also include all dependent wheels.', +) +@click.option('--verbose', + is_flag=True, + help='Provide verbose output.', +) +@click.help_option('-h', '--help') +def build_wheels( + name, + version, + thirdparty_dir, + python_version, + operating_system, + with_deps, + build_remotely, + verbose, +): + """ + Build to THIRDPARTY_DIR all the wheels for the Python PACKAGE_NAME and + optional VERSION. Build wheels compatible with all the `--python-version` + PYVER(s) and `--operating_system` OS(s). + + Build native wheels remotely if needed when `--build-remotely` and include + all dependencies with `--with-deps`. + """ + utils_thirdparty.add_or_upgrade_built_wheels( + name=name, + version=version, + python_versions=python_version, + operating_systems=operating_system, + dest_dir=thirdparty_dir, + build_remotely=build_remotely, + with_deps=with_deps, + verbose=verbose, + ) + + +if __name__ == '__main__': + build_wheels() diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py new file mode 100644 index 0000000..b29ce2b --- /dev/null +++ b/etc/scripts/check_thirdparty.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click + +import utils_thirdparty + + +@click.command() + +@click.option('-d', '--thirdparty-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + required=True, + help='Path to the thirdparty directory to check.', +) +@click.help_option('-h', '--help') +def check_thirdparty_dir(thirdparty_dir): + """ + Check a thirdparty directory for problems. + """ + utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + + +if __name__ == '__main__': + check_thirdparty_dir() diff --git a/etc/scripts/fetch_requirements.py b/etc/scripts/fetch_requirements.py new file mode 100644 index 0000000..dfd202a --- /dev/null +++ b/etc/scripts/fetch_requirements.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import itertools + +import click + +import utils_thirdparty + + +@click.command() + +@click.option('-r', '--requirements-file', + type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), + metavar='FILE', + multiple=True, + default=['requirements.txt'], + show_default=True, + help='Path to the requirements file to use for thirdparty packages.', +) +@click.option('-d', '--thirdparty-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + metavar='DIR', + default=utils_thirdparty.THIRDPARTY_DIR, + show_default=True, + help='Path to the thirdparty directory.', +) +@click.option('-p', '--python-version', + type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), + metavar='INT', + multiple=True, + default=['36'], + show_default=True, + help='Python version to use for this build.', +) +@click.option('-o', '--operating-system', + type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), + metavar='OS', + multiple=True, + default=['linux'], + show_default=True, + help='OS to use for this build: one of linux, mac or windows.', +) +@click.option('-s', '--with-sources', + is_flag=True, + help='Fetch the corresponding source distributions.', +) +@click.option('-a', '--with-about', + is_flag=True, + help='Fetch the corresponding ABOUT and LICENSE files.', +) +@click.option('--allow-unpinned', + is_flag=True, + help='Allow requirements without pinned versions.', +) +@click.option('-s', '--only-sources', + is_flag=True, + help='Fetch only the corresponding source distributions.', +) +@click.option('-u', '--remote-links-url', + type=str, + metavar='URL', + default=utils_thirdparty.REMOTE_LINKS_URL, + show_default=True, + help='URL to a PyPI-like links web site. ' + 'Or local path to a directory with wheels.', +) + +@click.help_option('-h', '--help') +def fetch_requirements( + requirements_file, + thirdparty_dir, + python_version, + operating_system, + with_sources, + with_about, + allow_unpinned, + only_sources, + remote_links_url=utils_thirdparty.REMOTE_LINKS_URL, +): + """ + Fetch and save to THIRDPARTY_DIR all the required wheels for pinned + dependencies found in the `--requirement` FILE requirements file(s). Only + fetch wheels compatible with the provided `--python-version` and + `--operating-system`. + Also fetch the corresponding .ABOUT, .LICENSE and .NOTICE files together + with a virtualenv.pyz app. + + Use exclusively wheel not from PyPI but rather found in the PyPI-like link + repo ``remote_links_url`` if this is a URL. Treat this ``remote_links_url`` + as a local directory path to a wheels directory if this is not a a URL. + """ + + # fetch wheels + python_versions = python_version + operating_systems = operating_system + requirements_files = requirements_file + + if not only_sources: + envs = itertools.product(python_versions, operating_systems) + envs = (utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in envs) + + for env, reqf in itertools.product(envs, requirements_files): + + for package, error in utils_thirdparty.fetch_wheels( + environment=env, + requirements_file=reqf, + allow_unpinned=allow_unpinned, + dest_dir=thirdparty_dir, + remote_links_url=remote_links_url, + ): + if error: + print('Failed to fetch wheel:', package, ':', error) + + # optionally fetch sources + if with_sources or only_sources: + + for reqf in requirements_files: + for package, error in utils_thirdparty.fetch_sources( + requirements_file=reqf, + allow_unpinned=allow_unpinned, + dest_dir=thirdparty_dir, + remote_links_url=remote_links_url, + ): + if error: + print('Failed to fetch source:', package, ':', error) + + if with_about: + utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) + utils_thirdparty.find_problems( + dest_dir=thirdparty_dir, + report_missing_sources=with_sources or only_sources, + report_missing_wheels=not only_sources, + ) + + +if __name__ == '__main__': + fetch_requirements() diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py new file mode 100644 index 0000000..b74b497 --- /dev/null +++ b/etc/scripts/fix_thirdparty.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click + +import utils_thirdparty + + +@click.command() + +@click.option('-d', '--thirdparty-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + required=True, + help='Path to the thirdparty directory to fix.', +) +@click.option('--build-wheels', + is_flag=True, + help='Build all missing wheels .', +) +@click.option('--build-remotely', + is_flag=True, + help='Build missing wheels remotely.', +) +@click.help_option('-h', '--help') +def fix_thirdparty_dir( + thirdparty_dir, + build_wheels, + build_remotely, +): + """ + Fix a thirdparty directory of dependent package wheels and sdist. + + Multiple fixes are applied: + - fetch or build missing binary wheels + - fetch missing source distributions + - derive, fetch or add missing ABOUT files + - fetch missing .LICENSE and .NOTICE files + - remove outdated package versions and the ABOUT, .LICENSE and .NOTICE files + + Optionally build missing binary wheels for all supported OS and Python + version combos locally or remotely. + """ + print('***FETCH*** MISSING WHEELS') + package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) + print('***FETCH*** MISSING SOURCES') + src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) + + package_envts_not_built = [] + if build_wheels: + print('***BUILD*** MISSING WHEELS') + package_envts_not_built, _wheel_filenames_built = utils_thirdparty.build_missing_wheels( + packages_and_envts=package_envts_not_fetched, + build_remotely=build_remotely, + dest_dir=thirdparty_dir, + ) + + print('***ADD*** ABOUT AND LICENSES') + utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) + + # report issues + for name, version in src_name_ver_not_fetched: + print(f'{name}=={version}: Failed to fetch source distribution.') + + for package, envt in package_envts_not_built: + print( + f'{package.name}=={package.version}: Failed to build wheel ' + f'on {envt.operating_system} for Python {envt.python_version}') + + print('***FIND PROBLEMS***') + utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + + +if __name__ == '__main__': + fix_thirdparty_dir() diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py new file mode 100644 index 0000000..c917c87 --- /dev/null +++ b/etc/scripts/gen_requirements.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click +import utils_requirements + + +@click.command() + +@click.option('-s', '--site-packages-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), + required=True, + metavar='DIR', + help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', +) +@click.option('-r', '--requirements-file', + type=click.Path(path_type=str, dir_okay=False), + metavar='FILE', + default='requirements.txt', + show_default=True, + help='Path to the requirements file to update or create.', +) +@click.help_option('-h', '--help') +def gen_requirements(site_packages_dir, requirements_file): + """ + Create or replace the `--requirements-file` file FILE requirements file with all + locally installed Python packages.all Python packages found installed in `--site-packages-dir` + """ + utils_requirements.lock_requirements( + requirements_file=requirements_file, + site_packages_dir=site_packages_dir, + ) + + +if __name__ == '__main__': + gen_requirements() diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py new file mode 100644 index 0000000..91e0ce6 --- /dev/null +++ b/etc/scripts/gen_requirements_dev.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click +import utils_requirements + + +@click.command() + +@click.option('-s', '--site-packages-dir', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), + required=True, + metavar='DIR', + help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', +) +@click.option('-d', '--dev-requirements-file', + type=click.Path(path_type=str, dir_okay=False), + metavar='FILE', + default='requirements-dev.txt', + show_default=True, + help='Path to the dev requirements file to update or create.', +) +@click.option('-r', '--main-requirements-file', + type=click.Path(path_type=str, dir_okay=False), + default='requirements.txt', + metavar='FILE', + show_default=True, + help='Path to the main requirements file. Its requirements will be excluded ' + 'from the generated dev requirements.', +) +@click.help_option('-h', '--help') +def gen_dev_requirements(site_packages_dir, dev_requirements_file, main_requirements_file): + """ + Create or overwrite the `--dev-requirements-file` pip requirements FILE with + all Python packages found installed in `--site-packages-dir`. Exclude + package names also listed in the --main-requirements-file pip requirements + FILE (that are assume to the production requirements and therefore to always + be present in addition to the development requirements). + """ + utils_requirements.lock_dev_requirements( + dev_requirements_file=dev_requirements_file, + main_requirements_file=main_requirements_file, + site_packages_dir=site_packages_dir + ) + + +if __name__ == '__main__': + gen_dev_requirements() diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py new file mode 100644 index 0000000..30c4dda --- /dev/null +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -0,0 +1,128 @@ +"""Generate and work with PEP 425 Compatibility Tags. + +copied from pip-20.3.1 pip/tests/unit/test_utils_compatibility_tags.py +download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py + +Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" + +from unittest.mock import patch +import sysconfig + +import pytest + +import utils_pip_compatibility_tags + + +@pytest.mark.parametrize('version_info, expected', [ + ((2,), '2'), + ((2, 8), '28'), + ((3,), '3'), + ((3, 6), '36'), + # Test a tuple of length 3. + ((3, 6, 5), '36'), + # Test a 2-digit minor version. + ((3, 10), '310'), +]) +def test_version_info_to_nodot(version_info, expected): + actual = pip_compatibility_tags.version_info_to_nodot(version_info) + assert actual == expected + + +class Testcompatibility_tags(object): + + def mock_get_config_var(self, **kwd): + """ + Patch sysconfig.get_config_var for arbitrary keys. + """ + get_config_var = sysconfig.get_config_var + + def _mock_get_config_var(var): + if var in kwd: + return kwd[var] + return get_config_var(var) + + return _mock_get_config_var + + def test_no_hyphen_tag(self): + """ + Test that no tag contains a hyphen. + """ + import pip._internal.utils.compatibility_tags + + mock_gcf = self.mock_get_config_var(SOABI='cpython-35m-darwin') + + with patch('sysconfig.get_config_var', mock_gcf): + supported = pip._internal.utils.compatibility_tags.get_supported() + + for tag in supported: + assert '-' not in tag.interpreter + assert '-' not in tag.abi + assert '-' not in tag.platform + + +class TestManylinux2010Tags(object): + + @pytest.mark.parametrize("manylinux2010,manylinux1", [ + ("manylinux2010_x86_64", "manylinux1_x86_64"), + ("manylinux2010_i686", "manylinux1_i686"), + ]) + def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): + """ + Specifying manylinux2010 implies manylinux1. + """ + groups = {} + supported = pip_compatibility_tags.get_supported(platforms=[manylinux2010]) + for tag in supported: + groups.setdefault( + (tag.interpreter, tag.abi), [] + ).append(tag.platform) + + for arches in groups.values(): + if arches == ['any']: + continue + assert arches[:2] == [manylinux2010, manylinux1] + + +class TestManylinux2014Tags(object): + + @pytest.mark.parametrize("manylinuxA,manylinuxB", [ + ("manylinux2014_x86_64", ["manylinux2010_x86_64", "manylinux1_x86_64"]), + ("manylinux2014_i686", ["manylinux2010_i686", "manylinux1_i686"]), + ]) + def test_manylinuxA_implies_manylinuxB(self, manylinuxA, manylinuxB): + """ + Specifying manylinux2014 implies manylinux2010/manylinux1. + """ + groups = {} + supported = pip_compatibility_tags.get_supported(platforms=[manylinuxA]) + for tag in supported: + groups.setdefault( + (tag.interpreter, tag.abi), [] + ).append(tag.platform) + + expected_arches = [manylinuxA] + expected_arches.extend(manylinuxB) + for arches in groups.values(): + if arches == ['any']: + continue + assert arches[:3] == expected_arches diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py.ABOUT b/etc/scripts/test_utils_pip_compatibility_tags.py.ABOUT new file mode 100644 index 0000000..07eee35 --- /dev/null +++ b/etc/scripts/test_utils_pip_compatibility_tags.py.ABOUT @@ -0,0 +1,14 @@ +about_resource: test_utils_pip_compatibility_tags.py + +type: github +namespace: pypa +name: pip +version: 20.3.1 +subpath: tests/unit/test_utils_compatibility_tags.py + +package_url: pkg:github/pypa/pip@20.3.1#tests/unit/test_utils_compatibility_tags.py + +download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: subset copied from pip for tag handling diff --git a/etc/scripts/test_utils_pypi_supported_tags.py b/etc/scripts/test_utils_pypi_supported_tags.py new file mode 100644 index 0000000..9ad68b2 --- /dev/null +++ b/etc/scripts/test_utils_pypi_supported_tags.py @@ -0,0 +1,91 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from utils_pypi_supported_tags import validate_platforms_for_pypi + +""" +Wheel platform checking tests + +Copied and modified on 2020-12-24 from +https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/tests/unit/forklift/test_legacy.py +""" + + +def validate_wheel_filename_for_pypi(filename): + """ + Validate if the filename is a PyPI/warehouse-uploadable wheel file name + with supported platform tags. Return a list of unsupported platform tags or + an empty list if all tags are supported. + """ + from utils_thirdparty import Wheel + wheel = Wheel.from_filename(filename) + return validate_platforms_for_pypi(wheel.platforms) + + +@pytest.mark.parametrize( + "plat", + [ + "any", + "win32", + "win_amd64", + "win_ia64", + "manylinux1_i686", + "manylinux1_x86_64", + "manylinux2010_i686", + "manylinux2010_x86_64", + "manylinux2014_i686", + "manylinux2014_x86_64", + "manylinux2014_aarch64", + "manylinux2014_armv7l", + "manylinux2014_ppc64", + "manylinux2014_ppc64le", + "manylinux2014_s390x", + "manylinux_2_5_i686", + "manylinux_2_12_x86_64", + "manylinux_2_17_aarch64", + "manylinux_2_17_armv7l", + "manylinux_2_17_ppc64", + "manylinux_2_17_ppc64le", + "manylinux_3_0_s390x", + "macosx_10_6_intel", + "macosx_10_13_x86_64", + "macosx_11_0_x86_64", + "macosx_10_15_arm64", + "macosx_11_10_universal2", + # A real tag used by e.g. some numpy wheels + ( + "macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64." + "macosx_10_10_intel.macosx_10_10_x86_64" + ), + ], +) +def test_is_valid_pypi_wheel_return_true_for_supported_wheel(plat): + filename = f"foo-1.2.3-cp34-none-{plat}.whl" + assert not validate_wheel_filename_for_pypi(filename) + + +@pytest.mark.parametrize( + "plat", + [ + "linux_x86_64", + "linux_x86_64.win32", + "macosx_9_2_x86_64", + "macosx_12_2_arm64", + "macosx_10_15_amd64", + ], +) +def test_is_valid_pypi_wheel_raise_exception_for_aunsupported_wheel(plat): + filename = f"foo-1.2.3-cp34-none-{plat}.whl" + invalid = validate_wheel_filename_for_pypi(filename) + assert invalid diff --git a/etc/scripts/test_utils_pypi_supported_tags.py.ABOUT b/etc/scripts/test_utils_pypi_supported_tags.py.ABOUT new file mode 100644 index 0000000..176efac --- /dev/null +++ b/etc/scripts/test_utils_pypi_supported_tags.py.ABOUT @@ -0,0 +1,17 @@ +about_resource: test_utils_pypi_supported_tags.py + +type: github +namespace: pypa +name: warehouse +version: 37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d +subpath: tests/unit/forklift/test_legacy.py + +package_url: pkg:github/pypa/warehouse@37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d#tests/unit/forklift/test_legacy.py + +download_url: https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/tests/unit/forklift/test_legacy.py +copyright: Copyright (c) The warehouse developers +homepage_url: https://warehouse.readthedocs.io +license_expression: apache-2.0 +notes: Test for wheel platform checking copied and heavily modified on + 2020-12-24 from warehouse. This contains the basic functions to check if a + wheel file name is would be supported for uploading to PyPI. diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py new file mode 100644 index 0000000..bb37de1 --- /dev/null +++ b/etc/scripts/utils_dejacode.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import io +import os +import zipfile + +import requests +import saneyaml + +from packaging import version as packaging_version + +""" +Utility to create and retrieve package and ABOUT file data from DejaCode. +""" + +DEJACODE_API_KEY = os.environ.get('DEJACODE_API_KEY', '') +DEJACODE_API_URL = os.environ.get('DEJACODE_API_URL', '') + +DEJACODE_API_URL_PACKAGES = f'{DEJACODE_API_URL}packages/' +DEJACODE_API_HEADERS = { + 'Authorization': 'Token {}'.format(DEJACODE_API_KEY), + 'Accept': 'application/json; indent=4', +} + + +def can_do_api_calls(): + if not DEJACODE_API_KEY and DEJACODE_API_URL: + print('DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing') + return False + else: + return True + + +def fetch_dejacode_packages(params): + """ + Return a list of package data mappings calling the package API with using + `params` or an empty list. + """ + if not can_do_api_calls(): + return [] + + response = requests.get( + DEJACODE_API_URL_PACKAGES, + params=params, + headers=DEJACODE_API_HEADERS, + ) + + return response.json()['results'] + + +def get_package_data(distribution): + """ + Return a mapping of package data or None for a Distribution `distribution`. + """ + results = fetch_dejacode_packages(distribution.identifiers()) + + len_results = len(results) + + if len_results == 1: + return results[0] + + elif len_results > 1: + print(f'More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}') + else: + print('Could not find package:', distribution.download_url) + + +def update_with_dejacode_data(distribution): + """ + Update the Distribution `distribution` with DejaCode package data. Return + True if data was updated. + """ + package_data = get_package_data(distribution) + if package_data: + return distribution.update(package_data, keep_extra=False) + + print(f'No package found for: {distribution}') + + +def update_with_dejacode_about_data(distribution): + """ + Update the Distribution `distribution` wiht ABOUT code data fetched from + DejaCode. Return True if data was updated. + """ + package_data = get_package_data(distribution) + if package_data: + package_api_url = package_data['api_url'] + about_url = f'{package_api_url}about' + response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + # note that this is YAML-formatted + about_text = response.json()['about_data'] + about_data = saneyaml.load(about_text) + + return distribution.update(about_data, keep_extra=True) + + print(f'No package found for: {distribution}') + + +def fetch_and_save_about_files(distribution, dest_dir='thirdparty'): + """ + Fetch and save in `dest_dir` the .ABOUT, .LICENSE and .NOTICE files fetched + from DejaCode for a Distribution `distribution`. Return True if files were + fetched. + """ + package_data = get_package_data(distribution) + if package_data: + package_api_url = package_data['api_url'] + about_url = f'{package_api_url}about_files' + response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + about_zip = response.content + with io.BytesIO(about_zip) as zf: + with zipfile.ZipFile(zf) as zi: + zi.extractall(path=dest_dir) + return True + + print(f'No package found for: {distribution}') + + +def find_latest_dejacode_package(distribution): + """ + Return a mapping of package data for the closest version to + a Distribution `distribution` or None. + Return the newest of the packages if prefer_newest is True. + Filter out version-specific attributes. + """ + ids = distribution.purl_identifiers(skinny=True) + packages = fetch_dejacode_packages(params=ids) + if not packages: + return + + for package_data in packages: + matched = ( + package_data['download_url'] == distribution.download_url + and package_data['version'] == distribution.version + and package_data['filename'] == distribution.filename + ) + + if matched: + return package_data + + # there was no exact match, find the latest version + # TODO: consider the closest version rather than the latest + # or the version that has the best data + with_versions = [(packaging_version.parse(p['version']), p) for p in packages] + with_versions = sorted(with_versions) + latest_version, latest_package_version = sorted(with_versions)[-1] + print( + f'Found DejaCode latest version: {latest_version} ' + f'for dist: {distribution.package_url}', + ) + + return latest_package_version + + +def create_dejacode_package(distribution): + """ + Create a new DejaCode Package a Distribution `distribution`. + Return the new or existing package data. + """ + if not can_do_api_calls(): + return + + existing_package_data = get_package_data(distribution) + if existing_package_data: + return existing_package_data + + print(f'Creating new DejaCode package for: {distribution}') + + new_package_payload = { + # Trigger data collection, scan, and purl + 'collect_data': 1, + } + + fields_to_carry_over = [ + 'download_url' + 'type', + 'namespace', + 'name', + 'version', + 'qualifiers', + 'subpath', + 'license_expression', + 'copyright', + 'description', + 'homepage_url', + 'primary_language', + 'notice_text', + ] + + for field in fields_to_carry_over: + value = getattr(distribution, field, None) + if value: + new_package_payload[field] = value + + response = requests.post( + DEJACODE_API_URL_PACKAGES, + data=new_package_payload, + headers=DEJACODE_API_HEADERS, + ) + new_package_data = response.json() + if response.status_code != 201: + raise Exception(f'Error, cannot create package for: {distribution}') + + print(f'New Package created at: {new_package_data["absolute_url"]}') + return new_package_data diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py new file mode 100644 index 0000000..4c6529b --- /dev/null +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -0,0 +1,192 @@ +"""Generate and work with PEP 425 Compatibility Tags. + +copied from pip-20.3.1 pip/_internal/utils/compatibility_tags.py +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py + +Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" + +import re + +from packaging.tags import ( + compatible_tags, + cpython_tags, + generic_tags, + interpreter_name, + interpreter_version, + mac_platforms, +) + +_osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') + + +def version_info_to_nodot(version_info): + # type: (Tuple[int, ...]) -> str + # Only use up to the first two numbers. + return ''.join(map(str, version_info[:2])) + + +def _mac_platforms(arch): + # type: (str) -> List[str] + match = _osx_arch_pat.match(arch) + if match: + name, major, minor, actual_arch = match.groups() + mac_version = (int(major), int(minor)) + arches = [ + # Since we have always only checked that the platform starts + # with "macosx", for backwards-compatibility we extract the + # actual prefix provided by the user in case they provided + # something like "macosxcustom_". It may be good to remove + # this as undocumented or deprecate it in the future. + '{}_{}'.format(name, arch[len('macosx_'):]) + for arch in mac_platforms(mac_version, actual_arch) + ] + else: + # arch pattern didn't match (?!) + arches = [arch] + return arches + + +def _custom_manylinux_platforms(arch): + # type: (str) -> List[str] + arches = [arch] + arch_prefix, arch_sep, arch_suffix = arch.partition('_') + if arch_prefix == 'manylinux2014': + # manylinux1/manylinux2010 wheels run on most manylinux2014 systems + # with the exception of wheels depending on ncurses. PEP 599 states + # manylinux1/manylinux2010 wheels should be considered + # manylinux2014 wheels: + # https://www.python.org/dev/peps/pep-0599/#backwards-compatibility-with-manylinux2010-wheels + if arch_suffix in {'i686', 'x86_64'}: + arches.append('manylinux2010' + arch_sep + arch_suffix) + arches.append('manylinux1' + arch_sep + arch_suffix) + elif arch_prefix == 'manylinux2010': + # manylinux1 wheels run on most manylinux2010 systems with the + # exception of wheels depending on ncurses. PEP 571 states + # manylinux1 wheels should be considered manylinux2010 wheels: + # https://www.python.org/dev/peps/pep-0571/#backwards-compatibility-with-manylinux1-wheels + arches.append('manylinux1' + arch_sep + arch_suffix) + return arches + + +def _get_custom_platforms(arch): + # type: (str) -> List[str] + arch_prefix, _arch_sep, _arch_suffix = arch.partition('_') + if arch.startswith('macosx'): + arches = _mac_platforms(arch) + elif arch_prefix in ['manylinux2014', 'manylinux2010']: + arches = _custom_manylinux_platforms(arch) + else: + arches = [arch] + return arches + + +def _expand_allowed_platforms(platforms): + # type: (Optional[List[str]]) -> Optional[List[str]] + if not platforms: + return None + + seen = set() + result = [] + + for p in platforms: + if p in seen: + continue + additions = [c for c in _get_custom_platforms(p) if c not in seen] + seen.update(additions) + result.extend(additions) + + return result + + +def _get_python_version(version): + # type: (str) -> PythonVersion + if len(version) > 1: + return int(version[0]), int(version[1:]) + else: + return (int(version[0]),) + + +def _get_custom_interpreter(implementation=None, version=None): + # type: (Optional[str], Optional[str]) -> str + if implementation is None: + implementation = interpreter_name() + if version is None: + version = interpreter_version() + return "{}{}".format(implementation, version) + + +def get_supported( + version=None, # type: Optional[str] + platforms=None, # type: Optional[List[str]] + impl=None, # type: Optional[str] + abis=None # type: Optional[List[str]] +): + # type: (...) -> List[Tag] + """Return a list of supported tags for each version specified in + `versions`. + + :param version: a string version, of the form "33" or "32", + or None. The version will be assumed to support our ABI. + :param platforms: specify a list of platforms you want valid + tags for, or None. If None, use the local system platform. + :param impl: specify the exact implementation you want valid + tags for, or None. If None, use the local interpreter impl. + :param abis: specify a list of abis you want valid + tags for, or None. If None, use the local interpreter abi. + """ + supported = [] # type: List[Tag] + + python_version = None # type: Optional[PythonVersion] + if version is not None: + python_version = _get_python_version(version) + + interpreter = _get_custom_interpreter(impl, version) + + platforms = _expand_allowed_platforms(platforms) + + is_cpython = (impl or interpreter_name()) == "cp" + if is_cpython: + supported.extend( + cpython_tags( + python_version=python_version, + abis=abis, + platforms=platforms, + ) + ) + else: + supported.extend( + generic_tags( + interpreter=interpreter, + abis=abis, + platforms=platforms, + ) + ) + supported.extend( + compatible_tags( + python_version=python_version, + interpreter=interpreter, + platforms=platforms, + ) + ) + + return supported diff --git a/etc/scripts/utils_pip_compatibility_tags.py.ABOUT b/etc/scripts/utils_pip_compatibility_tags.py.ABOUT new file mode 100644 index 0000000..7bbb026 --- /dev/null +++ b/etc/scripts/utils_pip_compatibility_tags.py.ABOUT @@ -0,0 +1,14 @@ +about_resource: utils_pip_compatibility_tags.py + +type: github +namespace: pypa +name: pip +version: 20.3.1 +subpath: src/pip/_internal/utils/compatibility_tags.py + +package_url: pkg:github/pypa/pip@20.3.1#src/pip/_internal/utils/compatibility_tags.py + +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: subset copied from pip for tag handling \ No newline at end of file diff --git a/etc/scripts/utils_pypi_supported_tags.py b/etc/scripts/utils_pypi_supported_tags.py new file mode 100644 index 0000000..8dcb70f --- /dev/null +++ b/etc/scripts/utils_pypi_supported_tags.py @@ -0,0 +1,109 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import re + +""" +Wheel platform checking + +Copied and modified on 2020-12-24 from +https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/warehouse/forklift/legacy.py + +This contains the basic functions to check if a wheel file name is would be +supported for uploading to PyPI. +""" + +# These platforms can be handled by a simple static list: +_allowed_platforms = { + "any", + "win32", + "win_amd64", + "win_ia64", + "manylinux1_x86_64", + "manylinux1_i686", + "manylinux2010_x86_64", + "manylinux2010_i686", + "manylinux2014_x86_64", + "manylinux2014_i686", + "manylinux2014_aarch64", + "manylinux2014_armv7l", + "manylinux2014_ppc64", + "manylinux2014_ppc64le", + "manylinux2014_s390x", + "linux_armv6l", + "linux_armv7l", +} +# macosx is a little more complicated: +_macosx_platform_re = re.compile(r"macosx_(?P\d+)_(\d+)_(?P.*)") +_macosx_arches = { + "ppc", + "ppc64", + "i386", + "x86_64", + "arm64", + "intel", + "fat", + "fat32", + "fat64", + "universal", + "universal2", +} +_macosx_major_versions = { + "10", + "11", +} + +# manylinux pep600 is a little more complicated: +_manylinux_platform_re = re.compile(r"manylinux_(\d+)_(\d+)_(?P.*)") +_manylinux_arches = { + "x86_64", + "i686", + "aarch64", + "armv7l", + "ppc64", + "ppc64le", + "s390x", +} + + +def is_supported_platform_tag(platform_tag): + """ + Return True if the ``platform_tag`` is supported on PyPI. + """ + if platform_tag in _allowed_platforms: + return True + m = _macosx_platform_re.match(platform_tag) + if ( + m + and m.group("major") in _macosx_major_versions + and m.group("arch") in _macosx_arches + ): + return True + m = _manylinux_platform_re.match(platform_tag) + if m and m.group("arch") in _manylinux_arches: + return True + return False + + +def validate_platforms_for_pypi(platforms): + """ + Validate if the wheel platforms are supported platform tags on Pypi. Return + a list of unsupported platform tags or an empty list if all tags are + supported. + """ + + # Check that if it's a binary wheel, it's on a supported platform + invalid_tags = [] + for plat in platforms: + if not is_supported_platform_tag(plat): + invalid_tags.append(plat) + return invalid_tags diff --git a/etc/scripts/utils_pypi_supported_tags.py.ABOUT b/etc/scripts/utils_pypi_supported_tags.py.ABOUT new file mode 100644 index 0000000..228a538 --- /dev/null +++ b/etc/scripts/utils_pypi_supported_tags.py.ABOUT @@ -0,0 +1,17 @@ +about_resource: utils_pypi_supported_tags.py + +type: github +namespace: pypa +name: warehouse +version: 37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d +subpath: warehouse/forklift/legacy.py + +package_url: pkg:github/pypa/warehouse@37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d#warehouse/forklift/legacy.py + +download_url: https://github.com/pypa/warehouse/blob/37a83dd342d9e3b3ab4f6bde47ca30e6883e2c4d/warehouse/forklift/legacy.py +copyright: Copyright (c) The warehouse developers +homepage_url: https://warehouse.readthedocs.io +license_expression: apache-2.0 +notes: Wheel platform checking copied and heavily modified on 2020-12-24 from + warehouse. This contains the basic functions to check if a wheel file name is + would be supported for uploading to PyPI. diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py new file mode 100644 index 0000000..8b088ad --- /dev/null +++ b/etc/scripts/utils_requirements.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import subprocess + +""" +Utilities to manage requirements files and call pip. +NOTE: this should use ONLY the standard library and not import anything else. +""" + + +def load_requirements(requirements_file='requirements.txt', force_pinned=True): + """ + Yield package (name, version) tuples for each requirement in a `requirement` + file. Every requirement versions must be pinned if `force_pinned` is True. + Otherwise un-pinned requirements are returned with a None version + """ + with open(requirements_file) as reqs: + req_lines = reqs.read().splitlines(False) + return get_required_name_versions(req_lines, force_pinned) + + +def get_required_name_versions(requirement_lines, force_pinned=True): + """ + Yield required (name, version) tuples given a`requirement_lines` iterable of + requirement text lines. Every requirement versions must be pinned if + `force_pinned` is True. Otherwise un-pinned requirements are returned with a + None version + """ + for req_line in requirement_lines: + req_line = req_line.strip() + if not req_line or req_line.startswith('#'): + continue + if '==' not in req_line and force_pinned: + raise Exception(f'Requirement version is not pinned: {req_line}') + name = req_line + version = None + else: + name, _, version = req_line.partition('==') + name = name.lower().strip() + version = version.lower().strip() + yield name, version + + +def parse_requires(requires): + """ + Return a list of requirement lines extracted from the `requires` text from + a setup.cfg *_requires section such as the "install_requires" section. + """ + requires = [c for c in requires.splitlines(False) if c] + if not requires: + return [] + + requires = [''.join(r.split()) for r in requires if r and r.strip()] + return sorted(requires) + + +def lock_requirements(requirements_file='requirements.txt', site_packages_dir=None): + """ + Freeze and lock current installed requirements and save this to the + `requirements_file` requirements file. + """ + with open(requirements_file, 'w') as fo: + fo.write(get_installed_reqs(site_packages_dir=site_packages_dir)) + + +def lock_dev_requirements( + dev_requirements_file='requirements-dev.txt', + main_requirements_file='requirements.txt', + site_packages_dir=None, +): + """ + Freeze and lock current installed development-only requirements and save + this to the `dev_requirements_file` requirements file. Development-only is + achieved by subtracting requirements from the `main_requirements_file` + requirements file from the current requirements using package names (and + ignoring versions). + """ + main_names = {n for n, _v in load_requirements(main_requirements_file)} + all_reqs = get_installed_reqs(site_packages_dir=site_packages_dir) + all_req_lines = all_reqs.splitlines(False) + all_req_nvs = get_required_name_versions(all_req_lines) + dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names} + + new_reqs = '\n'.join(f'{n}=={v}' for n, v in sorted(dev_only_req_nvs.items())) + with open(dev_requirements_file, 'w') as fo: + fo.write(new_reqs) + + +def get_installed_reqs(site_packages_dir): + """ + Return the installed pip requirements as text found in `site_packages_dir` as a text. + """ + # Also include these packages in the output with --all: wheel, distribute, setuptools, pip + args = ['pip', 'freeze', '--exclude-editable', '--all', '--path', site_packages_dir] + return subprocess.check_output(args, encoding='utf-8') diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py new file mode 100644 index 0000000..360f07a --- /dev/null +++ b/etc/scripts/utils_thirdparty.py @@ -0,0 +1,2940 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +from collections import defaultdict +import email +import itertools +import operator +import os +import re +import shutil +import subprocess +import tarfile +import tempfile +import time +import urllib + +import attr +import license_expression +import packageurl +import utils_pip_compatibility_tags +import utils_pypi_supported_tags +import requests +import saneyaml + +from commoncode import fileutils +from commoncode.hash import multi_checksums +from packaging import tags as packaging_tags +from packaging import version as packaging_version +from utils_requirements import load_requirements + +""" +Utilities to manage Python thirparty libraries source, binaries and metadata in +local directories and remote repositories. + +- update pip requirement files from installed packages for prod. and dev. +- build and save wheels for all required packages +- also build variants for wheels with native code for all each supported + operating systems (Linux, macOS, Windows) and Python versions (3.x) + combinations using remote Ci jobs +- collect source distributions for all required packages +- keep in sync wheels, distributions, ABOUT and LICENSE files to a PyPI-like + repository (using GitHub) +- create, update and fetch ABOUT, NOTICE and LICENSE metadata for all distributions + + +Approach +-------- + +The processing is organized around these key objects: + +- A PyPiPackage represents a PyPI package with its name and version. It tracks + the downloadable Distribution objects for that version: + + - one Sdist source Distribution object + - a list of Wheel binary Distribution objects + +- A Distribution (either a Wheel or Sdist) is identified by and created from its + filename. It also has the metadata used to populate an .ABOUT file and + document origin and license. A Distribution can be fetched from Repository. + Metadata can be loaded from and dumped to ABOUT files and optionally from + DejaCode package data. + +- An Environment is a combination of a Python version and operating system. + A Wheel Distribution also has Python/OS tags is supports and these can be + supported in a given Environment. + +- Paths or URLs to "filenames" live in a Repository, either a plain + LinksRepository (an HTML page listing URLs or a local directory) or a + PypiRepository (a PyPI simple index where each package name has an HTML page + listing URLs to all distribution types and versions). + Repositories and Distributions are related through filenames. + + + The Wheel models code is partially derived from the mit-licensed pip and the + Distribution/Wheel/Sdist design has been heavily inspired by the packaging- + dists library https://github.com/uranusjr/packaging-dists by Tzu-ping Chung +""" + +TRACE = False + +# Supported environments +PYTHON_VERSIONS = '36', '37', '38', '39', + +ABIS_BY_PYTHON_VERSION = { + '36':['cp36', 'cp36m'], + '37':['cp37', 'cp37m'], + '38':['cp38', 'cp38m'], + '39':['cp39', 'cp39m'], +} + +PLATFORMS_BY_OS = { + 'linux': [ + 'linux_x86_64', + 'manylinux1_x86_64', + 'manylinux2014_x86_64', + 'manylinux2010_x86_64', + ], + 'macos': [ + 'macosx_10_6_intel', 'macosx_10_6_x86_64', + 'macosx_10_9_intel', 'macosx_10_9_x86_64', + 'macosx_10_10_intel', 'macosx_10_10_x86_64', + 'macosx_10_11_intel', 'macosx_10_11_x86_64', + 'macosx_10_12_intel', 'macosx_10_12_x86_64', + 'macosx_10_13_intel', 'macosx_10_13_x86_64', + 'macosx_10_14_intel', 'macosx_10_14_x86_64', + 'macosx_10_15_intel', 'macosx_10_15_x86_64', + ], + 'windows': [ + 'win_amd64', + ], +} + +THIRDPARTY_DIR = 'thirdparty' +CACHE_THIRDPARTY_DIR = '.cache/thirdparty' + +REMOTE_LINKS_URL = 'https://thirdparty.aboutcode.org/pypi' + +EXTENSIONS_APP = '.pyz', +EXTENSIONS_SDIST = '.tar.gz', '.tar.bz2', '.zip', '.tar.xz', +EXTENSIONS_INSTALLABLE = EXTENSIONS_SDIST + ('.whl',) +EXTENSIONS_ABOUT = '.ABOUT', '.LICENSE', '.NOTICE', +EXTENSIONS = EXTENSIONS_INSTALLABLE + EXTENSIONS_ABOUT + EXTENSIONS_APP + +PYPI_SIMPLE_URL = 'https://pypi.org/simple' + +LICENSEDB_API_URL = 'https://scancode-licensedb.aboutcode.org' + +LICENSING = license_expression.Licensing() + +################################################################################ +# +# Fetch remote wheels and sources locally +# +################################################################################ + + +def fetch_wheels( + environment=None, + requirements_file='requirements.txt', + allow_unpinned=False, + dest_dir=THIRDPARTY_DIR, + remote_links_url=REMOTE_LINKS_URL, +): + """ + Download all of the wheel of packages listed in the ``requirements_file`` + requirements file into ``dest_dir`` directory. + + Only get wheels for the ``environment`` Enviromnent constraints. If the + provided ``environment`` is None then the current Python interpreter + environment is used implicitly. + + Only accept pinned requirements (e.g. with a version) unless + ``allow_unpinned`` is True. + + Use exclusively direct downloads from a remote repo at URL + ``remote_links_url``. If ``remote_links_url`` is a path, use this as a + directory of links instead of a URL. + + Yield tuples of (PypiPackage, error) where is None on success. + """ + missed = [] + + if not allow_unpinned: + force_pinned = True + else: + force_pinned = False + + rrp = list(get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + )) + + fetched_filenames = set() + for name, version, package in rrp: + if not package: + missed.append((name, version,)) + nv = f'{name}=={version}' if version else name + yield None, f'fetch_wheels: Missing package in remote repo: {nv}' + + else: + fetched_filename = package.fetch_wheel( + environment=environment, + fetched_filenames=fetched_filenames, + dest_dir=dest_dir, + ) + + if fetched_filename: + fetched_filenames.add(fetched_filename) + error = None + else: + if fetched_filename in fetched_filenames: + error = None + else: + error = f'Failed to fetch' + yield package, error + + if missed: + rr = get_remote_repo() + print() + print(f'===> fetch_wheels: Missed some packages') + for n, v in missed: + nv = f'{n}=={v}' if v else n + print(f'Missed package {nv} in remote repo, has only:') + for pv in rr.get_versions(n): + print(' ', pv) + + +def fetch_sources( + requirements_file='requirements.txt', + allow_unpinned=False, + dest_dir=THIRDPARTY_DIR, + remote_links_url=REMOTE_LINKS_URL, +): + """ + Download all of the dependent package sources listed in the + ``requirements_file`` requirements file into ``dest_dir`` destination + directory. + + Use direct downloads to achieve this (not pip download). Use exclusively the + packages found from a remote repo at URL ``remote_links_url``. If + ``remote_links_url`` is a path, use this as a directory of links instead of + a URL. + + Only accept pinned requirements (e.g. with a version) unless + ``allow_unpinned`` is True. + + Yield tuples of (PypiPackage, error message) for each package where error + message will empty on success. + """ + missed = [] + + if not allow_unpinned: + force_pinned = True + else: + force_pinned = False + + rrp = list(get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + )) + + for name, version, package in rrp: + if not package: + missed.append((name, name,)) + nv = f'{name}=={version}' if version else name + yield None, f'fetch_sources: Missing package in remote repo: {nv}' + + elif not package.sdist: + yield package, f'Missing sdist in links' + + else: + fetched = package.fetch_sdist(dest_dir=dest_dir) + error = f'Failed to fetch' if not fetched else None + yield package, error + +################################################################################ +# +# Core models +# +################################################################################ + + +@attr.attributes +class NameVer: + name = attr.ib( + type=str, + metadata=dict(help='Python package name, lowercase and normalized.'), + ) + + version = attr.ib( + type=str, + metadata=dict(help='Python package version string.'), + ) + + @property + def normalized_name(self): + return NameVer.normalize_name(self.name) + + @staticmethod + def normalize_name(name): + """ + Return a normalized package name per PEP503, and copied from + https://www.python.org/dev/peps/pep-0503/#id4 + """ + return name and re.sub(r"[-_.]+", "-", name).lower() or name + + @staticmethod + def standardize_name(name): + """ + Return a standardized package name, e.g. lowercased and using - not _ + """ + return name and re.sub(r"[-_]+", "-", name).lower() or name + + @property + def name_ver(self): + return f'{self.name}-{self.version}' + + def sortable_name_version(self): + """ + Return a tuple of values to sort by name, then version. + This method is a suitable to use as key for sorting NameVer instances. + """ + return self.normalized_name, packaging_version.parse(self.version) + + @classmethod + def sorted(cls, namevers): + return sorted(namevers, key=cls.sortable_name_version) + + +@attr.attributes +class Distribution(NameVer): + + # field names that can be updated from another dist of mapping + updatable_fields = [ + 'license_expression', + 'copyright', + 'description', + 'homepage_url', + 'primary_language', + 'notice_text', + 'extra_data', + ] + + filename = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='File name.'), + ) + + path_or_url = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Path or download URL.'), + ) + + sha256 = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='SHA256 checksum.'), + ) + + sha1 = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='SHA1 checksum.'), + ) + + md5 = attr.ib( + repr=False, + type=int, + default=0, + metadata=dict(help='MD5 checksum.'), + ) + + type = attr.ib( + repr=False, + type=str, + default='pypi', + metadata=dict(help='Package type'), + ) + + namespace = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Package URL namespace'), + ) + + qualifiers = attr.ib( + repr=False, + type=dict, + default=attr.Factory(dict), + metadata=dict(help='Package URL qualifiers'), + ) + + subpath = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Package URL subpath'), + ) + + size = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Size in bytes.'), + ) + + primary_language = attr.ib( + repr=False, + type=str, + default='Python', + metadata=dict(help='Primary Programming language.'), + ) + + description = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Description.'), + ) + + homepage_url = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Homepage URL'), + ) + + notes = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Notes.'), + ) + + copyright = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Copyright.'), + ) + + license_expression = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='License expression'), + ) + + licenses = attr.ib( + repr=False, + type=list, + default=attr.Factory(list), + metadata=dict(help='List of license mappings.'), + ) + + notice_text = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Notice text'), + ) + + extra_data = attr.ib( + repr=False, + type=dict, + default=attr.Factory(dict), + metadata=dict(help='Extra data'), + ) + + @property + def package_url(self): + """ + Return a Package URL string of self. + """ + return str(packageurl.PackageURL(**self.purl_identifiers())) + + @property + def download_url(self): + if self.path_or_url and self.path_or_url.startswith('https://'): + return self.path_or_url + else: + return self.get_best_download_url() + + @property + def about_filename(self): + return f'{self.filename}.ABOUT' + + def has_about_file(self, dest_dir=THIRDPARTY_DIR): + return os.path.exists(os.path.join(dest_dir, self.about_filename)) + + @property + def about_download_url(self): + return self.build_remote_download_url(self.about_filename) + + @property + def notice_filename(self): + return f'{self.filename}.NOTICE' + + @property + def notice_download_url(self): + return self.build_remote_download_url(self.notice_filename) + + @classmethod + def from_path_or_url(cls, path_or_url): + """ + Return a distribution built from the data found in the filename of a + `path_or_url` string. Raise an exception if this is not a valid + filename. + """ + filename = os.path.basename(path_or_url.strip('/')) + dist = cls.from_filename(filename) + dist.path_or_url = path_or_url + return dist + + @classmethod + def get_dist_class(cls, filename): + if filename.endswith('.whl'): + return Wheel + elif filename.endswith(('.zip', '.tar.gz',)): + return Sdist + raise InvalidDistributionFilename(filename) + + @classmethod + def from_filename(cls, filename): + """ + Return a distribution built from the data found in a `filename` string. + Raise an exception if this is not a valid filename + """ + clazz = cls.get_dist_class(filename) + return clazz.from_filename(filename) + + @classmethod + def from_data(cls, data, keep_extra=False): + """ + Return a distribution built from a `data` mapping. + """ + filename = data['filename'] + dist = cls.from_filename(filename) + dist.update(data, keep_extra=keep_extra) + return dist + + @classmethod + def from_dist(cls, data, dist): + """ + Return a distribution built from a `data` mapping and update it with data + from another dist Distribution. Return None if it cannot be created + """ + # We can only create from a dist of the same package + has_same_key_fields = all(data.get(kf) == getattr(dist, kf, None) + for kf in ('type', 'namespace', 'name') + ) + if not has_same_key_fields: + print(f'Missing key fields: Cannot derive a new dist from data: {data} and dist: {dist}') + return + + has_key_field_values = all(data.get(kf) for kf in ('type', 'name', 'version')) + if not has_key_field_values: + print(f'Missing key field values: Cannot derive a new dist from data: {data} and dist: {dist}') + return + + data = dict(data) + # do not overwrite the data with the other dist + # only supplement + data.update({k: v for k, v in dist.get_updatable_data().items() if not data.get(k)}) + return cls.from_data(data) + + @classmethod + def build_remote_download_url(cls, filename, base_url=REMOTE_LINKS_URL): + """ + Return a direct download URL for a file in our remote repo + """ + return f'{base_url}/{filename}' + + def get_best_download_url(self): + """ + Return the best download URL for this distribution where best means that + PyPI is better and our own remote repo URLs are second. + If none is found, return a synthetic remote URL. + """ + name = self.normalized_name + version = self.version + filename = self.filename + + pypi_package = get_pypi_package(name=name, version=version) + if pypi_package: + pypi_url = pypi_package.get_url_for_filename(filename) + if pypi_url: + return pypi_url + + remote_package = get_remote_package(name=name, version=version) + if remote_package: + remote_url = remote_package.get_url_for_filename(filename) + if remote_url: + return remote_url + else: + # the package may not have been published yet, so we craft a URL + # using our remote base URL + return self.build_remote_download_url(self.filename) + + def purl_identifiers(self, skinny=False): + """ + Return a mapping of non-empty identifier name/values for the purl + fields. If skinny is True, only inlucde type, namespace and name. + """ + identifiers = dict( + type=self.type, + namespace=self.namespace, + name=self.name, + ) + + if not skinny: + identifiers.update( + version=self.version, + subpath=self.subpath, + qualifiers=self.qualifiers, + ) + + return {k: v for k, v in sorted(identifiers.items()) if v} + + def identifiers(self, purl_as_fields=True): + """ + Return a mapping of non-empty identifier name/values. + Return each purl fields separately if purl_as_fields is True. + Otherwise return a package_url string for the purl. + """ + if purl_as_fields: + identifiers = self.purl_identifiers() + else: + identifiers = dict(package_url=self.package_url) + + identifiers.update( + download_url=self.download_url, + filename=self.filename, + md5=self.md5, + sha1=self.sha1, + package_url=self.package_url, + ) + + return {k: v for k, v in sorted(identifiers.items()) if v} + + def has_key_metadata(self): + """ + Return True if this distribution has key metadata required for basic attribution. + """ + if self.license_expression == 'public-domain': + # copyright not needed + return True + return self.license_expression and self.copyright and self.path_or_url + + def to_about(self): + """ + Return a mapping of ABOUT data from this distribution fields. + """ + about_data = dict( + about_resource=self.filename, + checksum_md5=self.md5, + checksum_sha1=self.sha1, + copyright=self.copyright, + description=self.description, + download_url=self.download_url, + homepage_url=self.homepage_url, + license_expression=self.license_expression, + name=self.name, + namespace=self.namespace, + notes=self.notes, + notice_file=self.notice_filename if self.notice_text else '', + package_url=self.package_url, + primary_language=self.primary_language, + qualifiers=self.qualifiers, + size=self.size, + subpath=self.subpath, + type=self.type, + version=self.version, + ) + + about_data.update(self.extra_data) + about_data = {k: v for k, v in sorted(about_data.items()) if v} + return about_data + + def to_dict(self): + """ + Return a mapping data from this distribution. + """ + return {k: v for k, v in attr.asdict(self).items() if v} + + def save_about_and_notice_files(self, dest_dir=THIRDPARTY_DIR): + """ + Save a .ABOUT file to `dest_dir`. Include a .NOTICE file if there is a + notice_text. + """ + + def save_if_modified(location, content): + if os.path.exists(location): + with open(location) as fi: + existing_content = fi.read() + if existing_content == content: + return False + + if TRACE: print(f'Saving ABOUT (and NOTICE) files for: {self}') + with open(location, 'w') as fo: + fo.write(content) + return True + + save_if_modified( + location=os.path.join(dest_dir, self.about_filename), + content=saneyaml.dump(self.to_about()), + ) + + notice_text = self.notice_text and self.notice_text.strip() + if notice_text: + save_if_modified( + location=os.path.join(dest_dir, self.notice_filename), + content=notice_text, + ) + + def load_about_data(self, about_filename_or_data=None, dest_dir=THIRDPARTY_DIR): + """ + Update self with ABOUT data loaded from an `about_filename_or_data` + which is either a .ABOUT file in `dest_dir` or an ABOUT data mapping. + `about_filename_or_data` defaults to this distribution default ABOUT + filename if not provided. Load the notice_text if present from dest_dir. + """ + if not about_filename_or_data: + about_filename_or_data = self.about_filename + + if isinstance(about_filename_or_data, str): + # that's an about_filename + about_path = os.path.join(dest_dir, about_filename_or_data) + if os.path.exists(about_path): + with open(about_path) as fi: + about_data = saneyaml.load(fi.read()) + else: + return False + else: + about_data = about_filename_or_data + + md5 = about_data.pop('checksum_md5', None) + if md5: + about_data['md5'] = md5 + sha1 = about_data.pop('checksum_sha1', None) + if sha1: + about_data['sha1'] = sha1 + sha256 = about_data.pop('checksum_sha256', None) + if sha256: + about_data['sha256'] = sha256 + + about_data.pop('about_resource', None) + notice_text = about_data.pop('notice_text', None) + notice_file = about_data.pop('notice_file', None) + if notice_text: + about_data['notice_text'] = notice_text + elif notice_file: + notice_loc = os.path.join(dest_dir, notice_file) + if os.path.exists(notice_loc): + with open(notice_loc) as fi: + about_data['notice_text'] = fi.read() + return self.update(about_data, keep_extra=True) + + def load_remote_about_data(self): + """ + Fetch and update self with "remote" data Distribution ABOUT file and + NOTICE file if any. Return True if the data was updated. + """ + try: + about_text = fetch_content_from_path_or_url_through_cache(self.about_download_url) + except RemoteNotFetchedException: + return False + + if not about_text: + return False + + about_data = saneyaml.load(about_text) + notice_file = about_data.pop('notice_file', None) + if notice_file: + try: + notice_text = fetch_content_from_path_or_url_through_cache(self.notice_download_url) + if notice_text: + about_data['notice_text'] = notice_text + except RemoteNotFetchedException: + print(f'Failed to fetch NOTICE file: {self.notice_download_url}') + return self.load_about_data(about_data) + + def get_checksums(self, dest_dir=THIRDPARTY_DIR): + """ + Return a mapping of computed checksums for this dist filename is + `dest_dir`. + """ + dist_loc = os.path.join(dest_dir, self.filename) + if os.path.exists(dist_loc): + return multi_checksums(dist_loc, checksum_names=('md5', 'sha1', 'sha256')) + else: + return {} + + def set_checksums(self, dest_dir=THIRDPARTY_DIR): + """ + Update self with checksums computed for this dist filename is `dest_dir`. + """ + self.update(self.get_checksums(dest_dir), overwrite=True) + + def validate_checksums(self, dest_dir=THIRDPARTY_DIR): + """ + Return True if all checksums that have a value in this dist match + checksums computed for this dist filename is `dest_dir`. + """ + real_checksums = self.get_checksums(dest_dir) + for csk in ('md5', 'sha1', 'sha256'): + csv = getattr(self, csk) + rcv = real_checksums.get(csk) + if csv and rcv and csv != rcv: + return False + return True + + def get_pip_hash(self): + """ + Return a pip hash option string as used in requirements for this dist. + """ + assert self.sha256, f'Missinh SHA256 for dist {self}' + return f'--hash=sha256:{self.sha256}' + + def get_license_keys(self): + return LICENSING.license_keys(self.license_expression, unique=True, simple=True) + + def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): + """ + Fetch license files is missing in `dest_dir`. + Return True if license files were fetched. + """ + paths_or_urls = get_remote_repo().links + errors = [] + extra_lic_names = [l.get('file') for l in self.extra_data.get('licenses', {})] + extra_lic_names += [self.extra_data.get('license_file')] + extra_lic_names = [ln for ln in extra_lic_names if ln] + lic_names = [ f'{key}.LICENSE' for key in self.get_license_keys()] + for filename in lic_names + extra_lic_names: + floc = os.path.join(dest_dir, filename) + if os.path.exists(floc): + continue + + try: + # try remotely first + lic_url = get_link_for_filename( + filename=filename, paths_or_urls=paths_or_urls) + + fetch_and_save_path_or_url( + filename=filename, + dest_dir=dest_dir, + path_or_url=lic_url, + as_text=True, + ) + if TRACE: print(f'Fetched license from remote: {lic_url}') + + except: + try: + # try licensedb second + lic_url = f'{LICENSEDB_API_URL}/{filename}' + fetch_and_save_path_or_url( + filename=filename, + dest_dir=dest_dir, + path_or_url=lic_url, + as_text=True, + ) + if TRACE: print(f'Fetched license from licensedb: {lic_url}') + + except: + msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}' + print(msg) + errors.append(msg) + + return errors + + def extract_pkginfo(self, dest_dir=THIRDPARTY_DIR): + """ + Return the text of the first PKG-INFO or METADATA file found in the + archive of this Distribution in `dest_dir`. Return None if not found. + """ + fmt = 'zip' if self.filename.endswith('.whl') else None + dist = os.path.join(dest_dir, self.filename) + with tempfile.TemporaryDirectory(prefix='pypi-tmp-extract') as td: + shutil.unpack_archive(filename=dist, extract_dir=td, format=fmt) + # NOTE: we only care about the first one found in the dist + # which may not be 100% right + for pi in fileutils.resource_iter(location=td, with_dirs=False): + if pi.endswith(('PKG-INFO', 'METADATA',)): + with open(pi) as fi: + return fi.read() + + def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): + """ + Update self with data loaded from the PKG-INFO file found in the + archive of this Distribution in `dest_dir`. + """ + pkginfo_text = self.extract_pkginfo(dest_dir=dest_dir) + if not pkginfo_text: + print(f'!!!!PKG-INFO not found in {self.filename}') + return + raw_data = email.message_from_string(pkginfo_text) + + classifiers = raw_data.get_all('Classifier') or [] + + declared_license = [raw_data['License']] + [c for c in classifiers if c.startswith('License')] + other_classifiers = [c for c in classifiers if not c.startswith('License')] + + pkginfo_data = dict( + name=raw_data['Name'], + declared_license=declared_license, + version=raw_data['Version'], + description=raw_data['Summary'], + homepage_url=raw_data['Home-page'], + holder=raw_data['Author'], + holder_contact=raw_data['Author-email'], + keywords=raw_data['Keywords'], + classifiers=other_classifiers, + ) + + return self.update(pkginfo_data, keep_extra=True) + + def update_from_other_dist(self, dist): + """ + Update self using data from another dist + """ + return self.update(dist.get_updatable_data()) + + def get_updatable_data(self, data=None): + data = data or self.to_dict() + return { + k: v for k, v in data.items() + if v and k in self.updatable_fields + } + + def update(self, data, overwrite=False, keep_extra=True): + """ + Update self with a mapping of `data`. Keep unknown data as extra_data if + `keep_extra` is True. If `overwrite` is True, overwrite self with `data` + Return True if any data was updated, False otherwise. Raise an exception + if there are key data conflicts. + """ + package_url = data.get('package_url') + if package_url: + purl_from_data = packageurl.PackageURL.from_string(package_url) + purl_from_self = packageurl.PackageURL.from_string(self.package_url) + if purl_from_data != purl_from_self: + print( + f'Invalid dist update attempt, no same same purl with dist: ' + f'{self} using data {data}.') + return + + data.pop('about_resource', None) + dl = data.pop('download_url', None) + if dl: + data['path_or_url'] = dl + + updated = False + extra = {} + for k, v in data.items(): + if isinstance(v, str): + v = v.strip() + if not v: + continue + + if hasattr(self, k): + value = getattr(self, k, None) + if not value or (overwrite and value != v): + try: + setattr(self, k, v) + except Exception as e: + raise Exception(f'{self}, {k}, {v}') from e + updated = True + + elif keep_extra: + # note that we always overwrite extra + extra[k] = v + updated = True + + self.extra_data.update(extra) + + return updated + + +class InvalidDistributionFilename(Exception): + pass + + +@attr.attributes +class Sdist(Distribution): + + extension = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='File extension, including leading dot.'), + ) + + @classmethod + def from_filename(cls, filename): + """ + Return a Sdist object built from a filename. + Raise an exception if this is not a valid sdist filename + """ + name_ver = None + extension = None + + for ext in EXTENSIONS_SDIST: + if filename.endswith(ext): + name_ver, extension, _ = filename.rpartition(ext) + break + + if not extension or not name_ver: + raise InvalidDistributionFilename(filename) + + name, _, version = name_ver.rpartition('-') + + if not name or not version: + raise InvalidDistributionFilename(filename) + + return cls( + type='pypi', + name=name, + version=version, + extension=extension, + filename=filename, + ) + + def to_filename(self): + """ + Return an sdist filename reconstructed from its fields (that may not be + the same as the original filename.) + """ + return f'{self.name}-{self.version}.{self.extension}' + + +@attr.attributes +class Wheel(Distribution): + + """ + Represents a wheel file. + + Copied and heavily modified from pip-20.3.1 copied from pip-20.3.1 + pip/_internal/models/wheel.py + + name: pip compatibility tags + version: 20.3.1 + download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py + copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + license_expression: mit + notes: copied from pip-20.3.1 pip/_internal/models/wheel.py + + Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + """ + + get_wheel_from_filename = re.compile( + r"""^(?P(?P.+?)-(?P.*?)) + ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) + \.whl)$""", + re.VERBOSE + ).match + + build = attr.ib( + type=str, + default='', + metadata=dict(help='Python wheel build.'), + ) + + python_versions = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of wheel Python version tags.'), + ) + + abis = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of wheel ABI tags.'), + ) + + platforms = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of wheel platform tags.'), + ) + + tags = attr.ib( + repr=False, + type=set, + default=attr.Factory(set), + metadata=dict(help='Set of all tags for this wheel.'), + ) + + @classmethod + def from_filename(cls, filename): + """ + Return a wheel object built from a filename. + Raise an exception if this is not a valid wheel filename + """ + wheel_info = cls.get_wheel_from_filename(filename) + if not wheel_info: + raise InvalidDistributionFilename(filename) + + name = wheel_info.group('name').replace('_', '-') + # we'll assume "_" means "-" due to wheel naming scheme + # (https://github.com/pypa/pip/issues/1150) + version = wheel_info.group('ver').replace('_', '-') + build = wheel_info.group('build') + python_versions = wheel_info.group('pyvers').split('.') + abis = wheel_info.group('abis').split('.') + platforms = wheel_info.group('plats').split('.') + + # All the tag combinations from this file + tags = { + packaging_tags.Tag(x, y, z) for x in python_versions + for y in abis for z in platforms + } + + return cls( + filename=filename, + type='pypi', + name=name, + version=version, + build=build, + python_versions=python_versions, + abis=abis, + platforms=platforms, + tags=tags, + ) + + def is_supported_by_tags(self, tags): + """ + Return True is this wheel is compatible with one of a list of PEP 425 tags. + """ + return not self.tags.isdisjoint(tags) + + def is_supported_by_environment(self, environment): + """ + Return True if this wheel is compatible with the Environment + `environment`. + """ + return not self.is_supported_by_tags(environment.tags) + + def to_filename(self): + """ + Return a wheel filename reconstructed from its fields (that may not be + the same as the original filename.) + """ + build = f'-{self.build}' if self.build else '' + pyvers = '.'.join(self.python_versions) + abis = '.'.join(self.abis) + plats = '.'.join(self.platforms) + return f'{self.name}-{self.version}{build}-{pyvers}-{abis}-{plats}.whl' + + def is_pure(self): + """ + Return True if wheel `filename` is for a "pure" wheel e.g. a wheel that + runs on all Pythons 3 and all OSes. + + For example:: + + >>> Wheel.from_filename('aboutcode_toolkit-5.1.0-py2.py3-none-any.whl').is_pure() + True + >>> Wheel.from_filename('beautifulsoup4-4.7.1-py3-none-any.whl').is_pure() + True + >>> Wheel.from_filename('beautifulsoup4-4.7.1-py2-none-any.whl').is_pure() + False + >>> Wheel.from_filename('bitarray-0.8.1-cp36-cp36m-win_amd64.whl').is_pure() + False + >>> Wheel.from_filename('extractcode_7z-16.5-py2.py3-none-macosx_10_13_intel.whl').is_pure() + False + >>> Wheel.from_filename('future-0.16.0-cp36-none-any.whl').is_pure() + False + >>> Wheel.from_filename('foo-4.7.1-py3-none-macosx_10_13_intel.whl').is_pure() + False + >>> Wheel.from_filename('future-0.16.0-py3-cp36m-any.whl').is_pure() + False + """ + return ( + 'py3' in self.python_versions + and 'none' in self.abis + and 'any' in self.platforms + ) + + +def is_pure_wheel(filename): + try: + return Wheel.from_filename(filename).is_pure() + except: + return False + + +@attr.attributes +class PypiPackage(NameVer): + """ + A Python package with its "distributions", e.g. wheels and source + distribution , ABOUT files and licenses or notices. + """ + sdist = attr.ib( + repr=False, + type=str, + default='', + metadata=dict(help='Sdist source distribution for this package.'), + ) + + wheels = attr.ib( + repr=False, + type=list, + default=attr.Factory(list), + metadata=dict(help='List of Wheel for this package'), + ) + + @property + def specifier(self): + """ + A requirement specifier for this package + """ + if self.version: + return f'{self.name}=={self.version}' + else: + return self.name + + @property + def specifier_with_hashes(self): + """ + Return a requirement specifier for this package with --hash options for + all its distributions + """ + items = [self.specifier] + items += [d.get_pip_hashes() for d in self.get_distributions()] + return ' \\\n '.join(items) + + def get_supported_wheels(self, environment): + """ + Yield all the Wheel of this package supported and compatible with the + Environment `environment`. + """ + envt_tags = environment.tags() + for wheel in self.wheels: + if wheel.is_supported_by_tags(envt_tags): + yield wheel + + @classmethod + def package_from_dists(cls, dists): + """ + Return a new PypiPackage built from an iterable of Wheels and Sdist + objects all for the same package name and version. + + For example: + >>> w1 = Wheel(name='bitarray', version='0.8.1', build='', + ... python_versions=['cp36'], abis=['cp36m'], + ... platforms=['linux_x86_64']) + >>> w2 = Wheel(name='bitarray', version='0.8.1', build='', + ... python_versions=['cp36'], abis=['cp36m'], + ... platforms=['macosx_10_9_x86_64', 'macosx_10_10_x86_64']) + >>> sd = Sdist(name='bitarray', version='0.8.1') + >>> package = PypiPackage.package_from_dists(dists=[w1, w2, sd]) + >>> assert package.name == 'bitarray' + >>> assert package.version == '0.8.1' + >>> assert package.sdist == sd + >>> assert package.wheels == [w1, w2] + """ + dists = list(dists) + if not dists: + return + + reference_dist = dists[0] + normalized_name = reference_dist.normalized_name + version = reference_dist.version + + package = PypiPackage(name=normalized_name, version=version) + + for dist in dists: + if dist.normalized_name != normalized_name or dist.version != version: + if TRACE: + print( + f' Skipping inconsistent dist name and version: {dist} ' + f'Expected instead package name: {normalized_name} and version: "{version}"' + ) + continue + + if isinstance(dist, Sdist): + package.sdist = dist + + elif isinstance(dist, Wheel): + package.wheels.append(dist) + + else: + raise Exception(f'Unknown distribution type: {dist}') + + return package + + @classmethod + def packages_from_one_path_or_url(cls, path_or_url): + """ + Yield PypiPackages built from files found in at directory path or the + URL to an HTML page (that will be fetched). + """ + extracted_paths_or_urls = get_paths_or_urls(path_or_url) + return cls.packages_from_many_paths_or_urls(extracted_paths_or_urls) + + @classmethod + def packages_from_many_paths_or_urls(cls, paths_or_urls): + """ + Yield PypiPackages built from a list of paths or URLs. + """ + dists = cls.get_dists(paths_or_urls) + dists = NameVer.sorted(dists) + + for _projver, dists_of_package in itertools.groupby( + dists, key=NameVer.sortable_name_version, + ): + yield PypiPackage.package_from_dists(dists_of_package) + + @classmethod + def get_versions_from_path_or_url(cls, name, path_or_url): + """ + Return a subset list from a list of PypiPackages version at `path_or_url` + that match PypiPackage `name`. + """ + packages = cls.packages_from_one_path_or_url(path_or_url) + return cls.get_versions(name, packages) + + @classmethod + def get_versions(cls, name, packages): + """ + Return a subset list of package versions from a list of `packages` that + match PypiPackage `name`. + The list is sorted by version from oldest to most recent. + """ + norm_name = NameVer.normalize_name(name) + versions = [p for p in packages if p.normalized_name == norm_name] + return cls.sorted(versions) + + @classmethod + def get_latest_version(cls, name, packages): + """ + Return the latest version of PypiPackage `name` from a list of `packages`. + """ + versions = cls.get_versions(name, packages) + if not versions: + return + return versions[-1] + + @classmethod + def get_outdated_versions(cls, name, packages): + """ + Return all versions except the latest version of PypiPackage `name` from a + list of `packages`. + """ + versions = cls.get_versions(name, packages) + return versions[:-1] + + @classmethod + def get_name_version(cls, name, version, packages): + """ + Return the PypiPackage with `name` and `version` from a list of `packages` + or None if it is not found. + If `version` is None, return the latest version found. + """ + if version is None: + return cls.get_latest_version(name, packages) + + nvs = [p for p in cls.get_versions(name, packages) if p.version == version] + + if not nvs: + return + + if len(nvs) == 1: + return nvs[0] + + raise Exception(f'More than one PypiPackage with {name}=={version}') + + def fetch_wheel( + self, + environment=None, + fetched_filenames=None, + dest_dir=THIRDPARTY_DIR, + ): + """ + Download a binary wheel of this package matching the ``environment`` + Enviromnent constraints into ``dest_dir`` directory. + + Return the wheel filename if it was fetched, None otherwise. + + If the provided ``environment`` is None then the current Python + interpreter environment is used implicitly. Do not refetch wheel if + their name is in a provided ``fetched_filenames`` set. + """ + fetched_wheel_filename = None + if fetched_filenames is not None: + fetched_filenames = fetched_filenames + else: + fetched_filenames = set() + + for wheel in self.get_supported_wheels(environment): + + if wheel.filename not in fetched_filenames: + fetch_and_save_path_or_url( + filename=wheel.filename, + path_or_url=wheel.path_or_url, + dest_dir=dest_dir, + as_text=False, + ) + fetched_filenames.add(wheel.filename) + fetched_wheel_filename = wheel.filename + + # TODO: what if there is more than one? + break + + return fetched_wheel_filename + + def fetch_sdist(self, dest_dir=THIRDPARTY_DIR): + """ + Download the source distribution into `dest_dir` directory. Return the + fetched filename if it was fetched, False otherwise. + """ + if self.sdist: + assert self.sdist.filename + if TRACE: print('Fetching source for package:', self.name, self.version) + fetch_and_save_path_or_url( + filename=self.sdist.filename, + dest_dir=dest_dir, + path_or_url=self.sdist.path_or_url, + as_text=False, + ) + if TRACE: print(' --> file:', self.sdist.filename) + return self.sdist.filename + else: + print(f'Missing sdist for: {self.name}=={self.version}') + return False + + def delete_files(self, dest_dir=THIRDPARTY_DIR): + """ + Delete all PypiPackage files from `dest_dir` including wheels, sdist and + their ABOUT files. Note that we do not delete licenses since they can be + shared by several packages: therefore this would be done elsewhere in a + function that is aware of all used licenses. + """ + for to_delete in self.wheels + [self.sdist]: + if not to_delete: + continue + tdfn = to_delete.filename + for deletable in [tdfn, f'{tdfn}.ABOUT', f'{tdfn}.NOTICE']: + target = os.path.join(dest_dir, deletable) + if os.path.exists(target): + print(f'Deleting outdated {target}') + fileutils.delete(target) + + @classmethod + def get_dists(cls, paths_or_urls): + """ + Return a list of Distribution given a list of + `paths_or_urls` to wheels or source distributions. + + Each Distribution receives two extra attributes: + - the path_or_url it was created from + - its filename + + For example: + >>> paths_or_urls =''' + ... /home/foo/bitarray-0.8.1-cp36-cp36m-linux_x86_64.whl + ... bitarray-0.8.1-cp36-cp36m-macosx_10_9_x86_64.macosx_10_10_x86_64.whl + ... bitarray-0.8.1-cp36-cp36m-win_amd64.whl + ... httsp://example.com/bar/bitarray-0.8.1.tar.gz + ... bitarray-0.8.1.tar.gz.ABOUT bit.LICENSE'''.split() + >>> result = list(PypiPackage.get_dists(paths_or_urls)) + >>> for r in results: + ... r.filename = '' + ... r.path_or_url = '' + >>> expected = [ + ... Wheel(name='bitarray', version='0.8.1', build='', + ... python_versions=['cp36'], abis=['cp36m'], + ... platforms=['linux_x86_64']), + ... Wheel(name='bitarray', version='0.8.1', build='', + ... python_versions=['cp36'], abis=['cp36m'], + ... platforms=['macosx_10_9_x86_64', 'macosx_10_10_x86_64']), + ... Wheel(name='bitarray', version='0.8.1', build='', + ... python_versions=['cp36'], abis=['cp36m'], + ... platforms=['win_amd64']), + ... Sdist(name='bitarray', version='0.8.1') + ... ] + >>> assert expected == result + """ + installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] + for path_or_url in installable: + try: + yield Distribution.from_path_or_url(path_or_url) + except InvalidDistributionFilename: + if TRACE: + print(f'Skipping invalid distribution from: {path_or_url}') + continue + + def get_distributions(self): + """ + Yield all distributions available for this PypiPackage + """ + if self.sdist: + yield self.sdist + for wheel in self.wheels: + yield wheel + + def get_url_for_filename(self, filename): + """ + Return the URL for this filename or None. + """ + for dist in self.get_distributions(): + if dist.filename == filename: + return dist.path_or_url + + +@attr.attributes +class Environment: + """ + An Environment describes a target installation environment with its + supported Python version, ABI, platform, implementation and related + attributes. We can use these to pass as `pip download` options and force + fetching only the subset of packages that match these Environment + constraints as opposed to the current running Python interpreter + constraints. + """ + + python_version = attr.ib( + type=str, + default='', + metadata=dict(help='Python version supported by this environment.'), + ) + + operating_system = attr.ib( + type=str, + default='', + metadata=dict(help='operating system supported by this environment.'), + ) + + implementation = attr.ib( + type=str, + default='cp', + metadata=dict(help='Python implementation supported by this environment.'), + ) + + abis = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of ABI tags supported by this environment.'), + ) + + platforms = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of platform tags supported by this environment.'), + ) + + @classmethod + def from_pyver_and_os(cls, python_version, operating_system): + if '.' in python_version: + python_version = ''.join(python_version.split('.')) + + return cls( + python_version=python_version, + implementation='cp', + abis=ABIS_BY_PYTHON_VERSION[python_version], + platforms=PLATFORMS_BY_OS[operating_system], + operating_system=operating_system, + ) + + def get_pip_cli_options(self): + """ + Return a list of pip command line options for this environment. + """ + options = [ + '--python-version', self.python_version, + '--implementation', self.implementation, + '--abi', self.abi, + ] + for platform in self.platforms: + options.extend(['--platform', platform]) + return options + + def tags(self): + """ + Return a set of all the PEP425 tags supported by this environment. + """ + return set(utils_pip_compatibility_tags.get_supported( + version=self.python_version or None, + impl=self.implementation or None, + platforms=self.platforms or None, + abis=self.abis or None, + )) + +################################################################################ +# +# PyPI repo and link index for package wheels and sources +# +################################################################################ + + +@attr.attributes +class Repository: + """ + A PyPI or links Repository of Python packages: wheels, sdist, ABOUT, etc. + """ + + packages_by_normalized_name = attr.ib( + type=dict, + default=attr.Factory(lambda: defaultdict(list)), + metadata=dict(help= + 'Mapping of {package name: [package objects]} available in this repo'), + ) + + packages_by_normalized_name_version = attr.ib( + type=dict, + default=attr.Factory(dict), + metadata=dict(help= + 'Mapping of {(name, version): package object} available in this repo'), + ) + + def get_links(self, *args, **kwargs): + raise NotImplementedError() + + def get_versions(self, name): + """ + Return a list of all available PypiPackage version for this package name. + The list may be empty. + """ + raise NotImplementedError() + + def get_package(self, name, version): + """ + Return the PypiPackage with name and version or None. + """ + raise NotImplementedError() + + def get_latest_version(self, name): + """ + Return the latest PypiPackage version for this package name or None. + """ + raise NotImplementedError() + + +@attr.attributes +class LinksRepository(Repository): + """ + Represents a simple links repository which is either a local directory with + Python wheels and sdist or a remote URL to an HTML with links to these. + (e.g. suitable for use with pip --find-links). + """ + path_or_url = attr.ib( + type=str, + default='', + metadata=dict(help='Package directory path or URL'), + ) + + links = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help='List of links available in this repo'), + ) + + def __attrs_post_init__(self): + if not self.links: + self.links = get_paths_or_urls(links_url=self.path_or_url) + if not self.packages_by_normalized_name: + for p in PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=self.links): + normalized_name = p.normalized_name + self.packages_by_normalized_name[normalized_name].append(p) + self.packages_by_normalized_name_version[(normalized_name, p.version)] = p + + def get_links(self, *args, **kwargs): + return self.links or [] + + def get_versions(self, name): + name = name and NameVer.normalize_name(name) + return self.packages_by_normalized_name.get(name, []) + + def get_latest_version(self, name): + return PypiPackage.get_latest_version(name, self.get_versions(name)) + + def get_package(self, name, version): + return PypiPackage.get_name_version(name, version, self.get_versions(name)) + + +@attr.attributes +class PypiRepository(Repository): + """ + Represents the public PyPI simple index. + It is populated lazily based on requested packages names + """ + simple_url = attr.ib( + type=str, + default=PYPI_SIMPLE_URL, + metadata=dict(help='Base PyPI simple URL for this index.'), + ) + + links_by_normalized_name = attr.ib( + type=dict, + default=attr.Factory(lambda: defaultdict(list)), + metadata=dict(help='Mapping of {package name: [links]} available in this repo'), + ) + + def _fetch_links(self, name): + name = name and NameVer.normalize_name(name) + return find_pypi_links(name=name, simple_url=self.simple_url) + + def _populate_links_and_packages(self, name): + name = name and NameVer.normalize_name(name) + if name in self.links_by_normalized_name: + return + + links = self._fetch_links(name) + self.links_by_normalized_name[name] = links + + packages = list(PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links)) + self.packages_by_normalized_name[name] = packages + + for p in packages: + name = name and NameVer.normalize_name(p.name) + self.packages_by_normalized_name_version[(name, p.version)] = p + + def get_links(self, name, *args, **kwargs): + name = name and NameVer.normalize_name(name) + self._populate_links_and_packages(name) + return self.links_by_normalized_name.get(name, []) + + def get_versions(self, name): + name = name and NameVer.normalize_name(name) + self._populate_links_and_packages(name) + return self.packages_by_normalized_name.get(name, []) + + def get_latest_version(self, name): + return PypiPackage.get_latest_version(name, self.get_versions(name)) + + def get_package(self, name, version): + return PypiPackage.get_name_version(name, version, self.get_versions(name)) + +################################################################################ +# Globals for remote repos to be lazily created and cached on first use for the +# life of the session together with some convenience functions. +################################################################################ + + +def get_local_packages(directory=THIRDPARTY_DIR): + """ + Return the list of all PypiPackage objects built from a local directory. Return + an empty list if the package cannot be found. + """ + return list(PypiPackage.packages_from_one_path_or_url(path_or_url=directory)) + + +def get_local_repo(directory=THIRDPARTY_DIR): + return LinksRepository(path_or_url=directory) + + +_REMOTE_REPO = None + + +def get_remote_repo(remote_links_url=REMOTE_LINKS_URL): + global _REMOTE_REPO + if not _REMOTE_REPO: + _REMOTE_REPO = LinksRepository(path_or_url=remote_links_url) + return _REMOTE_REPO + + +def get_remote_package(name, version, remote_links_url=REMOTE_LINKS_URL): + """ + Return a PypiPackage or None. + """ + try: + return get_remote_repo(remote_links_url).get_package(name, version) + except RemoteNotFetchedException as e: + print(f'Failed to fetch remote package info: {e}') + + +_PYPI_REPO = None + + +def get_pypi_repo(pypi_simple_url=PYPI_SIMPLE_URL): + global _PYPI_REPO + if not _PYPI_REPO: + _PYPI_REPO = PypiRepository(simple_url=pypi_simple_url) + return _PYPI_REPO + + +def get_pypi_package(name, version, pypi_simple_url=PYPI_SIMPLE_URL): + """ + Return a PypiPackage or None. + """ + try: + return get_pypi_repo(pypi_simple_url).get_package(name, version) + except RemoteNotFetchedException as e: + print(f'Failed to fetch remote package info: {e}') + +################################################################################ +# +# Basic file and URL-based operations using a persistent file-based Cache +# +################################################################################ + + +@attr.attributes +class Cache: + """ + A simple file-based cache based only on a filename presence. + This is used to avoid impolite fetching from remote locations. + """ + + directory = attr.ib(type=str, default=CACHE_THIRDPARTY_DIR) + + def __attrs_post_init__(self): + os.makedirs(self.directory, exist_ok=True) + + def clear(self): + shutil.rmtree(self.directory) + + def get(self, path_or_url, as_text=True): + """ + Get a file from a `path_or_url` through the cache. + `path_or_url` can be a path or a URL to a file. + """ + filename = os.path.basename(path_or_url.strip('/')) + cached = os.path.join(self.directory, filename) + + if not os.path.exists(cached): + content = get_file_content(path_or_url=path_or_url, as_text=as_text) + wmode = 'w' if as_text else 'wb' + with open(cached, wmode) as fo: + fo.write(content) + return content + else: + return get_local_file_content(path=cached, as_text=as_text) + + def put(self, filename, content): + """ + Put in the cache the `content` of `filename`. + """ + cached = os.path.join(self.directory, filename) + wmode = 'wb' if isinstance(content, bytes) else 'w' + with open(cached, wmode) as fo: + fo.write(content) + + +def get_file_content(path_or_url, as_text=True): + """ + Fetch and return the content at `path_or_url` from either a local path or a + remote URL. Return the content as bytes is `as_text` is False. + """ + if (path_or_url.startswith('file://') + or (path_or_url.startswith('/') and os.path.exists(path_or_url)) + ): + return get_local_file_content(path=path_or_url, as_text=as_text) + + elif path_or_url.startswith('https://'): + if TRACE: print(f'Fetching: {path_or_url}') + _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) + return content + + else: + raise Exception(f'Unsupported URL scheme: {path_or_url}') + + +def get_local_file_content(path, as_text=True): + """ + Return the content at `url` as text. Return the content as bytes is + `as_text` is False. + """ + if path.startswith('file://'): + path = path[7:] + + mode = 'r' if as_text else 'rb' + with open(path, mode) as fo: + return fo.read() + + +class RemoteNotFetchedException(Exception): + pass + + +def get_remote_file_content(url, as_text=True, headers_only=False, headers=None, _delay=0,): + """ + Fetch and return a tuple of (headers, content) at `url`. Return content as a + text string if `as_text` is True. Otherwise return the content as bytes. + + If `header_only` is True, return only (headers, None). Headers is a mapping + of HTTP headers. + Retries multiple times to fetch if there is a HTTP 429 throttling response + and this with an increasing delay. + """ + time.sleep(_delay) + headers = headers or {} + # using a GET with stream=True ensure we get the the final header from + # several redirects and that we can ignore content there. A HEAD request may + # not get us this last header + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: + status = response.status_code + if status != requests.codes.ok: # NOQA + if status == 429 and _delay < 20: + # too many requests: start some exponential delay + increased_delay = (_delay * 2) or 1 + + return get_remote_file_content( + url, + as_text=as_text, + headers_only=headers_only, + _delay=increased_delay, + ) + + else: + raise RemoteNotFetchedException(f'Failed HTTP request from {url} with {status}') + + if headers_only: + return response.headers, None + + return response.headers, response.text if as_text else response.content + + +def get_url_content_if_modified(url, md5, _delay=0,): + """ + Return fetched content bytes at `url` or None if the md5 has not changed. + Retries multiple times to fetch if there is a HTTP 429 throttling response + and this with an increasing delay. + """ + time.sleep(_delay) + headers = None + if md5: + etag = f'"{md5}"' + headers = {'If-None-Match': f'{etag}'} + + # using a GET with stream=True ensure we get the the final header from + # several redirects and that we can ignore content there. A HEAD request may + # not get us this last header + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: + status = response.status_code + if status == requests.codes.too_many_requests and _delay < 20: # NOQA + # too many requests: start waiting with some exponential delay + _delay = (_delay * 2) or 1 + return get_url_content_if_modified(url=url, md5=md5, _delay=_delay) + + elif status == requests.codes.not_modified: # NOQA + # all is well, the md5 is the same + return None + + elif status != requests.codes.ok: # NOQA + raise RemoteNotFetchedException(f'Failed HTTP request from {url} with {status}') + + return response.content + + +def get_remote_headers(url): + """ + Fetch and return a mapping of HTTP headers of `url`. + """ + headers, _content = get_remote_file_content(url, headers_only=True) + return headers + + +def fetch_and_save_filename_from_paths_or_urls( + filename, + paths_or_urls, + dest_dir=THIRDPARTY_DIR, + as_text=True, +): + """ + Return the content from fetching the `filename` file name found in the + `paths_or_urls` list of URLs or paths and save to `dest_dir`. Raise an + Exception on errors. Treats the content as text if `as_text` is True + otherwise as binary. + """ + path_or_url = get_link_for_filename( + filename=filename, + paths_or_urls=paths_or_urls, + ) + + return fetch_and_save_path_or_url( + filename=filename, + dest_dir=dest_dir, + path_or_url=path_or_url, + as_text=as_text, + ) + + +def fetch_content_from_path_or_url_through_cache(path_or_url, as_text=True, cache=Cache()): + """ + Return the content from fetching at path or URL. Raise an Exception on + errors. Treats the content as text if as_text is True otherwise as treat as + binary. Use the provided file cache. This is the main entry for using the + cache. + + Note: the `cache` argument is a global, though it does not really matter + since it does not hold any state which is only kept on disk. + """ + if cache: + return cache.get(path_or_url=path_or_url, as_text=as_text) + else: + return get_file_content(path_or_url=path_or_url, as_text=as_text) + + +def fetch_and_save_path_or_url(filename, dest_dir, path_or_url, as_text=True, through_cache=True): + """ + Return the content from fetching the `filename` file name at URL or path + and save to `dest_dir`. Raise an Exception on errors. Treats the content as + text if as_text is True otherwise as treat as binary. + """ + if through_cache: + content = fetch_content_from_path_or_url_through_cache(path_or_url, as_text) + else: + content = fetch_content_from_path_or_url_through_cache(path_or_url, as_text, cache=None) + + output = os.path.join(dest_dir, filename) + wmode = 'w' if as_text else 'wb' + with open(output, wmode) as fo: + fo.write(content) + return content + +################################################################################ +# +# Sync and fix local thirdparty directory for various issues and gaps +# +################################################################################ + + +def fetch_missing_sources(dest_dir=THIRDPARTY_DIR): + """ + Given a thirdparty dir, fetch missing source distributions from our remote + repo or PyPI. Return a list of (name, version) tuples for source + distribution that were not found + """ + not_found = [] + local_packages = get_local_packages(directory=dest_dir) + remote_repo = get_remote_repo() + pypi_repo = get_pypi_repo() + + for package in local_packages: + if not package.sdist: + print(f'Finding sources for: {package.name}=={package.version}: ', end='') + try: + pypi_package = pypi_repo.get_package( + name=package.name, version=package.version) + + if pypi_package and pypi_package.sdist: + print(f'Fetching sources from Pypi') + pypi_package.fetch_sdist(dest_dir=dest_dir) + continue + else: + remote_package = remote_repo.get_package( + name=package.name, version=package.version) + + if remote_package and remote_package.sdist: + print(f'Fetching sources from Remote') + remote_package.fetch_sdist(dest_dir=dest_dir) + continue + + except RemoteNotFetchedException as e: + print(f'Failed to fetch remote package info: {e}') + + print(f'No sources found') + not_found.append((package.name, package.version,)) + + return not_found + + +def fetch_missing_wheels( + python_versions=PYTHON_VERSIONS, + operating_systems=PLATFORMS_BY_OS, + dest_dir=THIRDPARTY_DIR, +): + """ + Given a thirdparty dir fetch missing wheels for all known combos of Python + versions and OS. Return a list of tuple (Package, Environment) for wheels + that were not found locally or remotely. + """ + local_packages = get_local_packages(directory=dest_dir) + evts = itertools.product(python_versions, operating_systems) + environments = [Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] + packages_and_envts = itertools.product(local_packages, environments) + + not_fetched = [] + fetched_filenames = set() + for package, envt in packages_and_envts: + + filename = package.fetch_wheel( + environment=envt, + fetched_filenames=fetched_filenames, + dest_dir=dest_dir, + ) + + if filename: + fetched_filenames.add(filename) + else: + not_fetched.append((package, envt,)) + + return not_fetched + + +def build_missing_wheels( + packages_and_envts, + build_remotely=False, + with_deps=False, + dest_dir=THIRDPARTY_DIR, +): + """ + Build all wheels in a list of tuple (Package, Environment) and save in + `dest_dir`. Return a list of tuple (Package, Environment), and a list of + built wheel filenames. + """ + + not_built = [] + built_filenames = [] + + packages_and_envts = itertools.groupby( + sorted(packages_and_envts), key=operator.itemgetter(0)) + + for package, pkg_envts in packages_and_envts: + + envts = [envt for _pkg, envt in pkg_envts] + python_versions = sorted(set(e.python_version for e in envts)) + operating_systems = sorted(set(e.operating_system for e in envts)) + built = None + try: + built = build_wheels( + requirements_specifier=package.specifier, + with_deps=with_deps, + build_remotely=build_remotely, + python_versions=python_versions, + operating_systems=operating_systems, + verbose=False, + dest_dir=dest_dir, + ) + print('.') + except Exception as e: + import traceback + print('#############################################################') + print('############# WHEEL BUILD FAILED ######################') + traceback.print_exc() + print() + print('#############################################################') + + if not built: + for envt in pkg_envts: + not_built.append((package, envt)) + else: + for bfn in built: + print(f' --> Built wheel: {bfn}') + built_filenames.append(bfn) + + return not_built, built_filenames + +################################################################################ +# +# Functions to handle remote or local repo used to "find-links" +# +################################################################################ + + +def get_paths_or_urls(links_url): + if links_url.startswith('https:'): + paths_or_urls = find_links_from_release_url(links_url) + else: + paths_or_urls = find_links_from_dir(links_url) + return paths_or_urls + + +def find_links_from_dir(directory=THIRDPARTY_DIR): + """ + Return a list of path to files in `directory` for any file that ends with + any of the extension in the list of `extensions` strings. + """ + base = os.path.abspath(directory) + files = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] + return files + + +get_links = re.compile('href="([^"]+)"').findall + + +def find_links_from_release_url(links_url=REMOTE_LINKS_URL): + """ + Return a list of download link URLs found in the HTML page at `links_url` + URL that starts with the `prefix` string and ends with any of the extension + in the list of `extensions` strings. Use the `base_url` to prefix the links. + """ + if TRACE: print(f'Finding links for {links_url}') + + plinks_url = urllib.parse.urlparse(links_url) + + base_url = urllib.parse.SplitResult( + plinks_url.scheme, plinks_url.netloc, '', '', '').geturl() + + if TRACE: print(f'Base URL {base_url}') + + _headers, text = get_remote_file_content(links_url) + links = [] + for link in get_links(text): + if not link.endswith(EXTENSIONS): + continue + + plink = urllib.parse.urlsplit(link) + + if plink.scheme: + # full URL kept as-is + url = link + + if plink.path.startswith('/'): + # absolute link + url = f'{base_url}{link}' + + else: + # relative link + url = f'{links_url}/{link}' + + if TRACE: print(f'Adding URL: {url}') + + links.append(url) + + if TRACE: print(f'Found {len(links)} links at {links_url}') + return links + + +def find_pypi_links(name, simple_url=PYPI_SIMPLE_URL): + """ + Return a list of download link URLs found in a PyPI simple index for package name. + with the list of `extensions` strings. Use the `simple_url` PyPI url. + """ + if TRACE: print(f'Finding links for {simple_url}') + + name = name and NameVer.normalize_name(name) + simple_url = simple_url.strip('/') + simple_url = f'{simple_url}/{name}' + + _headers, text = get_remote_file_content(simple_url) + links = get_links(text) + # TODO: keep sha256 + links = [l.partition('#sha256=') for l in links] + links = [url for url, _, _sha256 in links] + links = [l for l in links if l.endswith(EXTENSIONS)] + return links + + +def get_link_for_filename(filename, paths_or_urls): + """ + Return a link for `filename` found in the `links` list of URLs or paths. Raise an + exception if no link is found or if there are more than one link for that + file name. + """ + path_or_url = [l for l in paths_or_urls if l.endswith(f'/{filename}')] + if not path_or_url: + raise Exception(f'Missing link to file: {filename}') + if not len(path_or_url) == 1: + raise Exception(f'Multiple links to file: {filename}: \n' + '\n'.join(path_or_url)) + return path_or_url[0] + +################################################################################ +# +# Requirements processing +# +################################################################################ + + +class MissingRequirementException(Exception): + pass + + +def get_required_packages(required_name_versions): + """ + Return a tuple of (remote packages, PyPI packages) where each is a mapping + of {(name, version): PypiPackage} for packages listed in the + `required_name_versions` list of (name, version) tuples. Raise a + MissingRequirementException with a list of missing (name, version) if a + requirement cannot be satisfied remotely or in PyPI. + """ + remote_repo = get_remote_repo() + + remote_packages = {(name, version): remote_repo.get_package(name, version) + for name, version in required_name_versions} + + pypi_repo = get_pypi_repo() + pypi_packages = {(name, version): pypi_repo.get_package(name, version) + for name, version in required_name_versions} + + # remove any empty package (e.g. that do not exist in some place) + remote_packages = {nv: p for nv, p in remote_packages.items() if p} + pypi_packages = {nv: p for nv, p in pypi_packages.items() if p} + + # check that we are not missing any + repos_name_versions = set(remote_packages.keys()) | set(pypi_packages.keys()) + missing_name_versions = required_name_versions.difference(repos_name_versions) + if missing_name_versions: + raise MissingRequirementException(sorted(missing_name_versions)) + + return remote_packages, pypi_packages + + +def get_required_remote_packages( + requirements_file='requirements.txt', + force_pinned=True, + remote_links_url=REMOTE_LINKS_URL, +): + """ + Yield tuple of (name, version, PypiPackage) for packages listed in the + `requirements_file` requirements file and found in the PyPI-like link repo + ``remote_links_url`` if this is a URL. Treat this ``remote_links_url`` as a + local directory path to a wheels directory if this is not a a URL. + """ + required_name_versions = load_requirements( + requirements_file=requirements_file, + force_pinned=force_pinned, + ) + + if remote_links_url.startswith('https://'): + repo = get_remote_repo(remote_links_url=remote_links_url) + else: + # a local path + assert os.path.exists(remote_links_url) + repo = get_local_repo(directory=remote_links_url) + + for name, version in required_name_versions: + if version: + yield name, version, repo.get_package(name, version) + else: + yield name, version, repo.get_latest_version(name) + + +def update_requirements(name, version=None, requirements_file='requirements.txt'): + """ + Upgrade or add `package_name` with `new_version` to the `requirements_file` + requirements file. Write back requirements sorted with name and version + canonicalized. Note: this cannot deal with hashed or unpinned requirements. + Do nothing if the version already exists as pinned. + """ + normalized_name = NameVer.normalize_name(name) + + is_updated = False + updated_name_versions = [] + for existing_name, existing_version in load_requirements(requirements_file, force_pinned=False): + + existing_normalized_name = NameVer.normalize_name(existing_name) + + if normalized_name == existing_normalized_name: + if version != existing_version: + is_updated = True + updated_name_versions.append((existing_normalized_name, existing_version,)) + + if is_updated: + updated_name_versions = sorted(updated_name_versions) + nvs = '\n'.join(f'{name}=={version}' for name, version in updated_name_versions) + + with open(requirements_file, 'w') as fo: + fo.write(nvs) + + +def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.txt'): + """ + Hash all the requirements found in the `requirements_file` + requirements file based on distributions available in `dest_dir` + """ + local_repo = get_local_repo(directory=dest_dir) + packages_by_normalized_name_version = local_repo.packages_by_normalized_name_version + hashed = [] + for name, version in load_requirements(requirements_file, force_pinned=True): + package = packages_by_normalized_name_version.get((name, version)) + if not package: + raise Exception(f'Missing required package {name}=={version}') + hashed.append(package.specifier_with_hashes) + + with open(requirements_file, 'w') as fo: + fo.write('\n'.join(hashed)) + +################################################################################ +# +# Functions to update or fetch ABOUT and license files +# +################################################################################ + + +def add_fetch_or_update_about_and_license_files(dest_dir=THIRDPARTY_DIR, include_remote=True): + """ + Given a thirdparty dir, add missing ABOUT. LICENSE and NOTICE files using + best efforts: + + - use existing ABOUT files + - try to load existing remote ABOUT files + - derive from existing distribution with same name and latest version that + would have such ABOUT file + - extract ABOUT file data from distributions PKGINFO or METADATA files + - TODO: make API calls to fetch package data from DejaCode + + The process consists in load and iterate on every package distributions, + collect data and then acsk to save. + """ + + local_packages = get_local_packages(directory=dest_dir) + local_repo = get_local_repo(directory=dest_dir) + + remote_repo = get_remote_repo() + + def get_other_dists(_package, _dist): + """ + Return a list of all the dists from package that are not the `dist` object + """ + return [d for d in _package.get_distributions() if d != _dist] + + for local_package in local_packages: + for local_dist in local_package.get_distributions(): + local_dist.load_about_data(dest_dir=dest_dir) + local_dist.set_checksums(dest_dir=dest_dir) + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + # lets try to get from another dist of the same local package + for otherd in get_other_dists(local_package, local_dist): + updated = local_dist.update_from_other_dist(otherd) + if updated and local_dist.has_key_metadata(): + break + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + # try to get a latest version of the same package that is not our version + other_local_packages = [ + p for p in local_repo.get_versions(local_package.name) + if p.version != local_package.version + ] + + latest_local_version = other_local_packages and other_local_packages[-1] + if latest_local_version: + latest_local_dists = list(latest_local_version.get_distributions()) + for latest_local_dist in latest_local_dists: + latest_local_dist.load_about_data(dest_dir=dest_dir) + if not latest_local_dist.has_key_metadata(): + # there is not much value to get other data if we are missing the key ones + continue + else: + local_dist.update_from_other_dist(latest_local_dist) + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + break + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + if include_remote: + # lets try to fetch remotely + local_dist.load_remote_about_data() + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + # try to get a latest version of the same package that is not our version + other_remote_packages = [ + p for p in remote_repo.get_versions(local_package.name) + if p.version != local_package.version + ] + + latest_version = other_remote_packages and other_remote_packages[-1] + if latest_version: + latest_dists = list(latest_version.get_distributions()) + for remote_dist in latest_dists: + remote_dist.load_remote_about_data() + if not remote_dist.has_key_metadata(): + # there is not much value to get other data if we are missing the key ones + continue + else: + local_dist.update_from_other_dist(remote_dist) + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + break + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + # try to get data from pkginfo (no license though) + local_dist.load_pkginfo_data(dest_dir=dest_dir) + + # FIXME: save as this is the last resort for now in all cases + # if local_dist.has_key_metadata() or not local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir) + + lic_errs = local_dist.fetch_license_files(dest_dir) + + # TODO: try to get data from dejacode + + if not local_dist.has_key_metadata(): + print(f'Unable to add essential ABOUT data for: {local_dist}') + if lic_errs: + lic_errs = '\n'.join(lic_errs) + print(f'Failed to fetch some licenses:: {lic_errs}') + +################################################################################ +# +# Functions to build new Python wheels including native on multiple OSes +# +################################################################################ + + +def call(args): + """ + Call args in a subprocess and display output on the fly. + Return or raise stdout, stderr, returncode + """ + if TRACE: print('Calling:', ' '.join(args)) + with subprocess.Popen( + args, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + encoding='utf-8' + ) as process: + + while True: + line = process.stdout.readline() + if not line and process.poll() is not None: + break + if TRACE: print(line.rstrip(), flush=True) + + stdout, stderr = process.communicate() + returncode = process.returncode + if returncode == 0: + return returncode, stdout, stderr + else: + raise Exception(returncode, stdout, stderr) + + +def add_or_upgrade_built_wheels( + name, + version=None, + python_versions=PYTHON_VERSIONS, + operating_systems=PLATFORMS_BY_OS, + dest_dir=THIRDPARTY_DIR, + build_remotely=False, + with_deps=False, + verbose=False, +): + """ + Add or update package `name` and `version` as a binary wheel saved in + `dest_dir`. Use the latest version if `version` is None. Return the a list + of the collected, fetched or built wheel file names or an empty list. + + Use the provided lists of `python_versions` (e.g. "36", "39") and + `operating_systems` (e.g. linux, windows or macos) to decide which specific + wheel to fetch or build. + + Include wheels for all dependencies if `with_deps` is True. + Build remotely is `build_remotely` is True. + """ + assert name, 'Name is required' + ver = version and f'=={version}' or '' + print(f'\nAdding wheels for package: {name}{ver}') + + wheel_filenames = [] + # a mapping of {req specifier: {mapping build_wheels kwargs}} + wheels_to_build = {} + for python_version, operating_system in itertools.product(python_versions, operating_systems): + print(f' Adding wheels for package: {name}{ver} on {python_version,} and {operating_system}') + environment = Environment.from_pyver_and_os(python_version, operating_system) + + # Check if requested wheel already exists locally for this version + local_repo = get_local_repo(directory=dest_dir) + local_package = local_repo.get_package(name=name, version=version) + + has_local_wheel = False + if version and local_package: + for wheel in local_package.get_supported_wheels(environment): + has_local_wheel = True + wheel_filenames.append(wheel.filename) + break + if has_local_wheel: + print(f' local wheel exists: {wheel.filename}') + continue + + if not version: + pypi_package = get_pypi_repo().get_latest_version(name) + version = pypi_package.version + + # Check if requested wheel already exists remotely or in Pypi for this version + wheel_filename = fetch_package_wheel( + name=name, version=version, environment=environment, dest_dir=dest_dir) + if wheel_filename: + wheel_filenames.append(wheel_filename) + + # the wheel is not available locally, remotely or in Pypi + # we need to build binary from sources + requirements_specifier = f'{name}=={version}' + to_build = wheels_to_build.get(requirements_specifier) + if to_build: + to_build['python_versions'].append(python_version) + to_build['operating_systems'].append(operating_system) + else: + wheels_to_build[requirements_specifier] = dict( + requirements_specifier=requirements_specifier, + python_versions=[python_version], + operating_systems=[operating_system], + dest_dir=dest_dir, + build_remotely=build_remotely, + with_deps=with_deps, + verbose=verbose, + ) + + for build_wheels_kwargs in wheels_to_build.values(): + bwheel_filenames = build_wheels(**build_wheels_kwargs) + wheel_filenames.extend(bwheel_filenames) + + return sorted(set(wheel_filenames)) + + +def build_wheels( + requirements_specifier, + python_versions=PYTHON_VERSIONS, + operating_systems=PLATFORMS_BY_OS, + dest_dir=THIRDPARTY_DIR, + build_remotely=False, + with_deps=False, + verbose=False, +): + """ + Given a pip `requirements_specifier` string (such as package names or as + name==version), build the corresponding binary wheel(s) for all + `python_versions` and `operating_systems` combinations and save them + back in `dest_dir` and return a list of built wheel file names. + + Include wheels for all dependencies if `with_deps` is True. + + First try to build locally to process pure Python wheels, and fall back to + build remotey on all requested Pythons and operating systems. + """ + all_pure, builds = build_wheels_locally_if_pure_python( + requirements_specifier=requirements_specifier, + with_deps=with_deps, + verbose=verbose, + dest_dir=dest_dir, + ) + for local_build in builds: + print(f'Built wheel: {local_build}') + + if all_pure: + return builds + + if build_remotely: + remote_builds = build_wheels_remotely_on_multiple_platforms( + requirements_specifier=requirements_specifier, + with_deps=with_deps, + python_versions=python_versions, + operating_systems=operating_systems, + verbose=verbose, + dest_dir=dest_dir, + ) + builds.extend(remote_builds) + + return builds + + +def build_wheels_remotely_on_multiple_platforms( + requirements_specifier, + with_deps=False, + python_versions=PYTHON_VERSIONS, + operating_systems=PLATFORMS_BY_OS, + verbose=False, + dest_dir=THIRDPARTY_DIR, +): + """ + Given pip `requirements_specifier` string (such as package names or as + name==version), build the corresponding binary wheel(s) including wheels for + all dependencies for all `python_versions` and `operating_systems` + combinations and save them back in `dest_dir` and return a list of built + wheel file names. + """ + check_romp_is_configured() + pyos_options = get_romp_pyos_options(python_versions, operating_systems) + deps = '' if with_deps else '--no-deps' + verbose = '--verbose' if verbose else '' + + romp_args = ([ + 'romp', + '--interpreter', 'cpython', + '--architecture', 'x86_64', + '--check-period', '5', # in seconds + + ] + pyos_options + [ + + '--artifact-paths', '*.whl', + '--artifact', 'artifacts.tar.gz', + '--command', + # create a virtualenv, upgrade pip +# f'python -m ensurepip --user --upgrade; ' + f'python -m pip {verbose} install --user --upgrade pip setuptools wheel; ' + f'python -m pip {verbose} wheel {deps} {requirements_specifier}', + ]) + + if verbose: + romp_args.append('--verbose') + + print(f'Building wheels for: {requirements_specifier}') + print(f'Using command:', ' '.join(romp_args)) + call(romp_args) + + wheel_filenames = extract_tar('artifacts.tar.gz', dest_dir) + for wfn in wheel_filenames: + print(f' built wheel: {wfn}') + return wheel_filenames + + +def get_romp_pyos_options( + python_versions=PYTHON_VERSIONS, + operating_systems=PLATFORMS_BY_OS, +): + """ + Return a list of CLI options for romp + For example: + >>> expected = ['--version', '3.6', '--version', '3.7', '--version', '3.8', + ... '--version', '3.9', '--platform', 'linux', '--platform', 'macos', + ... '--platform', 'windows'] + >>> assert get_romp_pyos_options() == expected + """ + python_dot_versions = ['.'.join(pv) for pv in sorted(set(python_versions))] + pyos_options = list(itertools.chain.from_iterable( + ('--version', ver) for ver in python_dot_versions)) + + pyos_options += list(itertools.chain.from_iterable( + ('--platform' , plat) for plat in sorted(set(operating_systems)))) + + return pyos_options + + +def check_romp_is_configured(): + # these environment variable must be set before + has_envt = ( + os.environ.get('ROMP_BUILD_REQUEST_URL') and + os.environ.get('ROMP_DEFINITION_ID') and + os.environ.get('ROMP_PERSONAL_ACCESS_TOKEN') and + os.environ.get('ROMP_USERNAME') + ) + + if not has_envt: + raise Exception( + 'ROMP_BUILD_REQUEST_URL, ROMP_DEFINITION_ID, ' + 'ROMP_PERSONAL_ACCESS_TOKEN and ROMP_USERNAME ' + 'are required enironment variables.') + + +def build_wheels_locally_if_pure_python( + requirements_specifier, + with_deps=False, + verbose=False, + dest_dir=THIRDPARTY_DIR, +): + """ + Given pip `requirements_specifier` string (such as package names or as + name==version), build the corresponding binary wheel(s) locally. + + If all these are "pure" Python wheels that run on all Python 3 versions and + operating systems, copy them back in `dest_dir` if they do not exists there + + Return a tuple of (True if all wheels are "pure", list of built wheel file names) + """ + deps = [] if with_deps else ['--no-deps'] + verbose = ['--verbose'] if verbose else [] + + wheel_dir = tempfile.mkdtemp(prefix='scancode-release-wheels-local-') + cli_args = [ + 'pip', 'wheel', + '--wheel-dir', wheel_dir, + ] + deps + verbose + [ + requirements_specifier + ] + + print(f'Building local wheels for: {requirements_specifier}') + print(f'Using command:', ' '.join(cli_args)) + call(cli_args) + + built = os.listdir(wheel_dir) + if not built: + return [] + + all_pure = all(is_pure_wheel(bwfn) for bwfn in built) + + if not all_pure: + print(f' Some wheels are not pure') + + print(f' Copying local wheels') + pure_built = [] + for bwfn in built: + owfn = os.path.join(dest_dir, bwfn) + if not os.path.exists(owfn): + nwfn = os.path.join(wheel_dir, bwfn) + fileutils.copyfile(nwfn, owfn) + pure_built.append(bwfn) + print(f' Built local wheel: {bwfn}') + return all_pure, pure_built + + +# TODO: Use me +def optimize_wheel(wheel_filename, dest_dir=THIRDPARTY_DIR): + """ + Optimize a wheel named `wheel_filename` in `dest_dir` such as renaming its + tags for PyPI compatibility and making it smaller if possible. Return the + name of the new wheel if renamed or the existing new name otherwise. + """ + if is_pure_wheel(wheel_filename): + print(f'Pure wheel: {wheel_filename}, nothing to do.') + return wheel_filename + + original_wheel_loc = os.path.join(dest_dir, wheel_filename) + wheel_dir = tempfile.mkdtemp(prefix='scancode-release-wheels-') + awargs = [ + 'auditwheel', + 'addtag', + '--wheel-dir', wheel_dir, + original_wheel_loc + ] + call(awargs) + + audited = os.listdir(wheel_dir) + if not audited: + # cannot optimize wheel + return wheel_filename + + assert len(audited) == 1 + new_wheel_name = audited[0] + + new_wheel_loc = os.path.join(wheel_dir, new_wheel_name) + + # this needs to go now + os.remove(original_wheel_loc) + + if new_wheel_name == wheel_filename: + os.rename(new_wheel_loc, original_wheel_loc) + return wheel_filename + + new_wheel = Wheel.from_filename(new_wheel_name) + non_pypi_plats = utils_pypi_supported_tags.validate_platforms_for_pypi(new_wheel.platforms) + new_wheel.platforms = [p for p in new_wheel.platforms if p not in non_pypi_plats] + if not new_wheel.platforms: + print(f'Cannot make wheel PyPI compatible: {original_wheel_loc}') + os.rename(new_wheel_loc, original_wheel_loc) + return wheel_filename + + new_wheel_cleaned_filename = new_wheel.to_filename() + new_wheel_cleaned_loc = os.path.join(dest_dir, new_wheel_cleaned_filename) + os.rename(new_wheel_loc, new_wheel_cleaned_loc) + return new_wheel_cleaned_filename + + +def extract_tar(location, dest_dir=THIRDPARTY_DIR,): + """ + Extract a tar archive at `location` in the `dest_dir` directory. Return a + list of extracted locations (either directories or files). + """ + with open(location, 'rb') as fi: + with tarfile.open(fileobj=fi) as tar: + members = list(tar.getmembers()) + tar.extractall(dest_dir, members=members) + + return [os.path.basename(ti.name) for ti in members + if ti.type == tarfile.REGTYPE] + + +def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): + """ + Fetch the binary wheel for package `name` and `version` and save in + `dest_dir`. Use the provided `environment` Environment to determine which + specific wheel to fetch. + + Return the fetched wheel file name on success or None if it was not fetched. + Trying fetching from our own remote repo, then from PyPI. + """ + wheel_filename = None + remote_package = get_remote_package(name=name, version=version) + if remote_package: + wheel_filename = remote_package.fetch_wheel( + environment=environment, dest_dir=dest_dir) + if wheel_filename: + return wheel_filename + + pypi_package = get_pypi_package(name=name, version=version) + if pypi_package: + wheel_filename = pypi_package.fetch_wheel( + environment=environment, dest_dir=dest_dir) + return wheel_filename + + +def check_about(dest_dir=THIRDPARTY_DIR): + try: + subprocess.check_output(f'bin/about check {dest_dir}'.split()) + except subprocess.CalledProcessError as cpe: + print() + print('Invalid ABOUT files:') + print(cpe.output.decode('utf-8', errors='replace')) + + +def find_problems( + dest_dir=THIRDPARTY_DIR, + report_missing_sources=False, + report_missing_wheels=False, +): + """ + Print the problems found in `dest_dir`. + """ + + local_packages = get_local_packages(directory=dest_dir) + + for package in local_packages: + if report_missing_sources and not package.sdist: + print(f'{package.name}=={package.version}: Missing source distribution.') + if report_missing_wheels and not package.wheels: + print(f'{package.name}=={package.version}: Missing wheels.') + + for dist in package.get_distributions(): + dist.load_about_data(dest_dir=dest_dir) + abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename)) + if not dist.has_key_metadata(): + print(f' Missing key ABOUT data in file://{abpth}') + if 'classifiers' in dist.extra_data: + print(f' Dangling classifiers data in file://{abpth}') + if not dist.validate_checksums(dest_dir): + print(f' Invalid checksums in file://{abpth}') + if not dist.sha1 and dist.md5: + print(f' Missing checksums in file://{abpth}') + + check_about(dest_dir=dest_dir) diff --git a/etc/scripts/utils_thirdparty.py.ABOUT b/etc/scripts/utils_thirdparty.py.ABOUT new file mode 100644 index 0000000..8480349 --- /dev/null +++ b/etc/scripts/utils_thirdparty.py.ABOUT @@ -0,0 +1,15 @@ +about_resource: utils_thirdparty.py +package_url: pkg:github.com/pypa/pip/@20.3.1#src/pip/_internal/models/wheel.py +type: github +namespace: pypa +name: pip +version: 20.3.1 +subpath: src/pip/_internal/models/wheel.py + +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: copied from pip-20.3.1 pip/_internal/models/wheel.py + The models code has been heavily inspired from the ISC-licensed packaging-dists + https://github.com/uranusjr/packaging-dists by Tzu-ping Chung + \ No newline at end of file From 0e1f56b7cdb0a6a09b01111f6e69faafb7080af4 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 1 Sep 2021 19:00:28 -0700 Subject: [PATCH 060/247] Normalize license in load_pkginfo_data #33 * Create copyright statement from holder information Signed-off-by: Jono Yang --- etc/scripts/utils_thirdparty.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 360f07a..d5a6d99 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -894,14 +894,20 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): classifiers = raw_data.get_all('Classifier') or [] declared_license = [raw_data['License']] + [c for c in classifiers if c.startswith('License')] + license_expression = compute_normalized_license_expression(declared_license) other_classifiers = [c for c in classifiers if not c.startswith('License')] + holder = raw_data['Author'] + holder_contact=raw_data['Author-email'] + copyright = f'Copyright {holder} <{holder_contact}>' pkginfo_data = dict( name=raw_data['Name'], declared_license=declared_license, version=raw_data['Version'], description=raw_data['Summary'], homepage_url=raw_data['Home-page'], + copyright=copyright, + license_expression=license_expression, holder=raw_data['Author'], holder_contact=raw_data['Author-email'], keywords=raw_data['Keywords'], @@ -2938,3 +2944,25 @@ def find_problems( print(f' Missing checksums in file://{abpth}') check_about(dest_dir=dest_dir) + + +def compute_normalized_license_expression(declared_licenses): + if not declared_licenses: + return + + from packagedcode import licensing + from packagedcode.utils import combine_expressions + + detected_licenses = [] + for declared in declared_licenses: + try: + license_expression = licensing.get_normalized_expression( + query_string=declared + ) + except Exception: + return 'unknown' + if not license_expression: + continue + detected_licenses.append(license_expression) + if detected_licenses: + return combine_expressions(detected_licenses) From 288532d448e5740519f69c8b210a95524e5ec538 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 2 Sep 2021 14:57:09 -0700 Subject: [PATCH 061/247] Add --init option to configure #33 * This is used for the case where we are starting off a project and have not yet generated requirements files Signed-off-by: Jono Yang --- configure | 7 +- etc/scripts/gen_pypi_simple.py | 191 ++++++++++++++++++++++++++ etc/scripts/gen_pypi_simple.py.ABOUT | 8 ++ etc/scripts/gen_pypi_simple.py.NOTICE | 56 ++++++++ etc/scripts/requirements.txt | 12 ++ etc/scripts/utils_thirdparty.py | 30 ++-- 6 files changed, 281 insertions(+), 23 deletions(-) create mode 100644 etc/scripts/gen_pypi_simple.py create mode 100644 etc/scripts/gen_pypi_simple.py.ABOUT create mode 100644 etc/scripts/gen_pypi_simple.py.NOTICE create mode 100644 etc/scripts/requirements.txt diff --git a/configure b/configure index 66d939a..bbe87b0 100755 --- a/configure +++ b/configure @@ -53,9 +53,6 @@ CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty --find-links https://thirdparty.aboutcode.org/pypi" -if [[ -f "$CFG_ROOT_DIR/requirements.txt" ]] && [[ -f "$CFG_ROOT_DIR/requirements-dev.txt" ]]; then - PIP_EXTRA_ARGS+=" --no-index" -fi ################################ # Set the quiet flag to empty if not defined @@ -161,13 +158,17 @@ install_packages() { # Main command line entry point CFG_DEV_MODE=0 CFG_REQUIREMENTS=$REQUIREMENTS +NO_INDEX="--no-index" case "$CLI_ARGS" in --help) cli_help;; --clean) clean;; --dev) CFG_REQUIREMENTS="$DEV_REQUIREMENTS" && CFG_DEV_MODE=1;; + --init) NO_INDEX="";; esac +PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" + create_virtualenv "$VIRTUALENV_DIR" install_packages "$CFG_REQUIREMENTS" . "$CFG_BIN_DIR/activate" diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py new file mode 100644 index 0000000..887e407 --- /dev/null +++ b/etc/scripts/gen_pypi_simple.py @@ -0,0 +1,191 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# SPDX-License-Identifier: BSD-2-Clause-Views AND MIT +# Copyright (c) 2010 David Wolever . All rights reserved. +# originally from https://github.com/wolever/pip2pi + +import os +import re +import shutil + +from html import escape +from pathlib import Path + +""" +name: pip compatibility tags +version: 20.3.1 +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: the weel name regex is copied from pip-20.3.1 pip/_internal/models/wheel.py + +Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" +get_wheel_from_filename = re.compile( + r"""^(?P(?P.+?)-(?P.*?)) + ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) + \.whl)$""", + re.VERBOSE +).match + +sdist_exts = ".tar.gz", ".tar.bz2", ".zip", ".tar.xz", +wheel_ext = ".whl" +app_ext = ".pyz" +dist_exts = sdist_exts + (wheel_ext, app_ext) + + +class InvalidDistributionFilename(Exception): + pass + + +def get_package_name_from_filename(filename, normalize=True): + """ + Return the package name extracted from a package ``filename``. + Optionally ``normalize`` the name according to distribution name rules. + Raise an ``InvalidDistributionFilename`` if the ``filename`` is invalid:: + + >>> get_package_name_from_filename("foo-1.2.3_rc1.tar.gz") + 'foo' + >>> get_package_name_from_filename("foo-bar-1.2-py27-none-any.whl") + 'foo-bar' + >>> get_package_name_from_filename("Cython-0.17.2-cp26-none-linux_x86_64.whl") + 'cython' + >>> get_package_name_from_filename("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") + 'python-ldap' + >>> get_package_name_from_filename("foo.whl") + Traceback (most recent call last): + ... + InvalidDistributionFilename: ... + >>> get_package_name_from_filename("foo.png") + Traceback (most recent call last): + ... + InvalidFilePackageName: ... + """ + if not filename or not filename.endswith(dist_exts): + raise InvalidDistributionFilename(filename) + + filename = os.path.basename(filename) + + if filename.endswith(sdist_exts): + name_ver = None + extension = None + + for ext in sdist_exts: + if filename.endswith(ext): + name_ver, extension, _ = filename.rpartition(ext) + break + + if not extension or not name_ver: + raise InvalidDistributionFilename(filename) + + name, _, version = name_ver.rpartition('-') + + if not (name and version): + raise InvalidDistributionFilename(filename) + + elif filename.endswith(wheel_ext): + + wheel_info = get_wheel_from_filename(filename) + + if not wheel_info: + raise InvalidDistributionFilename(filename) + + name = wheel_info.group('name') + version = wheel_info.group('version') + + if not (name and version): + raise InvalidDistributionFilename(filename) + + elif filename.endswith(app_ext): + name_ver, extension, _ = filename.rpartition(".pyz") + + if "-" in filename: + name, _, version = name_ver.rpartition('-') + else: + name = name_ver + + if not name: + raise InvalidDistributionFilename(filename) + + if normalize: + name = name.lower().replace('_', '-') + return name + + +def build_pypi_index(directory, write_index=False): + """ + Using a ``directory`` directory of wheels and sdists, create the a PyPI simple + directory index at ``directory``/simple/ populated with the proper PyPI simple + index directory structure crafted using symlinks. + + WARNING: The ``directory``/simple/ directory is removed if it exists. + """ + + directory = Path(directory) + + index_dir = directory / "simple" + if index_dir.exists(): + shutil.rmtree(str(index_dir), ignore_errors=True) + + index_dir.mkdir(parents=True) + + if write_index: + simple_html_index = [ + "PyPI Simple Index", + "", + ] + + package_names = set() + for pkg_file in directory.iterdir(): + + pkg_filename = pkg_file.name + + if ( + not pkg_file.is_file() + or not pkg_filename.endswith(dist_exts) + or pkg_filename.startswith(".") + ): + continue + + pkg_name = get_package_name_from_filename(pkg_filename) + pkg_index_dir = index_dir / pkg_name + pkg_index_dir.mkdir(parents=True, exist_ok=True) + pkg_indexed_file = pkg_index_dir / pkg_filename + link_target = Path("../..") / pkg_filename + pkg_indexed_file.symlink_to(link_target) + + if write_index and pkg_name not in package_names: + esc_name = escape(pkg_name) + simple_html_index.append(f'{esc_name}
') + package_names.add(pkg_name) + + if write_index: + simple_html_index.append("") + index_html = index_dir / "index.html" + index_html.write_text("\n".join(simple_html_index)) + + +if __name__ == "__main__": + import sys + pkg_dir = sys.argv[1] + build_pypi_index(pkg_dir) diff --git a/etc/scripts/gen_pypi_simple.py.ABOUT b/etc/scripts/gen_pypi_simple.py.ABOUT new file mode 100644 index 0000000..4de5ded --- /dev/null +++ b/etc/scripts/gen_pypi_simple.py.ABOUT @@ -0,0 +1,8 @@ +about_resource: gen_pypi_simple.py +name: gen_pypi_simple.py +license_expression: bsd-2-clause-views and mit +copyright: Copyright (c) nexB Inc. + Copyright (c) 2010 David Wolever + Copyright (c) The pip developers +notes: Originally from https://github.com/wolever/pip2pi and modified extensivley + Also partially derived from pip code diff --git a/etc/scripts/gen_pypi_simple.py.NOTICE b/etc/scripts/gen_pypi_simple.py.NOTICE new file mode 100644 index 0000000..6e0fbbc --- /dev/null +++ b/etc/scripts/gen_pypi_simple.py.NOTICE @@ -0,0 +1,56 @@ +SPDX-License-Identifier: BSD-2-Clause-Views AND mit + +Copyright (c) nexB Inc. +Copyright (c) 2010 David Wolever +Copyright (c) The pip developers + + +Original code: copyright 2010 David Wolever . All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those +of the authors and should not be interpreted as representing official policies, +either expressed or implied, of David Wolever. + + +Original code: Copyright (c) 2008-2020 The pip developers + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/etc/scripts/requirements.txt b/etc/scripts/requirements.txt new file mode 100644 index 0000000..6591e49 --- /dev/null +++ b/etc/scripts/requirements.txt @@ -0,0 +1,12 @@ +aboutcode_toolkit +github-release-retry2 +attrs +commoncode +click +requests +saneyaml +romp +pip +setuptools +twine +wheel \ No newline at end of file diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index d5a6d99..c0613c3 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -899,7 +899,8 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): holder = raw_data['Author'] holder_contact=raw_data['Author-email'] - copyright = f'Copyright {holder} <{holder_contact}>' + copyright = f'Copyright (c) {holder} <{holder_contact}>' + pkginfo_data = dict( name=raw_data['Name'], declared_license=declared_license, @@ -908,8 +909,8 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): homepage_url=raw_data['Home-page'], copyright=copyright, license_expression=license_expression, - holder=raw_data['Author'], - holder_contact=raw_data['Author-email'], + holder=holder, + holder_contact=holder_contact, keywords=raw_data['Keywords'], classifiers=other_classifiers, ) @@ -2949,20 +2950,9 @@ def find_problems( def compute_normalized_license_expression(declared_licenses): if not declared_licenses: return - - from packagedcode import licensing - from packagedcode.utils import combine_expressions - - detected_licenses = [] - for declared in declared_licenses: - try: - license_expression = licensing.get_normalized_expression( - query_string=declared - ) - except Exception: - return 'unknown' - if not license_expression: - continue - detected_licenses.append(license_expression) - if detected_licenses: - return combine_expressions(detected_licenses) + try: + from packagedcode import pypi + return pypi.compute_normalized_license(declared_licenses) + except ImportError: + # Scancode is not installed, we join all license strings and return it + return ' '.join(declared_licenses) From a5ae4f35473a38427f3fba9b225b6de0ec16522c Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 2 Sep 2021 16:48:04 -0700 Subject: [PATCH 062/247] Update README.rst #33 Signed-off-by: Jono Yang --- README.rst | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index b84a049..a52d805 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ A Simple Python Project Skeleton ================================ This repo attempts to standardize our python repositories using modern python packaging and configuration techniques. Using this `blog post`_ as inspiration, this -repository will serve as the base for all new python projects and will be adopted to all +repository will serve as the base for all new python projects and will be adopted to all our existing ones as well. .. _blog post: https://blog.jaraco.com/a-project-skeleton-for-python-projects/ @@ -33,7 +33,6 @@ Update an existing project This is also the workflow to use when updating the skeleton files in any given repository. - Customizing ----------- @@ -42,6 +41,72 @@ You typically want to perform these customizations: - remove or update the src/README.rst and tests/README.rst files - check the configure and configure.bat defaults +Initializing a project +---------------------- + +All projects using the skeleton will be expected to pull all of it dependencies +from thirdparty.aboutcode.org/pypi or the local thirdparty directory, using +requirements.txt and/or requirements-dev.txt to determine what version of a +package to collect. By default, PyPI will not be used to find and collect +packages from. + +In the case where we are starting a new project where we do not have +requirements.txt and requirements-dev.txt and whose dependencies are not yet on +thirdparty.aboutcode.org/pypi, we run the following command after adding and +customizing the skeleton files to your project: + +.. code-block:: bash + + ./configure --init + +This will initialize the virtual environment for the project, pull in the +dependencies from PyPI and add them to the virtual environment. + +Generating requirements.txt and requirements-dev.txt +---------------------------------------------------- + +After the project has been initialized, we can generate the requirements.txt and +requirements-dev.txt files. + +Ensure the virtual environment is enabled. + +To generate requirements.txt: + +.. code-block:: bash + + python etc/scripts/gen_requirements.py -s tmp/lib/python/site-packages/ + +Replace \ with the version number of the Python being used. + +To generate requirements-dev.txt after requirements.txt has been generated: + +.. code-block:: bash + ./configure --dev + source tmp/bin/activate + python etc/scripts/gen_requirements_dev.py -s tmp/lib/python/site-packages/ + +Collecting and generating ABOUT files for dependencies +------------------------------------------------------ + +Once we have requirements.txt and requirements-dev.txt, we can fetch the project +dependencies as wheels and generate ABOUT files for them: + +.. code-block:: bash + + python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps + +There may be issues with the generated ABOUT files, which will have to be +corrected. You can check to see if your corrections are valid by running: + +.. code-block:: bash + + python etc/scripts/check_thirdparty.py -d thirdparty + +Once the wheels are collected and the ABOUT files are generated and correct, +upload them to thirdparty.aboutcode.org/pypi by placing the wheels and ABOUT +files from the thirdparty directory to the pypi directory at +https://github.com/nexB/thirdparty-packages + Release Notes ------------- From 593e2379c688e92985a3c6eceabf69cb721207a5 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 2 Sep 2021 17:09:06 -0700 Subject: [PATCH 063/247] Use venv as virtual environment directory name #37 * Replace all references to `tmp` with `venv` Signed-off-by: Jono Yang --- .gitignore | 1 + .travis.yml | 2 +- README.rst | 6 +++--- azure-pipelines.yml | 14 +++++++------- configure | 4 ++-- configure.bat | 4 ++-- pyproject.toml | 3 ++- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 68de2d2..339dca5 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /Lib /pip-selfcheck.json /tmp +/venv .Python /include /Include diff --git a/.travis.yml b/.travis.yml index 1a90a38..ea48ceb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,4 +19,4 @@ python: install: ./configure --dev # Scripts to run at script stage -script: tmp/bin/pytest +script: venv/bin/pytest diff --git a/README.rst b/README.rst index a52d805..08ef083 100644 --- a/README.rst +++ b/README.rst @@ -74,7 +74,7 @@ To generate requirements.txt: .. code-block:: bash - python etc/scripts/gen_requirements.py -s tmp/lib/python/site-packages/ + python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ Replace \ with the version number of the Python being used. @@ -82,8 +82,8 @@ To generate requirements-dev.txt after requirements.txt has been generated: .. code-block:: bash ./configure --dev - source tmp/bin/activate - python etc/scripts/gen_requirements_dev.py -s tmp/lib/python/site-packages/ + source venv/bin/activate + python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ Collecting and generating ABOUT files for dependencies ------------------------------------------------------ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 31ef36f..22c12c4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ jobs: image_name: ubuntu-16.04 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp/bin/pytest -vvs + all: venv/bin/pytest -vvs - template: etc/ci/azure-posix.yml parameters: @@ -21,7 +21,7 @@ jobs: image_name: ubuntu-18.04 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp/bin/pytest -n 2 -vvs + all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: @@ -29,7 +29,7 @@ jobs: image_name: ubuntu-20.04 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp/bin/pytest -n 2 -vvs + all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: @@ -37,7 +37,7 @@ jobs: image_name: macos-10.14 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp/bin/pytest -n 2 -vvs + all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: @@ -45,7 +45,7 @@ jobs: image_name: macos-10.15 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp/bin/pytest -n 2 -vvs + all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: @@ -53,7 +53,7 @@ jobs: image_name: vs2017-win2016 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp\Scripts\pytest -n 2 -vvs + all: venv\Scripts\pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: @@ -61,4 +61,4 @@ jobs: image_name: windows-2019 python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: - all: tmp\Scripts\pytest -n 2 -vvs + all: venv\Scripts\pytest -n 2 -vvs diff --git a/configure b/configure index bbe87b0..7c162c7 100755 --- a/configure +++ b/configure @@ -30,12 +30,12 @@ REQUIREMENTS="--editable . --constraint requirements.txt" DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" # where we create a virtualenv -VIRTUALENV_DIR=tmp +VIRTUALENV_DIR=venv # Cleanable files and directories with the --clean option CLEANABLE=" build - tmp" + venv" # extra arguments passed to pip PIP_EXTRA_ARGS=" " diff --git a/configure.bat b/configure.bat index 75cab5f..529c371 100644 --- a/configure.bat +++ b/configure.bat @@ -28,10 +28,10 @@ set "REQUIREMENTS=--editable . --constraint requirements.txt" set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" @rem # where we create a virtualenv -set "VIRTUALENV_DIR=tmp" +set "VIRTUALENV_DIR=venv" @rem # Cleanable files and directories to delete with the --clean option -set "CLEANABLE=build tmp" +set "CLEANABLE=build venv" @rem # extra arguments passed to pip set "PIP_EXTRA_ARGS= " diff --git a/pyproject.toml b/pyproject.toml index 852f0fc..1e10f32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,10 +33,11 @@ norecursedirs = [ "Scripts", "thirdparty", "tmp", + "venv", "tests/data", ".eggs" ] - + python_files = "*.py" python_classes = "Test" From 9342bc1057da73bf39f1b0cb86b85bc581a76793 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 2 Sep 2021 18:26:29 -0700 Subject: [PATCH 064/247] Update configure.bat #33 * Add --init option to configure.bat * Update help text in configure and configure.bat Signed-off-by: Jono Yang --- configure | 4 ++++ configure.bat | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 7c162c7..3c60788 100755 --- a/configure +++ b/configure @@ -81,10 +81,14 @@ cli_help() { echo " usage: ./configure [options]" echo echo The default is to configure for regular use. Use --dev for development. + echo Use the --init option if starting a new project and the project + echo dependencies are not available on thirdparty.aboutcode.org/pypi/ + echo and requirements.txt and/or requirements-dev.txt has not been generated. echo echo The options are: echo " --clean: clean built and installed files and exit." echo " --dev: configure the environment for development." + echo " --init: pull dependencies from PyPI. Used when first setting up a project." echo " --help: display this help message and exit." echo echo By default, the python interpreter version found in the path is used. diff --git a/configure.bat b/configure.bat index 529c371..dc6db8b 100644 --- a/configure.bat +++ b/configure.bat @@ -49,11 +49,6 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling -if exist ""%CFG_ROOT_DIR%\requirements.txt"" if exist ""%CFG_ROOT_DIR%\requirements-dev.txt"" ( - set "INDEX_ARG= --no-index" -) else ( - set "INDEX_ARG= " -) set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% @rem ################################ @@ -69,6 +64,7 @@ if not defined CFG_QUIET ( @rem # Main command line entry point set CFG_DEV_MODE=0 set "CFG_REQUIREMENTS=%REQUIREMENTS%" +set "NO_INDEX=--no-index" if "%1" EQU "--help" (goto cli_help) if "%1" EQU "--clean" (goto clean) @@ -76,12 +72,18 @@ if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" set CFG_DEV_MODE=1 ) +if "%1" EQU "--init" ( + set "NO_INDEX= " +) if "%1" EQU "--python" ( echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" echo "variable instead. Run configure --help for details." exit /b 0 ) +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% %NO_INDEX%" + + @rem ################################ @rem # find a proper Python to run @rem # Use environment variables or a file if available. @@ -170,10 +172,14 @@ exit /b 0 echo " usage: configure [options]" echo " " echo The default is to configure for regular use. Use --dev for development. + echo Use the --init option if starting a new project and the project + echo dependencies are not available on thirdparty.aboutcode.org/pypi/ + echo and requirements.txt and/or requirements-dev.txt has not been generated. echo " " echo The options are: echo " --clean: clean built and installed files and exit." echo " --dev: configure the environment for development." + echo " --init: pull dependencies from PyPI. Used when first setting up a project." echo " --help: display this help message and exit." echo " " echo By default, the python interpreter version found in the path is used. From 45e4a2aaf2e887f1ccade825c323be68bad7d127 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 2 Sep 2021 18:42:03 -0700 Subject: [PATCH 065/247] Add placeholder requirements.txt files #33 Signed-off-by: Jono Yang --- requirements-dev.txt | 0 requirements.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 requirements-dev.txt create mode 100644 requirements.txt diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 From 944fbaee4ee4c317252ecdafe36af946dc58a9b8 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 3 Sep 2021 14:33:56 -0700 Subject: [PATCH 066/247] Handle multiple options in configure #33 Signed-off-by: Jono Yang --- README.rst | 4 ++-- configure | 18 ++++++++++++------ configure.bat | 31 ++++++++++++++++++------------- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/README.rst b/README.rst index 08ef083..78ab9f4 100644 --- a/README.rst +++ b/README.rst @@ -76,12 +76,12 @@ To generate requirements.txt: python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ -Replace \ with the version number of the Python being used. +Replace \ with the version number of the Python being used, for example: ``venv/lib/python3.6/site-packages/`` To generate requirements-dev.txt after requirements.txt has been generated: .. code-block:: bash - ./configure --dev + ./configure --init --dev source venv/bin/activate python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ diff --git a/configure b/configure index 3c60788..b965692 100755 --- a/configure +++ b/configure @@ -164,12 +164,18 @@ CFG_DEV_MODE=0 CFG_REQUIREMENTS=$REQUIREMENTS NO_INDEX="--no-index" -case "$CLI_ARGS" in - --help) cli_help;; - --clean) clean;; - --dev) CFG_REQUIREMENTS="$DEV_REQUIREMENTS" && CFG_DEV_MODE=1;; - --init) NO_INDEX="";; -esac +# We are using getopts to parse option arguments that start with "-" +while getopts :-: optchar; do + case "${optchar}" in + -) + case "${OPTARG}" in + help ) cli_help;; + clean ) clean;; + dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS" && CFG_DEV_MODE=1;; + init ) NO_INDEX="";; + esac;; + esac +done PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" diff --git a/configure.bat b/configure.bat index dc6db8b..31f91c4 100644 --- a/configure.bat +++ b/configure.bat @@ -66,19 +66,24 @@ set CFG_DEV_MODE=0 set "CFG_REQUIREMENTS=%REQUIREMENTS%" set "NO_INDEX=--no-index" -if "%1" EQU "--help" (goto cli_help) -if "%1" EQU "--clean" (goto clean) -if "%1" EQU "--dev" ( - set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" - set CFG_DEV_MODE=1 -) -if "%1" EQU "--init" ( - set "NO_INDEX= " -) -if "%1" EQU "--python" ( - echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" - echo "variable instead. Run configure --help for details." - exit /b 0 +:again +if not "%1" == "" ( + if "%1" EQU "--help" (goto cli_help) + if "%1" EQU "--clean" (goto clean) + if "%1" EQU "--dev" ( + set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" + set CFG_DEV_MODE=1 + ) + if "%1" EQU "--init" ( + set "NO_INDEX= " + ) + if "%1" EQU "--python" ( + echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" + echo "variable instead. Run configure --help for details." + exit /b 0 + ) + shift + goto again ) set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% %NO_INDEX%" From 3532b22ed0bb15e77dc315c527908dc87629e0e2 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 3 Sep 2021 17:01:20 -0700 Subject: [PATCH 067/247] Fix path to aboutcode in utils_thirdparty.py #33 * Update README.rst Signed-off-by: Jono Yang --- README.rst | 11 ++++++++++- etc/scripts/utils_thirdparty.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 78ab9f4..5853bf5 100644 --- a/README.rst +++ b/README.rst @@ -70,6 +70,10 @@ requirements-dev.txt files. Ensure the virtual environment is enabled. +.. code-block:: bash + + source venv/bin/activate + To generate requirements.txt: .. code-block:: bash @@ -82,12 +86,17 @@ To generate requirements-dev.txt after requirements.txt has been generated: .. code-block:: bash ./configure --init --dev - source venv/bin/activate python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ Collecting and generating ABOUT files for dependencies ------------------------------------------------------ +Ensure that the dependencies used by ``etc/scripts/bootstrap.py`` are installed: + +.. code-block:: bash + + pip install -r etc/scripts/requirements.txt + Once we have requirements.txt and requirements-dev.txt, we can fetch the project dependencies as wheels and generate ABOUT files for them: diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index c0613c3..23e837f 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -2908,7 +2908,7 @@ def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f'bin/about check {dest_dir}'.split()) + subprocess.check_output(f'venv/bin/about check {dest_dir}'.split()) except subprocess.CalledProcessError as cpe: print() print('Invalid ABOUT files:') From 9c78ddb5100dec3e6c57079bb3c06fbdc7b79b1c Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 3 Sep 2021 17:34:38 -0700 Subject: [PATCH 068/247] Update release notes in README.rst Signed-off-by: Jono Yang --- README.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 5853bf5..40226e0 100644 --- a/README.rst +++ b/README.rst @@ -39,6 +39,7 @@ Customizing You typically want to perform these customizations: - remove or update the src/README.rst and tests/README.rst files +- set project info and dependencies in setup.cfg - check the configure and configure.bat defaults Initializing a project @@ -118,7 +119,15 @@ https://github.com/nexB/thirdparty-packages Release Notes -------------- - -- 2021-05-11: adopt new configure scripts from ScanCode TK that allows correct - configuration of which Python version is used. +============= + +- 2021-09-03: + - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` and ``requirements-dev.txt`` + - ``configure`` can now accept multiple options at once + - Add utility scripts from scancode-toolkit/etc/release/ for use in generating project files + - Rename virtual environment directory from ``tmp`` to ``venv`` + - Update README.rst with instructions for generating ``requirements.txt`` and ``requirements-dev.txt``, + as well as collecting dependencies as wheels and generating ABOUT files for them. + +- 2021-05-11: + - Adopt new configure scripts from ScanCode TK that allows correct configuration of which Python version is used. From ebcfb933a7483d0a7cd1fc02d724cec5ef9b2d28 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 3 Sep 2021 18:59:49 -0700 Subject: [PATCH 069/247] Handle ExpressionParseError #33 * Update README.rst with instructions for post-initialization usage Signed-off-by: Jono Yang --- README.rst | 47 +++++++++++++++++++++++++++++++++ etc/scripts/utils_thirdparty.py | 6 ++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 40226e0..b15be20 100644 --- a/README.rst +++ b/README.rst @@ -89,6 +89,14 @@ To generate requirements-dev.txt after requirements.txt has been generated: ./configure --init --dev python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ +Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site-packages\`` + +.. code-block:: bash + + python .\\etc\\scripts\\gen_requirements.py -s .\\venv\\Lib\\site-packages\\ + .\configure --init --dev + python .\\etc\\scripts\\gen_requirements_dev.py -s .\\venv\\Lib\\site-packages\\ + Collecting and generating ABOUT files for dependencies ------------------------------------------------------ @@ -118,6 +126,45 @@ files from the thirdparty directory to the pypi directory at https://github.com/nexB/thirdparty-packages +Usage after project initialization +---------------------------------- + +Once the ``requirements.txt`` and ``requirements-dev.txt`` has been generated +and the project dependencies and their ABOUT files have been uploaded to +thirdparty.aboutcode.org/pypi, you can configure the project without using the +``--init`` option. + +If the virtual env for the project becomes polluted, or you would like to remove +it, use the ``--clean`` option: + +.. code-block:: bash + + ./configure --clean + +Then you can run ``./configure`` again to set up the project virtual environment. + +To set up the project for development use: + +.. code-block:: bash + + ./configure --dev + +To update the project dependencies (adding, removing, updating packages, etc.), +update the dependencies in ``setup.cfg``, then run: + +.. code-block:: bash + + ./configure --clean # Remove existing virtual environment + ./configure --init # Create project virtual environment, pull in new dependencies + source venv/bin/activate # Ensure virtual environment is activated + python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ # Regenerate requirements.txt + python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ # Regenerate requirements-dev.txt + pip install -r etc/scripts/requirements.txt # Install dependencies needed by etc/scripts/bootstrap.py + python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps # Collect dependency wheels and their ABOUT files + +Ensure that the generated ABOUT files are valid, then take the dependency wheels +and ABOUT files and upload them to thirdparty.aboutcode.org/pypi. + Release Notes ============= diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 23e837f..978f0e1 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -814,7 +814,11 @@ def get_pip_hash(self): return f'--hash=sha256:{self.sha256}' def get_license_keys(self): - return LICENSING.license_keys(self.license_expression, unique=True, simple=True) + try: + keys = LICENSING.license_keys(self.license_expression, unique=True, simple=True) + except license_expression.ExpressionParseError: + return ['unknown'] + return keys def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): """ From 6ab9c10e405b7cff243751082b7a7da4354256a8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 7 Sep 2021 19:42:08 +0200 Subject: [PATCH 070/247] Update README.rst Signed-off-by: Philippe Ombredanne --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index b15be20..deaaa34 100644 --- a/README.rst +++ b/README.rst @@ -129,7 +129,7 @@ https://github.com/nexB/thirdparty-packages Usage after project initialization ---------------------------------- -Once the ``requirements.txt`` and ``requirements-dev.txt`` has been generated +Once the ``requirements.txt`` and ``requirements-dev.txt`` have been generated and the project dependencies and their ABOUT files have been uploaded to thirdparty.aboutcode.org/pypi, you can configure the project without using the ``--init`` option. From bfdc6ff042a5866e67aa4adab4cd5ac71d47285e Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 7 Sep 2021 12:27:08 -0700 Subject: [PATCH 071/247] Address review comments #33 * Replace references to scancode-toolkit repo with links to the skeleton repo * Remove --python option from configure.bat Signed-off-by: Jono Yang --- configure.bat | 5 ----- etc/scripts/bootstrap.py | 6 +++--- etc/scripts/build_wheels.py | 2 +- etc/scripts/check_thirdparty.py | 2 +- etc/scripts/fetch_requirements.py | 4 ++-- etc/scripts/fix_thirdparty.py | 2 +- etc/scripts/gen_requirements.py | 2 +- etc/scripts/gen_requirements_dev.py | 2 +- etc/scripts/utils_dejacode.py | 2 +- etc/scripts/utils_requirements.py | 2 +- etc/scripts/utils_thirdparty.py | 2 +- 11 files changed, 13 insertions(+), 18 deletions(-) diff --git a/configure.bat b/configure.bat index 31f91c4..0c824a4 100644 --- a/configure.bat +++ b/configure.bat @@ -77,11 +77,6 @@ if not "%1" == "" ( if "%1" EQU "--init" ( set "NO_INDEX= " ) - if "%1" EQU "--python" ( - echo "The --python option is now DEPRECATED. Use the PYTHON_EXECUTABLE environment" - echo "variable instead. Run configure --help for details." - exit /b 0 - ) shift goto again ) diff --git a/etc/scripts/bootstrap.py b/etc/scripts/bootstrap.py index 54701f6..fde505b 100644 --- a/etc/scripts/bootstrap.py +++ b/etc/scripts/bootstrap.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # @@ -84,7 +84,7 @@ def bootstrap( OS(s) defaulting to all supported combinations. Create or fetch .ABOUT and .LICENSE files. - Optionally ignore version specifiers and use the ``--latest-version`` + Optionally ignore version specifiers and use the ``--latest-version`` of everything. Sources and wheels are fetched with attempts first from PyPI, then our remote repository. @@ -172,7 +172,7 @@ def bootstrap( (PypiPackage(name, version), envt) for name, version, envt in name_version_envt_to_build ] - + print(f'==> BUILDING #{len(packages_and_envts_to_build)} MISSING WHEELS') package_envts_not_built, wheel_filenames_built = utils_thirdparty.build_missing_wheels( diff --git a/etc/scripts/build_wheels.py b/etc/scripts/build_wheels.py index 416adc7..352b705 100644 --- a/etc/scripts/build_wheels.py +++ b/etc/scripts/build_wheels.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index b29ce2b..e48cfce 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click diff --git a/etc/scripts/fetch_requirements.py b/etc/scripts/fetch_requirements.py index dfd202a..21de865 100644 --- a/etc/scripts/fetch_requirements.py +++ b/etc/scripts/fetch_requirements.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import itertools @@ -108,7 +108,7 @@ def fetch_requirements( envs = (utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in envs) for env, reqf in itertools.product(envs, requirements_files): - + for package, error in utils_thirdparty.fetch_wheels( environment=env, requirements_file=reqf, diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py index b74b497..061d3fa 100644 --- a/etc/scripts/fix_thirdparty.py +++ b/etc/scripts/fix_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index c917c87..3be974c 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index 91e0ce6..ff4ce50 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index bb37de1..8b6e5d2 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import io diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 8b088ad..ddbed61 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import subprocess diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 978f0e1..0ebf6b2 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # from collections import defaultdict From 71d8dad4444f3de7a66a776e8848b0f1d1b1e201 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 8 Sep 2021 12:12:48 -0700 Subject: [PATCH 072/247] Update READMEs Signed-off-by: Jono Yang --- README.rst | 156 +-------------------------------------- docs/skeleton-usage.rst | 157 ++++++++++++++++++++++++++++++++++++++++ etc/scripts/README.rst | 147 +++++++++++++++++++++++++++++++++++++ 3 files changed, 305 insertions(+), 155 deletions(-) create mode 100644 docs/skeleton-usage.rst create mode 100755 etc/scripts/README.rst diff --git a/README.rst b/README.rst index deaaa34..4173689 100644 --- a/README.rst +++ b/README.rst @@ -9,161 +9,7 @@ our existing ones as well. Usage ===== -A brand new project -------------------- -.. code-block:: bash - - git init my-new-repo - cd my-new-repo - git pull git@github.com:nexB/skeleton - - # Create the new repo on GitHub, then update your remote - git remote set-url origin git@github.com:nexB/your-new-repo.git - -From here, you can make the appropriate changes to the files for your specific project. - -Update an existing project ---------------------------- -.. code-block:: bash - - cd my-existing-project - git remote add skeleton git@github.com:nexB/skeleton - git fetch skeleton - git merge skeleton/main --allow-unrelated-histories - -This is also the workflow to use when updating the skeleton files in any given repository. - -Customizing ------------ - -You typically want to perform these customizations: - -- remove or update the src/README.rst and tests/README.rst files -- set project info and dependencies in setup.cfg -- check the configure and configure.bat defaults - -Initializing a project ----------------------- - -All projects using the skeleton will be expected to pull all of it dependencies -from thirdparty.aboutcode.org/pypi or the local thirdparty directory, using -requirements.txt and/or requirements-dev.txt to determine what version of a -package to collect. By default, PyPI will not be used to find and collect -packages from. - -In the case where we are starting a new project where we do not have -requirements.txt and requirements-dev.txt and whose dependencies are not yet on -thirdparty.aboutcode.org/pypi, we run the following command after adding and -customizing the skeleton files to your project: - -.. code-block:: bash - - ./configure --init - -This will initialize the virtual environment for the project, pull in the -dependencies from PyPI and add them to the virtual environment. - -Generating requirements.txt and requirements-dev.txt ----------------------------------------------------- - -After the project has been initialized, we can generate the requirements.txt and -requirements-dev.txt files. - -Ensure the virtual environment is enabled. - -.. code-block:: bash - - source venv/bin/activate - -To generate requirements.txt: - -.. code-block:: bash - - python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ - -Replace \ with the version number of the Python being used, for example: ``venv/lib/python3.6/site-packages/`` - -To generate requirements-dev.txt after requirements.txt has been generated: - -.. code-block:: bash - ./configure --init --dev - python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ - -Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site-packages\`` - -.. code-block:: bash - - python .\\etc\\scripts\\gen_requirements.py -s .\\venv\\Lib\\site-packages\\ - .\configure --init --dev - python .\\etc\\scripts\\gen_requirements_dev.py -s .\\venv\\Lib\\site-packages\\ - -Collecting and generating ABOUT files for dependencies ------------------------------------------------------- - -Ensure that the dependencies used by ``etc/scripts/bootstrap.py`` are installed: - -.. code-block:: bash - - pip install -r etc/scripts/requirements.txt - -Once we have requirements.txt and requirements-dev.txt, we can fetch the project -dependencies as wheels and generate ABOUT files for them: - -.. code-block:: bash - - python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps - -There may be issues with the generated ABOUT files, which will have to be -corrected. You can check to see if your corrections are valid by running: - -.. code-block:: bash - - python etc/scripts/check_thirdparty.py -d thirdparty - -Once the wheels are collected and the ABOUT files are generated and correct, -upload them to thirdparty.aboutcode.org/pypi by placing the wheels and ABOUT -files from the thirdparty directory to the pypi directory at -https://github.com/nexB/thirdparty-packages - - -Usage after project initialization ----------------------------------- - -Once the ``requirements.txt`` and ``requirements-dev.txt`` have been generated -and the project dependencies and their ABOUT files have been uploaded to -thirdparty.aboutcode.org/pypi, you can configure the project without using the -``--init`` option. - -If the virtual env for the project becomes polluted, or you would like to remove -it, use the ``--clean`` option: - -.. code-block:: bash - - ./configure --clean - -Then you can run ``./configure`` again to set up the project virtual environment. - -To set up the project for development use: - -.. code-block:: bash - - ./configure --dev - -To update the project dependencies (adding, removing, updating packages, etc.), -update the dependencies in ``setup.cfg``, then run: - -.. code-block:: bash - - ./configure --clean # Remove existing virtual environment - ./configure --init # Create project virtual environment, pull in new dependencies - source venv/bin/activate # Ensure virtual environment is activated - python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ # Regenerate requirements.txt - python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ # Regenerate requirements-dev.txt - pip install -r etc/scripts/requirements.txt # Install dependencies needed by etc/scripts/bootstrap.py - python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps # Collect dependency wheels and their ABOUT files - -Ensure that the generated ABOUT files are valid, then take the dependency wheels -and ABOUT files and upload them to thirdparty.aboutcode.org/pypi. +Usage instructions can be found in ``docs/skeleton-usage.rst``. Release Notes ============= diff --git a/docs/skeleton-usage.rst b/docs/skeleton-usage.rst new file mode 100644 index 0000000..7d16259 --- /dev/null +++ b/docs/skeleton-usage.rst @@ -0,0 +1,157 @@ +Usage +===== +A brand new project +------------------- +.. code-block:: bash + + git init my-new-repo + cd my-new-repo + git pull git@github.com:nexB/skeleton + + # Create the new repo on GitHub, then update your remote + git remote set-url origin git@github.com:nexB/your-new-repo.git + +From here, you can make the appropriate changes to the files for your specific project. + +Update an existing project +--------------------------- +.. code-block:: bash + + cd my-existing-project + git remote add skeleton git@github.com:nexB/skeleton + git fetch skeleton + git merge skeleton/main --allow-unrelated-histories + +This is also the workflow to use when updating the skeleton files in any given repository. + +Customizing +----------- + +You typically want to perform these customizations: + +- remove or update the src/README.rst and tests/README.rst files +- set project info and dependencies in setup.cfg +- check the configure and configure.bat defaults + +Initializing a project +---------------------- + +All projects using the skeleton will be expected to pull all of it dependencies +from thirdparty.aboutcode.org/pypi or the local thirdparty directory, using +requirements.txt and/or requirements-dev.txt to determine what version of a +package to collect. By default, PyPI will not be used to find and collect +packages from. + +In the case where we are starting a new project where we do not have +requirements.txt and requirements-dev.txt and whose dependencies are not yet on +thirdparty.aboutcode.org/pypi, we run the following command after adding and +customizing the skeleton files to your project: + +.. code-block:: bash + + ./configure --init + +This will initialize the virtual environment for the project, pull in the +dependencies from PyPI and add them to the virtual environment. + +Generating requirements.txt and requirements-dev.txt +---------------------------------------------------- + +After the project has been initialized, we can generate the requirements.txt and +requirements-dev.txt files. + +Ensure the virtual environment is enabled. + +.. code-block:: bash + + source venv/bin/activate + +To generate requirements.txt: + +.. code-block:: bash + + python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ + +Replace \ with the version number of the Python being used, for example: ``venv/lib/python3.6/site-packages/`` + +To generate requirements-dev.txt after requirements.txt has been generated: + +.. code-block:: bash + ./configure --init --dev + python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ + +Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site-packages\`` + +.. code-block:: bash + + python .\\etc\\scripts\\gen_requirements.py -s .\\venv\\Lib\\site-packages\\ + .\configure --init --dev + python .\\etc\\scripts\\gen_requirements_dev.py -s .\\venv\\Lib\\site-packages\\ + +Collecting and generating ABOUT files for dependencies +------------------------------------------------------ + +Ensure that the dependencies used by ``etc/scripts/bootstrap.py`` are installed: + +.. code-block:: bash + + pip install -r etc/scripts/requirements.txt + +Once we have requirements.txt and requirements-dev.txt, we can fetch the project +dependencies as wheels and generate ABOUT files for them: + +.. code-block:: bash + + python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps + +There may be issues with the generated ABOUT files, which will have to be +corrected. You can check to see if your corrections are valid by running: + +.. code-block:: bash + + python etc/scripts/check_thirdparty.py -d thirdparty + +Once the wheels are collected and the ABOUT files are generated and correct, +upload them to thirdparty.aboutcode.org/pypi by placing the wheels and ABOUT +files from the thirdparty directory to the pypi directory at +https://github.com/nexB/thirdparty-packages + + +Usage after project initialization +---------------------------------- + +Once the ``requirements.txt`` and ``requirements-dev.txt`` have been generated +and the project dependencies and their ABOUT files have been uploaded to +thirdparty.aboutcode.org/pypi, you can configure the project without using the +``--init`` option. + +If the virtual env for the project becomes polluted, or you would like to remove +it, use the ``--clean`` option: + +.. code-block:: bash + + ./configure --clean + +Then you can run ``./configure`` again to set up the project virtual environment. + +To set up the project for development use: + +.. code-block:: bash + + ./configure --dev + +To update the project dependencies (adding, removing, updating packages, etc.), +update the dependencies in ``setup.cfg``, then run: + +.. code-block:: bash + + ./configure --clean # Remove existing virtual environment + ./configure --init # Create project virtual environment, pull in new dependencies + source venv/bin/activate # Ensure virtual environment is activated + python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ # Regenerate requirements.txt + python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ # Regenerate requirements-dev.txt + pip install -r etc/scripts/requirements.txt # Install dependencies needed by etc/scripts/bootstrap.py + python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps # Collect dependency wheels and their ABOUT files + +Ensure that the generated ABOUT files are valid, then take the dependency wheels +and ABOUT files and upload them to thirdparty.aboutcode.org/pypi. diff --git a/etc/scripts/README.rst b/etc/scripts/README.rst new file mode 100755 index 0000000..4cb6ec7 --- /dev/null +++ b/etc/scripts/README.rst @@ -0,0 +1,147 @@ +This directory contains the tools to: + +- manage a directory of thirdparty Python package source, wheels and metadata: + pin, build, update, document and publish to a PyPI-like repo (GitHub release) + +- build and publish scancode releases as wheel, sources and OS-specific bundles. + + +NOTE: These are tested to run ONLY on Linux. + + +Thirdparty packages management scripts +====================================== + +Pre-requisites +-------------- + +* There are two run "modes": + + * To generate or update pip requirement files, you need to start with a clean + virtualenv as instructed below (This is to avoid injecting requirements + specific to the tools here in the main requirements). + + * For other usages, the tools here can run either in their own isolated + virtualenv best or in the the main configured development virtualenv. + These requireements need to be installed:: + + pip install --requirement etc/release/requirements.txt + +TODO: we need to pin the versions of these tools + + + +Generate or update pip requirement files +---------------------------------------- + +Scripts +~~~~~~~ + +**gen_requirements.py**: create/update requirements files from currently + installed requirements. + +**gen_requirements_dev.py** does the same but can subtract the main requirements + to get extra requirements used in only development. + + +Usage +~~~~~ + +The sequence of commands to run are: + + +* Start with these to generate the main pip requirements file:: + + ./configure --clean + ./configure + python etc/release/gen_requirements.py --site-packages-dir + +* You can optionally install or update extra main requirements after the + ./configure step such that these are included in the generated main requirements. + +* Optionally, generate a development pip requirements file by running these:: + + ./configure --clean + ./configure --dev + python etc/release/gen_requirements_dev.py --site-packages-dir + +* You can optionally install or update extra dev requirements after the + ./configure step such that these are included in the generated dev + requirements. + +Notes: we generate development requirements after the main as this step requires +the main requirements.txt to be up-to-date first. See **gen_requirements.py and +gen_requirements_dev.py** --help for details. + +Note: this does NOT hash requirements for now. + +Note: Be aware that if you are using "conditional" requirements (e.g. only for +OS or Python versions) in setup.py/setp.cfg/requirements.txt as these are NOT +yet supported. + + +Populate a thirdparty directory with wheels, sources, .ABOUT and license files +------------------------------------------------------------------------------ + +Scripts +~~~~~~~ + +* **fetch_requirements.py** will fetch package wheels, their ABOUT, LICENSE and + NOTICE files to populate a local a thirdparty directory strictly from our + remote repo and using only pinned packages listed in one or more pip + requirements file(s). Fetch only requirements for specific python versions and + operating systems. Optionally fetch the corresponding source distributions. + +* **publish_files.py** will upload/sync a thirdparty directory of files to our + remote repo. Requires a GitHub personal access token. + +* **build_wheels.py** will build a package binary wheel for multiple OS and + python versions. Optionally wheels that contain native code are built + remotely. Dependent wheels are optionally included. Requires Azure credentials + and tokens if building wheels remotely on multiple operatin systems. + +* **fix_thirdparty.py** will fix a thirdparty directory with a best effort to + add missing wheels, sources archives, create or fetch or fix .ABOUT, .NOTICE + and .LICENSE files. Requires Azure credentials and tokens if requesting the + build of missing wheels remotely on multiple operatin systems. + +* **check_thirdparty.py** will check a thirdparty directory for errors. + +* **bootstrap.py** will bootstrap a thirdparty directory from a requirements + file(s) to add or build missing wheels, sources archives and create .ABOUT, + .NOTICE and .LICENSE files. Requires Azure credentials and tokens if + requesting the build of missing wheels remotely on multiple operatin systems. + + + +Usage +~~~~~ + +See each command line --help option for details. + +* (TODO) **add_package.py** will add or update a Python package including wheels, + sources and ABOUT files and this for multiple Python version and OSes(for use + with upload_packages.py afterwards) You will need an Azure personal access + token for buidling binaries and an optional DejaCode API key to post and fetch + new package versions there. TODO: explain how we use romp + + +Upgrade virtualenv app +---------------------- + +The bundled virtualenv.pyz has to be upgraded by hand and is stored under +etc/thirdparty + +* Fetch https://github.com/pypa/get-virtualenv/raw//public/virtualenv.pyz + for instance https://github.com/pypa/get-virtualenv/raw/20.2.2/public/virtualenv.pyz + and save to thirdparty and update the ABOUT and LICENSE files as needed. + +* This virtualenv app contains also bundled pip, wheel and setuptools that are + essential for the installation to work. + + +Other files +=========== + +The other files and scripts are test, support and utility modules used by the +main scripts documented here. From d2bafb9f48995d5d2ea8bded503e30a6c25b2ef7 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Wed, 15 Sep 2021 15:58:48 +0800 Subject: [PATCH 073/247] Fixed #41 - Handled encoding issue when generating ABOUT files Signed-off-by: Chin Yeung Li --- etc/scripts/utils_thirdparty.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 0ebf6b2..d77afc3 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -693,7 +693,8 @@ def save_if_modified(location, content): return False if TRACE: print(f'Saving ABOUT (and NOTICE) files for: {self}') - with open(location, 'w') as fo: + wmode = 'wb' if isinstance(content, bytes) else 'w' + with open(location, wmode, encoding="utf-8") as fo: fo.write(content) return True @@ -725,6 +726,8 @@ def load_about_data(self, about_filename_or_data=None, dest_dir=THIRDPARTY_DIR): if os.path.exists(about_path): with open(about_path) as fi: about_data = saneyaml.load(fi.read()) + if not about_data: + return False else: return False else: @@ -1842,7 +1845,7 @@ def get(self, path_or_url, as_text=True): if not os.path.exists(cached): content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = 'w' if as_text else 'wb' - with open(cached, wmode) as fo: + with open(cached, wmode, encoding="utf-8") as fo: fo.write(content) return content else: @@ -1854,7 +1857,7 @@ def put(self, filename, content): """ cached = os.path.join(self.directory, filename) wmode = 'wb' if isinstance(content, bytes) else 'w' - with open(cached, wmode) as fo: + with open(cached, wmode, encoding="utf-8") as fo: fo.write(content) @@ -2362,7 +2365,7 @@ def update_requirements(name, version=None, requirements_file='requirements.txt' updated_name_versions = sorted(updated_name_versions) nvs = '\n'.join(f'{name}=={version}' for name, version in updated_name_versions) - with open(requirements_file, 'w') as fo: + with open(requirements_file, 'w', encoding="utf-8") as fo: fo.write(nvs) @@ -2380,7 +2383,7 @@ def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.t raise Exception(f'Missing required package {name}=={version}') hashed.append(package.specifier_with_hashes) - with open(requirements_file, 'w') as fo: + with open(requirements_file, 'w', encoding="utf-8") as fo: fo.write('\n'.join(hashed)) ################################################################################ From 567156396f81d533ee3d4085fe2030d58b8ebd2f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 5 Oct 2021 12:48:28 +0200 Subject: [PATCH 074/247] Treat text files as text And not a possible binaries Also Ensure that we craft a minimally parsable license expression, even if not correct. Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 51 +++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index d77afc3..7613a0c 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -24,13 +24,14 @@ import attr import license_expression import packageurl -import utils_pip_compatibility_tags -import utils_pypi_supported_tags import requests import saneyaml +import utils_pip_compatibility_tags +import utils_pypi_supported_tags from commoncode import fileutils from commoncode.hash import multi_checksums +from commoncode.text import python_safe_name from packaging import tags as packaging_tags from packaging import version as packaging_version from utils_requirements import load_requirements @@ -172,11 +173,20 @@ def fetch_wheels( else: force_pinned = False - rrp = list(get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - )) + try: + rrp = list(get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + )) + except Exception as e: + raise Exception( + dict( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + ) + ) from e fetched_filenames = set() for name, version, package in rrp: @@ -211,6 +221,7 @@ def fetch_wheels( print(f'Missed package {nv} in remote repo, has only:') for pv in rr.get_versions(n): print(' ', pv) + raise Exception('Missed some packages in remote repo') def fetch_sources( @@ -261,6 +272,8 @@ def fetch_sources( fetched = package.fetch_sdist(dest_dir=dest_dir) error = f'Failed to fetch' if not fetched else None yield package, error + if missed: + raise Exception(f'Missing source packages in {remote_links_url}', missed) ################################################################################ # @@ -693,8 +706,7 @@ def save_if_modified(location, content): return False if TRACE: print(f'Saving ABOUT (and NOTICE) files for: {self}') - wmode = 'wb' if isinstance(content, bytes) else 'w' - with open(location, wmode, encoding="utf-8") as fo: + with open(location, 'w') as fo: fo.write(content) return True @@ -905,8 +917,8 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): other_classifiers = [c for c in classifiers if not c.startswith('License')] holder = raw_data['Author'] - holder_contact=raw_data['Author-email'] - copyright = f'Copyright (c) {holder} <{holder_contact}>' + holder_contact = raw_data['Author-email'] + copyright_statement = f'Copyright (c) {holder} <{holder_contact}>' pkginfo_data = dict( name=raw_data['Name'], @@ -914,7 +926,7 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): version=raw_data['Version'], description=raw_data['Summary'], homepage_url=raw_data['Home-page'], - copyright=copyright, + copyright=copyright_statement, license_expression=license_expression, holder=holder, holder_contact=holder_contact, @@ -1845,7 +1857,7 @@ def get(self, path_or_url, as_text=True): if not os.path.exists(cached): content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = 'w' if as_text else 'wb' - with open(cached, wmode, encoding="utf-8") as fo: + with open(cached, wmode) as fo: fo.write(content) return content else: @@ -1857,7 +1869,7 @@ def put(self, filename, content): """ cached = os.path.join(self.directory, filename) wmode = 'wb' if isinstance(content, bytes) else 'w' - with open(cached, wmode, encoding="utf-8") as fo: + with open(cached, wmode) as fo: fo.write(content) @@ -2331,7 +2343,7 @@ def get_required_remote_packages( repo = get_remote_repo(remote_links_url=remote_links_url) else: # a local path - assert os.path.exists(remote_links_url) + assert os.path.exists(remote_links_url), f'Path does not exist: {remote_links_url}' repo = get_local_repo(directory=remote_links_url) for name, version in required_name_versions: @@ -2365,7 +2377,7 @@ def update_requirements(name, version=None, requirements_file='requirements.txt' updated_name_versions = sorted(updated_name_versions) nvs = '\n'.join(f'{name}=={version}' for name, version in updated_name_versions) - with open(requirements_file, 'w', encoding="utf-8") as fo: + with open(requirements_file, 'w') as fo: fo.write(nvs) @@ -2383,7 +2395,7 @@ def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.t raise Exception(f'Missing required package {name}=={version}') hashed.append(package.specifier_with_hashes) - with open(requirements_file, 'w', encoding="utf-8") as fo: + with open(requirements_file, 'w') as fo: fo.write('\n'.join(hashed)) ################################################################################ @@ -2961,5 +2973,6 @@ def compute_normalized_license_expression(declared_licenses): from packagedcode import pypi return pypi.compute_normalized_license(declared_licenses) except ImportError: - # Scancode is not installed, we join all license strings and return it - return ' '.join(declared_licenses) + # Scancode is not installed, clean and join all the licenses + lics = [python_safe_name(l).lower() for l in declared_licenses] + return ' AND '.join(lics).lower() From 14f6a2da068bcaa9eed1809bfdafd0656afb47d0 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 5 Oct 2021 12:50:40 +0200 Subject: [PATCH 075/247] Add helper to publish files in GH releases The upload is otherwise shaky. Signed-off-by: Philippe Ombredanne --- etc/scripts/publish_files.py | 204 +++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 etc/scripts/publish_files.py diff --git a/etc/scripts/publish_files.py b/etc/scripts/publish_files.py new file mode 100644 index 0000000..f343cb3 --- /dev/null +++ b/etc/scripts/publish_files.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import hashlib +import os +import sys + +from pathlib import Path + +import click +import requests +import utils_thirdparty + +from github_release_retry import github_release_retry as grr + +""" +Create GitHub releases and upload files there. +""" + + +def get_files(location): + """ + Return an iterable of (filename, Path, md5) tuples for files in the `location` + directory tree recursively. + """ + for top, _dirs, files in os.walk(location): + for filename in files: + pth = Path(os.path.join(top, filename)) + with open(pth, 'rb') as fi: + md5 = hashlib.md5(fi.read()).hexdigest() + yield filename, pth, md5 + + +def get_etag_md5(url): + """ + Return the cleaned etag of URL `url` or None. + """ + headers = utils_thirdparty.get_remote_headers(url) + headers = {k.lower(): v for k, v in headers.items()} + etag = headers .get('etag') + if etag: + etag = etag.strip('"').lower() + return etag + + +def create_or_update_release_and_upload_directory( + user, + repo, + tag_name, + token, + directory, + retry_limit=10, + description=None, +): + """ + Create or update a GitHub release at https://github.com// for + `tag_name` tag using the optional `description` for this release. + Use the provided `token` as a GitHub token for API calls authentication. + Upload all files found in the `directory` tree to that GitHub release. + Retry API calls up to `retry_limit` time to work around instability the + GitHub API. + + Remote files that are not the same as the local files are deleted and re- + uploaded. + """ + release_homepage_url = f'https://github.com/{user}/{repo}/releases/{tag_name}' + + # scrape release page HTML for links + urls_by_filename = {os.path.basename(l): l + for l in utils_thirdparty.get_paths_or_urls(links_url=release_homepage_url) + } + + # compute what is new, modified or unchanged + print(f'Compute which files is new, modified or unchanged in {release_homepage_url}') + + new_to_upload = [] + unchanged_to_skip = [] + modified_to_delete_and_reupload = [] + for filename, pth, md5 in get_files(directory): + url = urls_by_filename.get(filename) + if not url: + print(f'{filename} content is NEW, will upload') + new_to_upload.append(pth) + continue + + out_of_date = get_etag_md5(url) != md5 + if out_of_date: + print(f'{url} content is CHANGED based on md5 etag, will re-upload') + modified_to_delete_and_reupload.append(pth) + else: + # print(f'{url} content is IDENTICAL, skipping upload based on Etag') + unchanged_to_skip.append(pth) + print('.') + + ghapi = grr.GithubApi( + github_api_url='https://api.github.com', + user=user, + repo=repo, + token=token, + retry_limit=retry_limit, + ) + + # yank modified + print( + f'Unpublishing {len(modified_to_delete_and_reupload)} published but ' + f'locally modified files in {release_homepage_url}') + + release = ghapi.get_release_by_tag(tag_name) + + for pth in modified_to_delete_and_reupload: + filename = os.path.basename(pth) + asset_id = ghapi.find_asset_id_by_file_name(filename, release) + print (f' Unpublishing file: {filename}).') + response = ghapi.delete_asset(asset_id) + if response.status_code != requests.codes.no_content: # NOQA + raise Exception(f'failed asset deletion: {response}') + + # finally upload new and modified + to_upload = new_to_upload + modified_to_delete_and_reupload + print(f'Publishing with {len(to_upload)} files to {release_homepage_url}') + release = grr.Release(tag_name=tag_name, body=description) + grr.make_release(ghapi, release, to_upload) + + +TOKEN_HELP = ( + 'The Github personal acess token is used to authenticate API calls. ' + 'Required unless you set the GITHUB_TOKEN environment variable as an alternative. ' + 'See for details: https://github.com/settings/tokens and ' + 'https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token' +) + + +@click.command() + +@click.option( + '--user-repo-tag', + help='The GitHub qualified repository user/name/tag in which ' + 'to create the release such as in nexB/thirdparty/pypi', + type=str, + required=True, +) +@click.option( + '-d', '--directory', + help='The directory that contains files to upload to the release.', + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), + required=True, +) +@click.option( + '--token', + help=TOKEN_HELP, + default=os.environ.get('GITHUB_TOKEN', None), + type=str, + required=False, +) +@click.option( + '--description', + help='Text description for the release. Ignored if the release exists.', + default=None, + type=str, + required=False, +) +@click.option( + '--retry_limit', + help='Number of retries when making failing GitHub API calls. ' + 'Retrying helps work around transient failures of the GitHub API.', + type=int, + default=10, +) +@click.help_option('-h', '--help') +def publish_files( + user_repo_tag, + directory, + retry_limit=10, token=None, description=None, +): + """ + Publish all the files in DIRECTORY as assets to a GitHub release. + Either create or update/replace remote files' + """ + if not token: + click.secho('--token required option is missing.') + click.secho(TOKEN_HELP) + sys.exit(1) + + user, repo, tag_name = user_repo_tag.split('/') + + create_or_update_release_and_upload_directory( + user=user, + repo=repo, + tag_name=tag_name, + description=description, + retry_limit=retry_limit, + token=token, + directory=directory, + ) + + +if __name__ == '__main__': + publish_files() From 1a2a144005dc1831223f64c36dc470f3265659bd Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Wed, 6 Oct 2021 09:02:50 +0800 Subject: [PATCH 076/247] Add code to use curl if wget is not installed Signed-off-by: Chin Yeung Li --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index b965692..a141735 100755 --- a/configure +++ b/configure @@ -127,7 +127,7 @@ create_virtualenv() { VIRTUALENV_PYZ="$CFG_ROOT_DIR/etc/thirdparty/virtualenv.pyz" else VIRTUALENV_PYZ="$CFG_ROOT_DIR/$VENV_DIR/virtualenv.pyz" - wget -O "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL" + wget -O "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL" 2>/dev/null || curl -o "$VIRTUALENV_PYZ" "$VIRTUALENV_PYZ_URL" fi $PYTHON_EXECUTABLE "$VIRTUALENV_PYZ" \ From 7aa7d4c08977128a24f029bea1d587f48842210d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 8 Oct 2021 14:39:38 +0200 Subject: [PATCH 077/247] Do not issue warning if thirdparty dir is missing Signed-off-by: Philippe Ombredanne --- configure | 5 ++++- configure.bat | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/configure b/configure index b965692..13ee98e 100755 --- a/configure +++ b/configure @@ -51,7 +51,10 @@ CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org -PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty --find-links https://thirdparty.aboutcode.org/pypi" +if [ -f "$CFG_ROOT_DIR/thirdparty" ]; then + PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty " +fi +PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi" ################################ diff --git a/configure.bat b/configure.bat index 0c824a4..46ed4b3 100644 --- a/configure.bat +++ b/configure.bat @@ -49,7 +49,11 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling -set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% +if exist ""%CFG_ROOT_DIR%\thirdparty"" ( + set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty " +) + +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% @rem ################################ From b46d84f6ae633105ce0b1ff51714e34778d608f5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 11 Oct 2021 22:29:48 +0200 Subject: [PATCH 078/247] Handle as_text correctly in cache Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 40 ++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) mode change 100644 => 100755 etc/scripts/utils_thirdparty.py diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py old mode 100644 new mode 100755 index d77afc3..99b9c0e --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -172,11 +172,20 @@ def fetch_wheels( else: force_pinned = False - rrp = list(get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - )) + try: + rrp = list(get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + )) + except Exception as e: + raise Exception( + dict( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + ) + ) from e fetched_filenames = set() for name, version, package in rrp: @@ -211,6 +220,7 @@ def fetch_wheels( print(f'Missed package {nv} in remote repo, has only:') for pv in rr.get_versions(n): print(' ', pv) + raise Exception('Missed some packages in remote repo') def fetch_sources( @@ -261,6 +271,8 @@ def fetch_sources( fetched = package.fetch_sdist(dest_dir=dest_dir) error = f'Failed to fetch' if not fetched else None yield package, error + if missed: + raise Exception(f'Missing source packages in {remote_links_url}', missed) ################################################################################ # @@ -693,8 +705,7 @@ def save_if_modified(location, content): return False if TRACE: print(f'Saving ABOUT (and NOTICE) files for: {self}') - wmode = 'wb' if isinstance(content, bytes) else 'w' - with open(location, wmode, encoding="utf-8") as fo: + with open(location, 'w') as fo: fo.write(content) return True @@ -1845,7 +1856,7 @@ def get(self, path_or_url, as_text=True): if not os.path.exists(cached): content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = 'w' if as_text else 'wb' - with open(cached, wmode, encoding="utf-8") as fo: + with open(cached, wmode) as fo: fo.write(content) return content else: @@ -1857,7 +1868,7 @@ def put(self, filename, content): """ cached = os.path.join(self.directory, filename) wmode = 'wb' if isinstance(content, bytes) else 'w' - with open(cached, wmode, encoding="utf-8") as fo: + with open(cached, wmode) as fo: fo.write(content) @@ -2331,7 +2342,7 @@ def get_required_remote_packages( repo = get_remote_repo(remote_links_url=remote_links_url) else: # a local path - assert os.path.exists(remote_links_url) + assert os.path.exists(remote_links_url), f'Path does not exist: {remote_links_url}' repo = get_local_repo(directory=remote_links_url) for name, version in required_name_versions: @@ -2365,7 +2376,7 @@ def update_requirements(name, version=None, requirements_file='requirements.txt' updated_name_versions = sorted(updated_name_versions) nvs = '\n'.join(f'{name}=={version}' for name, version in updated_name_versions) - with open(requirements_file, 'w', encoding="utf-8") as fo: + with open(requirements_file, 'w') as fo: fo.write(nvs) @@ -2383,7 +2394,7 @@ def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.t raise Exception(f'Missing required package {name}=={version}') hashed.append(package.specifier_with_hashes) - with open(requirements_file, 'w', encoding="utf-8") as fo: + with open(requirements_file, 'w') as fo: fo.write('\n'.join(hashed)) ################################################################################ @@ -2915,7 +2926,7 @@ def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f'venv/bin/about check {dest_dir}'.split()) + subprocess.check_output(f'about check {dest_dir}'.split()) except subprocess.CalledProcessError as cpe: print() print('Invalid ABOUT files:') @@ -2953,7 +2964,6 @@ def find_problems( check_about(dest_dir=dest_dir) - def compute_normalized_license_expression(declared_licenses): if not declared_licenses: return @@ -2962,4 +2972,4 @@ def compute_normalized_license_expression(declared_licenses): return pypi.compute_normalized_license(declared_licenses) except ImportError: # Scancode is not installed, we join all license strings and return it - return ' '.join(declared_licenses) + return ' '.join(declared_licenses).lower() From 255a898ceb3c440ad38c38d08dab7e2e9463771b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 11 Oct 2021 22:29:48 +0200 Subject: [PATCH 079/247] Handle as_text correctly in cache Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 1 - 1 file changed, 1 deletion(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 7613a0c..6b268ca 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -2965,7 +2965,6 @@ def find_problems( check_about(dest_dir=dest_dir) - def compute_normalized_license_expression(declared_licenses): if not declared_licenses: return From e5833d13d8493af3ee385c63b76d4bd55aacbe15 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 18 Oct 2021 13:53:58 +0200 Subject: [PATCH 080/247] Add support for Python 3.10 Signed-off-by: Philippe Ombredanne --- etc/scripts/README.rst | 12 ++++-------- etc/scripts/utils_thirdparty.py | 7 ++++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/etc/scripts/README.rst b/etc/scripts/README.rst index 4cb6ec7..d8b00f9 100755 --- a/etc/scripts/README.rst +++ b/etc/scripts/README.rst @@ -1,10 +1,6 @@ -This directory contains the tools to: - -- manage a directory of thirdparty Python package source, wheels and metadata: - pin, build, update, document and publish to a PyPI-like repo (GitHub release) - -- build and publish scancode releases as wheel, sources and OS-specific bundles. - +This directory contains the tools to manage a directory of thirdparty Python +package source, wheels and metadata pin, build, update, document and publish to +a PyPI-like repo (GitHub release). NOTE: These are tested to run ONLY on Linux. @@ -38,7 +34,7 @@ Scripts ~~~~~~~ **gen_requirements.py**: create/update requirements files from currently - installed requirements. + installed requirements. **gen_requirements_dev.py** does the same but can subtract the main requirements to get extra requirements used in only development. diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 5cac536..444b20d 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -87,13 +87,14 @@ TRACE = False # Supported environments -PYTHON_VERSIONS = '36', '37', '38', '39', +PYTHON_VERSIONS = '36', '37', '38', '39', '310' ABIS_BY_PYTHON_VERSION = { '36':['cp36', 'cp36m'], '37':['cp37', 'cp37m'], '38':['cp38', 'cp38m'], '39':['cp39', 'cp39m'], + '310':['cp310', 'cp310m'], } PLATFORMS_BY_OS = { @@ -102,6 +103,7 @@ 'manylinux1_x86_64', 'manylinux2014_x86_64', 'manylinux2010_x86_64', + 'manylinux_2_12_x86_64', ], 'macos': [ 'macosx_10_6_intel', 'macosx_10_6_x86_64', @@ -112,6 +114,9 @@ 'macosx_10_13_intel', 'macosx_10_13_x86_64', 'macosx_10_14_intel', 'macosx_10_14_x86_64', 'macosx_10_15_intel', 'macosx_10_15_x86_64', + 'macosx_10_15_x86_64', + 'macosx_11_0_x86_64', + # 'macosx_11_0_arm64', ], 'windows': [ 'win_amd64', From 0a0ef125bfad078529070e7ee0e6caf6af70b331 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 29 Oct 2021 17:37:15 +0200 Subject: [PATCH 081/247] Adopt black style Signed-off-by: Philippe Ombredanne --- docs/source/conf.py | 23 +- etc/scripts/bootstrap.py | 122 ++- etc/scripts/build_wheels.py | 60 +- etc/scripts/check_thirdparty.py | 11 +- etc/scripts/fetch_requirements.py | 80 +- etc/scripts/fix_thirdparty.py | 38 +- etc/scripts/gen_pypi_simple.py | 20 +- etc/scripts/gen_requirements.py | 21 +- etc/scripts/gen_requirements_dev.py | 35 +- etc/scripts/publish_files.py | 90 +- .../test_utils_pip_compatibility_tags.py | 70 +- etc/scripts/test_utils_pypi_supported_tags.py | 1 + etc/scripts/utils_dejacode.py | 78 +- etc/scripts/utils_pip_compatibility_tags.py | 28 +- etc/scripts/utils_pypi_supported_tags.py | 6 +- etc/scripts/utils_requirements.py | 28 +- etc/scripts/utils_thirdparty.py | 960 ++++++++++-------- 17 files changed, 930 insertions(+), 741 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 529cae3..b792d9f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,9 +17,9 @@ # -- Project information ----------------------------------------------------- -project = 'nexb-skeleton' -copyright = 'nexb Inc.' -author = 'nexb Inc.' +project = "nexb-skeleton" +copyright = "nexb Inc." +author = "nexb Inc." # -- General configuration --------------------------------------------------- @@ -27,11 +27,10 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = [ -] +extensions = [] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -44,20 +43,20 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] html_context = { - 'css_files': [ - '_static/theme_overrides.css', # override wide tables in RTD theme - ], + "css_files": [ + "_static/theme_overrides.css", # override wide tables in RTD theme + ], "display_github": True, "github_user": "nexB", "github_repo": "nexb-skeleton", "github_version": "develop", # branch "conf_py_path": "/docs/source/", # path in the checkout to the docs root - } \ No newline at end of file +} diff --git a/etc/scripts/bootstrap.py b/etc/scripts/bootstrap.py index fde505b..31f2f55 100644 --- a/etc/scripts/bootstrap.py +++ b/etc/scripts/bootstrap.py @@ -19,52 +19,63 @@ @click.command() - -@click.option('-r', '--requirements-file', +@click.option( + "-r", + "--requirements-file", type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), - metavar='FILE', + metavar="FILE", multiple=True, - default=['requirements.txt'], + default=["requirements.txt"], show_default=True, - help='Path to the requirements file(s) to use for thirdparty packages.', + help="Path to the requirements file(s) to use for thirdparty packages.", ) -@click.option('-d', '--thirdparty-dir', +@click.option( + "-d", + "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar='DIR', + metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, - help='Path to the thirdparty directory where wheels are built and ' - 'sources, ABOUT and LICENSE files fetched.', + help="Path to the thirdparty directory where wheels are built and " + "sources, ABOUT and LICENSE files fetched.", ) -@click.option('-p', '--python-version', +@click.option( + "-p", + "--python-version", type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar='PYVER', + metavar="PYVER", default=utils_thirdparty.PYTHON_VERSIONS, show_default=True, multiple=True, - help='Python version(s) to use for this build.', + help="Python version(s) to use for this build.", ) -@click.option('-o', '--operating-system', +@click.option( + "-o", + "--operating-system", type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar='OS', + metavar="OS", default=tuple(utils_thirdparty.PLATFORMS_BY_OS), multiple=True, show_default=True, - help='OS(ses) to use for this build: one of linux, mac or windows.', + help="OS(ses) to use for this build: one of linux, mac or windows.", ) -@click.option('-l', '--latest-version', +@click.option( + "-l", + "--latest-version", is_flag=True, - help='Get the latest version of all packages, ignoring version specifiers.', + help="Get the latest version of all packages, ignoring version specifiers.", ) -@click.option('--sync-dejacode', +@click.option( + "--sync-dejacode", is_flag=True, - help='Synchronize packages with DejaCode.', + help="Synchronize packages with DejaCode.", ) -@click.option('--with-deps', +@click.option( + "--with-deps", is_flag=True, - help='Also include all dependent wheels.', + help="Also include all dependent wheels.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def bootstrap( requirements_file, thirdparty_dir, @@ -105,18 +116,19 @@ def bootstrap( required_name_versions = set() for req_file in requirements_files: - nvs = utils_thirdparty.load_requirements( - requirements_file=req_file, force_pinned=False) + nvs = utils_thirdparty.load_requirements(requirements_file=req_file, force_pinned=False) required_name_versions.update(nvs) if latest_version: required_name_versions = set((name, None) for name, _ver in required_name_versions) - print(f'PROCESSING {len(required_name_versions)} REQUIREMENTS in {len(requirements_files)} FILES') + print( + f"PROCESSING {len(required_name_versions)} REQUIREMENTS in {len(requirements_files)} FILES" + ) # fetch all available wheels, keep track of missing # start with local, then remote, then PyPI - print('==> COLLECTING ALREADY LOCALLY AVAILABLE REQUIRED WHEELS') + print("==> COLLECTING ALREADY LOCALLY AVAILABLE REQUIRED WHEELS") # list of all the wheel filenames either pre-existing, fetched or built # updated as we progress available_wheel_filenames = [] @@ -131,19 +143,32 @@ def bootstrap( # start with a local check for (name, version), envt in itertools.product(required_name_versions, environments): - local_pack = local_packages_by_namever.get((name, version,)) + local_pack = local_packages_by_namever.get( + ( + name, + version, + ) + ) if local_pack: supported_wheels = list(local_pack.get_supported_wheels(environment=envt)) if supported_wheels: available_wheel_filenames.extend(w.filename for w in supported_wheels) - print(f'====> No fetch or build needed. ' - f'Local wheel already available for {name}=={version} ' - f'on os: {envt.operating_system} for Python: {envt.python_version}') + print( + f"====> No fetch or build needed. " + f"Local wheel already available for {name}=={version} " + f"on os: {envt.operating_system} for Python: {envt.python_version}" + ) continue - name_version_envt_to_fetch.append((name, version, envt,)) + name_version_envt_to_fetch.append( + ( + name, + version, + envt, + ) + ) - print(f'==> TRYING TO FETCH #{len(name_version_envt_to_fetch)} REQUIRED WHEELS') + print(f"==> TRYING TO FETCH #{len(name_version_envt_to_fetch)} REQUIRED WHEELS") # list of (name, version, environment) not fetch and to build name_version_envt_to_build = [] @@ -161,46 +186,53 @@ def bootstrap( if fetched_fwn: available_wheel_filenames.append(fetched_fwn) else: - name_version_envt_to_build.append((name, version, envt,)) + name_version_envt_to_build.append( + ( + name, + version, + envt, + ) + ) # At this stage we have all the wheels we could obtain without building for name, version, envt in name_version_envt_to_build: - print(f'====> Need to build wheels for {name}=={version} on os: ' - f'{envt.operating_system} for Python: {envt.python_version}') + print( + f"====> Need to build wheels for {name}=={version} on os: " + f"{envt.operating_system} for Python: {envt.python_version}" + ) packages_and_envts_to_build = [ - (PypiPackage(name, version), envt) - for name, version, envt in name_version_envt_to_build + (PypiPackage(name, version), envt) for name, version, envt in name_version_envt_to_build ] - print(f'==> BUILDING #{len(packages_and_envts_to_build)} MISSING WHEELS') + print(f"==> BUILDING #{len(packages_and_envts_to_build)} MISSING WHEELS") package_envts_not_built, wheel_filenames_built = utils_thirdparty.build_missing_wheels( packages_and_envts=packages_and_envts_to_build, build_remotely=build_remotely, with_deps=with_deps, dest_dir=thirdparty_dir, -) + ) if wheel_filenames_built: available_wheel_filenames.extend(available_wheel_filenames) for pack, envt in package_envts_not_built: print( - f'====> FAILED to build any wheel for {pack.name}=={pack.version} ' - f'on os: {envt.operating_system} for Python: {envt.python_version}' + f"====> FAILED to build any wheel for {pack.name}=={pack.version} " + f"on os: {envt.operating_system} for Python: {envt.python_version}" ) - print(f'==> FETCHING SOURCE DISTRIBUTIONS') + print(f"==> FETCHING SOURCE DISTRIBUTIONS") # fetch all sources, keep track of missing # This is a list of (name, version) utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) - print(f'==> FETCHING ABOUT AND LICENSE FILES') + print(f"==> FETCHING ABOUT AND LICENSE FILES") utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) ############################################################################ if sync_dejacode: - print(f'==> SYNC WITH DEJACODE') + print(f"==> SYNC WITH DEJACODE") # try to fetch from DejaCode any missing ABOUT # create all missing DejaCode packages pass @@ -208,5 +240,5 @@ def bootstrap( utils_thirdparty.find_problems(dest_dir=thirdparty_dir) -if __name__ == '__main__': +if __name__ == "__main__": bootstrap() diff --git a/etc/scripts/build_wheels.py b/etc/scripts/build_wheels.py index 352b705..5a39c78 100644 --- a/etc/scripts/build_wheels.py +++ b/etc/scripts/build_wheels.py @@ -14,55 +14,67 @@ @click.command() - -@click.option('-n', '--name', +@click.option( + "-n", + "--name", type=str, - metavar='PACKAGE_NAME', + metavar="PACKAGE_NAME", required=True, - help='Python package name to add or build.', + help="Python package name to add or build.", ) -@click.option('-v', '--version', +@click.option( + "-v", + "--version", type=str, default=None, - metavar='VERSION', - help='Python package version to add or build.', + metavar="VERSION", + help="Python package version to add or build.", ) -@click.option('-d', '--thirdparty-dir', +@click.option( + "-d", + "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar='DIR', + metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, - help='Path to the thirdparty directory where wheels are built.', + help="Path to the thirdparty directory where wheels are built.", ) -@click.option('-p', '--python-version', +@click.option( + "-p", + "--python-version", type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar='PYVER', + metavar="PYVER", default=utils_thirdparty.PYTHON_VERSIONS, show_default=True, multiple=True, - help='Python version to use for this build.', + help="Python version to use for this build.", ) -@click.option('-o', '--operating-system', +@click.option( + "-o", + "--operating-system", type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar='OS', + metavar="OS", default=tuple(utils_thirdparty.PLATFORMS_BY_OS), multiple=True, show_default=True, - help='OS to use for this build: one of linux, mac or windows.', + help="OS to use for this build: one of linux, mac or windows.", ) -@click.option('--build-remotely', +@click.option( + "--build-remotely", is_flag=True, - help='Build missing wheels remotely.', + help="Build missing wheels remotely.", ) -@click.option('--with-deps', +@click.option( + "--with-deps", is_flag=True, - help='Also include all dependent wheels.', + help="Also include all dependent wheels.", ) -@click.option('--verbose', +@click.option( + "--verbose", is_flag=True, - help='Provide verbose output.', + help="Provide verbose output.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def build_wheels( name, version, @@ -93,5 +105,5 @@ def build_wheels( ) -if __name__ == '__main__': +if __name__ == "__main__": build_wheels() diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index e48cfce..4fea16c 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -14,13 +14,14 @@ @click.command() - -@click.option('-d', '--thirdparty-dir', +@click.option( + "-d", + "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, - help='Path to the thirdparty directory to check.', + help="Path to the thirdparty directory to check.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def check_thirdparty_dir(thirdparty_dir): """ Check a thirdparty directory for problems. @@ -28,5 +29,5 @@ def check_thirdparty_dir(thirdparty_dir): utils_thirdparty.find_problems(dest_dir=thirdparty_dir) -if __name__ == '__main__': +if __name__ == "__main__": check_thirdparty_dir() diff --git a/etc/scripts/fetch_requirements.py b/etc/scripts/fetch_requirements.py index 21de865..9da9ce9 100644 --- a/etc/scripts/fetch_requirements.py +++ b/etc/scripts/fetch_requirements.py @@ -16,64 +16,78 @@ @click.command() - -@click.option('-r', '--requirements-file', +@click.option( + "-r", + "--requirements-file", type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), - metavar='FILE', + metavar="FILE", multiple=True, - default=['requirements.txt'], + default=["requirements.txt"], show_default=True, - help='Path to the requirements file to use for thirdparty packages.', + help="Path to the requirements file to use for thirdparty packages.", ) -@click.option('-d', '--thirdparty-dir', +@click.option( + "-d", + "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar='DIR', + metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, - help='Path to the thirdparty directory.', + help="Path to the thirdparty directory.", ) -@click.option('-p', '--python-version', +@click.option( + "-p", + "--python-version", type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar='INT', + metavar="INT", multiple=True, - default=['36'], + default=["36"], show_default=True, - help='Python version to use for this build.', + help="Python version to use for this build.", ) -@click.option('-o', '--operating-system', +@click.option( + "-o", + "--operating-system", type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar='OS', + metavar="OS", multiple=True, - default=['linux'], + default=["linux"], show_default=True, - help='OS to use for this build: one of linux, mac or windows.', + help="OS to use for this build: one of linux, mac or windows.", ) -@click.option('-s', '--with-sources', +@click.option( + "-s", + "--with-sources", is_flag=True, - help='Fetch the corresponding source distributions.', + help="Fetch the corresponding source distributions.", ) -@click.option('-a', '--with-about', +@click.option( + "-a", + "--with-about", is_flag=True, - help='Fetch the corresponding ABOUT and LICENSE files.', + help="Fetch the corresponding ABOUT and LICENSE files.", ) -@click.option('--allow-unpinned', +@click.option( + "--allow-unpinned", is_flag=True, - help='Allow requirements without pinned versions.', + help="Allow requirements without pinned versions.", ) -@click.option('-s', '--only-sources', +@click.option( + "-s", + "--only-sources", is_flag=True, - help='Fetch only the corresponding source distributions.', + help="Fetch only the corresponding source distributions.", ) -@click.option('-u', '--remote-links-url', +@click.option( + "-u", + "--remote-links-url", type=str, - metavar='URL', + metavar="URL", default=utils_thirdparty.REMOTE_LINKS_URL, show_default=True, - help='URL to a PyPI-like links web site. ' - 'Or local path to a directory with wheels.', + help="URL to a PyPI-like links web site. " "Or local path to a directory with wheels.", ) - -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def fetch_requirements( requirements_file, thirdparty_dir, @@ -117,7 +131,7 @@ def fetch_requirements( remote_links_url=remote_links_url, ): if error: - print('Failed to fetch wheel:', package, ':', error) + print("Failed to fetch wheel:", package, ":", error) # optionally fetch sources if with_sources or only_sources: @@ -130,7 +144,7 @@ def fetch_requirements( remote_links_url=remote_links_url, ): if error: - print('Failed to fetch source:', package, ':', error) + print("Failed to fetch source:", package, ":", error) if with_about: utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) @@ -141,5 +155,5 @@ def fetch_requirements( ) -if __name__ == '__main__': +if __name__ == "__main__": fetch_requirements() diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py index 061d3fa..9b1cbc4 100644 --- a/etc/scripts/fix_thirdparty.py +++ b/etc/scripts/fix_thirdparty.py @@ -14,21 +14,24 @@ @click.command() - -@click.option('-d', '--thirdparty-dir', +@click.option( + "-d", + "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, - help='Path to the thirdparty directory to fix.', + help="Path to the thirdparty directory to fix.", ) -@click.option('--build-wheels', +@click.option( + "--build-wheels", is_flag=True, - help='Build all missing wheels .', + help="Build all missing wheels .", ) -@click.option('--build-remotely', +@click.option( + "--build-remotely", is_flag=True, - help='Build missing wheels remotely.', + help="Build missing wheels remotely.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def fix_thirdparty_dir( thirdparty_dir, build_wheels, @@ -47,35 +50,36 @@ def fix_thirdparty_dir( Optionally build missing binary wheels for all supported OS and Python version combos locally or remotely. """ - print('***FETCH*** MISSING WHEELS') + print("***FETCH*** MISSING WHEELS") package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) - print('***FETCH*** MISSING SOURCES') + print("***FETCH*** MISSING SOURCES") src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) package_envts_not_built = [] if build_wheels: - print('***BUILD*** MISSING WHEELS') + print("***BUILD*** MISSING WHEELS") package_envts_not_built, _wheel_filenames_built = utils_thirdparty.build_missing_wheels( packages_and_envts=package_envts_not_fetched, build_remotely=build_remotely, dest_dir=thirdparty_dir, ) - print('***ADD*** ABOUT AND LICENSES') + print("***ADD*** ABOUT AND LICENSES") utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) # report issues for name, version in src_name_ver_not_fetched: - print(f'{name}=={version}: Failed to fetch source distribution.') + print(f"{name}=={version}: Failed to fetch source distribution.") for package, envt in package_envts_not_built: print( - f'{package.name}=={package.version}: Failed to build wheel ' - f'on {envt.operating_system} for Python {envt.python_version}') + f"{package.name}=={package.version}: Failed to build wheel " + f"on {envt.operating_system} for Python {envt.python_version}" + ) - print('***FIND PROBLEMS***') + print("***FIND PROBLEMS***") utils_thirdparty.find_problems(dest_dir=thirdparty_dir) -if __name__ == '__main__': +if __name__ == "__main__": fix_thirdparty_dir() diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 887e407..53db9b0 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -45,10 +45,15 @@ r"""^(?P(?P.+?)-(?P.*?)) ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) \.whl)$""", - re.VERBOSE + re.VERBOSE, ).match -sdist_exts = ".tar.gz", ".tar.bz2", ".zip", ".tar.xz", +sdist_exts = ( + ".tar.gz", + ".tar.bz2", + ".zip", + ".tar.xz", +) wheel_ext = ".whl" app_ext = ".pyz" dist_exts = sdist_exts + (wheel_ext, app_ext) @@ -98,7 +103,7 @@ def get_package_name_from_filename(filename, normalize=True): if not extension or not name_ver: raise InvalidDistributionFilename(filename) - name, _, version = name_ver.rpartition('-') + name, _, version = name_ver.rpartition("-") if not (name and version): raise InvalidDistributionFilename(filename) @@ -110,8 +115,8 @@ def get_package_name_from_filename(filename, normalize=True): if not wheel_info: raise InvalidDistributionFilename(filename) - name = wheel_info.group('name') - version = wheel_info.group('version') + name = wheel_info.group("name") + version = wheel_info.group("version") if not (name and version): raise InvalidDistributionFilename(filename) @@ -120,7 +125,7 @@ def get_package_name_from_filename(filename, normalize=True): name_ver, extension, _ = filename.rpartition(".pyz") if "-" in filename: - name, _, version = name_ver.rpartition('-') + name, _, version = name_ver.rpartition("-") else: name = name_ver @@ -128,7 +133,7 @@ def get_package_name_from_filename(filename, normalize=True): raise InvalidDistributionFilename(filename) if normalize: - name = name.lower().replace('_', '-') + name = name.lower().replace("_", "-") return name @@ -187,5 +192,6 @@ def build_pypi_index(directory, write_index=False): if __name__ == "__main__": import sys + pkg_dir = sys.argv[1] build_pypi_index(pkg_dir) diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index 3be974c..6f17a75 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -13,21 +13,24 @@ @click.command() - -@click.option('-s', '--site-packages-dir', +@click.option( + "-s", + "--site-packages-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), required=True, - metavar='DIR', + metavar="DIR", help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', ) -@click.option('-r', '--requirements-file', +@click.option( + "-r", + "--requirements-file", type=click.Path(path_type=str, dir_okay=False), - metavar='FILE', - default='requirements.txt', + metavar="FILE", + default="requirements.txt", show_default=True, - help='Path to the requirements file to update or create.', + help="Path to the requirements file to update or create.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def gen_requirements(site_packages_dir, requirements_file): """ Create or replace the `--requirements-file` file FILE requirements file with all @@ -39,5 +42,5 @@ def gen_requirements(site_packages_dir, requirements_file): ) -if __name__ == '__main__': +if __name__ == "__main__": gen_requirements() diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index ff4ce50..ef80455 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -13,29 +13,34 @@ @click.command() - -@click.option('-s', '--site-packages-dir', +@click.option( + "-s", + "--site-packages-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), required=True, - metavar='DIR', + metavar="DIR", help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', ) -@click.option('-d', '--dev-requirements-file', +@click.option( + "-d", + "--dev-requirements-file", type=click.Path(path_type=str, dir_okay=False), - metavar='FILE', - default='requirements-dev.txt', + metavar="FILE", + default="requirements-dev.txt", show_default=True, - help='Path to the dev requirements file to update or create.', + help="Path to the dev requirements file to update or create.", ) -@click.option('-r', '--main-requirements-file', +@click.option( + "-r", + "--main-requirements-file", type=click.Path(path_type=str, dir_okay=False), - default='requirements.txt', - metavar='FILE', + default="requirements.txt", + metavar="FILE", show_default=True, - help='Path to the main requirements file. Its requirements will be excluded ' - 'from the generated dev requirements.', + help="Path to the main requirements file. Its requirements will be excluded " + "from the generated dev requirements.", ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def gen_dev_requirements(site_packages_dir, dev_requirements_file, main_requirements_file): """ Create or overwrite the `--dev-requirements-file` pip requirements FILE with @@ -47,9 +52,9 @@ def gen_dev_requirements(site_packages_dir, dev_requirements_file, main_requirem utils_requirements.lock_dev_requirements( dev_requirements_file=dev_requirements_file, main_requirements_file=main_requirements_file, - site_packages_dir=site_packages_dir + site_packages_dir=site_packages_dir, ) -if __name__ == '__main__': +if __name__ == "__main__": gen_dev_requirements() diff --git a/etc/scripts/publish_files.py b/etc/scripts/publish_files.py index f343cb3..8669363 100644 --- a/etc/scripts/publish_files.py +++ b/etc/scripts/publish_files.py @@ -32,7 +32,7 @@ def get_files(location): for top, _dirs, files in os.walk(location): for filename in files: pth = Path(os.path.join(top, filename)) - with open(pth, 'rb') as fi: + with open(pth, "rb") as fi: md5 = hashlib.md5(fi.read()).hexdigest() yield filename, pth, md5 @@ -43,20 +43,20 @@ def get_etag_md5(url): """ headers = utils_thirdparty.get_remote_headers(url) headers = {k.lower(): v for k, v in headers.items()} - etag = headers .get('etag') + etag = headers.get("etag") if etag: etag = etag.strip('"').lower() return etag def create_or_update_release_and_upload_directory( - user, - repo, - tag_name, - token, - directory, - retry_limit=10, - description=None, + user, + repo, + tag_name, + token, + directory, + retry_limit=10, + description=None, ): """ Create or update a GitHub release at https://github.com// for @@ -69,15 +69,16 @@ def create_or_update_release_and_upload_directory( Remote files that are not the same as the local files are deleted and re- uploaded. """ - release_homepage_url = f'https://github.com/{user}/{repo}/releases/{tag_name}' + release_homepage_url = f"https://github.com/{user}/{repo}/releases/{tag_name}" # scrape release page HTML for links - urls_by_filename = {os.path.basename(l): l + urls_by_filename = { + os.path.basename(l): l for l in utils_thirdparty.get_paths_or_urls(links_url=release_homepage_url) } # compute what is new, modified or unchanged - print(f'Compute which files is new, modified or unchanged in {release_homepage_url}') + print(f"Compute which files is new, modified or unchanged in {release_homepage_url}") new_to_upload = [] unchanged_to_skip = [] @@ -85,21 +86,21 @@ def create_or_update_release_and_upload_directory( for filename, pth, md5 in get_files(directory): url = urls_by_filename.get(filename) if not url: - print(f'{filename} content is NEW, will upload') + print(f"{filename} content is NEW, will upload") new_to_upload.append(pth) continue out_of_date = get_etag_md5(url) != md5 if out_of_date: - print(f'{url} content is CHANGED based on md5 etag, will re-upload') + print(f"{url} content is CHANGED based on md5 etag, will re-upload") modified_to_delete_and_reupload.append(pth) else: # print(f'{url} content is IDENTICAL, skipping upload based on Etag') unchanged_to_skip.append(pth) - print('.') + print(".") ghapi = grr.GithubApi( - github_api_url='https://api.github.com', + github_api_url="https://api.github.com", user=user, repo=repo, token=token, @@ -108,86 +109,89 @@ def create_or_update_release_and_upload_directory( # yank modified print( - f'Unpublishing {len(modified_to_delete_and_reupload)} published but ' - f'locally modified files in {release_homepage_url}') + f"Unpublishing {len(modified_to_delete_and_reupload)} published but " + f"locally modified files in {release_homepage_url}" + ) release = ghapi.get_release_by_tag(tag_name) for pth in modified_to_delete_and_reupload: filename = os.path.basename(pth) asset_id = ghapi.find_asset_id_by_file_name(filename, release) - print (f' Unpublishing file: {filename}).') + print(f" Unpublishing file: {filename}).") response = ghapi.delete_asset(asset_id) if response.status_code != requests.codes.no_content: # NOQA - raise Exception(f'failed asset deletion: {response}') + raise Exception(f"failed asset deletion: {response}") # finally upload new and modified to_upload = new_to_upload + modified_to_delete_and_reupload - print(f'Publishing with {len(to_upload)} files to {release_homepage_url}') + print(f"Publishing with {len(to_upload)} files to {release_homepage_url}") release = grr.Release(tag_name=tag_name, body=description) grr.make_release(ghapi, release, to_upload) TOKEN_HELP = ( - 'The Github personal acess token is used to authenticate API calls. ' - 'Required unless you set the GITHUB_TOKEN environment variable as an alternative. ' - 'See for details: https://github.com/settings/tokens and ' - 'https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token' + "The Github personal acess token is used to authenticate API calls. " + "Required unless you set the GITHUB_TOKEN environment variable as an alternative. " + "See for details: https://github.com/settings/tokens and " + "https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token" ) @click.command() - @click.option( - '--user-repo-tag', - help='The GitHub qualified repository user/name/tag in which ' - 'to create the release such as in nexB/thirdparty/pypi', + "--user-repo-tag", + help="The GitHub qualified repository user/name/tag in which " + "to create the release such as in nexB/thirdparty/pypi", type=str, required=True, ) @click.option( - '-d', '--directory', - help='The directory that contains files to upload to the release.', + "-d", + "--directory", + help="The directory that contains files to upload to the release.", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), required=True, ) @click.option( - '--token', + "--token", help=TOKEN_HELP, - default=os.environ.get('GITHUB_TOKEN', None), + default=os.environ.get("GITHUB_TOKEN", None), type=str, required=False, ) @click.option( - '--description', - help='Text description for the release. Ignored if the release exists.', + "--description", + help="Text description for the release. Ignored if the release exists.", default=None, type=str, required=False, ) @click.option( - '--retry_limit', - help='Number of retries when making failing GitHub API calls. ' - 'Retrying helps work around transient failures of the GitHub API.', + "--retry_limit", + help="Number of retries when making failing GitHub API calls. " + "Retrying helps work around transient failures of the GitHub API.", type=int, default=10, ) -@click.help_option('-h', '--help') +@click.help_option("-h", "--help") def publish_files( user_repo_tag, directory, - retry_limit=10, token=None, description=None, + retry_limit=10, + token=None, + description=None, ): """ Publish all the files in DIRECTORY as assets to a GitHub release. Either create or update/replace remote files' """ if not token: - click.secho('--token required option is missing.') + click.secho("--token required option is missing.") click.secho(TOKEN_HELP) sys.exit(1) - user, repo, tag_name = user_repo_tag.split('/') + user, repo, tag_name = user_repo_tag.split("/") create_or_update_release_and_upload_directory( user=user, @@ -200,5 +204,5 @@ def publish_files( ) -if __name__ == '__main__': +if __name__ == "__main__": publish_files() diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index 30c4dda..722fa70 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -33,23 +33,25 @@ import utils_pip_compatibility_tags -@pytest.mark.parametrize('version_info, expected', [ - ((2,), '2'), - ((2, 8), '28'), - ((3,), '3'), - ((3, 6), '36'), - # Test a tuple of length 3. - ((3, 6, 5), '36'), - # Test a 2-digit minor version. - ((3, 10), '310'), -]) +@pytest.mark.parametrize( + "version_info, expected", + [ + ((2,), "2"), + ((2, 8), "28"), + ((3,), "3"), + ((3, 6), "36"), + # Test a tuple of length 3. + ((3, 6, 5), "36"), + # Test a 2-digit minor version. + ((3, 10), "310"), + ], +) def test_version_info_to_nodot(version_info, expected): actual = pip_compatibility_tags.version_info_to_nodot(version_info) assert actual == expected class Testcompatibility_tags(object): - def mock_get_config_var(self, **kwd): """ Patch sysconfig.get_config_var for arbitrary keys. @@ -69,23 +71,25 @@ def test_no_hyphen_tag(self): """ import pip._internal.utils.compatibility_tags - mock_gcf = self.mock_get_config_var(SOABI='cpython-35m-darwin') + mock_gcf = self.mock_get_config_var(SOABI="cpython-35m-darwin") - with patch('sysconfig.get_config_var', mock_gcf): + with patch("sysconfig.get_config_var", mock_gcf): supported = pip._internal.utils.compatibility_tags.get_supported() for tag in supported: - assert '-' not in tag.interpreter - assert '-' not in tag.abi - assert '-' not in tag.platform + assert "-" not in tag.interpreter + assert "-" not in tag.abi + assert "-" not in tag.platform class TestManylinux2010Tags(object): - - @pytest.mark.parametrize("manylinux2010,manylinux1", [ - ("manylinux2010_x86_64", "manylinux1_x86_64"), - ("manylinux2010_i686", "manylinux1_i686"), - ]) + @pytest.mark.parametrize( + "manylinux2010,manylinux1", + [ + ("manylinux2010_x86_64", "manylinux1_x86_64"), + ("manylinux2010_i686", "manylinux1_i686"), + ], + ) def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): """ Specifying manylinux2010 implies manylinux1. @@ -93,22 +97,22 @@ def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): groups = {} supported = pip_compatibility_tags.get_supported(platforms=[manylinux2010]) for tag in supported: - groups.setdefault( - (tag.interpreter, tag.abi), [] - ).append(tag.platform) + groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform) for arches in groups.values(): - if arches == ['any']: + if arches == ["any"]: continue assert arches[:2] == [manylinux2010, manylinux1] class TestManylinux2014Tags(object): - - @pytest.mark.parametrize("manylinuxA,manylinuxB", [ - ("manylinux2014_x86_64", ["manylinux2010_x86_64", "manylinux1_x86_64"]), - ("manylinux2014_i686", ["manylinux2010_i686", "manylinux1_i686"]), - ]) + @pytest.mark.parametrize( + "manylinuxA,manylinuxB", + [ + ("manylinux2014_x86_64", ["manylinux2010_x86_64", "manylinux1_x86_64"]), + ("manylinux2014_i686", ["manylinux2010_i686", "manylinux1_i686"]), + ], + ) def test_manylinuxA_implies_manylinuxB(self, manylinuxA, manylinuxB): """ Specifying manylinux2014 implies manylinux2010/manylinux1. @@ -116,13 +120,11 @@ def test_manylinuxA_implies_manylinuxB(self, manylinuxA, manylinuxB): groups = {} supported = pip_compatibility_tags.get_supported(platforms=[manylinuxA]) for tag in supported: - groups.setdefault( - (tag.interpreter, tag.abi), [] - ).append(tag.platform) + groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform) expected_arches = [manylinuxA] expected_arches.extend(manylinuxB) for arches in groups.values(): - if arches == ['any']: + if arches == ["any"]: continue assert arches[:3] == expected_arches diff --git a/etc/scripts/test_utils_pypi_supported_tags.py b/etc/scripts/test_utils_pypi_supported_tags.py index 9ad68b2..d291572 100644 --- a/etc/scripts/test_utils_pypi_supported_tags.py +++ b/etc/scripts/test_utils_pypi_supported_tags.py @@ -29,6 +29,7 @@ def validate_wheel_filename_for_pypi(filename): an empty list if all tags are supported. """ from utils_thirdparty import Wheel + wheel = Wheel.from_filename(filename) return validate_platforms_for_pypi(wheel.platforms) diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index 8b6e5d2..f28e247 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -21,19 +21,19 @@ Utility to create and retrieve package and ABOUT file data from DejaCode. """ -DEJACODE_API_KEY = os.environ.get('DEJACODE_API_KEY', '') -DEJACODE_API_URL = os.environ.get('DEJACODE_API_URL', '') +DEJACODE_API_KEY = os.environ.get("DEJACODE_API_KEY", "") +DEJACODE_API_URL = os.environ.get("DEJACODE_API_URL", "") -DEJACODE_API_URL_PACKAGES = f'{DEJACODE_API_URL}packages/' +DEJACODE_API_URL_PACKAGES = f"{DEJACODE_API_URL}packages/" DEJACODE_API_HEADERS = { - 'Authorization': 'Token {}'.format(DEJACODE_API_KEY), - 'Accept': 'application/json; indent=4', + "Authorization": "Token {}".format(DEJACODE_API_KEY), + "Accept": "application/json; indent=4", } def can_do_api_calls(): if not DEJACODE_API_KEY and DEJACODE_API_URL: - print('DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing') + print("DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") return False else: return True @@ -53,7 +53,7 @@ def fetch_dejacode_packages(params): headers=DEJACODE_API_HEADERS, ) - return response.json()['results'] + return response.json()["results"] def get_package_data(distribution): @@ -68,9 +68,9 @@ def get_package_data(distribution): return results[0] elif len_results > 1: - print(f'More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}') + print(f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") else: - print('Could not find package:', distribution.download_url) + print("Could not find package:", distribution.download_url) def update_with_dejacode_data(distribution): @@ -82,7 +82,7 @@ def update_with_dejacode_data(distribution): if package_data: return distribution.update(package_data, keep_extra=False) - print(f'No package found for: {distribution}') + print(f"No package found for: {distribution}") def update_with_dejacode_about_data(distribution): @@ -92,19 +92,19 @@ def update_with_dejacode_about_data(distribution): """ package_data = get_package_data(distribution) if package_data: - package_api_url = package_data['api_url'] - about_url = f'{package_api_url}about' + package_api_url = package_data["api_url"] + about_url = f"{package_api_url}about" response = requests.get(about_url, headers=DEJACODE_API_HEADERS) # note that this is YAML-formatted - about_text = response.json()['about_data'] + about_text = response.json()["about_data"] about_data = saneyaml.load(about_text) return distribution.update(about_data, keep_extra=True) - print(f'No package found for: {distribution}') + print(f"No package found for: {distribution}") -def fetch_and_save_about_files(distribution, dest_dir='thirdparty'): +def fetch_and_save_about_files(distribution, dest_dir="thirdparty"): """ Fetch and save in `dest_dir` the .ABOUT, .LICENSE and .NOTICE files fetched from DejaCode for a Distribution `distribution`. Return True if files were @@ -112,8 +112,8 @@ def fetch_and_save_about_files(distribution, dest_dir='thirdparty'): """ package_data = get_package_data(distribution) if package_data: - package_api_url = package_data['api_url'] - about_url = f'{package_api_url}about_files' + package_api_url = package_data["api_url"] + about_url = f"{package_api_url}about_files" response = requests.get(about_url, headers=DEJACODE_API_HEADERS) about_zip = response.content with io.BytesIO(about_zip) as zf: @@ -121,7 +121,7 @@ def fetch_and_save_about_files(distribution, dest_dir='thirdparty'): zi.extractall(path=dest_dir) return True - print(f'No package found for: {distribution}') + print(f"No package found for: {distribution}") def find_latest_dejacode_package(distribution): @@ -138,9 +138,9 @@ def find_latest_dejacode_package(distribution): for package_data in packages: matched = ( - package_data['download_url'] == distribution.download_url - and package_data['version'] == distribution.version - and package_data['filename'] == distribution.filename + package_data["download_url"] == distribution.download_url + and package_data["version"] == distribution.version + and package_data["filename"] == distribution.filename ) if matched: @@ -149,12 +149,11 @@ def find_latest_dejacode_package(distribution): # there was no exact match, find the latest version # TODO: consider the closest version rather than the latest # or the version that has the best data - with_versions = [(packaging_version.parse(p['version']), p) for p in packages] + with_versions = [(packaging_version.parse(p["version"]), p) for p in packages] with_versions = sorted(with_versions) latest_version, latest_package_version = sorted(with_versions)[-1] print( - f'Found DejaCode latest version: {latest_version} ' - f'for dist: {distribution.package_url}', + f"Found DejaCode latest version: {latest_version} " f"for dist: {distribution.package_url}", ) return latest_package_version @@ -172,27 +171,26 @@ def create_dejacode_package(distribution): if existing_package_data: return existing_package_data - print(f'Creating new DejaCode package for: {distribution}') + print(f"Creating new DejaCode package for: {distribution}") new_package_payload = { # Trigger data collection, scan, and purl - 'collect_data': 1, + "collect_data": 1, } fields_to_carry_over = [ - 'download_url' - 'type', - 'namespace', - 'name', - 'version', - 'qualifiers', - 'subpath', - 'license_expression', - 'copyright', - 'description', - 'homepage_url', - 'primary_language', - 'notice_text', + "download_url" "type", + "namespace", + "name", + "version", + "qualifiers", + "subpath", + "license_expression", + "copyright", + "description", + "homepage_url", + "primary_language", + "notice_text", ] for field in fields_to_carry_over: @@ -207,7 +205,7 @@ def create_dejacode_package(distribution): ) new_package_data = response.json() if response.status_code != 201: - raise Exception(f'Error, cannot create package for: {distribution}') + raise Exception(f"Error, cannot create package for: {distribution}") print(f'New Package created at: {new_package_data["absolute_url"]}') return new_package_data diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index 4c6529b..5d5eb34 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -36,13 +36,13 @@ mac_platforms, ) -_osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') +_osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)") def version_info_to_nodot(version_info): # type: (Tuple[int, ...]) -> str # Only use up to the first two numbers. - return ''.join(map(str, version_info[:2])) + return "".join(map(str, version_info[:2])) def _mac_platforms(arch): @@ -57,7 +57,7 @@ def _mac_platforms(arch): # actual prefix provided by the user in case they provided # something like "macosxcustom_". It may be good to remove # this as undocumented or deprecate it in the future. - '{}_{}'.format(name, arch[len('macosx_'):]) + "{}_{}".format(name, arch[len("macosx_") :]) for arch in mac_platforms(mac_version, actual_arch) ] else: @@ -69,31 +69,31 @@ def _mac_platforms(arch): def _custom_manylinux_platforms(arch): # type: (str) -> List[str] arches = [arch] - arch_prefix, arch_sep, arch_suffix = arch.partition('_') - if arch_prefix == 'manylinux2014': + arch_prefix, arch_sep, arch_suffix = arch.partition("_") + if arch_prefix == "manylinux2014": # manylinux1/manylinux2010 wheels run on most manylinux2014 systems # with the exception of wheels depending on ncurses. PEP 599 states # manylinux1/manylinux2010 wheels should be considered # manylinux2014 wheels: # https://www.python.org/dev/peps/pep-0599/#backwards-compatibility-with-manylinux2010-wheels - if arch_suffix in {'i686', 'x86_64'}: - arches.append('manylinux2010' + arch_sep + arch_suffix) - arches.append('manylinux1' + arch_sep + arch_suffix) - elif arch_prefix == 'manylinux2010': + if arch_suffix in {"i686", "x86_64"}: + arches.append("manylinux2010" + arch_sep + arch_suffix) + arches.append("manylinux1" + arch_sep + arch_suffix) + elif arch_prefix == "manylinux2010": # manylinux1 wheels run on most manylinux2010 systems with the # exception of wheels depending on ncurses. PEP 571 states # manylinux1 wheels should be considered manylinux2010 wheels: # https://www.python.org/dev/peps/pep-0571/#backwards-compatibility-with-manylinux1-wheels - arches.append('manylinux1' + arch_sep + arch_suffix) + arches.append("manylinux1" + arch_sep + arch_suffix) return arches def _get_custom_platforms(arch): # type: (str) -> List[str] - arch_prefix, _arch_sep, _arch_suffix = arch.partition('_') - if arch.startswith('macosx'): + arch_prefix, _arch_sep, _arch_suffix = arch.partition("_") + if arch.startswith("macosx"): arches = _mac_platforms(arch) - elif arch_prefix in ['manylinux2014', 'manylinux2010']: + elif arch_prefix in ["manylinux2014", "manylinux2010"]: arches = _custom_manylinux_platforms(arch) else: arches = [arch] @@ -139,7 +139,7 @@ def get_supported( version=None, # type: Optional[str] platforms=None, # type: Optional[List[str]] impl=None, # type: Optional[str] - abis=None # type: Optional[List[str]] + abis=None, # type: Optional[List[str]] ): # type: (...) -> List[Tag] """Return a list of supported tags for each version specified in diff --git a/etc/scripts/utils_pypi_supported_tags.py b/etc/scripts/utils_pypi_supported_tags.py index 8dcb70f..de9f21b 100644 --- a/etc/scripts/utils_pypi_supported_tags.py +++ b/etc/scripts/utils_pypi_supported_tags.py @@ -82,11 +82,7 @@ def is_supported_platform_tag(platform_tag): if platform_tag in _allowed_platforms: return True m = _macosx_platform_re.match(platform_tag) - if ( - m - and m.group("major") in _macosx_major_versions - and m.group("arch") in _macosx_arches - ): + if m and m.group("major") in _macosx_major_versions and m.group("arch") in _macosx_arches: return True m = _manylinux_platform_re.match(platform_tag) if m and m.group("arch") in _manylinux_arches: diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index ddbed61..9545db5 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -16,7 +16,7 @@ """ -def load_requirements(requirements_file='requirements.txt', force_pinned=True): +def load_requirements(requirements_file="requirements.txt", force_pinned=True): """ Yield package (name, version) tuples for each requirement in a `requirement` file. Every requirement versions must be pinned if `force_pinned` is True. @@ -36,14 +36,14 @@ def get_required_name_versions(requirement_lines, force_pinned=True): """ for req_line in requirement_lines: req_line = req_line.strip() - if not req_line or req_line.startswith('#'): + if not req_line or req_line.startswith("#"): continue - if '==' not in req_line and force_pinned: - raise Exception(f'Requirement version is not pinned: {req_line}') + if "==" not in req_line and force_pinned: + raise Exception(f"Requirement version is not pinned: {req_line}") name = req_line version = None else: - name, _, version = req_line.partition('==') + name, _, version = req_line.partition("==") name = name.lower().strip() version = version.lower().strip() yield name, version @@ -58,22 +58,22 @@ def parse_requires(requires): if not requires: return [] - requires = [''.join(r.split()) for r in requires if r and r.strip()] + requires = ["".join(r.split()) for r in requires if r and r.strip()] return sorted(requires) -def lock_requirements(requirements_file='requirements.txt', site_packages_dir=None): +def lock_requirements(requirements_file="requirements.txt", site_packages_dir=None): """ Freeze and lock current installed requirements and save this to the `requirements_file` requirements file. """ - with open(requirements_file, 'w') as fo: + with open(requirements_file, "w") as fo: fo.write(get_installed_reqs(site_packages_dir=site_packages_dir)) def lock_dev_requirements( - dev_requirements_file='requirements-dev.txt', - main_requirements_file='requirements.txt', + dev_requirements_file="requirements-dev.txt", + main_requirements_file="requirements.txt", site_packages_dir=None, ): """ @@ -89,8 +89,8 @@ def lock_dev_requirements( all_req_nvs = get_required_name_versions(all_req_lines) dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names} - new_reqs = '\n'.join(f'{n}=={v}' for n, v in sorted(dev_only_req_nvs.items())) - with open(dev_requirements_file, 'w') as fo: + new_reqs = "\n".join(f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) + with open(dev_requirements_file, "w") as fo: fo.write(new_reqs) @@ -99,5 +99,5 @@ def get_installed_reqs(site_packages_dir): Return the installed pip requirements as text found in `site_packages_dir` as a text. """ # Also include these packages in the output with --all: wheel, distribute, setuptools, pip - args = ['pip', 'freeze', '--exclude-editable', '--all', '--path', site_packages_dir] - return subprocess.check_output(args, encoding='utf-8') + args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] + return subprocess.check_output(args, encoding="utf-8") diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 444b20d..e2778fe 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -87,56 +87,73 @@ TRACE = False # Supported environments -PYTHON_VERSIONS = '36', '37', '38', '39', '310' +PYTHON_VERSIONS = "36", "37", "38", "39", "310" ABIS_BY_PYTHON_VERSION = { - '36':['cp36', 'cp36m'], - '37':['cp37', 'cp37m'], - '38':['cp38', 'cp38m'], - '39':['cp39', 'cp39m'], - '310':['cp310', 'cp310m'], + "36": ["cp36", "cp36m"], + "37": ["cp37", "cp37m"], + "38": ["cp38", "cp38m"], + "39": ["cp39", "cp39m"], + "310": ["cp310", "cp310m"], } PLATFORMS_BY_OS = { - 'linux': [ - 'linux_x86_64', - 'manylinux1_x86_64', - 'manylinux2014_x86_64', - 'manylinux2010_x86_64', - 'manylinux_2_12_x86_64', + "linux": [ + "linux_x86_64", + "manylinux1_x86_64", + "manylinux2014_x86_64", + "manylinux2010_x86_64", + "manylinux_2_12_x86_64", ], - 'macos': [ - 'macosx_10_6_intel', 'macosx_10_6_x86_64', - 'macosx_10_9_intel', 'macosx_10_9_x86_64', - 'macosx_10_10_intel', 'macosx_10_10_x86_64', - 'macosx_10_11_intel', 'macosx_10_11_x86_64', - 'macosx_10_12_intel', 'macosx_10_12_x86_64', - 'macosx_10_13_intel', 'macosx_10_13_x86_64', - 'macosx_10_14_intel', 'macosx_10_14_x86_64', - 'macosx_10_15_intel', 'macosx_10_15_x86_64', - 'macosx_10_15_x86_64', - 'macosx_11_0_x86_64', + "macos": [ + "macosx_10_6_intel", + "macosx_10_6_x86_64", + "macosx_10_9_intel", + "macosx_10_9_x86_64", + "macosx_10_10_intel", + "macosx_10_10_x86_64", + "macosx_10_11_intel", + "macosx_10_11_x86_64", + "macosx_10_12_intel", + "macosx_10_12_x86_64", + "macosx_10_13_intel", + "macosx_10_13_x86_64", + "macosx_10_14_intel", + "macosx_10_14_x86_64", + "macosx_10_15_intel", + "macosx_10_15_x86_64", + "macosx_10_15_x86_64", + "macosx_11_0_x86_64", # 'macosx_11_0_arm64', ], - 'windows': [ - 'win_amd64', + "windows": [ + "win_amd64", ], } -THIRDPARTY_DIR = 'thirdparty' -CACHE_THIRDPARTY_DIR = '.cache/thirdparty' - -REMOTE_LINKS_URL = 'https://thirdparty.aboutcode.org/pypi' - -EXTENSIONS_APP = '.pyz', -EXTENSIONS_SDIST = '.tar.gz', '.tar.bz2', '.zip', '.tar.xz', -EXTENSIONS_INSTALLABLE = EXTENSIONS_SDIST + ('.whl',) -EXTENSIONS_ABOUT = '.ABOUT', '.LICENSE', '.NOTICE', +THIRDPARTY_DIR = "thirdparty" +CACHE_THIRDPARTY_DIR = ".cache/thirdparty" + +REMOTE_LINKS_URL = "https://thirdparty.aboutcode.org/pypi" + +EXTENSIONS_APP = (".pyz",) +EXTENSIONS_SDIST = ( + ".tar.gz", + ".tar.bz2", + ".zip", + ".tar.xz", +) +EXTENSIONS_INSTALLABLE = EXTENSIONS_SDIST + (".whl",) +EXTENSIONS_ABOUT = ( + ".ABOUT", + ".LICENSE", + ".NOTICE", +) EXTENSIONS = EXTENSIONS_INSTALLABLE + EXTENSIONS_ABOUT + EXTENSIONS_APP -PYPI_SIMPLE_URL = 'https://pypi.org/simple' +PYPI_SIMPLE_URL = "https://pypi.org/simple" -LICENSEDB_API_URL = 'https://scancode-licensedb.aboutcode.org' +LICENSEDB_API_URL = "https://scancode-licensedb.aboutcode.org" LICENSING = license_expression.Licensing() @@ -149,7 +166,7 @@ def fetch_wheels( environment=None, - requirements_file='requirements.txt', + requirements_file="requirements.txt", allow_unpinned=False, dest_dir=THIRDPARTY_DIR, remote_links_url=REMOTE_LINKS_URL, @@ -179,11 +196,13 @@ def fetch_wheels( force_pinned = False try: - rrp = list(get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - )) + rrp = list( + get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + ) + ) except Exception as e: raise Exception( dict( @@ -196,9 +215,14 @@ def fetch_wheels( fetched_filenames = set() for name, version, package in rrp: if not package: - missed.append((name, version,)) - nv = f'{name}=={version}' if version else name - yield None, f'fetch_wheels: Missing package in remote repo: {nv}' + missed.append( + ( + name, + version, + ) + ) + nv = f"{name}=={version}" if version else name + yield None, f"fetch_wheels: Missing package in remote repo: {nv}" else: fetched_filename = package.fetch_wheel( @@ -214,23 +238,23 @@ def fetch_wheels( if fetched_filename in fetched_filenames: error = None else: - error = f'Failed to fetch' + error = f"Failed to fetch" yield package, error if missed: rr = get_remote_repo() print() - print(f'===> fetch_wheels: Missed some packages') + print(f"===> fetch_wheels: Missed some packages") for n, v in missed: - nv = f'{n}=={v}' if v else n - print(f'Missed package {nv} in remote repo, has only:') + nv = f"{n}=={v}" if v else n + print(f"Missed package {nv} in remote repo, has only:") for pv in rr.get_versions(n): - print(' ', pv) - raise Exception('Missed some packages in remote repo') + print(" ", pv) + raise Exception("Missed some packages in remote repo") def fetch_sources( - requirements_file='requirements.txt', + requirements_file="requirements.txt", allow_unpinned=False, dest_dir=THIRDPARTY_DIR, remote_links_url=REMOTE_LINKS_URL, @@ -258,27 +282,35 @@ def fetch_sources( else: force_pinned = False - rrp = list(get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - )) + rrp = list( + get_required_remote_packages( + requirements_file=requirements_file, + force_pinned=force_pinned, + remote_links_url=remote_links_url, + ) + ) for name, version, package in rrp: if not package: - missed.append((name, name,)) - nv = f'{name}=={version}' if version else name - yield None, f'fetch_sources: Missing package in remote repo: {nv}' + missed.append( + ( + name, + name, + ) + ) + nv = f"{name}=={version}" if version else name + yield None, f"fetch_sources: Missing package in remote repo: {nv}" elif not package.sdist: - yield package, f'Missing sdist in links' + yield package, f"Missing sdist in links" else: fetched = package.fetch_sdist(dest_dir=dest_dir) - error = f'Failed to fetch' if not fetched else None + error = f"Failed to fetch" if not fetched else None yield package, error if missed: - raise Exception(f'Missing source packages in {remote_links_url}', missed) + raise Exception(f"Missing source packages in {remote_links_url}", missed) + ################################################################################ # @@ -291,12 +323,12 @@ def fetch_sources( class NameVer: name = attr.ib( type=str, - metadata=dict(help='Python package name, lowercase and normalized.'), + metadata=dict(help="Python package name, lowercase and normalized."), ) version = attr.ib( type=str, - metadata=dict(help='Python package version string.'), + metadata=dict(help="Python package version string."), ) @property @@ -320,7 +352,7 @@ def standardize_name(name): @property def name_ver(self): - return f'{self.name}-{self.version}' + return f"{self.name}-{self.version}" def sortable_name_version(self): """ @@ -339,146 +371,146 @@ class Distribution(NameVer): # field names that can be updated from another dist of mapping updatable_fields = [ - 'license_expression', - 'copyright', - 'description', - 'homepage_url', - 'primary_language', - 'notice_text', - 'extra_data', + "license_expression", + "copyright", + "description", + "homepage_url", + "primary_language", + "notice_text", + "extra_data", ] filename = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='File name.'), + default="", + metadata=dict(help="File name."), ) path_or_url = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Path or download URL.'), + default="", + metadata=dict(help="Path or download URL."), ) sha256 = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='SHA256 checksum.'), + default="", + metadata=dict(help="SHA256 checksum."), ) sha1 = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='SHA1 checksum.'), + default="", + metadata=dict(help="SHA1 checksum."), ) md5 = attr.ib( repr=False, type=int, default=0, - metadata=dict(help='MD5 checksum.'), + metadata=dict(help="MD5 checksum."), ) type = attr.ib( repr=False, type=str, - default='pypi', - metadata=dict(help='Package type'), + default="pypi", + metadata=dict(help="Package type"), ) namespace = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Package URL namespace'), + default="", + metadata=dict(help="Package URL namespace"), ) qualifiers = attr.ib( repr=False, type=dict, default=attr.Factory(dict), - metadata=dict(help='Package URL qualifiers'), + metadata=dict(help="Package URL qualifiers"), ) subpath = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Package URL subpath'), + default="", + metadata=dict(help="Package URL subpath"), ) size = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Size in bytes.'), + default="", + metadata=dict(help="Size in bytes."), ) primary_language = attr.ib( repr=False, type=str, - default='Python', - metadata=dict(help='Primary Programming language.'), + default="Python", + metadata=dict(help="Primary Programming language."), ) description = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Description.'), + default="", + metadata=dict(help="Description."), ) homepage_url = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Homepage URL'), + default="", + metadata=dict(help="Homepage URL"), ) notes = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Notes.'), + default="", + metadata=dict(help="Notes."), ) copyright = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Copyright.'), + default="", + metadata=dict(help="Copyright."), ) license_expression = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='License expression'), + default="", + metadata=dict(help="License expression"), ) licenses = attr.ib( repr=False, type=list, default=attr.Factory(list), - metadata=dict(help='List of license mappings.'), + metadata=dict(help="List of license mappings."), ) notice_text = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Notice text'), + default="", + metadata=dict(help="Notice text"), ) extra_data = attr.ib( repr=False, type=dict, default=attr.Factory(dict), - metadata=dict(help='Extra data'), + metadata=dict(help="Extra data"), ) @property @@ -490,14 +522,14 @@ def package_url(self): @property def download_url(self): - if self.path_or_url and self.path_or_url.startswith('https://'): + if self.path_or_url and self.path_or_url.startswith("https://"): return self.path_or_url else: return self.get_best_download_url() @property def about_filename(self): - return f'{self.filename}.ABOUT' + return f"{self.filename}.ABOUT" def has_about_file(self, dest_dir=THIRDPARTY_DIR): return os.path.exists(os.path.join(dest_dir, self.about_filename)) @@ -508,7 +540,7 @@ def about_download_url(self): @property def notice_filename(self): - return f'{self.filename}.NOTICE' + return f"{self.filename}.NOTICE" @property def notice_download_url(self): @@ -521,16 +553,21 @@ def from_path_or_url(cls, path_or_url): `path_or_url` string. Raise an exception if this is not a valid filename. """ - filename = os.path.basename(path_or_url.strip('/')) + filename = os.path.basename(path_or_url.strip("/")) dist = cls.from_filename(filename) dist.path_or_url = path_or_url return dist @classmethod def get_dist_class(cls, filename): - if filename.endswith('.whl'): + if filename.endswith(".whl"): return Wheel - elif filename.endswith(('.zip', '.tar.gz',)): + elif filename.endswith( + ( + ".zip", + ".tar.gz", + ) + ): return Sdist raise InvalidDistributionFilename(filename) @@ -548,7 +585,7 @@ def from_data(cls, data, keep_extra=False): """ Return a distribution built from a `data` mapping. """ - filename = data['filename'] + filename = data["filename"] dist = cls.from_filename(filename) dist.update(data, keep_extra=keep_extra) return dist @@ -560,16 +597,20 @@ def from_dist(cls, data, dist): from another dist Distribution. Return None if it cannot be created """ # We can only create from a dist of the same package - has_same_key_fields = all(data.get(kf) == getattr(dist, kf, None) - for kf in ('type', 'namespace', 'name') + has_same_key_fields = all( + data.get(kf) == getattr(dist, kf, None) for kf in ("type", "namespace", "name") ) if not has_same_key_fields: - print(f'Missing key fields: Cannot derive a new dist from data: {data} and dist: {dist}') + print( + f"Missing key fields: Cannot derive a new dist from data: {data} and dist: {dist}" + ) return - has_key_field_values = all(data.get(kf) for kf in ('type', 'name', 'version')) + has_key_field_values = all(data.get(kf) for kf in ("type", "name", "version")) if not has_key_field_values: - print(f'Missing key field values: Cannot derive a new dist from data: {data} and dist: {dist}') + print( + f"Missing key field values: Cannot derive a new dist from data: {data} and dist: {dist}" + ) return data = dict(data) @@ -583,7 +624,7 @@ def build_remote_download_url(cls, filename, base_url=REMOTE_LINKS_URL): """ Return a direct download URL for a file in our remote repo """ - return f'{base_url}/{filename}' + return f"{base_url}/{filename}" def get_best_download_url(self): """ @@ -656,7 +697,7 @@ def has_key_metadata(self): """ Return True if this distribution has key metadata required for basic attribution. """ - if self.license_expression == 'public-domain': + if self.license_expression == "public-domain": # copyright not needed return True return self.license_expression and self.copyright and self.path_or_url @@ -677,7 +718,7 @@ def to_about(self): name=self.name, namespace=self.namespace, notes=self.notes, - notice_file=self.notice_filename if self.notice_text else '', + notice_file=self.notice_filename if self.notice_text else "", package_url=self.package_url, primary_language=self.primary_language, qualifiers=self.qualifiers, @@ -695,7 +736,7 @@ def to_dict(self): """ Return a mapping data from this distribution. """ - return {k: v for k, v in attr.asdict(self).items() if v} + return {k: v for k, v in attr.asdict(self).items() if v} def save_about_and_notice_files(self, dest_dir=THIRDPARTY_DIR): """ @@ -710,8 +751,9 @@ def save_if_modified(location, content): if existing_content == content: return False - if TRACE: print(f'Saving ABOUT (and NOTICE) files for: {self}') - with open(location, 'w') as fo: + if TRACE: + print(f"Saving ABOUT (and NOTICE) files for: {self}") + with open(location, "w") as fo: fo.write(content) return True @@ -750,26 +792,26 @@ def load_about_data(self, about_filename_or_data=None, dest_dir=THIRDPARTY_DIR): else: about_data = about_filename_or_data - md5 = about_data.pop('checksum_md5', None) + md5 = about_data.pop("checksum_md5", None) if md5: - about_data['md5'] = md5 - sha1 = about_data.pop('checksum_sha1', None) + about_data["md5"] = md5 + sha1 = about_data.pop("checksum_sha1", None) if sha1: - about_data['sha1'] = sha1 - sha256 = about_data.pop('checksum_sha256', None) + about_data["sha1"] = sha1 + sha256 = about_data.pop("checksum_sha256", None) if sha256: - about_data['sha256'] = sha256 + about_data["sha256"] = sha256 - about_data.pop('about_resource', None) - notice_text = about_data.pop('notice_text', None) - notice_file = about_data.pop('notice_file', None) + about_data.pop("about_resource", None) + notice_text = about_data.pop("notice_text", None) + notice_file = about_data.pop("notice_file", None) if notice_text: - about_data['notice_text'] = notice_text + about_data["notice_text"] = notice_text elif notice_file: notice_loc = os.path.join(dest_dir, notice_file) if os.path.exists(notice_loc): with open(notice_loc) as fi: - about_data['notice_text'] = fi.read() + about_data["notice_text"] = fi.read() return self.update(about_data, keep_extra=True) def load_remote_about_data(self): @@ -786,14 +828,14 @@ def load_remote_about_data(self): return False about_data = saneyaml.load(about_text) - notice_file = about_data.pop('notice_file', None) + notice_file = about_data.pop("notice_file", None) if notice_file: try: notice_text = fetch_content_from_path_or_url_through_cache(self.notice_download_url) if notice_text: - about_data['notice_text'] = notice_text + about_data["notice_text"] = notice_text except RemoteNotFetchedException: - print(f'Failed to fetch NOTICE file: {self.notice_download_url}') + print(f"Failed to fetch NOTICE file: {self.notice_download_url}") return self.load_about_data(about_data) def get_checksums(self, dest_dir=THIRDPARTY_DIR): @@ -803,7 +845,7 @@ def get_checksums(self, dest_dir=THIRDPARTY_DIR): """ dist_loc = os.path.join(dest_dir, self.filename) if os.path.exists(dist_loc): - return multi_checksums(dist_loc, checksum_names=('md5', 'sha1', 'sha256')) + return multi_checksums(dist_loc, checksum_names=("md5", "sha1", "sha256")) else: return {} @@ -819,7 +861,7 @@ def validate_checksums(self, dest_dir=THIRDPARTY_DIR): checksums computed for this dist filename is `dest_dir`. """ real_checksums = self.get_checksums(dest_dir) - for csk in ('md5', 'sha1', 'sha256'): + for csk in ("md5", "sha1", "sha256"): csv = getattr(self, csk) rcv = real_checksums.get(csk) if csv and rcv and csv != rcv: @@ -830,14 +872,14 @@ def get_pip_hash(self): """ Return a pip hash option string as used in requirements for this dist. """ - assert self.sha256, f'Missinh SHA256 for dist {self}' - return f'--hash=sha256:{self.sha256}' + assert self.sha256, f"Missinh SHA256 for dist {self}" + return f"--hash=sha256:{self.sha256}" def get_license_keys(self): try: keys = LICENSING.license_keys(self.license_expression, unique=True, simple=True) except license_expression.ExpressionParseError: - return ['unknown'] + return ["unknown"] return keys def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): @@ -847,19 +889,18 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): """ paths_or_urls = get_remote_repo().links errors = [] - extra_lic_names = [l.get('file') for l in self.extra_data.get('licenses', {})] - extra_lic_names += [self.extra_data.get('license_file')] - extra_lic_names = [ln for ln in extra_lic_names if ln] - lic_names = [ f'{key}.LICENSE' for key in self.get_license_keys()] - for filename in lic_names + extra_lic_names: + extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})] + extra_lic_names += [self.extra_data.get("license_file")] + extra_lic_names = [ln for ln in extra_lic_names if ln] + lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()] + for filename in lic_names + extra_lic_names: floc = os.path.join(dest_dir, filename) if os.path.exists(floc): continue try: # try remotely first - lic_url = get_link_for_filename( - filename=filename, paths_or_urls=paths_or_urls) + lic_url = get_link_for_filename(filename=filename, paths_or_urls=paths_or_urls) fetch_and_save_path_or_url( filename=filename, @@ -867,19 +908,21 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): path_or_url=lic_url, as_text=True, ) - if TRACE: print(f'Fetched license from remote: {lic_url}') + if TRACE: + print(f"Fetched license from remote: {lic_url}") except: try: # try licensedb second - lic_url = f'{LICENSEDB_API_URL}/{filename}' + lic_url = f"{LICENSEDB_API_URL}/{filename}" fetch_and_save_path_or_url( filename=filename, dest_dir=dest_dir, path_or_url=lic_url, as_text=True, ) - if TRACE: print(f'Fetched license from licensedb: {lic_url}') + if TRACE: + print(f"Fetched license from licensedb: {lic_url}") except: msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}' @@ -893,14 +936,19 @@ def extract_pkginfo(self, dest_dir=THIRDPARTY_DIR): Return the text of the first PKG-INFO or METADATA file found in the archive of this Distribution in `dest_dir`. Return None if not found. """ - fmt = 'zip' if self.filename.endswith('.whl') else None + fmt = "zip" if self.filename.endswith(".whl") else None dist = os.path.join(dest_dir, self.filename) - with tempfile.TemporaryDirectory(prefix='pypi-tmp-extract') as td: + with tempfile.TemporaryDirectory(prefix="pypi-tmp-extract") as td: shutil.unpack_archive(filename=dist, extract_dir=td, format=fmt) # NOTE: we only care about the first one found in the dist # which may not be 100% right for pi in fileutils.resource_iter(location=td, with_dirs=False): - if pi.endswith(('PKG-INFO', 'METADATA',)): + if pi.endswith( + ( + "PKG-INFO", + "METADATA", + ) + ): with open(pi) as fi: return fi.read() @@ -911,31 +959,33 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): """ pkginfo_text = self.extract_pkginfo(dest_dir=dest_dir) if not pkginfo_text: - print(f'!!!!PKG-INFO not found in {self.filename}') + print(f"!!!!PKG-INFO not found in {self.filename}") return raw_data = email.message_from_string(pkginfo_text) - classifiers = raw_data.get_all('Classifier') or [] + classifiers = raw_data.get_all("Classifier") or [] - declared_license = [raw_data['License']] + [c for c in classifiers if c.startswith('License')] + declared_license = [raw_data["License"]] + [ + c for c in classifiers if c.startswith("License") + ] license_expression = compute_normalized_license_expression(declared_license) - other_classifiers = [c for c in classifiers if not c.startswith('License')] + other_classifiers = [c for c in classifiers if not c.startswith("License")] - holder = raw_data['Author'] - holder_contact = raw_data['Author-email'] - copyright_statement = f'Copyright (c) {holder} <{holder_contact}>' + holder = raw_data["Author"] + holder_contact = raw_data["Author-email"] + copyright_statement = f"Copyright (c) {holder} <{holder_contact}>" pkginfo_data = dict( - name=raw_data['Name'], + name=raw_data["Name"], declared_license=declared_license, - version=raw_data['Version'], - description=raw_data['Summary'], - homepage_url=raw_data['Home-page'], + version=raw_data["Version"], + description=raw_data["Summary"], + homepage_url=raw_data["Home-page"], copyright=copyright_statement, license_expression=license_expression, holder=holder, holder_contact=holder_contact, - keywords=raw_data['Keywords'], + keywords=raw_data["Keywords"], classifiers=other_classifiers, ) @@ -949,10 +999,7 @@ def update_from_other_dist(self, dist): def get_updatable_data(self, data=None): data = data or self.to_dict() - return { - k: v for k, v in data.items() - if v and k in self.updatable_fields - } + return {k: v for k, v in data.items() if v and k in self.updatable_fields} def update(self, data, overwrite=False, keep_extra=True): """ @@ -961,20 +1008,21 @@ def update(self, data, overwrite=False, keep_extra=True): Return True if any data was updated, False otherwise. Raise an exception if there are key data conflicts. """ - package_url = data.get('package_url') + package_url = data.get("package_url") if package_url: purl_from_data = packageurl.PackageURL.from_string(package_url) purl_from_self = packageurl.PackageURL.from_string(self.package_url) if purl_from_data != purl_from_self: print( - f'Invalid dist update attempt, no same same purl with dist: ' - f'{self} using data {data}.') + f"Invalid dist update attempt, no same same purl with dist: " + f"{self} using data {data}." + ) return - data.pop('about_resource', None) - dl = data.pop('download_url', None) + data.pop("about_resource", None) + dl = data.pop("download_url", None) if dl: - data['path_or_url'] = dl + data["path_or_url"] = dl updated = False extra = {} @@ -990,7 +1038,7 @@ def update(self, data, overwrite=False, keep_extra=True): try: setattr(self, k, v) except Exception as e: - raise Exception(f'{self}, {k}, {v}') from e + raise Exception(f"{self}, {k}, {v}") from e updated = True elif keep_extra: @@ -1013,8 +1061,8 @@ class Sdist(Distribution): extension = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='File extension, including leading dot.'), + default="", + metadata=dict(help="File extension, including leading dot."), ) @classmethod @@ -1034,13 +1082,13 @@ def from_filename(cls, filename): if not extension or not name_ver: raise InvalidDistributionFilename(filename) - name, _, version = name_ver.rpartition('-') + name, _, version = name_ver.rpartition("-") if not name or not version: raise InvalidDistributionFilename(filename) return cls( - type='pypi', + type="pypi", name=name, version=version, extension=extension, @@ -1052,7 +1100,7 @@ def to_filename(self): Return an sdist filename reconstructed from its fields (that may not be the same as the original filename.) """ - return f'{self.name}-{self.version}.{self.extension}' + return f"{self.name}-{self.version}.{self.extension}" @attr.attributes @@ -1097,38 +1145,38 @@ class Wheel(Distribution): r"""^(?P(?P.+?)-(?P.*?)) ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) \.whl)$""", - re.VERBOSE + re.VERBOSE, ).match build = attr.ib( type=str, - default='', - metadata=dict(help='Python wheel build.'), + default="", + metadata=dict(help="Python wheel build."), ) python_versions = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of wheel Python version tags.'), + metadata=dict(help="List of wheel Python version tags."), ) abis = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of wheel ABI tags.'), + metadata=dict(help="List of wheel ABI tags."), ) platforms = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of wheel platform tags.'), + metadata=dict(help="List of wheel platform tags."), ) tags = attr.ib( repr=False, type=set, default=attr.Factory(set), - metadata=dict(help='Set of all tags for this wheel.'), + metadata=dict(help="Set of all tags for this wheel."), ) @classmethod @@ -1141,24 +1189,23 @@ def from_filename(cls, filename): if not wheel_info: raise InvalidDistributionFilename(filename) - name = wheel_info.group('name').replace('_', '-') + name = wheel_info.group("name").replace("_", "-") # we'll assume "_" means "-" due to wheel naming scheme # (https://github.com/pypa/pip/issues/1150) - version = wheel_info.group('ver').replace('_', '-') - build = wheel_info.group('build') - python_versions = wheel_info.group('pyvers').split('.') - abis = wheel_info.group('abis').split('.') - platforms = wheel_info.group('plats').split('.') + version = wheel_info.group("ver").replace("_", "-") + build = wheel_info.group("build") + python_versions = wheel_info.group("pyvers").split(".") + abis = wheel_info.group("abis").split(".") + platforms = wheel_info.group("plats").split(".") # All the tag combinations from this file tags = { - packaging_tags.Tag(x, y, z) for x in python_versions - for y in abis for z in platforms + packaging_tags.Tag(x, y, z) for x in python_versions for y in abis for z in platforms } return cls( filename=filename, - type='pypi', + type="pypi", name=name, version=version, build=build, @@ -1179,18 +1226,18 @@ def is_supported_by_environment(self, environment): Return True if this wheel is compatible with the Environment `environment`. """ - return not self.is_supported_by_tags(environment.tags) + return not self.is_supported_by_tags(environment.tags) def to_filename(self): """ Return a wheel filename reconstructed from its fields (that may not be the same as the original filename.) """ - build = f'-{self.build}' if self.build else '' - pyvers = '.'.join(self.python_versions) - abis = '.'.join(self.abis) - plats = '.'.join(self.platforms) - return f'{self.name}-{self.version}{build}-{pyvers}-{abis}-{plats}.whl' + build = f"-{self.build}" if self.build else "" + pyvers = ".".join(self.python_versions) + abis = ".".join(self.abis) + plats = ".".join(self.platforms) + return f"{self.name}-{self.version}{build}-{pyvers}-{abis}-{plats}.whl" def is_pure(self): """ @@ -1216,11 +1263,7 @@ def is_pure(self): >>> Wheel.from_filename('future-0.16.0-py3-cp36m-any.whl').is_pure() False """ - return ( - 'py3' in self.python_versions - and 'none' in self.abis - and 'any' in self.platforms - ) + return "py3" in self.python_versions and "none" in self.abis and "any" in self.platforms def is_pure_wheel(filename): @@ -1236,18 +1279,19 @@ class PypiPackage(NameVer): A Python package with its "distributions", e.g. wheels and source distribution , ABOUT files and licenses or notices. """ + sdist = attr.ib( repr=False, type=str, - default='', - metadata=dict(help='Sdist source distribution for this package.'), + default="", + metadata=dict(help="Sdist source distribution for this package."), ) wheels = attr.ib( repr=False, type=list, default=attr.Factory(list), - metadata=dict(help='List of Wheel for this package'), + metadata=dict(help="List of Wheel for this package"), ) @property @@ -1256,7 +1300,7 @@ def specifier(self): A requirement specifier for this package """ if self.version: - return f'{self.name}=={self.version}' + return f"{self.name}=={self.version}" else: return self.name @@ -1268,7 +1312,7 @@ def specifier_with_hashes(self): """ items = [self.specifier] items += [d.get_pip_hashes() for d in self.get_distributions()] - return ' \\\n '.join(items) + return " \\\n ".join(items) def get_supported_wheels(self, environment): """ @@ -1314,7 +1358,7 @@ def package_from_dists(cls, dists): if dist.normalized_name != normalized_name or dist.version != version: if TRACE: print( - f' Skipping inconsistent dist name and version: {dist} ' + f" Skipping inconsistent dist name and version: {dist} " f'Expected instead package name: {normalized_name} and version: "{version}"' ) continue @@ -1326,7 +1370,7 @@ def package_from_dists(cls, dists): package.wheels.append(dist) else: - raise Exception(f'Unknown distribution type: {dist}') + raise Exception(f"Unknown distribution type: {dist}") return package @@ -1348,7 +1392,8 @@ def packages_from_many_paths_or_urls(cls, paths_or_urls): dists = NameVer.sorted(dists) for _projver, dists_of_package in itertools.groupby( - dists, key=NameVer.sortable_name_version, + dists, + key=NameVer.sortable_name_version, ): yield PypiPackage.package_from_dists(dists_of_package) @@ -1409,7 +1454,7 @@ def get_name_version(cls, name, version, packages): if len(nvs) == 1: return nvs[0] - raise Exception(f'More than one PypiPackage with {name}=={version}') + raise Exception(f"More than one PypiPackage with {name}=={version}") def fetch_wheel( self, @@ -1457,17 +1502,19 @@ def fetch_sdist(self, dest_dir=THIRDPARTY_DIR): """ if self.sdist: assert self.sdist.filename - if TRACE: print('Fetching source for package:', self.name, self.version) + if TRACE: + print("Fetching source for package:", self.name, self.version) fetch_and_save_path_or_url( filename=self.sdist.filename, dest_dir=dest_dir, path_or_url=self.sdist.path_or_url, as_text=False, ) - if TRACE: print(' --> file:', self.sdist.filename) + if TRACE: + print(" --> file:", self.sdist.filename) return self.sdist.filename else: - print(f'Missing sdist for: {self.name}=={self.version}') + print(f"Missing sdist for: {self.name}=={self.version}") return False def delete_files(self, dest_dir=THIRDPARTY_DIR): @@ -1481,10 +1528,10 @@ def delete_files(self, dest_dir=THIRDPARTY_DIR): if not to_delete: continue tdfn = to_delete.filename - for deletable in [tdfn, f'{tdfn}.ABOUT', f'{tdfn}.NOTICE']: + for deletable in [tdfn, f"{tdfn}.ABOUT", f"{tdfn}.NOTICE"]: target = os.path.join(dest_dir, deletable) if os.path.exists(target): - print(f'Deleting outdated {target}') + print(f"Deleting outdated {target}") fileutils.delete(target) @classmethod @@ -1528,7 +1575,7 @@ def get_dists(cls, paths_or_urls): yield Distribution.from_path_or_url(path_or_url) except InvalidDistributionFilename: if TRACE: - print(f'Skipping invalid distribution from: {path_or_url}') + print(f"Skipping invalid distribution from: {path_or_url}") continue def get_distributions(self): @@ -1562,42 +1609,42 @@ class Environment: python_version = attr.ib( type=str, - default='', - metadata=dict(help='Python version supported by this environment.'), + default="", + metadata=dict(help="Python version supported by this environment."), ) operating_system = attr.ib( type=str, - default='', - metadata=dict(help='operating system supported by this environment.'), + default="", + metadata=dict(help="operating system supported by this environment."), ) implementation = attr.ib( type=str, - default='cp', - metadata=dict(help='Python implementation supported by this environment.'), + default="cp", + metadata=dict(help="Python implementation supported by this environment."), ) abis = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of ABI tags supported by this environment.'), + metadata=dict(help="List of ABI tags supported by this environment."), ) platforms = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of platform tags supported by this environment.'), + metadata=dict(help="List of platform tags supported by this environment."), ) @classmethod def from_pyver_and_os(cls, python_version, operating_system): - if '.' in python_version: - python_version = ''.join(python_version.split('.')) + if "." in python_version: + python_version = "".join(python_version.split(".")) return cls( python_version=python_version, - implementation='cp', + implementation="cp", abis=ABIS_BY_PYTHON_VERSION[python_version], platforms=PLATFORMS_BY_OS[operating_system], operating_system=operating_system, @@ -1608,24 +1655,30 @@ def get_pip_cli_options(self): Return a list of pip command line options for this environment. """ options = [ - '--python-version', self.python_version, - '--implementation', self.implementation, - '--abi', self.abi, + "--python-version", + self.python_version, + "--implementation", + self.implementation, + "--abi", + self.abi, ] for platform in self.platforms: - options.extend(['--platform', platform]) + options.extend(["--platform", platform]) return options def tags(self): """ Return a set of all the PEP425 tags supported by this environment. """ - return set(utils_pip_compatibility_tags.get_supported( - version=self.python_version or None, - impl=self.implementation or None, - platforms=self.platforms or None, - abis=self.abis or None, - )) + return set( + utils_pip_compatibility_tags.get_supported( + version=self.python_version or None, + impl=self.implementation or None, + platforms=self.platforms or None, + abis=self.abis or None, + ) + ) + ################################################################################ # @@ -1643,15 +1696,13 @@ class Repository: packages_by_normalized_name = attr.ib( type=dict, default=attr.Factory(lambda: defaultdict(list)), - metadata=dict(help= - 'Mapping of {package name: [package objects]} available in this repo'), + metadata=dict(help="Mapping of {package name: [package objects]} available in this repo"), ) packages_by_normalized_name_version = attr.ib( type=dict, default=attr.Factory(dict), - metadata=dict(help= - 'Mapping of {(name, version): package object} available in this repo'), + metadata=dict(help="Mapping of {(name, version): package object} available in this repo"), ) def get_links(self, *args, **kwargs): @@ -1684,16 +1735,17 @@ class LinksRepository(Repository): Python wheels and sdist or a remote URL to an HTML with links to these. (e.g. suitable for use with pip --find-links). """ + path_or_url = attr.ib( type=str, - default='', - metadata=dict(help='Package directory path or URL'), + default="", + metadata=dict(help="Package directory path or URL"), ) links = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help='List of links available in this repo'), + metadata=dict(help="List of links available in this repo"), ) def __attrs_post_init__(self): @@ -1725,16 +1777,17 @@ class PypiRepository(Repository): Represents the public PyPI simple index. It is populated lazily based on requested packages names """ + simple_url = attr.ib( type=str, default=PYPI_SIMPLE_URL, - metadata=dict(help='Base PyPI simple URL for this index.'), + metadata=dict(help="Base PyPI simple URL for this index."), ) links_by_normalized_name = attr.ib( type=dict, default=attr.Factory(lambda: defaultdict(list)), - metadata=dict(help='Mapping of {package name: [links]} available in this repo'), + metadata=dict(help="Mapping of {package name: [links]} available in this repo"), ) def _fetch_links(self, name): @@ -1759,7 +1812,7 @@ def _populate_links_and_packages(self, name): def get_links(self, name, *args, **kwargs): name = name and NameVer.normalize_name(name) self._populate_links_and_packages(name) - return self.links_by_normalized_name.get(name, []) + return self.links_by_normalized_name.get(name, []) def get_versions(self, name): name = name and NameVer.normalize_name(name) @@ -1772,6 +1825,7 @@ def get_latest_version(self, name): def get_package(self, name, version): return PypiPackage.get_name_version(name, version, self.get_versions(name)) + ################################################################################ # Globals for remote repos to be lazily created and cached on first use for the # life of the session together with some convenience functions. @@ -1807,7 +1861,7 @@ def get_remote_package(name, version, remote_links_url=REMOTE_LINKS_URL): try: return get_remote_repo(remote_links_url).get_package(name, version) except RemoteNotFetchedException as e: - print(f'Failed to fetch remote package info: {e}') + print(f"Failed to fetch remote package info: {e}") _PYPI_REPO = None @@ -1827,7 +1881,8 @@ def get_pypi_package(name, version, pypi_simple_url=PYPI_SIMPLE_URL): try: return get_pypi_repo(pypi_simple_url).get_package(name, version) except RemoteNotFetchedException as e: - print(f'Failed to fetch remote package info: {e}') + print(f"Failed to fetch remote package info: {e}") + ################################################################################ # @@ -1856,12 +1911,12 @@ def get(self, path_or_url, as_text=True): Get a file from a `path_or_url` through the cache. `path_or_url` can be a path or a URL to a file. """ - filename = os.path.basename(path_or_url.strip('/')) + filename = os.path.basename(path_or_url.strip("/")) cached = os.path.join(self.directory, filename) if not os.path.exists(cached): content = get_file_content(path_or_url=path_or_url, as_text=as_text) - wmode = 'w' if as_text else 'wb' + wmode = "w" if as_text else "wb" with open(cached, wmode) as fo: fo.write(content) return content @@ -1873,7 +1928,7 @@ def put(self, filename, content): Put in the cache the `content` of `filename`. """ cached = os.path.join(self.directory, filename) - wmode = 'wb' if isinstance(content, bytes) else 'w' + wmode = "wb" if isinstance(content, bytes) else "w" with open(cached, wmode) as fo: fo.write(content) @@ -1883,18 +1938,19 @@ def get_file_content(path_or_url, as_text=True): Fetch and return the content at `path_or_url` from either a local path or a remote URL. Return the content as bytes is `as_text` is False. """ - if (path_or_url.startswith('file://') - or (path_or_url.startswith('/') and os.path.exists(path_or_url)) + if path_or_url.startswith("file://") or ( + path_or_url.startswith("/") and os.path.exists(path_or_url) ): return get_local_file_content(path=path_or_url, as_text=as_text) - elif path_or_url.startswith('https://'): - if TRACE: print(f'Fetching: {path_or_url}') + elif path_or_url.startswith("https://"): + if TRACE: + print(f"Fetching: {path_or_url}") _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) return content else: - raise Exception(f'Unsupported URL scheme: {path_or_url}') + raise Exception(f"Unsupported URL scheme: {path_or_url}") def get_local_file_content(path, as_text=True): @@ -1902,10 +1958,10 @@ def get_local_file_content(path, as_text=True): Return the content at `url` as text. Return the content as bytes is `as_text` is False. """ - if path.startswith('file://'): + if path.startswith("file://"): path = path[7:] - mode = 'r' if as_text else 'rb' + mode = "r" if as_text else "rb" with open(path, mode) as fo: return fo.read() @@ -1914,7 +1970,13 @@ class RemoteNotFetchedException(Exception): pass -def get_remote_file_content(url, as_text=True, headers_only=False, headers=None, _delay=0,): +def get_remote_file_content( + url, + as_text=True, + headers_only=False, + headers=None, + _delay=0, +): """ Fetch and return a tuple of (headers, content) at `url`. Return content as a text string if `as_text` is True. Otherwise return the content as bytes. @@ -1944,7 +2006,7 @@ def get_remote_file_content(url, as_text=True, headers_only=False, headers=None, ) else: - raise RemoteNotFetchedException(f'Failed HTTP request from {url} with {status}') + raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") if headers_only: return response.headers, None @@ -1952,7 +2014,11 @@ def get_remote_file_content(url, as_text=True, headers_only=False, headers=None, return response.headers, response.text if as_text else response.content -def get_url_content_if_modified(url, md5, _delay=0,): +def get_url_content_if_modified( + url, + md5, + _delay=0, +): """ Return fetched content bytes at `url` or None if the md5 has not changed. Retries multiple times to fetch if there is a HTTP 429 throttling response @@ -1962,7 +2028,7 @@ def get_url_content_if_modified(url, md5, _delay=0,): headers = None if md5: etag = f'"{md5}"' - headers = {'If-None-Match': f'{etag}'} + headers = {"If-None-Match": f"{etag}"} # using a GET with stream=True ensure we get the the final header from # several redirects and that we can ignore content there. A HEAD request may @@ -1979,7 +2045,7 @@ def get_url_content_if_modified(url, md5, _delay=0,): return None elif status != requests.codes.ok: # NOQA - raise RemoteNotFetchedException(f'Failed HTTP request from {url} with {status}') + raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") return response.content @@ -2045,11 +2111,12 @@ def fetch_and_save_path_or_url(filename, dest_dir, path_or_url, as_text=True, th content = fetch_content_from_path_or_url_through_cache(path_or_url, as_text, cache=None) output = os.path.join(dest_dir, filename) - wmode = 'w' if as_text else 'wb' + wmode = "w" if as_text else "wb" with open(output, wmode) as fo: fo.write(content) return content + ################################################################################ # # Sync and fix local thirdparty directory for various issues and gaps @@ -2070,29 +2137,34 @@ def fetch_missing_sources(dest_dir=THIRDPARTY_DIR): for package in local_packages: if not package.sdist: - print(f'Finding sources for: {package.name}=={package.version}: ', end='') + print(f"Finding sources for: {package.name}=={package.version}: ", end="") try: - pypi_package = pypi_repo.get_package( - name=package.name, version=package.version) + pypi_package = pypi_repo.get_package(name=package.name, version=package.version) if pypi_package and pypi_package.sdist: - print(f'Fetching sources from Pypi') + print(f"Fetching sources from Pypi") pypi_package.fetch_sdist(dest_dir=dest_dir) continue else: remote_package = remote_repo.get_package( - name=package.name, version=package.version) + name=package.name, version=package.version + ) if remote_package and remote_package.sdist: - print(f'Fetching sources from Remote') + print(f"Fetching sources from Remote") remote_package.fetch_sdist(dest_dir=dest_dir) continue except RemoteNotFetchedException as e: - print(f'Failed to fetch remote package info: {e}') + print(f"Failed to fetch remote package info: {e}") - print(f'No sources found') - not_found.append((package.name, package.version,)) + print(f"No sources found") + not_found.append( + ( + package.name, + package.version, + ) + ) return not_found @@ -2125,7 +2197,12 @@ def fetch_missing_wheels( if filename: fetched_filenames.add(filename) else: - not_fetched.append((package, envt,)) + not_fetched.append( + ( + package, + envt, + ) + ) return not_fetched @@ -2145,8 +2222,7 @@ def build_missing_wheels( not_built = [] built_filenames = [] - packages_and_envts = itertools.groupby( - sorted(packages_and_envts), key=operator.itemgetter(0)) + packages_and_envts = itertools.groupby(sorted(packages_and_envts), key=operator.itemgetter(0)) for package, pkg_envts in packages_and_envts: @@ -2164,25 +2240,27 @@ def build_missing_wheels( verbose=False, dest_dir=dest_dir, ) - print('.') + print(".") except Exception as e: import traceback - print('#############################################################') - print('############# WHEEL BUILD FAILED ######################') + + print("#############################################################") + print("############# WHEEL BUILD FAILED ######################") traceback.print_exc() print() - print('#############################################################') + print("#############################################################") if not built: for envt in pkg_envts: not_built.append((package, envt)) else: for bfn in built: - print(f' --> Built wheel: {bfn}') + print(f" --> Built wheel: {bfn}") built_filenames.append(bfn) return not_built, built_filenames + ################################################################################ # # Functions to handle remote or local repo used to "find-links" @@ -2191,7 +2269,7 @@ def build_missing_wheels( def get_paths_or_urls(links_url): - if links_url.startswith('https:'): + if links_url.startswith("https:"): paths_or_urls = find_links_from_release_url(links_url) else: paths_or_urls = find_links_from_dir(links_url) @@ -2217,14 +2295,15 @@ def find_links_from_release_url(links_url=REMOTE_LINKS_URL): URL that starts with the `prefix` string and ends with any of the extension in the list of `extensions` strings. Use the `base_url` to prefix the links. """ - if TRACE: print(f'Finding links for {links_url}') + if TRACE: + print(f"Finding links for {links_url}") plinks_url = urllib.parse.urlparse(links_url) - base_url = urllib.parse.SplitResult( - plinks_url.scheme, plinks_url.netloc, '', '', '').geturl() + base_url = urllib.parse.SplitResult(plinks_url.scheme, plinks_url.netloc, "", "", "").geturl() - if TRACE: print(f'Base URL {base_url}') + if TRACE: + print(f"Base URL {base_url}") _headers, text = get_remote_file_content(links_url) links = [] @@ -2238,19 +2317,21 @@ def find_links_from_release_url(links_url=REMOTE_LINKS_URL): # full URL kept as-is url = link - if plink.path.startswith('/'): + if plink.path.startswith("/"): # absolute link - url = f'{base_url}{link}' + url = f"{base_url}{link}" else: # relative link - url = f'{links_url}/{link}' + url = f"{links_url}/{link}" - if TRACE: print(f'Adding URL: {url}') + if TRACE: + print(f"Adding URL: {url}") links.append(url) - if TRACE: print(f'Found {len(links)} links at {links_url}') + if TRACE: + print(f"Found {len(links)} links at {links_url}") return links @@ -2259,19 +2340,20 @@ def find_pypi_links(name, simple_url=PYPI_SIMPLE_URL): Return a list of download link URLs found in a PyPI simple index for package name. with the list of `extensions` strings. Use the `simple_url` PyPI url. """ - if TRACE: print(f'Finding links for {simple_url}') + if TRACE: + print(f"Finding links for {simple_url}") name = name and NameVer.normalize_name(name) - simple_url = simple_url.strip('/') - simple_url = f'{simple_url}/{name}' + simple_url = simple_url.strip("/") + simple_url = f"{simple_url}/{name}" _headers, text = get_remote_file_content(simple_url) links = get_links(text) # TODO: keep sha256 - links = [l.partition('#sha256=') for l in links] + links = [l.partition("#sha256=") for l in links] links = [url for url, _, _sha256 in links] links = [l for l in links if l.endswith(EXTENSIONS)] - return links + return links def get_link_for_filename(filename, paths_or_urls): @@ -2280,13 +2362,14 @@ def get_link_for_filename(filename, paths_or_urls): exception if no link is found or if there are more than one link for that file name. """ - path_or_url = [l for l in paths_or_urls if l.endswith(f'/{filename}')] + path_or_url = [l for l in paths_or_urls if l.endswith(f"/{filename}")] if not path_or_url: - raise Exception(f'Missing link to file: {filename}') + raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: - raise Exception(f'Multiple links to file: {filename}: \n' + '\n'.join(path_or_url)) + raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) return path_or_url[0] + ################################################################################ # # Requirements processing @@ -2308,12 +2391,16 @@ def get_required_packages(required_name_versions): """ remote_repo = get_remote_repo() - remote_packages = {(name, version): remote_repo.get_package(name, version) - for name, version in required_name_versions} + remote_packages = { + (name, version): remote_repo.get_package(name, version) + for name, version in required_name_versions + } pypi_repo = get_pypi_repo() - pypi_packages = {(name, version): pypi_repo.get_package(name, version) - for name, version in required_name_versions} + pypi_packages = { + (name, version): pypi_repo.get_package(name, version) + for name, version in required_name_versions + } # remove any empty package (e.g. that do not exist in some place) remote_packages = {nv: p for nv, p in remote_packages.items() if p} @@ -2329,7 +2416,7 @@ def get_required_packages(required_name_versions): def get_required_remote_packages( - requirements_file='requirements.txt', + requirements_file="requirements.txt", force_pinned=True, remote_links_url=REMOTE_LINKS_URL, ): @@ -2344,11 +2431,11 @@ def get_required_remote_packages( force_pinned=force_pinned, ) - if remote_links_url.startswith('https://'): + if remote_links_url.startswith("https://"): repo = get_remote_repo(remote_links_url=remote_links_url) else: # a local path - assert os.path.exists(remote_links_url), f'Path does not exist: {remote_links_url}' + assert os.path.exists(remote_links_url), f"Path does not exist: {remote_links_url}" repo = get_local_repo(directory=remote_links_url) for name, version in required_name_versions: @@ -2358,7 +2445,7 @@ def get_required_remote_packages( yield name, version, repo.get_latest_version(name) -def update_requirements(name, version=None, requirements_file='requirements.txt'): +def update_requirements(name, version=None, requirements_file="requirements.txt"): """ Upgrade or add `package_name` with `new_version` to the `requirements_file` requirements file. Write back requirements sorted with name and version @@ -2376,17 +2463,22 @@ def update_requirements(name, version=None, requirements_file='requirements.txt' if normalized_name == existing_normalized_name: if version != existing_version: is_updated = True - updated_name_versions.append((existing_normalized_name, existing_version,)) + updated_name_versions.append( + ( + existing_normalized_name, + existing_version, + ) + ) if is_updated: updated_name_versions = sorted(updated_name_versions) - nvs = '\n'.join(f'{name}=={version}' for name, version in updated_name_versions) + nvs = "\n".join(f"{name}=={version}" for name, version in updated_name_versions) - with open(requirements_file, 'w') as fo: + with open(requirements_file, "w") as fo: fo.write(nvs) -def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.txt'): +def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file="requirements.txt"): """ Hash all the requirements found in the `requirements_file` requirements file based on distributions available in `dest_dir` @@ -2397,11 +2489,12 @@ def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file='requirements.t for name, version in load_requirements(requirements_file, force_pinned=True): package = packages_by_normalized_name_version.get((name, version)) if not package: - raise Exception(f'Missing required package {name}=={version}') + raise Exception(f"Missing required package {name}=={version}") hashed.append(package.specifier_with_hashes) - with open(requirements_file, 'w') as fo: - fo.write('\n'.join(hashed)) + with open(requirements_file, "w") as fo: + fo.write("\n".join(hashed)) + ################################################################################ # @@ -2462,7 +2555,8 @@ def get_other_dists(_package, _dist): # try to get a latest version of the same package that is not our version other_local_packages = [ - p for p in local_repo.get_versions(local_package.name) + p + for p in local_repo.get_versions(local_package.name) if p.version != local_package.version ] @@ -2498,7 +2592,8 @@ def get_other_dists(_package, _dist): # try to get a latest version of the same package that is not our version other_remote_packages = [ - p for p in remote_repo.get_versions(local_package.name) + p + for p in remote_repo.get_versions(local_package.name) if p.version != local_package.version ] @@ -2534,10 +2629,11 @@ def get_other_dists(_package, _dist): # TODO: try to get data from dejacode if not local_dist.has_key_metadata(): - print(f'Unable to add essential ABOUT data for: {local_dist}') + print(f"Unable to add essential ABOUT data for: {local_dist}") if lic_errs: - lic_errs = '\n'.join(lic_errs) - print(f'Failed to fetch some licenses:: {lic_errs}') + lic_errs = "\n".join(lic_errs) + print(f"Failed to fetch some licenses:: {lic_errs}") + ################################################################################ # @@ -2551,19 +2647,18 @@ def call(args): Call args in a subprocess and display output on the fly. Return or raise stdout, stderr, returncode """ - if TRACE: print('Calling:', ' '.join(args)) + if TRACE: + print("Calling:", " ".join(args)) with subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - encoding='utf-8' + args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="utf-8" ) as process: while True: line = process.stdout.readline() if not line and process.poll() is not None: break - if TRACE: print(line.rstrip(), flush=True) + if TRACE: + print(line.rstrip(), flush=True) stdout, stderr = process.communicate() returncode = process.returncode @@ -2595,15 +2690,17 @@ def add_or_upgrade_built_wheels( Include wheels for all dependencies if `with_deps` is True. Build remotely is `build_remotely` is True. """ - assert name, 'Name is required' - ver = version and f'=={version}' or '' - print(f'\nAdding wheels for package: {name}{ver}') + assert name, "Name is required" + ver = version and f"=={version}" or "" + print(f"\nAdding wheels for package: {name}{ver}") wheel_filenames = [] # a mapping of {req specifier: {mapping build_wheels kwargs}} wheels_to_build = {} for python_version, operating_system in itertools.product(python_versions, operating_systems): - print(f' Adding wheels for package: {name}{ver} on {python_version,} and {operating_system}') + print( + f" Adding wheels for package: {name}{ver} on {python_version,} and {operating_system}" + ) environment = Environment.from_pyver_and_os(python_version, operating_system) # Check if requested wheel already exists locally for this version @@ -2617,7 +2714,7 @@ def add_or_upgrade_built_wheels( wheel_filenames.append(wheel.filename) break if has_local_wheel: - print(f' local wheel exists: {wheel.filename}') + print(f" local wheel exists: {wheel.filename}") continue if not version: @@ -2626,17 +2723,18 @@ def add_or_upgrade_built_wheels( # Check if requested wheel already exists remotely or in Pypi for this version wheel_filename = fetch_package_wheel( - name=name, version=version, environment=environment, dest_dir=dest_dir) + name=name, version=version, environment=environment, dest_dir=dest_dir + ) if wheel_filename: wheel_filenames.append(wheel_filename) # the wheel is not available locally, remotely or in Pypi # we need to build binary from sources - requirements_specifier = f'{name}=={version}' + requirements_specifier = f"{name}=={version}" to_build = wheels_to_build.get(requirements_specifier) if to_build: - to_build['python_versions'].append(python_version) - to_build['operating_systems'].append(operating_system) + to_build["python_versions"].append(python_version) + to_build["operating_systems"].append(operating_system) else: wheels_to_build[requirements_specifier] = dict( requirements_specifier=requirements_specifier, @@ -2682,7 +2780,7 @@ def build_wheels( dest_dir=dest_dir, ) for local_build in builds: - print(f'Built wheel: {local_build}') + print(f"Built wheel: {local_build}") if all_pure: return builds @@ -2718,36 +2816,43 @@ def build_wheels_remotely_on_multiple_platforms( """ check_romp_is_configured() pyos_options = get_romp_pyos_options(python_versions, operating_systems) - deps = '' if with_deps else '--no-deps' - verbose = '--verbose' if verbose else '' - - romp_args = ([ - 'romp', - '--interpreter', 'cpython', - '--architecture', 'x86_64', - '--check-period', '5', # in seconds - - ] + pyos_options + [ - - '--artifact-paths', '*.whl', - '--artifact', 'artifacts.tar.gz', - '--command', + deps = "" if with_deps else "--no-deps" + verbose = "--verbose" if verbose else "" + + romp_args = ( + [ + "romp", + "--interpreter", + "cpython", + "--architecture", + "x86_64", + "--check-period", + "5", # in seconds + ] + + pyos_options + + [ + "--artifact-paths", + "*.whl", + "--artifact", + "artifacts.tar.gz", + "--command", # create a virtualenv, upgrade pip -# f'python -m ensurepip --user --upgrade; ' - f'python -m pip {verbose} install --user --upgrade pip setuptools wheel; ' - f'python -m pip {verbose} wheel {deps} {requirements_specifier}', - ]) + # f'python -m ensurepip --user --upgrade; ' + f"python -m pip {verbose} install --user --upgrade pip setuptools wheel; " + f"python -m pip {verbose} wheel {deps} {requirements_specifier}", + ] + ) if verbose: - romp_args.append('--verbose') + romp_args.append("--verbose") - print(f'Building wheels for: {requirements_specifier}') - print(f'Using command:', ' '.join(romp_args)) + print(f"Building wheels for: {requirements_specifier}") + print(f"Using command:", " ".join(romp_args)) call(romp_args) - wheel_filenames = extract_tar('artifacts.tar.gz', dest_dir) + wheel_filenames = extract_tar("artifacts.tar.gz", dest_dir) for wfn in wheel_filenames: - print(f' built wheel: {wfn}') + print(f" built wheel: {wfn}") return wheel_filenames @@ -2763,12 +2868,16 @@ def get_romp_pyos_options( ... '--platform', 'windows'] >>> assert get_romp_pyos_options() == expected """ - python_dot_versions = ['.'.join(pv) for pv in sorted(set(python_versions))] - pyos_options = list(itertools.chain.from_iterable( - ('--version', ver) for ver in python_dot_versions)) + python_dot_versions = [".".join(pv) for pv in sorted(set(python_versions))] + pyos_options = list( + itertools.chain.from_iterable(("--version", ver) for ver in python_dot_versions) + ) - pyos_options += list(itertools.chain.from_iterable( - ('--platform' , plat) for plat in sorted(set(operating_systems)))) + pyos_options += list( + itertools.chain.from_iterable( + ("--platform", plat) for plat in sorted(set(operating_systems)) + ) + ) return pyos_options @@ -2776,17 +2885,18 @@ def get_romp_pyos_options( def check_romp_is_configured(): # these environment variable must be set before has_envt = ( - os.environ.get('ROMP_BUILD_REQUEST_URL') and - os.environ.get('ROMP_DEFINITION_ID') and - os.environ.get('ROMP_PERSONAL_ACCESS_TOKEN') and - os.environ.get('ROMP_USERNAME') + os.environ.get("ROMP_BUILD_REQUEST_URL") + and os.environ.get("ROMP_DEFINITION_ID") + and os.environ.get("ROMP_PERSONAL_ACCESS_TOKEN") + and os.environ.get("ROMP_USERNAME") ) if not has_envt: raise Exception( - 'ROMP_BUILD_REQUEST_URL, ROMP_DEFINITION_ID, ' - 'ROMP_PERSONAL_ACCESS_TOKEN and ROMP_USERNAME ' - 'are required enironment variables.') + "ROMP_BUILD_REQUEST_URL, ROMP_DEFINITION_ID, " + "ROMP_PERSONAL_ACCESS_TOKEN and ROMP_USERNAME " + "are required enironment variables." + ) def build_wheels_locally_if_pure_python( @@ -2804,19 +2914,24 @@ def build_wheels_locally_if_pure_python( Return a tuple of (True if all wheels are "pure", list of built wheel file names) """ - deps = [] if with_deps else ['--no-deps'] - verbose = ['--verbose'] if verbose else [] + deps = [] if with_deps else ["--no-deps"] + verbose = ["--verbose"] if verbose else [] - wheel_dir = tempfile.mkdtemp(prefix='scancode-release-wheels-local-') - cli_args = [ - 'pip', 'wheel', - '--wheel-dir', wheel_dir, - ] + deps + verbose + [ - requirements_specifier - ] + wheel_dir = tempfile.mkdtemp(prefix="scancode-release-wheels-local-") + cli_args = ( + [ + "pip", + "wheel", + "--wheel-dir", + wheel_dir, + ] + + deps + + verbose + + [requirements_specifier] + ) - print(f'Building local wheels for: {requirements_specifier}') - print(f'Using command:', ' '.join(cli_args)) + print(f"Building local wheels for: {requirements_specifier}") + print(f"Using command:", " ".join(cli_args)) call(cli_args) built = os.listdir(wheel_dir) @@ -2826,9 +2941,9 @@ def build_wheels_locally_if_pure_python( all_pure = all(is_pure_wheel(bwfn) for bwfn in built) if not all_pure: - print(f' Some wheels are not pure') + print(f" Some wheels are not pure") - print(f' Copying local wheels') + print(f" Copying local wheels") pure_built = [] for bwfn in built: owfn = os.path.join(dest_dir, bwfn) @@ -2836,7 +2951,7 @@ def build_wheels_locally_if_pure_python( nwfn = os.path.join(wheel_dir, bwfn) fileutils.copyfile(nwfn, owfn) pure_built.append(bwfn) - print(f' Built local wheel: {bwfn}') + print(f" Built local wheel: {bwfn}") return all_pure, pure_built @@ -2848,17 +2963,12 @@ def optimize_wheel(wheel_filename, dest_dir=THIRDPARTY_DIR): name of the new wheel if renamed or the existing new name otherwise. """ if is_pure_wheel(wheel_filename): - print(f'Pure wheel: {wheel_filename}, nothing to do.') + print(f"Pure wheel: {wheel_filename}, nothing to do.") return wheel_filename original_wheel_loc = os.path.join(dest_dir, wheel_filename) - wheel_dir = tempfile.mkdtemp(prefix='scancode-release-wheels-') - awargs = [ - 'auditwheel', - 'addtag', - '--wheel-dir', wheel_dir, - original_wheel_loc - ] + wheel_dir = tempfile.mkdtemp(prefix="scancode-release-wheels-") + awargs = ["auditwheel", "addtag", "--wheel-dir", wheel_dir, original_wheel_loc] call(awargs) audited = os.listdir(wheel_dir) @@ -2882,7 +2992,7 @@ def optimize_wheel(wheel_filename, dest_dir=THIRDPARTY_DIR): non_pypi_plats = utils_pypi_supported_tags.validate_platforms_for_pypi(new_wheel.platforms) new_wheel.platforms = [p for p in new_wheel.platforms if p not in non_pypi_plats] if not new_wheel.platforms: - print(f'Cannot make wheel PyPI compatible: {original_wheel_loc}') + print(f"Cannot make wheel PyPI compatible: {original_wheel_loc}") os.rename(new_wheel_loc, original_wheel_loc) return wheel_filename @@ -2892,18 +3002,20 @@ def optimize_wheel(wheel_filename, dest_dir=THIRDPARTY_DIR): return new_wheel_cleaned_filename -def extract_tar(location, dest_dir=THIRDPARTY_DIR,): +def extract_tar( + location, + dest_dir=THIRDPARTY_DIR, +): """ Extract a tar archive at `location` in the `dest_dir` directory. Return a list of extracted locations (either directories or files). """ - with open(location, 'rb') as fi: + with open(location, "rb") as fi: with tarfile.open(fileobj=fi) as tar: members = list(tar.getmembers()) tar.extractall(dest_dir, members=members) - return [os.path.basename(ti.name) for ti in members - if ti.type == tarfile.REGTYPE] + return [os.path.basename(ti.name) for ti in members if ti.type == tarfile.REGTYPE] def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): @@ -2918,25 +3030,23 @@ def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): wheel_filename = None remote_package = get_remote_package(name=name, version=version) if remote_package: - wheel_filename = remote_package.fetch_wheel( - environment=environment, dest_dir=dest_dir) + wheel_filename = remote_package.fetch_wheel(environment=environment, dest_dir=dest_dir) if wheel_filename: return wheel_filename pypi_package = get_pypi_package(name=name, version=version) if pypi_package: - wheel_filename = pypi_package.fetch_wheel( - environment=environment, dest_dir=dest_dir) + wheel_filename = pypi_package.fetch_wheel(environment=environment, dest_dir=dest_dir) return wheel_filename def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f'about check {dest_dir}'.split()) + subprocess.check_output(f"about check {dest_dir}".split()) except subprocess.CalledProcessError as cpe: print() - print('Invalid ABOUT files:') - print(cpe.output.decode('utf-8', errors='replace')) + print("Invalid ABOUT files:") + print(cpe.output.decode("utf-8", errors="replace")) def find_problems( @@ -2952,31 +3062,33 @@ def find_problems( for package in local_packages: if report_missing_sources and not package.sdist: - print(f'{package.name}=={package.version}: Missing source distribution.') + print(f"{package.name}=={package.version}: Missing source distribution.") if report_missing_wheels and not package.wheels: - print(f'{package.name}=={package.version}: Missing wheels.') + print(f"{package.name}=={package.version}: Missing wheels.") for dist in package.get_distributions(): dist.load_about_data(dest_dir=dest_dir) abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename)) if not dist.has_key_metadata(): - print(f' Missing key ABOUT data in file://{abpth}') - if 'classifiers' in dist.extra_data: - print(f' Dangling classifiers data in file://{abpth}') + print(f" Missing key ABOUT data in file://{abpth}") + if "classifiers" in dist.extra_data: + print(f" Dangling classifiers data in file://{abpth}") if not dist.validate_checksums(dest_dir): - print(f' Invalid checksums in file://{abpth}') + print(f" Invalid checksums in file://{abpth}") if not dist.sha1 and dist.md5: - print(f' Missing checksums in file://{abpth}') + print(f" Missing checksums in file://{abpth}") check_about(dest_dir=dest_dir) + def compute_normalized_license_expression(declared_licenses): if not declared_licenses: return try: from packagedcode import pypi + return pypi.compute_normalized_license(declared_licenses) except ImportError: # Scancode is not installed, clean and join all the licenses lics = [python_safe_name(l).lower() for l in declared_licenses] - return ' AND '.join(lics).lower() + return " AND ".join(lics).lower() From 31ed4461437bfb5df3a4c4eef9e559de8d7a07e0 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 29 Oct 2021 18:39:18 +0200 Subject: [PATCH 082/247] Drop Ubuntu 16 add Python 3.10 Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 22c12c4..b788ecb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,19 +7,11 @@ jobs: - - template: etc/ci/azure-posix.yml - parameters: - job_name: ubuntu16_cpython - image_name: ubuntu-16.04 - python_versions: ['3.6', '3.7', '3.8', '3.9'] - test_suites: - all: venv/bin/pytest -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu18_cpython image_name: ubuntu-18.04 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +19,7 @@ jobs: parameters: job_name: ubuntu20_cpython image_name: ubuntu-20.04 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +27,7 @@ jobs: parameters: job_name: macos1014_cpython image_name: macos-10.14 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +35,7 @@ jobs: parameters: job_name: macos1015_cpython image_name: macos-10.15 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,7 +43,7 @@ jobs: parameters: job_name: win2016_cpython image_name: vs2017-win2016 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -59,6 +51,6 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.6', '3.7', '3.8', '3.9'] + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From 2ce7c7a1f1d4028d163de3a07a61b7c1febb9ae1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 29 Oct 2021 19:14:08 +0200 Subject: [PATCH 083/247] Disable Python 3.10 tests on macOS 10.14 Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b788ecb..7cd3025 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -27,7 +27,7 @@ jobs: parameters: job_name: macos1014_cpython image_name: macos-10.14 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.6', '3.7', '3.8', '3.9'] test_suites: all: venv/bin/pytest -n 2 -vvs From 2cc2c5a87dec0aa42e25c56f6110d461c44fb350 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Wed, 10 Nov 2021 15:14:18 +0800 Subject: [PATCH 084/247] Add code to remove the symlink before creating * It will prompts "Cannot create a file when that file already exists." if the symlink already exist. Signed-off-by: Chin Yeung Li --- configure.bat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.bat b/configure.bat index 46ed4b3..4dfb201 100644 --- a/configure.bat +++ b/configure.bat @@ -160,6 +160,9 @@ if %ERRORLEVEL% neq 0 ( %CFG_REQUIREMENTS% @rem # Create junction to bin to have the same directory between linux and windows +if exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" ( + rmdir /s /q "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" +) mklink /J %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts if %ERRORLEVEL% neq 0 ( From 6b2320aa10e79acdf92d5646ca6aec40725061cb Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 26 Nov 2021 16:44:03 +0100 Subject: [PATCH 085/247] Improve handling licenses without scancode Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index e2778fe..c48484e 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -3089,6 +3089,5 @@ def compute_normalized_license_expression(declared_licenses): return pypi.compute_normalized_license(declared_licenses) except ImportError: - # Scancode is not installed, clean and join all the licenses - lics = [python_safe_name(l).lower() for l in declared_licenses] - return " AND ".join(lics).lower() + # Scancode is not installed, we join all license strings and return it + return " ".join(declared_licenses).lower() From 6ccff2b1312aa1246d0f27f6b36795b257d59813 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 26 Nov 2021 19:08:47 +0100 Subject: [PATCH 086/247] Add support for deb and rpm containers Signed-off-by: Philippe Ombredanne --- etc/ci/azure-container-deb.yml | 50 ++++++ etc/ci/azure-container-rpm.yml | 51 ++++++ etc/ci/azure-posix.yml | 1 + etc/ci/install_sudo.sh | 15 ++ etc/ci/macports-ci | 304 +++++++++++++++++++++++++++++++++ etc/ci/macports-ci.ABOUT | 16 ++ etc/ci/mit.LICENSE | 5 + 7 files changed, 442 insertions(+) create mode 100644 etc/ci/azure-container-deb.yml create mode 100644 etc/ci/azure-container-rpm.yml create mode 100644 etc/ci/install_sudo.sh create mode 100644 etc/ci/macports-ci create mode 100644 etc/ci/macports-ci.ABOUT create mode 100644 etc/ci/mit.LICENSE diff --git a/etc/ci/azure-container-deb.yml b/etc/ci/azure-container-deb.yml new file mode 100644 index 0000000..85b611d --- /dev/null +++ b/etc/ci/azure-container-deb.yml @@ -0,0 +1,50 @@ +parameters: + job_name: '' + container: '' + python_path: '' + python_version: '' + package_manager: apt-get + install_python: '' + install_packages: | + set -e -x + sudo apt-get -y update + sudo apt-get -y install \ + build-essential \ + xz-utils zlib1g bzip2 libbz2-1.0 tar \ + sqlite3 libxml2-dev libxslt1-dev \ + software-properties-common openssl + test_suite: '' + test_suite_label: '' + + +jobs: + - job: ${{ parameters.job_name }} + + pool: + vmImage: 'ubuntu-16.04' + + container: + image: ${{ parameters.container }} + options: '--name ${{ parameters.job_name }} -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -v /usr/bin/docker:/tmp/docker:ro' + + steps: + - checkout: self + fetchDepth: 10 + + - script: /tmp/docker exec -t -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -u 0 ${{ parameters.job_name }} $(Build.SourcesDirectory)/etc/ci/install_sudo.sh ${{ parameters.package_manager }} + displayName: Install sudo + + - script: ${{ parameters.install_packages }} + displayName: Install required packages + + - script: ${{ parameters.install_python }} + displayName: 'Install Python ${{ parameters.python_version }}' + + - script: ${{ parameters.python_path }} --version + displayName: 'Show Python version' + + - script: PYTHON_EXE=${{ parameters.python_path }} ./configure --dev + displayName: 'Run Configure' + + - script: ${{ parameters.test_suite }} + displayName: 'Run ${{ parameters.test_suite_label }} tests with py${{ parameters.python_version }} on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-container-rpm.yml b/etc/ci/azure-container-rpm.yml new file mode 100644 index 0000000..1e6657d --- /dev/null +++ b/etc/ci/azure-container-rpm.yml @@ -0,0 +1,51 @@ +parameters: + job_name: '' + image_name: 'ubuntu-16.04' + container: '' + python_path: '' + python_version: '' + package_manager: yum + install_python: '' + install_packages: | + set -e -x + sudo yum groupinstall -y "Development Tools" + sudo yum install -y \ + openssl openssl-devel \ + sqlite-devel zlib-devel xz-devel bzip2-devel \ + bzip2 tar unzip zip \ + libxml2-devel libxslt-devel + test_suite: '' + test_suite_label: '' + + +jobs: + - job: ${{ parameters.job_name }} + + pool: + vmImage: ${{ parameters.image_name }} + + container: + image: ${{ parameters.container }} + options: '--name ${{ parameters.job_name }} -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -v /usr/bin/docker:/tmp/docker:ro' + + steps: + - checkout: self + fetchDepth: 10 + + - script: /tmp/docker exec -t -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -u 0 ${{ parameters.job_name }} $(Build.SourcesDirectory)/etc/ci/install_sudo.sh ${{ parameters.package_manager }} + displayName: Install sudo + + - script: ${{ parameters.install_packages }} + displayName: Install required packages + + - script: ${{ parameters.install_python }} + displayName: 'Install Python ${{ parameters.python_version }}' + + - script: ${{ parameters.python_path }} --version + displayName: 'Show Python version' + + - script: PYTHON_EXE=${{ parameters.python_path }} ./configure --dev + displayName: 'Run Configure' + + - script: ${{ parameters.test_suite }} + displayName: 'Run ${{ parameters.test_suite_label }} tests with py${{ parameters.python_version }} on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-posix.yml b/etc/ci/azure-posix.yml index 0921d9b..7a9acff 100644 --- a/etc/ci/azure-posix.yml +++ b/etc/ci/azure-posix.yml @@ -31,6 +31,7 @@ jobs: displayName: 'Install Python $(python_version)' - script: | + python --version python3 --version python$(python_version) --version echo "python$(python_version)" > PYTHON_EXECUTABLE diff --git a/etc/ci/install_sudo.sh b/etc/ci/install_sudo.sh new file mode 100644 index 0000000..77f4210 --- /dev/null +++ b/etc/ci/install_sudo.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + + +if [[ "$1" == "apt-get" ]]; then + apt-get update -y + apt-get -o DPkg::Options::="--force-confold" install -y sudo + +elif [[ "$1" == "yum" ]]; then + yum install -y sudo + +elif [[ "$1" == "dnf" ]]; then + dnf install -y sudo + +fi diff --git a/etc/ci/macports-ci b/etc/ci/macports-ci new file mode 100644 index 0000000..ac474e4 --- /dev/null +++ b/etc/ci/macports-ci @@ -0,0 +1,304 @@ +#! /bin/bash + +# Copyright (c) 2019 Giovanni Bussi + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +export COLUMNS=80 + +if [ "$GITHUB_ACTIONS" = true ] ; then + echo "COLUMNS=$COLUMNS" >> "$GITHUB_ENV" +fi + +# file to be source at the end of subshell: +export MACPORTS_CI_SOURCEME="$(mktemp)" + +( +# start subshell +# this allows to use the script in two ways: +# 1. as ./macports-ci +# 2. as source ./macports-ci +# as of now, choice 2 only changes the env var COLUMNS. + +MACPORTS_VERSION=2.6.4 +MACPORTS_PREFIX=/opt/local +MACPORTS_SYNC=tarball + +action=$1 +shift + +case "$action" in +(install) + +echo "macports-ci: install" + +KEEP_BREW=yes + +for opt +do + case "$opt" in + (--source) SOURCE=yes ;; + (--binary) SOURCE=no ;; + (--keep-brew) KEEP_BREW=yes ;; + (--remove-brew) KEEP_BREW=no ;; + (--version=*) MACPORTS_VERSION="${opt#--version=}" ;; + (--prefix=*) MACPORTS_PREFIX="${opt#--prefix=}" ;; + (--sync=*) MACPORTS_SYNC="${opt#--sync=}" ;; + (*) echo "macports-ci: unknown option $opt" + exit 1 ;; + esac +done + +if test "$KEEP_BREW" = no ; then + echo "macports-ci: removing homebrew" + pushd "$(mktemp -d)" + curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall > uninstall + chmod +x uninstall + ./uninstall --force + popd +else + echo "macports-ci: keeping HomeBrew" +fi + +echo "macports-ci: prefix=$MACPORTS_PREFIX" + +if test "$MACPORTS_PREFIX" != /opt/local ; then + echo "macports-ci: Installing on non standard prefix $MACPORTS_PREFIX can be only made from sources" + SOURCE=yes +fi + +if test "$SOURCE" = yes ; then + echo "macports-ci: Installing from source" +else + echo "macports-ci: Installing from binary" +fi + +echo "macports-ci: Sync mode=$MACPORTS_SYNC" + +pushd "$(mktemp -d)" + +OSX_VERSION="$(sw_vers -productVersion | grep -o '^[0-9][0-9]*\.[0-9][0-9]*')" + +if test "$OSX_VERSION" == 10.10 ; then + OSX_NAME=Yosemite +elif test "$OSX_VERSION" == 10.11 ; then + OSX_NAME=ElCapitan +elif test "$OSX_VERSION" == 10.12 ; then + OSX_NAME=Sierra +elif test "$OSX_VERSION" == 10.13 ; then + OSX_NAME=HighSierra +elif test "$OSX_VERSION" == 10.14 ; then + OSX_NAME=Mojave +elif test "$OSX_VERSION" == 10.15 ; then + OSX_NAME=Catalina +else + echo "macports-ci: Unknown OSX version $OSX_VERSION" + exit 1 +fi + +echo "macports-ci: OSX version $OSX_VERSION $OSX_NAME" + +MACPORTS_PKG=MacPorts-${MACPORTS_VERSION}-${OSX_VERSION}-${OSX_NAME}.pkg + +# this is a workaround needed because binary installer MacPorts-2.6.3-10.12-Sierra.pkg is broken +if [ "$SOURCE" != yes ] && [ "$MACPORTS_PKG" = "MacPorts-2.6.3-10.12-Sierra.pkg" ] ; then + echo "macports-ci: WARNING $MACPORTS_PKG installer is broken" + echo "macports-ci: reverting to 2.6.2 installer followed by selfupdate" + MACPORTS_VERSION=2.6.2 + MACPORTS_PKG=MacPorts-${MACPORTS_VERSION}-${OSX_VERSION}-${OSX_NAME}.pkg +fi + +URL="https://distfiles.macports.org/MacPorts" +URL="https://github.com/macports/macports-base/releases/download/v$MACPORTS_VERSION/" + +echo "macports-ci: Base URL is $URL" + +if test "$SOURCE" = yes ; then +# download source: + curl -LO $URL/MacPorts-${MACPORTS_VERSION}.tar.bz2 + tar xjf MacPorts-${MACPORTS_VERSION}.tar.bz2 + cd MacPorts-${MACPORTS_VERSION} +# install + ./configure --prefix="$MACPORTS_PREFIX" --with-applications-dir="$MACPORTS_PREFIX/Applications" >/dev/null && + sudo make install >/dev/null +else + +# download installer: + curl -LO $URL/$MACPORTS_PKG +# install: + sudo installer -verbose -pkg $MACPORTS_PKG -target / +fi + +# update: +export PATH="$MACPORTS_PREFIX/bin:$PATH" + +echo "PATH=\"$MACPORTS_PREFIX/bin:\$PATH\"" > "$MACPORTS_CI_SOURCEME" + +if [ "$GITHUB_ACTIONS" = true ] ; then + echo "$MACPORTS_PREFIX/bin" >> "$GITHUB_PATH" +fi + + +SOURCES="${MACPORTS_PREFIX}"/etc/macports/sources.conf + +case "$MACPORTS_SYNC" in +(rsync) + echo "macports-ci: Using rsync" + ;; +(github) + echo "macports-ci: Using github" + pushd "$MACPORTS_PREFIX"/var/macports/sources + sudo mkdir -p github.com/macports/macports-ports/ + sudo chown -R $USER:admin github.com + git clone https://github.com/macports/macports-ports.git github.com/macports/macports-ports/ + awk '{if($NF=="[default]") print "file:///opt/local/var/macports/sources/github.com/macports/macports-ports/"; else print}' "$SOURCES" > $HOME/$$.tmp + sudo mv -f $HOME/$$.tmp "$SOURCES" + popd + ;; +(tarball) + echo "macports-ci: Using tarball" + awk '{if($NF=="[default]") print "https://distfiles.macports.org/ports.tar.gz [default]"; else print}' "$SOURCES" > $$.tmp + sudo mv -f $$.tmp "$SOURCES" + ;; +(*) + echo "macports-ci: Unknown sync mode $MACPORTS_SYNC" + ;; +esac + +i=1 +# run through a while to retry upon failure +while true +do + echo "macports-ci: Trying to selfupdate (iteration $i)" +# here I test for the presence of a known portfile +# this check confirms that ports were installed +# notice that port -N selfupdate && break is not sufficient as a test +# (sometime it returns a success even though ports have not been installed) +# for some misterious reasons, running without "-d" does not work in some case + sudo port -d -N selfupdate 2>&1 | grep -v DEBUG | awk '{if($1!="x")print}' + port info xdrfile > /dev/null && break || true + sleep 5 + i=$((i+1)) + if ((i>20)) ; then + echo "macports-ci: Failed after $i iterations" + exit 1 + fi +done + +echo "macports-ci: Selfupdate successful after $i iterations" + +dir="$PWD" +popd +sudo rm -fr $dir + +;; + +(localports) + +echo "macports-ci: localports" + +for opt +do + case "$opt" in + (*) ports="$opt" ;; + esac +done + +if ! test -d "$ports" ; then + echo "macports-ci: Please provide a port directory" + exit 1 +fi + +w=$(which port) + +MACPORTS_PREFIX="${w%/bin/port}" + +cd "$ports" + +ports="$(pwd)" + +echo "macports-ci: Portdir fullpath: $ports" +SOURCES="${MACPORTS_PREFIX}"/etc/macports/sources.conf + +awk -v repo="file://$ports" '{if($NF=="[default]") print repo; print}' "$SOURCES" > $$.tmp +sudo mv -f $$.tmp "$SOURCES" + +portindex + +;; + +(ccache) +w=$(which port) +MACPORTS_PREFIX="${w%/bin/port}" + +echo "macports-ci: ccache" + +ccache_do=install + +for opt +do + case "$opt" in + (--save) ccache_do=save ;; + (--install) ccache_do=install ;; + (*) echo "macports-ci: ccache: unknown option $opt" + exit 1 ;; + esac +done + + +case "$ccache_do" in +(install) +# first install ccache +sudo port -N install ccache +# then tell macports to use it +CONF="${MACPORTS_PREFIX}"/etc/macports/macports.conf +awk '{if(match($0,"configureccache")) print "configureccache yes" ; else print }' "$CONF" > $$.tmp +sudo mv -f $$.tmp "$CONF" + +# notice that cache size is set to 512Mb, same as it is set by Travis-CI on linux +# might be changed in the future +test -f "$HOME"/.macports-ci-ccache/ccache.conf && + sudo rm -fr "$MACPORTS_PREFIX"/var/macports/build/.ccache && + sudo mkdir -p "$MACPORTS_PREFIX"/var/macports/build/.ccache && + sudo cp -a "$HOME"/.macports-ci-ccache/* "$MACPORTS_PREFIX"/var/macports/build/.ccache/ && + sudo echo "max_size = 512M" > "$MACPORTS_PREFIX"/var/macports/build/.ccache/ccache.conf && + sudo chown -R macports:admin "$MACPORTS_PREFIX"/var/macports/build/.ccache + +;; +(save) + +sudo rm -fr "$HOME"/.macports-ci-ccache +sudo mkdir -p "$HOME"/.macports-ci-ccache +sudo cp -a "$MACPORTS_PREFIX"/var/macports/build/.ccache/* "$HOME"/.macports-ci-ccache/ + +esac + +CCACHE_DIR="$MACPORTS_PREFIX"/var/macports/build/.ccache/ ccache -s + +;; + +(*) +echo "macports-ci: unknown action $action" + +esac + +) + +# allows setting env var if necessary: +source "$MACPORTS_CI_SOURCEME" diff --git a/etc/ci/macports-ci.ABOUT b/etc/ci/macports-ci.ABOUT new file mode 100644 index 0000000..60a11f8 --- /dev/null +++ b/etc/ci/macports-ci.ABOUT @@ -0,0 +1,16 @@ +about_resource: macports-ci +name: macports-ci +version: c9676e67351a3a519e37437e196cd0ee9c2180b8 +download_url: https://raw.githubusercontent.com/GiovanniBussi/macports-ci/c9676e67351a3a519e37437e196cd0ee9c2180b8/macports-ci +description: Simplify MacPorts setup on Travis-CI +homepage_url: https://github.com/GiovanniBussi/macports-ci +license_expression: mit +copyright: Copyright (c) Giovanni Bussi +attribute: yes +checksum_md5: 5d31d479132502f80acdaed78bed9e23 +checksum_sha1: 74b15643bd1a528d91b4a7c2169c6fc656f549c2 +package_url: pkg:github/giovannibussi/macports-ci@c9676e67351a3a519e37437e196cd0ee9c2180b8#macports-ci +licenses: + - key: mit + name: MIT License + file: mit.LICENSE diff --git a/etc/ci/mit.LICENSE b/etc/ci/mit.LICENSE new file mode 100644 index 0000000..e662c78 --- /dev/null +++ b/etc/ci/mit.LICENSE @@ -0,0 +1,5 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From 6962f8bbe9c40e8dcacab0ab3325c0bc882e9a4a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 26 Nov 2021 19:09:35 +0100 Subject: [PATCH 087/247] Support licenses when ScanCode is not installed Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index c48484e..e2778fe 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -3089,5 +3089,6 @@ def compute_normalized_license_expression(declared_licenses): return pypi.compute_normalized_license(declared_licenses) except ImportError: - # Scancode is not installed, we join all license strings and return it - return " ".join(declared_licenses).lower() + # Scancode is not installed, clean and join all the licenses + lics = [python_safe_name(l).lower() for l in declared_licenses] + return " AND ".join(lics).lower() From 2f77f979c9b83e5365350405c1c60fe08cb75c10 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 12 Jan 2022 09:20:40 +0100 Subject: [PATCH 088/247] Improve wheel build Allow to launch builds and then fetch built wheels later Improve support for newer Pythons and OS versions. Signed-off-by: Philippe Ombredanne --- etc/scripts/build_wheels.py | 12 ++ etc/scripts/fetch_built_wheels.py | 33 ++++ etc/scripts/fix_thirdparty.py | 15 +- .../test_utils_pip_compatibility_tags.py | 6 +- etc/scripts/utils_thirdparty.py | 181 ++++++++++++++---- 5 files changed, 204 insertions(+), 43 deletions(-) create mode 100644 etc/scripts/fetch_built_wheels.py diff --git a/etc/scripts/build_wheels.py b/etc/scripts/build_wheels.py index 5a39c78..8a28176 100644 --- a/etc/scripts/build_wheels.py +++ b/etc/scripts/build_wheels.py @@ -69,6 +69,16 @@ is_flag=True, help="Also include all dependent wheels.", ) +@click.option( + "--remote-build-log-file", + type=click.Path(writable=True), + default=None, + metavar="LOG-FILE", + help="Path to an optional log file where to list remote builds download URLs. " + "If provided, do not wait for remote builds to complete (and therefore, " + "do not download them either). Instead create a JSON lines log file with " + "one entry for each build suitable to fetch the artifacts at a later time.", +) @click.option( "--verbose", is_flag=True, @@ -83,6 +93,7 @@ def build_wheels( operating_system, with_deps, build_remotely, + remote_build_log_file, verbose, ): """ @@ -102,6 +113,7 @@ def build_wheels( build_remotely=build_remotely, with_deps=with_deps, verbose=verbose, + remote_build_log_file=remote_build_log_file, ) diff --git a/etc/scripts/fetch_built_wheels.py b/etc/scripts/fetch_built_wheels.py new file mode 100644 index 0000000..4fea16c --- /dev/null +++ b/etc/scripts/fetch_built_wheels.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/skeleton for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# +import click + +import utils_thirdparty + + +@click.command() +@click.option( + "-d", + "--thirdparty-dir", + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + required=True, + help="Path to the thirdparty directory to check.", +) +@click.help_option("-h", "--help") +def check_thirdparty_dir(thirdparty_dir): + """ + Check a thirdparty directory for problems. + """ + utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + + +if __name__ == "__main__": + check_thirdparty_dir() diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py index 9b1cbc4..c14b7d5 100644 --- a/etc/scripts/fix_thirdparty.py +++ b/etc/scripts/fix_thirdparty.py @@ -31,11 +31,22 @@ is_flag=True, help="Build missing wheels remotely.", ) +@click.option( + "--remote-build-log-file", + type=click.Path(writable=True), + default=None, + metavar="LOG-FILE", + help="Path to an optional log file where to list remote builds download URLs. " + "If provided, do not wait for remote builds to complete (and therefore, " + "do not download them either). Instead create a JSON lines log file with " + "one entry for each build suitable to fetch the artifacts at a later time.", +) @click.help_option("-h", "--help") def fix_thirdparty_dir( thirdparty_dir, build_wheels, build_remotely, + remote_build_log_file, ): """ Fix a thirdparty directory of dependent package wheels and sdist. @@ -58,11 +69,13 @@ def fix_thirdparty_dir( package_envts_not_built = [] if build_wheels: print("***BUILD*** MISSING WHEELS") - package_envts_not_built, _wheel_filenames_built = utils_thirdparty.build_missing_wheels( + results = utils_thirdparty.build_missing_wheels( packages_and_envts=package_envts_not_fetched, build_remotely=build_remotely, + remote_build_log_file=remote_build_log_file, dest_dir=thirdparty_dir, ) + package_envts_not_built, _wheel_filenames_built = results print("***ADD*** ABOUT AND LICENSES") utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index 722fa70..98187c5 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -47,7 +47,7 @@ ], ) def test_version_info_to_nodot(version_info, expected): - actual = pip_compatibility_tags.version_info_to_nodot(version_info) + actual = utils_pip_compatibility_tags.version_info_to_nodot(version_info) assert actual == expected @@ -95,7 +95,7 @@ def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): Specifying manylinux2010 implies manylinux1. """ groups = {} - supported = pip_compatibility_tags.get_supported(platforms=[manylinux2010]) + supported = utils_pip_compatibility_tags.get_supported(platforms=[manylinux2010]) for tag in supported: groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform) @@ -118,7 +118,7 @@ def test_manylinuxA_implies_manylinuxB(self, manylinuxA, manylinuxB): Specifying manylinux2014 implies manylinux2010/manylinux1. """ groups = {} - supported = pip_compatibility_tags.get_supported(platforms=[manylinuxA]) + supported = utils_pip_compatibility_tags.get_supported(platforms=[manylinuxA]) for tag in supported: groups.setdefault((tag.interpreter, tag.abi), []).append(tag.platform) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index e2778fe..d25f0c2 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -89,21 +89,39 @@ # Supported environments PYTHON_VERSIONS = "36", "37", "38", "39", "310" +PYTHON_DOT_VERSIONS_BY_VER = { + "36": "3.6", + "37": "3.7", + "38": "3.8", + "39": "3.9", + "310": "3.10", +} + +def get_python_dot_version(version): + """ + Return a dot version from a plain, non-dot version. + """ + return PYTHON_DOT_VERSIONS_BY_VER[version] + ABIS_BY_PYTHON_VERSION = { "36": ["cp36", "cp36m"], "37": ["cp37", "cp37m"], "38": ["cp38", "cp38m"], "39": ["cp39", "cp39m"], "310": ["cp310", "cp310m"], + "36": ["cp36", "abi3"], + "37": ["cp37", "abi3"], + "38": ["cp38", "abi3"], + "39": ["cp39", "abi3"], + "310": ["cp310", "abi3"], } PLATFORMS_BY_OS = { "linux": [ "linux_x86_64", "manylinux1_x86_64", - "manylinux2014_x86_64", "manylinux2010_x86_64", - "manylinux_2_12_x86_64", + "manylinux2014_x86_64", ], "macos": [ "macosx_10_6_intel", @@ -122,8 +140,8 @@ "macosx_10_14_x86_64", "macosx_10_15_intel", "macosx_10_15_x86_64", - "macosx_10_15_x86_64", "macosx_11_0_x86_64", + "macosx_11_intel", # 'macosx_11_0_arm64', ], "windows": [ @@ -157,6 +175,10 @@ LICENSING = license_expression.Licensing() +# time to wait build for in seconds, as a string +# 0 measn no wait +DEFAULT_ROMP_BUILD_WAIT = "5" + ################################################################################ # # Fetch remote wheels and sources locally @@ -1478,7 +1500,8 @@ def fetch_wheel( else: fetched_filenames = set() - for wheel in self.get_supported_wheels(environment): + supported_wheels = list(self.get_supported_wheels(environment)) + for wheel in supported_wheels: if wheel.filename not in fetched_filenames: fetch_and_save_path_or_url( @@ -2212,6 +2235,7 @@ def build_missing_wheels( build_remotely=False, with_deps=False, dest_dir=THIRDPARTY_DIR, + remote_build_log_file=None, ): """ Build all wheels in a list of tuple (Package, Environment) and save in @@ -2237,8 +2261,9 @@ def build_missing_wheels( build_remotely=build_remotely, python_versions=python_versions, operating_systems=operating_systems, - verbose=False, + verbose=TRACE, dest_dir=dest_dir, + remote_build_log_file=remote_build_log_file, ) print(".") except Exception as e: @@ -2642,26 +2667,32 @@ def get_other_dists(_package, _dist): ################################################################################ -def call(args): +def call(args, verbose=TRACE): """ - Call args in a subprocess and display output on the fly. + Call args in a subprocess and display output on the fly if ``trace`` is True. Return or raise stdout, stderr, returncode """ if TRACE: print("Calling:", " ".join(args)) with subprocess.Popen( - args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="utf-8" + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: + stdouts = [] while True: line = process.stdout.readline() if not line and process.poll() is not None: break - if TRACE: + stdouts.append(line) + if verbose: print(line.rstrip(), flush=True) stdout, stderr = process.communicate() + if not stdout.strip(): + stdout = "\n".join(stdouts) + returncode = process.returncode + if returncode == 0: return returncode, stdout, stderr else: @@ -2676,7 +2707,8 @@ def add_or_upgrade_built_wheels( dest_dir=THIRDPARTY_DIR, build_remotely=False, with_deps=False, - verbose=False, + verbose=TRACE, + remote_build_log_file=None, ): """ Add or update package `name` and `version` as a binary wheel saved in @@ -2689,11 +2721,17 @@ def add_or_upgrade_built_wheels( Include wheels for all dependencies if `with_deps` is True. Build remotely is `build_remotely` is True. + Do not wait for build completion and log to ``remote_build_log_file`` + file path if provided. """ assert name, "Name is required" ver = version and f"=={version}" or "" print(f"\nAdding wheels for package: {name}{ver}") + if verbose: + print("python_versions:", python_versions) + print("operating_systems:", operating_systems) + wheel_filenames = [] # a mapping of {req specifier: {mapping build_wheels kwargs}} wheels_to_build = {} @@ -2725,6 +2763,8 @@ def add_or_upgrade_built_wheels( wheel_filename = fetch_package_wheel( name=name, version=version, environment=environment, dest_dir=dest_dir ) + if verbose: + print(" fetching package wheel:", wheel_filename) if wheel_filename: wheel_filenames.append(wheel_filename) @@ -2744,6 +2784,7 @@ def add_or_upgrade_built_wheels( build_remotely=build_remotely, with_deps=with_deps, verbose=verbose, + remote_build_log_file=remote_build_log_file, ) for build_wheels_kwargs in wheels_to_build.values(): @@ -2761,6 +2802,7 @@ def build_wheels( build_remotely=False, with_deps=False, verbose=False, + remote_build_log_file=None, ): """ Given a pip `requirements_specifier` string (such as package names or as @@ -2772,6 +2814,9 @@ def build_wheels( First try to build locally to process pure Python wheels, and fall back to build remotey on all requested Pythons and operating systems. + + Do not wait for build completion and log to ``remote_build_log_file`` + file path if provided. """ all_pure, builds = build_wheels_locally_if_pure_python( requirements_specifier=requirements_specifier, @@ -2793,6 +2838,7 @@ def build_wheels( operating_systems=operating_systems, verbose=verbose, dest_dir=dest_dir, + remote_build_log_file=remote_build_log_file, ) builds.extend(remote_builds) @@ -2806,6 +2852,7 @@ def build_wheels_remotely_on_multiple_platforms( operating_systems=PLATFORMS_BY_OS, verbose=False, dest_dir=THIRDPARTY_DIR, + remote_build_log_file=None, ): """ Given pip `requirements_specifier` string (such as package names or as @@ -2813,35 +2860,43 @@ def build_wheels_remotely_on_multiple_platforms( all dependencies for all `python_versions` and `operating_systems` combinations and save them back in `dest_dir` and return a list of built wheel file names. + + Do not wait for build completion and log to ``remote_build_log_file`` + file path if provided. """ check_romp_is_configured() pyos_options = get_romp_pyos_options(python_versions, operating_systems) deps = "" if with_deps else "--no-deps" verbose = "--verbose" if verbose else "" - romp_args = ( - [ - "romp", - "--interpreter", - "cpython", - "--architecture", - "x86_64", - "--check-period", - "5", # in seconds - ] - + pyos_options - + [ - "--artifact-paths", - "*.whl", - "--artifact", - "artifacts.tar.gz", - "--command", - # create a virtualenv, upgrade pip - # f'python -m ensurepip --user --upgrade; ' - f"python -m pip {verbose} install --user --upgrade pip setuptools wheel; " - f"python -m pip {verbose} wheel {deps} {requirements_specifier}", - ] - ) + if remote_build_log_file: + # zero seconds, no wait, log to file instead + wait_build_for = "0" + else: + wait_build_for = DEFAULT_ROMP_BUILD_WAIT + + romp_args = [ + "romp", + "--interpreter", + "cpython", + "--architecture", + "x86_64", + "--check-period", + wait_build_for, # in seconds + ] + + if remote_build_log_file: + romp_args += ["--build-log-file", remote_build_log_file] + + romp_args += pyos_options + [ + "--artifact-paths", + "*.whl", + "--artifact", + "artifacts.tar.gz", + "--command", + f"python -m pip {verbose} install --user --upgrade pip setuptools wheel; " + f"python -m pip {verbose} wheel {deps} {requirements_specifier}", + ] if verbose: romp_args.append("--verbose") @@ -2849,10 +2904,54 @@ def build_wheels_remotely_on_multiple_platforms( print(f"Building wheels for: {requirements_specifier}") print(f"Using command:", " ".join(romp_args)) call(romp_args) + wheel_filenames = [] + if not remote_build_log_file: + wheel_filenames = extract_tar("artifacts.tar.gz", dest_dir) + for wfn in wheel_filenames: + print(f" built wheel: {wfn}") + return wheel_filenames + + +def fetch_remotely_built_wheels( + remote_build_log_file, + dest_dir=THIRDPARTY_DIR, + no_wait=False, + verbose=False, +): + """ + Given a ``remote_build_log_file`` file path with a JSON lines log of a + remote build, fetch the built wheels and move them to ``dest_dir``. Return a + list of built wheel file names. + """ + wait = "0" if no_wait else DEFAULT_ROMP_BUILD_WAIT # in seconds + + romp_args = [ + "romp-fetch", + "--build-log-file", + remote_build_log_file, + "--check-period", + wait, + ] - wheel_filenames = extract_tar("artifacts.tar.gz", dest_dir) - for wfn in wheel_filenames: - print(f" built wheel: {wfn}") + if verbose: + romp_args.append("--verbose") + + print(f"Fetching built wheels from log file: {remote_build_log_file}") + print(f"Using command:", " ".join(romp_args)) + + call(romp_args, verbose=verbose) + + wheel_filenames = [] + + for art in os.listdir(os.getcwd()): + if not art.endswith("artifacts.tar.gz") or not os.path.getsize(art): + continue + + print(f" Processing artifact archive: {art}") + wheel_fns = extract_tar(art, dest_dir) + for wfn in wheel_fns: + print(f" Retrieved built wheel: {wfn}") + wheel_filenames.extend(wheel_fns) return wheel_filenames @@ -2864,11 +2963,11 @@ def get_romp_pyos_options( Return a list of CLI options for romp For example: >>> expected = ['--version', '3.6', '--version', '3.7', '--version', '3.8', - ... '--version', '3.9', '--platform', 'linux', '--platform', 'macos', - ... '--platform', 'windows'] + ... '--version', '3.9', '--version', '3.10', '--platform', 'linux', + ... '--platform', 'macos', '--platform', 'windows'] >>> assert get_romp_pyos_options() == expected """ - python_dot_versions = [".".join(pv) for pv in sorted(set(python_versions))] + python_dot_versions = [get_python_dot_version(pv) for pv in sorted(set(python_versions))] pyos_options = list( itertools.chain.from_iterable(("--version", ver) for ver in python_dot_versions) ) @@ -3029,12 +3128,16 @@ def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): """ wheel_filename = None remote_package = get_remote_package(name=name, version=version) + if TRACE: + print(" remote_package:", remote_package) if remote_package: wheel_filename = remote_package.fetch_wheel(environment=environment, dest_dir=dest_dir) if wheel_filename: return wheel_filename pypi_package = get_pypi_package(name=name, version=version) + if TRACE: + print(" pypi_package:", pypi_package) if pypi_package: wheel_filename = pypi_package.fetch_wheel(environment=environment, dest_dir=dest_dir) return wheel_filename From 784e701e7d266c1e20ee304abfa59ebe843b53b5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 12 Jan 2022 13:02:39 +0100 Subject: [PATCH 089/247] Aligne with latest ScanCode TK updates Signed-off-by: Philippe Ombredanne --- docs/source/conf.py | 20 +++++++++++++++++--- pyproject.toml | 5 ++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index b792d9f..74b8649 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,8 +18,8 @@ # -- Project information ----------------------------------------------------- project = "nexb-skeleton" -copyright = "nexb Inc." -author = "nexb Inc." +copyright = "nexB Inc. and others." +author = "AboutCode.org authors and contributors" # -- General configuration --------------------------------------------------- @@ -27,7 +27,19 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = [] +extensions = [ +'sphinx.ext.intersphinx', +] + +# This points to aboutcode.readthedocs.io +# In case of "undefined label" ERRORS check docs on intersphinx to troubleshoot +# Link was created at commit - https://github.com/nexB/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83 + +intersphinx_mapping = { + 'aboutcode': ('https://aboutcode.readthedocs.io/en/latest/', None), + 'scancode-workbench': ('https://scancode-workbench.readthedocs.io/en/develop/', None), +} + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -50,6 +62,8 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +master_doc = 'index' + html_context = { "css_files": [ "_static/theme_overrides.css", # override wide tables in RTD theme diff --git a/pyproject.toml b/pyproject.toml index 1e10f32..5ebaa03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,9 @@ norecursedirs = [ "tmp", "venv", "tests/data", - ".eggs" + ".eggs", + "src/*/data", + "tests/*/data" ] python_files = "*.py" @@ -46,5 +48,6 @@ python_functions = "test" addopts = [ "-rfExXw", "--strict-markers", + "--ignore setup.py", "--doctest-modules" ] From a7c2efdeca1bdb5595484af0c7c5bef55f451c85 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 12 Jan 2022 14:07:31 +0100 Subject: [PATCH 090/247] Do not ignore setup.py Signed-off-by: Philippe Ombredanne --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5ebaa03..cde7907 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,5 @@ python_functions = "test" addopts = [ "-rfExXw", "--strict-markers", - "--ignore setup.py", "--doctest-modules" ] From b1dabd894c469174b0fee950043f7d29fac6027f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 12 Jan 2022 18:17:16 +0100 Subject: [PATCH 091/247] Update scripts Make fetch_built_wheel work Add new strip classifiers option to fix_thirdparty Improve simple requirements parsing to get the latest versions Signed-off-by: Philippe Ombredanne --- etc/scripts/fetch_built_wheels.py | 44 +++++++++++++++++---- etc/scripts/fix_thirdparty.py | 66 +++++++++++++++++++------------ etc/scripts/utils_requirements.py | 59 +++++++++++++++++++++++---- etc/scripts/utils_thirdparty.py | 10 ++++- 4 files changed, 138 insertions(+), 41 deletions(-) diff --git a/etc/scripts/fetch_built_wheels.py b/etc/scripts/fetch_built_wheels.py index 4fea16c..a78861e 100644 --- a/etc/scripts/fetch_built_wheels.py +++ b/etc/scripts/fetch_built_wheels.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/nexB/scancode-toolkit for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click @@ -14,20 +14,50 @@ @click.command() +@click.option( + "--remote-build-log-file", + type=click.Path(readable=True), + metavar="LOG-FILE", + help="Path to a remote builds log file.", +) @click.option( "-d", "--thirdparty-dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - required=True, - help="Path to the thirdparty directory to check.", + metavar="DIR", + default=utils_thirdparty.THIRDPARTY_DIR, + show_default=True, + help="Path to the thirdparty directory to save built wheels.", +) +@click.option( + "--no-wait", + is_flag=True, + default=False, + help="Do not wait for build completion.", +) +@click.option( + "--verbose", + is_flag=True, + help="Provide verbose output.", ) @click.help_option("-h", "--help") -def check_thirdparty_dir(thirdparty_dir): +def fetch_remote_wheels( + remote_build_log_file, + thirdparty_dir, + no_wait, + verbose, +): """ - Check a thirdparty directory for problems. + Fetch to THIRDPARTY_DIR all the wheels built in the LOG-FILE JSON lines + build log file. """ - utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + utils_thirdparty.fetch_remotely_built_wheels( + remote_build_log_file=remote_build_log_file, + dest_dir=thirdparty_dir, + no_wait=no_wait, + verbose=verbose, + ) if __name__ == "__main__": - check_thirdparty_dir() + fetch_remote_wheels() diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py index c14b7d5..9d401cd 100644 --- a/etc/scripts/fix_thirdparty.py +++ b/etc/scripts/fix_thirdparty.py @@ -41,12 +41,18 @@ "do not download them either). Instead create a JSON lines log file with " "one entry for each build suitable to fetch the artifacts at a later time.", ) +@click.option( + "--strip-classifiers", + is_flag=True, + help="Remove danglingf classifiers", +) @click.help_option("-h", "--help") def fix_thirdparty_dir( thirdparty_dir, build_wheels, build_remotely, remote_build_log_file, + strip_classifiers, ): """ Fix a thirdparty directory of dependent package wheels and sdist. @@ -61,35 +67,45 @@ def fix_thirdparty_dir( Optionally build missing binary wheels for all supported OS and Python version combos locally or remotely. """ - print("***FETCH*** MISSING WHEELS") - package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) - print("***FETCH*** MISSING SOURCES") - src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) - - package_envts_not_built = [] - if build_wheels: - print("***BUILD*** MISSING WHEELS") - results = utils_thirdparty.build_missing_wheels( - packages_and_envts=package_envts_not_fetched, - build_remotely=build_remotely, - remote_build_log_file=remote_build_log_file, + if strip_classifiers: + print("***ADD*** ABOUT AND LICENSES, STRIP CLASSIFIERS") + utils_thirdparty.add_fetch_or_update_about_and_license_files( dest_dir=thirdparty_dir, + strip_classifiers=strip_classifiers, ) - package_envts_not_built, _wheel_filenames_built = results - - print("***ADD*** ABOUT AND LICENSES") - utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) - - # report issues - for name, version in src_name_ver_not_fetched: - print(f"{name}=={version}: Failed to fetch source distribution.") - - for package, envt in package_envts_not_built: - print( - f"{package.name}=={package.version}: Failed to build wheel " - f"on {envt.operating_system} for Python {envt.python_version}" + else: + print("***FETCH*** MISSING WHEELS") + package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) + print("***FETCH*** MISSING SOURCES") + src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) + + package_envts_not_built = [] + if build_wheels: + print("***BUILD*** MISSING WHEELS") + results = utils_thirdparty.build_missing_wheels( + packages_and_envts=package_envts_not_fetched, + build_remotely=build_remotely, + remote_build_log_file=remote_build_log_file, + dest_dir=thirdparty_dir, + ) + package_envts_not_built, _wheel_filenames_built = results + + print("***ADD*** ABOUT AND LICENSES") + utils_thirdparty.add_fetch_or_update_about_and_license_files( + dest_dir=thirdparty_dir, + strip_classifiers=strip_classifiers, ) + # report issues + for name, version in src_name_ver_not_fetched: + print(f"{name}=={version}: Failed to fetch source distribution.") + + for package, envt in package_envts_not_built: + print( + f"{package.name}=={package.version}: Failed to build wheel " + f"on {envt.operating_system} for Python {envt.python_version}" + ) + print("***FIND PROBLEMS***") utils_thirdparty.find_problems(dest_dir=thirdparty_dir) diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 9545db5..fc331f6 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -8,11 +8,13 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # +import re import subprocess """ Utilities to manage requirements files and call pip. -NOTE: this should use ONLY the standard library and not import anything else. +NOTE: this should use ONLY the standard library and not import anything else +becasue this is used for boostrapping. """ @@ -27,28 +29,69 @@ def load_requirements(requirements_file="requirements.txt", force_pinned=True): return get_required_name_versions(req_lines, force_pinned) -def get_required_name_versions(requirement_lines, force_pinned=True): +def get_required_name_versions( + requirement_lines, + force_pinned=True, +): """ Yield required (name, version) tuples given a`requirement_lines` iterable of requirement text lines. Every requirement versions must be pinned if `force_pinned` is True. Otherwise un-pinned requirements are returned with a - None version + None version. + """ for req_line in requirement_lines: req_line = req_line.strip() if not req_line or req_line.startswith("#"): continue - if "==" not in req_line and force_pinned: - raise Exception(f"Requirement version is not pinned: {req_line}") + if force_pinned: + if "==" not in req_line: + raise Exception(f"Requirement version is not pinned: {req_line}") name = req_line version = None else: - name, _, version = req_line.partition("==") - name = name.lower().strip() - version = version.lower().strip() + if req_line.startswith("-"): + print(f"Requirement skipped, is not supported: {req_line}") + + if "==" in req_line: + name, _, version = req_line.partition("==") + version = version.lower().strip() + else: + # FIXME: we do not support unpinned requirements yet! + name = strip_reqs(req_line) + version = None + + name = name.lower().strip() yield name, version +def strip_reqs(line): + """ + Return a name given a pip reuirement text ``line` striping version and + requirements. + + For example:: + + >>> s = strip_reqs("foo <=12, >=13,!=12.6") + >>> assert s == "foo" + """ + if "--" in line: + raise Exception(f"Unsupported requirement style: {line}") + + line = line.strip() + + ops = "> Date: Mon, 14 Feb 2022 15:38:26 +0100 Subject: [PATCH 092/247] Do not use pytest 7.0.0 which is buggy Reference: https://github.com/pytest-dev/pytest/issues/9608 Signed-off-by: Philippe Ombredanne --- setup.cfg | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index f192f22..5427f0e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,8 +37,7 @@ where=src [options.extras_require] testing = - # upstream - pytest >= 6 + pytest >= 6, != 7.0.0 pytest-xdist >= 2 docs= Sphinx>=3.3.1 From b15b6b79d965f452b14cc02578a45ba1c98138fe Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Thu, 17 Feb 2022 17:31:14 +0800 Subject: [PATCH 093/247] Update `configure` to work with space in installation path Signed-off-by: Chin Yeung Li --- configure.bat | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/configure.bat b/configure.bat index 4dfb201..7e80e98 100644 --- a/configure.bat +++ b/configure.bat @@ -49,11 +49,11 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling -if exist ""%CFG_ROOT_DIR%\thirdparty"" ( - set "PIP_EXTRA_ARGS=--find-links %CFG_ROOT_DIR%\thirdparty " +if exist "%CFG_ROOT_DIR%\thirdparty" ( + set PIP_EXTRA_ARGS=--find-links "%CFG_ROOT_DIR%\thirdparty" ) -set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS%" --find-links https://thirdparty.aboutcode.org/pypi & %INDEX_ARG% @rem ################################ @@ -67,7 +67,7 @@ if not defined CFG_QUIET ( @rem ################################ @rem # Main command line entry point set CFG_DEV_MODE=0 -set "CFG_REQUIREMENTS=%REQUIREMENTS%" +set CFG_REQUIREMENTS=%REQUIREMENTS% set "NO_INDEX=--no-index" :again @@ -75,7 +75,7 @@ if not "%1" == "" ( if "%1" EQU "--help" (goto cli_help) if "%1" EQU "--clean" (goto clean) if "%1" EQU "--dev" ( - set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" + set CFG_REQUIREMENTS=%DEV_REQUIREMENTS% set CFG_DEV_MODE=1 ) if "%1" EQU "--init" ( @@ -94,8 +94,8 @@ set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% %NO_INDEX%" @rem # Otherwise the latest Python by default. if not defined PYTHON_EXECUTABLE ( @rem # check for a file named PYTHON_EXECUTABLE - if exist ""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" ( - set /p PYTHON_EXECUTABLE=<""%CFG_ROOT_DIR%\PYTHON_EXECUTABLE"" + if exist "%CFG_ROOT_DIR%\PYTHON_EXECUTABLE" ( + set /p PYTHON_EXECUTABLE=<"%CFG_ROOT_DIR%\PYTHON_EXECUTABLE" ) else ( set "PYTHON_EXECUTABLE=py" ) @@ -107,12 +107,12 @@ if not defined PYTHON_EXECUTABLE ( @rem # presence is not consistent across Linux distro and sometimes pip is not @rem # included either by default. The virtualenv.pyz app cures all these issues. -if not exist ""%CFG_BIN_DIR%\python.exe"" ( +if not exist "%CFG_BIN_DIR%\python.exe" ( if not exist "%CFG_BIN_DIR%" ( - mkdir %CFG_BIN_DIR% + mkdir "%CFG_BIN_DIR%" ) - if exist ""%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz"" ( + if exist "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ( %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ^ --wheel embed --pip embed --setuptools embed ^ --seeder pip ^ @@ -120,9 +120,9 @@ if not exist ""%CFG_BIN_DIR%\python.exe"" ( --no-periodic-update ^ --no-vcs-ignore ^ %CFG_QUIET% ^ - %CFG_ROOT_DIR%\%VIRTUALENV_DIR% + "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%" ) else ( - if not exist ""%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz"" ( + if not exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" ( curl -o "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" %VIRTUALENV_PYZ_URL% if %ERRORLEVEL% neq 0 ( @@ -136,7 +136,7 @@ if not exist ""%CFG_BIN_DIR%\python.exe"" ( --no-periodic-update ^ --no-vcs-ignore ^ %CFG_QUIET% ^ - %CFG_ROOT_DIR%\%VIRTUALENV_DIR% + "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%" ) ) @@ -152,7 +152,15 @@ if %ERRORLEVEL% neq 0 ( @rem # speeds up the installation. @rem # We always have the PEP517 build dependencies installed already. -%CFG_BIN_DIR%\pip install ^ +echo "%CFG_BIN_DIR%\pip" install ^ + --upgrade ^ + --no-build-isolation ^ + %CFG_QUIET% ^ + %PIP_EXTRA_ARGS% ^ + %CFG_REQUIREMENTS% + + +"%CFG_BIN_DIR%\pip" install ^ --upgrade ^ --no-build-isolation ^ %CFG_QUIET% ^ @@ -163,7 +171,7 @@ if %ERRORLEVEL% neq 0 ( if exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" ( rmdir /s /q "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" ) -mklink /J %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin %CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts +mklink /J "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" if %ERRORLEVEL% neq 0 ( exit /b %ERRORLEVEL% From 311b0a16119f84c989ab1246c838c96a72fe4d06 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Thu, 17 Feb 2022 17:32:40 +0800 Subject: [PATCH 094/247] Remove echo statement Signed-off-by: Chin Yeung Li --- configure.bat | 8 -------- 1 file changed, 8 deletions(-) diff --git a/configure.bat b/configure.bat index 7e80e98..6f44967 100644 --- a/configure.bat +++ b/configure.bat @@ -152,14 +152,6 @@ if %ERRORLEVEL% neq 0 ( @rem # speeds up the installation. @rem # We always have the PEP517 build dependencies installed already. -echo "%CFG_BIN_DIR%\pip" install ^ - --upgrade ^ - --no-build-isolation ^ - %CFG_QUIET% ^ - %PIP_EXTRA_ARGS% ^ - %CFG_REQUIREMENTS% - - "%CFG_BIN_DIR%\pip" install ^ --upgrade ^ --no-build-isolation ^ From 5351f0b11d4fc83ec4469108889f4bda4bba89db Mon Sep 17 00:00:00 2001 From: Tushar Goel Date: Thu, 17 Feb 2022 19:08:29 +0530 Subject: [PATCH 095/247] automate pypi release on a tag Signed-off-by: Tushar Goel --- .github/workflows/pypi-release.yml | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/pypi-release.yml diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml new file mode 100644 index 0000000..b668b2e --- /dev/null +++ b/.github/workflows/pypi-release.yml @@ -0,0 +1,36 @@ +name: Release uinvers on PyPI + +on: + release: + types: [created] + +jobs: + build-n-publish: + name: Build and publish univers to PyPI + runs-on: ubuntu-20.04 + +steps: + - uses: actions/checkout@master + - name: Set up Python 3.6 + uses: actions/setup-python@v1 + with: + python-version: 3.6 + - name: Install pypa/build + run: >- + python -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: >- + python -m + build + --sdist + --wheel + --outdir dist/ + . + - name: Publish distribution 📦 to PyPI + if: startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file From 96b6405269f6b06911bf13194f49ba484f641be3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 18 Feb 2022 13:49:48 +0100 Subject: [PATCH 096/247] Refine GH Action definition * Do not use explicit references to Python version and project name in descriptions * Use Python 3.8 as a base * Use only plain ASCII Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index b668b2e..33eebd1 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -1,4 +1,4 @@ -name: Release uinvers on PyPI +name: Release library as a PyPI wheel and sdist on tag on: release: @@ -6,15 +6,15 @@ on: jobs: build-n-publish: - name: Build and publish univers to PyPI + name: Build and publish library to PyPI runs-on: ubuntu-20.04 steps: - uses: actions/checkout@master - - name: Set up Python 3.6 + - name: Set up Python uses: actions/setup-python@v1 with: - python-version: 3.6 + python-version: 3.8 - name: Install pypa/build run: >- python -m @@ -29,8 +29,9 @@ steps: --wheel --outdir dist/ . - - name: Publish distribution 📦 to PyPI + - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master with: - password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file + password: ${{ secrets.PYPI_API_TOKEN }} + \ No newline at end of file From 635df78840575777c2509525651c0d18e9771e38 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 18 Feb 2022 13:54:51 +0100 Subject: [PATCH 097/247] Format GH action yaml The indentations were not correct Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 42 ++++++++++++------------------ 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 33eebd1..cb32987 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -8,30 +8,20 @@ jobs: build-n-publish: name: Build and publish library to PyPI runs-on: ubuntu-20.04 - -steps: - - uses: actions/checkout@master - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install pypa/build - run: >- - python -m - pip install - build - --user - - name: Build a binary wheel and a source tarball - run: >- - python -m - build - --sdist - --wheel - --outdir dist/ + steps: + - uses: actions/checkout@master + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: 3.8 + - name: Install pypa/build + run: python -m pip install build --user + - name: Build a binary wheel and a source tarball + run: python -m build --sdist --wheel --outdir dist/ . - - name: Publish distribution to PyPI - if: startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{ secrets.PYPI_API_TOKEN }} - \ No newline at end of file + - name: Publish distribution to PyPI + if: startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.PYPI_API_TOKEN }} + From 6bbedddfeef1e10383eef87131a162b7fb43df46 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 18 Feb 2022 13:56:07 +0100 Subject: [PATCH 098/247] Use verbose name for job Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index cb32987..188497e 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -5,7 +5,7 @@ on: types: [created] jobs: - build-n-publish: + build-and-publish-to-pypi: name: Build and publish library to PyPI runs-on: ubuntu-20.04 steps: From 840ccefe0d5bbb20e9a9f7314b707bdefcd1e163 Mon Sep 17 00:00:00 2001 From: keshav-space Date: Tue, 22 Feb 2022 15:23:29 +0530 Subject: [PATCH 099/247] Add black codestyle test for skeleton - see https://github.com/nexB/skeleton/issues/54 Signed-off-by: keshav-space --- etc/scripts/fix_thirdparty.py | 6 +++--- etc/scripts/utils_requirements.py | 2 +- etc/scripts/utils_thirdparty.py | 4 +++- setup.cfg | 1 + tests/test_skeleton_codestyle.py | 36 +++++++++++++++++++++++++++++++ 5 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 tests/test_skeleton_codestyle.py diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py index 9d401cd..d664c9c 100644 --- a/etc/scripts/fix_thirdparty.py +++ b/etc/scripts/fix_thirdparty.py @@ -78,7 +78,7 @@ def fix_thirdparty_dir( package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) print("***FETCH*** MISSING SOURCES") src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) - + package_envts_not_built = [] if build_wheels: print("***BUILD*** MISSING WHEELS") @@ -89,7 +89,7 @@ def fix_thirdparty_dir( dest_dir=thirdparty_dir, ) package_envts_not_built, _wheel_filenames_built = results - + print("***ADD*** ABOUT AND LICENSES") utils_thirdparty.add_fetch_or_update_about_and_license_files( dest_dir=thirdparty_dir, @@ -99,7 +99,7 @@ def fix_thirdparty_dir( # report issues for name, version in src_name_ver_not_fetched: print(f"{name}=={version}: Failed to fetch source distribution.") - + for package, envt in package_envts_not_built: print( f"{package.name}=={package.version}: Failed to build wheel " diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index fc331f6..7753ea0 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -86,7 +86,7 @@ def has_ops(l): return any(op in l for op in ops) if not has_ops: - return line + return line splitter = re.compile(r"[>= 6, != 7.0.0 pytest-xdist >= 2 + black docs= Sphinx>=3.3.1 sphinx-rtd-theme>=0.5.0 diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py new file mode 100644 index 0000000..2eb6e55 --- /dev/null +++ b/tests/test_skeleton_codestyle.py @@ -0,0 +1,36 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/skeleton for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import subprocess +import unittest +import configparser + + +class BaseTests(unittest.TestCase): + def test_skeleton_codestyle(self): + """ + This test shouldn't run in proliferated repositories. + """ + setup_cfg = configparser.ConfigParser() + setup_cfg.read("setup.cfg") + if setup_cfg["metadata"]["name"] != "skeleton": + return + + args = "venv/bin/black --check -l 100 setup.py etc tests" + try: + subprocess.check_output(args.split()) + except subprocess.CalledProcessError as e: + print("===========================================================") + print(e.output) + print("===========================================================") + raise Exception( + "Black style check failed; please format the code using:\n" + " python -m black -l 100 setup.py etc tests", + e.output, + ) from e From 35af6431aecf7eb19f73ea14b74955cc121464b9 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Wed, 23 Feb 2022 15:42:00 +0800 Subject: [PATCH 100/247] Update configure.bat Signed-off-by: Chin Yeung Li --- configure.bat | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/configure.bat b/configure.bat index 6f44967..ed06161 100644 --- a/configure.bat +++ b/configure.bat @@ -52,9 +52,7 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" if exist "%CFG_ROOT_DIR%\thirdparty" ( set PIP_EXTRA_ARGS=--find-links "%CFG_ROOT_DIR%\thirdparty" ) - -set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS%" --find-links https://thirdparty.aboutcode.org/pypi & %INDEX_ARG% -@rem ################################ +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% @rem ################################ @@ -67,7 +65,7 @@ if not defined CFG_QUIET ( @rem ################################ @rem # Main command line entry point set CFG_DEV_MODE=0 -set CFG_REQUIREMENTS=%REQUIREMENTS% +set "CFG_REQUIREMENTS=%REQUIREMENTS%" set "NO_INDEX=--no-index" :again @@ -75,7 +73,7 @@ if not "%1" == "" ( if "%1" EQU "--help" (goto cli_help) if "%1" EQU "--clean" (goto clean) if "%1" EQU "--dev" ( - set CFG_REQUIREMENTS=%DEV_REQUIREMENTS% + set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" set CFG_DEV_MODE=1 ) if "%1" EQU "--init" ( @@ -204,4 +202,4 @@ for %%F in (%CLEANABLE%) do ( rmdir /s /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 del /f /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 ) -exit /b 0 +exit /b 0 \ No newline at end of file From 9558c0c0a8855d085671bca7d01dc90385c84e95 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 23 Feb 2022 22:06:54 +0530 Subject: [PATCH 101/247] Deprecate windows-2016 images for azure CI Modifies the azure CI for `vs2017-win2016` to `windows-2022` as the former will be deprecated very soon. --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7cd3025..5df8a18 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,8 +41,8 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: win2016_cpython - image_name: vs2017-win2016 + job_name: win2022_cpython + image_name: windows-2022 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From e19a520a80599fd60bc0fcc3cebd2a789646fda7 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 1 Mar 2022 12:45:59 -0800 Subject: [PATCH 102/247] Remove macos 10.14 job from azure-pipelines.yml Signed-off-by: Jono Yang --- azure-pipelines.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7cd3025..bceb4ba 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -23,14 +23,6 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos1014_cpython - image_name: macos-10.14 - python_versions: ['3.6', '3.7', '3.8', '3.9'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: macos1015_cpython From 47da14bbae133137bba8d19b6d8c572cb28f3f7a Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 1 Mar 2022 13:10:59 -0800 Subject: [PATCH 103/247] Do not use Python 3.6 on Windows 2022 jobs * Python 3.6 is not available on Windows 2022 images Signed-off-by: Jono Yang --- azure-pipelines.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cf057b8..f3fd2c3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,16 +33,16 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: win2022_cpython - image_name: windows-2022 + job_name: win2019_cpython + image_name: windows-2019 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: - job_name: win2019_cpython - image_name: windows-2019 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + job_name: win2022_cpython + image_name: windows-2022 + python_versions: ['3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From ad17a42320a8c9e8fd949f10c7b6d0019d035c24 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 23 Feb 2022 22:06:54 +0530 Subject: [PATCH 104/247] Deprecate windows-2016 images for azure CI * Modifies the azure CI for `vs2017-win2016` to `windows-2022` as the former will be deprecated very soon. Signed-off-by: Ayan Sinha Mahapatra --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7cd3025..5df8a18 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,8 +41,8 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: win2016_cpython - image_name: vs2017-win2016 + job_name: win2022_cpython + image_name: windows-2022 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From cad31644f17aa0af65b5c26c01cdb282f9db0951 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 1 Mar 2022 12:45:59 -0800 Subject: [PATCH 105/247] Remove macos 10.14 job from azure-pipelines.yml Signed-off-by: Jono Yang --- azure-pipelines.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5df8a18..cf057b8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -23,14 +23,6 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos1014_cpython - image_name: macos-10.14 - python_versions: ['3.6', '3.7', '3.8', '3.9'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: macos1015_cpython From d659e09be2ff73599d951350d17d4e5c7b72c80c Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 1 Mar 2022 13:10:59 -0800 Subject: [PATCH 106/247] Do not use Python 3.6 on Windows 2022 jobs * Python 3.6 is not available on Windows 2022 images Signed-off-by: Jono Yang --- azure-pipelines.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cf057b8..f3fd2c3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,16 +33,16 @@ jobs: - template: etc/ci/azure-win.yml parameters: - job_name: win2022_cpython - image_name: windows-2022 + job_name: win2019_cpython + image_name: windows-2019 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs - template: etc/ci/azure-win.yml parameters: - job_name: win2019_cpython - image_name: windows-2019 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + job_name: win2022_cpython + image_name: windows-2022 + python_versions: ['3.7', '3.8', '3.9', '3.10'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From c5251f4762d43cb88ff02636759ff7df991ead05 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Mar 2022 08:22:31 +0100 Subject: [PATCH 107/247] Run tests on macOS 11 Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f3fd2c3..089abe9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,6 +31,14 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos11_cpython + image_name: macos-11 + python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + - template: etc/ci/azure-win.yml parameters: job_name: win2019_cpython From a118fe76e3b20a778803d4630222dbf7801c30ae Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Mar 2022 08:53:32 +0100 Subject: [PATCH 108/247] Align configuration scripts on POSIX and Windows Doing so helps with keeping them in sync Signed-off-by: Philippe Ombredanne --- configure | 156 +++++++++++++++++++++++++++----------------------- configure.bat | 17 ++++-- 2 files changed, 97 insertions(+), 76 deletions(-) diff --git a/configure b/configure index fdfdc85..c1d36aa 100755 --- a/configure +++ b/configure @@ -16,6 +16,8 @@ set -e # Source this script for initial configuration # Use configure --help for details # +# NOTE: please keep in sync with Windows script configure.bat +# # This script will search for a virtualenv.pyz app in etc/thirdparty/virtualenv.pyz # Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default ################################ @@ -32,10 +34,8 @@ DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constrai # where we create a virtualenv VIRTUALENV_DIR=venv -# Cleanable files and directories with the --clean option -CLEANABLE=" - build - venv" +# Cleanable files and directories to delete with the --clean option +CLEANABLE="build venv" # extra arguments passed to pip PIP_EXTRA_ARGS=" " @@ -50,11 +50,14 @@ VIRTUALENV_PYZ_URL=https://bootstrap.pypa.io/virtualenv.pyz CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin + +################################ +# Thirdparty package locations and index handling # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org if [ -f "$CFG_ROOT_DIR/thirdparty" ]; then PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty " fi -PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi" +PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" ################################ @@ -65,56 +68,50 @@ fi ################################ -# find a proper Python to run -# Use environment variables or a file if available. -# Otherwise the latest Python by default. -if [[ "$PYTHON_EXECUTABLE" == "" ]]; then - # check for a file named PYTHON_EXECUTABLE - if [ -f "$CFG_ROOT_DIR/PYTHON_EXECUTABLE" ]; then - PYTHON_EXECUTABLE=$(cat "$CFG_ROOT_DIR/PYTHON_EXECUTABLE") - else - PYTHON_EXECUTABLE=python3 - fi -fi - +# Main command line entry point +main() { + CFG_REQUIREMENTS=$REQUIREMENTS + NO_INDEX="--no-index" + + # We are using getopts to parse option arguments that start with "-" + while getopts :-: optchar; do + case "${optchar}" in + -) + case "${OPTARG}" in + help ) cli_help;; + clean ) find_python && clean;; + dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; + init ) NO_INDEX="";; + esac;; + esac + done -################################ -cli_help() { - echo An initial configuration script - echo " usage: ./configure [options]" - echo - echo The default is to configure for regular use. Use --dev for development. - echo Use the --init option if starting a new project and the project - echo dependencies are not available on thirdparty.aboutcode.org/pypi/ - echo and requirements.txt and/or requirements-dev.txt has not been generated. - echo - echo The options are: - echo " --clean: clean built and installed files and exit." - echo " --dev: configure the environment for development." - echo " --init: pull dependencies from PyPI. Used when first setting up a project." - echo " --help: display this help message and exit." - echo - echo By default, the python interpreter version found in the path is used. - echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to - echo configure another Python executable interpreter to use. If this is not - echo set, a file named PYTHON_EXECUTABLE containing a single line with the - echo path of the Python executable to use will be checked last. - set +e - exit + PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" + + find_python + create_virtualenv "$VIRTUALENV_DIR" + install_packages "$CFG_REQUIREMENTS" + . "$CFG_BIN_DIR/activate" } -clean() { - # Remove cleanable file and directories and files from the root dir. - echo "* Cleaning ..." - for cln in $CLEANABLE; - do rm -rf "${CFG_ROOT_DIR:?}/${cln:?}"; - done - set +e - exit +################################ +# Find a proper Python to run +# Use environment variables or a file if available. +# Otherwise the latest Python by default. +find_python() { + if [[ "$PYTHON_EXECUTABLE" == "" ]]; then + # check for a file named PYTHON_EXECUTABLE + if [ -f "$CFG_ROOT_DIR/PYTHON_EXECUTABLE" ]; then + PYTHON_EXECUTABLE=$(cat "$CFG_ROOT_DIR/PYTHON_EXECUTABLE") + else + PYTHON_EXECUTABLE=python3 + fi + fi } +################################ create_virtualenv() { # create a virtualenv for Python # Note: we do not use the bundled Python 3 "venv" because its behavior and @@ -145,6 +142,7 @@ create_virtualenv() { } +################################ install_packages() { # install requirements in virtualenv # note: --no-build-isolation means that pip/wheel/setuptools will not @@ -162,28 +160,44 @@ install_packages() { ################################ -# Main command line entry point -CFG_DEV_MODE=0 -CFG_REQUIREMENTS=$REQUIREMENTS -NO_INDEX="--no-index" - -# We are using getopts to parse option arguments that start with "-" -while getopts :-: optchar; do - case "${optchar}" in - -) - case "${OPTARG}" in - help ) cli_help;; - clean ) clean;; - dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS" && CFG_DEV_MODE=1;; - init ) NO_INDEX="";; - esac;; - esac -done - -PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" - -create_virtualenv "$VIRTUALENV_DIR" -install_packages "$CFG_REQUIREMENTS" -. "$CFG_BIN_DIR/activate" +cli_help() { + echo An initial configuration script + echo " usage: ./configure [options]" + echo + echo The default is to configure for regular use. Use --dev for development. + echo Use the --init option if starting a new project and the project + echo dependencies are not available on thirdparty.aboutcode.org/pypi/ + echo and requirements.txt and/or requirements-dev.txt has not been generated. + echo + echo The options are: + echo " --clean: clean built and installed files and exit." + echo " --dev: configure the environment for development." + echo " --init: pull dependencies from PyPI. Used when first setting up a project." + echo " --help: display this help message and exit." + echo + echo By default, the python interpreter version found in the path is used. + echo Alternatively, the PYTHON_EXECUTABLE environment variable can be set to + echo configure another Python executable interpreter to use. If this is not + echo set, a file named PYTHON_EXECUTABLE containing a single line with the + echo path of the Python executable to use will be checked last. + set +e + exit +} + + +################################ +clean() { + # Remove cleanable file and directories and files from the root dir. + echo "* Cleaning ..." + for cln in $CLEANABLE; + do rm -rf "${CFG_ROOT_DIR:?}/${cln:?}"; + done + set +e + exit +} + + + +main set +e diff --git a/configure.bat b/configure.bat index ed06161..961e0d9 100644 --- a/configure.bat +++ b/configure.bat @@ -14,6 +14,8 @@ @rem # Source this script for initial configuration @rem # Use configure --help for details +@rem # NOTE: please keep in sync with POSIX script configure + @rem # This script will search for a virtualenv.pyz app in etc\thirdparty\virtualenv.pyz @rem # Otherwise it will download the latest from the VIRTUALENV_PYZ_URL default @rem ################################ @@ -49,10 +51,11 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling +@rem # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org if exist "%CFG_ROOT_DIR%\thirdparty" ( set PIP_EXTRA_ARGS=--find-links "%CFG_ROOT_DIR%\thirdparty" ) -set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi" & %INDEX_ARG% +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" @rem ################################ @@ -64,7 +67,6 @@ if not defined CFG_QUIET ( @rem ################################ @rem # Main command line entry point -set CFG_DEV_MODE=0 set "CFG_REQUIREMENTS=%REQUIREMENTS%" set "NO_INDEX=--no-index" @@ -74,7 +76,6 @@ if not "%1" == "" ( if "%1" EQU "--clean" (goto clean) if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" - set CFG_DEV_MODE=1 ) if "%1" EQU "--init" ( set "NO_INDEX= " @@ -87,7 +88,7 @@ set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% %NO_INDEX%" @rem ################################ -@rem # find a proper Python to run +@rem # Find a proper Python to run @rem # Use environment variables or a file if available. @rem # Otherwise the latest Python by default. if not defined PYTHON_EXECUTABLE ( @@ -99,6 +100,8 @@ if not defined PYTHON_EXECUTABLE ( ) ) + +@rem ################################ :create_virtualenv @rem # create a virtualenv for Python @rem # Note: we do not use the bundled Python 3 "venv" because its behavior and @@ -143,6 +146,7 @@ if %ERRORLEVEL% neq 0 ( ) +@rem ################################ :install_packages @rem # install requirements in virtualenv @rem # note: --no-build-isolation means that pip/wheel/setuptools will not @@ -157,6 +161,9 @@ if %ERRORLEVEL% neq 0 ( %PIP_EXTRA_ARGS% ^ %CFG_REQUIREMENTS% + +@rem ################################ +:create_bin_junction @rem # Create junction to bin to have the same directory between linux and windows if exist "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" ( rmdir /s /q "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\bin" @@ -171,7 +178,6 @@ exit /b 0 @rem ################################ - :cli_help echo An initial configuration script echo " usage: configure [options]" @@ -195,6 +201,7 @@ exit /b 0 exit /b 0 +@rem ################################ :clean @rem # Remove cleanable file and directories and files from the root dir. echo "* Cleaning ..." From e810da356b99cb7241c90c9a79b20232ddebbb50 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 4 Mar 2022 09:00:46 +0100 Subject: [PATCH 109/247] Update README Signed-off-by: Philippe Ombredanne --- README.rst | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 4173689..74e58fa 100644 --- a/README.rst +++ b/README.rst @@ -1,19 +1,27 @@ A Simple Python Project Skeleton ================================ -This repo attempts to standardize our python repositories using modern python -packaging and configuration techniques. Using this `blog post`_ as inspiration, this -repository will serve as the base for all new python projects and will be adopted to all -our existing ones as well. +This repo attempts to standardize the structure of the Python-based project's +repositories using modern Python packaging and configuration techniques. +Using this `blog post`_ as inspiration, this repository serves as the base for +all new Python projects and is mergeable in existing repositories as well. .. _blog post: https://blog.jaraco.com/a-project-skeleton-for-python-projects/ + Usage ===== Usage instructions can be found in ``docs/skeleton-usage.rst``. + Release Notes ============= +- 2022-03-04: + - Synchronize configure and configure.bat scripts for sanity + - Update CI operating system support with latest Azure OS images + - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party dependencies + There are now fewer scripts. See etc/scripts/README.rst for details + - 2021-09-03: - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` and ``requirements-dev.txt`` - ``configure`` can now accept multiple options at once From 243f7cb96ec9ab03080ffb8e69197b80894ef565 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 5 Mar 2022 07:07:18 +0100 Subject: [PATCH 110/247] Refactor and streamline thirdparty utilities There is now a single primary script "fetch_thirdparty.py" that handles everything in a simplified way. There is no utility to build wheels anymore: these MUST be available before hand on PyPI or built manually and uploaded in our self-hosted PyPI repository. Signed-off-by: Philippe Ombredanne --- etc/scripts/README.rst | 45 +- etc/scripts/bootstrap.py | 244 ---- etc/scripts/build_wheels.py | 121 -- etc/scripts/check_thirdparty.py | 30 +- etc/scripts/fetch_built_wheels.py | 63 - etc/scripts/fetch_requirements.py | 159 --- etc/scripts/fetch_thirdparty.py | 306 +++++ etc/scripts/fix_thirdparty.py | 114 -- etc/scripts/gen_pypi_simple.py | 246 +++- etc/scripts/publish_files.py | 208 --- etc/scripts/utils_requirements.py | 147 +- etc/scripts/utils_thirdparty.py | 2079 +++++++++-------------------- 12 files changed, 1233 insertions(+), 2529 deletions(-) delete mode 100644 etc/scripts/bootstrap.py delete mode 100644 etc/scripts/build_wheels.py delete mode 100644 etc/scripts/fetch_built_wheels.py delete mode 100644 etc/scripts/fetch_requirements.py create mode 100644 etc/scripts/fetch_thirdparty.py delete mode 100644 etc/scripts/fix_thirdparty.py delete mode 100644 etc/scripts/publish_files.py diff --git a/etc/scripts/README.rst b/etc/scripts/README.rst index d8b00f9..edf82e4 100755 --- a/etc/scripts/README.rst +++ b/etc/scripts/README.rst @@ -15,10 +15,10 @@ Pre-requisites * To generate or update pip requirement files, you need to start with a clean virtualenv as instructed below (This is to avoid injecting requirements - specific to the tools here in the main requirements). + specific to the tools used here in the main requirements). * For other usages, the tools here can run either in their own isolated - virtualenv best or in the the main configured development virtualenv. + virtualenv or in the the main configured development virtualenv. These requireements need to be installed:: pip install --requirement etc/release/requirements.txt @@ -82,45 +82,14 @@ Populate a thirdparty directory with wheels, sources, .ABOUT and license files Scripts ~~~~~~~ -* **fetch_requirements.py** will fetch package wheels, their ABOUT, LICENSE and - NOTICE files to populate a local a thirdparty directory strictly from our - remote repo and using only pinned packages listed in one or more pip - requirements file(s). Fetch only requirements for specific python versions and - operating systems. Optionally fetch the corresponding source distributions. - -* **publish_files.py** will upload/sync a thirdparty directory of files to our - remote repo. Requires a GitHub personal access token. - -* **build_wheels.py** will build a package binary wheel for multiple OS and - python versions. Optionally wheels that contain native code are built - remotely. Dependent wheels are optionally included. Requires Azure credentials - and tokens if building wheels remotely on multiple operatin systems. - -* **fix_thirdparty.py** will fix a thirdparty directory with a best effort to - add missing wheels, sources archives, create or fetch or fix .ABOUT, .NOTICE - and .LICENSE files. Requires Azure credentials and tokens if requesting the - build of missing wheels remotely on multiple operatin systems. +* **fetch_thirdparty.py** will fetch package wheels, source sdist tarballs + and their ABOUT, LICENSE and NOTICE files to populate a local directory from + a list of PyPI simple URLs (typically PyPI.org proper and our self-hosted PyPI) + using pip requirements file(s), specifiers or pre-existing packages files. + Fetch wheels for specific python version and operating system combinations. * **check_thirdparty.py** will check a thirdparty directory for errors. -* **bootstrap.py** will bootstrap a thirdparty directory from a requirements - file(s) to add or build missing wheels, sources archives and create .ABOUT, - .NOTICE and .LICENSE files. Requires Azure credentials and tokens if - requesting the build of missing wheels remotely on multiple operatin systems. - - - -Usage -~~~~~ - -See each command line --help option for details. - -* (TODO) **add_package.py** will add or update a Python package including wheels, - sources and ABOUT files and this for multiple Python version and OSes(for use - with upload_packages.py afterwards) You will need an Azure personal access - token for buidling binaries and an optional DejaCode API key to post and fetch - new package versions there. TODO: explain how we use romp - Upgrade virtualenv app ---------------------- diff --git a/etc/scripts/bootstrap.py b/etc/scripts/bootstrap.py deleted file mode 100644 index 31f2f55..0000000 --- a/etc/scripts/bootstrap.py +++ /dev/null @@ -1,244 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# - -import itertools - -import click - -import utils_thirdparty -from utils_thirdparty import Environment -from utils_thirdparty import PypiPackage - - -@click.command() -@click.option( - "-r", - "--requirements-file", - type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), - metavar="FILE", - multiple=True, - default=["requirements.txt"], - show_default=True, - help="Path to the requirements file(s) to use for thirdparty packages.", -) -@click.option( - "-d", - "--thirdparty-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar="DIR", - default=utils_thirdparty.THIRDPARTY_DIR, - show_default=True, - help="Path to the thirdparty directory where wheels are built and " - "sources, ABOUT and LICENSE files fetched.", -) -@click.option( - "-p", - "--python-version", - type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar="PYVER", - default=utils_thirdparty.PYTHON_VERSIONS, - show_default=True, - multiple=True, - help="Python version(s) to use for this build.", -) -@click.option( - "-o", - "--operating-system", - type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar="OS", - default=tuple(utils_thirdparty.PLATFORMS_BY_OS), - multiple=True, - show_default=True, - help="OS(ses) to use for this build: one of linux, mac or windows.", -) -@click.option( - "-l", - "--latest-version", - is_flag=True, - help="Get the latest version of all packages, ignoring version specifiers.", -) -@click.option( - "--sync-dejacode", - is_flag=True, - help="Synchronize packages with DejaCode.", -) -@click.option( - "--with-deps", - is_flag=True, - help="Also include all dependent wheels.", -) -@click.help_option("-h", "--help") -def bootstrap( - requirements_file, - thirdparty_dir, - python_version, - operating_system, - with_deps, - latest_version, - sync_dejacode, - build_remotely=False, -): - """ - Boostrap a thirdparty Python packages directory from pip requirements. - - Fetch or build to THIRDPARTY_DIR all the wheels and source distributions for - the pip ``--requirement-file`` requirements FILE(s). Build wheels compatible - with all the provided ``--python-version`` PYVER(s) and ```--operating_system`` - OS(s) defaulting to all supported combinations. Create or fetch .ABOUT and - .LICENSE files. - - Optionally ignore version specifiers and use the ``--latest-version`` - of everything. - - Sources and wheels are fetched with attempts first from PyPI, then our remote repository. - If missing wheels are built as needed. - """ - # rename variables for clarity since these are lists - requirements_files = requirements_file - python_versions = python_version - operating_systems = operating_system - - # create the environments we need - evts = itertools.product(python_versions, operating_systems) - environments = [Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] - - # collect all packages to process from requirements files - # this will fail with an exception if there are packages we cannot find - - required_name_versions = set() - - for req_file in requirements_files: - nvs = utils_thirdparty.load_requirements(requirements_file=req_file, force_pinned=False) - required_name_versions.update(nvs) - if latest_version: - required_name_versions = set((name, None) for name, _ver in required_name_versions) - - print( - f"PROCESSING {len(required_name_versions)} REQUIREMENTS in {len(requirements_files)} FILES" - ) - - # fetch all available wheels, keep track of missing - # start with local, then remote, then PyPI - - print("==> COLLECTING ALREADY LOCALLY AVAILABLE REQUIRED WHEELS") - # list of all the wheel filenames either pre-existing, fetched or built - # updated as we progress - available_wheel_filenames = [] - - local_packages_by_namever = { - (p.name, p.version): p - for p in utils_thirdparty.get_local_packages(directory=thirdparty_dir) - } - - # list of (name, version, environment) not local and to fetch - name_version_envt_to_fetch = [] - - # start with a local check - for (name, version), envt in itertools.product(required_name_versions, environments): - local_pack = local_packages_by_namever.get( - ( - name, - version, - ) - ) - if local_pack: - supported_wheels = list(local_pack.get_supported_wheels(environment=envt)) - if supported_wheels: - available_wheel_filenames.extend(w.filename for w in supported_wheels) - print( - f"====> No fetch or build needed. " - f"Local wheel already available for {name}=={version} " - f"on os: {envt.operating_system} for Python: {envt.python_version}" - ) - continue - - name_version_envt_to_fetch.append( - ( - name, - version, - envt, - ) - ) - - print(f"==> TRYING TO FETCH #{len(name_version_envt_to_fetch)} REQUIRED WHEELS") - - # list of (name, version, environment) not fetch and to build - name_version_envt_to_build = [] - - # then check if the wheel can be fetched without building from remote and Pypi - for name, version, envt in name_version_envt_to_fetch: - - fetched_fwn = utils_thirdparty.fetch_package_wheel( - name=name, - version=version, - environment=envt, - dest_dir=thirdparty_dir, - ) - - if fetched_fwn: - available_wheel_filenames.append(fetched_fwn) - else: - name_version_envt_to_build.append( - ( - name, - version, - envt, - ) - ) - - # At this stage we have all the wheels we could obtain without building - for name, version, envt in name_version_envt_to_build: - print( - f"====> Need to build wheels for {name}=={version} on os: " - f"{envt.operating_system} for Python: {envt.python_version}" - ) - - packages_and_envts_to_build = [ - (PypiPackage(name, version), envt) for name, version, envt in name_version_envt_to_build - ] - - print(f"==> BUILDING #{len(packages_and_envts_to_build)} MISSING WHEELS") - - package_envts_not_built, wheel_filenames_built = utils_thirdparty.build_missing_wheels( - packages_and_envts=packages_and_envts_to_build, - build_remotely=build_remotely, - with_deps=with_deps, - dest_dir=thirdparty_dir, - ) - if wheel_filenames_built: - available_wheel_filenames.extend(available_wheel_filenames) - - for pack, envt in package_envts_not_built: - print( - f"====> FAILED to build any wheel for {pack.name}=={pack.version} " - f"on os: {envt.operating_system} for Python: {envt.python_version}" - ) - - print(f"==> FETCHING SOURCE DISTRIBUTIONS") - # fetch all sources, keep track of missing - # This is a list of (name, version) - utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) - - print(f"==> FETCHING ABOUT AND LICENSE FILES") - utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) - - ############################################################################ - if sync_dejacode: - print(f"==> SYNC WITH DEJACODE") - # try to fetch from DejaCode any missing ABOUT - # create all missing DejaCode packages - pass - - utils_thirdparty.find_problems(dest_dir=thirdparty_dir) - - -if __name__ == "__main__": - bootstrap() diff --git a/etc/scripts/build_wheels.py b/etc/scripts/build_wheels.py deleted file mode 100644 index 8a28176..0000000 --- a/etc/scripts/build_wheels.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# -import click - -import utils_thirdparty - - -@click.command() -@click.option( - "-n", - "--name", - type=str, - metavar="PACKAGE_NAME", - required=True, - help="Python package name to add or build.", -) -@click.option( - "-v", - "--version", - type=str, - default=None, - metavar="VERSION", - help="Python package version to add or build.", -) -@click.option( - "-d", - "--thirdparty-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar="DIR", - default=utils_thirdparty.THIRDPARTY_DIR, - show_default=True, - help="Path to the thirdparty directory where wheels are built.", -) -@click.option( - "-p", - "--python-version", - type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar="PYVER", - default=utils_thirdparty.PYTHON_VERSIONS, - show_default=True, - multiple=True, - help="Python version to use for this build.", -) -@click.option( - "-o", - "--operating-system", - type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar="OS", - default=tuple(utils_thirdparty.PLATFORMS_BY_OS), - multiple=True, - show_default=True, - help="OS to use for this build: one of linux, mac or windows.", -) -@click.option( - "--build-remotely", - is_flag=True, - help="Build missing wheels remotely.", -) -@click.option( - "--with-deps", - is_flag=True, - help="Also include all dependent wheels.", -) -@click.option( - "--remote-build-log-file", - type=click.Path(writable=True), - default=None, - metavar="LOG-FILE", - help="Path to an optional log file where to list remote builds download URLs. " - "If provided, do not wait for remote builds to complete (and therefore, " - "do not download them either). Instead create a JSON lines log file with " - "one entry for each build suitable to fetch the artifacts at a later time.", -) -@click.option( - "--verbose", - is_flag=True, - help="Provide verbose output.", -) -@click.help_option("-h", "--help") -def build_wheels( - name, - version, - thirdparty_dir, - python_version, - operating_system, - with_deps, - build_remotely, - remote_build_log_file, - verbose, -): - """ - Build to THIRDPARTY_DIR all the wheels for the Python PACKAGE_NAME and - optional VERSION. Build wheels compatible with all the `--python-version` - PYVER(s) and `--operating_system` OS(s). - - Build native wheels remotely if needed when `--build-remotely` and include - all dependencies with `--with-deps`. - """ - utils_thirdparty.add_or_upgrade_built_wheels( - name=name, - version=version, - python_versions=python_version, - operating_systems=operating_system, - dest_dir=thirdparty_dir, - build_remotely=build_remotely, - with_deps=with_deps, - verbose=verbose, - remote_build_log_file=remote_build_log_file, - ) - - -if __name__ == "__main__": - build_wheels() diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 4fea16c..0f04b34 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -16,17 +16,39 @@ @click.command() @click.option( "-d", - "--thirdparty-dir", + "--dest_dir", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, help="Path to the thirdparty directory to check.", ) +@click.option( + "-w", + "--wheels", + is_flag=True, + help="Check missing wheels.", +) +@click.option( + "-s", + "--sdists", + is_flag=True, + help="Check missing source sdists tarballs.", +) @click.help_option("-h", "--help") -def check_thirdparty_dir(thirdparty_dir): +def check_thirdparty_dir( + dest_dir, + wheels, + sdists, +): """ - Check a thirdparty directory for problems. + Check a thirdparty directory for problems and print these on screen. """ - utils_thirdparty.find_problems(dest_dir=thirdparty_dir) + # check for problems + print(f"==> CHECK FOR PROBLEMS") + utils_thirdparty.find_problems( + dest_dir=dest_dir, + report_missing_sources=sdists, + report_missing_wheels=wheels, + ) if __name__ == "__main__": diff --git a/etc/scripts/fetch_built_wheels.py b/etc/scripts/fetch_built_wheels.py deleted file mode 100644 index a78861e..0000000 --- a/etc/scripts/fetch_built_wheels.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# -import click - -import utils_thirdparty - - -@click.command() -@click.option( - "--remote-build-log-file", - type=click.Path(readable=True), - metavar="LOG-FILE", - help="Path to a remote builds log file.", -) -@click.option( - "-d", - "--thirdparty-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar="DIR", - default=utils_thirdparty.THIRDPARTY_DIR, - show_default=True, - help="Path to the thirdparty directory to save built wheels.", -) -@click.option( - "--no-wait", - is_flag=True, - default=False, - help="Do not wait for build completion.", -) -@click.option( - "--verbose", - is_flag=True, - help="Provide verbose output.", -) -@click.help_option("-h", "--help") -def fetch_remote_wheels( - remote_build_log_file, - thirdparty_dir, - no_wait, - verbose, -): - """ - Fetch to THIRDPARTY_DIR all the wheels built in the LOG-FILE JSON lines - build log file. - """ - utils_thirdparty.fetch_remotely_built_wheels( - remote_build_log_file=remote_build_log_file, - dest_dir=thirdparty_dir, - no_wait=no_wait, - verbose=verbose, - ) - - -if __name__ == "__main__": - fetch_remote_wheels() diff --git a/etc/scripts/fetch_requirements.py b/etc/scripts/fetch_requirements.py deleted file mode 100644 index 9da9ce9..0000000 --- a/etc/scripts/fetch_requirements.py +++ /dev/null @@ -1,159 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# -import itertools - -import click - -import utils_thirdparty - - -@click.command() -@click.option( - "-r", - "--requirements-file", - type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), - metavar="FILE", - multiple=True, - default=["requirements.txt"], - show_default=True, - help="Path to the requirements file to use for thirdparty packages.", -) -@click.option( - "-d", - "--thirdparty-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - metavar="DIR", - default=utils_thirdparty.THIRDPARTY_DIR, - show_default=True, - help="Path to the thirdparty directory.", -) -@click.option( - "-p", - "--python-version", - type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), - metavar="INT", - multiple=True, - default=["36"], - show_default=True, - help="Python version to use for this build.", -) -@click.option( - "-o", - "--operating-system", - type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), - metavar="OS", - multiple=True, - default=["linux"], - show_default=True, - help="OS to use for this build: one of linux, mac or windows.", -) -@click.option( - "-s", - "--with-sources", - is_flag=True, - help="Fetch the corresponding source distributions.", -) -@click.option( - "-a", - "--with-about", - is_flag=True, - help="Fetch the corresponding ABOUT and LICENSE files.", -) -@click.option( - "--allow-unpinned", - is_flag=True, - help="Allow requirements without pinned versions.", -) -@click.option( - "-s", - "--only-sources", - is_flag=True, - help="Fetch only the corresponding source distributions.", -) -@click.option( - "-u", - "--remote-links-url", - type=str, - metavar="URL", - default=utils_thirdparty.REMOTE_LINKS_URL, - show_default=True, - help="URL to a PyPI-like links web site. " "Or local path to a directory with wheels.", -) -@click.help_option("-h", "--help") -def fetch_requirements( - requirements_file, - thirdparty_dir, - python_version, - operating_system, - with_sources, - with_about, - allow_unpinned, - only_sources, - remote_links_url=utils_thirdparty.REMOTE_LINKS_URL, -): - """ - Fetch and save to THIRDPARTY_DIR all the required wheels for pinned - dependencies found in the `--requirement` FILE requirements file(s). Only - fetch wheels compatible with the provided `--python-version` and - `--operating-system`. - Also fetch the corresponding .ABOUT, .LICENSE and .NOTICE files together - with a virtualenv.pyz app. - - Use exclusively wheel not from PyPI but rather found in the PyPI-like link - repo ``remote_links_url`` if this is a URL. Treat this ``remote_links_url`` - as a local directory path to a wheels directory if this is not a a URL. - """ - - # fetch wheels - python_versions = python_version - operating_systems = operating_system - requirements_files = requirements_file - - if not only_sources: - envs = itertools.product(python_versions, operating_systems) - envs = (utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in envs) - - for env, reqf in itertools.product(envs, requirements_files): - - for package, error in utils_thirdparty.fetch_wheels( - environment=env, - requirements_file=reqf, - allow_unpinned=allow_unpinned, - dest_dir=thirdparty_dir, - remote_links_url=remote_links_url, - ): - if error: - print("Failed to fetch wheel:", package, ":", error) - - # optionally fetch sources - if with_sources or only_sources: - - for reqf in requirements_files: - for package, error in utils_thirdparty.fetch_sources( - requirements_file=reqf, - allow_unpinned=allow_unpinned, - dest_dir=thirdparty_dir, - remote_links_url=remote_links_url, - ): - if error: - print("Failed to fetch source:", package, ":", error) - - if with_about: - utils_thirdparty.add_fetch_or_update_about_and_license_files(dest_dir=thirdparty_dir) - utils_thirdparty.find_problems( - dest_dir=thirdparty_dir, - report_missing_sources=with_sources or only_sources, - report_missing_wheels=not only_sources, - ) - - -if __name__ == "__main__": - fetch_requirements() diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py new file mode 100644 index 0000000..22147b2 --- /dev/null +++ b/etc/scripts/fetch_thirdparty.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/skeleton for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import itertools +import os +import sys + +import click + +import utils_thirdparty +import utils_requirements + +TRACE = True + + +@click.command() +@click.option( + "-r", + "--requirements", + "requirements_files", + type=click.Path(exists=True, readable=True, path_type=str, dir_okay=False), + metavar="REQUIREMENT-FILE", + multiple=True, + required=False, + help="Path to pip requirements file(s) listing thirdparty packages.", +) +@click.option( + "--spec", + "--specifier", + "specifiers", + type=str, + metavar="SPECIFIER", + multiple=True, + required=False, + help="Thirdparty package name==version specification(s) as in django==1.2.3. " + "With --latest-version a plain package name is also acceptable.", +) +@click.option( + "-l", + "--latest-version", + is_flag=True, + help="Get the latest version of all packages, ignoring any specified versions.", +) +@click.option( + "-d", + "--dest", + "dest_dir", + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + metavar="DIR", + default=utils_thirdparty.THIRDPARTY_DIR, + show_default=True, + help="Path to the detsination directory where to save downloaded wheels, " + "sources, ABOUT and LICENSE files..", +) +@click.option( + "-w", + "--wheels", + is_flag=True, + help="Download wheels.", +) +@click.option( + "-s", + "--sdists", + is_flag=True, + help="Download source sdists tarballs.", +) +@click.option( + "-p", + "--python-version", + "python_versions", + type=click.Choice(utils_thirdparty.PYTHON_VERSIONS), + metavar="PYVER", + default=utils_thirdparty.PYTHON_VERSIONS, + show_default=True, + multiple=True, + help="Python version(s) to use for wheels.", +) +@click.option( + "-o", + "--operating-system", + "operating_systems", + type=click.Choice(utils_thirdparty.PLATFORMS_BY_OS), + metavar="OS", + default=tuple(utils_thirdparty.PLATFORMS_BY_OS), + multiple=True, + show_default=True, + help="OS(ses) to use for wheels: one of linux, mac or windows.", +) +@click.option( + "--index-url", + "index_urls", + type=str, + metavar="INDEX", + default=utils_thirdparty.PYPI_INDEXES, + show_default=True, + multiple=True, + help="PyPI index URL(s) to use for wheels and sources, in order of preferences.", +) +@click.help_option("-h", "--help") +def fetch_thirdparty( + requirements_files, + specifiers, + latest_version, + dest_dir, + python_versions, + operating_systems, + wheels, + sdists, + index_urls, +): + """ + Download to --dest-dir THIRDPARTY_DIR the PyPI wheels, source distributions, + and their ABOUT metadata, license and notices files. + + Download the PyPI packages listed in the combination of: + - the pip requirements --requirements REQUIREMENT-FILE(s), + - the pip name==version --specifier SPECIFIER(s) + - any pre-existing wheels or sdsists found in --dest-dir THIRDPARTY_DIR. + + Download wheels with the --wheels option for the ``--python-version`` PYVER(s) + and ``--operating_system`` OS(s) combinations defaulting to all supported combinations. + + Download sdists tarballs with the --sdists option. + + Generate or Download .ABOUT, .LICENSE and .NOTICE files for all the wheels and sources fetched. + + Download wheels and sdists the provided PyPI simple --index-url INDEX(s) URLs. + """ + print(f"COLLECTING REQUIRED NAMES & VERSIONS FROM {dest_dir}") + existing_packages_by_nv = { + (package.name, package.version): package + for package in utils_thirdparty.get_local_packages(directory=dest_dir) + } + + required_name_versions = set(existing_packages_by_nv.keys()) + + for req_file in requirements_files: + nvs = utils_requirements.load_requirements( + requirements_file=req_file, + with_unpinned=latest_version, + ) + required_name_versions.update(nvs) + + for specifier in specifiers: + nv = utils_requirements.get_name_version( + requirement=specifier, + with_unpinned=latest_version, + ) + required_name_versions.add(nv) + + if not required_name_versions: + print("Error: no requirements requested.") + sys.exit(1) + + if not os.listdir(dest_dir) and not (wheels or sdists): + print("Error: one or both of --wheels and --sdists is required.") + sys.exit(1) + + if latest_version: + latest_name_versions = set() + names = set(name for name, _version in sorted(required_name_versions)) + for name in sorted(names): + latests = utils_thirdparty.PypiPackage.sorted( + utils_thirdparty.get_package_versions( + name=name, version=None, index_urls=index_urls + ) + ) + if not latests: + print(f"No distribution found for: {name}") + continue + latest = latests[-1] + latest_name_versions.add((latest.name, latest.version)) + required_name_versions = latest_name_versions + + if TRACE: + print("required_name_versions:", required_name_versions) + + if wheels: + # create the environments matrix we need for wheels + evts = itertools.product(python_versions, operating_systems) + environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] + + wheels_not_found = {} + sdists_not_found = {} + # iterate over requirements, one at a time + for name, version in sorted(required_name_versions): + nv = name, version + existing_package = existing_packages_by_nv.get(nv) + if wheels: + for environment in environments: + if existing_package: + existing_wheels = list( + existing_package.get_supported_wheels(environment=environment) + ) + else: + existing_wheels = None + + if existing_wheels: + if TRACE: + print( + f"====> Wheels already available: {name}=={version} on: {environment}: {existing_package.wheels!r}" + ) + if all(w.is_pure() for w in existing_wheels): + break + else: + continue + + if TRACE: + print(f"Fetching wheel for: {name}=={version} on: {environment}") + + try: + ( + fetched_wheel_filenames, + existing_wheel_filenames, + ) = utils_thirdparty.download_wheel( + name=name, + version=version, + environment=environment, + dest_dir=dest_dir, + index_urls=index_urls, + ) + if TRACE: + if existing_wheel_filenames: + print( + f" ====> Wheels already available: {name}=={version} on: {environment}" + ) + for whl in existing_wheel_filenames: + print(f" {whl}") + if fetched_wheel_filenames: + print(f" ====> Wheels fetched: {name}=={version} on: {environment}") + for whl in fetched_wheel_filenames: + print(f" {whl}") + + fwfns = fetched_wheel_filenames + existing_wheel_filenames + + if all(utils_thirdparty.Wheel.from_filename(f).is_pure() for f in fwfns): + break + + except utils_thirdparty.DistributionNotFound as e: + wheels_not_found[f"{name}=={version}"] = str(e) + + if sdists: + if existing_package and existing_package.sdist: + if TRACE: + print( + f" ====> Sdist already available: {name}=={version}: {existing_package.sdist!r}" + ) + continue + + if TRACE: + print(f" Fetching sdist for: {name}=={version}") + + try: + fetched = utils_thirdparty.download_sdist( + name=name, + version=version, + dest_dir=dest_dir, + index_urls=index_urls, + ) + + if TRACE: + if not fetched: + print( + f" ====> Sdist already available: {name}=={version} on: {environment}" + ) + else: + print( + f" ====> Sdist fetched: {fetched} for {name}=={version} on: {environment}" + ) + + except utils_thirdparty.DistributionNotFound as e: + sdists_not_found[f"{name}=={version}"] = str(e) + + if wheels and wheels_not_found: + print(f"==> MISSING WHEELS") + for wh in wheels_not_found: + print(f" {wh}") + + if sdists and sdists_not_found: + print(f"==> MISSING SDISTS") + for sd in sdists_not_found: + print(f" {sd}") + + print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") + utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir) + utils_thirdparty.clean_about_files(dest_dir=dest_dir) + + # check for problems + print(f"==> CHECK FOR PROBLEMS") + utils_thirdparty.find_problems( + dest_dir=dest_dir, + report_missing_sources=sdists, + report_missing_wheels=wheels, + ) + + +if __name__ == "__main__": + fetch_thirdparty() diff --git a/etc/scripts/fix_thirdparty.py b/etc/scripts/fix_thirdparty.py deleted file mode 100644 index d664c9c..0000000 --- a/etc/scripts/fix_thirdparty.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# -import click - -import utils_thirdparty - - -@click.command() -@click.option( - "-d", - "--thirdparty-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), - required=True, - help="Path to the thirdparty directory to fix.", -) -@click.option( - "--build-wheels", - is_flag=True, - help="Build all missing wheels .", -) -@click.option( - "--build-remotely", - is_flag=True, - help="Build missing wheels remotely.", -) -@click.option( - "--remote-build-log-file", - type=click.Path(writable=True), - default=None, - metavar="LOG-FILE", - help="Path to an optional log file where to list remote builds download URLs. " - "If provided, do not wait for remote builds to complete (and therefore, " - "do not download them either). Instead create a JSON lines log file with " - "one entry for each build suitable to fetch the artifacts at a later time.", -) -@click.option( - "--strip-classifiers", - is_flag=True, - help="Remove danglingf classifiers", -) -@click.help_option("-h", "--help") -def fix_thirdparty_dir( - thirdparty_dir, - build_wheels, - build_remotely, - remote_build_log_file, - strip_classifiers, -): - """ - Fix a thirdparty directory of dependent package wheels and sdist. - - Multiple fixes are applied: - - fetch or build missing binary wheels - - fetch missing source distributions - - derive, fetch or add missing ABOUT files - - fetch missing .LICENSE and .NOTICE files - - remove outdated package versions and the ABOUT, .LICENSE and .NOTICE files - - Optionally build missing binary wheels for all supported OS and Python - version combos locally or remotely. - """ - if strip_classifiers: - print("***ADD*** ABOUT AND LICENSES, STRIP CLASSIFIERS") - utils_thirdparty.add_fetch_or_update_about_and_license_files( - dest_dir=thirdparty_dir, - strip_classifiers=strip_classifiers, - ) - else: - print("***FETCH*** MISSING WHEELS") - package_envts_not_fetched = utils_thirdparty.fetch_missing_wheels(dest_dir=thirdparty_dir) - print("***FETCH*** MISSING SOURCES") - src_name_ver_not_fetched = utils_thirdparty.fetch_missing_sources(dest_dir=thirdparty_dir) - - package_envts_not_built = [] - if build_wheels: - print("***BUILD*** MISSING WHEELS") - results = utils_thirdparty.build_missing_wheels( - packages_and_envts=package_envts_not_fetched, - build_remotely=build_remotely, - remote_build_log_file=remote_build_log_file, - dest_dir=thirdparty_dir, - ) - package_envts_not_built, _wheel_filenames_built = results - - print("***ADD*** ABOUT AND LICENSES") - utils_thirdparty.add_fetch_or_update_about_and_license_files( - dest_dir=thirdparty_dir, - strip_classifiers=strip_classifiers, - ) - - # report issues - for name, version in src_name_ver_not_fetched: - print(f"{name}=={version}: Failed to fetch source distribution.") - - for package, envt in package_envts_not_built: - print( - f"{package.name}=={package.version}: Failed to build wheel " - f"on {envt.operating_system} for Python {envt.python_version}" - ) - - print("***FIND PROBLEMS***") - utils_thirdparty.find_problems(dest_dir=thirdparty_dir) - - -if __name__ == "__main__": - fix_thirdparty_dir() diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 53db9b0..8de2b96 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -5,65 +5,25 @@ # Copyright (c) 2010 David Wolever . All rights reserved. # originally from https://github.com/wolever/pip2pi +import hashlib import os import re import shutil - +from collections import defaultdict from html import escape from pathlib import Path +from typing import NamedTuple """ -name: pip compatibility tags -version: 20.3.1 -download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py -copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) -license_expression: mit -notes: the weel name regex is copied from pip-20.3.1 pip/_internal/models/wheel.py - -Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Generate a PyPI simple index froma directory. """ -get_wheel_from_filename = re.compile( - r"""^(?P(?P.+?)-(?P.*?)) - ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) - \.whl)$""", - re.VERBOSE, -).match - -sdist_exts = ( - ".tar.gz", - ".tar.bz2", - ".zip", - ".tar.xz", -) -wheel_ext = ".whl" -app_ext = ".pyz" -dist_exts = sdist_exts + (wheel_ext, app_ext) class InvalidDistributionFilename(Exception): pass -def get_package_name_from_filename(filename, normalize=True): +def get_package_name_from_filename(filename): """ Return the package name extracted from a package ``filename``. Optionally ``normalize`` the name according to distribution name rules. @@ -132,18 +92,99 @@ def get_package_name_from_filename(filename, normalize=True): if not name: raise InvalidDistributionFilename(filename) - if normalize: - name = name.lower().replace("_", "-") + name = normalize_name(name) return name -def build_pypi_index(directory, write_index=False): +def normalize_name(name): + """ + Return a normalized package name per PEP503, and copied from + https://www.python.org/dev/peps/pep-0503/#id4 + """ + return name and re.sub(r"[-_.]+", "-", name).lower() or name + + +def build_per_package_index(pkg_name, packages, base_url): + """ + Return an HTML document as string representing the index for a package + """ + document = [] + header = f""" + + + + Links for {pkg_name} + + """ + document.append(header) + + for package in packages: + document.append(package.simple_index_entry(base_url)) + + footer = """ + +""" + document.append(footer) + return "\n".join(document) + + +def build_links_package_index(packages_by_package_name, base_url): + """ + Return an HTML document as string which is a links index of all packages + """ + document = [] + header = f""" + + + Links for all packages + + """ + document.append(header) + + for _name, packages in packages_by_package_name.items(): + for package in packages: + document.append(package.simple_index_entry(base_url)) + + footer = """ + +""" + document.append(footer) + return "\n".join(document) + + +class Package(NamedTuple): + name: str + index_dir: Path + archive_file: Path + checksum: str + + @classmethod + def from_file(cls, name, index_dir, archive_file): + with open(archive_file, "rb") as f: + checksum = hashlib.sha256(f.read()).hexdigest() + return cls( + name=name, + index_dir=index_dir, + archive_file=archive_file, + checksum=checksum, + ) + + def simple_index_entry(self, base_url): + return ( + f' ' + f"{self.archive_file.name}
" + ) + + +def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi"): """ - Using a ``directory`` directory of wheels and sdists, create the a PyPI simple - directory index at ``directory``/simple/ populated with the proper PyPI simple - index directory structure crafted using symlinks. + Using a ``directory`` directory of wheels and sdists, create the a PyPI + simple directory index at ``directory``/simple/ populated with the proper + PyPI simple index directory structure crafted using symlinks. WARNING: The ``directory``/simple/ directory is removed if it exists. + NOTE: in addition to the a PyPI simple index.html there is also a links.html + index file generated which is suitable to use with pip's --find-links """ directory = Path(directory) @@ -153,14 +194,15 @@ def build_pypi_index(directory, write_index=False): shutil.rmtree(str(index_dir), ignore_errors=True) index_dir.mkdir(parents=True) + packages_by_package_name = defaultdict(list) - if write_index: - simple_html_index = [ - "PyPI Simple Index", - "", - ] + # generate the main simple index.html + simple_html_index = [ + "", + "PyPI Simple Index", + '' '', + ] - package_names = set() for pkg_file in directory.iterdir(): pkg_filename = pkg_file.name @@ -172,23 +214,99 @@ def build_pypi_index(directory, write_index=False): ): continue - pkg_name = get_package_name_from_filename(pkg_filename) + pkg_name = get_package_name_from_filename( + filename=pkg_filename, + ) pkg_index_dir = index_dir / pkg_name pkg_index_dir.mkdir(parents=True, exist_ok=True) pkg_indexed_file = pkg_index_dir / pkg_filename + link_target = Path("../..") / pkg_filename pkg_indexed_file.symlink_to(link_target) - if write_index and pkg_name not in package_names: + if pkg_name not in packages_by_package_name: esc_name = escape(pkg_name) simple_html_index.append(f'{esc_name}
') - package_names.add(pkg_name) - if write_index: - simple_html_index.append("") - index_html = index_dir / "index.html" - index_html.write_text("\n".join(simple_html_index)) + packages_by_package_name[pkg_name].append( + Package.from_file( + name=pkg_name, + index_dir=pkg_index_dir, + archive_file=pkg_file, + ) + ) + + # finalize main index + simple_html_index.append("") + index_html = index_dir / "index.html" + index_html.write_text("\n".join(simple_html_index)) + + # also generate the simple index.html of each package, listing all its versions. + for pkg_name, packages in packages_by_package_name.items(): + per_package_index = build_per_package_index( + pkg_name=pkg_name, + packages=packages, + base_url=base_url, + ) + pkg_index_dir = packages[0].index_dir + ppi_html = pkg_index_dir / "index.html" + ppi_html.write_text(per_package_index) + + # also generate the a links.html page with all packages. + package_links = build_links_package_index( + packages_by_package_name=packages_by_package_name, + base_url=base_url, + ) + links_html = index_dir / "links.html" + links_html.write_text(package_links) + + +""" +name: pip-wheel +version: 20.3.1 +download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/models/wheel.py +copyright: Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) +license_expression: mit +notes: the wheel name regex is copied from pip-20.3.1 pip/_internal/models/wheel.py + +Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" +get_wheel_from_filename = re.compile( + r"""^(?P(?P.+?)-(?P.*?)) + ((-(?P\d[^-]*?))?-(?P.+?)-(?P.+?)-(?P.+?) + \.whl)$""", + re.VERBOSE, +).match + +sdist_exts = ( + ".tar.gz", + ".tar.bz2", + ".zip", + ".tar.xz", +) +wheel_ext = ".whl" +app_ext = ".pyz" +dist_exts = sdist_exts + (wheel_ext, app_ext) if __name__ == "__main__": import sys diff --git a/etc/scripts/publish_files.py b/etc/scripts/publish_files.py deleted file mode 100644 index 8669363..0000000 --- a/etc/scripts/publish_files.py +++ /dev/null @@ -1,208 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# -import hashlib -import os -import sys - -from pathlib import Path - -import click -import requests -import utils_thirdparty - -from github_release_retry import github_release_retry as grr - -""" -Create GitHub releases and upload files there. -""" - - -def get_files(location): - """ - Return an iterable of (filename, Path, md5) tuples for files in the `location` - directory tree recursively. - """ - for top, _dirs, files in os.walk(location): - for filename in files: - pth = Path(os.path.join(top, filename)) - with open(pth, "rb") as fi: - md5 = hashlib.md5(fi.read()).hexdigest() - yield filename, pth, md5 - - -def get_etag_md5(url): - """ - Return the cleaned etag of URL `url` or None. - """ - headers = utils_thirdparty.get_remote_headers(url) - headers = {k.lower(): v for k, v in headers.items()} - etag = headers.get("etag") - if etag: - etag = etag.strip('"').lower() - return etag - - -def create_or_update_release_and_upload_directory( - user, - repo, - tag_name, - token, - directory, - retry_limit=10, - description=None, -): - """ - Create or update a GitHub release at https://github.com// for - `tag_name` tag using the optional `description` for this release. - Use the provided `token` as a GitHub token for API calls authentication. - Upload all files found in the `directory` tree to that GitHub release. - Retry API calls up to `retry_limit` time to work around instability the - GitHub API. - - Remote files that are not the same as the local files are deleted and re- - uploaded. - """ - release_homepage_url = f"https://github.com/{user}/{repo}/releases/{tag_name}" - - # scrape release page HTML for links - urls_by_filename = { - os.path.basename(l): l - for l in utils_thirdparty.get_paths_or_urls(links_url=release_homepage_url) - } - - # compute what is new, modified or unchanged - print(f"Compute which files is new, modified or unchanged in {release_homepage_url}") - - new_to_upload = [] - unchanged_to_skip = [] - modified_to_delete_and_reupload = [] - for filename, pth, md5 in get_files(directory): - url = urls_by_filename.get(filename) - if not url: - print(f"{filename} content is NEW, will upload") - new_to_upload.append(pth) - continue - - out_of_date = get_etag_md5(url) != md5 - if out_of_date: - print(f"{url} content is CHANGED based on md5 etag, will re-upload") - modified_to_delete_and_reupload.append(pth) - else: - # print(f'{url} content is IDENTICAL, skipping upload based on Etag') - unchanged_to_skip.append(pth) - print(".") - - ghapi = grr.GithubApi( - github_api_url="https://api.github.com", - user=user, - repo=repo, - token=token, - retry_limit=retry_limit, - ) - - # yank modified - print( - f"Unpublishing {len(modified_to_delete_and_reupload)} published but " - f"locally modified files in {release_homepage_url}" - ) - - release = ghapi.get_release_by_tag(tag_name) - - for pth in modified_to_delete_and_reupload: - filename = os.path.basename(pth) - asset_id = ghapi.find_asset_id_by_file_name(filename, release) - print(f" Unpublishing file: {filename}).") - response = ghapi.delete_asset(asset_id) - if response.status_code != requests.codes.no_content: # NOQA - raise Exception(f"failed asset deletion: {response}") - - # finally upload new and modified - to_upload = new_to_upload + modified_to_delete_and_reupload - print(f"Publishing with {len(to_upload)} files to {release_homepage_url}") - release = grr.Release(tag_name=tag_name, body=description) - grr.make_release(ghapi, release, to_upload) - - -TOKEN_HELP = ( - "The Github personal acess token is used to authenticate API calls. " - "Required unless you set the GITHUB_TOKEN environment variable as an alternative. " - "See for details: https://github.com/settings/tokens and " - "https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token" -) - - -@click.command() -@click.option( - "--user-repo-tag", - help="The GitHub qualified repository user/name/tag in which " - "to create the release such as in nexB/thirdparty/pypi", - type=str, - required=True, -) -@click.option( - "-d", - "--directory", - help="The directory that contains files to upload to the release.", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), - required=True, -) -@click.option( - "--token", - help=TOKEN_HELP, - default=os.environ.get("GITHUB_TOKEN", None), - type=str, - required=False, -) -@click.option( - "--description", - help="Text description for the release. Ignored if the release exists.", - default=None, - type=str, - required=False, -) -@click.option( - "--retry_limit", - help="Number of retries when making failing GitHub API calls. " - "Retrying helps work around transient failures of the GitHub API.", - type=int, - default=10, -) -@click.help_option("-h", "--help") -def publish_files( - user_repo_tag, - directory, - retry_limit=10, - token=None, - description=None, -): - """ - Publish all the files in DIRECTORY as assets to a GitHub release. - Either create or update/replace remote files' - """ - if not token: - click.secho("--token required option is missing.") - click.secho(TOKEN_HELP) - sys.exit(1) - - user, repo, tag_name = user_repo_tag.split("/") - - create_or_update_release_and_upload_directory( - user=user, - repo=repo, - tag_name=tag_name, - description=description, - retry_limit=retry_limit, - token=token, - directory=directory, - ) - - -if __name__ == "__main__": - publish_files() diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 7753ea0..fbc456d 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -14,95 +14,63 @@ """ Utilities to manage requirements files and call pip. NOTE: this should use ONLY the standard library and not import anything else -becasue this is used for boostrapping. +because this is used for boostrapping with no requirements installed. """ -def load_requirements(requirements_file="requirements.txt", force_pinned=True): +def load_requirements(requirements_file="requirements.txt", with_unpinned=False): """ Yield package (name, version) tuples for each requirement in a `requirement` - file. Every requirement versions must be pinned if `force_pinned` is True. - Otherwise un-pinned requirements are returned with a None version + file. Only accept requirements pinned to an exact version. """ with open(requirements_file) as reqs: req_lines = reqs.read().splitlines(False) - return get_required_name_versions(req_lines, force_pinned) + return get_required_name_versions(req_lines, with_unpinned=with_unpinned) -def get_required_name_versions( - requirement_lines, - force_pinned=True, -): +def get_required_name_versions(requirement_lines, with_unpinned=False): """ Yield required (name, version) tuples given a`requirement_lines` iterable of - requirement text lines. Every requirement versions must be pinned if - `force_pinned` is True. Otherwise un-pinned requirements are returned with a - None version. - + requirement text lines. Only accept requirements pinned to an exact version. """ + for req_line in requirement_lines: req_line = req_line.strip() if not req_line or req_line.startswith("#"): continue - if force_pinned: - if "==" not in req_line: - raise Exception(f"Requirement version is not pinned: {req_line}") - name = req_line - version = None - else: - if req_line.startswith("-"): - print(f"Requirement skipped, is not supported: {req_line}") - - if "==" in req_line: - name, _, version = req_line.partition("==") - version = version.lower().strip() - else: - # FIXME: we do not support unpinned requirements yet! - name = strip_reqs(req_line) - version = None - - name = name.lower().strip() - yield name, version - - -def strip_reqs(line): - """ - Return a name given a pip reuirement text ``line` striping version and - requirements. - - For example:: - - >>> s = strip_reqs("foo <=12, >=13,!=12.6") - >>> assert s == "foo" - """ - if "--" in line: - raise Exception(f"Unsupported requirement style: {line}") - - line = line.strip() - - ops = ">>> assert get_name_version("foo==1.2.3") == ("foo", "1.2.3") + >>> assert get_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1") + >>> assert get_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3") + >>> assert get_name_version("foo", with_unpinned=True) == ("foo", "") + >>> assert get_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_name_version("foo>=1.2") + >>> try: + ... assert not get_name_version("foo", with_unpinned=False) + ... except Exception as e: + ... assert "Requirement version must be pinned" in str(e) """ - requires = [c for c in requires.splitlines(False) if c] - if not requires: - return [] - - requires = ["".join(r.split()) for r in requires if r and r.strip()] - return sorted(requires) + requirement = requirement and "".join(requirement.lower().split()) + assert requirement, f"specifier is required is empty:{requirement!r}" + name, operator, version = split_req(requirement) + assert name, f"Name is required: {requirement}" + is_pinned = operator == "==" + if with_unpinned: + version = "" + else: + assert is_pinned and version, f"Requirement version must be pinned: {requirement}" + return name, version def lock_requirements(requirements_file="requirements.txt", site_packages_dir=None): @@ -139,8 +107,47 @@ def lock_dev_requirements( def get_installed_reqs(site_packages_dir): """ - Return the installed pip requirements as text found in `site_packages_dir` as a text. + Return the installed pip requirements as text found in `site_packages_dir` + as a text. """ - # Also include these packages in the output with --all: wheel, distribute, setuptools, pip + # Also include these packages in the output with --all: wheel, distribute, + # setuptools, pip args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] return subprocess.check_output(args, encoding="utf-8") + + +comparators = ( + "===", + "~=", + "!=", + "==", + "<=", + ">=", + ">", + "<", +) + +_comparators_re = r"|".join(comparators) +version_splitter = re.compile(rf"({_comparators_re})") + + +def split_req(req): + """ + Return a three-tuple of (name, comparator, version) given a ``req`` + requirement specifier string. Each segment may be empty. Spaces are removed. + + For example: + >>> assert split_req("foo==1.2.3") == ("foo", "==", "1.2.3"), split_req("foo==1.2.3") + >>> assert split_req("foo") == ("foo", "", ""), split_req("foo") + >>> assert split_req("==1.2.3") == ("", "==", "1.2.3"), split_req("==1.2.3") + >>> assert split_req("foo >= 1.2.3 ") == ("foo", ">=", "1.2.3"), split_req("foo >= 1.2.3 ") + >>> assert split_req("foo>=1.2") == ("foo", ">=", "1.2"), split_req("foo>=1.2") + """ + assert req + # do not allow multiple constraints and tags + assert not any(c in req for c in ",;") + req = "".join(req.split()) + if not any(c in req for c in comparators): + return req, "", "" + segments = version_splitter.split(req, maxsplit=1) + return tuple(segments) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index a2fbe4e..e303053 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -11,12 +11,10 @@ from collections import defaultdict import email import itertools -import operator import os import re import shutil import subprocess -import tarfile import tempfile import time import urllib @@ -26,29 +24,30 @@ import packageurl import requests import saneyaml -import utils_pip_compatibility_tags -import utils_pypi_supported_tags - from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name from packaging import tags as packaging_tags from packaging import version as packaging_version +from urllib.parse import quote_plus + +import utils_pip_compatibility_tags from utils_requirements import load_requirements """ Utilities to manage Python thirparty libraries source, binaries and metadata in local directories and remote repositories. -- update pip requirement files from installed packages for prod. and dev. -- build and save wheels for all required packages -- also build variants for wheels with native code for all each supported - operating systems (Linux, macOS, Windows) and Python versions (3.x) - combinations using remote Ci jobs -- collect source distributions for all required packages -- keep in sync wheels, distributions, ABOUT and LICENSE files to a PyPI-like - repository (using GitHub) -- create, update and fetch ABOUT, NOTICE and LICENSE metadata for all distributions +- download wheels for packages for all each supported operating systems + (Linux, macOS, Windows) and Python versions (3.x) combinations + +- download sources for packages (aka. sdist) + +- create, update and download ABOUT, NOTICE and LICENSE metadata for these + wheels and source distributions + +- update pip requirement files based on actually installed packages for + production and development Approach @@ -56,35 +55,65 @@ The processing is organized around these key objects: -- A PyPiPackage represents a PyPI package with its name and version. It tracks - the downloadable Distribution objects for that version: +- A PyPiPackage represents a PyPI package with its name and version and the + metadata used to populate an .ABOUT file and document origin and license. + It contains the downloadable Distribution objects for that version: - - one Sdist source Distribution object - - a list of Wheel binary Distribution objects + - one Sdist source Distribution + - a list of Wheel binary Distribution - A Distribution (either a Wheel or Sdist) is identified by and created from its - filename. It also has the metadata used to populate an .ABOUT file and - document origin and license. A Distribution can be fetched from Repository. - Metadata can be loaded from and dumped to ABOUT files and optionally from - DejaCode package data. + filename as well as its name and version. + A Distribution is fetched from a Repository. + Distribution metadata can be loaded from and dumped to ABOUT files. + +- A Wheel binary Distribution can have Python/Platform/OS tags it supports and + was built for and these tags can be matched to an Environment. + +- An Environment is a combination of a Python version and operating system + (e.g., platfiorm and ABI tags.) and is represented by the "tags" it supports. + +- A plain LinksRepository which is just a collection of URLs scrape from a web + page such as HTTP diretory listing. It is used either with pip "--find-links" + option or to fetch ABOUT and LICENSE files. + +- A PypiSimpleRepository is a PyPI "simple" index where a HTML page is listing + package name links. Each such link points to an HTML page listing URLs to all + wheels and sdsist of all versions of this package. + +PypiSimpleRepository and Packages are related through packages name, version and +filenames. + +The Wheel models code is partially derived from the mit-licensed pip and the +Distribution/Wheel/Sdist design has been heavily inspired by the packaging- +dists library https://github.com/uranusjr/packaging-dists by Tzu-ping Chung +""" + +""" +Wheel downloader -- An Environment is a combination of a Python version and operating system. - A Wheel Distribution also has Python/OS tags is supports and these can be - supported in a given Environment. +- parse requirement file +- create a TODO queue of requirements to process +- done: create an empty map of processed binary requirements as {package name: (list of versions/tags} -- Paths or URLs to "filenames" live in a Repository, either a plain - LinksRepository (an HTML page listing URLs or a local directory) or a - PypiRepository (a PyPI simple index where each package name has an HTML page - listing URLs to all distribution types and versions). - Repositories and Distributions are related through filenames. + +- while we have package reqs in TODO queue, process one requirement: + - for each PyPI simple index: + - fetch through cache the PyPI simple index for this package + - for each environment: + - find a wheel matching pinned requirement in this index + - if file exist locally, continue + - fetch the wheel for env + - IF pure, break, no more needed for env + - collect requirement deps from wheel metadata and add to queue + - if fetched, break, otherwise display error message - The Wheel models code is partially derived from the mit-licensed pip and the - Distribution/Wheel/Sdist design has been heavily inspired by the packaging- - dists library https://github.com/uranusjr/packaging-dists by Tzu-ping Chung """ -TRACE = False +TRACE = True +TRACE_DEEP = False +TRACE_ULTRA_DEEP = False # Supported environments PYTHON_VERSIONS = "36", "37", "38", "39", "310" @@ -106,16 +135,11 @@ def get_python_dot_version(version): ABIS_BY_PYTHON_VERSION = { - "36": ["cp36", "cp36m"], - "37": ["cp37", "cp37m"], - "38": ["cp38", "cp38m"], - "39": ["cp39", "cp39m"], - "310": ["cp310", "cp310m"], - "36": ["cp36", "abi3"], - "37": ["cp37", "abi3"], - "38": ["cp38", "abi3"], - "39": ["cp39", "abi3"], - "310": ["cp310", "abi3"], + "36": ["cp36", "cp36m", "abi3"], + "37": ["cp37", "cp37m", "abi3"], + "38": ["cp38", "cp38m", "abi3"], + "39": ["cp39", "cp39m", "abi3"], + "310": ["cp310", "cp310m", "abi3"], } PLATFORMS_BY_OS = { @@ -154,7 +178,13 @@ def get_python_dot_version(version): THIRDPARTY_DIR = "thirdparty" CACHE_THIRDPARTY_DIR = ".cache/thirdparty" -REMOTE_LINKS_URL = "https://thirdparty.aboutcode.org/pypi" +ABOUT_BASE_URL = "https://thirdparty.aboutcode.org/pypi" + +ABOUT_PYPI_SIMPLE_URL = f"{ABOUT_BASE_URL}/simple" +ABOUT_LINKS_URL = f"{ABOUT_PYPI_SIMPLE_URL}/links.html" + +PYPI_SIMPLE_URL = "https://pypi.org/simple" +PYPI_INDEXES = (PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL) EXTENSIONS_APP = (".pyz",) EXTENSIONS_SDIST = ( @@ -171,170 +201,134 @@ def get_python_dot_version(version): ) EXTENSIONS = EXTENSIONS_INSTALLABLE + EXTENSIONS_ABOUT + EXTENSIONS_APP -PYPI_SIMPLE_URL = "https://pypi.org/simple" - LICENSEDB_API_URL = "https://scancode-licensedb.aboutcode.org" LICENSING = license_expression.Licensing() -# time to wait build for in seconds, as a string -# 0 measn no wait -DEFAULT_ROMP_BUILD_WAIT = "5" +collect_urls = re.compile('href="([^"]+)"').findall ################################################################################ -# -# Fetch remote wheels and sources locally -# +# Fetch wheels and sources locally ################################################################################ -def fetch_wheels( - environment=None, - requirements_file="requirements.txt", - allow_unpinned=False, +class DistributionNotFound(Exception): + pass + + +def download_wheel( + name, + version, + environment, dest_dir=THIRDPARTY_DIR, - remote_links_url=REMOTE_LINKS_URL, + index_urls=PYPI_INDEXES, ): """ - Download all of the wheel of packages listed in the ``requirements_file`` - requirements file into ``dest_dir`` directory. + Download the wheels binary distribution(s) of package ``name`` and + ``version`` matching the ``environment`` Environment constraints from the + PyPI simple repository ``index_urls`` list of URLs into the ``dest_dir`` + directory. - Only get wheels for the ``environment`` Enviromnent constraints. If the - provided ``environment`` is None then the current Python interpreter - environment is used implicitly. + Raise a DistributionNotFound if no wheel is not found. Otherwise, return a + tuple of lists of (fetched_wheel_filenames, existing_wheel_filenames) + """ + if TRACE_DEEP: + print(f" download_wheel: {name}=={version}: {environment}") - Only accept pinned requirements (e.g. with a version) unless - ``allow_unpinned`` is True. + fetched_wheel_filenames = [] + existing_wheel_filenames = [] + try: + for pypi_package in get_package_versions( + name=name, + version=version, + index_urls=index_urls, + ): + if not pypi_package.wheels: + continue - Use exclusively direct downloads from a remote repo at URL - ``remote_links_url``. If ``remote_links_url`` is a path, use this as a - directory of links instead of a URL. + supported_wheels = list(pypi_package.get_supported_wheels(environment=environment)) + if not supported_wheels: + continue - Yield tuples of (PypiPackage, error) where is None on success. - """ - missed = [] + for wheel in supported_wheels: + if os.path.exists(os.path.join(dest_dir, wheel.filename)): + # do not refetch + existing_wheel_filenames.append(wheel.filename) + continue - if not allow_unpinned: - force_pinned = True - else: - force_pinned = False + if TRACE: + print(f" Fetching wheel from index: {wheel.download_url}") + fetched_wheel_filename = wheel.download(dest_dir=dest_dir) + fetched_wheel_filenames.add(fetched_wheel_filename) - try: - rrp = list( - get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - ) - ) except Exception as e: - raise Exception( - dict( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - ) - ) from e - - fetched_filenames = set() - for name, version, package in rrp: - if not package: - missed.append( - ( - name, - version, - ) - ) - nv = f"{name}=={version}" if version else name - yield None, f"fetch_wheels: Missing package in remote repo: {nv}" + raise DistributionNotFound(f"Failed to fetch wheel: {name}=={version}: {e}") from e - else: - fetched_filename = package.fetch_wheel( - environment=environment, - fetched_filenames=fetched_filenames, - dest_dir=dest_dir, - ) + if not fetched_wheel_filenames and not existing_wheel_filenames: + raise DistributionNotFound(f"Failed to fetch wheel: {name}=={version}: No wheel found") - if fetched_filename: - fetched_filenames.add(fetched_filename) - error = None - else: - if fetched_filename in fetched_filenames: - error = None - else: - error = f"Failed to fetch" - yield package, error - - if missed: - rr = get_remote_repo() - print() - print(f"===> fetch_wheels: Missed some packages") - for n, v in missed: - nv = f"{n}=={v}" if v else n - print(f"Missed package {nv} in remote repo, has only:") - for pv in rr.get_versions(n): - print(" ", pv) - raise Exception("Missed some packages in remote repo") + return fetched_wheel_filenames, existing_wheel_filenames -def fetch_sources( - requirements_file="requirements.txt", - allow_unpinned=False, +def download_sdist( + name, + version, dest_dir=THIRDPARTY_DIR, - remote_links_url=REMOTE_LINKS_URL, + index_urls=PYPI_INDEXES, ): """ - Download all of the dependent package sources listed in the - ``requirements_file`` requirements file into ``dest_dir`` destination - directory. - - Use direct downloads to achieve this (not pip download). Use exclusively the - packages found from a remote repo at URL ``remote_links_url``. If - ``remote_links_url`` is a path, use this as a directory of links instead of - a URL. + Download the sdist source distribution of package ``name`` and ``version`` + from the PyPI simple repository ``index_urls`` list of URLs into the + ``dest_dir`` directory. - Only accept pinned requirements (e.g. with a version) unless - ``allow_unpinned`` is True. - - Yield tuples of (PypiPackage, error message) for each package where error - message will empty on success. + Raise a DistributionNotFound if this was not found. Return the filename if + downloaded and False if not downloaded because it already exists. """ - missed = [] + if TRACE_DEEP: + print(f"download_sdist: {name}=={version}: ") - if not allow_unpinned: - force_pinned = True - else: - force_pinned = False + try: + for pypi_package in get_package_versions( + name=name, + version=version, + index_urls=index_urls, + ): + if not pypi_package.sdist: + continue - rrp = list( - get_required_remote_packages( - requirements_file=requirements_file, - force_pinned=force_pinned, - remote_links_url=remote_links_url, - ) - ) + if os.path.exists(os.path.join(dest_dir, pypi_package.sdist.filename)): + # do not refetch + return False + if TRACE: + print(f" Fetching sources from index: {pypi_package.sdist.download_url}") + fetched = pypi_package.sdist.download(dest_dir=dest_dir) + if fetched: + return pypi_package.sdist.filename - for name, version, package in rrp: - if not package: - missed.append( - ( - name, - name, - ) - ) - nv = f"{name}=={version}" if version else name - yield None, f"fetch_sources: Missing package in remote repo: {nv}" + except Exception as e: + raise DistributionNotFound(f"Failed to fetch sdist: {name}=={version}: {e}") from e - elif not package.sdist: - yield package, f"Missing sdist in links" + raise DistributionNotFound(f"Failed to fetch sdist: {name}=={version}: No sources found") - else: - fetched = package.fetch_sdist(dest_dir=dest_dir) - error = f"Failed to fetch" if not fetched else None - yield package, error - if missed: - raise Exception(f"Missing source packages in {remote_links_url}", missed) +def get_package_versions( + name, + version=None, + index_urls=PYPI_INDEXES, +): + """ + Yield PypiPackages with ``name`` and ``version`` from the PyPI simple + repository ``index_urls`` list of URLs. + If ``version`` is not provided, return the latest available versions. + """ + for index_url in index_urls: + try: + repo = get_pypi_repo(index_url) + package = repo.get_package(name, version) + if package: + yield package + except RemoteNotFetchedException as e: + print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") ################################################################################ # @@ -387,7 +381,7 @@ def sortable_name_version(self): @classmethod def sorted(cls, namevers): - return sorted(namevers, key=cls.sortable_name_version) + return sorted(namevers or [], key=cls.sortable_name_version) @attr.attributes @@ -411,13 +405,6 @@ class Distribution(NameVer): metadata=dict(help="File name."), ) - path_or_url = attr.ib( - repr=False, - type=str, - default="", - metadata=dict(help="Path or download URL."), - ) - sha256 = attr.ib( repr=False, type=str, @@ -546,21 +533,60 @@ def package_url(self): @property def download_url(self): - if self.path_or_url and self.path_or_url.startswith("https://"): - return self.path_or_url - else: - return self.get_best_download_url() + return self.get_best_download_url() + + def get_best_download_url( + self, + index_urls=tuple([PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL]), + ): + """ + Return the best download URL for this distribution where best means that + PyPI is better and our selfhosted repo URLs are second. + If none is found, return a synthetic remote URL. + """ + for index_url in index_urls: + pypi_package = get_pypi_package( + name=self.normalized_name, + version=self.version, + index_url=index_url, + ) + if pypi_package: + if isinstance(pypi_package, tuple): + raise Exception("############", repr(pypi_package)) + try: + pypi_url = pypi_package.get_url_for_filename(self.filename) + except Exception as e: + raise Exception(repr(pypi_package)) from e + if pypi_url: + return pypi_url + + def download(self, dest_dir=THIRDPARTY_DIR): + """ + Download this distribution into `dest_dir` directory. + Return the fetched filename. + """ + assert self.filename + if TRACE: + print( + f"Fetching distribution of {self.name}=={self.version}:", + self.filename, + ) + + fetch_and_save_path_or_url( + filename=self.filename, + dest_dir=dest_dir, + path_or_url=self.path_or_url, + as_text=False, + ) + return self.filename @property def about_filename(self): return f"{self.filename}.ABOUT" - def has_about_file(self, dest_dir=THIRDPARTY_DIR): - return os.path.exists(os.path.join(dest_dir, self.about_filename)) - @property def about_download_url(self): - return self.build_remote_download_url(self.about_filename) + return f"{ABOUT_BASE_URL}/{self.about_filename}" @property def notice_filename(self): @@ -568,7 +594,7 @@ def notice_filename(self): @property def notice_download_url(self): - return self.build_remote_download_url(self.notice_filename) + return f"{ABOUT_BASE_URL}/{self.notice_filename}" @classmethod def from_path_or_url(cls, path_or_url): @@ -601,81 +627,10 @@ def from_filename(cls, filename): Return a distribution built from the data found in a `filename` string. Raise an exception if this is not a valid filename """ + filename = os.path.basename(filename.strip("/")) clazz = cls.get_dist_class(filename) return clazz.from_filename(filename) - @classmethod - def from_data(cls, data, keep_extra=False): - """ - Return a distribution built from a `data` mapping. - """ - filename = data["filename"] - dist = cls.from_filename(filename) - dist.update(data, keep_extra=keep_extra) - return dist - - @classmethod - def from_dist(cls, data, dist): - """ - Return a distribution built from a `data` mapping and update it with data - from another dist Distribution. Return None if it cannot be created - """ - # We can only create from a dist of the same package - has_same_key_fields = all( - data.get(kf) == getattr(dist, kf, None) for kf in ("type", "namespace", "name") - ) - if not has_same_key_fields: - print( - f"Missing key fields: Cannot derive a new dist from data: {data} and dist: {dist}" - ) - return - - has_key_field_values = all(data.get(kf) for kf in ("type", "name", "version")) - if not has_key_field_values: - print( - f"Missing key field values: Cannot derive a new dist from data: {data} and dist: {dist}" - ) - return - - data = dict(data) - # do not overwrite the data with the other dist - # only supplement - data.update({k: v for k, v in dist.get_updatable_data().items() if not data.get(k)}) - return cls.from_data(data) - - @classmethod - def build_remote_download_url(cls, filename, base_url=REMOTE_LINKS_URL): - """ - Return a direct download URL for a file in our remote repo - """ - return f"{base_url}/{filename}" - - def get_best_download_url(self): - """ - Return the best download URL for this distribution where best means that - PyPI is better and our own remote repo URLs are second. - If none is found, return a synthetic remote URL. - """ - name = self.normalized_name - version = self.version - filename = self.filename - - pypi_package = get_pypi_package(name=name, version=version) - if pypi_package: - pypi_url = pypi_package.get_url_for_filename(filename) - if pypi_url: - return pypi_url - - remote_package = get_remote_package(name=name, version=version) - if remote_package: - remote_url = remote_package.get_url_for_filename(filename) - if remote_url: - return remote_url - else: - # the package may not have been published yet, so we craft a URL - # using our remote base URL - return self.build_remote_download_url(self.filename) - def purl_identifiers(self, skinny=False): """ Return a mapping of non-empty identifier name/values for the purl @@ -781,9 +736,11 @@ def save_if_modified(location, content): fo.write(content) return True + as_about = self.to_about() + save_if_modified( location=os.path.join(dest_dir, self.about_filename), - content=saneyaml.dump(self.to_about()), + content=saneyaml.dump(as_about), ) notice_text = self.notice_text and self.notice_text.strip() @@ -844,7 +801,10 @@ def load_remote_about_data(self): NOTICE file if any. Return True if the data was updated. """ try: - about_text = fetch_content_from_path_or_url_through_cache(self.about_download_url) + about_text = fetch_content_from_path_or_url_through_cache( + path_or_url=self.about_download_url, + as_text=True, + ) except RemoteNotFetchedException: return False @@ -855,7 +815,10 @@ def load_remote_about_data(self): notice_file = about_data.pop("notice_file", None) if notice_file: try: - notice_text = fetch_content_from_path_or_url_through_cache(self.notice_download_url) + notice_text = fetch_content_from_path_or_url_through_cache( + path_or_url=self.notice_download_url, + as_text=True, + ) if notice_text: about_data["notice_text"] = notice_text except RemoteNotFetchedException: @@ -892,26 +855,23 @@ def validate_checksums(self, dest_dir=THIRDPARTY_DIR): return False return True - def get_pip_hash(self): - """ - Return a pip hash option string as used in requirements for this dist. - """ - assert self.sha256, f"Missinh SHA256 for dist {self}" - return f"--hash=sha256:{self.sha256}" - def get_license_keys(self): try: - keys = LICENSING.license_keys(self.license_expression, unique=True, simple=True) + keys = LICENSING.license_keys( + self.license_expression, + unique=True, + simple=True, + ) except license_expression.ExpressionParseError: return ["unknown"] return keys def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): """ - Fetch license files is missing in `dest_dir`. + Fetch license files if missing in `dest_dir`. Return True if license files were fetched. """ - paths_or_urls = get_remote_repo().links + urls = LinksRepository.from_url().links errors = [] extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] @@ -924,7 +884,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): try: # try remotely first - lic_url = get_link_for_filename(filename=filename, paths_or_urls=paths_or_urls) + lic_url = get_license_link_for_filename(filename=filename, urls=urls) fetch_and_save_path_or_url( filename=filename, @@ -960,9 +920,17 @@ def extract_pkginfo(self, dest_dir=THIRDPARTY_DIR): Return the text of the first PKG-INFO or METADATA file found in the archive of this Distribution in `dest_dir`. Return None if not found. """ - fmt = "zip" if self.filename.endswith(".whl") else None - dist = os.path.join(dest_dir, self.filename) - with tempfile.TemporaryDirectory(prefix="pypi-tmp-extract") as td: + + fn = self.filename + if fn.endswith(".whl"): + fmt = "zip" + elif fn.endswith(".tar.gz"): + fmt = "gztar" + else: + fmt = None + + dist = os.path.join(dest_dir, fn) + with tempfile.TemporaryDirectory(prefix=f"pypi-tmp-extract-{fn}") as td: shutil.unpack_archive(filename=dist, extract_dir=td, format=fmt) # NOTE: we only care about the first one found in the dist # which may not be 100% right @@ -983,7 +951,7 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): """ pkginfo_text = self.extract_pkginfo(dest_dir=dest_dir) if not pkginfo_text: - print(f"!!!!PKG-INFO not found in {self.filename}") + print(f"!!!!PKG-INFO/METADATA not found in {self.filename}") return raw_data = email.message_from_string(pkginfo_text) @@ -1075,6 +1043,20 @@ def update(self, data, overwrite=False, keep_extra=True): return updated +def get_license_link_for_filename(filename, urls): + """ + Return a link for `filename` found in the `links` list of URLs or paths. Raise an + exception if no link is found or if there are more than one link for that + file name. + """ + path_or_url = [l for l in urls if l.endswith(f"/{filename}")] + if not path_or_url: + raise Exception(f"Missing link to file: {filename}") + if not len(path_or_url) == 1: + raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) + return path_or_url[0] + + class InvalidDistributionFilename(Exception): pass @@ -1243,15 +1225,12 @@ def is_supported_by_tags(self, tags): """ Return True is this wheel is compatible with one of a list of PEP 425 tags. """ + if TRACE_DEEP: + print() + print("is_supported_by_tags: tags:", tags) + print("self.tags:", self.tags) return not self.tags.isdisjoint(tags) - def is_supported_by_environment(self, environment): - """ - Return True if this wheel is compatible with the Environment - `environment`. - """ - return not self.is_supported_by_tags(environment.tags) - def to_filename(self): """ Return a wheel filename reconstructed from its fields (that may not be @@ -1306,8 +1285,8 @@ class PypiPackage(NameVer): sdist = attr.ib( repr=False, - type=str, - default="", + type=Sdist, + default=None, metadata=dict(help="Sdist source distribution for this package."), ) @@ -1328,22 +1307,14 @@ def specifier(self): else: return self.name - @property - def specifier_with_hashes(self): - """ - Return a requirement specifier for this package with --hash options for - all its distributions - """ - items = [self.specifier] - items += [d.get_pip_hashes() for d in self.get_distributions()] - return " \\\n ".join(items) - - def get_supported_wheels(self, environment): + def get_supported_wheels(self, environment, verbose=TRACE_ULTRA_DEEP): """ Yield all the Wheel of this package supported and compatible with the Environment `environment`. """ envt_tags = environment.tags() + if verbose: + print("get_supported_wheels: envt_tags:", envt_tags) for wheel in self.wheels: if wheel.is_supported_by_tags(envt_tags): yield wheel @@ -1369,6 +1340,8 @@ def package_from_dists(cls, dists): >>> assert package.wheels == [w1, w2] """ dists = list(dists) + if TRACE_DEEP: + print(f"package_from_dists: {dists}") if not dists: return @@ -1379,13 +1352,21 @@ def package_from_dists(cls, dists): package = PypiPackage(name=normalized_name, version=version) for dist in dists: - if dist.normalized_name != normalized_name or dist.version != version: + if dist.normalized_name != normalized_name: if TRACE: print( - f" Skipping inconsistent dist name and version: {dist} " - f'Expected instead package name: {normalized_name} and version: "{version}"' + f" Skipping inconsistent dist name: expected {normalized_name} got {dist}" ) continue + elif dist.version != version: + dv = packaging_version.parse(dist.version) + v = packaging_version.parse(version) + if dv != v: + if TRACE: + print( + f" Skipping inconsistent dist version: expected {version} got {dist}" + ) + continue if isinstance(dist, Sdist): package.sdist = dist @@ -1396,39 +1377,41 @@ def package_from_dists(cls, dists): else: raise Exception(f"Unknown distribution type: {dist}") + if TRACE_DEEP: + print(f"package_from_dists: {package}") + return package @classmethod - def packages_from_one_path_or_url(cls, path_or_url): + def packages_from_dir(cls, directory): """ - Yield PypiPackages built from files found in at directory path or the - URL to an HTML page (that will be fetched). + Yield PypiPackages built from files found in at directory path. """ - extracted_paths_or_urls = get_paths_or_urls(path_or_url) - return cls.packages_from_many_paths_or_urls(extracted_paths_or_urls) + base = os.path.abspath(directory) + paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] + if TRACE_ULTRA_DEEP: + print("packages_from_dir: paths:", paths) + return cls.packages_from_many_paths_or_urls(paths) @classmethod def packages_from_many_paths_or_urls(cls, paths_or_urls): """ Yield PypiPackages built from a list of paths or URLs. """ - dists = cls.get_dists(paths_or_urls) + dists = cls.dists_from_paths_or_urls(paths_or_urls) + if TRACE_ULTRA_DEEP: + print("packages_from_many_paths_or_urls: dists:", dists) + dists = NameVer.sorted(dists) for _projver, dists_of_package in itertools.groupby( dists, key=NameVer.sortable_name_version, ): - yield PypiPackage.package_from_dists(dists_of_package) - - @classmethod - def get_versions_from_path_or_url(cls, name, path_or_url): - """ - Return a subset list from a list of PypiPackages version at `path_or_url` - that match PypiPackage `name`. - """ - packages = cls.packages_from_one_path_or_url(path_or_url) - return cls.get_versions(name, packages) + package = PypiPackage.package_from_dists(dists_of_package) + if TRACE_ULTRA_DEEP: + print("packages_from_many_paths_or_urls", package) + yield package @classmethod def get_versions(cls, name, packages): @@ -1451,15 +1434,6 @@ def get_latest_version(cls, name, packages): return return versions[-1] - @classmethod - def get_outdated_versions(cls, name, packages): - """ - Return all versions except the latest version of PypiPackage `name` from a - list of `packages`. - """ - versions = cls.get_versions(name, packages) - return versions[:-1] - @classmethod def get_name_version(cls, name, version, packages): """ @@ -1467,100 +1441,23 @@ def get_name_version(cls, name, version, packages): or None if it is not found. If `version` is None, return the latest version found. """ - if version is None: + if TRACE_ULTRA_DEEP: + print("get_name_version:", name, version, packages) + if not version: return cls.get_latest_version(name, packages) nvs = [p for p in cls.get_versions(name, packages) if p.version == version] if not nvs: - return + return name, version if len(nvs) == 1: return nvs[0] raise Exception(f"More than one PypiPackage with {name}=={version}") - def fetch_wheel( - self, - environment=None, - fetched_filenames=None, - dest_dir=THIRDPARTY_DIR, - ): - """ - Download a binary wheel of this package matching the ``environment`` - Enviromnent constraints into ``dest_dir`` directory. - - Return the wheel filename if it was fetched, None otherwise. - - If the provided ``environment`` is None then the current Python - interpreter environment is used implicitly. Do not refetch wheel if - their name is in a provided ``fetched_filenames`` set. - """ - fetched_wheel_filename = None - if fetched_filenames is not None: - fetched_filenames = fetched_filenames - else: - fetched_filenames = set() - - supported_wheels = list(self.get_supported_wheels(environment)) - for wheel in supported_wheels: - - if wheel.filename not in fetched_filenames: - fetch_and_save_path_or_url( - filename=wheel.filename, - path_or_url=wheel.path_or_url, - dest_dir=dest_dir, - as_text=False, - ) - fetched_filenames.add(wheel.filename) - fetched_wheel_filename = wheel.filename - - # TODO: what if there is more than one? - break - - return fetched_wheel_filename - - def fetch_sdist(self, dest_dir=THIRDPARTY_DIR): - """ - Download the source distribution into `dest_dir` directory. Return the - fetched filename if it was fetched, False otherwise. - """ - if self.sdist: - assert self.sdist.filename - if TRACE: - print("Fetching source for package:", self.name, self.version) - fetch_and_save_path_or_url( - filename=self.sdist.filename, - dest_dir=dest_dir, - path_or_url=self.sdist.path_or_url, - as_text=False, - ) - if TRACE: - print(" --> file:", self.sdist.filename) - return self.sdist.filename - else: - print(f"Missing sdist for: {self.name}=={self.version}") - return False - - def delete_files(self, dest_dir=THIRDPARTY_DIR): - """ - Delete all PypiPackage files from `dest_dir` including wheels, sdist and - their ABOUT files. Note that we do not delete licenses since they can be - shared by several packages: therefore this would be done elsewhere in a - function that is aware of all used licenses. - """ - for to_delete in self.wheels + [self.sdist]: - if not to_delete: - continue - tdfn = to_delete.filename - for deletable in [tdfn, f"{tdfn}.ABOUT", f"{tdfn}.NOTICE"]: - target = os.path.join(dest_dir, deletable) - if os.path.exists(target): - print(f"Deleting outdated {target}") - fileutils.delete(target) - @classmethod - def get_dists(cls, paths_or_urls): + def dists_from_paths_or_urls(cls, paths_or_urls): """ Return a list of Distribution given a list of `paths_or_urls` to wheels or source distributions. @@ -1574,9 +1471,9 @@ def get_dists(cls, paths_or_urls): ... /home/foo/bitarray-0.8.1-cp36-cp36m-linux_x86_64.whl ... bitarray-0.8.1-cp36-cp36m-macosx_10_9_x86_64.macosx_10_10_x86_64.whl ... bitarray-0.8.1-cp36-cp36m-win_amd64.whl - ... httsp://example.com/bar/bitarray-0.8.1.tar.gz + ... https://example.com/bar/bitarray-0.8.1.tar.gz ... bitarray-0.8.1.tar.gz.ABOUT bit.LICENSE'''.split() - >>> result = list(PypiPackage.get_dists(paths_or_urls)) + >>> result = list(PypiPackage.dists_from_paths_or_urls(paths_or_urls)) >>> for r in results: ... r.filename = '' ... r.path_or_url = '' @@ -1590,18 +1487,28 @@ def get_dists(cls, paths_or_urls): ... Wheel(name='bitarray', version='0.8.1', build='', ... python_versions=['cp36'], abis=['cp36m'], ... platforms=['win_amd64']), + ... Sdist(name='bitarray', version='0.8.1'), ... Sdist(name='bitarray', version='0.8.1') ... ] >>> assert expected == result """ + dists = [] + if TRACE_DEEP: + print(" ###paths_or_urls:", paths_or_urls) installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] for path_or_url in installable: try: - yield Distribution.from_path_or_url(path_or_url) + dist = Distribution.from_path_or_url(path_or_url) + dists.append(dist) + if TRACE_DEEP: + print( + " ===> dists_from_paths_or_urls:", dist, "with URL:", dist.download_url + ) except InvalidDistributionFilename: - if TRACE: - print(f"Skipping invalid distribution from: {path_or_url}") + if TRACE_DEEP: + print(f" Skipping invalid distribution from: {path_or_url}") continue + return dists def get_distributions(self): """ @@ -1626,10 +1533,11 @@ class Environment: """ An Environment describes a target installation environment with its supported Python version, ABI, platform, implementation and related - attributes. We can use these to pass as `pip download` options and force - fetching only the subset of packages that match these Environment - constraints as opposed to the current running Python interpreter - constraints. + attributes. + + We can use these to pass as `pip download` options and force fetching only + the subset of packages that match these Environment constraints as opposed + to the current running Python interpreter constraints. """ python_version = attr.ib( @@ -1648,18 +1556,21 @@ class Environment: type=str, default="cp", metadata=dict(help="Python implementation supported by this environment."), + repr=False, ) abis = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help="List of ABI tags supported by this environment."), + metadata=dict(help="List of ABI tags supported by this environment."), + repr=False, ) platforms = attr.ib( type=list, default=attr.Factory(list), metadata=dict(help="List of platform tags supported by this environment."), + repr=False, ) @classmethod @@ -1677,18 +1588,20 @@ def from_pyver_and_os(cls, python_version, operating_system): def get_pip_cli_options(self): """ - Return a list of pip command line options for this environment. + Return a list of pip download command line options for this environment. """ options = [ "--python-version", self.python_version, "--implementation", self.implementation, - "--abi", - self.abi, ] + for abi in self.abis: + options.extend(["--abi", abi]) + for platform in self.platforms: options.extend(["--platform", platform]) + return options def tags(self): @@ -1704,7 +1617,6 @@ def tags(self): ) ) - ################################################################################ # # PyPI repo and link index for package wheels and sources @@ -1713,11 +1625,18 @@ def tags(self): @attr.attributes -class Repository: +class PypiSimpleRepository: """ - A PyPI or links Repository of Python packages: wheels, sdist, ABOUT, etc. + A PyPI repository of Python packages: wheels, sdist, etc. like the public + PyPI simple index. It is populated lazily based on requested packages names. """ + index_url = attr.ib( + type=str, + default=PYPI_SIMPLE_URL, + metadata=dict(help="Base PyPI simple URL for this index."), + ) + packages_by_normalized_name = attr.ib( type=dict, default=attr.Factory(lambda: defaultdict(list)), @@ -1730,126 +1649,157 @@ class Repository: metadata=dict(help="Mapping of {(name, version): package object} available in this repo"), ) - def get_links(self, *args, **kwargs): - raise NotImplementedError() - def get_versions(self, name): """ Return a list of all available PypiPackage version for this package name. The list may be empty. """ - raise NotImplementedError() + name = name and NameVer.normalize_name(name) + self._populate_links_and_packages(name) + return self.packages_by_normalized_name.get(name, []) + + def get_latest_version(self, name): + """ + Return the latest PypiPackage version for this package name or None. + """ + versions = self.get_versions(name) + return PypiPackage.get_latest_version(name, versions) def get_package(self, name, version): """ Return the PypiPackage with name and version or None. """ - raise NotImplementedError() + versions = self.get_versions(name) + if TRACE_DEEP: + print("PypiPackage.get_package:versions:", versions) + return PypiPackage.get_name_version(name, version, versions) - def get_latest_version(self, name): + def _fetch_links(self, name, _LINKS={}): """ - Return the latest PypiPackage version for this package name or None. + Return a list of download link URLs found in a PyPI simple index for package + name using the `index_url` of this repository. """ - raise NotImplementedError() + name = name and NameVer.normalize_name(name) + index_url = self.index_url + name = name and NameVer.normalize_name(name) + index_url = index_url.strip("/") + index_url = f"{index_url}/{name}" -@attr.attributes -class LinksRepository(Repository): - """ - Represents a simple links repository which is either a local directory with - Python wheels and sdist or a remote URL to an HTML with links to these. - (e.g. suitable for use with pip --find-links). - """ + if TRACE_DEEP: + print( + f" Finding links for {name!r} from PyPI index: {index_url} : cached?:", + index_url in _LINKS, + ) - path_or_url = attr.ib( - type=str, - default="", - metadata=dict(help="Package directory path or URL"), - ) + if index_url not in _LINKS: + text = fetch_content_from_path_or_url_through_cache(path_or_url=index_url, as_text=True) + links = collect_urls(text) + # TODO: keep sha256 + links = [l.partition("#sha256=") for l in links] + links = [url for url, _, _sha256 in links] + _LINKS[index_url] = [l for l in links if l.endswith(EXTENSIONS)] - links = attr.ib( - type=list, - default=attr.Factory(list), - metadata=dict(help="List of links available in this repo"), - ) + links = _LINKS[index_url] + if TRACE_DEEP: + print(f" Found links {links!r}") + return links - def __attrs_post_init__(self): - if not self.links: - self.links = get_paths_or_urls(links_url=self.path_or_url) - if not self.packages_by_normalized_name: - for p in PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=self.links): - normalized_name = p.normalized_name - self.packages_by_normalized_name[normalized_name].append(p) - self.packages_by_normalized_name_version[(normalized_name, p.version)] = p + def _populate_links_and_packages(self, name): + name = name and NameVer.normalize_name(name) - def get_links(self, *args, **kwargs): - return self.links or [] + if TRACE_DEEP: + print("PypiPackage._populate_links_and_packages:name:", name) - def get_versions(self, name): - name = name and NameVer.normalize_name(name) - return self.packages_by_normalized_name.get(name, []) + links = self._fetch_links(name) + packages = list(PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links)) - def get_latest_version(self, name): - return PypiPackage.get_latest_version(name, self.get_versions(name)) + if TRACE_DEEP: + print("PypiPackage._populate_links_and_packages:packages:", packages) - def get_package(self, name, version): - return PypiPackage.get_name_version(name, version, self.get_versions(name)) + self.packages_by_normalized_name[name] = packages + + for p in packages: + name = name and NameVer.normalize_name(p.name) + self.packages_by_normalized_name_version[(name, p.version)] = p @attr.attributes -class PypiRepository(Repository): +class LinksRepository: """ - Represents the public PyPI simple index. - It is populated lazily based on requested packages names + Represents a simple links repository such an HTTP directory listing or a + page with links. """ - simple_url = attr.ib( + url = attr.ib( type=str, - default=PYPI_SIMPLE_URL, - metadata=dict(help="Base PyPI simple URL for this index."), + default="", + metadata=dict(help="Links directory URL"), ) - links_by_normalized_name = attr.ib( - type=dict, - default=attr.Factory(lambda: defaultdict(list)), - metadata=dict(help="Mapping of {package name: [links]} available in this repo"), + links = attr.ib( + type=list, + default=attr.Factory(list), + metadata=dict(help="List of links available in this repo"), ) - def _fetch_links(self, name): - name = name and NameVer.normalize_name(name) - return find_pypi_links(name=name, simple_url=self.simple_url) + def __attrs_post_init__(self): + if not self.links: + self.links = self.find_links() - def _populate_links_and_packages(self, name): - name = name and NameVer.normalize_name(name) - if name in self.links_by_normalized_name: - return + def find_links(self): + """ + Return a list of link URLs found in the HTML page at `self.url` + """ + links_url = self.url + if TRACE_DEEP: + print(f"Finding links from: {links_url}") + plinks_url = urllib.parse.urlparse(links_url) + base_url = urllib.parse.SplitResult( + plinks_url.scheme, plinks_url.netloc, "", "", "" + ).geturl() - links = self._fetch_links(name) - self.links_by_normalized_name[name] = links + if TRACE_DEEP: + print(f"Base URL {base_url}") - packages = list(PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links)) - self.packages_by_normalized_name[name] = packages + text = fetch_content_from_path_or_url_through_cache( + path_or_url=links_url, + as_text=True, + ) - for p in packages: - name = name and NameVer.normalize_name(p.name) - self.packages_by_normalized_name_version[(name, p.version)] = p + links = [] + for link in collect_urls(text): + if not link.endswith(EXTENSIONS): + continue - def get_links(self, name, *args, **kwargs): - name = name and NameVer.normalize_name(name) - self._populate_links_and_packages(name) - return self.links_by_normalized_name.get(name, []) + plink = urllib.parse.urlsplit(link) - def get_versions(self, name): - name = name and NameVer.normalize_name(name) - self._populate_links_and_packages(name) - return self.packages_by_normalized_name.get(name, []) + if plink.scheme: + # full URL kept as-is + url = link - def get_latest_version(self, name): - return PypiPackage.get_latest_version(name, self.get_versions(name)) + if plink.path.startswith("/"): + # absolute link + url = f"{base_url}{link}" - def get_package(self, name, version): - return PypiPackage.get_name_version(name, version, self.get_versions(name)) + else: + # relative link + url = f"{links_url}/{link}" + + if TRACE_DEEP: + print(f"Adding URL: {url}") + links.append(url) + + if TRACE: + print(f"Found {len(links)} links at {links_url}") + return links + + @classmethod + def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}): + if url not in _LINKS_REPO: + _LINKS_REPO[url] = cls(url=url) + return _LINKS_REPO[url] ################################################################################ # Globals for remote repos to be lazily created and cached on first use for the @@ -1862,52 +1812,27 @@ def get_local_packages(directory=THIRDPARTY_DIR): Return the list of all PypiPackage objects built from a local directory. Return an empty list if the package cannot be found. """ - return list(PypiPackage.packages_from_one_path_or_url(path_or_url=directory)) - - -def get_local_repo(directory=THIRDPARTY_DIR): - return LinksRepository(path_or_url=directory) - + return list(PypiPackage.packages_from_dir(directory=directory)) -_REMOTE_REPO = None +def get_pypi_repo(index_url, _PYPI_REPO={}): + if index_url not in _PYPI_REPO: + _PYPI_REPO[index_url] = PypiSimpleRepository(index_url=index_url) + return _PYPI_REPO[index_url] -def get_remote_repo(remote_links_url=REMOTE_LINKS_URL): - global _REMOTE_REPO - if not _REMOTE_REPO: - _REMOTE_REPO = LinksRepository(path_or_url=remote_links_url) - return _REMOTE_REPO - -def get_remote_package(name, version, remote_links_url=REMOTE_LINKS_URL): +def get_pypi_package(name, version, index_url, verbose=TRACE_DEEP): """ Return a PypiPackage or None. """ try: - return get_remote_repo(remote_links_url).get_package(name, version) - except RemoteNotFetchedException as e: - print(f"Failed to fetch remote package info: {e}") - - -_PYPI_REPO = None - - -def get_pypi_repo(pypi_simple_url=PYPI_SIMPLE_URL): - global _PYPI_REPO - if not _PYPI_REPO: - _PYPI_REPO = PypiRepository(simple_url=pypi_simple_url) - return _PYPI_REPO - + package = get_pypi_repo(index_url).get_package(name, version) + if verbose: + print(f" get_pypi_package: {name} @ {version} info from {index_url}: {package}") + return package -def get_pypi_package(name, version, pypi_simple_url=PYPI_SIMPLE_URL): - """ - Return a PypiPackage or None. - """ - try: - return get_pypi_repo(pypi_simple_url).get_package(name, version) except RemoteNotFetchedException as e: - print(f"Failed to fetch remote package info: {e}") - + print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") ################################################################################ # @@ -1936,8 +1861,8 @@ def get(self, path_or_url, as_text=True): Get a file from a `path_or_url` through the cache. `path_or_url` can be a path or a URL to a file. """ - filename = os.path.basename(path_or_url.strip("/")) - cached = os.path.join(self.directory, filename) + cache_key = quote_plus(path_or_url.strip("/")) + cached = os.path.join(self.directory, cache_key) if not os.path.exists(cached): content = get_file_content(path_or_url=path_or_url, as_text=as_text) @@ -1948,32 +1873,23 @@ def get(self, path_or_url, as_text=True): else: return get_local_file_content(path=cached, as_text=as_text) - def put(self, filename, content): - """ - Put in the cache the `content` of `filename`. - """ - cached = os.path.join(self.directory, filename) - wmode = "wb" if isinstance(content, bytes) else "w" - with open(cached, wmode) as fo: - fo.write(content) - def get_file_content(path_or_url, as_text=True): """ Fetch and return the content at `path_or_url` from either a local path or a remote URL. Return the content as bytes is `as_text` is False. """ - if path_or_url.startswith("file://") or ( - path_or_url.startswith("/") and os.path.exists(path_or_url) - ): - return get_local_file_content(path=path_or_url, as_text=as_text) - - elif path_or_url.startswith("https://"): + if path_or_url.startswith("https://"): if TRACE: print(f"Fetching: {path_or_url}") _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) return content + elif path_or_url.startswith("file://") or ( + path_or_url.startswith("/") and os.path.exists(path_or_url) + ): + return get_local_file_content(path=path_or_url, as_text=as_text) + else: raise Exception(f"Unsupported URL scheme: {path_or_url}") @@ -2016,6 +1932,7 @@ def get_remote_file_content( # using a GET with stream=True ensure we get the the final header from # several redirects and that we can ignore content there. A HEAD request may # not get us this last header + print(f" DOWNLOADING {url}") with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: status = response.status_code if status != requests.codes.ok: # NOQA @@ -2039,76 +1956,11 @@ def get_remote_file_content( return response.headers, response.text if as_text else response.content -def get_url_content_if_modified( - url, - md5, - _delay=0, -): - """ - Return fetched content bytes at `url` or None if the md5 has not changed. - Retries multiple times to fetch if there is a HTTP 429 throttling response - and this with an increasing delay. - """ - time.sleep(_delay) - headers = None - if md5: - etag = f'"{md5}"' - headers = {"If-None-Match": f"{etag}"} - - # using a GET with stream=True ensure we get the the final header from - # several redirects and that we can ignore content there. A HEAD request may - # not get us this last header - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: - status = response.status_code - if status == requests.codes.too_many_requests and _delay < 20: # NOQA - # too many requests: start waiting with some exponential delay - _delay = (_delay * 2) or 1 - return get_url_content_if_modified(url=url, md5=md5, _delay=_delay) - - elif status == requests.codes.not_modified: # NOQA - # all is well, the md5 is the same - return None - - elif status != requests.codes.ok: # NOQA - raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") - - return response.content - - -def get_remote_headers(url): - """ - Fetch and return a mapping of HTTP headers of `url`. - """ - headers, _content = get_remote_file_content(url, headers_only=True) - return headers - - -def fetch_and_save_filename_from_paths_or_urls( - filename, - paths_or_urls, - dest_dir=THIRDPARTY_DIR, +def fetch_content_from_path_or_url_through_cache( + path_or_url, as_text=True, + cache=Cache(), ): - """ - Return the content from fetching the `filename` file name found in the - `paths_or_urls` list of URLs or paths and save to `dest_dir`. Raise an - Exception on errors. Treats the content as text if `as_text` is True - otherwise as binary. - """ - path_or_url = get_link_for_filename( - filename=filename, - paths_or_urls=paths_or_urls, - ) - - return fetch_and_save_path_or_url( - filename=filename, - dest_dir=dest_dir, - path_or_url=path_or_url, - as_text=as_text, - ) - - -def fetch_content_from_path_or_url_through_cache(path_or_url, as_text=True, cache=Cache()): """ Return the content from fetching at path or URL. Raise an Exception on errors. Treats the content as text if as_text is True otherwise as treat as @@ -2118,423 +1970,90 @@ def fetch_content_from_path_or_url_through_cache(path_or_url, as_text=True, cach Note: the `cache` argument is a global, though it does not really matter since it does not hold any state which is only kept on disk. """ - if cache: - return cache.get(path_or_url=path_or_url, as_text=as_text) - else: - return get_file_content(path_or_url=path_or_url, as_text=as_text) + return cache.get(path_or_url=path_or_url, as_text=as_text) -def fetch_and_save_path_or_url(filename, dest_dir, path_or_url, as_text=True, through_cache=True): +def fetch_and_save_path_or_url( + filename, + dest_dir, + path_or_url, + as_text=True, +): """ Return the content from fetching the `filename` file name at URL or path and save to `dest_dir`. Raise an Exception on errors. Treats the content as text if as_text is True otherwise as treat as binary. """ - if through_cache: - content = fetch_content_from_path_or_url_through_cache(path_or_url, as_text) - else: - content = fetch_content_from_path_or_url_through_cache(path_or_url, as_text, cache=None) - + content = fetch_content_from_path_or_url_through_cache( + path_or_url=path_or_url, + as_text=as_text, + ) output = os.path.join(dest_dir, filename) wmode = "w" if as_text else "wb" with open(output, wmode) as fo: fo.write(content) return content - ################################################################################ -# -# Sync and fix local thirdparty directory for various issues and gaps -# +# Requirements processing ################################################################################ -def fetch_missing_sources(dest_dir=THIRDPARTY_DIR): - """ - Given a thirdparty dir, fetch missing source distributions from our remote - repo or PyPI. Return a list of (name, version) tuples for source - distribution that were not found - """ - not_found = [] - local_packages = get_local_packages(directory=dest_dir) - remote_repo = get_remote_repo() - pypi_repo = get_pypi_repo() - - for package in local_packages: - if not package.sdist: - print(f"Finding sources for: {package.name}=={package.version}: ", end="") - try: - pypi_package = pypi_repo.get_package(name=package.name, version=package.version) - - if pypi_package and pypi_package.sdist: - print(f"Fetching sources from Pypi") - pypi_package.fetch_sdist(dest_dir=dest_dir) - continue - else: - remote_package = remote_repo.get_package( - name=package.name, version=package.version - ) - - if remote_package and remote_package.sdist: - print(f"Fetching sources from Remote") - remote_package.fetch_sdist(dest_dir=dest_dir) - continue - - except RemoteNotFetchedException as e: - print(f"Failed to fetch remote package info: {e}") - - print(f"No sources found") - not_found.append( - ( - package.name, - package.version, - ) - ) - - return not_found - - -def fetch_missing_wheels( - python_versions=PYTHON_VERSIONS, - operating_systems=PLATFORMS_BY_OS, - dest_dir=THIRDPARTY_DIR, +def get_required_remote_packages( + requirements_file="requirements.txt", + index_url=PYPI_SIMPLE_URL, ): """ - Given a thirdparty dir fetch missing wheels for all known combos of Python - versions and OS. Return a list of tuple (Package, Environment) for wheels - that were not found locally or remotely. + Yield tuple of (name, version, PypiPackage) for packages listed in the + `requirements_file` requirements file and found in the PyPI index + ``index_url`` URL. """ - local_packages = get_local_packages(directory=dest_dir) - evts = itertools.product(python_versions, operating_systems) - environments = [Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] - packages_and_envts = itertools.product(local_packages, environments) - - not_fetched = [] - fetched_filenames = set() - for package, envt in packages_and_envts: + required_name_versions = load_requirements(requirements_file=requirements_file) + return get_required_packages(required_name_versions=required_name_versions, index_url=index_url) - filename = package.fetch_wheel( - environment=envt, - fetched_filenames=fetched_filenames, - dest_dir=dest_dir, - ) - if filename: - fetched_filenames.add(filename) - else: - not_fetched.append( - ( - package, - envt, - ) - ) - - return not_fetched - - -def build_missing_wheels( - packages_and_envts, - build_remotely=False, - with_deps=False, - dest_dir=THIRDPARTY_DIR, - remote_build_log_file=None, +def get_required_packages( + required_name_versions, + index_url=PYPI_SIMPLE_URL, ): """ - Build all wheels in a list of tuple (Package, Environment) and save in - `dest_dir`. Return a list of tuple (Package, Environment), and a list of - built wheel filenames. - """ - - not_built = [] - built_filenames = [] - - packages_and_envts = itertools.groupby(sorted(packages_and_envts), key=operator.itemgetter(0)) - - for package, pkg_envts in packages_and_envts: - - envts = [envt for _pkg, envt in pkg_envts] - python_versions = sorted(set(e.python_version for e in envts)) - operating_systems = sorted(set(e.operating_system for e in envts)) - built = None - try: - built = build_wheels( - requirements_specifier=package.specifier, - with_deps=with_deps, - build_remotely=build_remotely, - python_versions=python_versions, - operating_systems=operating_systems, - verbose=TRACE, - dest_dir=dest_dir, - remote_build_log_file=remote_build_log_file, - ) - print(".") - except Exception as e: - import traceback - - print("#############################################################") - print("############# WHEEL BUILD FAILED ######################") - traceback.print_exc() - print() - print("#############################################################") - - if not built: - for envt in pkg_envts: - not_built.append((package, envt)) - else: - for bfn in built: - print(f" --> Built wheel: {bfn}") - built_filenames.append(bfn) - - return not_built, built_filenames - - -################################################################################ -# -# Functions to handle remote or local repo used to "find-links" -# -################################################################################ - - -def get_paths_or_urls(links_url): - if links_url.startswith("https:"): - paths_or_urls = find_links_from_release_url(links_url) - else: - paths_or_urls = find_links_from_dir(links_url) - return paths_or_urls - - -def find_links_from_dir(directory=THIRDPARTY_DIR): - """ - Return a list of path to files in `directory` for any file that ends with - any of the extension in the list of `extensions` strings. - """ - base = os.path.abspath(directory) - files = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] - return files - - -get_links = re.compile('href="([^"]+)"').findall - - -def find_links_from_release_url(links_url=REMOTE_LINKS_URL): - """ - Return a list of download link URLs found in the HTML page at `links_url` - URL that starts with the `prefix` string and ends with any of the extension - in the list of `extensions` strings. Use the `base_url` to prefix the links. + Yield tuple of (name, version) or a PypiPackage for package name/version + listed in the ``required_name_versions`` list and found in the PyPI index + ``index_url`` URL. """ if TRACE: - print(f"Finding links for {links_url}") - - plinks_url = urllib.parse.urlparse(links_url) - - base_url = urllib.parse.SplitResult(plinks_url.scheme, plinks_url.netloc, "", "", "").geturl() - - if TRACE: - print(f"Base URL {base_url}") - - _headers, text = get_remote_file_content(links_url) - links = [] - for link in get_links(text): - if not link.endswith(EXTENSIONS): - continue + print("get_required_packages", index_url) - plink = urllib.parse.urlsplit(link) - - if plink.scheme: - # full URL kept as-is - url = link - - if plink.path.startswith("/"): - # absolute link - url = f"{base_url}{link}" - - else: - # relative link - url = f"{links_url}/{link}" + repo = get_pypi_repo(index_url=index_url) + for name, version in required_name_versions: if TRACE: - print(f"Adding URL: {url}") - - links.append(url) - - if TRACE: - print(f"Found {len(links)} links at {links_url}") - return links - - -def find_pypi_links(name, simple_url=PYPI_SIMPLE_URL): - """ - Return a list of download link URLs found in a PyPI simple index for package name. - with the list of `extensions` strings. Use the `simple_url` PyPI url. - """ - if TRACE: - print(f"Finding links for {simple_url}") - - name = name and NameVer.normalize_name(name) - simple_url = simple_url.strip("/") - simple_url = f"{simple_url}/{name}" - - _headers, text = get_remote_file_content(simple_url) - links = get_links(text) - # TODO: keep sha256 - links = [l.partition("#sha256=") for l in links] - links = [url for url, _, _sha256 in links] - links = [l for l in links if l.endswith(EXTENSIONS)] - return links - - -def get_link_for_filename(filename, paths_or_urls): - """ - Return a link for `filename` found in the `links` list of URLs or paths. Raise an - exception if no link is found or if there are more than one link for that - file name. - """ - path_or_url = [l for l in paths_or_urls if l.endswith(f"/{filename}")] - if not path_or_url: - raise Exception(f"Missing link to file: {filename}") - if not len(path_or_url) == 1: - raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) - return path_or_url[0] - + print(" get_required_packages: name:", name, "version:", version) + yield repo.get_package(name, version) ################################################################################ -# -# Requirements processing -# +# Functions to update or fetch ABOUT and license files ################################################################################ -class MissingRequirementException(Exception): - pass - - -def get_required_packages(required_name_versions): - """ - Return a tuple of (remote packages, PyPI packages) where each is a mapping - of {(name, version): PypiPackage} for packages listed in the - `required_name_versions` list of (name, version) tuples. Raise a - MissingRequirementException with a list of missing (name, version) if a - requirement cannot be satisfied remotely or in PyPI. - """ - remote_repo = get_remote_repo() - - remote_packages = { - (name, version): remote_repo.get_package(name, version) - for name, version in required_name_versions - } - - pypi_repo = get_pypi_repo() - pypi_packages = { - (name, version): pypi_repo.get_package(name, version) - for name, version in required_name_versions - } - - # remove any empty package (e.g. that do not exist in some place) - remote_packages = {nv: p for nv, p in remote_packages.items() if p} - pypi_packages = {nv: p for nv, p in pypi_packages.items() if p} - - # check that we are not missing any - repos_name_versions = set(remote_packages.keys()) | set(pypi_packages.keys()) - missing_name_versions = required_name_versions.difference(repos_name_versions) - if missing_name_versions: - raise MissingRequirementException(sorted(missing_name_versions)) - - return remote_packages, pypi_packages - - -def get_required_remote_packages( - requirements_file="requirements.txt", - force_pinned=True, - remote_links_url=REMOTE_LINKS_URL, +def clean_about_files( + dest_dir=THIRDPARTY_DIR, ): """ - Yield tuple of (name, version, PypiPackage) for packages listed in the - `requirements_file` requirements file and found in the PyPI-like link repo - ``remote_links_url`` if this is a URL. Treat this ``remote_links_url`` as a - local directory path to a wheels directory if this is not a a URL. - """ - required_name_versions = load_requirements( - requirements_file=requirements_file, - force_pinned=force_pinned, - ) - - if remote_links_url.startswith("https://"): - repo = get_remote_repo(remote_links_url=remote_links_url) - else: - # a local path - assert os.path.exists(remote_links_url), f"Path does not exist: {remote_links_url}" - repo = get_local_repo(directory=remote_links_url) - - for name, version in required_name_versions: - if version: - yield name, version, repo.get_package(name, version) - else: - yield name, version, repo.get_latest_version(name) - - -def update_requirements(name, version=None, requirements_file="requirements.txt"): - """ - Upgrade or add `package_name` with `new_version` to the `requirements_file` - requirements file. Write back requirements sorted with name and version - canonicalized. Note: this cannot deal with hashed or unpinned requirements. - Do nothing if the version already exists as pinned. + Given a thirdparty dir, clean ABOUT files """ - normalized_name = NameVer.normalize_name(name) - - is_updated = False - updated_name_versions = [] - for existing_name, existing_version in load_requirements(requirements_file, force_pinned=False): - - existing_normalized_name = NameVer.normalize_name(existing_name) - - if normalized_name == existing_normalized_name: - if version != existing_version: - is_updated = True - updated_name_versions.append( - ( - existing_normalized_name, - existing_version, - ) - ) - - if is_updated: - updated_name_versions = sorted(updated_name_versions) - nvs = "\n".join(f"{name}=={version}" for name, version in updated_name_versions) - - with open(requirements_file, "w") as fo: - fo.write(nvs) - - -def hash_requirements(dest_dir=THIRDPARTY_DIR, requirements_file="requirements.txt"): - """ - Hash all the requirements found in the `requirements_file` - requirements file based on distributions available in `dest_dir` - """ - local_repo = get_local_repo(directory=dest_dir) - packages_by_normalized_name_version = local_repo.packages_by_normalized_name_version - hashed = [] - for name, version in load_requirements(requirements_file, force_pinned=True): - package = packages_by_normalized_name_version.get((name, version)) - if not package: - raise Exception(f"Missing required package {name}=={version}") - hashed.append(package.specifier_with_hashes) - - with open(requirements_file, "w") as fo: - fo.write("\n".join(hashed)) - + local_packages = get_local_packages(directory=dest_dir) + for local_package in local_packages: + for local_dist in local_package.get_distributions(): + local_dist.load_about_data(dest_dir=dest_dir) + local_dist.set_checksums(dest_dir=dest_dir) -################################################################################ -# -# Functions to update or fetch ABOUT and license files -# -################################################################################ + if "classifiers" in local_dist.extra_data: + local_dist.extra_data.pop("classifiers", None) + local_dist.save_about_and_notice_files(dest_dir) -def add_fetch_or_update_about_and_license_files( - dest_dir=THIRDPARTY_DIR, - include_remote=True, - strip_classifiers=False, -): +def fetch_abouts_and_licenses(dest_dir=THIRDPARTY_DIR): """ Given a thirdparty dir, add missing ABOUT. LICENSE and NOTICE files using best efforts: @@ -2544,32 +2063,28 @@ def add_fetch_or_update_about_and_license_files( - derive from existing distribution with same name and latest version that would have such ABOUT file - extract ABOUT file data from distributions PKGINFO or METADATA files - - TODO: make API calls to fetch package data from DejaCode - - The process consists in load and iterate on every package distributions, - collect data and then acsk to save. """ - local_packages = get_local_packages(directory=dest_dir) - local_repo = get_local_repo(directory=dest_dir) - - remote_repo = get_remote_repo() - def get_other_dists(_package, _dist): """ - Return a list of all the dists from package that are not the `dist` object + Return a list of all the dists from `_package` that are not the `_dist` + object """ return [d for d in _package.get_distributions() if d != _dist] + selfhosted_repo = get_pypi_repo(index_url=ABOUT_PYPI_SIMPLE_URL) + local_packages = get_local_packages(directory=dest_dir) + packages_by_name = defaultdict(list) + for local_package in local_packages: + distributions = list(local_package.get_distributions()) + distribution = distributions[0] + packages_by_name[distribution.name].append(local_package) + for local_package in local_packages: for local_dist in local_package.get_distributions(): local_dist.load_about_data(dest_dir=dest_dir) local_dist.set_checksums(dest_dir=dest_dir) - if strip_classifiers and "classifiers" in local_dist.extra_data: - local_dist.extra_data.pop("classifiers", None) - local_dist.save_about_and_notice_files(dest_dir) - # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) @@ -2588,16 +2103,16 @@ def get_other_dists(_package, _dist): local_dist.fetch_license_files(dest_dir=dest_dir) continue - # try to get a latest version of the same package that is not our version + # try to get another version of the same package that is not our version other_local_packages = [ p - for p in local_repo.get_versions(local_package.name) + for p in packages_by_name[local_package.name] if p.version != local_package.version ] - latest_local_version = other_local_packages and other_local_packages[-1] - if latest_local_version: - latest_local_dists = list(latest_local_version.get_distributions()) + other_local_version = other_local_packages and other_local_packages[-1] + if other_local_version: + latest_local_dists = list(other_local_version.get_distributions()) for latest_local_dist in latest_local_dists: latest_local_dist.load_about_data(dest_dir=dest_dir) if not latest_local_dist.has_key_metadata(): @@ -2615,9 +2130,35 @@ def get_other_dists(_package, _dist): local_dist.fetch_license_files(dest_dir=dest_dir) continue - if include_remote: - # lets try to fetch remotely - local_dist.load_remote_about_data() + # lets try to fetch remotely + local_dist.load_remote_about_data() + + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + local_dist.save_about_and_notice_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir) + continue + + # try to get a latest version of the same package that is not our version + other_remote_packages = [ + p + for p in selfhosted_repo.get_versions(local_package.name) + if p.version != local_package.version + ] + + latest_version = other_remote_packages and other_remote_packages[-1] + if latest_version: + latest_dists = list(latest_version.get_distributions()) + for remote_dist in latest_dists: + remote_dist.load_remote_about_data() + if not remote_dist.has_key_metadata(): + # there is not much value to get other data if we are missing the key ones + continue + else: + local_dist.update_from_other_dist(remote_dist) + # if has key data we may look to improve later, but we can move on + if local_dist.has_key_metadata(): + break # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): @@ -2625,33 +2166,6 @@ def get_other_dists(_package, _dist): local_dist.fetch_license_files(dest_dir=dest_dir) continue - # try to get a latest version of the same package that is not our version - other_remote_packages = [ - p - for p in remote_repo.get_versions(local_package.name) - if p.version != local_package.version - ] - - latest_version = other_remote_packages and other_remote_packages[-1] - if latest_version: - latest_dists = list(latest_version.get_distributions()) - for remote_dist in latest_dists: - remote_dist.load_remote_about_data() - if not remote_dist.has_key_metadata(): - # there is not much value to get other data if we are missing the key ones - continue - else: - local_dist.update_from_other_dist(remote_dist) - # if has key data we may look to improve later, but we can move on - if local_dist.has_key_metadata(): - break - - # if has key data we may look to improve later, but we can move on - if local_dist.has_key_metadata(): - local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) - continue - # try to get data from pkginfo (no license though) local_dist.load_pkginfo_data(dest_dir=dest_dir) @@ -2661,15 +2175,12 @@ def get_other_dists(_package, _dist): lic_errs = local_dist.fetch_license_files(dest_dir) - # TODO: try to get data from dejacode - if not local_dist.has_key_metadata(): print(f"Unable to add essential ABOUT data for: {local_dist}") if lic_errs: lic_errs = "\n".join(lic_errs) print(f"Failed to fetch some licenses:: {lic_errs}") - ################################################################################ # # Functions to build new Python wheels including native on multiple OSes @@ -2680,9 +2191,9 @@ def get_other_dists(_package, _dist): def call(args, verbose=TRACE): """ Call args in a subprocess and display output on the fly if ``trace`` is True. - Return or raise stdout, stderr, returncode + Return a tuple of (returncode, stdout, stderr) """ - if TRACE: + if TRACE_DEEP: print("Calling:", " ".join(args)) with subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" @@ -2700,312 +2211,78 @@ def call(args, verbose=TRACE): stdout, stderr = process.communicate() if not stdout.strip(): stdout = "\n".join(stdouts) - - returncode = process.returncode - - if returncode == 0: - return returncode, stdout, stderr - else: - raise Exception(returncode, stdout, stderr) - - -def add_or_upgrade_built_wheels( - name, - version=None, - python_versions=PYTHON_VERSIONS, - operating_systems=PLATFORMS_BY_OS, - dest_dir=THIRDPARTY_DIR, - build_remotely=False, - with_deps=False, - verbose=TRACE, - remote_build_log_file=None, -): - """ - Add or update package `name` and `version` as a binary wheel saved in - `dest_dir`. Use the latest version if `version` is None. Return the a list - of the collected, fetched or built wheel file names or an empty list. - - Use the provided lists of `python_versions` (e.g. "36", "39") and - `operating_systems` (e.g. linux, windows or macos) to decide which specific - wheel to fetch or build. - - Include wheels for all dependencies if `with_deps` is True. - Build remotely is `build_remotely` is True. - Do not wait for build completion and log to ``remote_build_log_file`` - file path if provided. - """ - assert name, "Name is required" - ver = version and f"=={version}" or "" - print(f"\nAdding wheels for package: {name}{ver}") - - if verbose: - print("python_versions:", python_versions) - print("operating_systems:", operating_systems) - - wheel_filenames = [] - # a mapping of {req specifier: {mapping build_wheels kwargs}} - wheels_to_build = {} - for python_version, operating_system in itertools.product(python_versions, operating_systems): - print( - f" Adding wheels for package: {name}{ver} on {python_version,} and {operating_system}" - ) - environment = Environment.from_pyver_and_os(python_version, operating_system) - - # Check if requested wheel already exists locally for this version - local_repo = get_local_repo(directory=dest_dir) - local_package = local_repo.get_package(name=name, version=version) - - has_local_wheel = False - if version and local_package: - for wheel in local_package.get_supported_wheels(environment): - has_local_wheel = True - wheel_filenames.append(wheel.filename) - break - if has_local_wheel: - print(f" local wheel exists: {wheel.filename}") - continue - - if not version: - pypi_package = get_pypi_repo().get_latest_version(name) - version = pypi_package.version - - # Check if requested wheel already exists remotely or in Pypi for this version - wheel_filename = fetch_package_wheel( - name=name, version=version, environment=environment, dest_dir=dest_dir - ) - if verbose: - print(" fetching package wheel:", wheel_filename) - if wheel_filename: - wheel_filenames.append(wheel_filename) - - # the wheel is not available locally, remotely or in Pypi - # we need to build binary from sources - requirements_specifier = f"{name}=={version}" - to_build = wheels_to_build.get(requirements_specifier) - if to_build: - to_build["python_versions"].append(python_version) - to_build["operating_systems"].append(operating_system) - else: - wheels_to_build[requirements_specifier] = dict( - requirements_specifier=requirements_specifier, - python_versions=[python_version], - operating_systems=[operating_system], - dest_dir=dest_dir, - build_remotely=build_remotely, - with_deps=with_deps, - verbose=verbose, - remote_build_log_file=remote_build_log_file, - ) - - for build_wheels_kwargs in wheels_to_build.values(): - bwheel_filenames = build_wheels(**build_wheels_kwargs) - wheel_filenames.extend(bwheel_filenames) - - return sorted(set(wheel_filenames)) - - -def build_wheels( - requirements_specifier, - python_versions=PYTHON_VERSIONS, - operating_systems=PLATFORMS_BY_OS, - dest_dir=THIRDPARTY_DIR, - build_remotely=False, - with_deps=False, - verbose=False, - remote_build_log_file=None, -): - """ - Given a pip `requirements_specifier` string (such as package names or as - name==version), build the corresponding binary wheel(s) for all - `python_versions` and `operating_systems` combinations and save them - back in `dest_dir` and return a list of built wheel file names. - - Include wheels for all dependencies if `with_deps` is True. - - First try to build locally to process pure Python wheels, and fall back to - build remotey on all requested Pythons and operating systems. - - Do not wait for build completion and log to ``remote_build_log_file`` - file path if provided. - """ - all_pure, builds = build_wheels_locally_if_pure_python( - requirements_specifier=requirements_specifier, - with_deps=with_deps, - verbose=verbose, - dest_dir=dest_dir, - ) - for local_build in builds: - print(f"Built wheel: {local_build}") - - if all_pure: - return builds - - if build_remotely: - remote_builds = build_wheels_remotely_on_multiple_platforms( - requirements_specifier=requirements_specifier, - with_deps=with_deps, - python_versions=python_versions, - operating_systems=operating_systems, - verbose=verbose, - dest_dir=dest_dir, - remote_build_log_file=remote_build_log_file, - ) - builds.extend(remote_builds) - - return builds - - -def build_wheels_remotely_on_multiple_platforms( - requirements_specifier, - with_deps=False, - python_versions=PYTHON_VERSIONS, - operating_systems=PLATFORMS_BY_OS, - verbose=False, - dest_dir=THIRDPARTY_DIR, - remote_build_log_file=None, -): - """ - Given pip `requirements_specifier` string (such as package names or as - name==version), build the corresponding binary wheel(s) including wheels for - all dependencies for all `python_versions` and `operating_systems` - combinations and save them back in `dest_dir` and return a list of built - wheel file names. - - Do not wait for build completion and log to ``remote_build_log_file`` - file path if provided. - """ - check_romp_is_configured() - pyos_options = get_romp_pyos_options(python_versions, operating_systems) - deps = "" if with_deps else "--no-deps" - verbose = "--verbose" if verbose else "" - - if remote_build_log_file: - # zero seconds, no wait, log to file instead - wait_build_for = "0" - else: - wait_build_for = DEFAULT_ROMP_BUILD_WAIT - - romp_args = [ - "romp", - "--interpreter", - "cpython", - "--architecture", - "x86_64", - "--check-period", - wait_build_for, # in seconds - ] - - if remote_build_log_file: - romp_args += ["--build-log-file", remote_build_log_file] - - romp_args += pyos_options + [ - "--artifact-paths", - "*.whl", - "--artifact", - "artifacts.tar.gz", - "--command", - f"python -m pip {verbose} install --user --upgrade pip setuptools wheel; " - f"python -m pip {verbose} wheel {deps} {requirements_specifier}", - ] - - if verbose: - romp_args.append("--verbose") - - print(f"Building wheels for: {requirements_specifier}") - print(f"Using command:", " ".join(romp_args)) - call(romp_args) - wheel_filenames = [] - if not remote_build_log_file: - wheel_filenames = extract_tar("artifacts.tar.gz", dest_dir) - for wfn in wheel_filenames: - print(f" built wheel: {wfn}") - return wheel_filenames + return process.returncode, stdout, stderr -def fetch_remotely_built_wheels( - remote_build_log_file, +def download_wheels_with_pip( + requirements_specifiers=tuple(), + requirements_files=tuple(), + environment=None, dest_dir=THIRDPARTY_DIR, - no_wait=False, - verbose=False, + index_url=PYPI_SIMPLE_URL, + links_url=ABOUT_LINKS_URL, ): """ - Given a ``remote_build_log_file`` file path with a JSON lines log of a - remote build, fetch the built wheels and move them to ``dest_dir``. Return a - list of built wheel file names. - """ - wait = "0" if no_wait else DEFAULT_ROMP_BUILD_WAIT # in seconds - - romp_args = [ - "romp-fetch", - "--build-log-file", - remote_build_log_file, - "--check-period", - wait, + Fetch binary wheel(s) using pip for the ``envt`` Environment given a list of + pip ``requirements_files`` and a list of ``requirements_specifiers`` string + (such as package names or as name==version). + Return a tuple of (list of downloaded files, error string). + Do NOT fail on errors, but return an error message on failure. + """ + + cli_args = [ + "pip", + "download", + "--only-binary", + ":all:", + "--dest", + dest_dir, + "--index-url", + index_url, + "--find-links", + links_url, + "--no-color", + "--progress-bar", + "off", + "--no-deps", + "--no-build-isolation", + "--verbose", + # "--verbose", ] - if verbose: - romp_args.append("--verbose") - - print(f"Fetching built wheels from log file: {remote_build_log_file}") - print(f"Using command:", " ".join(romp_args)) - - call(romp_args, verbose=verbose) - - wheel_filenames = [] - - for art in os.listdir(os.getcwd()): - if not art.endswith("artifacts.tar.gz") or not os.path.getsize(art): - continue - - print(f" Processing artifact archive: {art}") - wheel_fns = extract_tar(art, dest_dir) - for wfn in wheel_fns: - print(f" Retrieved built wheel: {wfn}") - wheel_filenames.extend(wheel_fns) - return wheel_filenames - - -def get_romp_pyos_options( - python_versions=PYTHON_VERSIONS, - operating_systems=PLATFORMS_BY_OS, -): - """ - Return a list of CLI options for romp - For example: - >>> expected = ['--version', '3.6', '--version', '3.7', '--version', '3.8', - ... '--version', '3.9', '--version', '3.10', '--platform', 'linux', - ... '--platform', 'macos', '--platform', 'windows'] - >>> assert get_romp_pyos_options() == expected - """ - python_dot_versions = [get_python_dot_version(pv) for pv in sorted(set(python_versions))] - pyos_options = list( - itertools.chain.from_iterable(("--version", ver) for ver in python_dot_versions) - ) + if environment: + eopts = environment.get_pip_cli_options() + cli_args.extend(eopts) + else: + print("WARNING: no download environment provided.") - pyos_options += list( - itertools.chain.from_iterable( - ("--platform", plat) for plat in sorted(set(operating_systems)) - ) - ) + cli_args.extend(requirements_specifiers) + for req_file in requirements_files: + cli_args.extend(["--requirement", req_file]) - return pyos_options + if TRACE: + print(f"Downloading wheels using command:", " ".join(cli_args)) + existing = set(os.listdir(dest_dir)) + error = False + try: + returncode, _stdout, stderr = call(cli_args, verbose=True) + if returncode != 0: + error = stderr + except Exception as e: + error = str(e) -def check_romp_is_configured(): - # these environment variable must be set before - has_envt = ( - os.environ.get("ROMP_BUILD_REQUEST_URL") - and os.environ.get("ROMP_DEFINITION_ID") - and os.environ.get("ROMP_PERSONAL_ACCESS_TOKEN") - and os.environ.get("ROMP_USERNAME") - ) + if error: + print() + print("###########################################################################") + print("##################### Failed to fetch all wheels ##########################") + print("###########################################################################") + print(error) + print() + print("###########################################################################") - if not has_envt: - raise Exception( - "ROMP_BUILD_REQUEST_URL, ROMP_DEFINITION_ID, " - "ROMP_PERSONAL_ACCESS_TOKEN and ROMP_USERNAME " - "are required enironment variables." - ) + downloaded = existing ^ set(os.listdir(dest_dir)) + return sorted(downloaded), error def build_wheels_locally_if_pure_python( @@ -3034,9 +2311,9 @@ def build_wheels_locally_if_pure_python( "--wheel-dir", wheel_dir, ] - + deps - + verbose - + [requirements_specifier] + +deps + +verbose + +[requirements_specifier] ) print(f"Building local wheels for: {requirements_specifier}") @@ -3064,95 +2341,6 @@ def build_wheels_locally_if_pure_python( return all_pure, pure_built -# TODO: Use me -def optimize_wheel(wheel_filename, dest_dir=THIRDPARTY_DIR): - """ - Optimize a wheel named `wheel_filename` in `dest_dir` such as renaming its - tags for PyPI compatibility and making it smaller if possible. Return the - name of the new wheel if renamed or the existing new name otherwise. - """ - if is_pure_wheel(wheel_filename): - print(f"Pure wheel: {wheel_filename}, nothing to do.") - return wheel_filename - - original_wheel_loc = os.path.join(dest_dir, wheel_filename) - wheel_dir = tempfile.mkdtemp(prefix="scancode-release-wheels-") - awargs = ["auditwheel", "addtag", "--wheel-dir", wheel_dir, original_wheel_loc] - call(awargs) - - audited = os.listdir(wheel_dir) - if not audited: - # cannot optimize wheel - return wheel_filename - - assert len(audited) == 1 - new_wheel_name = audited[0] - - new_wheel_loc = os.path.join(wheel_dir, new_wheel_name) - - # this needs to go now - os.remove(original_wheel_loc) - - if new_wheel_name == wheel_filename: - os.rename(new_wheel_loc, original_wheel_loc) - return wheel_filename - - new_wheel = Wheel.from_filename(new_wheel_name) - non_pypi_plats = utils_pypi_supported_tags.validate_platforms_for_pypi(new_wheel.platforms) - new_wheel.platforms = [p for p in new_wheel.platforms if p not in non_pypi_plats] - if not new_wheel.platforms: - print(f"Cannot make wheel PyPI compatible: {original_wheel_loc}") - os.rename(new_wheel_loc, original_wheel_loc) - return wheel_filename - - new_wheel_cleaned_filename = new_wheel.to_filename() - new_wheel_cleaned_loc = os.path.join(dest_dir, new_wheel_cleaned_filename) - os.rename(new_wheel_loc, new_wheel_cleaned_loc) - return new_wheel_cleaned_filename - - -def extract_tar( - location, - dest_dir=THIRDPARTY_DIR, -): - """ - Extract a tar archive at `location` in the `dest_dir` directory. Return a - list of extracted locations (either directories or files). - """ - with open(location, "rb") as fi: - with tarfile.open(fileobj=fi) as tar: - members = list(tar.getmembers()) - tar.extractall(dest_dir, members=members) - - return [os.path.basename(ti.name) for ti in members if ti.type == tarfile.REGTYPE] - - -def fetch_package_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR): - """ - Fetch the binary wheel for package `name` and `version` and save in - `dest_dir`. Use the provided `environment` Environment to determine which - specific wheel to fetch. - - Return the fetched wheel file name on success or None if it was not fetched. - Trying fetching from our own remote repo, then from PyPI. - """ - wheel_filename = None - remote_package = get_remote_package(name=name, version=version) - if TRACE: - print(" remote_package:", remote_package) - if remote_package: - wheel_filename = remote_package.fetch_wheel(environment=environment, dest_dir=dest_dir) - if wheel_filename: - return wheel_filename - - pypi_package = get_pypi_package(name=name, version=version) - if TRACE: - print(" pypi_package:", pypi_package) - if pypi_package: - wheel_filename = pypi_package.fetch_wheel(environment=environment, dest_dir=dest_dir) - return wheel_filename - - def check_about(dest_dir=THIRDPARTY_DIR): try: subprocess.check_output(f"about check {dest_dir}".split()) @@ -3195,6 +2383,9 @@ def find_problems( def compute_normalized_license_expression(declared_licenses): + """ + Return a normalized license expression or None. + """ if not declared_licenses: return try: From 931f610aa8fd93aac6178b1f0beb3d55d4119ba0 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 5 Mar 2022 07:42:35 +0100 Subject: [PATCH 111/247] Cleanup whitespaces Signed-off-by: Philippe Ombredanne --- configure | 5 ++--- configure.bat | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/configure b/configure index c1d36aa..b2d64c4 100755 --- a/configure +++ b/configure @@ -55,7 +55,7 @@ CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin # Thirdparty package locations and index handling # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org if [ -f "$CFG_ROOT_DIR/thirdparty" ]; then - PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty " + PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" fi PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" @@ -87,7 +87,7 @@ main() { done PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" - + find_python create_virtualenv "$VIRTUALENV_DIR" install_packages "$CFG_REQUIREMENTS" @@ -197,7 +197,6 @@ clean() { } - main set +e diff --git a/configure.bat b/configure.bat index 961e0d9..2ae4727 100644 --- a/configure.bat +++ b/configure.bat @@ -209,4 +209,4 @@ for %%F in (%CLEANABLE%) do ( rmdir /s /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 del /f /q "%CFG_ROOT_DIR%\%%F" >nul 2>&1 ) -exit /b 0 \ No newline at end of file +exit /b 0 From 6e43a7a2a98322fc3da3ed61826757481b831c50 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 8 Mar 2022 16:17:33 -0800 Subject: [PATCH 112/247] Add usage instructions to README.rst Signed-off-by: Jono Yang --- README.rst | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 4173689..26bcdbc 100644 --- a/README.rst +++ b/README.rst @@ -9,7 +9,32 @@ our existing ones as well. Usage ===== -Usage instructions can be found in ``docs/skeleton-usage.rst``. + +A brand new project +------------------- +.. code-block:: bash + + git init my-new-repo + cd my-new-repo + git pull git@github.com:nexB/skeleton + + # Create the new repo on GitHub, then update your remote + git remote set-url origin git@github.com:nexB/your-new-repo.git + +From here, you can make the appropriate changes to the files for your specific project. + +Update an existing project +--------------------------- +.. code-block:: bash + + cd my-existing-project + git remote add skeleton git@github.com:nexB/skeleton + git fetch skeleton + git merge skeleton/main --allow-unrelated-histories + +This is also the workflow to use when updating the skeleton files in any given repository. + +More usage instructions can be found in ``docs/skeleton-usage.rst``. Release Notes ============= From b272e3b7c7e47a3143e0886ebc9e88b12c1c6eab Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 9 Mar 2022 14:08:43 +0100 Subject: [PATCH 113/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index e303053..829cf8c 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -330,6 +330,7 @@ def get_package_versions( except RemoteNotFetchedException as e: print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") + ################################################################################ # # Core models @@ -1617,6 +1618,7 @@ def tags(self): ) ) + ################################################################################ # # PyPI repo and link index for package wheels and sources @@ -1801,6 +1803,7 @@ def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}): _LINKS_REPO[url] = cls(url=url) return _LINKS_REPO[url] + ################################################################################ # Globals for remote repos to be lazily created and cached on first use for the # life of the session together with some convenience functions. @@ -1834,6 +1837,7 @@ def get_pypi_package(name, version, index_url, verbose=TRACE_DEEP): except RemoteNotFetchedException as e: print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") + ################################################################################ # # Basic file and URL-based operations using a persistent file-based Cache @@ -1994,6 +1998,7 @@ def fetch_and_save_path_or_url( fo.write(content) return content + ################################################################################ # Requirements processing ################################################################################ @@ -2031,6 +2036,7 @@ def get_required_packages( print(" get_required_packages: name:", name, "version:", version) yield repo.get_package(name, version) + ################################################################################ # Functions to update or fetch ABOUT and license files ################################################################################ @@ -2181,6 +2187,7 @@ def get_other_dists(_package, _dist): lic_errs = "\n".join(lic_errs) print(f"Failed to fetch some licenses:: {lic_errs}") + ################################################################################ # # Functions to build new Python wheels including native on multiple OSes @@ -2311,9 +2318,9 @@ def build_wheels_locally_if_pure_python( "--wheel-dir", wheel_dir, ] - +deps - +verbose - +[requirements_specifier] + + deps + + verbose + + [requirements_specifier] ) print(f"Building local wheels for: {requirements_specifier}") From 1e4d3bce4626494bb1392a063360e236caf77294 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 9 Mar 2022 16:56:19 +0100 Subject: [PATCH 114/247] Reorg setup sections This is now organized with more important data first. Signed-off-by: Philippe Ombredanne --- setup.cfg | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/setup.cfg b/setup.cfg index 81f762a..d8a7941 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,18 +1,15 @@ [metadata] -license_files = - apache-2.0.LICENSE - NOTICE - AUTHORS.rst - CHANGELOG.rst name = skeleton -author = nexB. Inc. and others -author_email = info@aboutcode.org license = Apache-2.0 # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 description = skeleton long_description = file:README.rst url = https://github.com/nexB/skeleton + +author = nexB. Inc. and others +author_email = info@aboutcode.org + classifiers = Development Status :: 5 - Production/Stable Intended Audience :: Developers @@ -20,27 +17,42 @@ classifiers = Programming Language :: Python :: 3 :: Only Topic :: Software Development Topic :: Utilities + keywords = utilities +license_files = + apache-2.0.LICENSE + NOTICE + AUTHORS.rst + CHANGELOG.rst + [options] -package_dir= +package_dir = =src -packages=find: +packages = find: include_package_data = true zip_safe = false -install_requires = + setup_requires = setuptools_scm[toml] >= 4 +python_requires = >=3.6.* + +install_requires = + + [options.packages.find] -where=src +where = src + [options.extras_require] testing = pytest >= 6, != 7.0.0 pytest-xdist >= 2 + aboutcode-toolkit >= 6.0.0 black -docs= - Sphinx>=3.3.1 - sphinx-rtd-theme>=0.5.0 - doc8>=0.8.1 + +docs = + Sphinx >= 3.3.1 + sphinx-rtd-theme >= 0.5.0 + doc8 >= 0.8.1 From 03d4799ac44a4def7dba1eb3a0ef3a280c663e43 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 9 Mar 2022 20:39:36 +0100 Subject: [PATCH 115/247] Do not depend on click. Use argparse. These boostrap scripts cannot depend on click. Signed-off-by: Philippe Ombredanne --- docs/skeleton-usage.rst | 16 +++--- etc/scripts/gen_requirements.py | 59 +++++++++++++--------- etc/scripts/gen_requirements_dev.py | 78 ++++++++++++++++------------- 3 files changed, 86 insertions(+), 67 deletions(-) diff --git a/docs/skeleton-usage.rst b/docs/skeleton-usage.rst index 7d16259..113bc71 100644 --- a/docs/skeleton-usage.rst +++ b/docs/skeleton-usage.rst @@ -49,7 +49,7 @@ customizing the skeleton files to your project: .. code-block:: bash - ./configure --init + ./configure This will initialize the virtual environment for the project, pull in the dependencies from PyPI and add them to the virtual environment. @@ -77,7 +77,7 @@ Replace \ with the version number of the Python being used, for exampl To generate requirements-dev.txt after requirements.txt has been generated: .. code-block:: bash - ./configure --init --dev + ./configure --dev python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site-packages\`` @@ -88,10 +88,11 @@ Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site- .\configure --init --dev python .\\etc\\scripts\\gen_requirements_dev.py -s .\\venv\\Lib\\site-packages\\ + Collecting and generating ABOUT files for dependencies ------------------------------------------------------ -Ensure that the dependencies used by ``etc/scripts/bootstrap.py`` are installed: +Ensure that the dependencies used by ``etc/scripts/fetch_thirdparty.py`` are installed: .. code-block:: bash @@ -102,7 +103,7 @@ dependencies as wheels and generate ABOUT files for them: .. code-block:: bash - python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps + python etc/scripts/fetch_thirdparty.py -r requirements.txt -r requirements-dev.txt There may be issues with the generated ABOUT files, which will have to be corrected. You can check to see if your corrections are valid by running: @@ -122,8 +123,8 @@ Usage after project initialization Once the ``requirements.txt`` and ``requirements-dev.txt`` have been generated and the project dependencies and their ABOUT files have been uploaded to -thirdparty.aboutcode.org/pypi, you can configure the project without using the -``--init`` option. +thirdparty.aboutcode.org/pypi, you can configure the project as needed, typically +when you update dependencies or use a new checkout. If the virtual env for the project becomes polluted, or you would like to remove it, use the ``--clean`` option: @@ -146,12 +147,11 @@ update the dependencies in ``setup.cfg``, then run: .. code-block:: bash ./configure --clean # Remove existing virtual environment - ./configure --init # Create project virtual environment, pull in new dependencies source venv/bin/activate # Ensure virtual environment is activated python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ # Regenerate requirements.txt python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ # Regenerate requirements-dev.txt pip install -r etc/scripts/requirements.txt # Install dependencies needed by etc/scripts/bootstrap.py - python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps # Collect dependency wheels and their ABOUT files + python etc/scripts/fetch_thirdparty.py -r requirements.txt -r requirements-dev.txt # Collect dependency wheels and their ABOUT files Ensure that the generated ABOUT files are valid, then take the dependency wheels and ABOUT files and upload them to thirdparty.aboutcode.org/pypi. diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index 6f17a75..07e26f7 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -8,37 +8,48 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -import click +import argparse +import pathlib + import utils_requirements +""" +Utilities to manage requirements files. +NOTE: this should use ONLY the standard library and not import anything else +because this is used for boostrapping with no requirements installed. +""" -@click.command() -@click.option( - "-s", - "--site-packages-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), - required=True, - metavar="DIR", - help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', -) -@click.option( - "-r", - "--requirements-file", - type=click.Path(path_type=str, dir_okay=False), - metavar="FILE", - default="requirements.txt", - show_default=True, - help="Path to the requirements file to update or create.", -) -@click.help_option("-h", "--help") -def gen_requirements(site_packages_dir, requirements_file): - """ + +def gen_requirements(): + description = """ Create or replace the `--requirements-file` file FILE requirements file with all locally installed Python packages.all Python packages found installed in `--site-packages-dir` """ + parser = argparse.ArgumentParser(description=description) + + parser.add_argument( + "-s", + "--site-packages-dir", + dest="site_packages_dir", + type=pathlib.Path, + required=True, + metavar="DIR", + help="Path to the 'site-packages' directory where wheels are installed such as lib/python3.6/site-packages", + ) + parser.add_argument( + "-r", + "--requirements-file", + type=pathlib.Path, + metavar="FILE", + default="requirements.txt", + help="Path to the requirements file to update or create.", + ) + + args = parser.parse_args() + utils_requirements.lock_requirements( - requirements_file=requirements_file, - site_packages_dir=site_packages_dir, + site_packages_dir=args.site_packages_dir, + requirements_file=args.requirements_file, ) diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index ef80455..12cc06d 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -8,51 +8,59 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -import click +import argparse +import pathlib + import utils_requirements +""" +Utilities to manage requirements files. +NOTE: this should use ONLY the standard library and not import anything else +because this is used for boostrapping with no requirements installed. +""" -@click.command() -@click.option( - "-s", - "--site-packages-dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False, resolve_path=True), - required=True, - metavar="DIR", - help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', -) -@click.option( - "-d", - "--dev-requirements-file", - type=click.Path(path_type=str, dir_okay=False), - metavar="FILE", - default="requirements-dev.txt", - show_default=True, - help="Path to the dev requirements file to update or create.", -) -@click.option( - "-r", - "--main-requirements-file", - type=click.Path(path_type=str, dir_okay=False), - default="requirements.txt", - metavar="FILE", - show_default=True, - help="Path to the main requirements file. Its requirements will be excluded " - "from the generated dev requirements.", -) -@click.help_option("-h", "--help") -def gen_dev_requirements(site_packages_dir, dev_requirements_file, main_requirements_file): - """ + +def gen_dev_requirements(): + description = """ Create or overwrite the `--dev-requirements-file` pip requirements FILE with all Python packages found installed in `--site-packages-dir`. Exclude package names also listed in the --main-requirements-file pip requirements FILE (that are assume to the production requirements and therefore to always be present in addition to the development requirements). """ + parser = argparse.ArgumentParser(description=description) + + parser.add_argument( + "-s", + "--site-packages-dir", + type=pathlib.Path, + required=True, + metavar="DIR", + help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', + ) + parser.add_argument( + "-d", + "--dev-requirements-file", + type=pathlib.Path, + metavar="FILE", + default="requirements-dev.txt", + help="Path to the dev requirements file to update or create.", + ) + parser.add_argument( + "-r", + "--main-requirements-file", + type=pathlib.Path, + default="requirements.txt", + metavar="FILE", + help="Path to the main requirements file. Its requirements will be excluded " + "from the generated dev requirements.", + ) + args = parser.parse_args() + utils_requirements.lock_dev_requirements( - dev_requirements_file=dev_requirements_file, - main_requirements_file=main_requirements_file, - site_packages_dir=site_packages_dir, + dev_requirements_file=args.dev_requirements_file, + main_requirements_file=args.main_requirements_file, + site_packages_dir=args.site_packages_dir, ) From f0d5a2979c9e04c7f77c5cf76aea5c936ee31ac3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 9 Mar 2022 20:47:06 +0100 Subject: [PATCH 116/247] Correct configure scripts These were no longer working Signed-off-by: Philippe Ombredanne --- configure | 53 +++++++++++++++++++++++---------------------------- configure.bat | 5 +---- 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/configure b/configure index b2d64c4..93a836b 100755 --- a/configure +++ b/configure @@ -67,34 +67,6 @@ if [[ "$CFG_QUIET" == "" ]]; then fi -################################ -# Main command line entry point -main() { - CFG_REQUIREMENTS=$REQUIREMENTS - NO_INDEX="--no-index" - - # We are using getopts to parse option arguments that start with "-" - while getopts :-: optchar; do - case "${optchar}" in - -) - case "${OPTARG}" in - help ) cli_help;; - clean ) find_python && clean;; - dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; - init ) NO_INDEX="";; - esac;; - esac - done - - PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS $NO_INDEX" - - find_python - create_virtualenv "$VIRTUALENV_DIR" - install_packages "$CFG_REQUIREMENTS" - . "$CFG_BIN_DIR/activate" -} - - ################################ # Find a proper Python to run # Use environment variables or a file if available. @@ -197,6 +169,29 @@ clean() { } -main +################################ +# Main command line entry point +CFG_REQUIREMENTS=$REQUIREMENTS + +# We are using getopts to parse option arguments that start with "-" +while getopts :-: optchar; do + case "${optchar}" in + -) + case "${OPTARG}" in + help ) cli_help;; + clean ) find_python && clean;; + dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; + init ) ;; + esac;; + esac +done + +PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS" + +find_python +create_virtualenv "$VIRTUALENV_DIR" +install_packages "$CFG_REQUIREMENTS" +. "$CFG_BIN_DIR/activate" + set +e diff --git a/configure.bat b/configure.bat index 2ae4727..7001514 100644 --- a/configure.bat +++ b/configure.bat @@ -77,14 +77,11 @@ if not "%1" == "" ( if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" ) - if "%1" EQU "--init" ( - set "NO_INDEX= " - ) shift goto again ) -set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% %NO_INDEX%" +set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS%" @rem ################################ From 6ed9983e882b195b3093434f70fd0d0f01d8399f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 9 Mar 2022 20:50:04 +0100 Subject: [PATCH 117/247] Remove remnants of configure --init This does not exists anymore Signed-off-by: Philippe Ombredanne --- configure | 5 ----- configure.bat | 4 ---- docs/skeleton-usage.rst | 3 ++- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/configure b/configure index 93a836b..8c5f4ab 100755 --- a/configure +++ b/configure @@ -137,14 +137,10 @@ cli_help() { echo " usage: ./configure [options]" echo echo The default is to configure for regular use. Use --dev for development. - echo Use the --init option if starting a new project and the project - echo dependencies are not available on thirdparty.aboutcode.org/pypi/ - echo and requirements.txt and/or requirements-dev.txt has not been generated. echo echo The options are: echo " --clean: clean built and installed files and exit." echo " --dev: configure the environment for development." - echo " --init: pull dependencies from PyPI. Used when first setting up a project." echo " --help: display this help message and exit." echo echo By default, the python interpreter version found in the path is used. @@ -181,7 +177,6 @@ while getopts :-: optchar; do help ) cli_help;; clean ) find_python && clean;; dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; - init ) ;; esac;; esac done diff --git a/configure.bat b/configure.bat index 7001514..e38b5fb 100644 --- a/configure.bat +++ b/configure.bat @@ -180,14 +180,10 @@ exit /b 0 echo " usage: configure [options]" echo " " echo The default is to configure for regular use. Use --dev for development. - echo Use the --init option if starting a new project and the project - echo dependencies are not available on thirdparty.aboutcode.org/pypi/ - echo and requirements.txt and/or requirements-dev.txt has not been generated. echo " " echo The options are: echo " --clean: clean built and installed files and exit." echo " --dev: configure the environment for development." - echo " --init: pull dependencies from PyPI. Used when first setting up a project." echo " --help: display this help message and exit." echo " " echo By default, the python interpreter version found in the path is used. diff --git a/docs/skeleton-usage.rst b/docs/skeleton-usage.rst index 113bc71..ad9b9ff 100644 --- a/docs/skeleton-usage.rst +++ b/docs/skeleton-usage.rst @@ -54,6 +54,7 @@ customizing the skeleton files to your project: This will initialize the virtual environment for the project, pull in the dependencies from PyPI and add them to the virtual environment. + Generating requirements.txt and requirements-dev.txt ---------------------------------------------------- @@ -85,7 +86,7 @@ Note: on Windows, the ``site-packages`` directory is located at ``venv\Lib\site- .. code-block:: bash python .\\etc\\scripts\\gen_requirements.py -s .\\venv\\Lib\\site-packages\\ - .\configure --init --dev + .\configure --dev python .\\etc\\scripts\\gen_requirements_dev.py -s .\\venv\\Lib\\site-packages\\ From bf6bbaac67cb8fa31d205b2d76e538a3bed8780f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 11 Mar 2022 07:52:07 +0100 Subject: [PATCH 118/247] Pytyon 3.6 is not available on Windows 2022 Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 089abe9..6ca19c4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos11_cpython image_name: macos-11 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs From 4ab834f15860a22bcbca2a5ea567ce5f39c7c345 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 11 Mar 2022 09:42:46 +0100 Subject: [PATCH 119/247] Add long_description_content_type Twine and PyPI prefer having it. Signed-off-by: Philippe Ombredanne --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index d8a7941..12d6654 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,6 +5,7 @@ license = Apache-2.0 # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 description = skeleton long_description = file:README.rst +long_description_content_type = text/x-rst url = https://github.com/nexB/skeleton author = nexB. Inc. and others From 4ef463fdbbcc1c108307b07e26b4a231d2229799 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 14 Mar 2022 11:12:54 +0100 Subject: [PATCH 120/247] Run fewer Azure jobs This new configuration means that all the Python versions are tested in a single CI job. This allows doing fewer checkouts and improves CI throughput overall. Signed-off-by: Philippe Ombredanne --- etc/ci/azure-posix.yml | 31 ++++++++++++++----------------- etc/ci/azure-win.yml | 30 +++++++++++++++--------------- 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/etc/ci/azure-posix.yml b/etc/ci/azure-posix.yml index 7a9acff..9fdc7f1 100644 --- a/etc/ci/azure-posix.yml +++ b/etc/ci/azure-posix.yml @@ -13,10 +13,8 @@ jobs: strategy: matrix: - ${{ each pyver in parameters.python_versions }}: ${{ each tsuite in parameters.test_suites }}: - ${{ format('py{0} {1}', pyver, tsuite.key) }}: - python_version: ${{ pyver }} + ${{ tsuite.key }}: test_suite_label: ${{ tsuite.key }} test_suite: ${{ tsuite.value }} @@ -24,19 +22,18 @@ jobs: - checkout: self fetchDepth: 10 - - task: UsePythonVersion@0 - inputs: - versionSpec: '$(python_version)' - architecture: '${{ parameters.python_architecture }}' - displayName: 'Install Python $(python_version)' + - ${{ each pyver in parameters.python_versions }}: + - task: UsePythonVersion@0 + inputs: + versionSpec: '${{ pyver }}' + architecture: '${{ parameters.python_architecture }}' + displayName: '${{ pyver }} - Install Python' - - script: | - python --version - python3 --version - python$(python_version) --version - echo "python$(python_version)" > PYTHON_EXECUTABLE - ./configure --dev - displayName: 'Run Configure' + - script: | + python${{ pyver }} --version + echo "python${{ pyver }}" > PYTHON_EXECUTABLE + ./configure --clean && ./configure --dev + displayName: '${{ pyver }} - Configure' - - script: $(test_suite) - displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' + - script: $(test_suite) + displayName: '${{ pyver }} - $(test_suite_label) on ${{ parameters.job_name }}' diff --git a/etc/ci/azure-win.yml b/etc/ci/azure-win.yml index 03d8927..26b4111 100644 --- a/etc/ci/azure-win.yml +++ b/etc/ci/azure-win.yml @@ -13,27 +13,27 @@ jobs: strategy: matrix: - ${{ each pyver in parameters.python_versions }}: ${{ each tsuite in parameters.test_suites }}: - ${{ format('py{0} {1}', pyver, tsuite.key) }}: - python_version: ${{ pyver }} + ${{ tsuite.key }}: test_suite_label: ${{ tsuite.key }} test_suite: ${{ tsuite.value }} + steps: - checkout: self fetchDepth: 10 - - task: UsePythonVersion@0 - inputs: - versionSpec: '$(python_version)' - architecture: '${{ parameters.python_architecture }}' - displayName: 'Install Python $(python_version)' + - ${{ each pyver in parameters.python_versions }}: + - task: UsePythonVersion@0 + inputs: + versionSpec: '${{ pyver }}' + architecture: '${{ parameters.python_architecture }}' + displayName: '${{ pyver }} - Install Python' - - script: | - python --version - echo | set /p=python> PYTHON_EXECUTABLE - configure --dev - displayName: 'Run Configure' + - script: | + python --version + echo | set /p=python> PYTHON_EXECUTABLE + configure --clean && configure --dev + displayName: '${{ pyver }} - Configure' - - script: $(test_suite) - displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' + - script: $(test_suite) + displayName: '${{ pyver }} - $(test_suite_label) on ${{ parameters.job_name }}' From e9210529fbe09a498abf85d27154110a34728fcb Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 22 Mar 2022 21:13:44 +0530 Subject: [PATCH 121/247] Add RTD css templates Adds changes to conf.py and html template theme_overrides.css created by @johnmhoran Signed-off-by: Ayan Sinha Mahapatra --- docs/source/_static/theme_overrides.css | 353 ++++++++++++++++++++++++ docs/source/conf.py | 21 ++ 2 files changed, 374 insertions(+) create mode 100644 docs/source/_static/theme_overrides.css diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css new file mode 100644 index 0000000..9662d63 --- /dev/null +++ b/docs/source/_static/theme_overrides.css @@ -0,0 +1,353 @@ +body { + color: #000000; +} + +p { + margin-bottom: 10px; +} + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + margin-bottom: 10px; +} + +.custom_header_01 { + color: #cc0000; + font-size: 22px; + font-weight: bold; + line-height: 50px; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 20px; + margin-top: 20px; +} + +h5 { + font-size: 18px; + color: #000000; + font-style: italic; + margin-bottom: 10px; +} + +h6 { + font-size: 15px; + color: #000000; + font-style: italic; + margin-bottom: 10px; +} + +/* custom admonitions */ +/* success */ +.custom-admonition-success .admonition-title { + color: #000000; + background: #ccffcc; + border-radius: 5px 5px 0px 0px; +} +div.custom-admonition-success.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* important */ +.custom-admonition-important .admonition-title { + color: #000000; + background: #ccffcc; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #000000; +} +div.custom-admonition-important.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* caution */ +.custom-admonition-caution .admonition-title { + color: #000000; + background: #ffff99; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #e8e8e8; +} +div.custom-admonition-caution.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* note */ +.custom-admonition-note .admonition-title { + color: #ffffff; + background: #006bb3; + border-radius: 5px 5px 0px 0px; +} +div.custom-admonition-note.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* todo */ +.custom-admonition-todo .admonition-title { + color: #000000; + background: #cce6ff; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #99ccff; +} +div.custom-admonition-todo.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #99ccff; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* examples */ +.custom-admonition-examples .admonition-title { + color: #000000; + background: #ffe6cc; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #d8d8d8; +} +div.custom-admonition-examples.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +.wy-nav-content { + max-width: 100%; + padding-right: 100px; + padding-left: 100px; + background-color: #f2f2f2; +} + +div.rst-content { + background-color: #ffffff; + border: solid 1px #e5e5e5; + padding: 20px 40px 20px 40px; +} + +.rst-content .guilabel { + border: 1px solid #ffff99; + background: #ffff99; + font-size: 100%; + font-weight: normal; + border-radius: 4px; + padding: 2px 0px; + margin: auto 2px; + vertical-align: middle; +} + +.rst-content kbd { + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; + border: solid 1px #d8d8d8; + background-color: #f5f5f5; + padding: 0px 3px; + border-radius: 3px; +} + +.wy-nav-content-wrap a { + color: #0066cc; + text-decoration: none; +} +.wy-nav-content-wrap a:hover { + color: #0099cc; + text-decoration: underline; +} + +.wy-nav-top a { + color: #ffffff; +} + +/* Based on numerous similar approaches e.g., https://github.com/readthedocs/sphinx_rtd_theme/issues/117 and https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html -- but remove form-factor limits to enable table wrap on full-size and smallest-size form factors */ +.wy-table-responsive table td { + white-space: normal !important; +} + +.rst-content table.docutils td, +.rst-content table.docutils th { + padding: 5px 10px 5px 10px; +} +.rst-content table.docutils td p, +.rst-content table.docutils th p { + font-size: 14px; + margin-bottom: 0px; +} +.rst-content table.docutils td p cite, +.rst-content table.docutils th p cite { + font-size: 14px; + background-color: transparent; +} + +.colwidths-given th { + border: solid 1px #d8d8d8 !important; +} +.colwidths-given td { + border: solid 1px #d8d8d8 !important; +} + +/*handles single-tick inline code*/ +.wy-body-for-nav cite { + color: #000000; + background-color: transparent; + font-style: normal; + font-family: "Courier New"; + font-size: 13px; + padding: 3px 3px 3px 3px; +} + +.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre { + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; + font-size: 13px; + overflow: visible; + white-space: pre-wrap; + color: #000000; +} + +.rst-content pre.literal-block, .rst-content div[class^='highlight'] { + background-color: #f8f8f8; + border: solid 1px #e8e8e8; +} + +/* This enables inline code to wrap. */ +code, .rst-content tt, .rst-content code { + white-space: pre-wrap; + padding: 2px 3px 1px; + border-radius: 3px; + font-size: 13px; + background-color: #ffffff; +} + +/* use this added class for code blocks attached to bulleted list items */ +.highlight-top-margin { + margin-top: 20px !important; +} + +/* change color of inline code block */ +span.pre { + color: #e01e5a; +} + +.wy-body-for-nav blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid #ddd; + color: #000000; +} + +/* Fix the unwanted top and bottom padding inside a nested bulleted/numbered list */ +.rst-content .section ol p, .rst-content .section ul p { + margin-bottom: 0px; +} + +/* add spacing between bullets for legibility */ +.rst-content .section ol li, .rst-content .section ul li { + margin-bottom: 5px; +} + +.rst-content .section ol li:first-child, .rst-content .section ul li:first-child { + margin-top: 5px; +} + +/* but exclude the toctree bullets */ +.rst-content .toctree-wrapper ul li, .rst-content .toctree-wrapper ul li:first-child { + margin-top: 0px; + margin-bottom: 0px; +} + +/* remove extra space at bottom of multine list-table cell */ +.rst-content .line-block { + margin-left: 0px; + margin-bottom: 0px; + line-height: 24px; +} + +/* fix extra vertical spacing in page toctree */ +.rst-content .toctree-wrapper ul li ul, article ul li ul { + margin-top: 0; + margin-bottom: 0; +} + +/* this is used by the genindex added via layout.html (see source/_templates/) to sidebar toc */ +.reference.internal.toc-index { + color: #d9d9d9; +} + +.reference.internal.toc-index.current { + background-color: #ffffff; + color: #000000; + font-weight: bold; +} + +.toc-index-div { + border-top: solid 1px #000000; + margin-top: 10px; + padding-top: 5px; +} + +.indextable ul li { + font-size: 14px; + margin-bottom: 5px; +} + +/* The next 2 fix the poor vertical spacing in genindex.html (the alphabetized index) */ +.indextable.genindextable { + margin-bottom: 20px; +} + +div.genindex-jumpbox { + margin-bottom: 10px; +} + +/* rst image classes */ + +.clear-both { + clear: both; + } + +.float-left { + float: left; + margin-right: 20px; +} + +img { + border: solid 1px #e8e8e8; +} + +/* These are custom and need to be defined in conf.py to access in all pages, e.g., '.. role:: red' */ +.img-title { + color: #000000; + /* neither padding nor margin works for vertical spacing bc it's a span -- line-height does, sort of */ + line-height: 3.0; + font-style: italic; + font-weight: 600; +} + +.img-title-para { + color: #000000; + margin-top: 20px; + margin-bottom: 0px; + font-style: italic; + font-weight: 500; +} + +.red { + color: red; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 74b8649..778636e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -74,3 +74,24 @@ "github_version": "develop", # branch "conf_py_path": "/docs/source/", # path in the checkout to the docs root } + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +html_show_sphinx = True + +# Define CSS and HTML abbreviations used in .rst files. These are examples. +# .. role:: is used to refer to styles defined in _static/theme_overrides.css and is used like this: :red:`text` +rst_prolog = """ +.. |psf| replace:: Python Software Foundation + +.. # define a hard line break for HTML +.. |br| raw:: html + +
+ +.. role:: red + +.. role:: img-title + +.. role:: img-title-para + +""" From bd2df2a9608fe02e5d725ab8d9b03a00fdb0ed7a Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 24 Mar 2022 15:12:18 +0530 Subject: [PATCH 122/247] Add GitHub action for doc build tests Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/docs-ci.yml | 37 ++++++++++++++++++++++++++++++++++ docs/source/skeleton/index.rst | 4 ++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/docs-ci.yml diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml new file mode 100644 index 0000000..656d624 --- /dev/null +++ b/.github/workflows/docs-ci.yml @@ -0,0 +1,37 @@ +name: CI Documentation + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-20.04 + + strategy: + max-parallel: 4 + matrix: + python-version: [3.7] + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Give permission to run scripts + run: chmod +x ./docs/scripts/doc8_style_check.sh + + - name: Install Dependencies + run: pip install -e .[docs] + + - name: Check Sphinx Documentation build minimally + working-directory: ./docs + run: sphinx-build -E -W source build + + - name: Check for documentation style errors + working-directory: ./docs + run: ./scripts/doc8_style_check.sh + + diff --git a/docs/source/skeleton/index.rst b/docs/source/skeleton/index.rst index 7dfc6cb..f99cdec 100644 --- a/docs/source/skeleton/index.rst +++ b/docs/source/skeleton/index.rst @@ -2,14 +2,14 @@ # Rst docs - https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html # # 1. Place docs in folders under source for different sections -# 2. Link them by adding individual index files in each section +# 2. Link them by adding individual index files in each section # to the main index, and then files for each section to their # respective index files. # 3. Use `.. include` statements to include other .rst files # or part of them, or use hyperlinks to a section of the docs, # to get rid of repetition. # https://docutils.sourceforge.io/docs/ref/rst/directives.html#including-an-external-document-fragment -# +# # Note: Replace these guide/placeholder docs .. include:: ../../../README.rst From 3e2d801c69cc1c7523d1613bc9c3e3d805b85d3b Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 24 Mar 2022 15:59:39 +0530 Subject: [PATCH 123/247] Fix conf.py to fix doc build Signed-off-by: Ayan Sinha Mahapatra --- docs/source/conf.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 778636e..62bca04 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -65,9 +65,6 @@ master_doc = 'index' html_context = { - "css_files": [ - "_static/theme_overrides.css", # override wide tables in RTD theme - ], "display_github": True, "github_user": "nexB", "github_repo": "nexb-skeleton", @@ -75,6 +72,11 @@ "conf_py_path": "/docs/source/", # path in the checkout to the docs root } +html_css_files = [ + '_static/theme_overrides.css' + ] + + # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. html_show_sphinx = True From eb578898a0f48ca04f5071dbbfb460de35eb5383 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 24 Mar 2022 20:21:44 +0530 Subject: [PATCH 124/247] Add docs option in configure Adds a --docs option to the configure script to also install requirements for the documentation builds. Signed-off-by: Ayan Sinha Mahapatra --- configure | 2 ++ configure.bat | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/configure b/configure index 8c5f4ab..715c99f 100755 --- a/configure +++ b/configure @@ -30,6 +30,7 @@ CLI_ARGS=$1 # Requirement arguments passed to pip and used by default or with --dev. REQUIREMENTS="--editable . --constraint requirements.txt" DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" +DOCS_REQUIREMENTS="--editable .[docs] --constraint requirements.txt" # where we create a virtualenv VIRTUALENV_DIR=venv @@ -177,6 +178,7 @@ while getopts :-: optchar; do help ) cli_help;; clean ) find_python && clean;; dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; + docs ) CFG_REQUIREMENTS="$DOCS_REQUIREMENTS";; esac;; esac done diff --git a/configure.bat b/configure.bat index e38b5fb..487e78a 100644 --- a/configure.bat +++ b/configure.bat @@ -28,6 +28,7 @@ @rem # Requirement arguments passed to pip and used by default or with --dev. set "REQUIREMENTS=--editable . --constraint requirements.txt" set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" +set "DOCS_REQUIREMENTS=--editable .[docs] --constraint requirements.txt" @rem # where we create a virtualenv set "VIRTUALENV_DIR=venv" @@ -77,6 +78,9 @@ if not "%1" == "" ( if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" ) + if "%1" EQU "--docs" ( + set "CFG_REQUIREMENTS=%DOCS_REQUIREMENTS%" + ) shift goto again ) From 5556e71f0e3f780b4dd955e1f3b93395d345c36c Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 30 Mar 2022 15:28:39 +0530 Subject: [PATCH 125/247] Add documentation contribute page Adds documentation page on contributing to the docs, and also modifies directory structure to avoid having the skeleton directory in docs merged in projects. Signed-off-by: Ayan Sinha Mahapatra --- docs/source/contribute/contrib_doc.rst | 314 +++++++++++++++++++++++++ docs/source/index.rst | 3 +- docs/{ => source}/skeleton-usage.rst | 4 +- docs/source/skeleton/index.rst | 15 -- 4 files changed, 319 insertions(+), 17 deletions(-) create mode 100644 docs/source/contribute/contrib_doc.rst rename docs/{ => source}/skeleton-usage.rst (98%) delete mode 100644 docs/source/skeleton/index.rst diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst new file mode 100644 index 0000000..13882e1 --- /dev/null +++ b/docs/source/contribute/contrib_doc.rst @@ -0,0 +1,314 @@ +.. _contrib_doc_dev: + +Contributing to the Documentation +================================= + +.. _contrib_doc_setup_local: + +Setup Local Build +----------------- + +To get started, create or identify a working directory on your local machine. + +Open that directory and execute the following command in a terminal session:: + + git clone https://github.com/nexB/skeleton.git + +That will create an ``/skeleton`` directory in your working directory. +Now you can install the dependencies in a virtualenv:: + + cd skeleton + ./configure --docs + +.. note:: + + In case of windows, run ``configure --docs`` instead of this. + +Now, this will install the following prerequisites: + +- Sphinx +- sphinx_rtd_theme (the format theme used by ReadTheDocs) +- docs8 (style linter) + +These requirements are already present in setup.cfg and `./configure --docs` installs them. + +Now you can build the HTML documents locally:: + + source venv/bin/activate + cd docs + make html + +Assuming that your Sphinx installation was successful, Sphinx should build a local instance of the +documentation .html files:: + + open build/html/index.html + +.. note:: + + In case this command did not work, for example on Ubuntu 18.04 you may get a message like “Couldn’t + get a file descriptor referring to the console”, try: + + :: + + see build/html/index.html + +You now have a local build of the AboutCode documents. + +.. _contrib_doc_share_improvements: + +Share Document Improvements +--------------------------- + +Ensure that you have the latest files:: + + git pull + git status + +Before commiting changes run Continious Integration Scripts locally to run tests. Refer +:ref:`doc_ci` for instructions on the same. + +Follow standard git procedures to upload your new and modified files. The following commands are +examples:: + + git status + git add source/index.rst + git add source/how-to-scan.rst + git status + git commit -m "New how-to document that explains how to scan" + git status + git push + git status + +The Scancode-Toolkit webhook with ReadTheDocs should rebuild the documentation after your +Pull Request is Merged. + +Refer the `Pro Git Book `_ available online for Git tutorials +covering more complex topics on Branching, Merging, Rebasing etc. + +.. _doc_ci: + +Continuous Integration +---------------------- + +The documentations are checked on every new commit through Travis-CI, so that common errors are +avoided and documentation standards are enforced. Travis-CI presently checks for these 3 aspects +of the documentation : + +1. Successful Builds (By using ``sphinx-build``) +2. No Broken Links (By Using ``link-check``) +3. Linting Errors (By Using ``Doc8``) + +So run these scripts at your local system before creating a Pull Request:: + + cd docs + ./scripts/sphinx_build_link_check.sh + ./scripts/doc8_style_check.sh + +If you don't have permission to run the scripts, run:: + + chmod u+x ./scripts/doc8_style_check.sh + +.. _doc_style_docs8: + +Style Checks Using ``Doc8`` +--------------------------- + +How To Run Style Tests +^^^^^^^^^^^^^^^^^^^^^^ + +In the project root, run the following commands:: + + $ cd docs + $ ./scripts/doc8_style_check.sh + +A sample output is:: + + Scanning... + Validating... + docs/source/misc/licence_policy_plugin.rst:37: D002 Trailing whitespace + docs/source/misc/faq.rst:45: D003 Tabulation used for indentation + docs/source/misc/faq.rst:9: D001 Line too long + docs/source/misc/support.rst:6: D005 No newline at end of file + ======== + Total files scanned = 34 + Total files ignored = 0 + Total accumulated errors = 326 + Detailed error counts: + - CheckCarriageReturn = 0 + - CheckIndentationNoTab = 75 + - CheckMaxLineLength = 190 + - CheckNewlineEndOfFile = 13 + - CheckTrailingWhitespace = 47 + - CheckValidity = 1 + +Now fix the errors and run again till there isn't any style error in the documentation. + +What is Checked? +^^^^^^^^^^^^^^^^ + +PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. +Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. + +What is checked: + + - invalid rst format - D000 + - lines should not be longer than 100 characters - D001 + + - RST exception: line with no whitespace except in the beginning + - RST exception: lines with http or https URLs + - RST exception: literal blocks + - RST exception: rst target directives + + - no trailing whitespace - D002 + - no tabulation for indentation - D003 + - no carriage returns (use UNIX newlines) - D004 + - no newline at end of file - D005 + +.. _doc_interspinx: + +Interspinx +---------- + +ScanCode toolkit documentation uses `Intersphinx `_ +to link to other Sphinx Documentations, to maintain links to other Aboutcode Projects. + +To link sections in the same documentation, standart reST labels are used. Refer +`Cross-Referencing `_ for more information. + +For example:: + + .. _my-reference-label: + + Section to cross-reference + -------------------------- + + This is the text of the section. + + It refers to the section itself, see :ref:`my-reference-label`. + +Now, using Intersphinx, you can create these labels in one Sphinx Documentation and then referance +these labels from another Sphinx Documentation, hosted in different locations. + +You just have to add the following in the ``conf.py`` file for your Sphinx Documentation, where you +want to add the links:: + + extensions = [ + 'sphinx.ext.intersphinx' + ] + + intersphinx_mapping = {'aboutcode': ('https://aboutcode.readthedocs.io/en/latest/', None)} + +To show all Intersphinx links and their targets of an Intersphinx mapping file, run:: + + python -msphinx.ext.intersphinx https://aboutcode.readthedocs.io/en/latest/objects.inv + +.. WARNING:: + + ``python -msphinx.ext.intersphinx https://aboutcode.readthedocs.io/objects.inv`` will give + error. + +This enables you to create links to the ``aboutcode`` Documentation in your own Documentation, +where you modified the configuration file. Links can be added like this:: + + For more details refer :ref:`aboutcode:doc_style_guide`. + +You can also not use the ``aboutcode`` label assigned to all links from aboutcode.readthedocs.io, +if you don't have a label having the same name in your Sphinx Documentation. Example:: + + For more details refer :ref:`doc_style_guide`. + +If you have a label in your documentation which is also present in the documentation linked by +Intersphinx, and you link to that label, it will create a link to the local label. + +For more information, refer this tutorial named +`Using Intersphinx `_. + +.. _doc_style_conv: + +Style Conventions for the Documentaion +-------------------------------------- + +1. Headings + + (`Refer `_) + Normally, there are no heading levels assigned to certain characters as the structure is + determined from the succession of headings. However, this convention is used in Python’s Style + Guide for documenting which you may follow: + + # with overline, for parts + + * with overline, for chapters + + =, for sections + + -, for subsections + + ^, for sub-subsections + + ", for paragraphs + +2. Heading Underlines + + Do not use underlines that are longer/shorter than the title headline itself. As in: + + :: + + Correct : + + Extra Style Checks + ------------------ + + Incorrect : + + Extra Style Checks + ------------------------ + +.. note:: + + Underlines shorter than the Title text generates Errors on sphinx-build. + + +3. Internal Links + + Using ``:ref:`` is advised over standard reStructuredText links to sections (like + ```Section title`_``) because it works across files, when section headings are changed, will + raise warnings if incorrect, and works for all builders that support cross-references. + However, external links are created by using the standard ```Section title`_`` method. + +4. Eliminate Redundancy + + If a section/file has to be repeated somewhere else, do not write the exact same section/file + twice. Use ``.. include: ../README.rst`` instead. Here, ``../`` refers to the documentation + root, so file location can be used accordingly. This enables us to link documents from other + upstream folders. + +5. Using ``:ref:`` only when necessary + + Use ``:ref:`` to create internal links only when needed, i.e. it is referenced somewhere. + Do not create references for all the sections and then only reference some of them, because + this created unnecessary references. This also generates ERROR in ``restructuredtext-lint``. + +6. Spelling + + You should check for spelling errors before you push changes. `Aspell `_ + is a GNU project Command Line tool you can use for this purpose. Download and install Aspell, + then execute ``aspell check `` for all the files changed. Be careful about not + changing commands or other stuff as Aspell gives prompts for a lot of them. Also delete the + temporary ``.bak`` files generated. Refer the `manual `_ for more + information on how to use. + +7. Notes and Warning Snippets + + Every ``Note`` and ``Warning`` sections are to be kept in ``rst_snippets/note_snippets/`` and + ``rst_snippets/warning_snippets/`` and then included to eliminate redundancy, as these are + frequently used in multiple files. + +Converting from Markdown +------------------------ + +If you want to convert a ``.md`` file to a ``.rst`` file, this `tool `_ +does it pretty well. You'd still have to clean up and check for errors as this contains a lot of +bugs. But this is definitely better than converting everything by yourself. + +This will be helpful in converting GitHub wiki's (Markdown Files) to reStructuredtext files for +Sphinx/ReadTheDocs hosting. diff --git a/docs/source/index.rst b/docs/source/index.rst index 67fcf21..eb63717 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -5,7 +5,8 @@ Welcome to nexb-skeleton's documentation! :maxdepth: 2 :caption: Contents: - skeleton/index + skeleton-usage + contribute/contrib_doc Indices and tables ================== diff --git a/docs/skeleton-usage.rst b/docs/source/skeleton-usage.rst similarity index 98% rename from docs/skeleton-usage.rst rename to docs/source/skeleton-usage.rst index ad9b9ff..cde23dc 100644 --- a/docs/skeleton-usage.rst +++ b/docs/source/skeleton-usage.rst @@ -73,11 +73,13 @@ To generate requirements.txt: python etc/scripts/gen_requirements.py -s venv/lib/python/site-packages/ -Replace \ with the version number of the Python being used, for example: ``venv/lib/python3.6/site-packages/`` +Replace \ with the version number of the Python being used, for example: +``venv/lib/python3.6/site-packages/`` To generate requirements-dev.txt after requirements.txt has been generated: .. code-block:: bash + ./configure --dev python etc/scripts/gen_requirements_dev.py -s venv/lib/python/site-packages/ diff --git a/docs/source/skeleton/index.rst b/docs/source/skeleton/index.rst deleted file mode 100644 index f99cdec..0000000 --- a/docs/source/skeleton/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -# Docs Structure Guide -# Rst docs - https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html -# -# 1. Place docs in folders under source for different sections -# 2. Link them by adding individual index files in each section -# to the main index, and then files for each section to their -# respective index files. -# 3. Use `.. include` statements to include other .rst files -# or part of them, or use hyperlinks to a section of the docs, -# to get rid of repetition. -# https://docutils.sourceforge.io/docs/ref/rst/directives.html#including-an-external-document-fragment -# -# Note: Replace these guide/placeholder docs - -.. include:: ../../../README.rst From 5431ee548c5bbfaf289f93281611d61c777aa575 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 28 Apr 2022 12:43:20 -0700 Subject: [PATCH 126/247] Properly check for existance of thirdparty dir Signed-off-by: Jono Yang --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 715c99f..d1b4fda 100755 --- a/configure +++ b/configure @@ -55,7 +55,7 @@ CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin ################################ # Thirdparty package locations and index handling # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org -if [ -f "$CFG_ROOT_DIR/thirdparty" ]; then +if [ -d "$CFG_ROOT_DIR/thirdparty" ]; then PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" fi PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" From c44c4424d7fa82723c2aac7f2a79f380411e1949 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 29 Apr 2022 15:41:07 +0200 Subject: [PATCH 127/247] Improve GH action documentation Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 188497e..b0a8d97 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -1,4 +1,4 @@ -name: Release library as a PyPI wheel and sdist on tag +name: Release library as a PyPI wheel and sdist on GH release creation on: release: From 99ba101572144cc5e5d42f2136985eb91163a46a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 29 Apr 2022 15:50:02 +0200 Subject: [PATCH 128/247] Use Python 3.9 as a base for actions Signed-off-by: Philippe Ombredanne --- .github/workflows/docs-ci.yml | 2 +- .github/workflows/pypi-release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 656d624..18a44aa 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -9,7 +9,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.7] + python-version: [3.9] steps: - name: Checkout code diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index b0a8d97..3a4fe27 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -13,7 +13,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v1 with: - python-version: 3.8 + python-version: 3.9 - name: Install pypa/build run: python -m pip install build --user - name: Build a binary wheel and a source tarball From 00f4fe76dad5f0fa8efc6768af99079389c583ac Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 29 Apr 2022 14:31:34 -0700 Subject: [PATCH 129/247] Remove variable from string in fetch_thirdparty.py * The variable `environment` is not used when fetching sdists Signed-off-by: Jono Yang --- etc/scripts/fetch_thirdparty.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 22147b2..042266c 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -269,11 +269,11 @@ def fetch_thirdparty( if TRACE: if not fetched: print( - f" ====> Sdist already available: {name}=={version} on: {environment}" + f" ====> Sdist already available: {name}=={version}" ) else: print( - f" ====> Sdist fetched: {fetched} for {name}=={version} on: {environment}" + f" ====> Sdist fetched: {fetched} for {name}=={version}" ) except utils_thirdparty.DistributionNotFound as e: From 5d48c1cbb7262455cc2c51958833ddb9ecb2bbce Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 2 May 2022 11:33:50 +0200 Subject: [PATCH 130/247] Improve thirdparty scripts Ensure that site-package dir exists. Other minor adjustments from a scancode-toolkit release Signed-off-by: Philippe Ombredanne --- etc/scripts/fetch_thirdparty.py | 7 ++-- etc/scripts/utils_requirements.py | 3 ++ etc/scripts/utils_thirdparty.py | 66 +++++++++++++++++++------------ 3 files changed, 47 insertions(+), 29 deletions(-) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 042266c..f31e81f 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -18,7 +18,8 @@ import utils_thirdparty import utils_requirements -TRACE = True +TRACE = False +TRACE_DEEP = False @click.command() @@ -204,7 +205,7 @@ def fetch_thirdparty( existing_wheels = None if existing_wheels: - if TRACE: + if TRACE_DEEP: print( f"====> Wheels already available: {name}=={version} on: {environment}: {existing_package.wheels!r}" ) @@ -213,7 +214,7 @@ def fetch_thirdparty( else: continue - if TRACE: + if TRACE_DEEP: print(f"Fetching wheel for: {name}=={version} on: {environment}") try: diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index fbc456d..069b465 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -8,6 +8,7 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # +import os import re import subprocess @@ -110,6 +111,8 @@ def get_installed_reqs(site_packages_dir): Return the installed pip requirements as text found in `site_packages_dir` as a text. """ + if not os.path.exists(site_packages_dir): + raise Exception(f"site_packages directort: {site_packages_dir!r} does not exists") # Also include these packages in the output with --all: wheel, distribute, # setuptools, pip args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 829cf8c..4c40969 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -8,8 +8,8 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -from collections import defaultdict import email +import functools import itertools import os import re @@ -18,6 +18,8 @@ import tempfile import time import urllib +from collections import defaultdict +from urllib.parse import quote_plus import attr import license_expression @@ -29,7 +31,6 @@ from commoncode.text import python_safe_name from packaging import tags as packaging_tags from packaging import version as packaging_version -from urllib.parse import quote_plus import utils_pip_compatibility_tags from utils_requirements import load_requirements @@ -111,7 +112,7 @@ """ -TRACE = True +TRACE = False TRACE_DEEP = False TRACE_ULTRA_DEEP = False @@ -233,7 +234,7 @@ def download_wheel( tuple of lists of (fetched_wheel_filenames, existing_wheel_filenames) """ if TRACE_DEEP: - print(f" download_wheel: {name}=={version}: {environment}") + print(f" download_wheel: {name}=={version}: {environment} and index_urls: {index_urls}") fetched_wheel_filenames = [] existing_wheel_filenames = [] @@ -311,6 +312,7 @@ def download_sdist( raise DistributionNotFound(f"Failed to fetch sdist: {name}=={version}: No sources found") +@functools.cache def get_package_versions( name, version=None, @@ -321,15 +323,28 @@ def get_package_versions( repository ``index_urls`` list of URLs. If ``version`` is not provided, return the latest available versions. """ + found = [] + not_found = [] for index_url in index_urls: try: repo = get_pypi_repo(index_url) package = repo.get_package(name, version) + if package: - yield package + found.append((package, index_url)) + else: + not_found.append((name, version, index_url)) except RemoteNotFetchedException as e: - print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") + if TRACE_ULTRA_DEEP: + print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") + not_found.append((name, version, index_url)) + + if not found: + raise Exception(f"No PyPI package {name} @ {version} found!") + for package, index_url in found: + print(f"Fetched PyPI package {package.name} @ {package.version} info from {index_url}") + yield package ################################################################################ # @@ -546,14 +561,14 @@ def get_best_download_url( If none is found, return a synthetic remote URL. """ for index_url in index_urls: - pypi_package = get_pypi_package( + pypi_package = get_pypi_package_data( name=self.normalized_name, version=self.version, index_url=index_url, ) if pypi_package: if isinstance(pypi_package, tuple): - raise Exception("############", repr(pypi_package)) + raise Exception("############", repr(pypi_package), self.normalized_name, self.version, index_url) try: pypi_url = pypi_package.get_url_for_filename(self.filename) except Exception as e: @@ -1450,7 +1465,7 @@ def get_name_version(cls, name, version, packages): nvs = [p for p in cls.get_versions(name, packages) if p.version == version] if not nvs: - return name, version + return if len(nvs) == 1: return nvs[0] @@ -1494,8 +1509,8 @@ def dists_from_paths_or_urls(cls, paths_or_urls): >>> assert expected == result """ dists = [] - if TRACE_DEEP: - print(" ###paths_or_urls:", paths_or_urls) + if TRACE_ULTRA_DEEP: + print(" ###paths_or_urls:", paths_or_urls) installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] for path_or_url in installable: try: @@ -1618,7 +1633,6 @@ def tags(self): ) ) - ################################################################################ # # PyPI repo and link index for package wheels and sources @@ -1657,7 +1671,10 @@ def get_versions(self, name): The list may be empty. """ name = name and NameVer.normalize_name(name) - self._populate_links_and_packages(name) + try: + self._populate_links_and_packages(name) + except Exception as e: + print(f" ==> Cannot find versions of {name}: {e}") return self.packages_by_normalized_name.get(name, []) def get_latest_version(self, name): @@ -1703,7 +1720,7 @@ def _fetch_links(self, name, _LINKS={}): _LINKS[index_url] = [l for l in links if l.endswith(EXTENSIONS)] links = _LINKS[index_url] - if TRACE_DEEP: + if TRACE_ULTRA_DEEP: print(f" Found links {links!r}") return links @@ -1803,7 +1820,6 @@ def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}): _LINKS_REPO[url] = cls(url=url) return _LINKS_REPO[url] - ################################################################################ # Globals for remote repos to be lazily created and cached on first use for the # life of the session together with some convenience functions. @@ -1824,19 +1840,21 @@ def get_pypi_repo(index_url, _PYPI_REPO={}): return _PYPI_REPO[index_url] -def get_pypi_package(name, version, index_url, verbose=TRACE_DEEP): +@functools.cache +def get_pypi_package_data(name, version, index_url, verbose=TRACE_DEEP): """ Return a PypiPackage or None. """ try: + if verbose: + print(f" get_pypi_package_data: Fetching {name} @ {version} info from {index_url}") package = get_pypi_repo(index_url).get_package(name, version) if verbose: - print(f" get_pypi_package: {name} @ {version} info from {index_url}: {package}") + print(f" get_pypi_package_data: Fetched: {package}") return package except RemoteNotFetchedException as e: - print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") - + print(f" get_pypi_package_data: Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") ################################################################################ # @@ -1998,7 +2016,6 @@ def fetch_and_save_path_or_url( fo.write(content) return content - ################################################################################ # Requirements processing ################################################################################ @@ -2036,7 +2053,6 @@ def get_required_packages( print(" get_required_packages: name:", name, "version:", version) yield repo.get_package(name, version) - ################################################################################ # Functions to update or fetch ABOUT and license files ################################################################################ @@ -2115,7 +2131,6 @@ def get_other_dists(_package, _dist): for p in packages_by_name[local_package.name] if p.version != local_package.version ] - other_local_version = other_local_packages and other_local_packages[-1] if other_local_version: latest_local_dists = list(other_local_version.get_distributions()) @@ -2187,7 +2202,6 @@ def get_other_dists(_package, _dist): lic_errs = "\n".join(lic_errs) print(f"Failed to fetch some licenses:: {lic_errs}") - ################################################################################ # # Functions to build new Python wheels including native on multiple OSes @@ -2318,9 +2332,9 @@ def build_wheels_locally_if_pure_python( "--wheel-dir", wheel_dir, ] - + deps - + verbose - + [requirements_specifier] + +deps + +verbose + +[requirements_specifier] ) print(f"Building local wheels for: {requirements_specifier}") From 6a3c5b0b9e351b9c8730836c2db878a1540cbe2a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 7 May 2022 19:44:52 +0200 Subject: [PATCH 131/247] Update thirdparty fetching utilities These were buggy in some corner cases. They have been updated such that: * --latest-version works. * we can reliable fetch combinations of wheels and sdists for multiple OS combos at once * we now support macOS universal wheels (for ARM CPUs) Caching is now simpler: we have essentially a single file-based cache under .cache. PyPI indexes are fetched and not cached, unless the new --use-cached-index is used which can be useful when fetching many thirdparty in a short timeframe. The first PyPI repository in a list has precendence and we never fetch from other repositories if we find wheels and sdsists there. This avoid pounding too much on the self-hosted repo. Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 6 +- etc/scripts/fetch_thirdparty.py | 188 +++---- etc/scripts/gen_pypi_simple.py | 22 +- etc/scripts/requirements.txt | 5 +- etc/scripts/utils_requirements.py | 19 +- etc/scripts/utils_thirdparty.py | 899 +++++++++++++----------------- 6 files changed, 480 insertions(+), 659 deletions(-) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 0f04b34..b052f25 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -16,7 +16,7 @@ @click.command() @click.option( "-d", - "--dest_dir", + "--dest", type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, help="Path to the thirdparty directory to check.", @@ -35,7 +35,7 @@ ) @click.help_option("-h", "--help") def check_thirdparty_dir( - dest_dir, + dest, wheels, sdists, ): @@ -45,7 +45,7 @@ def check_thirdparty_dir( # check for problems print(f"==> CHECK FOR PROBLEMS") utils_thirdparty.find_problems( - dest_dir=dest_dir, + dest_dir=dest, report_missing_sources=sdists, report_missing_wheels=wheels, ) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index f31e81f..26d520f 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -100,11 +100,17 @@ "index_urls", type=str, metavar="INDEX", - default=utils_thirdparty.PYPI_INDEXES, + default=utils_thirdparty.PYPI_INDEX_URLS, show_default=True, multiple=True, help="PyPI index URL(s) to use for wheels and sources, in order of preferences.", ) +@click.option( + "--use-cached-index", + is_flag=True, + help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.", +) + @click.help_option("-h", "--help") def fetch_thirdparty( requirements_files, @@ -116,9 +122,10 @@ def fetch_thirdparty( wheels, sdists, index_urls, + use_cached_index, ): """ - Download to --dest-dir THIRDPARTY_DIR the PyPI wheels, source distributions, + Download to --dest THIRDPARTY_DIR the PyPI wheels, source distributions, and their ABOUT metadata, license and notices files. Download the PyPI packages listed in the combination of: @@ -126,16 +133,23 @@ def fetch_thirdparty( - the pip name==version --specifier SPECIFIER(s) - any pre-existing wheels or sdsists found in --dest-dir THIRDPARTY_DIR. - Download wheels with the --wheels option for the ``--python-version`` PYVER(s) - and ``--operating_system`` OS(s) combinations defaulting to all supported combinations. + Download wheels with the --wheels option for the ``--python-version`` + PYVER(s) and ``--operating_system`` OS(s) combinations defaulting to all + supported combinations. Download sdists tarballs with the --sdists option. - Generate or Download .ABOUT, .LICENSE and .NOTICE files for all the wheels and sources fetched. + Generate or Download .ABOUT, .LICENSE and .NOTICE files for all the wheels + and sources fetched. - Download wheels and sdists the provided PyPI simple --index-url INDEX(s) URLs. + Download from the provided PyPI simple --index-url INDEX(s) URLs. """ + if not (wheels or sdists): + print("Error: one or both of --wheels and --sdists is required.") + sys.exit(1) + print(f"COLLECTING REQUIRED NAMES & VERSIONS FROM {dest_dir}") + existing_packages_by_nv = { (package.name, package.version): package for package in utils_thirdparty.get_local_packages(directory=dest_dir) @@ -151,134 +165,88 @@ def fetch_thirdparty( required_name_versions.update(nvs) for specifier in specifiers: - nv = utils_requirements.get_name_version( + nv = utils_requirements.get_required_name_version( requirement=specifier, with_unpinned=latest_version, ) required_name_versions.add(nv) + if latest_version: + names = set(name for name, _version in sorted(required_name_versions)) + required_name_versions = {(n, None) for n in names} + if not required_name_versions: print("Error: no requirements requested.") sys.exit(1) - if not os.listdir(dest_dir) and not (wheels or sdists): - print("Error: one or both of --wheels and --sdists is required.") - sys.exit(1) - - if latest_version: - latest_name_versions = set() - names = set(name for name, _version in sorted(required_name_versions)) - for name in sorted(names): - latests = utils_thirdparty.PypiPackage.sorted( - utils_thirdparty.get_package_versions( - name=name, version=None, index_urls=index_urls - ) - ) - if not latests: - print(f"No distribution found for: {name}") - continue - latest = latests[-1] - latest_name_versions.add((latest.name, latest.version)) - required_name_versions = latest_name_versions - - if TRACE: - print("required_name_versions:", required_name_versions) + if TRACE_DEEP: + print("required_name_versions:") + for n, v in required_name_versions: + print(f" {n} @ {v}") + # create the environments matrix we need for wheels + environments = None if wheels: - # create the environments matrix we need for wheels evts = itertools.product(python_versions, operating_systems) environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] - wheels_not_found = {} - sdists_not_found = {} - # iterate over requirements, one at a time + # Collect PyPI repos + repos = [] + for index_url in index_urls: + index_url = index_url.strip("/") + existing = utils_thirdparty.DEFAULT_PYPI_REPOS_BY_URL.get(index_url) + if existing: + existing.use_cached_index = use_cached_index + repos.append(existing) + else: + repo = utils_thirdparty.PypiSimpleRepository( + index_url=index_url, + use_cached_index=use_cached_index, + ) + repos.append(repo) + + wheels_fetched = [] + wheels_not_found = [] + + sdists_fetched = [] + sdists_not_found = [] + for name, version in sorted(required_name_versions): nv = name, version - existing_package = existing_packages_by_nv.get(nv) + print(f"Processing: {name} @ {version}") if wheels: for environment in environments: - if existing_package: - existing_wheels = list( - existing_package.get_supported_wheels(environment=environment) - ) - else: - existing_wheels = None - - if existing_wheels: - if TRACE_DEEP: - print( - f"====> Wheels already available: {name}=={version} on: {environment}: {existing_package.wheels!r}" - ) - if all(w.is_pure() for w in existing_wheels): - break - else: - continue - - if TRACE_DEEP: - print(f"Fetching wheel for: {name}=={version} on: {environment}") - - try: - ( - fetched_wheel_filenames, - existing_wheel_filenames, - ) = utils_thirdparty.download_wheel( - name=name, - version=version, - environment=environment, - dest_dir=dest_dir, - index_urls=index_urls, - ) - if TRACE: - if existing_wheel_filenames: - print( - f" ====> Wheels already available: {name}=={version} on: {environment}" - ) - for whl in existing_wheel_filenames: - print(f" {whl}") - if fetched_wheel_filenames: - print(f" ====> Wheels fetched: {name}=={version} on: {environment}") - for whl in fetched_wheel_filenames: - print(f" {whl}") - - fwfns = fetched_wheel_filenames + existing_wheel_filenames - - if all(utils_thirdparty.Wheel.from_filename(f).is_pure() for f in fwfns): - break - - except utils_thirdparty.DistributionNotFound as e: - wheels_not_found[f"{name}=={version}"] = str(e) - - if sdists: - if existing_package and existing_package.sdist: if TRACE: - print( - f" ====> Sdist already available: {name}=={version}: {existing_package.sdist!r}" - ) - continue - - if TRACE: - print(f" Fetching sdist for: {name}=={version}") - - try: - fetched = utils_thirdparty.download_sdist( + print(f" ==> Fetching wheel for envt: {environment}") + fwfns = utils_thirdparty.download_wheel( name=name, version=version, + environment=environment, dest_dir=dest_dir, - index_urls=index_urls, + repos=repos, ) + if fwfns: + wheels_fetched.extend(fwfns) + else: + wheels_not_found.append(f"{name}=={version} for: {environment}") + if TRACE: + print(f" NOT FOUND") + if sdists: + if TRACE: + print(f" ==> Fetching sdist: {name}=={version}") + fetched = utils_thirdparty.download_sdist( + name=name, + version=version, + dest_dir=dest_dir, + repos=repos, + ) + if fetched: + sdists_fetched.append(fetched) + else: + sdists_not_found.append(f"{name}=={version}") if TRACE: - if not fetched: - print( - f" ====> Sdist already available: {name}=={version}" - ) - else: - print( - f" ====> Sdist fetched: {fetched} for {name}=={version}" - ) - - except utils_thirdparty.DistributionNotFound as e: - sdists_not_found[f"{name}=={version}"] = str(e) + print(f" NOT FOUND") if wheels and wheels_not_found: print(f"==> MISSING WHEELS") @@ -291,7 +259,7 @@ def fetch_thirdparty( print(f" {sd}") print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") - utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir) + utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 8de2b96..03312ab 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -25,26 +25,26 @@ class InvalidDistributionFilename(Exception): def get_package_name_from_filename(filename): """ - Return the package name extracted from a package ``filename``. - Optionally ``normalize`` the name according to distribution name rules. + Return the normalized package name extracted from a package ``filename``. + Normalization is done according to distribution name rules. Raise an ``InvalidDistributionFilename`` if the ``filename`` is invalid:: >>> get_package_name_from_filename("foo-1.2.3_rc1.tar.gz") 'foo' - >>> get_package_name_from_filename("foo-bar-1.2-py27-none-any.whl") + >>> get_package_name_from_filename("foo_bar-1.2-py27-none-any.whl") 'foo-bar' >>> get_package_name_from_filename("Cython-0.17.2-cp26-none-linux_x86_64.whl") 'cython' >>> get_package_name_from_filename("python_ldap-2.4.19-cp27-none-macosx_10_10_x86_64.whl") 'python-ldap' - >>> get_package_name_from_filename("foo.whl") - Traceback (most recent call last): - ... - InvalidDistributionFilename: ... - >>> get_package_name_from_filename("foo.png") - Traceback (most recent call last): - ... - InvalidFilePackageName: ... + >>> try: + ... get_package_name_from_filename("foo.whl") + ... except InvalidDistributionFilename: + ... pass + >>> try: + ... get_package_name_from_filename("foo.png") + ... except InvalidDistributionFilename: + ... pass """ if not filename or not filename.endswith(dist_exts): raise InvalidDistributionFilename(filename) diff --git a/etc/scripts/requirements.txt b/etc/scripts/requirements.txt index 6591e49..ebb404b 100644 --- a/etc/scripts/requirements.txt +++ b/etc/scripts/requirements.txt @@ -1,12 +1,11 @@ aboutcode_toolkit -github-release-retry2 attrs commoncode click requests saneyaml -romp pip setuptools twine -wheel \ No newline at end of file +wheel +build \ No newline at end of file diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 069b465..7c99a33 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -8,7 +8,6 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # -import os import re import subprocess @@ -42,23 +41,23 @@ def get_required_name_versions(requirement_lines, with_unpinned=False): if req_line.startswith("-") or (not with_unpinned and not "==" in req_line): print(f"Requirement line is not supported: ignored: {req_line}") continue - yield get_name_version(requirement=req_line, with_unpinned=with_unpinned) + yield get_required_name_version(requirement=req_line, with_unpinned=with_unpinned) -def get_name_version(requirement, with_unpinned=False): +def get_required_name_version(requirement, with_unpinned=False): """ Return a (name, version) tuple given a`requirement` specifier string. Requirement version must be pinned. If ``with_unpinned`` is True, unpinned requirements are accepted and only the name portion is returned. For example: - >>> assert get_name_version("foo==1.2.3") == ("foo", "1.2.3") - >>> assert get_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1") - >>> assert get_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3") - >>> assert get_name_version("foo", with_unpinned=True) == ("foo", "") - >>> assert get_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_name_version("foo>=1.2") + >>> assert get_required_name_version("foo==1.2.3") == ("foo", "1.2.3") + >>> assert get_required_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1") + >>> assert get_required_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3") + >>> assert get_required_name_version("foo", with_unpinned=True) == ("foo", "") + >>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_required_name_version("foo>=1.2") >>> try: - ... assert not get_name_version("foo", with_unpinned=False) + ... assert not get_required_name_version("foo", with_unpinned=False) ... except Exception as e: ... assert "Requirement version must be pinned" in str(e) """ @@ -112,7 +111,7 @@ def get_installed_reqs(site_packages_dir): as a text. """ if not os.path.exists(site_packages_dir): - raise Exception(f"site_packages directort: {site_packages_dir!r} does not exists") + raise Exception(f"site_packages directory: {site_packages_dir!r} does not exists") # Also include these packages in the output with --all: wheel, distribute, # setuptools, pip args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 4c40969..9cbda37 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -9,7 +9,6 @@ # See https://aboutcode.org for more information about nexB OSS projects. # import email -import functools import itertools import os import re @@ -33,7 +32,6 @@ from packaging import version as packaging_version import utils_pip_compatibility_tags -from utils_requirements import load_requirements """ Utilities to manage Python thirparty libraries source, binaries and metadata in @@ -169,6 +167,16 @@ def get_python_dot_version(version): "macosx_10_15_x86_64", "macosx_11_0_x86_64", "macosx_11_intel", + "macosx_11_0_x86_64", + "macosx_11_intel", + "macosx_10_9_universal2", + "macosx_10_10_universal2", + "macosx_10_11_universal2", + "macosx_10_12_universal2", + "macosx_10_13_universal2", + "macosx_10_14_universal2", + "macosx_10_15_universal2", + "macosx_11_0_universal2", # 'macosx_11_0_arm64', ], "windows": [ @@ -179,18 +187,19 @@ def get_python_dot_version(version): THIRDPARTY_DIR = "thirdparty" CACHE_THIRDPARTY_DIR = ".cache/thirdparty" -ABOUT_BASE_URL = "https://thirdparty.aboutcode.org/pypi" +################################################################################ +ABOUT_BASE_URL = "https://thirdparty.aboutcode.org/pypi" ABOUT_PYPI_SIMPLE_URL = f"{ABOUT_BASE_URL}/simple" ABOUT_LINKS_URL = f"{ABOUT_PYPI_SIMPLE_URL}/links.html" - PYPI_SIMPLE_URL = "https://pypi.org/simple" -PYPI_INDEXES = (PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL) +PYPI_INDEX_URLS = (PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL) + +################################################################################ EXTENSIONS_APP = (".pyz",) EXTENSIONS_SDIST = ( ".tar.gz", - ".tar.bz2", ".zip", ".tar.xz", ) @@ -217,134 +226,90 @@ class DistributionNotFound(Exception): pass -def download_wheel( - name, - version, - environment, - dest_dir=THIRDPARTY_DIR, - index_urls=PYPI_INDEXES, -): +def download_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR, repos=tuple()): """ Download the wheels binary distribution(s) of package ``name`` and - ``version`` matching the ``environment`` Environment constraints from the - PyPI simple repository ``index_urls`` list of URLs into the ``dest_dir`` - directory. + ``version`` matching the ``environment`` Environment constraints into the + ``dest_dir`` directory. Return a list of fetched_wheel_filenames, possibly + empty. - Raise a DistributionNotFound if no wheel is not found. Otherwise, return a - tuple of lists of (fetched_wheel_filenames, existing_wheel_filenames) + Use the first PyPI simple repository from a list of ``repos`` that contains this wheel. """ if TRACE_DEEP: - print(f" download_wheel: {name}=={version}: {environment} and index_urls: {index_urls}") + print(f" download_wheel: {name}=={version} for envt: {environment}") - fetched_wheel_filenames = [] - existing_wheel_filenames = [] - try: - for pypi_package in get_package_versions( - name=name, - version=version, - index_urls=index_urls, - ): - if not pypi_package.wheels: - continue - - supported_wheels = list(pypi_package.get_supported_wheels(environment=environment)) - if not supported_wheels: - continue + if not repos: + repos = DEFAULT_PYPI_REPOS - for wheel in supported_wheels: - if os.path.exists(os.path.join(dest_dir, wheel.filename)): - # do not refetch - existing_wheel_filenames.append(wheel.filename) - continue + fetched_wheel_filenames = [] - if TRACE: - print(f" Fetching wheel from index: {wheel.download_url}") - fetched_wheel_filename = wheel.download(dest_dir=dest_dir) - fetched_wheel_filenames.add(fetched_wheel_filename) + for repo in repos: + package = repo.get_package_version(name=name, version=version) + if not package: + if TRACE_DEEP: + print(f" download_wheel: No package in {repo.index_url} for {name}=={version}") + continue + supported_wheels = list(package.get_supported_wheels(environment=environment)) + if not supported_wheels: + if TRACE_DEEP: + print( + f" download_wheel: No supported wheel for {name}=={version}: {environment} " + ) + continue - except Exception as e: - raise DistributionNotFound(f"Failed to fetch wheel: {name}=={version}: {e}") from e + for wheel in supported_wheels: + if TRACE_DEEP: + print( + f" download_wheel: Getting wheel from index (or cache): {wheel.download_url}" + ) + fetched_wheel_filename = wheel.download(dest_dir=dest_dir) + fetched_wheel_filenames.append(fetched_wheel_filename) - if not fetched_wheel_filenames and not existing_wheel_filenames: - raise DistributionNotFound(f"Failed to fetch wheel: {name}=={version}: No wheel found") + if fetched_wheel_filenames: + # do not futher fetch from other repos if we find in first, typically PyPI + break - return fetched_wheel_filenames, existing_wheel_filenames + return fetched_wheel_filenames -def download_sdist( - name, - version, - dest_dir=THIRDPARTY_DIR, - index_urls=PYPI_INDEXES, -): +def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): """ Download the sdist source distribution of package ``name`` and ``version`` - from the PyPI simple repository ``index_urls`` list of URLs into the - ``dest_dir`` directory. + into the ``dest_dir`` directory. Return a fetched filename or None. - Raise a DistributionNotFound if this was not found. Return the filename if - downloaded and False if not downloaded because it already exists. + Use the first PyPI simple repository from a list of ``repos`` that contains + this sdist. """ - if TRACE_DEEP: - print(f"download_sdist: {name}=={version}: ") - - try: - for pypi_package in get_package_versions( - name=name, - version=version, - index_urls=index_urls, - ): - if not pypi_package.sdist: - continue - - if os.path.exists(os.path.join(dest_dir, pypi_package.sdist.filename)): - # do not refetch - return False - if TRACE: - print(f" Fetching sources from index: {pypi_package.sdist.download_url}") - fetched = pypi_package.sdist.download(dest_dir=dest_dir) - if fetched: - return pypi_package.sdist.filename + if TRACE: + print(f" download_sdist: {name}=={version}") - except Exception as e: - raise DistributionNotFound(f"Failed to fetch sdist: {name}=={version}: {e}") from e + if not repos: + repos = DEFAULT_PYPI_REPOS - raise DistributionNotFound(f"Failed to fetch sdist: {name}=={version}: No sources found") + fetched_sdist_filename = None + for repo in repos: + package = repo.get_package_version(name=name, version=version) -@functools.cache -def get_package_versions( - name, - version=None, - index_urls=PYPI_INDEXES, -): - """ - Yield PypiPackages with ``name`` and ``version`` from the PyPI simple - repository ``index_urls`` list of URLs. - If ``version`` is not provided, return the latest available versions. - """ - found = [] - not_found = [] - for index_url in index_urls: - try: - repo = get_pypi_repo(index_url) - package = repo.get_package(name, version) + if not package: + if TRACE_DEEP: + print(f" download_sdist: No package in {repo.index_url} for {name}=={version}") + continue + sdist = package.sdist + if not sdist: + if TRACE_DEEP: + print(f" download_sdist: No sdist for {name}=={version}") + continue - if package: - found.append((package, index_url)) - else: - not_found.append((name, version, index_url)) - except RemoteNotFetchedException as e: - if TRACE_ULTRA_DEEP: - print(f"Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") - not_found.append((name, version, index_url)) + if TRACE_DEEP: + print(f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") + fetched_sdist_filename = package.sdist.download(dest_dir=dest_dir) - if not found: - raise Exception(f"No PyPI package {name} @ {version} found!") + if fetched_sdist_filename: + # do not futher fetch from other repos if we find in first, typically PyPI + break - for package, index_url in found: - print(f"Fetched PyPI package {package.name} @ {package.version} info from {index_url}") - yield package + return fetched_sdist_filename ################################################################################ # @@ -377,17 +342,6 @@ def normalize_name(name): """ return name and re.sub(r"[-_.]+", "-", name).lower() or name - @staticmethod - def standardize_name(name): - """ - Return a standardized package name, e.g. lowercased and using - not _ - """ - return name and re.sub(r"[-_]+", "-", name).lower() or name - - @property - def name_ver(self): - return f"{self.name}-{self.version}" - def sortable_name_version(self): """ Return a tuple of values to sort by name, then version. @@ -403,7 +357,7 @@ def sorted(cls, namevers): @attr.attributes class Distribution(NameVer): - # field names that can be updated from another dist of mapping + # field names that can be updated from another Distribution or mapping updatable_fields = [ "license_expression", "copyright", @@ -421,6 +375,13 @@ class Distribution(NameVer): metadata=dict(help="File name."), ) + path_or_url = attr.ib( + repr=False, + type=str, + default="", + metadata=dict(help="Path or URL"), + ) + sha256 = attr.ib( repr=False, type=str, @@ -545,36 +506,50 @@ def package_url(self): """ Return a Package URL string of self. """ - return str(packageurl.PackageURL(**self.purl_identifiers())) + return str( + packageurl.PackageURL( + type=self.type, + namespace=self.namespace, + name=self.name, + version=self.version, + subpath=self.subpath, + qualifiers=self.qualifiers, + ) + ) @property def download_url(self): return self.get_best_download_url() - def get_best_download_url( - self, - index_urls=tuple([PYPI_SIMPLE_URL, ABOUT_PYPI_SIMPLE_URL]), - ): + def get_best_download_url(self, repos=tuple()): """ - Return the best download URL for this distribution where best means that - PyPI is better and our selfhosted repo URLs are second. - If none is found, return a synthetic remote URL. + Return the best download URL for this distribution where best means this + is the first URL found for this distribution found in the list of + ``repos``. + + If none is found, return a synthetic PyPI remote URL. """ - for index_url in index_urls: - pypi_package = get_pypi_package_data( - name=self.normalized_name, - version=self.version, - index_url=index_url, - ) - if pypi_package: - if isinstance(pypi_package, tuple): - raise Exception("############", repr(pypi_package), self.normalized_name, self.version, index_url) - try: - pypi_url = pypi_package.get_url_for_filename(self.filename) - except Exception as e: - raise Exception(repr(pypi_package)) from e - if pypi_url: - return pypi_url + + if not repos: + repos = DEFAULT_PYPI_REPOS + + for repo in repos: + package = repo.get_package_version(name=self.name, version=self.version) + if not package: + if TRACE: + print( + f" get_best_download_url: {self.name}=={self.version} " + f"not found in {repo.index_url}" + ) + continue + pypi_url = package.get_url_for_filename(self.filename) + if pypi_url: + return pypi_url + else: + if TRACE: + print( + f" get_best_download_url: {self.filename} not found in {repo.index_url}" + ) def download(self, dest_dir=THIRDPARTY_DIR): """ @@ -582,16 +557,17 @@ def download(self, dest_dir=THIRDPARTY_DIR): Return the fetched filename. """ assert self.filename - if TRACE: + if TRACE_DEEP: print( f"Fetching distribution of {self.name}=={self.version}:", self.filename, ) - fetch_and_save_path_or_url( - filename=self.filename, - dest_dir=dest_dir, + # FIXME: + fetch_and_save( path_or_url=self.path_or_url, + dest_dir=dest_dir, + filename=self.filename, as_text=False, ) return self.filename @@ -616,7 +592,7 @@ def notice_download_url(self): def from_path_or_url(cls, path_or_url): """ Return a distribution built from the data found in the filename of a - `path_or_url` string. Raise an exception if this is not a valid + ``path_or_url`` string. Raise an exception if this is not a valid filename. """ filename = os.path.basename(path_or_url.strip("/")) @@ -647,47 +623,6 @@ def from_filename(cls, filename): clazz = cls.get_dist_class(filename) return clazz.from_filename(filename) - def purl_identifiers(self, skinny=False): - """ - Return a mapping of non-empty identifier name/values for the purl - fields. If skinny is True, only inlucde type, namespace and name. - """ - identifiers = dict( - type=self.type, - namespace=self.namespace, - name=self.name, - ) - - if not skinny: - identifiers.update( - version=self.version, - subpath=self.subpath, - qualifiers=self.qualifiers, - ) - - return {k: v for k, v in sorted(identifiers.items()) if v} - - def identifiers(self, purl_as_fields=True): - """ - Return a mapping of non-empty identifier name/values. - Return each purl fields separately if purl_as_fields is True. - Otherwise return a package_url string for the purl. - """ - if purl_as_fields: - identifiers = self.purl_identifiers() - else: - identifiers = dict(package_url=self.package_url) - - identifiers.update( - download_url=self.download_url, - filename=self.filename, - md5=self.md5, - sha1=self.sha1, - package_url=self.package_url, - ) - - return {k: v for k, v in sorted(identifiers.items()) if v} - def has_key_metadata(self): """ Return True if this distribution has key metadata required for basic attribution. @@ -817,7 +752,7 @@ def load_remote_about_data(self): NOTICE file if any. Return True if the data was updated. """ try: - about_text = fetch_content_from_path_or_url_through_cache( + about_text = CACHE.get( path_or_url=self.about_download_url, as_text=True, ) @@ -831,7 +766,7 @@ def load_remote_about_data(self): notice_file = about_data.pop("notice_file", None) if notice_file: try: - notice_text = fetch_content_from_path_or_url_through_cache( + notice_text = CACHE.get( path_or_url=self.notice_download_url, as_text=True, ) @@ -882,12 +817,12 @@ def get_license_keys(self): return ["unknown"] return keys - def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): + def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): """ Fetch license files if missing in `dest_dir`. Return True if license files were fetched. """ - urls = LinksRepository.from_url().links + urls = LinksRepository.from_url(use_cached_index=use_cached_index).links errors = [] extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] @@ -902,10 +837,10 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): # try remotely first lic_url = get_license_link_for_filename(filename=filename, urls=urls) - fetch_and_save_path_or_url( - filename=filename, - dest_dir=dest_dir, + fetch_and_save( path_or_url=lic_url, + dest_dir=dest_dir, + filename=filename, as_text=True, ) if TRACE: @@ -915,10 +850,10 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR): try: # try licensedb second lic_url = f"{LICENSEDB_API_URL}/{filename}" - fetch_and_save_path_or_url( - filename=filename, - dest_dir=dest_dir, + fetch_and_save( path_or_url=lic_url, + dest_dir=dest_dir, + filename=filename, as_text=True, ) if TRACE: @@ -1077,6 +1012,84 @@ class InvalidDistributionFilename(Exception): pass +def get_sdist_name_ver_ext(filename): + """ + Return a (name, version, extension) if filename is a valid sdist name. Some legacy + binary builds have weird names. Return False otherwise. + + In particular they do not use PEP440 compliant versions and/or mix tags, os + and arch names in tarball names and versions: + + >>> assert get_sdist_name_ver_ext("intbitset-1.3.tar.gz") + >>> assert not get_sdist_name_ver_ext("intbitset-1.3.linux-x86_64.tar.gz") + >>> assert get_sdist_name_ver_ext("intbitset-1.4a.tar.gz") + >>> assert get_sdist_name_ver_ext("intbitset-1.4a.zip") + >>> assert not get_sdist_name_ver_ext("intbitset-2.0.linux-x86_64.tar.gz") + >>> assert get_sdist_name_ver_ext("intbitset-2.0.tar.gz") + >>> assert not get_sdist_name_ver_ext("intbitset-2.1-1.src.rpm") + >>> assert not get_sdist_name_ver_ext("intbitset-2.1-1.x86_64.rpm") + >>> assert not get_sdist_name_ver_ext("intbitset-2.1.linux-x86_64.tar.gz") + >>> assert not get_sdist_name_ver_ext("cffi-1.2.0-1.tar.gz") + >>> assert not get_sdist_name_ver_ext("html5lib-1.0-reupload.tar.gz") + >>> assert not get_sdist_name_ver_ext("selenium-2.0-dev-9429.tar.gz") + >>> assert not get_sdist_name_ver_ext("testfixtures-1.8.0dev-r4464.tar.gz") + """ + name_ver = None + extension = None + + for ext in EXTENSIONS_SDIST: + if filename.endswith(ext): + name_ver, extension, _ = filename.rpartition(ext) + break + + if not extension or not name_ver: + return False + + name, _, version = name_ver.rpartition("-") + + if not name or not version: + return False + + # weird version + if any( + w in version + for w in ( + "x86_64", + "i386", + ) + ): + return False + + # all char versions + if version.isalpha(): + return False + + # non-pep 440 version + if "-" in version: + return False + + # single version + if version.isdigit() and len(version) == 1: + return False + + # r1 version + if len(version) == 2 and version[0]=="r" and version[1].isdigit(): + return False + + # dotless version (but calver is OK) + if "." not in version and len(version) < 3: + return False + + # version with dashes selenium-2.0-dev-9429.tar.gz + if name.endswith(("dev",)) and "." not in version: + return False + # version pre or post, old legacy + if version.startswith(("beta", "rc", "pre", "post", "final")): + return False + + return name, version, extension + + @attr.attributes class Sdist(Distribution): @@ -1093,21 +1106,11 @@ def from_filename(cls, filename): Return a Sdist object built from a filename. Raise an exception if this is not a valid sdist filename """ - name_ver = None - extension = None - - for ext in EXTENSIONS_SDIST: - if filename.endswith(ext): - name_ver, extension, _ = filename.rpartition(ext) - break - - if not extension or not name_ver: + name_ver_ext = get_sdist_name_ver_ext(filename) + if not name_ver_ext: raise InvalidDistributionFilename(filename) - name, _, version = name_ver.rpartition("-") - - if not name or not version: - raise InvalidDistributionFilename(filename) + name, version, extension = name_ver_ext return cls( type="pypi", @@ -1295,8 +1298,8 @@ def is_pure_wheel(filename): @attr.attributes class PypiPackage(NameVer): """ - A Python package with its "distributions", e.g. wheels and source - distribution , ABOUT files and licenses or notices. + A Python package contains one or more wheels and one source distribution + from a repository. """ sdist = attr.ib( @@ -1313,16 +1316,6 @@ class PypiPackage(NameVer): metadata=dict(help="List of Wheel for this package"), ) - @property - def specifier(self): - """ - A requirement specifier for this package - """ - if self.version: - return f"{self.name}=={self.version}" - else: - return self.name - def get_supported_wheels(self, environment, verbose=TRACE_ULTRA_DEEP): """ Yield all the Wheel of this package supported and compatible with the @@ -1404,17 +1397,20 @@ def packages_from_dir(cls, directory): Yield PypiPackages built from files found in at directory path. """ base = os.path.abspath(directory) + paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] + if TRACE_ULTRA_DEEP: print("packages_from_dir: paths:", paths) - return cls.packages_from_many_paths_or_urls(paths) + return PypiPackage.packages_from_many_paths_or_urls(paths) @classmethod def packages_from_many_paths_or_urls(cls, paths_or_urls): """ Yield PypiPackages built from a list of paths or URLs. + These are sorted by name and then by version from oldest to newest. """ - dists = cls.dists_from_paths_or_urls(paths_or_urls) + dists = PypiPackage.dists_from_paths_or_urls(paths_or_urls) if TRACE_ULTRA_DEEP: print("packages_from_many_paths_or_urls: dists:", dists) @@ -1429,54 +1425,11 @@ def packages_from_many_paths_or_urls(cls, paths_or_urls): print("packages_from_many_paths_or_urls", package) yield package - @classmethod - def get_versions(cls, name, packages): - """ - Return a subset list of package versions from a list of `packages` that - match PypiPackage `name`. - The list is sorted by version from oldest to most recent. - """ - norm_name = NameVer.normalize_name(name) - versions = [p for p in packages if p.normalized_name == norm_name] - return cls.sorted(versions) - - @classmethod - def get_latest_version(cls, name, packages): - """ - Return the latest version of PypiPackage `name` from a list of `packages`. - """ - versions = cls.get_versions(name, packages) - if not versions: - return - return versions[-1] - - @classmethod - def get_name_version(cls, name, version, packages): - """ - Return the PypiPackage with `name` and `version` from a list of `packages` - or None if it is not found. - If `version` is None, return the latest version found. - """ - if TRACE_ULTRA_DEEP: - print("get_name_version:", name, version, packages) - if not version: - return cls.get_latest_version(name, packages) - - nvs = [p for p in cls.get_versions(name, packages) if p.version == version] - - if not nvs: - return - - if len(nvs) == 1: - return nvs[0] - - raise Exception(f"More than one PypiPackage with {name}=={version}") - @classmethod def dists_from_paths_or_urls(cls, paths_or_urls): """ Return a list of Distribution given a list of - `paths_or_urls` to wheels or source distributions. + ``paths_or_urls`` to wheels or source distributions. Each Distribution receives two extra attributes: - the path_or_url it was created from @@ -1488,25 +1441,20 @@ def dists_from_paths_or_urls(cls, paths_or_urls): ... bitarray-0.8.1-cp36-cp36m-macosx_10_9_x86_64.macosx_10_10_x86_64.whl ... bitarray-0.8.1-cp36-cp36m-win_amd64.whl ... https://example.com/bar/bitarray-0.8.1.tar.gz - ... bitarray-0.8.1.tar.gz.ABOUT bit.LICENSE'''.split() - >>> result = list(PypiPackage.dists_from_paths_or_urls(paths_or_urls)) + ... bitarray-0.8.1.tar.gz.ABOUT + ... bit.LICENSE'''.split() + >>> results = list(PypiPackage.dists_from_paths_or_urls(paths_or_urls)) >>> for r in results: - ... r.filename = '' - ... r.path_or_url = '' - >>> expected = [ - ... Wheel(name='bitarray', version='0.8.1', build='', - ... python_versions=['cp36'], abis=['cp36m'], - ... platforms=['linux_x86_64']), - ... Wheel(name='bitarray', version='0.8.1', build='', - ... python_versions=['cp36'], abis=['cp36m'], - ... platforms=['macosx_10_9_x86_64', 'macosx_10_10_x86_64']), - ... Wheel(name='bitarray', version='0.8.1', build='', - ... python_versions=['cp36'], abis=['cp36m'], - ... platforms=['win_amd64']), - ... Sdist(name='bitarray', version='0.8.1'), - ... Sdist(name='bitarray', version='0.8.1') - ... ] - >>> assert expected == result + ... print(r.__class__.__name__, r.name, r.version) + ... if isinstance(r, Wheel): + ... print(" ", ", ".join(r.python_versions), ", ".join(r.platforms)) + Wheel bitarray 0.8.1 + cp36 linux_x86_64 + Wheel bitarray 0.8.1 + cp36 macosx_10_9_x86_64, macosx_10_10_x86_64 + Wheel bitarray 0.8.1 + cp36 win_amd64 + Sdist bitarray 0.8.1 """ dists = [] if TRACE_ULTRA_DEEP: @@ -1518,7 +1466,14 @@ def dists_from_paths_or_urls(cls, paths_or_urls): dists.append(dist) if TRACE_DEEP: print( - " ===> dists_from_paths_or_urls:", dist, "with URL:", dist.download_url + " ===> dists_from_paths_or_urls:", + dist, + "\n ", + "with URL:", + dist.download_url, + "\n ", + "from URL:", + path_or_url, ) except InvalidDistributionFilename: if TRACE_DEEP: @@ -1653,101 +1608,105 @@ class PypiSimpleRepository: metadata=dict(help="Base PyPI simple URL for this index."), ) - packages_by_normalized_name = attr.ib( + # we keep a nested mapping of PypiPackage that has this shape: + # {name: {version: PypiPackage, version: PypiPackage, etc} + # the inner versions mapping is sorted by version from oldest to newest + + packages = attr.ib( type=dict, - default=attr.Factory(lambda: defaultdict(list)), - metadata=dict(help="Mapping of {package name: [package objects]} available in this repo"), + default=attr.Factory(lambda: defaultdict(dict)), + metadata=dict( + help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} available in this repo" + ), ) - packages_by_normalized_name_version = attr.ib( - type=dict, - default=attr.Factory(dict), - metadata=dict(help="Mapping of {(name, version): package object} available in this repo"), + fetched_package_normalized_names = attr.ib( + type=set, + default=attr.Factory(set), + metadata=dict(help="A set of already fetched package normalized names."), ) - def get_versions(self, name): + use_cached_index = attr.ib( + type=bool, + default=False, + metadata=dict(help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache."), + ) + + def _get_package_versions_map(self, name): """ - Return a list of all available PypiPackage version for this package name. - The list may be empty. + Return a mapping of all available PypiPackage version for this package name. + The mapping may be empty. It is ordered by version from oldest to newest """ - name = name and NameVer.normalize_name(name) - try: - self._populate_links_and_packages(name) - except Exception as e: - print(f" ==> Cannot find versions of {name}: {e}") - return self.packages_by_normalized_name.get(name, []) + assert name + normalized_name = NameVer.normalize_name(name) + versions = self.packages[normalized_name] + if not versions and normalized_name not in self.fetched_package_normalized_names: + self.fetched_package_normalized_names.add(normalized_name) + try: + links = self.fetch_links(normalized_name=normalized_name) + # note that thsi is sorted so the mapping is also sorted + versions = { + package.version: package + for package in PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links) + } + self.packages[normalized_name] = versions + except RemoteNotFetchedException as e: + if TRACE: + print(f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") + + if not versions and TRACE: + print(f"WARNING: package {name} not found in repo: {self.index_url}") + + return versions - def get_latest_version(self, name): + def get_package_versions(self, name): """ - Return the latest PypiPackage version for this package name or None. + Return a mapping of all available PypiPackage version as{version: + package} for this package name. The mapping may be empty but not None. + It is sorted by version from oldest to newest. """ - versions = self.get_versions(name) - return PypiPackage.get_latest_version(name, versions) + return dict(self._get_package_versions_map(name)) - def get_package(self, name, version): + def get_package_version(self, name, version=None): """ Return the PypiPackage with name and version or None. + Return the latest PypiPackage version if version is None. """ - versions = self.get_versions(name) - if TRACE_DEEP: - print("PypiPackage.get_package:versions:", versions) - return PypiPackage.get_name_version(name, version, versions) + if not version: + versions = list(self._get_package_versions_map(name).values()) + return versions and versions[-1] + else: + return self._get_package_versions_map(name).get(version) - def _fetch_links(self, name, _LINKS={}): + def fetch_links(self, normalized_name): """ Return a list of download link URLs found in a PyPI simple index for package name using the `index_url` of this repository. """ - name = name and NameVer.normalize_name(name) - index_url = self.index_url - - name = name and NameVer.normalize_name(name) - index_url = index_url.strip("/") - index_url = f"{index_url}/{name}" - - if TRACE_DEEP: - print( - f" Finding links for {name!r} from PyPI index: {index_url} : cached?:", - index_url in _LINKS, - ) - - if index_url not in _LINKS: - text = fetch_content_from_path_or_url_through_cache(path_or_url=index_url, as_text=True) - links = collect_urls(text) - # TODO: keep sha256 - links = [l.partition("#sha256=") for l in links] - links = [url for url, _, _sha256 in links] - _LINKS[index_url] = [l for l in links if l.endswith(EXTENSIONS)] - - links = _LINKS[index_url] - if TRACE_ULTRA_DEEP: - print(f" Found links {links!r}") + package_url = f"{self.index_url}/{normalized_name}" + text = CACHE.get( + path_or_url=package_url, + as_text=True, + force=not self.use_cached_index, + ) + links = collect_urls(text) + # TODO: keep sha256 + links = [l.partition("#sha256=") for l in links] + links = [url for url, _, _sha256 in links] return links - def _populate_links_and_packages(self, name): - name = name and NameVer.normalize_name(name) - - if TRACE_DEEP: - print("PypiPackage._populate_links_and_packages:name:", name) - - links = self._fetch_links(name) - packages = list(PypiPackage.packages_from_many_paths_or_urls(paths_or_urls=links)) - - if TRACE_DEEP: - print("PypiPackage._populate_links_and_packages:packages:", packages) - self.packages_by_normalized_name[name] = packages - - for p in packages: - name = name and NameVer.normalize_name(p.name) - self.packages_by_normalized_name_version[(name, p.version)] = p +PYPI_PUBLIC_REPO = PypiSimpleRepository(index_url=PYPI_SIMPLE_URL) +PYPI_SELFHOSTED_REPO = PypiSimpleRepository(index_url=ABOUT_PYPI_SIMPLE_URL) +DEFAULT_PYPI_REPOS = PYPI_PUBLIC_REPO, PYPI_SELFHOSTED_REPO +DEFAULT_PYPI_REPOS_BY_URL = {r.index_url: r for r in DEFAULT_PYPI_REPOS} @attr.attributes class LinksRepository: """ - Represents a simple links repository such an HTTP directory listing or a - page with links. + Represents a simple links repository such an HTTP directory listing or an + HTML page with links. """ url = attr.ib( @@ -1762,14 +1721,23 @@ class LinksRepository: metadata=dict(help="List of links available in this repo"), ) + use_cached_index = attr.ib( + type=bool, + default=False, + metadata=dict(help="If True, use any existing on-disk cached index files. Otherwise, fetch and cache."), + ) + def __attrs_post_init__(self): if not self.links: self.links = self.find_links() - def find_links(self): + def find_links(self, _CACHE=[]): """ Return a list of link URLs found in the HTML page at `self.url` """ + if _CACHE: + return _CACHE + links_url = self.url if TRACE_DEEP: print(f"Finding links from: {links_url}") @@ -1781,9 +1749,10 @@ def find_links(self): if TRACE_DEEP: print(f"Base URL {base_url}") - text = fetch_content_from_path_or_url_through_cache( + text = CACHE.get( path_or_url=links_url, as_text=True, + force=not self.use_cached_index, ) links = [] @@ -1812,12 +1781,13 @@ def find_links(self): if TRACE: print(f"Found {len(links)} links at {links_url}") + _CACHE.extend(links) return links @classmethod - def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}): + def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}, use_cached_index=False): if url not in _LINKS_REPO: - _LINKS_REPO[url] = cls(url=url) + _LINKS_REPO[url] = cls(url=url, use_cached_index=use_cached_index) return _LINKS_REPO[url] ################################################################################ @@ -1833,29 +1803,6 @@ def get_local_packages(directory=THIRDPARTY_DIR): """ return list(PypiPackage.packages_from_dir(directory=directory)) - -def get_pypi_repo(index_url, _PYPI_REPO={}): - if index_url not in _PYPI_REPO: - _PYPI_REPO[index_url] = PypiSimpleRepository(index_url=index_url) - return _PYPI_REPO[index_url] - - -@functools.cache -def get_pypi_package_data(name, version, index_url, verbose=TRACE_DEEP): - """ - Return a PypiPackage or None. - """ - try: - if verbose: - print(f" get_pypi_package_data: Fetching {name} @ {version} info from {index_url}") - package = get_pypi_repo(index_url).get_package(name, version) - if verbose: - print(f" get_pypi_package_data: Fetched: {package}") - return package - - except RemoteNotFetchedException as e: - print(f" get_pypi_package_data: Failed to fetch PyPI package {name} @ {version} info from {index_url}: {e}") - ################################################################################ # # Basic file and URL-based operations using a persistent file-based Cache @@ -1875,34 +1822,40 @@ class Cache: def __attrs_post_init__(self): os.makedirs(self.directory, exist_ok=True) - def clear(self): - shutil.rmtree(self.directory) - - def get(self, path_or_url, as_text=True): + def get(self, path_or_url, as_text=True, force=False): """ - Get a file from a `path_or_url` through the cache. - `path_or_url` can be a path or a URL to a file. + Return the content fetched from a ``path_or_url`` through the cache. + Raise an Exception on errors. Treats the content as text if as_text is + True otherwise as treat as binary. `path_or_url` can be a path or a URL + to a file. """ cache_key = quote_plus(path_or_url.strip("/")) cached = os.path.join(self.directory, cache_key) - if not os.path.exists(cached): + if force or not os.path.exists(cached): + if TRACE_DEEP: + print(f" FILE CACHE MISS: {path_or_url}") content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = "w" if as_text else "wb" with open(cached, wmode) as fo: fo.write(content) return content else: + if TRACE_DEEP: + print(f" FILE CACHE HIT: {path_or_url}") return get_local_file_content(path=cached, as_text=as_text) +CACHE = Cache() + + def get_file_content(path_or_url, as_text=True): """ Fetch and return the content at `path_or_url` from either a local path or a remote URL. Return the content as bytes is `as_text` is False. """ if path_or_url.startswith("https://"): - if TRACE: + if TRACE_DEEP: print(f"Fetching: {path_or_url}") _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) return content @@ -1954,7 +1907,7 @@ def get_remote_file_content( # using a GET with stream=True ensure we get the the final header from # several redirects and that we can ignore content there. A HEAD request may # not get us this last header - print(f" DOWNLOADING {url}") + print(f" DOWNLOADING: {url}") with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: status = response.status_code if status != requests.codes.ok: # NOQA @@ -1978,35 +1931,19 @@ def get_remote_file_content( return response.headers, response.text if as_text else response.content -def fetch_content_from_path_or_url_through_cache( +def fetch_and_save( path_or_url, - as_text=True, - cache=Cache(), -): - """ - Return the content from fetching at path or URL. Raise an Exception on - errors. Treats the content as text if as_text is True otherwise as treat as - binary. Use the provided file cache. This is the main entry for using the - cache. - - Note: the `cache` argument is a global, though it does not really matter - since it does not hold any state which is only kept on disk. - """ - return cache.get(path_or_url=path_or_url, as_text=as_text) - - -def fetch_and_save_path_or_url( - filename, dest_dir, - path_or_url, + filename, as_text=True, ): """ - Return the content from fetching the `filename` file name at URL or path - and save to `dest_dir`. Raise an Exception on errors. Treats the content as - text if as_text is True otherwise as treat as binary. + Fetch content at ``path_or_url`` URL or path and save this to + ``dest_dir/filername``. Return the fetched content. Raise an Exception on + errors. Treats the content as text if as_text is True otherwise as treat as + binary. """ - content = fetch_content_from_path_or_url_through_cache( + content = CACHE.get( path_or_url=path_or_url, as_text=as_text, ) @@ -2017,44 +1954,9 @@ def fetch_and_save_path_or_url( return content ################################################################################ -# Requirements processing -################################################################################ - - -def get_required_remote_packages( - requirements_file="requirements.txt", - index_url=PYPI_SIMPLE_URL, -): - """ - Yield tuple of (name, version, PypiPackage) for packages listed in the - `requirements_file` requirements file and found in the PyPI index - ``index_url`` URL. - """ - required_name_versions = load_requirements(requirements_file=requirements_file) - return get_required_packages(required_name_versions=required_name_versions, index_url=index_url) - - -def get_required_packages( - required_name_versions, - index_url=PYPI_SIMPLE_URL, -): - """ - Yield tuple of (name, version) or a PypiPackage for package name/version - listed in the ``required_name_versions`` list and found in the PyPI index - ``index_url`` URL. - """ - if TRACE: - print("get_required_packages", index_url) - - repo = get_pypi_repo(index_url=index_url) - - for name, version in required_name_versions: - if TRACE: - print(" get_required_packages: name:", name, "version:", version) - yield repo.get_package(name, version) - -################################################################################ +# # Functions to update or fetch ABOUT and license files +# ################################################################################ @@ -2075,7 +1977,7 @@ def clean_about_files( local_dist.save_about_and_notice_files(dest_dir) -def fetch_abouts_and_licenses(dest_dir=THIRDPARTY_DIR): +def fetch_abouts_and_licenses(dest_dir=THIRDPARTY_DIR, use_cached_index=False): """ Given a thirdparty dir, add missing ABOUT. LICENSE and NOTICE files using best efforts: @@ -2085,6 +1987,8 @@ def fetch_abouts_and_licenses(dest_dir=THIRDPARTY_DIR): - derive from existing distribution with same name and latest version that would have such ABOUT file - extract ABOUT file data from distributions PKGINFO or METADATA files + + Use available existing on-disk cached index if use_cached_index is True. """ def get_other_dists(_package, _dist): @@ -2094,7 +1998,6 @@ def get_other_dists(_package, _dist): """ return [d for d in _package.get_distributions() if d != _dist] - selfhosted_repo = get_pypi_repo(index_url=ABOUT_PYPI_SIMPLE_URL) local_packages = get_local_packages(directory=dest_dir) packages_by_name = defaultdict(list) for local_package in local_packages: @@ -2110,7 +2013,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # lets try to get from another dist of the same local package @@ -2122,7 +2025,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get another version of the same package that is not our version @@ -2148,7 +2051,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # lets try to fetch remotely @@ -2157,14 +2060,16 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get a latest version of the same package that is not our version + # and that is in our self hosted repo + lpv = local_package.version + lpn = local_package.name + other_remote_packages = [ - p - for p in selfhosted_repo.get_versions(local_package.name) - if p.version != local_package.version + p for v, p in PYPI_SELFHOSTED_REPO.get_package_versions(lpn).items() if v != lpv ] latest_version = other_remote_packages and other_remote_packages[-1] @@ -2184,7 +2089,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get data from pkginfo (no license though) @@ -2194,7 +2099,7 @@ def get_other_dists(_package, _dist): # if local_dist.has_key_metadata() or not local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir) - lic_errs = local_dist.fetch_license_files(dest_dir) + lic_errs = local_dist.fetch_license_files(dest_dir, use_cached_index=use_cached_index) if not local_dist.has_key_metadata(): print(f"Unable to add essential ABOUT data for: {local_dist}") @@ -2305,66 +2210,16 @@ def download_wheels_with_pip( downloaded = existing ^ set(os.listdir(dest_dir)) return sorted(downloaded), error - -def build_wheels_locally_if_pure_python( - requirements_specifier, - with_deps=False, - verbose=False, - dest_dir=THIRDPARTY_DIR, -): - """ - Given pip `requirements_specifier` string (such as package names or as - name==version), build the corresponding binary wheel(s) locally. - - If all these are "pure" Python wheels that run on all Python 3 versions and - operating systems, copy them back in `dest_dir` if they do not exists there - - Return a tuple of (True if all wheels are "pure", list of built wheel file names) - """ - deps = [] if with_deps else ["--no-deps"] - verbose = ["--verbose"] if verbose else [] - - wheel_dir = tempfile.mkdtemp(prefix="scancode-release-wheels-local-") - cli_args = ( - [ - "pip", - "wheel", - "--wheel-dir", - wheel_dir, - ] - +deps - +verbose - +[requirements_specifier] - ) - - print(f"Building local wheels for: {requirements_specifier}") - print(f"Using command:", " ".join(cli_args)) - call(cli_args) - - built = os.listdir(wheel_dir) - if not built: - return [] - - all_pure = all(is_pure_wheel(bwfn) for bwfn in built) - - if not all_pure: - print(f" Some wheels are not pure") - - print(f" Copying local wheels") - pure_built = [] - for bwfn in built: - owfn = os.path.join(dest_dir, bwfn) - if not os.path.exists(owfn): - nwfn = os.path.join(wheel_dir, bwfn) - fileutils.copyfile(nwfn, owfn) - pure_built.append(bwfn) - print(f" Built local wheel: {bwfn}") - return all_pure, pure_built +################################################################################ +# +# Functions to check for problems +# +################################################################################ def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"about check {dest_dir}".split()) + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") From ff348f5fa2882091ee892c3a0760edba3a63bd53 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 9 May 2022 22:58:46 +0200 Subject: [PATCH 132/247] Format code with black Signed-off-by: Philippe Ombredanne --- docs/source/conf.py | 12 +++++------- etc/scripts/fetch_thirdparty.py | 1 - etc/scripts/utils_thirdparty.py | 31 +++++++++++++++++++++++-------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 62bca04..d5435e7 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,7 +28,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ -'sphinx.ext.intersphinx', + "sphinx.ext.intersphinx", ] # This points to aboutcode.readthedocs.io @@ -36,8 +36,8 @@ # Link was created at commit - https://github.com/nexB/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83 intersphinx_mapping = { - 'aboutcode': ('https://aboutcode.readthedocs.io/en/latest/', None), - 'scancode-workbench': ('https://scancode-workbench.readthedocs.io/en/develop/', None), + "aboutcode": ("https://aboutcode.readthedocs.io/en/latest/", None), + "scancode-workbench": ("https://scancode-workbench.readthedocs.io/en/develop/", None), } @@ -62,7 +62,7 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] -master_doc = 'index' +master_doc = "index" html_context = { "display_github": True, @@ -72,9 +72,7 @@ "conf_py_path": "/docs/source/", # path in the checkout to the docs root } -html_css_files = [ - '_static/theme_overrides.css' - ] +html_css_files = ["_static/theme_overrides.css"] # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 26d520f..89d17de 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -110,7 +110,6 @@ is_flag=True, help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.", ) - @click.help_option("-h", "--help") def fetch_thirdparty( requirements_files, diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 9cbda37..2d6f3e4 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -311,6 +311,7 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): return fetched_sdist_filename + ################################################################################ # # Core models @@ -1064,16 +1065,16 @@ def get_sdist_name_ver_ext(filename): if version.isalpha(): return False - # non-pep 440 version + # non-pep 440 version if "-" in version: return False - # single version + # single version if version.isdigit() and len(version) == 1: return False - # r1 version - if len(version) == 2 and version[0]=="r" and version[1].isdigit(): + # r1 version + if len(version) == 2 and version[0] == "r" and version[1].isdigit(): return False # dotless version (but calver is OK) @@ -1588,6 +1589,7 @@ def tags(self): ) ) + ################################################################################ # # PyPI repo and link index for package wheels and sources @@ -1629,7 +1631,9 @@ class PypiSimpleRepository: use_cached_index = attr.ib( type=bool, default=False, - metadata=dict(help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache."), + metadata=dict( + help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache." + ), ) def _get_package_versions_map(self, name): @@ -1724,7 +1728,9 @@ class LinksRepository: use_cached_index = attr.ib( type=bool, default=False, - metadata=dict(help="If True, use any existing on-disk cached index files. Otherwise, fetch and cache."), + metadata=dict( + help="If True, use any existing on-disk cached index files. Otherwise, fetch and cache." + ), ) def __attrs_post_init__(self): @@ -1790,6 +1796,7 @@ def from_url(cls, url=ABOUT_BASE_URL, _LINKS_REPO={}, use_cached_index=False): _LINKS_REPO[url] = cls(url=url, use_cached_index=use_cached_index) return _LINKS_REPO[url] + ################################################################################ # Globals for remote repos to be lazily created and cached on first use for the # life of the session together with some convenience functions. @@ -1803,6 +1810,7 @@ def get_local_packages(directory=THIRDPARTY_DIR): """ return list(PypiPackage.packages_from_dir(directory=directory)) + ################################################################################ # # Basic file and URL-based operations using a persistent file-based Cache @@ -1953,6 +1961,7 @@ def fetch_and_save( fo.write(content) return content + ################################################################################ # # Functions to update or fetch ABOUT and license files @@ -2051,7 +2060,9 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files( + dest_dir=dest_dir, use_cached_index=use_cached_index + ) continue # lets try to fetch remotely @@ -2089,7 +2100,9 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files( + dest_dir=dest_dir, use_cached_index=use_cached_index + ) continue # try to get data from pkginfo (no license though) @@ -2107,6 +2120,7 @@ def get_other_dists(_package, _dist): lic_errs = "\n".join(lic_errs) print(f"Failed to fetch some licenses:: {lic_errs}") + ################################################################################ # # Functions to build new Python wheels including native on multiple OSes @@ -2210,6 +2224,7 @@ def download_wheels_with_pip( downloaded = existing ^ set(os.listdir(dest_dir)) return sorted(downloaded), error + ################################################################################ # # Functions to check for problems From d35d4feebe586a4218a8d421b6ca55a080291272 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 10 May 2022 14:27:01 +0200 Subject: [PATCH 133/247] Only use PyPI for downloads This is much faster Signed-off-by: Philippe Ombredanne --- configure | 3 +-- configure.bat | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/configure b/configure index d1b4fda..a52f539 100755 --- a/configure +++ b/configure @@ -54,11 +54,10 @@ CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin ################################ # Thirdparty package locations and index handling -# Find packages from the local thirdparty directory or from thirdparty.aboutcode.org +# Find packages from the local thirdparty directory if [ -d "$CFG_ROOT_DIR/thirdparty" ]; then PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" fi -PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" ################################ diff --git a/configure.bat b/configure.bat index 487e78a..41547cc 100644 --- a/configure.bat +++ b/configure.bat @@ -52,11 +52,10 @@ set "CFG_BIN_DIR=%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\Scripts" @rem ################################ @rem # Thirdparty package locations and index handling -@rem # Find packages from the local thirdparty directory or from thirdparty.aboutcode.org +@rem # Find packages from the local thirdparty directory if exist "%CFG_ROOT_DIR%\thirdparty" ( set PIP_EXTRA_ARGS=--find-links "%CFG_ROOT_DIR%\thirdparty" ) -set "PIP_EXTRA_ARGS=%PIP_EXTRA_ARGS% --find-links https://thirdparty.aboutcode.org/pypi/simple/links.html" @rem ################################ @@ -69,7 +68,6 @@ if not defined CFG_QUIET ( @rem ################################ @rem # Main command line entry point set "CFG_REQUIREMENTS=%REQUIREMENTS%" -set "NO_INDEX=--no-index" :again if not "%1" == "" ( From 154144baa1326255887a2c6c107c03577461bd14 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 12 May 2022 13:23:45 +0200 Subject: [PATCH 134/247] Enable automatic release on tag Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 96 +++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 20 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 3a4fe27..22315ff 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -1,27 +1,83 @@ -name: Release library as a PyPI wheel and sdist on GH release creation +name: Create library release archives, create a GH release and publish PyPI wheel and sdist on tag in main branch + + +# This is executed automatically on a tag in the main branch + +# Summary of the steps: +# - build wheels and sdist +# - upload wheels and sdist to PyPI +# - create gh-release and upload wheels and dists there +# TODO: smoke test wheels and sdist +# TODO: add changelog to release text body + +# WARNING: this is designed only for packages building as pure Python wheels on: - release: - types: [created] + workflow_dispatch: + push: + tags: + - "v*.*.*" jobs: - build-and-publish-to-pypi: + build-pypi-distribs: name: Build and publish library to PyPI runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@master + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: 3.9 + + - name: Install pypa/build + run: python -m pip install build --user + + - name: Build a binary wheel and a source tarball + run: python -m build --sdist --wheel --outdir dist/ + + - name: Upload built archives + uses: actions/upload-artifact@v3 + with: + name: pypi_archives + path: dist/* + + + create-gh-release: + name: Create GH release + needs: + - build-pypi-distribs + runs-on: ubuntu-20.04 + + steps: + - name: Download built archives + uses: actions/download-artifact@v3 + with: + name: pypi_archives + path: dist + + - name: Create GH release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: dist/* + + + create-pypi-release: + name: Create PyPI release + needs: + - create-gh-release + runs-on: ubuntu-20.04 + steps: - - uses: actions/checkout@master - - name: Set up Python - uses: actions/setup-python@v1 - with: - python-version: 3.9 - - name: Install pypa/build - run: python -m pip install build --user - - name: Build a binary wheel and a source tarball - run: python -m build --sdist --wheel --outdir dist/ - . - - name: Publish distribution to PyPI - if: startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{ secrets.PYPI_API_TOKEN }} - + - name: Download built archives + uses: actions/download-artifact@v3 + with: + name: pypi_archives + path: dist + + - name: Publish to PyPI + if: startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.PYPI_API_TOKEN }} From 1165f12eb321cf3ecced9655424d6a376933c23c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 25 May 2022 09:53:42 +0200 Subject: [PATCH 135/247] Remove Travis config Signed-off-by: Philippe Ombredanne --- .travis.yml | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ea48ceb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This is a skeleton Travis CI config file that provides a starting point for adding CI -# to a Python project. Since we primarily develop in python3, this skeleton config file -# will be specific to that language. -# -# See https://config.travis-ci.com/ for a full list of configuration options. - -os: linux - -dist: xenial - -language: python -python: - - "3.6" - - "3.7" - - "3.8" - - "3.9" - -# Scripts to run at install stage -install: ./configure --dev - -# Scripts to run at script stage -script: venv/bin/pytest From c1f70fc7339f6eee99c1b3b8f9a2f43e80a7bc01 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 27 May 2022 08:57:06 +0200 Subject: [PATCH 136/247] Add ScanCode Code of Conduct Signed-off-by: Philippe Ombredanne --- CODE_OF_CONDUCT.rst | 86 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 CODE_OF_CONDUCT.rst diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst new file mode 100644 index 0000000..590ba19 --- /dev/null +++ b/CODE_OF_CONDUCT.rst @@ -0,0 +1,86 @@ +Contributor Covenant Code of Conduct +==================================== + +Our Pledge +---------- + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our +project and our community a harassment-free experience for everyone, +regardless of age, body size, disability, ethnicity, gender identity and +expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +Our Standards +------------- + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual + attention or advances +- Trolling, insulting/derogatory comments, and personal or political + attacks +- Public or private harassment +- Publishing others’ private information, such as a physical or + electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +Our Responsibilities +-------------------- + +Project maintainers are responsible for clarifying the standards of +acceptable behavior and are expected to take appropriate and fair +corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, +or reject comments, commits, code, wiki edits, issues, and other +contributions that are not aligned to this Code of Conduct, or to ban +temporarily or permanently any contributor for other behaviors that they +deem inappropriate, threatening, offensive, or harmful. + +Scope +----- + +This Code of Conduct applies both within project spaces and in public +spaces when an individual is representing the project or its community. +Examples of representing a project or community include using an +official project e-mail address, posting via an official social media +account, or acting as an appointed representative at an online or +offline event. Representation of a project may be further defined and +clarified by project maintainers. + +Enforcement +----------- + +Instances of abusive, harassing, or otherwise unacceptable behavior may +be reported by contacting the project team at pombredanne@gmail.com +or on the Gitter chat channel at https://gitter.im/aboutcode-org/discuss . +All complaints will be reviewed and investigated and will result in a +response that is deemed necessary and appropriate to the circumstances. +The project team is obligated to maintain confidentiality with regard to +the reporter of an incident. Further details of specific enforcement +policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in +good faith may face temporary or permanent repercussions as determined +by other members of the project’s leadership. + +Attribution +----------- + +This Code of Conduct is adapted from the `Contributor Covenant`_ , +version 1.4, available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +.. _Contributor Covenant: https://www.contributor-covenant.org From 9acab17814f47ec8104962c4cb310877bb8bbbfa Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 27 May 2022 08:58:37 +0200 Subject: [PATCH 137/247] Improve detection of thirdparty dir Signed-off-by: Philippe Ombredanne --- configure | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/configure b/configure index a52f539..32e02f5 100755 --- a/configure +++ b/configure @@ -52,11 +52,19 @@ CFG_ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CFG_BIN_DIR=$CFG_ROOT_DIR/$VIRTUALENV_DIR/bin +################################ +# Install with or without and index. With "--no-index" this is using only local wheels +# This is an offline mode with no index and no network operations +# NO_INDEX="--no-index " +NO_INDEX="" + + ################################ # Thirdparty package locations and index handling -# Find packages from the local thirdparty directory -if [ -d "$CFG_ROOT_DIR/thirdparty" ]; then - PIP_EXTRA_ARGS="--find-links $CFG_ROOT_DIR/thirdparty" +# Find packages from the local thirdparty directory if present +THIRDPARDIR=$CFG_ROOT_DIR/thirdparty +if [[ "$(echo $THIRDPARDIR/*.whl)x" != "$THIRDPARDIR/*.whlx" ]]; then + PIP_EXTRA_ARGS="$NO_INDEX --find-links $THIRDPARDIR" fi @@ -182,6 +190,7 @@ while getopts :-: optchar; do esac done + PIP_EXTRA_ARGS="$PIP_EXTRA_ARGS" find_python From 4dc252163e63132d9ae1479d22af728ca1232a31 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 29 May 2022 22:25:13 +0200 Subject: [PATCH 138/247] Add comment Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_thirdparty.py | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 2d6f3e4..53f2d33 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -1678,6 +1678,7 @@ def get_package_version(self, name, version=None): """ if not version: versions = list(self._get_package_versions_map(name).values()) + # return the latest version return versions and versions[-1] else: return self._get_package_versions_map(name).get(version) From 04a872cb0efcb8be14dedd91470fb0fe44a7d319 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Thu, 22 Sep 2022 16:45:56 +0800 Subject: [PATCH 139/247] Remove the thirdparty directory Signed-off-by: Chin Yeung Li --- thirdparty/README.rst | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 thirdparty/README.rst diff --git a/thirdparty/README.rst b/thirdparty/README.rst deleted file mode 100644 index b31482f..0000000 --- a/thirdparty/README.rst +++ /dev/null @@ -1,2 +0,0 @@ -Put your Python dependency wheels to be vendored in this directory. - From 07cd7360ec38a3a43b53d7f697d225e3487ec725 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Thu, 22 Sep 2022 16:48:21 +0800 Subject: [PATCH 140/247] Update the azure-piprlines The following images are deprecated in GitHub actions and Azure DevOps: * `ubuntu-18.04` : actions/runner-images#6002 * `macos-10.15` : actions/runner-images#5583 Due to this there was failing tests due to planned brownouts. Updated ubuntu18 to ubuntu22 Updated macos-1015 to macos12 Signed-off-by: Chin Yeung Li --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6ca19c4..7f1720c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,8 +9,8 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: ubuntu18_cpython - image_name: ubuntu-18.04 + job_name: ubuntu22_cpython + image_name: ubuntu-22.04 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -25,8 +25,8 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: macos1015_cpython - image_name: macos-10.15 + job_name: macos12_cpython + image_name: macos-12 python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs From 509b03210d3965eacf60914f1dee068063c138de Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 18 Oct 2022 12:05:56 -0700 Subject: [PATCH 141/247] Add missing os import in utils_requirements.py * Rename references to etc/release with etc/scripts Signed-off-by: Jono Yang --- etc/scripts/README.rst | 8 ++++---- etc/scripts/utils_requirements.py | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/etc/scripts/README.rst b/etc/scripts/README.rst index edf82e4..5e54a2c 100755 --- a/etc/scripts/README.rst +++ b/etc/scripts/README.rst @@ -21,7 +21,7 @@ Pre-requisites virtualenv or in the the main configured development virtualenv. These requireements need to be installed:: - pip install --requirement etc/release/requirements.txt + pip install --requirement etc/scripts/requirements.txt TODO: we need to pin the versions of these tools @@ -34,7 +34,7 @@ Scripts ~~~~~~~ **gen_requirements.py**: create/update requirements files from currently - installed requirements. + installed requirements. **gen_requirements_dev.py** does the same but can subtract the main requirements to get extra requirements used in only development. @@ -50,7 +50,7 @@ The sequence of commands to run are: ./configure --clean ./configure - python etc/release/gen_requirements.py --site-packages-dir + python etc/scripts/gen_requirements.py --site-packages-dir * You can optionally install or update extra main requirements after the ./configure step such that these are included in the generated main requirements. @@ -59,7 +59,7 @@ The sequence of commands to run are: ./configure --clean ./configure --dev - python etc/release/gen_requirements_dev.py --site-packages-dir + python etc/scripts/gen_requirements_dev.py --site-packages-dir * You can optionally install or update extra dev requirements after the ./configure step such that these are included in the generated dev diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 7c99a33..db7e0ee 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -8,6 +8,7 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # +import os import re import subprocess From c6bba072eba17c092cbe17b3d553828a307365a6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 25 Nov 2022 17:23:10 +0100 Subject: [PATCH 142/247] Reinstate Ubuntu 18 and drop Python 3.6 and 3.7 3.7 is not available anymore on newer OSes and is retired in 2023. Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7f1720c..e796fce 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,9 +9,9 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: ubuntu22_cpython - image_name: ubuntu-22.04 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + job_name: ubuntu18_cpython + image_name: ubuntu-18.04 + python_versions: ['3.7', '3.8', '3.9', '3.10'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -19,7 +19,15 @@ jobs: parameters: job_name: ubuntu20_cpython image_name: ubuntu-20.04 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.8', '3.9', '3.10', '3.11'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: ubuntu22_cpython + image_name: ubuntu-22.04 + python_versions: ['3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +35,7 @@ jobs: parameters: job_name: macos12_cpython image_name: macos-12 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +43,7 @@ jobs: parameters: job_name: macos11_cpython image_name: macos-11 - python_versions: ['3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +51,7 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.8', '3.9', '3.10', '3.11'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -51,6 +59,6 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.8', '3.9', '3.10', '3.11'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From 1bd7a2ff959f311fb00772982deaae4efd8355e5 Mon Sep 17 00:00:00 2001 From: swastik Date: Fri, 6 Jan 2023 03:35:13 +0530 Subject: [PATCH 143/247] Replace packaging with packvers * import update in src/scripts/utils_dejacode * Packvers replacing packaging in other src/scripts * Added packvers in src/scripts/requirments.txt Signed-off-by: swastik --- etc/scripts/requirements.txt | 3 ++- etc/scripts/utils_dejacode.py | 2 +- etc/scripts/utils_pip_compatibility_tags.py | 2 +- etc/scripts/utils_thirdparty.py | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/etc/scripts/requirements.txt b/etc/scripts/requirements.txt index ebb404b..7c514da 100644 --- a/etc/scripts/requirements.txt +++ b/etc/scripts/requirements.txt @@ -8,4 +8,5 @@ pip setuptools twine wheel -build \ No newline at end of file +build +packvers diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index f28e247..c42e6c9 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -15,7 +15,7 @@ import requests import saneyaml -from packaging import version as packaging_version +from packvers import version as packaging_version """ Utility to create and retrieve package and ABOUT file data from DejaCode. diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index 5d5eb34..af42a0c 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -27,7 +27,7 @@ import re -from packaging.tags import ( +from packvers.tags import ( compatible_tags, cpython_tags, generic_tags, diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 53f2d33..121af38 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -28,8 +28,8 @@ from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name -from packaging import tags as packaging_tags -from packaging import version as packaging_version +from packvers import tags as packaging_tags +from packvers import version as packaging_version import utils_pip_compatibility_tags From 6f21d2b7b97b0a81741089ae9d6271b131a0ef58 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:13:17 +0100 Subject: [PATCH 144/247] Ignore egginfo Signed-off-by: Philippe Ombredanne --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 339dca5..2d48196 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.py[cod] # virtualenv and other misc bits +/src/*.egg-info *.egg-info /dist /build From f841c2f04732070b38810c1f03fcda26dd6ce339 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:13:45 +0100 Subject: [PATCH 145/247] Drop Python 3.7 add Python 3.11 Also test on latest Ubuntu and macOS Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6ca19c4..fc5a41e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,7 +11,7 @@ jobs: parameters: job_name: ubuntu18_cpython image_name: ubuntu-18.04 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -19,7 +19,15 @@ jobs: parameters: job_name: ubuntu20_cpython image_name: ubuntu-20.04 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: ubuntu22_cpython + image_name: ubuntu-22.04 + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +35,7 @@ jobs: parameters: job_name: macos1015_cpython image_name: macos-10.15 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +43,15 @@ jobs: parameters: job_name: macos11_cpython image_name: macos-11 - python_versions: ['3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos12_cpython + image_name: macos-12 + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +59,7 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -51,6 +67,6 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.7', '3.8', '3.9', '3.10'] + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From bd2a464557273dcc57bd37a0f113596c3b45a1e4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:13:58 +0100 Subject: [PATCH 146/247] Clean .cache and .eggs Signed-off-by: Philippe Ombredanne --- configure | 2 +- configure.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 32e02f5..926a894 100755 --- a/configure +++ b/configure @@ -36,7 +36,7 @@ DOCS_REQUIREMENTS="--editable .[docs] --constraint requirements.txt" VIRTUALENV_DIR=venv # Cleanable files and directories to delete with the --clean option -CLEANABLE="build venv" +CLEANABLE="build dist venv .cache .eggs" # extra arguments passed to pip PIP_EXTRA_ARGS=" " diff --git a/configure.bat b/configure.bat index 41547cc..5e95b31 100644 --- a/configure.bat +++ b/configure.bat @@ -34,7 +34,7 @@ set "DOCS_REQUIREMENTS=--editable .[docs] --constraint requirements.txt" set "VIRTUALENV_DIR=venv" @rem # Cleanable files and directories to delete with the --clean option -set "CLEANABLE=build venv" +set "CLEANABLE=build dist venv .cache .eggs" @rem # extra arguments passed to pip set "PIP_EXTRA_ARGS= " From 6270a8805c7fb964e545a56ca8a92829d240a96a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:14:27 +0100 Subject: [PATCH 147/247] Add COC to redistributed license-like files Signed-off-by: Philippe Ombredanne --- setup.cfg | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index 12d6654..006b322 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,6 +27,7 @@ license_files = NOTICE AUTHORS.rst CHANGELOG.rst + CODE_OF_CONDUCT.rst [options] package_dir = @@ -37,7 +38,7 @@ zip_safe = false setup_requires = setuptools_scm[toml] >= 4 -python_requires = >=3.6.* +python_requires = >=3.7 install_requires = @@ -50,8 +51,10 @@ where = src testing = pytest >= 6, != 7.0.0 pytest-xdist >= 2 - aboutcode-toolkit >= 6.0.0 + aboutcode-toolkit >= 7.0.2 + twine black + isort docs = Sphinx >= 3.3.1 From d3a19bdcc126b51149f4226323158e843a6cfcad Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:14:38 +0100 Subject: [PATCH 148/247] Add new Makefile Signed-off-by: Philippe Ombredanne --- Makefile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cc36c35 --- /dev/null +++ b/Makefile @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/skeleton for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +# Python version can be specified with `$ PYTHON_EXE=python3.x make conf` +PYTHON_EXE?=python3 +VENV=venv +ACTIVATE?=. ${VENV}/bin/activate; + +dev: + @echo "-> Configure the development envt." + ./configure --dev + +isort: + @echo "-> Apply isort changes to ensure proper imports ordering" + ${VENV}/bin/isort --sl -l 100 src tests setup.py + +black: + @echo "-> Apply black code formatter" + ${VENV}/bin/black -l 100 src tests setup.py + +doc8: + @echo "-> Run doc8 validation" + @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ + +valid: isort black + +check: + @echo "-> Run pycodestyle (PEP8) validation" + @${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache . + @echo "-> Run isort imports ordering validation" + @${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests . + @echo "-> Run black validation" + @${ACTIVATE} black --check --check -l 100 src tests setup.py + +clean: + @echo "-> Clean the Python env" + ./configure --clean + +test: + @echo "-> Run the test suite" + ${VENV}/bin/pytest -vvs + +docs: + rm -rf docs/_build/ + @${ACTIVATE} sphinx-build docs/ docs/_build/ + +.PHONY: conf dev check valid black isort clean test docs From 91f561334ed4cbe9b003ec9d3a7e61cfa649dfd6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 15 Jan 2023 17:15:03 +0100 Subject: [PATCH 149/247] Align scripts with latest ScanCode Toolkit Signed-off-by: Philippe Ombredanne --- etc/scripts/fetch_thirdparty.py | 87 +++++++++++++++------ etc/scripts/gen_pypi_simple.py | 6 +- etc/scripts/requirements.txt | 3 +- etc/scripts/utils_dejacode.py | 2 +- etc/scripts/utils_pip_compatibility_tags.py | 2 +- etc/scripts/utils_requirements.py | 2 + etc/scripts/utils_thirdparty.py | 20 +++-- 7 files changed, 82 insertions(+), 40 deletions(-) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 89d17de..eedf05c 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -12,6 +12,7 @@ import itertools import os import sys +from collections import defaultdict import click @@ -110,6 +111,39 @@ is_flag=True, help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.", ) +@click.option( + "--sdist-only", + "sdist_only", + type=str, + metavar="SDIST", + default=tuple(), + show_default=False, + multiple=True, + help="Package name(s) that come only in sdist format (no wheels). " + "The command will not fail and exit if no wheel exists for these names", +) +@click.option( + "--wheel-only", + "wheel_only", + type=str, + metavar="WHEEL", + default=tuple(), + show_default=False, + multiple=True, + help="Package name(s) that come only in wheel format (no sdist). " + "The command will not fail and exit if no sdist exists for these names", +) +@click.option( + "--no-dist", + "no_dist", + type=str, + metavar="DIST", + default=tuple(), + show_default=False, + multiple=True, + help="Package name(s) that do not come either in wheel or sdist format. " + "The command will not fail and exit if no distribution exists for these names", +) @click.help_option("-h", "--help") def fetch_thirdparty( requirements_files, @@ -122,6 +156,9 @@ def fetch_thirdparty( sdists, index_urls, use_cached_index, + sdist_only, + wheel_only, + no_dist, ): """ Download to --dest THIRDPARTY_DIR the PyPI wheels, source distributions, @@ -204,58 +241,62 @@ def fetch_thirdparty( ) repos.append(repo) - wheels_fetched = [] - wheels_not_found = [] - - sdists_fetched = [] - sdists_not_found = [] + wheels_or_sdist_not_found = defaultdict(list) for name, version in sorted(required_name_versions): nv = name, version print(f"Processing: {name} @ {version}") if wheels: for environment in environments: + if TRACE: print(f" ==> Fetching wheel for envt: {environment}") - fwfns = utils_thirdparty.download_wheel( + + fetched = utils_thirdparty.download_wheel( name=name, version=version, environment=environment, dest_dir=dest_dir, repos=repos, ) - if fwfns: - wheels_fetched.extend(fwfns) - else: - wheels_not_found.append(f"{name}=={version} for: {environment}") + if not fetched: + wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) if TRACE: print(f" NOT FOUND") - if sdists: + if (sdists or + (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only) + ): if TRACE: print(f" ==> Fetching sdist: {name}=={version}") + fetched = utils_thirdparty.download_sdist( name=name, version=version, dest_dir=dest_dir, repos=repos, ) - if fetched: - sdists_fetched.append(fetched) - else: - sdists_not_found.append(f"{name}=={version}") + if not fetched: + wheels_or_sdist_not_found[f"{name}=={version}"].append("sdist") if TRACE: print(f" NOT FOUND") - if wheels and wheels_not_found: - print(f"==> MISSING WHEELS") - for wh in wheels_not_found: - print(f" {wh}") + mia = [] + for nv, dists in wheels_or_sdist_not_found.items(): + name, _, version = nv.partition("==") + if name in no_dist: + continue + sdist_missing = sdists and "sdist" in dists and not name in wheel_only + if sdist_missing: + mia.append(f"SDist missing: {nv} {dists}") + wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only + if wheels_missing: + mia.append(f"Wheels missing: {nv} {dists}") - if sdists and sdists_not_found: - print(f"==> MISSING SDISTS") - for sd in sdists_not_found: - print(f" {sd}") + if mia: + for m in mia: + print(m) + raise Exception(mia) print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 03312ab..214d90d 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -118,7 +118,7 @@ def build_per_package_index(pkg_name, packages, base_url): """ document.append(header) - for package in packages: + for package in sorted(packages, key=lambda p: p.archive_file): document.append(package.simple_index_entry(base_url)) footer = """ @@ -141,8 +141,8 @@ def build_links_package_index(packages_by_package_name, base_url): """ document.append(header) - for _name, packages in packages_by_package_name.items(): - for package in packages: + for _name, packages in sorted(packages_by_package_name.items(), key=lambda i: i[0]): + for package in sorted(packages, key=lambda p: p.archive_file): document.append(package.simple_index_entry(base_url)) footer = """ diff --git a/etc/scripts/requirements.txt b/etc/scripts/requirements.txt index ebb404b..7c514da 100644 --- a/etc/scripts/requirements.txt +++ b/etc/scripts/requirements.txt @@ -8,4 +8,5 @@ pip setuptools twine wheel -build \ No newline at end of file +build +packvers diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index f28e247..c42e6c9 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -15,7 +15,7 @@ import requests import saneyaml -from packaging import version as packaging_version +from packvers import version as packaging_version """ Utility to create and retrieve package and ABOUT file data from DejaCode. diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index 5d5eb34..af42a0c 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -27,7 +27,7 @@ import re -from packaging.tags import ( +from packvers.tags import ( compatible_tags, cpython_tags, generic_tags, diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 7c99a33..0fc25a3 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -8,6 +8,8 @@ # See https://github.com/nexB/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # + +import os import re import subprocess diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 53f2d33..addf8e5 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -28,8 +28,8 @@ from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name -from packaging import tags as packaging_tags -from packaging import version as packaging_version +from packvers import tags as packaging_tags +from packvers import version as packaging_version import utils_pip_compatibility_tags @@ -115,10 +115,9 @@ TRACE_ULTRA_DEEP = False # Supported environments -PYTHON_VERSIONS = "36", "37", "38", "39", "310" +PYTHON_VERSIONS = "37", "38", "39", "310" PYTHON_DOT_VERSIONS_BY_VER = { - "36": "3.6", "37": "3.7", "38": "3.8", "39": "3.9", @@ -134,7 +133,6 @@ def get_python_dot_version(version): ABIS_BY_PYTHON_VERSION = { - "36": ["cp36", "cp36m", "abi3"], "37": ["cp37", "cp37m", "abi3"], "38": ["cp38", "cp38m", "abi3"], "39": ["cp39", "cp39m", "abi3"], @@ -912,7 +910,7 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): declared_license = [raw_data["License"]] + [ c for c in classifiers if c.startswith("License") ] - license_expression = compute_normalized_license_expression(declared_license) + license_expression = get_license_expression(declared_license) other_classifiers = [c for c in classifiers if not c.startswith("License")] holder = raw_data["Author"] @@ -1337,10 +1335,10 @@ def package_from_dists(cls, dists): For example: >>> w1 = Wheel(name='bitarray', version='0.8.1', build='', - ... python_versions=['cp36'], abis=['cp36m'], + ... python_versions=['cp38'], abis=['cp38m'], ... platforms=['linux_x86_64']) >>> w2 = Wheel(name='bitarray', version='0.8.1', build='', - ... python_versions=['cp36'], abis=['cp36m'], + ... python_versions=['cp38'], abis=['cp38m'], ... platforms=['macosx_10_9_x86_64', 'macosx_10_10_x86_64']) >>> sd = Sdist(name='bitarray', version='0.8.1') >>> package = PypiPackage.package_from_dists(dists=[w1, w2, sd]) @@ -2274,16 +2272,16 @@ def find_problems( check_about(dest_dir=dest_dir) -def compute_normalized_license_expression(declared_licenses): +def get_license_expression(declared_licenses): """ Return a normalized license expression or None. """ if not declared_licenses: return try: - from packagedcode import pypi + from packagedcode.licensing import get_only_expression_from_extracted_license - return pypi.compute_normalized_license(declared_licenses) + return get_only_expression_from_extracted_license(declared_licenses) except ImportError: # Scancode is not installed, clean and join all the licenses lics = [python_safe_name(l).lower() for l in declared_licenses] From d661e13c743994d30593d914f567461efe66adc4 Mon Sep 17 00:00:00 2001 From: Arnav Mandal Date: Fri, 24 Mar 2023 23:38:15 +0530 Subject: [PATCH 150/247] Add pycodestyle in setup.cfg Signed-off-by: Arnav Mandal --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 006b322..edc16ba 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,6 +52,7 @@ testing = pytest >= 6, != 7.0.0 pytest-xdist >= 2 aboutcode-toolkit >= 7.0.2 + pycodestyle >= 2.8.0 twine black isort From e98549283f763b7097956d401df9a7191876ed16 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 28 Mar 2023 18:37:15 +0530 Subject: [PATCH 151/247] Remove deprecated github-actions/azure images - remove deprecated `ubuntu-18.04` image - remove deprecated `macos-10.15` image Signed-off-by: Ayan Sinha Mahapatra --- azure-pipelines.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fc5a41e..5067fd4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,14 +7,6 @@ jobs: - - template: etc/ci/azure-posix.yml - parameters: - job_name: ubuntu18_cpython - image_name: ubuntu-18.04 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu20_cpython @@ -31,14 +23,6 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos1015_cpython - image_name: macos-10.15 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: macos11_cpython From 7e354456b35e59c6fad1f9c196994736d0ec613b Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 8 May 2023 12:37:46 -0700 Subject: [PATCH 152/247] Pin Sphinx version to 6.2.1 Signed-off-by: Jono Yang --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index edc16ba..18bfbde 100644 --- a/setup.cfg +++ b/setup.cfg @@ -58,6 +58,6 @@ testing = isort docs = - Sphinx >= 3.3.1 + Sphinx == 6.2.1 sphinx-rtd-theme >= 0.5.0 doc8 >= 0.8.1 From e3aaf6309e65ad8d814d9713a20d4e930b07cbe9 Mon Sep 17 00:00:00 2001 From: Arijit De Date: Wed, 31 May 2023 20:50:06 +0530 Subject: [PATCH 153/247] Publish PDF version of RTD documentation Made changes in the .readthedocs.yaml to enable format for downloading pdf and epub versions of the documentation and added latex_elements in the conf.py file which generates the pdf without blank pages. The minimum version requirement for sphinx was 6.2.1 which was causing build failure in read the docs, hence changing it 3.3.1 as written in setup.cfg of nexB/aboutcode Signed-off-by: Arijit De --- .readthedocs.yml | 5 +++++ docs/source/conf.py | 6 ++++++ setup.cfg | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 1b71cd9..2a7dc0b 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,6 +5,11 @@ # Required version: 2 +# Build PDF & ePub +formats: + - epub + - pdf + # Where the Sphinx conf.py file is located sphinx: configuration: docs/source/conf.py diff --git a/docs/source/conf.py b/docs/source/conf.py index d5435e7..39835c6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -95,3 +95,9 @@ .. role:: img-title-para """ + +# -- Options for LaTeX output ------------------------------------------------- + +latex_elements = { + 'classoptions': ',openany,oneside' +} \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 18bfbde..b02fd34 100644 --- a/setup.cfg +++ b/setup.cfg @@ -58,6 +58,6 @@ testing = isort docs = - Sphinx == 6.2.1 + Sphinx == 5.1.0 sphinx-rtd-theme >= 0.5.0 doc8 >= 0.8.1 From 5be7a24d3f6b581f3dd9aef193923a4a23420dea Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 6 Jun 2023 21:46:49 +0530 Subject: [PATCH 154/247] Bump github actions versions #75 Update the following actions: * actions/checkout * actions/setup-python Reference: https://github.com/nexB/skeleton/issues/75 Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/docs-ci.yml | 4 ++-- .github/workflows/pypi-release.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 18a44aa..511b7c2 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -13,10 +13,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 22315ff..4ebe10d 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -24,9 +24,9 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: 3.9 From 78a64e5348f0bca0cb0fa5ead20ae4e4e16e5766 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 10 Jul 2023 15:17:09 +0530 Subject: [PATCH 155/247] Update github actions Reference: https://github.com/nexB/skeleton/issues/75 Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/pypi-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 4ebe10d..9585730 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -78,6 +78,6 @@ jobs: - name: Publish to PyPI if: startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_API_TOKEN }} From a4d8628e1fc3c956f28ac8104e2d895bfad7f592 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 10 Jul 2023 15:22:22 +0530 Subject: [PATCH 156/247] Update RTD buil Signed-off-by: Ayan Sinha Mahapatra --- .readthedocs.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index 2a7dc0b..8ab2368 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -5,6 +5,12 @@ # Required version: 2 +# Build in latest ubuntu/python +build: + os: ubuntu-22.04 + tools: + python: "3.11" + # Build PDF & ePub formats: - epub From 4c68fba913f5ebd7598200e14b8085e5d38865a2 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 10 Jul 2023 15:34:19 +0530 Subject: [PATCH 157/247] Fix unordered lists issue Signed-off-by: Ayan Sinha Mahapatra --- setup.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.cfg b/setup.cfg index b02fd34..ae1043e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -58,6 +58,6 @@ testing = isort docs = - Sphinx == 5.1.0 - sphinx-rtd-theme >= 0.5.0 - doc8 >= 0.8.1 + Sphinx>=5.0.2 + sphinx-rtd-theme>=1.0.0 + doc8>=0.11.2 \ No newline at end of file From c33241d5f0407f740e0a49280ffc65a60f1ab247 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 25 May 2023 23:25:58 +0530 Subject: [PATCH 158/247] Add redirects for docs Signed-off-by: Ayan Sinha Mahapatra --- docs/source/conf.py | 6 ++++++ setup.cfg | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 39835c6..918d62c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -29,8 +29,14 @@ # ones. extensions = [ "sphinx.ext.intersphinx", + "sphinx_reredirects", ] + +# Redirects for olds pages +# See https://documatt.gitlab.io/sphinx-reredirects/usage.html +redirects = {} + # This points to aboutcode.readthedocs.io # In case of "undefined label" ERRORS check docs on intersphinx to troubleshoot # Link was created at commit - https://github.com/nexB/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83 diff --git a/setup.cfg b/setup.cfg index ae1043e..d6c7da7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -60,4 +60,6 @@ testing = docs = Sphinx>=5.0.2 sphinx-rtd-theme>=1.0.0 - doc8>=0.11.2 \ No newline at end of file + sphinx-reredirects >= 0.1.2 + doc8>=0.11.2 + From ea5044dda26f3ef18d46f139c4d9eb97baec5ba8 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 17 Jul 2023 13:28:38 -0700 Subject: [PATCH 159/247] Create script to update repo skeleton #80 Signed-off-by: Jono Yang --- etc/scripts/update_skeleton.py | 104 +++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 etc/scripts/update_skeleton.py diff --git a/etc/scripts/update_skeleton.py b/etc/scripts/update_skeleton.py new file mode 100644 index 0000000..635898b --- /dev/null +++ b/etc/scripts/update_skeleton.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/skeleton for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +from pathlib import Path +import os +import subprocess + +import click + + +NEXB_PUBLIC_REPO_NAMES=[ + "aboutcode-toolkit", + "ahocode", + "bitcode", + "clearcode-toolkit", + "commoncode", + "container-inspector", + "debian-inspector", + "deltacode", + "elf-inspector", + "extractcode", + "fetchcode", + "gemfileparser2", + "gh-issue-sandbox", + "go-inspector", + "heritedcode", + "license-expression", + "license_copyright_pipeline", + "nuget-inspector", + "pip-requirements-parser", + "plugincode", + "purldb", + "pygmars", + "python-inspector", + "sanexml", + "saneyaml", + "scancode-analyzer", + "scancode-toolkit-contrib", + "scancode-toolkit-reference-scans", + "thirdparty-toolkit", + "tracecode-toolkit", + "tracecode-toolkit-strace", + "turbo-spdx", + "typecode", + "univers", +] + + +@click.command() +@click.help_option("-h", "--help") +def update_skeleton_files(repo_names=NEXB_PUBLIC_REPO_NAMES): + """ + Update project files of nexB projects that use the skeleton + + This script will: + - Clone the repo + - Add the skeleton repo as a new origin + - Create a new branch named "update-skeleton-files" + - Merge in the new skeleton files into the "update-skeleton-files" branch + + The user will need to save merge commit messages that pop up when running + this script in addition to resolving the merge conflicts on repos that have + them. + """ + + # Create working directory + work_dir_path = Path("/tmp/update_skeleton/") + if not os.path.exists(work_dir_path): + os.makedirs(work_dir_path, exist_ok=True) + + for repo_name in repo_names: + # Move to work directory + os.chdir(work_dir_path) + + # Clone repo + repo_git = f"git@github.com:nexB/{repo_name}.git" + subprocess.run(["git", "clone", repo_git]) + + # Go into cloned repo + os.chdir(work_dir_path / repo_name) + + # Add skeleton as an origin + subprocess.run(["git", "remote", "add", "skeleton", "git@github.com:nexB/skeleton.git"]) + + # Fetch skeleton files + subprocess.run(["git", "fetch", "skeleton"]) + + # Create and checkout new branch + subprocess.run(["git", "checkout", "-b", "update-skeleton-files"]) + + # Merge skeleton files into the repo + subprocess.run(["git", "merge", "skeleton/main", "--allow-unrelated-histories"]) + + +if __name__ == "__main__": + update_skeleton_files() From 8c042228dbd0f2f8e61852e7fb60e848d9dd4371 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 18 Jul 2023 10:05:03 -0700 Subject: [PATCH 160/247] Add macOS-13 job in azure-pipelines.yml Signed-off-by: Jono Yang --- README.rst | 5 ++++- azure-pipelines.yml | 12 ++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index be65734..6cbd839 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ A Simple Python Project Skeleton ================================ This repo attempts to standardize the structure of the Python-based project's -repositories using modern Python packaging and configuration techniques. +repositories using modern Python packaging and configuration techniques. Using this `blog post`_ as inspiration, this repository serves as the base for all new Python projects and is mergeable in existing repositories as well. @@ -41,6 +41,9 @@ More usage instructions can be found in ``docs/skeleton-usage.rst``. Release Notes ============= +- 2023-07-18: + - Add macOS-13 job in azure-pipelines.yml + - 2022-03-04: - Synchronize configure and configure.bat scripts for sanity - Update CI operating system support with latest Azure OS images diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5067fd4..764883d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos11_cpython - image_name: macos-11 + image_name: macOS-11 python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -34,7 +34,15 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos12_cpython - image_name: macos-12 + image_name: macOS-12 + python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos13_cpython + image_name: macOS-13 python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] test_suites: all: venv/bin/pytest -n 2 -vvs From 5ab9b3a15e0095a8186ca3870cb9f9eade83833d Mon Sep 17 00:00:00 2001 From: Omkar Phansopkar Date: Wed, 18 Oct 2023 15:42:56 +0530 Subject: [PATCH 161/247] Added docs server script, dark mode & copybutton for docs Signed-off-by: Omkar Phansopkar --- .github/workflows/docs-ci.yml | 3 --- docs/Makefile | 8 ++++++++ docs/make.bat | 12 ++++++++++++ docs/scripts/doc8_style_check.sh | 0 docs/source/conf.py | 4 ++++ setup.cfg | 3 +++ 6 files changed, 27 insertions(+), 3 deletions(-) mode change 100644 => 100755 docs/scripts/doc8_style_check.sh diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 511b7c2..ada779b 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -20,9 +20,6 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Give permission to run scripts - run: chmod +x ./docs/scripts/doc8_style_check.sh - - name: Install Dependencies run: pip install -e .[docs] diff --git a/docs/Makefile b/docs/Makefile index d0c3cbf..788b039 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -5,6 +5,7 @@ # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build +SPHINXAUTOBUILD = sphinx-autobuild SOURCEDIR = source BUILDDIR = build @@ -14,6 +15,13 @@ help: .PHONY: help Makefile +# Run the development server using sphinx-autobuild +docs: + @echo + @echo "Starting up the docs server..." + @echo + $(SPHINXAUTOBUILD) --port 8000 --watch ${SOURCEDIR} $(SOURCEDIR) "$(BUILDDIR)/html" $(SPHINXOPTS) $(O) + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile diff --git a/docs/make.bat b/docs/make.bat index 6247f7e..4a3c1a4 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -7,11 +7,16 @@ REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) +if "%SPHINXAUTOBUILD%" == "" ( + set SPHINXAUTOBUILD=sphinx-autobuild +) set SOURCEDIR=source set BUILDDIR=build if "%1" == "" goto help +if "%1" == "docs" goto docs + %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. @@ -28,6 +33,13 @@ if errorlevel 9009 ( %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% goto end +:docs +@echo +@echo Starting up the docs server... +@echo +%SPHINXAUTOBUILD% --port 8000 --watch %SOURCEDIR% %SOURCEDIR% %BUILDDIR%\html %SPHINXOPTS% %O% +goto end + :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% diff --git a/docs/scripts/doc8_style_check.sh b/docs/scripts/doc8_style_check.sh old mode 100644 new mode 100755 diff --git a/docs/source/conf.py b/docs/source/conf.py index 918d62c..54e5e66 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -30,6 +30,10 @@ extensions = [ "sphinx.ext.intersphinx", "sphinx_reredirects", + 'sphinx_rtd_theme', + "sphinx_rtd_dark_mode", + "sphinx.ext.extlinks", + "sphinx_copybutton", ] diff --git a/setup.cfg b/setup.cfg index d6c7da7..bd0e58a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -62,4 +62,7 @@ docs = sphinx-rtd-theme>=1.0.0 sphinx-reredirects >= 0.1.2 doc8>=0.11.2 + sphinx-autobuild + sphinx-rtd-dark-mode>=1.3.0 + sphinx-copybutton From 0a9d983650bf042a5bd2c277711b637979e566f1 Mon Sep 17 00:00:00 2001 From: "John M. Horan" Date: Mon, 20 Nov 2023 16:46:54 -0800 Subject: [PATCH 162/247] Update CSS to widen page and handle mobile #84 Reference: https://github.com/nexB/skeleton/issues/84 Signed-off-by: John M. Horan --- docs/source/_static/theme_overrides.css | 363 +----------------- .../_static/theme_overrides_SUPERSEDED.css | 353 +++++++++++++++++ docs/source/conf.py | 15 +- 3 files changed, 380 insertions(+), 351 deletions(-) create mode 100644 docs/source/_static/theme_overrides_SUPERSEDED.css diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index 9662d63..de5ae43 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -1,353 +1,26 @@ -body { - color: #000000; -} - -p { - margin-bottom: 10px; -} - -.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { - margin-bottom: 10px; -} - -.custom_header_01 { - color: #cc0000; - font-size: 22px; - font-weight: bold; - line-height: 50px; -} - -h1, h2, h3, h4, h5, h6 { - margin-bottom: 20px; - margin-top: 20px; -} - -h5 { - font-size: 18px; - color: #000000; - font-style: italic; - margin-bottom: 10px; -} - -h6 { - font-size: 15px; - color: #000000; - font-style: italic; - margin-bottom: 10px; -} - -/* custom admonitions */ -/* success */ -.custom-admonition-success .admonition-title { - color: #000000; - background: #ccffcc; - border-radius: 5px 5px 0px 0px; -} -div.custom-admonition-success.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* important */ -.custom-admonition-important .admonition-title { - color: #000000; - background: #ccffcc; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #000000; -} -div.custom-admonition-important.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* caution */ -.custom-admonition-caution .admonition-title { - color: #000000; - background: #ffff99; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #e8e8e8; -} -div.custom-admonition-caution.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* note */ -.custom-admonition-note .admonition-title { - color: #ffffff; - background: #006bb3; - border-radius: 5px 5px 0px 0px; -} -div.custom-admonition-note.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* todo */ -.custom-admonition-todo .admonition-title { - color: #000000; - background: #cce6ff; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #99ccff; -} -div.custom-admonition-todo.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #99ccff; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* examples */ -.custom-admonition-examples .admonition-title { - color: #000000; - background: #ffe6cc; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #d8d8d8; -} -div.custom-admonition-examples.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - +/* this is the container for the pages */ .wy-nav-content { max-width: 100%; - padding-right: 100px; - padding-left: 100px; - background-color: #f2f2f2; -} - -div.rst-content { - background-color: #ffffff; - border: solid 1px #e5e5e5; - padding: 20px 40px 20px 40px; -} - -.rst-content .guilabel { - border: 1px solid #ffff99; - background: #ffff99; - font-size: 100%; - font-weight: normal; - border-radius: 4px; - padding: 2px 0px; - margin: auto 2px; - vertical-align: middle; -} - -.rst-content kbd { - font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; - border: solid 1px #d8d8d8; - background-color: #f5f5f5; - padding: 0px 3px; - border-radius: 3px; -} - -.wy-nav-content-wrap a { - color: #0066cc; - text-decoration: none; -} -.wy-nav-content-wrap a:hover { - color: #0099cc; - text-decoration: underline; -} - -.wy-nav-top a { - color: #ffffff; -} - -/* Based on numerous similar approaches e.g., https://github.com/readthedocs/sphinx_rtd_theme/issues/117 and https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html -- but remove form-factor limits to enable table wrap on full-size and smallest-size form factors */ -.wy-table-responsive table td { - white-space: normal !important; -} - -.rst-content table.docutils td, -.rst-content table.docutils th { - padding: 5px 10px 5px 10px; -} -.rst-content table.docutils td p, -.rst-content table.docutils th p { - font-size: 14px; - margin-bottom: 0px; -} -.rst-content table.docutils td p cite, -.rst-content table.docutils th p cite { - font-size: 14px; - background-color: transparent; -} - -.colwidths-given th { - border: solid 1px #d8d8d8 !important; -} -.colwidths-given td { - border: solid 1px #d8d8d8 !important; -} - -/*handles single-tick inline code*/ -.wy-body-for-nav cite { - color: #000000; - background-color: transparent; - font-style: normal; - font-family: "Courier New"; - font-size: 13px; - padding: 3px 3px 3px 3px; -} - -.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre { - font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; - font-size: 13px; - overflow: visible; - white-space: pre-wrap; - color: #000000; -} - -.rst-content pre.literal-block, .rst-content div[class^='highlight'] { - background-color: #f8f8f8; - border: solid 1px #e8e8e8; -} - -/* This enables inline code to wrap. */ -code, .rst-content tt, .rst-content code { - white-space: pre-wrap; - padding: 2px 3px 1px; - border-radius: 3px; - font-size: 13px; - background-color: #ffffff; -} - -/* use this added class for code blocks attached to bulleted list items */ -.highlight-top-margin { - margin-top: 20px !important; -} - -/* change color of inline code block */ -span.pre { - color: #e01e5a; -} - -.wy-body-for-nav blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid #ddd; - color: #000000; -} - -/* Fix the unwanted top and bottom padding inside a nested bulleted/numbered list */ -.rst-content .section ol p, .rst-content .section ul p { - margin-bottom: 0px; -} - -/* add spacing between bullets for legibility */ -.rst-content .section ol li, .rst-content .section ul li { - margin-bottom: 5px; -} - -.rst-content .section ol li:first-child, .rst-content .section ul li:first-child { - margin-top: 5px; -} - -/* but exclude the toctree bullets */ -.rst-content .toctree-wrapper ul li, .rst-content .toctree-wrapper ul li:first-child { + padding: 0px 40px 0px 0px; margin-top: 0px; - margin-bottom: 0px; } -/* remove extra space at bottom of multine list-table cell */ -.rst-content .line-block { - margin-left: 0px; - margin-bottom: 0px; - line-height: 24px; +.wy-nav-content-wrap { + border-right: solid 1px; } -/* fix extra vertical spacing in page toctree */ -.rst-content .toctree-wrapper ul li ul, article ul li ul { - margin-top: 0; - margin-bottom: 0; -} - -/* this is used by the genindex added via layout.html (see source/_templates/) to sidebar toc */ -.reference.internal.toc-index { - color: #d9d9d9; -} - -.reference.internal.toc-index.current { - background-color: #ffffff; - color: #000000; - font-weight: bold; -} - -.toc-index-div { - border-top: solid 1px #000000; - margin-top: 10px; - padding-top: 5px; -} - -.indextable ul li { - font-size: 14px; - margin-bottom: 5px; -} - -/* The next 2 fix the poor vertical spacing in genindex.html (the alphabetized index) */ -.indextable.genindextable { - margin-bottom: 20px; -} - -div.genindex-jumpbox { - margin-bottom: 10px; -} - -/* rst image classes */ - -.clear-both { - clear: both; - } - -.float-left { - float: left; - margin-right: 20px; -} - -img { - border: solid 1px #e8e8e8; -} - -/* These are custom and need to be defined in conf.py to access in all pages, e.g., '.. role:: red' */ -.img-title { - color: #000000; - /* neither padding nor margin works for vertical spacing bc it's a span -- line-height does, sort of */ - line-height: 3.0; - font-style: italic; - font-weight: 600; -} - -.img-title-para { - color: #000000; - margin-top: 20px; - margin-bottom: 0px; - font-style: italic; - font-weight: 500; -} - -.red { - color: red; +div.rst-content { + max-width: 1300px; + border: 0; + padding: 0px 80px 10px 80px; + margin-left: 50px; +} + +@media (max-width: 768px) { + div.rst-content { + max-width: 1300px; + border: 0; + padding: 0px 10px 10px 10px; + margin-left: 0px; + } } diff --git a/docs/source/_static/theme_overrides_SUPERSEDED.css b/docs/source/_static/theme_overrides_SUPERSEDED.css new file mode 100644 index 0000000..9662d63 --- /dev/null +++ b/docs/source/_static/theme_overrides_SUPERSEDED.css @@ -0,0 +1,353 @@ +body { + color: #000000; +} + +p { + margin-bottom: 10px; +} + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + margin-bottom: 10px; +} + +.custom_header_01 { + color: #cc0000; + font-size: 22px; + font-weight: bold; + line-height: 50px; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 20px; + margin-top: 20px; +} + +h5 { + font-size: 18px; + color: #000000; + font-style: italic; + margin-bottom: 10px; +} + +h6 { + font-size: 15px; + color: #000000; + font-style: italic; + margin-bottom: 10px; +} + +/* custom admonitions */ +/* success */ +.custom-admonition-success .admonition-title { + color: #000000; + background: #ccffcc; + border-radius: 5px 5px 0px 0px; +} +div.custom-admonition-success.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* important */ +.custom-admonition-important .admonition-title { + color: #000000; + background: #ccffcc; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #000000; +} +div.custom-admonition-important.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* caution */ +.custom-admonition-caution .admonition-title { + color: #000000; + background: #ffff99; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #e8e8e8; +} +div.custom-admonition-caution.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* note */ +.custom-admonition-note .admonition-title { + color: #ffffff; + background: #006bb3; + border-radius: 5px 5px 0px 0px; +} +div.custom-admonition-note.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* todo */ +.custom-admonition-todo .admonition-title { + color: #000000; + background: #cce6ff; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #99ccff; +} +div.custom-admonition-todo.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #99ccff; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +/* examples */ +.custom-admonition-examples .admonition-title { + color: #000000; + background: #ffe6cc; + border-radius: 5px 5px 0px 0px; + border-bottom: solid 1px #d8d8d8; +} +div.custom-admonition-examples.admonition { + color: #000000; + background: #ffffff; + border: solid 1px #cccccc; + border-radius: 5px; + box-shadow: 1px 1px 5px 3px #d8d8d8; + margin: 20px 0px 30px 0px; +} + +.wy-nav-content { + max-width: 100%; + padding-right: 100px; + padding-left: 100px; + background-color: #f2f2f2; +} + +div.rst-content { + background-color: #ffffff; + border: solid 1px #e5e5e5; + padding: 20px 40px 20px 40px; +} + +.rst-content .guilabel { + border: 1px solid #ffff99; + background: #ffff99; + font-size: 100%; + font-weight: normal; + border-radius: 4px; + padding: 2px 0px; + margin: auto 2px; + vertical-align: middle; +} + +.rst-content kbd { + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; + border: solid 1px #d8d8d8; + background-color: #f5f5f5; + padding: 0px 3px; + border-radius: 3px; +} + +.wy-nav-content-wrap a { + color: #0066cc; + text-decoration: none; +} +.wy-nav-content-wrap a:hover { + color: #0099cc; + text-decoration: underline; +} + +.wy-nav-top a { + color: #ffffff; +} + +/* Based on numerous similar approaches e.g., https://github.com/readthedocs/sphinx_rtd_theme/issues/117 and https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html -- but remove form-factor limits to enable table wrap on full-size and smallest-size form factors */ +.wy-table-responsive table td { + white-space: normal !important; +} + +.rst-content table.docutils td, +.rst-content table.docutils th { + padding: 5px 10px 5px 10px; +} +.rst-content table.docutils td p, +.rst-content table.docutils th p { + font-size: 14px; + margin-bottom: 0px; +} +.rst-content table.docutils td p cite, +.rst-content table.docutils th p cite { + font-size: 14px; + background-color: transparent; +} + +.colwidths-given th { + border: solid 1px #d8d8d8 !important; +} +.colwidths-given td { + border: solid 1px #d8d8d8 !important; +} + +/*handles single-tick inline code*/ +.wy-body-for-nav cite { + color: #000000; + background-color: transparent; + font-style: normal; + font-family: "Courier New"; + font-size: 13px; + padding: 3px 3px 3px 3px; +} + +.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre { + font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; + font-size: 13px; + overflow: visible; + white-space: pre-wrap; + color: #000000; +} + +.rst-content pre.literal-block, .rst-content div[class^='highlight'] { + background-color: #f8f8f8; + border: solid 1px #e8e8e8; +} + +/* This enables inline code to wrap. */ +code, .rst-content tt, .rst-content code { + white-space: pre-wrap; + padding: 2px 3px 1px; + border-radius: 3px; + font-size: 13px; + background-color: #ffffff; +} + +/* use this added class for code blocks attached to bulleted list items */ +.highlight-top-margin { + margin-top: 20px !important; +} + +/* change color of inline code block */ +span.pre { + color: #e01e5a; +} + +.wy-body-for-nav blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid #ddd; + color: #000000; +} + +/* Fix the unwanted top and bottom padding inside a nested bulleted/numbered list */ +.rst-content .section ol p, .rst-content .section ul p { + margin-bottom: 0px; +} + +/* add spacing between bullets for legibility */ +.rst-content .section ol li, .rst-content .section ul li { + margin-bottom: 5px; +} + +.rst-content .section ol li:first-child, .rst-content .section ul li:first-child { + margin-top: 5px; +} + +/* but exclude the toctree bullets */ +.rst-content .toctree-wrapper ul li, .rst-content .toctree-wrapper ul li:first-child { + margin-top: 0px; + margin-bottom: 0px; +} + +/* remove extra space at bottom of multine list-table cell */ +.rst-content .line-block { + margin-left: 0px; + margin-bottom: 0px; + line-height: 24px; +} + +/* fix extra vertical spacing in page toctree */ +.rst-content .toctree-wrapper ul li ul, article ul li ul { + margin-top: 0; + margin-bottom: 0; +} + +/* this is used by the genindex added via layout.html (see source/_templates/) to sidebar toc */ +.reference.internal.toc-index { + color: #d9d9d9; +} + +.reference.internal.toc-index.current { + background-color: #ffffff; + color: #000000; + font-weight: bold; +} + +.toc-index-div { + border-top: solid 1px #000000; + margin-top: 10px; + padding-top: 5px; +} + +.indextable ul li { + font-size: 14px; + margin-bottom: 5px; +} + +/* The next 2 fix the poor vertical spacing in genindex.html (the alphabetized index) */ +.indextable.genindextable { + margin-bottom: 20px; +} + +div.genindex-jumpbox { + margin-bottom: 10px; +} + +/* rst image classes */ + +.clear-both { + clear: both; + } + +.float-left { + float: left; + margin-right: 20px; +} + +img { + border: solid 1px #e8e8e8; +} + +/* These are custom and need to be defined in conf.py to access in all pages, e.g., '.. role:: red' */ +.img-title { + color: #000000; + /* neither padding nor margin works for vertical spacing bc it's a span -- line-height does, sort of */ + line-height: 3.0; + font-style: italic; + font-weight: 600; +} + +.img-title-para { + color: #000000; + margin-top: 20px; + margin-bottom: 0px; + font-style: italic; + font-weight: 500; +} + +.red { + color: red; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 54e5e66..7771ff0 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -30,7 +30,7 @@ extensions = [ "sphinx.ext.intersphinx", "sphinx_reredirects", - 'sphinx_rtd_theme', + "sphinx_rtd_theme", "sphinx_rtd_dark_mode", "sphinx.ext.extlinks", "sphinx_copybutton", @@ -47,7 +47,10 @@ intersphinx_mapping = { "aboutcode": ("https://aboutcode.readthedocs.io/en/latest/", None), - "scancode-workbench": ("https://scancode-workbench.readthedocs.io/en/develop/", None), + "scancode-workbench": ( + "https://scancode-workbench.readthedocs.io/en/develop/", + None, + ), } @@ -82,7 +85,9 @@ "conf_py_path": "/docs/source/", # path in the checkout to the docs root } -html_css_files = ["_static/theme_overrides.css"] +html_css_files = [ + "theme_overrides.css", +] # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. @@ -108,6 +113,4 @@ # -- Options for LaTeX output ------------------------------------------------- -latex_elements = { - 'classoptions': ',openany,oneside' -} \ No newline at end of file +latex_elements = {"classoptions": ",openany,oneside"} From 4e36fc601eaa17bde0d2a4bebfed70d7bde28e7c Mon Sep 17 00:00:00 2001 From: "John M. Horan" Date: Tue, 16 Jan 2024 12:22:54 -0800 Subject: [PATCH 163/247] Delete theme_overrides_SUPERSEDED.css as no longer needed #84 Reference: https://github.com/nexB/skeleton/issues/84 Signed-off-by: John M. Horan --- .../_static/theme_overrides_SUPERSEDED.css | 353 ------------------ 1 file changed, 353 deletions(-) delete mode 100644 docs/source/_static/theme_overrides_SUPERSEDED.css diff --git a/docs/source/_static/theme_overrides_SUPERSEDED.css b/docs/source/_static/theme_overrides_SUPERSEDED.css deleted file mode 100644 index 9662d63..0000000 --- a/docs/source/_static/theme_overrides_SUPERSEDED.css +++ /dev/null @@ -1,353 +0,0 @@ -body { - color: #000000; -} - -p { - margin-bottom: 10px; -} - -.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { - margin-bottom: 10px; -} - -.custom_header_01 { - color: #cc0000; - font-size: 22px; - font-weight: bold; - line-height: 50px; -} - -h1, h2, h3, h4, h5, h6 { - margin-bottom: 20px; - margin-top: 20px; -} - -h5 { - font-size: 18px; - color: #000000; - font-style: italic; - margin-bottom: 10px; -} - -h6 { - font-size: 15px; - color: #000000; - font-style: italic; - margin-bottom: 10px; -} - -/* custom admonitions */ -/* success */ -.custom-admonition-success .admonition-title { - color: #000000; - background: #ccffcc; - border-radius: 5px 5px 0px 0px; -} -div.custom-admonition-success.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* important */ -.custom-admonition-important .admonition-title { - color: #000000; - background: #ccffcc; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #000000; -} -div.custom-admonition-important.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* caution */ -.custom-admonition-caution .admonition-title { - color: #000000; - background: #ffff99; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #e8e8e8; -} -div.custom-admonition-caution.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* note */ -.custom-admonition-note .admonition-title { - color: #ffffff; - background: #006bb3; - border-radius: 5px 5px 0px 0px; -} -div.custom-admonition-note.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* todo */ -.custom-admonition-todo .admonition-title { - color: #000000; - background: #cce6ff; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #99ccff; -} -div.custom-admonition-todo.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #99ccff; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -/* examples */ -.custom-admonition-examples .admonition-title { - color: #000000; - background: #ffe6cc; - border-radius: 5px 5px 0px 0px; - border-bottom: solid 1px #d8d8d8; -} -div.custom-admonition-examples.admonition { - color: #000000; - background: #ffffff; - border: solid 1px #cccccc; - border-radius: 5px; - box-shadow: 1px 1px 5px 3px #d8d8d8; - margin: 20px 0px 30px 0px; -} - -.wy-nav-content { - max-width: 100%; - padding-right: 100px; - padding-left: 100px; - background-color: #f2f2f2; -} - -div.rst-content { - background-color: #ffffff; - border: solid 1px #e5e5e5; - padding: 20px 40px 20px 40px; -} - -.rst-content .guilabel { - border: 1px solid #ffff99; - background: #ffff99; - font-size: 100%; - font-weight: normal; - border-radius: 4px; - padding: 2px 0px; - margin: auto 2px; - vertical-align: middle; -} - -.rst-content kbd { - font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; - border: solid 1px #d8d8d8; - background-color: #f5f5f5; - padding: 0px 3px; - border-radius: 3px; -} - -.wy-nav-content-wrap a { - color: #0066cc; - text-decoration: none; -} -.wy-nav-content-wrap a:hover { - color: #0099cc; - text-decoration: underline; -} - -.wy-nav-top a { - color: #ffffff; -} - -/* Based on numerous similar approaches e.g., https://github.com/readthedocs/sphinx_rtd_theme/issues/117 and https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html -- but remove form-factor limits to enable table wrap on full-size and smallest-size form factors */ -.wy-table-responsive table td { - white-space: normal !important; -} - -.rst-content table.docutils td, -.rst-content table.docutils th { - padding: 5px 10px 5px 10px; -} -.rst-content table.docutils td p, -.rst-content table.docutils th p { - font-size: 14px; - margin-bottom: 0px; -} -.rst-content table.docutils td p cite, -.rst-content table.docutils th p cite { - font-size: 14px; - background-color: transparent; -} - -.colwidths-given th { - border: solid 1px #d8d8d8 !important; -} -.colwidths-given td { - border: solid 1px #d8d8d8 !important; -} - -/*handles single-tick inline code*/ -.wy-body-for-nav cite { - color: #000000; - background-color: transparent; - font-style: normal; - font-family: "Courier New"; - font-size: 13px; - padding: 3px 3px 3px 3px; -} - -.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre { - font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace; - font-size: 13px; - overflow: visible; - white-space: pre-wrap; - color: #000000; -} - -.rst-content pre.literal-block, .rst-content div[class^='highlight'] { - background-color: #f8f8f8; - border: solid 1px #e8e8e8; -} - -/* This enables inline code to wrap. */ -code, .rst-content tt, .rst-content code { - white-space: pre-wrap; - padding: 2px 3px 1px; - border-radius: 3px; - font-size: 13px; - background-color: #ffffff; -} - -/* use this added class for code blocks attached to bulleted list items */ -.highlight-top-margin { - margin-top: 20px !important; -} - -/* change color of inline code block */ -span.pre { - color: #e01e5a; -} - -.wy-body-for-nav blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid #ddd; - color: #000000; -} - -/* Fix the unwanted top and bottom padding inside a nested bulleted/numbered list */ -.rst-content .section ol p, .rst-content .section ul p { - margin-bottom: 0px; -} - -/* add spacing between bullets for legibility */ -.rst-content .section ol li, .rst-content .section ul li { - margin-bottom: 5px; -} - -.rst-content .section ol li:first-child, .rst-content .section ul li:first-child { - margin-top: 5px; -} - -/* but exclude the toctree bullets */ -.rst-content .toctree-wrapper ul li, .rst-content .toctree-wrapper ul li:first-child { - margin-top: 0px; - margin-bottom: 0px; -} - -/* remove extra space at bottom of multine list-table cell */ -.rst-content .line-block { - margin-left: 0px; - margin-bottom: 0px; - line-height: 24px; -} - -/* fix extra vertical spacing in page toctree */ -.rst-content .toctree-wrapper ul li ul, article ul li ul { - margin-top: 0; - margin-bottom: 0; -} - -/* this is used by the genindex added via layout.html (see source/_templates/) to sidebar toc */ -.reference.internal.toc-index { - color: #d9d9d9; -} - -.reference.internal.toc-index.current { - background-color: #ffffff; - color: #000000; - font-weight: bold; -} - -.toc-index-div { - border-top: solid 1px #000000; - margin-top: 10px; - padding-top: 5px; -} - -.indextable ul li { - font-size: 14px; - margin-bottom: 5px; -} - -/* The next 2 fix the poor vertical spacing in genindex.html (the alphabetized index) */ -.indextable.genindextable { - margin-bottom: 20px; -} - -div.genindex-jumpbox { - margin-bottom: 10px; -} - -/* rst image classes */ - -.clear-both { - clear: both; - } - -.float-left { - float: left; - margin-right: 20px; -} - -img { - border: solid 1px #e8e8e8; -} - -/* These are custom and need to be defined in conf.py to access in all pages, e.g., '.. role:: red' */ -.img-title { - color: #000000; - /* neither padding nor margin works for vertical spacing bc it's a span -- line-height does, sort of */ - line-height: 3.0; - font-style: italic; - font-weight: 600; -} - -.img-title-para { - color: #000000; - margin-top: 20px; - margin-bottom: 0px; - font-style: italic; - font-weight: 500; -} - -.red { - color: red; -} From 7d74b8a3c98761293cd133d543e4d58a525dc7bf Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 18 Jan 2024 17:11:14 +0530 Subject: [PATCH 164/247] Fix top padding for rst content Signed-off-by: Ayan Sinha Mahapatra --- docs/source/_static/theme_overrides.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css index de5ae43..5863ccf 100644 --- a/docs/source/_static/theme_overrides.css +++ b/docs/source/_static/theme_overrides.css @@ -12,7 +12,7 @@ div.rst-content { max-width: 1300px; border: 0; - padding: 0px 80px 10px 80px; + padding: 10px 80px 10px 80px; margin-left: 50px; } From 008d521aec51e5983f6d6a2adc4efa7fd92159cf Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 19 Feb 2024 15:21:45 +0530 Subject: [PATCH 165/247] Update CI runners and python version Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/docs-ci.yml | 2 +- .github/workflows/pypi-release.yml | 8 ++++---- azure-pipelines.yml | 22 +++++++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index ada779b..8c2abfe 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: max-parallel: 4 diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 9585730..d2206c8 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -21,10 +21,10 @@ on: jobs: build-pypi-distribs: name: Build and publish library to PyPI - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: @@ -47,7 +47,7 @@ jobs: name: Create GH release needs: - build-pypi-distribs - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Download built archives @@ -67,7 +67,7 @@ jobs: name: Create PyPI release needs: - create-gh-release - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Download built archives diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 764883d..373b78c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,7 +11,7 @@ jobs: parameters: job_name: ubuntu20_cpython image_name: ubuntu-20.04 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -19,7 +19,7 @@ jobs: parameters: job_name: ubuntu22_cpython image_name: ubuntu-22.04 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +27,7 @@ jobs: parameters: job_name: macos11_cpython image_name: macOS-11 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos12_cpython image_name: macOS-12 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +43,15 @@ jobs: parameters: job_name: macos13_cpython image_name: macOS-13 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos14_cpython + image_name: macOS-14 + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,7 +59,7 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -59,6 +67,6 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From 124da3dcef0d95a6f6aa76ed849f47ada25b83e2 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 1 Jul 2024 15:11:21 +0530 Subject: [PATCH 166/247] Replace deprecated macos CI runners Replace macos-11 runners with macos-14 runners. Reference: https://github.com/actions/runner-images?tab=readme-ov-file#available-images Reference: https://github.com/nexB/skeleton/issues/89 Signed-off-by: Ayan Sinha Mahapatra --- azure-pipelines.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 373b78c..c2a3b52 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -25,24 +25,24 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: macos11_cpython - image_name: macOS-11 + job_name: macos12_cpython + image_name: macOS-12 python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: - job_name: macos12_cpython - image_name: macOS-12 + job_name: macos13_cpython + image_name: macOS-13 python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: - job_name: macos13_cpython - image_name: macOS-13 + job_name: macos14_cpython_arm64 + image_name: macOS-14 python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -50,8 +50,8 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos14_cpython - image_name: macOS-14 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + image_name: macOS-14-large + python_versions: ['3.8', '3.8', '3.9', '3.10', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs From be4e14d414cf4f7112b529dc71f7abccc9dcf24a Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 1 Jul 2024 16:00:40 +0530 Subject: [PATCH 167/247] Update minimum required python version to 3.8 Signed-off-by: Ayan Sinha Mahapatra --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index bd0e58a..a8e20c5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,7 +38,7 @@ zip_safe = false setup_requires = setuptools_scm[toml] >= 4 -python_requires = >=3.7 +python_requires = >=3.8 install_requires = From 9c57f340d22d8891a5614a93553b20d75e2f3136 Mon Sep 17 00:00:00 2001 From: Chin Yeung Li Date: Tue, 20 Aug 2024 16:46:20 +0800 Subject: [PATCH 168/247] Update link references of ownership from nexB to aboutcode-org Signed-off-by: Chin Yeung Li --- Makefile | 4 +- NOTICE | 2 +- configure | 2 +- configure.bat | 2 +- docs/source/conf.py | 2 +- docs/source/contribute/contrib_doc.rst | 2 +- docs/source/skeleton-usage.rst | 2 +- etc/scripts/check_thirdparty.py | 5 +- etc/scripts/fetch_thirdparty.py | 19 ++++-- etc/scripts/gen_requirements.py | 2 +- etc/scripts/gen_requirements_dev.py | 2 +- etc/scripts/utils_dejacode.py | 11 ++-- etc/scripts/utils_requirements.py | 11 ++-- etc/scripts/utils_thirdparty.py | 89 +++++++++++++++++--------- setup.cfg | 2 +- tests/test_skeleton_codestyle.py | 2 +- 16 files changed, 100 insertions(+), 59 deletions(-) diff --git a/Makefile b/Makefile index cc36c35..94451b3 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # @@ -35,7 +35,7 @@ check: @echo "-> Run pycodestyle (PEP8) validation" @${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache . @echo "-> Run isort imports ordering validation" - @${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests . + @${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests . @echo "-> Run black validation" @${ACTIVATE} black --check --check -l 100 src tests setup.py diff --git a/NOTICE b/NOTICE index 65936b2..cbdaef7 100644 --- a/NOTICE +++ b/NOTICE @@ -2,7 +2,7 @@ # Copyright (c) nexB Inc. and others. # SPDX-License-Identifier: Apache-2.0 # -# Visit https://aboutcode.org and https://github.com/nexB/ for support and download. +# Visit https://aboutcode.org and https://github.com/aboutcode-org/ for support and download. # ScanCode is a trademark of nexB Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/configure b/configure index 926a894..22d9288 100755 --- a/configure +++ b/configure @@ -3,7 +3,7 @@ # Copyright (c) nexB Inc. and others. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/ for support or download. +# See https://github.com/aboutcode-org/ for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # diff --git a/configure.bat b/configure.bat index 5e95b31..5b9a9d6 100644 --- a/configure.bat +++ b/configure.bat @@ -4,7 +4,7 @@ @rem Copyright (c) nexB Inc. and others. All rights reserved. @rem SPDX-License-Identifier: Apache-2.0 @rem See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -@rem See https://github.com/nexB/ for support or download. +@rem See https://github.com/aboutcode-org/ for support or download. @rem See https://aboutcode.org for more information about nexB OSS projects. diff --git a/docs/source/conf.py b/docs/source/conf.py index 7771ff0..8c88fa2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -43,7 +43,7 @@ # This points to aboutcode.readthedocs.io # In case of "undefined label" ERRORS check docs on intersphinx to troubleshoot -# Link was created at commit - https://github.com/nexB/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83 +# Link was created at commit - https://github.com/aboutcode-org/aboutcode/commit/faea9fcf3248f8f198844fe34d43833224ac4a83 intersphinx_mapping = { "aboutcode": ("https://aboutcode.readthedocs.io/en/latest/", None), diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index 13882e1..5640db2 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -12,7 +12,7 @@ To get started, create or identify a working directory on your local machine. Open that directory and execute the following command in a terminal session:: - git clone https://github.com/nexB/skeleton.git + git clone https://github.com/aboutcode-org/skeleton.git That will create an ``/skeleton`` directory in your working directory. Now you can install the dependencies in a virtualenv:: diff --git a/docs/source/skeleton-usage.rst b/docs/source/skeleton-usage.rst index cde23dc..6cb4cc5 100644 --- a/docs/source/skeleton-usage.rst +++ b/docs/source/skeleton-usage.rst @@ -118,7 +118,7 @@ corrected. You can check to see if your corrections are valid by running: Once the wheels are collected and the ABOUT files are generated and correct, upload them to thirdparty.aboutcode.org/pypi by placing the wheels and ABOUT files from the thirdparty directory to the pypi directory at -https://github.com/nexB/thirdparty-packages +https://github.com/aboutcode-org/thirdparty-packages Usage after project initialization diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index b052f25..2daded9 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import click @@ -17,7 +17,8 @@ @click.option( "-d", "--dest", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, + path_type=str, file_okay=False), required=True, help="Path to the thirdparty directory to check.", ) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index eedf05c..3f9ff52 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # @@ -55,7 +55,8 @@ "-d", "--dest", "dest_dir", - type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, + path_type=str, file_okay=False), metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, @@ -224,7 +225,8 @@ def fetch_thirdparty( environments = None if wheels: evts = itertools.product(python_versions, operating_systems) - environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] + environments = [utils_thirdparty.Environment.from_pyver_and_os( + pyv, os) for pyv, os in evts] # Collect PyPI repos repos = [] @@ -260,13 +262,14 @@ def fetch_thirdparty( repos=repos, ) if not fetched: - wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) + wheels_or_sdist_not_found[f"{name}=={version}"].append( + environment) if TRACE: print(f" NOT FOUND") if (sdists or (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only) - ): + ): if TRACE: print(f" ==> Fetching sdist: {name}=={version}") @@ -289,7 +292,8 @@ def fetch_thirdparty( sdist_missing = sdists and "sdist" in dists and not name in wheel_only if sdist_missing: mia.append(f"SDist missing: {nv} {dists}") - wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only + wheels_missing = wheels and any( + d for d in dists if d != "sdist") and not name in sdist_only if wheels_missing: mia.append(f"Wheels missing: {nv} {dists}") @@ -299,7 +303,8 @@ def fetch_thirdparty( raise Exception(mia) print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") - utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) + utils_thirdparty.fetch_abouts_and_licenses( + dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index 07e26f7..2b65ae8 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import argparse diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index 12cc06d..5db1c48 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import argparse diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index c42e6c9..652252d 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import io @@ -33,7 +33,8 @@ def can_do_api_calls(): if not DEJACODE_API_KEY and DEJACODE_API_URL: - print("DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") + print( + "DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") return False else: return True @@ -68,7 +69,8 @@ def get_package_data(distribution): return results[0] elif len_results > 1: - print(f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") + print( + f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") else: print("Could not find package:", distribution.download_url) @@ -149,7 +151,8 @@ def find_latest_dejacode_package(distribution): # there was no exact match, find the latest version # TODO: consider the closest version rather than the latest # or the version that has the best data - with_versions = [(packaging_version.parse(p["version"]), p) for p in packages] + with_versions = [(packaging_version.parse(p["version"]), p) + for p in packages] with_versions = sorted(with_versions) latest_version, latest_package_version = sorted(with_versions)[-1] print( diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 0fc25a3..1c50239 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # @@ -102,7 +102,8 @@ def lock_dev_requirements( all_req_nvs = get_required_name_versions(all_req_lines) dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names} - new_reqs = "\n".join(f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) + new_reqs = "\n".join( + f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) with open(dev_requirements_file, "w") as fo: fo.write(new_reqs) @@ -113,10 +114,12 @@ def get_installed_reqs(site_packages_dir): as a text. """ if not os.path.exists(site_packages_dir): - raise Exception(f"site_packages directory: {site_packages_dir!r} does not exists") + raise Exception( + f"site_packages directory: {site_packages_dir!r} does not exists") # Also include these packages in the output with --all: wheel, distribute, # setuptools, pip - args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] + args = ["pip", "freeze", "--exclude-editable", + "--all", "--path", site_packages_dir] return subprocess.check_output(args, encoding="utf-8") diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index addf8e5..46dc728 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -5,7 +5,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # import email @@ -245,9 +245,11 @@ def download_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR, repos=tu package = repo.get_package_version(name=name, version=version) if not package: if TRACE_DEEP: - print(f" download_wheel: No package in {repo.index_url} for {name}=={version}") + print( + f" download_wheel: No package in {repo.index_url} for {name}=={version}") continue - supported_wheels = list(package.get_supported_wheels(environment=environment)) + supported_wheels = list( + package.get_supported_wheels(environment=environment)) if not supported_wheels: if TRACE_DEEP: print( @@ -291,7 +293,8 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): if not package: if TRACE_DEEP: - print(f" download_sdist: No package in {repo.index_url} for {name}=={version}") + print( + f" download_sdist: No package in {repo.index_url} for {name}=={version}") continue sdist = package.sdist if not sdist: @@ -300,7 +303,8 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): continue if TRACE_DEEP: - print(f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") + print( + f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") fetched_sdist_filename = package.sdist.download(dest_dir=dest_dir) if fetched_sdist_filename: @@ -533,7 +537,8 @@ def get_best_download_url(self, repos=tuple()): repos = DEFAULT_PYPI_REPOS for repo in repos: - package = repo.get_package_version(name=self.name, version=self.version) + package = repo.get_package_version( + name=self.name, version=self.version) if not package: if TRACE: print( @@ -772,7 +777,8 @@ def load_remote_about_data(self): if notice_text: about_data["notice_text"] = notice_text except RemoteNotFetchedException: - print(f"Failed to fetch NOTICE file: {self.notice_download_url}") + print( + f"Failed to fetch NOTICE file: {self.notice_download_url}") return self.load_about_data(about_data) def get_checksums(self, dest_dir=THIRDPARTY_DIR): @@ -821,9 +827,11 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): Fetch license files if missing in `dest_dir`. Return True if license files were fetched. """ - urls = LinksRepository.from_url(use_cached_index=use_cached_index).links + urls = LinksRepository.from_url( + use_cached_index=use_cached_index).links errors = [] - extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})] + extra_lic_names = [l.get("file") + for l in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] extra_lic_names = [ln for ln in extra_lic_names if ln] lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()] @@ -834,7 +842,8 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): try: # try remotely first - lic_url = get_license_link_for_filename(filename=filename, urls=urls) + lic_url = get_license_link_for_filename( + filename=filename, urls=urls) fetch_and_save( path_or_url=lic_url, @@ -911,7 +920,8 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): c for c in classifiers if c.startswith("License") ] license_expression = get_license_expression(declared_license) - other_classifiers = [c for c in classifiers if not c.startswith("License")] + other_classifiers = [ + c for c in classifiers if not c.startswith("License")] holder = raw_data["Author"] holder_contact = raw_data["Author-email"] @@ -953,7 +963,8 @@ def update(self, data, overwrite=False, keep_extra=True): package_url = data.get("package_url") if package_url: purl_from_data = packageurl.PackageURL.from_string(package_url) - purl_from_self = packageurl.PackageURL.from_string(self.package_url) + purl_from_self = packageurl.PackageURL.from_string( + self.package_url) if purl_from_data != purl_from_self: print( f"Invalid dist update attempt, no same same purl with dist: " @@ -1003,7 +1014,8 @@ def get_license_link_for_filename(filename, urls): if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: - raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) + raise Exception( + f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) return path_or_url[0] @@ -1397,7 +1409,8 @@ def packages_from_dir(cls, directory): """ base = os.path.abspath(directory) - paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] + paths = [os.path.join(base, f) + for f in os.listdir(base) if f.endswith(EXTENSIONS)] if TRACE_ULTRA_DEEP: print("packages_from_dir: paths:", paths) @@ -1458,7 +1471,8 @@ def dists_from_paths_or_urls(cls, paths_or_urls): dists = [] if TRACE_ULTRA_DEEP: print(" ###paths_or_urls:", paths_or_urls) - installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] + installable = [f for f in paths_or_urls if f.endswith( + EXTENSIONS_INSTALLABLE)] for path_or_url in installable: try: dist = Distribution.from_path_or_url(path_or_url) @@ -1476,7 +1490,8 @@ def dists_from_paths_or_urls(cls, paths_or_urls): ) except InvalidDistributionFilename: if TRACE_DEEP: - print(f" Skipping invalid distribution from: {path_or_url}") + print( + f" Skipping invalid distribution from: {path_or_url}") continue return dists @@ -1525,7 +1540,8 @@ class Environment: implementation = attr.ib( type=str, default="cp", - metadata=dict(help="Python implementation supported by this environment."), + metadata=dict( + help="Python implementation supported by this environment."), repr=False, ) @@ -1539,7 +1555,8 @@ class Environment: platforms = attr.ib( type=list, default=attr.Factory(list), - metadata=dict(help="List of platform tags supported by this environment."), + metadata=dict( + help="List of platform tags supported by this environment."), repr=False, ) @@ -1623,7 +1640,8 @@ class PypiSimpleRepository: fetched_package_normalized_names = attr.ib( type=set, default=attr.Factory(set), - metadata=dict(help="A set of already fetched package normalized names."), + metadata=dict( + help="A set of already fetched package normalized names."), ) use_cached_index = attr.ib( @@ -1654,10 +1672,12 @@ def _get_package_versions_map(self, name): self.packages[normalized_name] = versions except RemoteNotFetchedException as e: if TRACE: - print(f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") + print( + f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") if not versions and TRACE: - print(f"WARNING: package {name} not found in repo: {self.index_url}") + print( + f"WARNING: package {name} not found in repo: {self.index_url}") return versions @@ -1842,7 +1862,8 @@ def get(self, path_or_url, as_text=True, force=False): if force or not os.path.exists(cached): if TRACE_DEEP: print(f" FILE CACHE MISS: {path_or_url}") - content = get_file_content(path_or_url=path_or_url, as_text=as_text) + content = get_file_content( + path_or_url=path_or_url, as_text=as_text) wmode = "w" if as_text else "wb" with open(cached, wmode) as fo: fo.write(content) @@ -1864,7 +1885,8 @@ def get_file_content(path_or_url, as_text=True): if path_or_url.startswith("https://"): if TRACE_DEEP: print(f"Fetching: {path_or_url}") - _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) + _headers, content = get_remote_file_content( + url=path_or_url, as_text=as_text) return content elif path_or_url.startswith("file://") or ( @@ -1930,7 +1952,8 @@ def get_remote_file_content( ) else: - raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") + raise RemoteNotFetchedException( + f"Failed HTTP request from {url} with {status}") if headers_only: return response.headers, None @@ -2021,7 +2044,8 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files( + dest_dir=dest_dir, use_cached_index=use_cached_index) continue # lets try to get from another dist of the same local package @@ -2033,7 +2057,8 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files( + dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get another version of the same package that is not our version @@ -2044,7 +2069,8 @@ def get_other_dists(_package, _dist): ] other_local_version = other_local_packages and other_local_packages[-1] if other_local_version: - latest_local_dists = list(other_local_version.get_distributions()) + latest_local_dists = list( + other_local_version.get_distributions()) for latest_local_dist in latest_local_dists: latest_local_dist.load_about_data(dest_dir=dest_dir) if not latest_local_dist.has_key_metadata(): @@ -2070,7 +2096,8 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files( + dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get a latest version of the same package that is not our version @@ -2111,7 +2138,8 @@ def get_other_dists(_package, _dist): # if local_dist.has_key_metadata() or not local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir) - lic_errs = local_dist.fetch_license_files(dest_dir, use_cached_index=use_cached_index) + lic_errs = local_dist.fetch_license_files( + dest_dir, use_cached_index=use_cached_index) if not local_dist.has_key_metadata(): print(f"Unable to add essential ABOUT data for: {local_dist}") @@ -2259,7 +2287,8 @@ def find_problems( for dist in package.get_distributions(): dist.load_about_data(dest_dir=dest_dir) - abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename)) + abpth = os.path.abspath(os.path.join( + dest_dir, dist.about_filename)) if not dist.has_key_metadata(): print(f" Missing key ABOUT data in file://{abpth}") if "classifiers" in dist.extra_data: diff --git a/setup.cfg b/setup.cfg index a8e20c5..ef7d369 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,7 +6,7 @@ license = Apache-2.0 description = skeleton long_description = file:README.rst long_description_content_type = text/x-rst -url = https://github.com/nexB/skeleton +url = https://github.com/aboutcode-org/skeleton author = nexB. Inc. and others author_email = info@aboutcode.org diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index 2eb6e55..b4ce8c1 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -3,7 +3,7 @@ # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # From a92905297acf39ecd820bfb133f8670c39b40c97 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Fri, 17 Jan 2025 20:07:25 +0100 Subject: [PATCH 169/247] Drop deprecated macos-12 runner --- azure-pipelines.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c2a3b52..39601e6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -23,14 +23,6 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos12_cpython - image_name: macOS-12 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml parameters: job_name: macos13_cpython From 4af4fce3cc57d001c6c26f77d477cd44cef2ffef Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Sat, 15 Feb 2025 00:09:49 +0530 Subject: [PATCH 170/247] Update CI/Actions runners Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/docs-ci.yml | 8 ++++---- .github/workflows/pypi-release.yml | 18 +++++++++--------- azure-pipelines.yml | 22 +++++++++++----------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 8c2abfe..621de4b 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -4,19 +4,19 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: max-parallel: 4 matrix: - python-version: [3.9] + python-version: [3.12] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index d2206c8..a66c9c8 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -21,14 +21,14 @@ on: jobs: build-pypi-distribs: name: Build and publish library to PyPI - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: 3.12 - name: Install pypa/build run: python -m pip install build --user @@ -37,7 +37,7 @@ jobs: run: python -m build --sdist --wheel --outdir dist/ - name: Upload built archives - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pypi_archives path: dist/* @@ -47,17 +47,17 @@ jobs: name: Create GH release needs: - build-pypi-distribs - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Download built archives - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi_archives path: dist - name: Create GH release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: draft: true files: dist/* @@ -67,11 +67,11 @@ jobs: name: Create PyPI release needs: - create-gh-release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Download built archives - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi_archives path: dist diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 39601e6..a220f2b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,17 +9,17 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: ubuntu20_cpython - image_name: ubuntu-20.04 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + job_name: ubuntu22_cpython + image_name: ubuntu-22.04 + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs - template: etc/ci/azure-posix.yml parameters: - job_name: ubuntu22_cpython - image_name: ubuntu-22.04 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + job_name: ubuntu24_cpython + image_name: ubuntu-24.04 + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +27,7 @@ jobs: parameters: job_name: macos13_cpython image_name: macOS-13 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos14_cpython_arm64 image_name: macOS-14 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +43,7 @@ jobs: parameters: job_name: macos14_cpython image_name: macOS-14-large - python_versions: ['3.8', '3.8', '3.9', '3.10', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,7 +51,7 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -59,6 +59,6 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From 320ec21daa249ceae0c07787f9e52134b3ad06ab Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 27 Mar 2025 14:54:31 -0700 Subject: [PATCH 171/247] Replace black and isort with ruff * Use ruff config and Make commands from scancode.io Signed-off-by: Jono Yang --- Makefile | 27 ++++++++++++--------------- pyproject.toml | 37 +++++++++++++++++++++++++++++++++++++ setup.cfg | 3 +-- 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 94451b3..1738b20 100644 --- a/Makefile +++ b/Makefile @@ -17,27 +17,24 @@ dev: @echo "-> Configure the development envt." ./configure --dev -isort: - @echo "-> Apply isort changes to ensure proper imports ordering" - ${VENV}/bin/isort --sl -l 100 src tests setup.py - -black: - @echo "-> Apply black code formatter" - ${VENV}/bin/black -l 100 src tests setup.py - doc8: @echo "-> Run doc8 validation" @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ -valid: isort black +valid: + @echo "-> Run Ruff format" + @${ACTIVATE} ruff format + @echo "-> Run Ruff linter" + @${ACTIVATE} ruff check --fix check: - @echo "-> Run pycodestyle (PEP8) validation" - @${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache . - @echo "-> Run isort imports ordering validation" - @${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests . - @echo "-> Run black validation" - @${ACTIVATE} black --check --check -l 100 src tests setup.py + @echo "-> Run Ruff linter validation (pycodestyle, bandit, isort, and more)" + @${ACTIVATE} ruff check + @echo "-> Run Ruff format validation" + @${ACTIVATE} ruff format --check + @$(MAKE) doc8 + @echo "-> Run ABOUT files validation" + @${ACTIVATE} about check etc/ clean: @echo "-> Clean the Python env" diff --git a/pyproject.toml b/pyproject.toml index cde7907..01e60fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,3 +50,40 @@ addopts = [ "--strict-markers", "--doctest-modules" ] + +[tool.ruff] +line-length = 88 +extend-exclude = [] +target-version = "py310" + +[tool.ruff.lint] +# Rules: https://docs.astral.sh/ruff/rules/ +select = [ + "E", # pycodestyle + "W", # pycodestyle warnings + "D", # pydocstyle + "F", # Pyflakes + "UP", # pyupgrade + "S", # flake8-bandit + "I", # isort + "C9", # McCabe complexity +] +ignore = ["D1", "D203", "D205", "D212", "D400", "D415"] + +[tool.ruff.lint.isort] +force-single-line = true +sections = { django = ["django"] } +section-order = [ + "future", + "standard-library", + "django", + "third-party", + "first-party", + "local-folder", +] + +[tool.ruff.lint.mccabe] +max-complexity = 10 + +[tool.ruff.lint.per-file-ignores] +# Place paths of files to be ignored by ruff here diff --git a/setup.cfg b/setup.cfg index ef7d369..aaec643 100644 --- a/setup.cfg +++ b/setup.cfg @@ -54,8 +54,7 @@ testing = aboutcode-toolkit >= 7.0.2 pycodestyle >= 2.8.0 twine - black - isort + ruff docs = Sphinx>=5.0.2 From d4e29c36c21ab81797604911cdeaea83d80e8088 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 00:46:06 +0100 Subject: [PATCH 172/247] Use org standard 100 line length Signed-off-by: Philippe Ombredanne --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 01e60fc..cea91bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ addopts = [ ] [tool.ruff] -line-length = 88 +line-length = 100 extend-exclude = [] target-version = "py310" From 6c028f7219ae876ea62074ae435e574525e205d6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 08:40:28 +0100 Subject: [PATCH 173/247] Lint all common code directories Signed-off-by: Philippe Ombredanne --- pyproject.toml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index cea91bd..9e62736 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,14 @@ addopts = [ line-length = 100 extend-exclude = [] target-version = "py310" +include = [ + "pyproject.toml", + "src/**/*.py", + "etc/**/*.py", + "test/**/*.py", + "doc/**/*", + "*.py" +] [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ From 233f3edabfbab390029fb9f1842bf43766b04583 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 09:07:47 +0100 Subject: [PATCH 174/247] Remove unused targets Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1738b20..930e801 100644 --- a/Makefile +++ b/Makefile @@ -48,4 +48,4 @@ docs: rm -rf docs/_build/ @${ACTIVATE} sphinx-build docs/ docs/_build/ -.PHONY: conf dev check valid black isort clean test docs +.PHONY: conf dev check valid clean test docs From 55545bf7a1a8f119a560c7f548ce5a460f39f37d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 11:03:05 +0100 Subject: [PATCH 175/247] Improve import sorting Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 1 - etc/scripts/fetch_thirdparty.py | 2 +- etc/scripts/test_utils_pip_compatibility_tags.py | 3 +-- etc/scripts/utils_dejacode.py | 1 - etc/scripts/utils_pip_compatibility_tags.py | 14 ++++++-------- etc/scripts/utils_thirdparty.py | 3 +-- pyproject.toml | 7 ++++++- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 2daded9..62dbb14 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -12,7 +12,6 @@ import utils_thirdparty - @click.command() @click.option( "-d", diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 3f9ff52..30d376c 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -16,8 +16,8 @@ import click -import utils_thirdparty import utils_requirements +import utils_thirdparty TRACE = False TRACE_DEEP = False diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index 98187c5..a33b8b3 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -25,14 +25,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from unittest.mock import patch import sysconfig +from unittest.mock import patch import pytest import utils_pip_compatibility_tags - @pytest.mark.parametrize( "version_info, expected", [ diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index 652252d..c71543f 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -14,7 +14,6 @@ import requests import saneyaml - from packvers import version as packaging_version """ diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index af42a0c..de0ac95 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -27,14 +27,12 @@ import re -from packvers.tags import ( - compatible_tags, - cpython_tags, - generic_tags, - interpreter_name, - interpreter_version, - mac_platforms, -) +from packvers.tags import compatible_tags +from packvers.tags import cpython_tags +from packvers.tags import generic_tags +from packvers.tags import interpreter_name +from packvers.tags import interpreter_version +from packvers.tags import mac_platforms _osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)") diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 46dc728..b0295ec 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -25,14 +25,13 @@ import packageurl import requests import saneyaml +import utils_pip_compatibility_tags from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name from packvers import tags as packaging_tags from packvers import version as packaging_version -import utils_pip_compatibility_tags - """ Utilities to manage Python thirparty libraries source, binaries and metadata in local directories and remote repositories. diff --git a/pyproject.toml b/pyproject.toml index 9e62736..ba55770 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,10 +76,15 @@ select = [ "I", # isort "C9", # McCabe complexity ] -ignore = ["D1", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D203", "D205", "D212", "D400", "D415"] [tool.ruff.lint.isort] force-single-line = true +lines-after-imports = 1 +default-section = "first-party" +known-first-party = ["src", "tests", "etc/scripts/**/*.py"] +known-third-party = ["click", "pytest"] + sections = { django = ["django"] } section-order = [ "future", From 0b63e5073b6b1cdc0960abe35060ad0fdb67b665 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 21:35:16 +0100 Subject: [PATCH 176/247] Apply small code updates Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_requirements.py | 20 ++++++++----- etc/scripts/utils_thirdparty.py | 48 +++++++++++++++---------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 1c50239..a9ac223 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -57,21 +57,25 @@ def get_required_name_version(requirement, with_unpinned=False): >>> assert get_required_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1") >>> assert get_required_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3") >>> assert get_required_name_version("foo", with_unpinned=True) == ("foo", "") - >>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_required_name_version("foo>=1.2") + >>> expected = ("foo", ""), get_required_name_version("foo>=1.2") + >>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == expected >>> try: ... assert not get_required_name_version("foo", with_unpinned=False) ... except Exception as e: ... assert "Requirement version must be pinned" in str(e) """ requirement = requirement and "".join(requirement.lower().split()) - assert requirement, f"specifier is required is empty:{requirement!r}" + if not requirement: + raise ValueError(f"specifier is required is empty:{requirement!r}") name, operator, version = split_req(requirement) - assert name, f"Name is required: {requirement}" + if not name: + raise ValueError(f"Name is required: {requirement}") is_pinned = operator == "==" if with_unpinned: version = "" else: - assert is_pinned and version, f"Requirement version must be pinned: {requirement}" + if not is_pinned and version: + raise ValueError(f"Requirement version must be pinned: {requirement}") return name, version @@ -120,7 +124,7 @@ def get_installed_reqs(site_packages_dir): # setuptools, pip args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] - return subprocess.check_output(args, encoding="utf-8") + return subprocess.check_output(args, encoding="utf-8") # noqa: S603 comparators = ( @@ -150,9 +154,11 @@ def split_req(req): >>> assert split_req("foo >= 1.2.3 ") == ("foo", ">=", "1.2.3"), split_req("foo >= 1.2.3 ") >>> assert split_req("foo>=1.2") == ("foo", ">=", "1.2"), split_req("foo>=1.2") """ - assert req + if not req: + raise ValueError("req is required") # do not allow multiple constraints and tags - assert not any(c in req for c in ",;") + if not any(c in req for c in ",;"): + raise Exception(f"complex requirements with : or ; not supported: {req}") req = "".join(req.split()) if not any(c in req for c in comparators): return req, "", "" diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index b0295ec..6d5ffdc 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -559,7 +558,8 @@ def download(self, dest_dir=THIRDPARTY_DIR): Download this distribution into `dest_dir` directory. Return the fetched filename. """ - assert self.filename + if not self.filename: + raise ValueError(f"self.filename has no value but is required: {self.filename!r}") if TRACE_DEEP: print( f"Fetching distribution of {self.name}=={self.version}:", @@ -829,10 +829,9 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): urls = LinksRepository.from_url( use_cached_index=use_cached_index).links errors = [] - extra_lic_names = [l.get("file") - for l in self.extra_data.get("licenses", {})] + extra_lic_names = [lic.get("file") for lic in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] - extra_lic_names = [ln for ln in extra_lic_names if ln] + extra_lic_names = [eln for eln in extra_lic_names if eln] lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()] for filename in lic_names + extra_lic_names: floc = os.path.join(dest_dir, filename) @@ -853,7 +852,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from remote: {lic_url}") - except: + except Exception: try: # try licensedb second lic_url = f"{LICENSEDB_API_URL}/{filename}" @@ -866,8 +865,9 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from licensedb: {lic_url}") - except: - msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}' + except Exception: + msg = f"No text for license {filename} in expression " + f"{self.license_expression!r} from {self}" print(msg) errors.append(msg) @@ -1009,7 +1009,7 @@ def get_license_link_for_filename(filename, urls): exception if no link is found or if there are more than one link for that file name. """ - path_or_url = [l for l in urls if l.endswith(f"/{filename}")] + path_or_url = [url for url in urls if url.endswith(f"/{filename}")] if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: @@ -1140,7 +1140,6 @@ def to_filename(self): @attr.attributes class Wheel(Distribution): - """ Represents a wheel file. @@ -1301,7 +1300,7 @@ def is_pure(self): def is_pure_wheel(filename): try: return Wheel.from_filename(filename).is_pure() - except: + except Exception: return False @@ -1489,8 +1488,7 @@ def dists_from_paths_or_urls(cls, paths_or_urls): ) except InvalidDistributionFilename: if TRACE_DEEP: - print( - f" Skipping invalid distribution from: {path_or_url}") + print(f" Skipping invalid distribution from: {path_or_url}") continue return dists @@ -1500,8 +1498,7 @@ def get_distributions(self): """ if self.sdist: yield self.sdist - for wheel in self.wheels: - yield wheel + yield from self.wheels def get_url_for_filename(self, filename): """ @@ -1632,7 +1629,8 @@ class PypiSimpleRepository: type=dict, default=attr.Factory(lambda: defaultdict(dict)), metadata=dict( - help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} available in this repo" + help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} " + "available in this repo" ), ) @@ -1647,7 +1645,8 @@ class PypiSimpleRepository: type=bool, default=False, metadata=dict( - help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache." + help="If True, use any existing on-disk cached PyPI index files. " + "Otherwise, fetch and cache." ), ) @@ -1656,7 +1655,8 @@ def _get_package_versions_map(self, name): Return a mapping of all available PypiPackage version for this package name. The mapping may be empty. It is ordered by version from oldest to newest """ - assert name + if not name: + raise ValueError(f"name is required: {name!r}") normalized_name = NameVer.normalize_name(name) versions = self.packages[normalized_name] if not versions and normalized_name not in self.fetched_package_normalized_names: @@ -1713,7 +1713,7 @@ def fetch_links(self, normalized_name): ) links = collect_urls(text) # TODO: keep sha256 - links = [l.partition("#sha256=") for l in links] + links = [link.partition("#sha256=") for link in links] links = [url for url, _, _sha256 in links] return links @@ -1936,7 +1936,7 @@ def get_remote_file_content( # several redirects and that we can ignore content there. A HEAD request may # not get us this last header print(f" DOWNLOADING: {url}") - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 status = response.status_code if status != requests.codes.ok: # NOQA if status == 429 and _delay < 20: @@ -2161,7 +2161,7 @@ def call(args, verbose=TRACE): """ if TRACE_DEEP: print("Calling:", " ".join(args)) - with subprocess.Popen( + with subprocess.Popen( # noqa: S603 args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: @@ -2227,7 +2227,7 @@ def download_wheels_with_pip( cli_args.extend(["--requirement", req_file]) if TRACE: - print(f"Downloading wheels using command:", " ".join(cli_args)) + print("Downloading wheels using command:", " ".join(cli_args)) existing = set(os.listdir(dest_dir)) error = False @@ -2260,7 +2260,7 @@ def download_wheels_with_pip( def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") @@ -2312,5 +2312,5 @@ def get_license_expression(declared_licenses): return get_only_expression_from_extracted_license(declared_licenses) except ImportError: # Scancode is not installed, clean and join all the licenses - lics = [python_safe_name(l).lower() for l in declared_licenses] + lics = [python_safe_name(lic).lower() for lic in declared_licenses] return " AND ".join(lics).lower() From 092f545f5b87442ae22884cb4d5381883343a1c2 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 21:42:03 +0100 Subject: [PATCH 177/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 3 +- etc/scripts/fetch_thirdparty.py | 26 ++++----- etc/scripts/gen_pypi_simple.py | 4 +- etc/scripts/utils_dejacode.py | 15 +++--- etc/scripts/utils_requirements.py | 9 ++-- etc/scripts/utils_thirdparty.py | 90 +++++++++++-------------------- 6 files changed, 50 insertions(+), 97 deletions(-) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 62dbb14..1aa4e28 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -16,8 +16,7 @@ @click.option( "-d", "--dest", - type=click.Path(exists=True, readable=True, - path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, help="Path to the thirdparty directory to check.", ) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 30d376c..c224683 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -55,8 +55,7 @@ "-d", "--dest", "dest_dir", - type=click.Path(exists=True, readable=True, - path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, @@ -121,7 +120,7 @@ show_default=False, multiple=True, help="Package name(s) that come only in sdist format (no wheels). " - "The command will not fail and exit if no wheel exists for these names", + "The command will not fail and exit if no wheel exists for these names", ) @click.option( "--wheel-only", @@ -132,7 +131,7 @@ show_default=False, multiple=True, help="Package name(s) that come only in wheel format (no sdist). " - "The command will not fail and exit if no sdist exists for these names", + "The command will not fail and exit if no sdist exists for these names", ) @click.option( "--no-dist", @@ -143,7 +142,7 @@ show_default=False, multiple=True, help="Package name(s) that do not come either in wheel or sdist format. " - "The command will not fail and exit if no distribution exists for these names", + "The command will not fail and exit if no distribution exists for these names", ) @click.help_option("-h", "--help") def fetch_thirdparty( @@ -225,8 +224,7 @@ def fetch_thirdparty( environments = None if wheels: evts = itertools.product(python_versions, operating_systems) - environments = [utils_thirdparty.Environment.from_pyver_and_os( - pyv, os) for pyv, os in evts] + environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] # Collect PyPI repos repos = [] @@ -250,7 +248,6 @@ def fetch_thirdparty( print(f"Processing: {name} @ {version}") if wheels: for environment in environments: - if TRACE: print(f" ==> Fetching wheel for envt: {environment}") @@ -262,14 +259,11 @@ def fetch_thirdparty( repos=repos, ) if not fetched: - wheels_or_sdist_not_found[f"{name}=={version}"].append( - environment) + wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) if TRACE: print(f" NOT FOUND") - if (sdists or - (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only) - ): + if sdists or (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only): if TRACE: print(f" ==> Fetching sdist: {name}=={version}") @@ -292,8 +286,7 @@ def fetch_thirdparty( sdist_missing = sdists and "sdist" in dists and not name in wheel_only if sdist_missing: mia.append(f"SDist missing: {nv} {dists}") - wheels_missing = wheels and any( - d for d in dists if d != "sdist") and not name in sdist_only + wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only if wheels_missing: mia.append(f"Wheels missing: {nv} {dists}") @@ -303,8 +296,7 @@ def fetch_thirdparty( raise Exception(mia) print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") - utils_thirdparty.fetch_abouts_and_licenses( - dest_dir=dest_dir, use_cached_index=use_cached_index) + utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 214d90d..cfe68e6 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -69,7 +69,6 @@ def get_package_name_from_filename(filename): raise InvalidDistributionFilename(filename) elif filename.endswith(wheel_ext): - wheel_info = get_wheel_from_filename(filename) if not wheel_info: @@ -200,11 +199,10 @@ def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi" simple_html_index = [ "", "PyPI Simple Index", - '' '', + '', ] for pkg_file in directory.iterdir(): - pkg_filename = pkg_file.name if ( diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index c71543f..cd39cda 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -32,8 +32,7 @@ def can_do_api_calls(): if not DEJACODE_API_KEY and DEJACODE_API_URL: - print( - "DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") + print("DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") return False else: return True @@ -68,8 +67,7 @@ def get_package_data(distribution): return results[0] elif len_results > 1: - print( - f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") + print(f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") else: print("Could not find package:", distribution.download_url) @@ -150,12 +148,11 @@ def find_latest_dejacode_package(distribution): # there was no exact match, find the latest version # TODO: consider the closest version rather than the latest # or the version that has the best data - with_versions = [(packaging_version.parse(p["version"]), p) - for p in packages] + with_versions = [(packaging_version.parse(p["version"]), p) for p in packages] with_versions = sorted(with_versions) latest_version, latest_package_version = sorted(with_versions)[-1] print( - f"Found DejaCode latest version: {latest_version} " f"for dist: {distribution.package_url}", + f"Found DejaCode latest version: {latest_version} for dist: {distribution.package_url}", ) return latest_package_version @@ -181,7 +178,7 @@ def create_dejacode_package(distribution): } fields_to_carry_over = [ - "download_url" "type", + "download_urltype", "namespace", "name", "version", @@ -209,5 +206,5 @@ def create_dejacode_package(distribution): if response.status_code != 201: raise Exception(f"Error, cannot create package for: {distribution}") - print(f'New Package created at: {new_package_data["absolute_url"]}') + print(f"New Package created at: {new_package_data['absolute_url']}") return new_package_data diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index a9ac223..167bc9f 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -106,8 +106,7 @@ def lock_dev_requirements( all_req_nvs = get_required_name_versions(all_req_lines) dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names} - new_reqs = "\n".join( - f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) + new_reqs = "\n".join(f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) with open(dev_requirements_file, "w") as fo: fo.write(new_reqs) @@ -118,12 +117,10 @@ def get_installed_reqs(site_packages_dir): as a text. """ if not os.path.exists(site_packages_dir): - raise Exception( - f"site_packages directory: {site_packages_dir!r} does not exists") + raise Exception(f"site_packages directory: {site_packages_dir!r} does not exists") # Also include these packages in the output with --all: wheel, distribute, # setuptools, pip - args = ["pip", "freeze", "--exclude-editable", - "--all", "--path", site_packages_dir] + args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] return subprocess.check_output(args, encoding="utf-8") # noqa: S603 diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 6d5ffdc..4ea1bab 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -243,11 +243,9 @@ def download_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR, repos=tu package = repo.get_package_version(name=name, version=version) if not package: if TRACE_DEEP: - print( - f" download_wheel: No package in {repo.index_url} for {name}=={version}") + print(f" download_wheel: No package in {repo.index_url} for {name}=={version}") continue - supported_wheels = list( - package.get_supported_wheels(environment=environment)) + supported_wheels = list(package.get_supported_wheels(environment=environment)) if not supported_wheels: if TRACE_DEEP: print( @@ -291,8 +289,7 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): if not package: if TRACE_DEEP: - print( - f" download_sdist: No package in {repo.index_url} for {name}=={version}") + print(f" download_sdist: No package in {repo.index_url} for {name}=={version}") continue sdist = package.sdist if not sdist: @@ -301,8 +298,7 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): continue if TRACE_DEEP: - print( - f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") + print(f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") fetched_sdist_filename = package.sdist.download(dest_dir=dest_dir) if fetched_sdist_filename: @@ -357,7 +353,6 @@ def sorted(cls, namevers): @attr.attributes class Distribution(NameVer): - # field names that can be updated from another Distribution or mapping updatable_fields = [ "license_expression", @@ -535,8 +530,7 @@ def get_best_download_url(self, repos=tuple()): repos = DEFAULT_PYPI_REPOS for repo in repos: - package = repo.get_package_version( - name=self.name, version=self.version) + package = repo.get_package_version(name=self.name, version=self.version) if not package: if TRACE: print( @@ -776,8 +770,7 @@ def load_remote_about_data(self): if notice_text: about_data["notice_text"] = notice_text except RemoteNotFetchedException: - print( - f"Failed to fetch NOTICE file: {self.notice_download_url}") + print(f"Failed to fetch NOTICE file: {self.notice_download_url}") return self.load_about_data(about_data) def get_checksums(self, dest_dir=THIRDPARTY_DIR): @@ -826,8 +819,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): Fetch license files if missing in `dest_dir`. Return True if license files were fetched. """ - urls = LinksRepository.from_url( - use_cached_index=use_cached_index).links + urls = LinksRepository.from_url(use_cached_index=use_cached_index).links errors = [] extra_lic_names = [lic.get("file") for lic in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] @@ -840,8 +832,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): try: # try remotely first - lic_url = get_license_link_for_filename( - filename=filename, urls=urls) + lic_url = get_license_link_for_filename(filename=filename, urls=urls) fetch_and_save( path_or_url=lic_url, @@ -919,8 +910,7 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): c for c in classifiers if c.startswith("License") ] license_expression = get_license_expression(declared_license) - other_classifiers = [ - c for c in classifiers if not c.startswith("License")] + other_classifiers = [c for c in classifiers if not c.startswith("License")] holder = raw_data["Author"] holder_contact = raw_data["Author-email"] @@ -962,8 +952,7 @@ def update(self, data, overwrite=False, keep_extra=True): package_url = data.get("package_url") if package_url: purl_from_data = packageurl.PackageURL.from_string(package_url) - purl_from_self = packageurl.PackageURL.from_string( - self.package_url) + purl_from_self = packageurl.PackageURL.from_string(self.package_url) if purl_from_data != purl_from_self: print( f"Invalid dist update attempt, no same same purl with dist: " @@ -1013,8 +1002,7 @@ def get_license_link_for_filename(filename, urls): if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: - raise Exception( - f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) + raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) return path_or_url[0] @@ -1102,7 +1090,6 @@ def get_sdist_name_ver_ext(filename): @attr.attributes class Sdist(Distribution): - extension = attr.ib( repr=False, type=str, @@ -1407,8 +1394,7 @@ def packages_from_dir(cls, directory): """ base = os.path.abspath(directory) - paths = [os.path.join(base, f) - for f in os.listdir(base) if f.endswith(EXTENSIONS)] + paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] if TRACE_ULTRA_DEEP: print("packages_from_dir: paths:", paths) @@ -1469,8 +1455,7 @@ def dists_from_paths_or_urls(cls, paths_or_urls): dists = [] if TRACE_ULTRA_DEEP: print(" ###paths_or_urls:", paths_or_urls) - installable = [f for f in paths_or_urls if f.endswith( - EXTENSIONS_INSTALLABLE)] + installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] for path_or_url in installable: try: dist = Distribution.from_path_or_url(path_or_url) @@ -1536,8 +1521,7 @@ class Environment: implementation = attr.ib( type=str, default="cp", - metadata=dict( - help="Python implementation supported by this environment."), + metadata=dict(help="Python implementation supported by this environment."), repr=False, ) @@ -1551,8 +1535,7 @@ class Environment: platforms = attr.ib( type=list, default=attr.Factory(list), - metadata=dict( - help="List of platform tags supported by this environment."), + metadata=dict(help="List of platform tags supported by this environment."), repr=False, ) @@ -1637,8 +1620,7 @@ class PypiSimpleRepository: fetched_package_normalized_names = attr.ib( type=set, default=attr.Factory(set), - metadata=dict( - help="A set of already fetched package normalized names."), + metadata=dict(help="A set of already fetched package normalized names."), ) use_cached_index = attr.ib( @@ -1671,12 +1653,10 @@ def _get_package_versions_map(self, name): self.packages[normalized_name] = versions except RemoteNotFetchedException as e: if TRACE: - print( - f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") + print(f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") if not versions and TRACE: - print( - f"WARNING: package {name} not found in repo: {self.index_url}") + print(f"WARNING: package {name} not found in repo: {self.index_url}") return versions @@ -1861,8 +1841,7 @@ def get(self, path_or_url, as_text=True, force=False): if force or not os.path.exists(cached): if TRACE_DEEP: print(f" FILE CACHE MISS: {path_or_url}") - content = get_file_content( - path_or_url=path_or_url, as_text=as_text) + content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = "w" if as_text else "wb" with open(cached, wmode) as fo: fo.write(content) @@ -1884,8 +1863,7 @@ def get_file_content(path_or_url, as_text=True): if path_or_url.startswith("https://"): if TRACE_DEEP: print(f"Fetching: {path_or_url}") - _headers, content = get_remote_file_content( - url=path_or_url, as_text=as_text) + _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) return content elif path_or_url.startswith("file://") or ( @@ -1936,7 +1914,7 @@ def get_remote_file_content( # several redirects and that we can ignore content there. A HEAD request may # not get us this last header print(f" DOWNLOADING: {url}") - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 status = response.status_code if status != requests.codes.ok: # NOQA if status == 429 and _delay < 20: @@ -1951,8 +1929,7 @@ def get_remote_file_content( ) else: - raise RemoteNotFetchedException( - f"Failed HTTP request from {url} with {status}") + raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") if headers_only: return response.headers, None @@ -2043,8 +2020,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # lets try to get from another dist of the same local package @@ -2056,8 +2032,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get another version of the same package that is not our version @@ -2068,8 +2043,7 @@ def get_other_dists(_package, _dist): ] other_local_version = other_local_packages and other_local_packages[-1] if other_local_version: - latest_local_dists = list( - other_local_version.get_distributions()) + latest_local_dists = list(other_local_version.get_distributions()) for latest_local_dist in latest_local_dists: latest_local_dist.load_about_data(dest_dir=dest_dir) if not latest_local_dist.has_key_metadata(): @@ -2095,8 +2069,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get a latest version of the same package that is not our version @@ -2137,8 +2110,7 @@ def get_other_dists(_package, _dist): # if local_dist.has_key_metadata() or not local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir) - lic_errs = local_dist.fetch_license_files( - dest_dir, use_cached_index=use_cached_index) + lic_errs = local_dist.fetch_license_files(dest_dir, use_cached_index=use_cached_index) if not local_dist.has_key_metadata(): print(f"Unable to add essential ABOUT data for: {local_dist}") @@ -2161,10 +2133,9 @@ def call(args, verbose=TRACE): """ if TRACE_DEEP: print("Calling:", " ".join(args)) - with subprocess.Popen( # noqa: S603 + with subprocess.Popen( # noqa: S603 args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: - stdouts = [] while True: line = process.stdout.readline() @@ -2260,7 +2231,7 @@ def download_wheels_with_pip( def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") @@ -2286,8 +2257,7 @@ def find_problems( for dist in package.get_distributions(): dist.load_about_data(dest_dir=dest_dir) - abpth = os.path.abspath(os.path.join( - dest_dir, dist.about_filename)) + abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename)) if not dist.has_key_metadata(): print(f" Missing key ABOUT data in file://{abpth}") if "classifiers" in dist.extra_data: From d05665ad44a50b71f66b974ad24c81f7443e8180 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:02:19 +0100 Subject: [PATCH 178/247] Apply cosmetic refactorings Signed-off-by: Philippe Ombredanne --- docs/source/conf.py | 3 ++- etc/scripts/check_thirdparty.py | 4 +--- etc/scripts/fetch_thirdparty.py | 17 ++++++++--------- etc/scripts/gen_pypi_simple.py | 15 +++++++-------- etc/scripts/gen_requirements.py | 4 ++-- etc/scripts/gen_requirements_dev.py | 4 ++-- .../test_utils_pip_compatibility_tags.py | 9 +++++---- etc/scripts/utils_dejacode.py | 9 +++++---- etc/scripts/utils_pip_compatibility_tags.py | 8 +++++--- etc/scripts/utils_requirements.py | 3 +-- etc/scripts/utils_thirdparty.py | 3 ++- 11 files changed, 40 insertions(+), 39 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8c88fa2..8aad829 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -94,7 +94,8 @@ html_show_sphinx = True # Define CSS and HTML abbreviations used in .rst files. These are examples. -# .. role:: is used to refer to styles defined in _static/theme_overrides.css and is used like this: :red:`text` +# .. role:: is used to refer to styles defined in _static/theme_overrides.css +# and is used like this: :red:`text` rst_prolog = """ .. |psf| replace:: Python Software Foundation diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 1aa4e28..bb8347a 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -41,8 +40,7 @@ def check_thirdparty_dir( """ Check a thirdparty directory for problems and print these on screen. """ - # check for problems - print(f"==> CHECK FOR PROBLEMS") + print("==> CHECK FOR PROBLEMS") utils_thirdparty.find_problems( dest_dir=dest, report_missing_sources=sdists, diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index c224683..76a19a6 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -10,7 +9,6 @@ # import itertools -import os import sys from collections import defaultdict @@ -109,7 +107,8 @@ @click.option( "--use-cached-index", is_flag=True, - help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.", + help="Use on disk cached PyPI indexes list of packages and versions and " + "do not refetch if present.", ) @click.option( "--sdist-only", @@ -261,7 +260,7 @@ def fetch_thirdparty( if not fetched: wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) if TRACE: - print(f" NOT FOUND") + print(" NOT FOUND") if sdists or (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only): if TRACE: @@ -276,17 +275,17 @@ def fetch_thirdparty( if not fetched: wheels_or_sdist_not_found[f"{name}=={version}"].append("sdist") if TRACE: - print(f" NOT FOUND") + print(" NOT FOUND") mia = [] for nv, dists in wheels_or_sdist_not_found.items(): name, _, version = nv.partition("==") if name in no_dist: continue - sdist_missing = sdists and "sdist" in dists and not name in wheel_only + sdist_missing = sdists and "sdist" in dists and name not in wheel_only if sdist_missing: mia.append(f"SDist missing: {nv} {dists}") - wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only + wheels_missing = wheels and any(d for d in dists if d != "sdist") and name not in sdist_only if wheels_missing: mia.append(f"Wheels missing: {nv} {dists}") @@ -295,12 +294,12 @@ def fetch_thirdparty( print(m) raise Exception(mia) - print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") + print("==> FETCHING OR CREATING ABOUT AND LICENSE FILES") utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems - print(f"==> CHECK FOR PROBLEMS") + print("==> CHECK FOR PROBLEMS") utils_thirdparty.find_problems( dest_dir=dest_dir, report_missing_sources=sdists, diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index cfe68e6..89d0626 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # SPDX-License-Identifier: BSD-2-Clause-Views AND MIT # Copyright (c) 2010 David Wolever . All rights reserved. @@ -132,7 +131,7 @@ def build_links_package_index(packages_by_package_name, base_url): Return an HTML document as string which is a links index of all packages """ document = [] - header = f""" + header = """ Links for all packages @@ -177,13 +176,13 @@ def simple_index_entry(self, base_url): def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi"): """ - Using a ``directory`` directory of wheels and sdists, create the a PyPI - simple directory index at ``directory``/simple/ populated with the proper - PyPI simple index directory structure crafted using symlinks. + Create the a PyPI simple directory index using a ``directory`` directory of wheels and sdists in + the direvctory at ``directory``/simple/ populated with the proper PyPI simple index directory + structure crafted using symlinks. - WARNING: The ``directory``/simple/ directory is removed if it exists. - NOTE: in addition to the a PyPI simple index.html there is also a links.html - index file generated which is suitable to use with pip's --find-links + WARNING: The ``directory``/simple/ directory is removed if it exists. NOTE: in addition to the a + PyPI simple index.html there is also a links.html index file generated which is suitable to use + with pip's --find-links """ directory = Path(directory) diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index 2b65ae8..1b87944 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -34,7 +33,8 @@ def gen_requirements(): type=pathlib.Path, required=True, metavar="DIR", - help="Path to the 'site-packages' directory where wheels are installed such as lib/python3.6/site-packages", + help="Path to the 'site-packages' directory where wheels are installed " + "such as lib/python3.12/site-packages", ) parser.add_argument( "-r", diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index 5db1c48..8548205 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -36,7 +35,8 @@ def gen_dev_requirements(): type=pathlib.Path, required=True, metavar="DIR", - help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', + help="Path to the 'site-packages' directory where wheels are installed " + "such as lib/python3.12/site-packages", ) parser.add_argument( "-d", diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index a33b8b3..de4b706 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -1,4 +1,5 @@ -"""Generate and work with PEP 425 Compatibility Tags. +""" +Generate and work with PEP 425 Compatibility Tags. copied from pip-20.3.1 pip/tests/unit/test_utils_compatibility_tags.py download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py @@ -50,7 +51,7 @@ def test_version_info_to_nodot(version_info, expected): assert actual == expected -class Testcompatibility_tags(object): +class Testcompatibility_tags: def mock_get_config_var(self, **kwd): """ Patch sysconfig.get_config_var for arbitrary keys. @@ -81,7 +82,7 @@ def test_no_hyphen_tag(self): assert "-" not in tag.platform -class TestManylinux2010Tags(object): +class TestManylinux2010Tags: @pytest.mark.parametrize( "manylinux2010,manylinux1", [ @@ -104,7 +105,7 @@ def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): assert arches[:2] == [manylinux2010, manylinux1] -class TestManylinux2014Tags(object): +class TestManylinux2014Tags: @pytest.mark.parametrize( "manylinuxA,manylinuxB", [ diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index cd39cda..b6bff51 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -25,7 +24,7 @@ DEJACODE_API_URL_PACKAGES = f"{DEJACODE_API_URL}packages/" DEJACODE_API_HEADERS = { - "Authorization": "Token {}".format(DEJACODE_API_KEY), + "Authorization": f"Token {DEJACODE_API_KEY}", "Accept": "application/json; indent=4", } @@ -50,6 +49,7 @@ def fetch_dejacode_packages(params): DEJACODE_API_URL_PACKAGES, params=params, headers=DEJACODE_API_HEADERS, + timeout=10, ) return response.json()["results"] @@ -93,7 +93,7 @@ def update_with_dejacode_about_data(distribution): if package_data: package_api_url = package_data["api_url"] about_url = f"{package_api_url}about" - response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + response = requests.get(about_url, headers=DEJACODE_API_HEADERS, timeout=10) # note that this is YAML-formatted about_text = response.json()["about_data"] about_data = saneyaml.load(about_text) @@ -113,7 +113,7 @@ def fetch_and_save_about_files(distribution, dest_dir="thirdparty"): if package_data: package_api_url = package_data["api_url"] about_url = f"{package_api_url}about_files" - response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + response = requests.get(about_url, headers=DEJACODE_API_HEADERS, timeout=10) about_zip = response.content with io.BytesIO(about_zip) as zf: with zipfile.ZipFile(zf) as zi: @@ -201,6 +201,7 @@ def create_dejacode_package(distribution): DEJACODE_API_URL_PACKAGES, data=new_package_payload, headers=DEJACODE_API_HEADERS, + timeout=10, ) new_package_data = response.json() if response.status_code != 201: diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index de0ac95..dd954bc 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -1,4 +1,5 @@ -"""Generate and work with PEP 425 Compatibility Tags. +""" +Generate and work with PEP 425 Compatibility Tags. copied from pip-20.3.1 pip/_internal/utils/compatibility_tags.py download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py @@ -130,7 +131,7 @@ def _get_custom_interpreter(implementation=None, version=None): implementation = interpreter_name() if version is None: version = interpreter_version() - return "{}{}".format(implementation, version) + return f"{implementation}{version}" def get_supported( @@ -140,7 +141,8 @@ def get_supported( abis=None, # type: Optional[List[str]] ): # type: (...) -> List[Tag] - """Return a list of supported tags for each version specified in + """ + Return a list of supported tags for each version specified in `versions`. :param version: a string version, of the form "33" or "32", diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 167bc9f..b9b2c0e 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -40,7 +39,7 @@ def get_required_name_versions(requirement_lines, with_unpinned=False): req_line = req_line.strip() if not req_line or req_line.startswith("#"): continue - if req_line.startswith("-") or (not with_unpinned and not "==" in req_line): + if req_line.startswith("-") or (not with_unpinned and "==" not in req_line): print(f"Requirement line is not supported: ignored: {req_line}") continue yield get_required_name_version(requirement=req_line, with_unpinned=with_unpinned) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 4ea1bab..aafc1d6 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -91,7 +91,8 @@ - parse requirement file - create a TODO queue of requirements to process -- done: create an empty map of processed binary requirements as {package name: (list of versions/tags} +- done: create an empty map of processed binary requirements as + {package name: (list of versions/tags} - while we have package reqs in TODO queue, process one requirement: From 63bcbf507e8a25f22853d56605c107e47c3673cc Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:05:23 +0100 Subject: [PATCH 179/247] Reformat test code Signed-off-by: Philippe Ombredanne --- .gitignore | 1 + pyproject.toml | 19 +++++++++++-------- tests/test_skeleton_codestyle.py | 25 ++++++++++++++++--------- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 2d48196..8a93c94 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ tcl # Ignore Jupyter Notebook related temp files .ipynb_checkpoints/ +/.ruff_cache/ diff --git a/pyproject.toml b/pyproject.toml index ba55770..a872ab3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,16 +67,17 @@ include = [ [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ select = [ - "E", # pycodestyle - "W", # pycodestyle warnings - "D", # pydocstyle - "F", # Pyflakes - "UP", # pyupgrade - "S", # flake8-bandit +# "E", # pycodestyle +# "W", # pycodestyle warnings +# "D", # pydocstyle +# "F", # Pyflakes +# "UP", # pyupgrade +# "S", # flake8-bandit "I", # isort - "C9", # McCabe complexity +# "C9", # McCabe complexity ] -ignore = ["D1", "D200", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415"] + [tool.ruff.lint.isort] force-single-line = true @@ -100,3 +101,5 @@ max-complexity = 10 [tool.ruff.lint.per-file-ignores] # Place paths of files to be ignored by ruff here +"tests/*" = ["S101"] +"test_*.py" = ["S101"] diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index b4ce8c1..8cd85c9 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -7,30 +7,37 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import configparser import subprocess import unittest -import configparser - class BaseTests(unittest.TestCase): def test_skeleton_codestyle(self): - """ - This test shouldn't run in proliferated repositories. - """ + # This test shouldn't run in proliferated repositories. + + # TODO: update with switch to pyproject.toml setup_cfg = configparser.ConfigParser() setup_cfg.read("setup.cfg") if setup_cfg["metadata"]["name"] != "skeleton": return - args = "venv/bin/black --check -l 100 setup.py etc tests" + commands = [ + ["venv/bin/ruff", "--check"], + ["venv/bin/ruff", "format", "--check"], + ] + command = None try: - subprocess.check_output(args.split()) + for command in commands: + subprocess.check_output(command) # noqa: S603 except subprocess.CalledProcessError as e: print("===========================================================") print(e.output) print("===========================================================") raise Exception( - "Black style check failed; please format the code using:\n" - " python -m black -l 100 setup.py etc tests", + f"Code style and linting command check failed: {' '.join(command)!r}.\n" + "You can check and format the code using:\n" + " make valid\n", + "OR:\n ruff format\n", + " ruff check --fix\n", e.output, ) from e From 9d1393a85303bf8cf92c9a25aa5cc50bdfd080d1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:08:25 +0100 Subject: [PATCH 180/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 1 + etc/scripts/test_utils_pip_compatibility_tags.py | 1 + tests/test_skeleton_codestyle.py | 1 + 3 files changed, 3 insertions(+) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index bb8347a..65ae595 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -11,6 +11,7 @@ import utils_thirdparty + @click.command() @click.option( "-d", diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index de4b706..0e9c360 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -33,6 +33,7 @@ import utils_pip_compatibility_tags + @pytest.mark.parametrize( "version_info, expected", [ diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index 8cd85c9..7135ac0 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -11,6 +11,7 @@ import subprocess import unittest + class BaseTests(unittest.TestCase): def test_skeleton_codestyle(self): # This test shouldn't run in proliferated repositories. From f10b783b6b6fe33032a7862352ed532294efdf14 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:10:45 +0100 Subject: [PATCH 181/247] Refine ruff configuration Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a872ab3..0f8bd58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,11 +72,11 @@ select = [ # "D", # pydocstyle # "F", # Pyflakes # "UP", # pyupgrade -# "S", # flake8-bandit + "S", # flake8-bandit "I", # isort # "C9", # McCabe complexity ] -ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415", "I001"] [tool.ruff.lint.isort] From 1d6c8f3bb8755aa7c9d2804240c01b0161417328 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:54:01 +0100 Subject: [PATCH 182/247] Format doc Signed-off-by: Philippe Ombredanne --- AUTHORS.rst | 2 +- README.rst | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index 51a19cc..16e2046 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -1,3 +1,3 @@ The following organizations or individuals have contributed to this repo: -- +- diff --git a/README.rst b/README.rst index 6cbd839..3d6cb4e 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,6 @@ A Simple Python Project Skeleton ================================ + This repo attempts to standardize the structure of the Python-based project's repositories using modern Python packaging and configuration techniques. Using this `blog post`_ as inspiration, this repository serves as the base for @@ -47,16 +48,19 @@ Release Notes - 2022-03-04: - Synchronize configure and configure.bat scripts for sanity - Update CI operating system support with latest Azure OS images - - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party dependencies - There are now fewer scripts. See etc/scripts/README.rst for details + - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party + dependencies. There are now fewer scripts. See etc/scripts/README.rst for details - 2021-09-03: - - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` and ``requirements-dev.txt`` + - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` + and ``requirements-dev.txt`` - ``configure`` can now accept multiple options at once - Add utility scripts from scancode-toolkit/etc/release/ for use in generating project files - Rename virtual environment directory from ``tmp`` to ``venv`` - - Update README.rst with instructions for generating ``requirements.txt`` and ``requirements-dev.txt``, - as well as collecting dependencies as wheels and generating ABOUT files for them. + - Update README.rst with instructions for generating ``requirements.txt`` + and ``requirements-dev.txt``, as well as collecting dependencies as wheels and generating + ABOUT files for them. - 2021-05-11: - - Adopt new configure scripts from ScanCode TK that allows correct configuration of which Python version is used. + - Adopt new configure scripts from ScanCode TK that allows correct configuration of which + Python version is used. From 0213c1ea9a15ab94a854b8d7af27a1a036e393f4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:54:35 +0100 Subject: [PATCH 183/247] Run doc8 on all rst files Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 930e801..debc404 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ + @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ *.rst valid: @echo "-> Run Ruff format" From c112f2a9c20d58e986424f5f32bd259814fc8e3f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:55:20 +0100 Subject: [PATCH 184/247] Enable doc style checks Signed-off-by: Philippe Ombredanne --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0f8bd58..51761ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,8 @@ include = [ "etc/**/*.py", "test/**/*.py", "doc/**/*", - "*.py" + "*.py", + "." ] [tool.ruff.lint] @@ -69,10 +70,10 @@ include = [ select = [ # "E", # pycodestyle # "W", # pycodestyle warnings -# "D", # pydocstyle + "D", # pydocstyle # "F", # Pyflakes # "UP", # pyupgrade - "S", # flake8-bandit +# "S", # flake8-bandit "I", # isort # "C9", # McCabe complexity ] From 944b6c5371bea2ce0763fd26888de6436116d185 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 00:34:26 +0100 Subject: [PATCH 185/247] Add support for new OS versions Signed-off-by: Philippe Ombredanne --- README.rst | 50 +++++++++++++++++++++++++++++++++++++++++---- azure-pipelines.yml | 36 ++++++++++++++++++++++++++++++-- 2 files changed, 80 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index 6cbd839..f848b4b 100644 --- a/README.rst +++ b/README.rst @@ -1,9 +1,11 @@ A Simple Python Project Skeleton ================================ -This repo attempts to standardize the structure of the Python-based project's -repositories using modern Python packaging and configuration techniques. -Using this `blog post`_ as inspiration, this repository serves as the base for -all new Python projects and is mergeable in existing repositories as well. + +This repo attempts to standardize the structure of the Python-based project's repositories using +modern Python packaging and configuration techniques that can then be applied to many repos. + +Using this `blog post`_ as inspiration, this repository serves as the base for all new Python +projects and is mergeable in existing repositories as well. .. _blog post: https://blog.jaraco.com/a-project-skeleton-for-python-projects/ @@ -13,6 +15,7 @@ Usage A brand new project ------------------- + .. code-block:: bash git init my-new-repo @@ -26,6 +29,7 @@ From here, you can make the appropriate changes to the files for your specific p Update an existing project --------------------------- + .. code-block:: bash cd my-existing-project @@ -41,17 +45,54 @@ More usage instructions can be found in ``docs/skeleton-usage.rst``. Release Notes ============= +- 2025-03-29: + + - Add support for beta macOS-15 + - Add support for beta windows-2025 + +- 2025-02-14: + + - Drop support for Python 3.8, add support in CI for Python 3.13, use Python 3.12 as default + version. + +- 2025-01-17: + + - Drop support for macOS-12, add support for macOS-14 + - Add support in CI for ubuntu-24.04 + - Add support in CI for Python 3.12 + +- 2024-08-20: + + - Update references of ownership from nexB to aboutcode-org + +- 2024-07-01: + + - Drop support for Python 3.8 + - Drop support for macOS-11, add support for macOS-14 + +- 2024-02-19: + + - Replace support in CI of default ubuntu-20.04 by ubuntu-22.04 + +- 2023-10-18: + + - Add dark mode support in documentation + - 2023-07-18: + - Add macOS-13 job in azure-pipelines.yml - 2022-03-04: + - Synchronize configure and configure.bat scripts for sanity - Update CI operating system support with latest Azure OS images - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party dependencies There are now fewer scripts. See etc/scripts/README.rst for details - 2021-09-03: + - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` and ``requirements-dev.txt`` + - ``configure`` can now accept multiple options at once - Add utility scripts from scancode-toolkit/etc/release/ for use in generating project files - Rename virtual environment directory from ``tmp`` to ``venv`` @@ -59,4 +100,5 @@ Release Notes as well as collecting dependencies as wheels and generating ABOUT files for them. - 2021-05-11: + - Adopt new configure scripts from ScanCode TK that allows correct configuration of which Python version is used. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a220f2b..80ae45b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,11 +26,27 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos13_cpython + image_name: macOS-13-xlarge + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos13_cpython_arm64 image_name: macOS-13 python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos14_cpython + image_name: macOS-14-large + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + - template: etc/ci/azure-posix.yml parameters: job_name: macos14_cpython_arm64 @@ -41,8 +57,16 @@ jobs: - template: etc/ci/azure-posix.yml parameters: - job_name: macos14_cpython - image_name: macOS-14-large + job_name: macos15_cpython + image_name: macOS-15 + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + test_suites: + all: venv/bin/pytest -n 2 -vvs + + - template: etc/ci/azure-posix.yml + parameters: + job_name: macos15_cpython_arm64 + image_name: macOS-15-large python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -62,3 +86,11 @@ jobs: python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv\Scripts\pytest -n 2 -vvs + + - template: etc/ci/azure-win.yml + parameters: + job_name: win2025_cpython + image_name: windows-2025 + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + test_suites: + all: venv\Scripts\pytest -n 2 -vvs From 136af3912336616fbd2431a96230961517a2c356 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 12:45:32 +0200 Subject: [PATCH 186/247] Update scripts aboutcode references Signed-off-by: Philippe Ombredanne --- etc/scripts/update_skeleton.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/etc/scripts/update_skeleton.py b/etc/scripts/update_skeleton.py index 635898b..5705fc4 100644 --- a/etc/scripts/update_skeleton.py +++ b/etc/scripts/update_skeleton.py @@ -1,11 +1,10 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # -# Copyright (c) nexB Inc. and others. All rights reserved. +# Copyright (c) nexB Inc. AboutCode, and others. All rights reserved. # ScanCode is a trademark of nexB Inc. # SPDX-License-Identifier: Apache-2.0 # See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/skeleton for support or download. +# See https://github.com/aboutcode-org/skeleton for support or download. # See https://aboutcode.org for more information about nexB OSS projects. # @@ -16,7 +15,7 @@ import click -NEXB_PUBLIC_REPO_NAMES=[ +ABOUTCODE_PUBLIC_REPO_NAMES=[ "aboutcode-toolkit", "ahocode", "bitcode", @@ -56,9 +55,9 @@ @click.command() @click.help_option("-h", "--help") -def update_skeleton_files(repo_names=NEXB_PUBLIC_REPO_NAMES): +def update_skeleton_files(repo_names=ABOUTCODE_PUBLIC_REPO_NAMES): """ - Update project files of nexB projects that use the skeleton + Update project files of AboutCode projects that use the skeleton This script will: - Clone the repo @@ -81,14 +80,14 @@ def update_skeleton_files(repo_names=NEXB_PUBLIC_REPO_NAMES): os.chdir(work_dir_path) # Clone repo - repo_git = f"git@github.com:nexB/{repo_name}.git" + repo_git = f"git@github.com:aboutcode-org/{repo_name}.git" subprocess.run(["git", "clone", repo_git]) # Go into cloned repo os.chdir(work_dir_path / repo_name) # Add skeleton as an origin - subprocess.run(["git", "remote", "add", "skeleton", "git@github.com:nexB/skeleton.git"]) + subprocess.run(["git", "remote", "add", "skeleton", "git@github.com:aboutcode-org/skeleton.git"]) # Fetch skeleton files subprocess.run(["git", "fetch", "skeleton"]) From da8eff0383611df60311b8bac599657450eaeb52 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 14:40:36 +0200 Subject: [PATCH 187/247] Do not format more test data Signed-off-by: Philippe Ombredanne --- pyproject.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 51761ff..7d807eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,10 +60,25 @@ include = [ "src/**/*.py", "etc/**/*.py", "test/**/*.py", + "tests/**/*.py", "doc/**/*", + "docs/**/*", "*.py", "." ] +# ignore test data and testfiles: they should never be linted nor formatted +exclude = [ +# main style + "**/tests/data/**/*", +# scancode-toolkit + "**/tests/*/data/**/*", +# dejacode, purldb + "**/tests/testfiles/**/*", +# vulnerablecode, fetchcode + "**/tests/*/test_data/**/*", + "**/tests/test_data/**/*", +] + [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ From 4f9e936d452acc3822df8d3f932cbd7071b31d72 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 14:58:36 +0200 Subject: [PATCH 188/247] Do not treat rst as Python Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7d807eb..5e16b56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,8 +61,8 @@ include = [ "etc/**/*.py", "test/**/*.py", "tests/**/*.py", - "doc/**/*", - "docs/**/*", + "doc/**/*.py", + "docs/**/*.py", "*.py", "." ] From a2809fb28c60b54aec0c367285acacdea1cb03a8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 16:41:57 +0200 Subject: [PATCH 189/247] Combine testing and docs extra for simplicity Signed-off-by: Philippe Ombredanne --- configure | 2 -- configure.bat | 4 ---- setup.cfg | 3 --- 3 files changed, 9 deletions(-) diff --git a/configure b/configure index 22d9288..83fd203 100755 --- a/configure +++ b/configure @@ -30,7 +30,6 @@ CLI_ARGS=$1 # Requirement arguments passed to pip and used by default or with --dev. REQUIREMENTS="--editable . --constraint requirements.txt" DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" -DOCS_REQUIREMENTS="--editable .[docs] --constraint requirements.txt" # where we create a virtualenv VIRTUALENV_DIR=venv @@ -185,7 +184,6 @@ while getopts :-: optchar; do help ) cli_help;; clean ) find_python && clean;; dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; - docs ) CFG_REQUIREMENTS="$DOCS_REQUIREMENTS";; esac;; esac done diff --git a/configure.bat b/configure.bat index 5b9a9d6..18b3703 100644 --- a/configure.bat +++ b/configure.bat @@ -28,7 +28,6 @@ @rem # Requirement arguments passed to pip and used by default or with --dev. set "REQUIREMENTS=--editable . --constraint requirements.txt" set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" -set "DOCS_REQUIREMENTS=--editable .[docs] --constraint requirements.txt" @rem # where we create a virtualenv set "VIRTUALENV_DIR=venv" @@ -76,9 +75,6 @@ if not "%1" == "" ( if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" ) - if "%1" EQU "--docs" ( - set "CFG_REQUIREMENTS=%DOCS_REQUIREMENTS%" - ) shift goto again ) diff --git a/setup.cfg b/setup.cfg index aaec643..ad8e0d8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -55,8 +55,6 @@ testing = pycodestyle >= 2.8.0 twine ruff - -docs = Sphinx>=5.0.2 sphinx-rtd-theme>=1.0.0 sphinx-reredirects >= 0.1.2 @@ -64,4 +62,3 @@ docs = sphinx-autobuild sphinx-rtd-dark-mode>=1.3.0 sphinx-copybutton - From 43b96c28baaa1621d24b6f5791c6d915d2edc5f3 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 17:18:19 +0200 Subject: [PATCH 190/247] Refine checking of docs with doc8 Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- pyproject.toml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index debc404..d21a2f9 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ *.rst + @${ACTIVATE} doc8 docs/ *.rst valid: @echo "-> Run Ruff format" diff --git a/pyproject.toml b/pyproject.toml index 5e16b56..bfb1d35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -119,3 +119,10 @@ max-complexity = 10 # Place paths of files to be ignored by ruff here "tests/*" = ["S101"] "test_*.py" = ["S101"] + + +[tool.doc8] + +ignore-path = ["docs/build", "doc/build", "docs/_build", "doc/_build"] +max-line-length=100 +verbose=0 From b7194c80c9425087f1d05e430bd9d6a14fb9c3a0 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 18:41:00 +0200 Subject: [PATCH 191/247] Refine doc handling * remove CI scripts and use Makefile targets instead * ensure doc8 runs quiet * add new docs-check make target to run documentation and links checks * update oudated doc for docs contribution Signed-off-by: Philippe Ombredanne --- .github/workflows/docs-ci.yml | 12 +++++------- Makefile | 10 +++++++--- docs/scripts/doc8_style_check.sh | 5 ----- docs/scripts/sphinx_build_link_check.sh | 5 ----- docs/source/conf.py | 2 +- docs/source/contribute/contrib_doc.rst | 8 ++++---- pyproject.toml | 2 -- 7 files changed, 17 insertions(+), 27 deletions(-) delete mode 100755 docs/scripts/doc8_style_check.sh delete mode 100644 docs/scripts/sphinx_build_link_check.sh diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 621de4b..10ba5fa 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -21,14 +21,12 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install Dependencies - run: pip install -e .[docs] + run: ./configure --dev - - name: Check Sphinx Documentation build minimally - working-directory: ./docs - run: sphinx-build -E -W source build + - name: Check documentation and HTML for errors and dead links + run: make docs-check - - name: Check for documentation style errors - working-directory: ./docs - run: ./scripts/doc8_style_check.sh + - name: Check documentation for style errors + run: make doc8 diff --git a/Makefile b/Makefile index d21a2f9..413399e 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 docs/ *.rst + @${ACTIVATE} doc8 --quiet docs/ *.rst valid: @echo "-> Run Ruff format" @@ -46,6 +46,10 @@ test: docs: rm -rf docs/_build/ - @${ACTIVATE} sphinx-build docs/ docs/_build/ + @${ACTIVATE} sphinx-build docs/source docs/_build/ -.PHONY: conf dev check valid clean test docs +docs-check: + @${ACTIVATE} sphinx-build -E -W -b html docs/source docs/_build/ + @${ACTIVATE} sphinx-build -E -W -b linkcheck docs/source docs/_build/ + +.PHONY: conf dev check valid clean test docs docs-check diff --git a/docs/scripts/doc8_style_check.sh b/docs/scripts/doc8_style_check.sh deleted file mode 100755 index 9416323..0000000 --- a/docs/scripts/doc8_style_check.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# halt script on error -set -e -# Check for Style Code Violations -doc8 --max-line-length 100 source --ignore D000 --quiet \ No newline at end of file diff --git a/docs/scripts/sphinx_build_link_check.sh b/docs/scripts/sphinx_build_link_check.sh deleted file mode 100644 index c542686..0000000 --- a/docs/scripts/sphinx_build_link_check.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# halt script on error -set -e -# Build locally, and then check links -sphinx-build -E -W -b linkcheck source build \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 8aad829..056ca6e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,7 +18,7 @@ # -- Project information ----------------------------------------------------- project = "nexb-skeleton" -copyright = "nexB Inc. and others." +copyright = "nexB Inc., AboutCode and others." author = "AboutCode.org authors and contributors" diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index 5640db2..041b358 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -147,7 +147,7 @@ What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. +Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. What is checked: @@ -169,11 +169,11 @@ What is checked: Interspinx ---------- -ScanCode toolkit documentation uses `Intersphinx `_ +ScanCode toolkit documentation uses `Intersphinx `_ to link to other Sphinx Documentations, to maintain links to other Aboutcode Projects. To link sections in the same documentation, standart reST labels are used. Refer -`Cross-Referencing `_ for more information. +`Cross-Referencing `_ for more information. For example:: @@ -230,7 +230,7 @@ Style Conventions for the Documentaion 1. Headings - (`Refer `_) + (`Refer `_) Normally, there are no heading levels assigned to certain characters as the structure is determined from the succession of headings. However, this convention is used in Python’s Style Guide for documenting which you may follow: diff --git a/pyproject.toml b/pyproject.toml index bfb1d35..c9e6772 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,7 +122,5 @@ max-complexity = 10 [tool.doc8] - ignore-path = ["docs/build", "doc/build", "docs/_build", "doc/_build"] max-line-length=100 -verbose=0 From a5bcdbdd71d1542a0e9ec9b190a2e3d573c53744 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 18:49:01 +0200 Subject: [PATCH 192/247] Add twine check to release publication Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index a66c9c8..cf0579a 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -30,12 +30,15 @@ jobs: with: python-version: 3.12 - - name: Install pypa/build - run: python -m pip install build --user + - name: Install pypa/build and twine + run: python -m pip install --user build twine - name: Build a binary wheel and a source tarball run: python -m build --sdist --wheel --outdir dist/ + - name: Validate wheel and sdis for Pypi + run: python -m twine check dist/* + - name: Upload built archives uses: actions/upload-artifact@v4 with: From a6c25fb2a2fa35311d26621b9db400ca52bd376e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 19:16:31 +0200 Subject: [PATCH 193/247] Refine doc contribution docs Signed-off-by: Philippe Ombredanne --- docs/source/contribute/contrib_doc.rst | 119 ++++++++----------------- 1 file changed, 38 insertions(+), 81 deletions(-) diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index 041b358..dee9296 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -8,109 +8,59 @@ Contributing to the Documentation Setup Local Build ----------------- -To get started, create or identify a working directory on your local machine. +To get started, check out and configure the repository for development:: -Open that directory and execute the following command in a terminal session:: + git clone https://github.com/aboutcode-org/.git - git clone https://github.com/aboutcode-org/skeleton.git + cd your-repo + ./configure --dev -That will create an ``/skeleton`` directory in your working directory. -Now you can install the dependencies in a virtualenv:: - - cd skeleton - ./configure --docs +(Or use "make dev") .. note:: - In case of windows, run ``configure --docs`` instead of this. - -Now, this will install the following prerequisites: - -- Sphinx -- sphinx_rtd_theme (the format theme used by ReadTheDocs) -- docs8 (style linter) + In case of windows, run ``configure --dev``. -These requirements are already present in setup.cfg and `./configure --docs` installs them. +This will install and configure all requirements foer development including for docs development. -Now you can build the HTML documents locally:: +Now you can build the HTML documentation locally:: source venv/bin/activate - cd docs - make html - -Assuming that your Sphinx installation was successful, Sphinx should build a local instance of the -documentation .html files:: - - open build/html/index.html - -.. note:: - - In case this command did not work, for example on Ubuntu 18.04 you may get a message like “Couldn’t - get a file descriptor referring to the console”, try: - - :: - - see build/html/index.html + make docs -You now have a local build of the AboutCode documents. +This will build a local instance of the ``docs/_build`` directory:: -.. _contrib_doc_share_improvements: + open docs/_build/index.html -Share Document Improvements ---------------------------- - -Ensure that you have the latest files:: - - git pull - git status -Before commiting changes run Continious Integration Scripts locally to run tests. Refer -:ref:`doc_ci` for instructions on the same. +To validate the documentation style and content, use:: -Follow standard git procedures to upload your new and modified files. The following commands are -examples:: - - git status - git add source/index.rst - git add source/how-to-scan.rst - git status - git commit -m "New how-to document that explains how to scan" - git status - git push - git status - -The Scancode-Toolkit webhook with ReadTheDocs should rebuild the documentation after your -Pull Request is Merged. + source venv/bin/activate + make doc8 + make docs-check -Refer the `Pro Git Book `_ available online for Git tutorials -covering more complex topics on Branching, Merging, Rebasing etc. .. _doc_ci: Continuous Integration ---------------------- -The documentations are checked on every new commit through Travis-CI, so that common errors are -avoided and documentation standards are enforced. Travis-CI presently checks for these 3 aspects -of the documentation : +The documentations are checked on every new commit, so that common errors are avoided and +documentation standards are enforced. We checks for these aspects of the documentation: 1. Successful Builds (By using ``sphinx-build``) -2. No Broken Links (By Using ``link-check``) -3. Linting Errors (By Using ``Doc8``) +2. No Broken Links (By Using ``linkcheck``) +3. Linting Errors (By Using ``doc8``) -So run these scripts at your local system before creating a Pull Request:: +You myst run these scripts locally before creating a pull request:: - cd docs - ./scripts/sphinx_build_link_check.sh - ./scripts/doc8_style_check.sh + make doc8 + make check-docs -If you don't have permission to run the scripts, run:: - - chmod u+x ./scripts/doc8_style_check.sh .. _doc_style_docs8: -Style Checks Using ``Doc8`` +Style Checks Using ``doc8`` --------------------------- How To Run Style Tests @@ -118,8 +68,7 @@ How To Run Style Tests In the project root, run the following commands:: - $ cd docs - $ ./scripts/doc8_style_check.sh + make doc8 A sample output is:: @@ -143,11 +92,13 @@ A sample output is:: Now fix the errors and run again till there isn't any style error in the documentation. + What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. +Doc8 is a sub-project of the same Organization. Refer this +`README `_ for more details. What is checked: @@ -164,16 +115,19 @@ What is checked: - no carriage returns (use UNIX newlines) - D004 - no newline at end of file - D005 + .. _doc_interspinx: Interspinx ---------- -ScanCode toolkit documentation uses `Intersphinx `_ +AboutCode documentation uses +`Intersphinx `_ to link to other Sphinx Documentations, to maintain links to other Aboutcode Projects. To link sections in the same documentation, standart reST labels are used. Refer -`Cross-Referencing `_ for more information. +`Cross-Referencing `_ +for more information. For example:: @@ -223,6 +177,7 @@ Intersphinx, and you link to that label, it will create a link to the local labe For more information, refer this tutorial named `Using Intersphinx `_. + .. _doc_style_conv: Style Conventions for the Documentaion @@ -303,12 +258,14 @@ Style Conventions for the Documentaion ``rst_snippets/warning_snippets/`` and then included to eliminate redundancy, as these are frequently used in multiple files. + Converting from Markdown ------------------------ -If you want to convert a ``.md`` file to a ``.rst`` file, this `tool `_ -does it pretty well. You'd still have to clean up and check for errors as this contains a lot of -bugs. But this is definitely better than converting everything by yourself. +If you want to convert a ``.md`` file to a ``.rst`` file, this +`tool `_ does it pretty well. +You will still have to clean up and check for errors as this contains a lot of bugs. But this is +definitely better than converting everything by yourself. This will be helpful in converting GitHub wiki's (Markdown Files) to reStructuredtext files for Sphinx/ReadTheDocs hosting. From 68daae1e7e475a89568e353f64f29af13754ce9e Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 27 Mar 2025 14:54:31 -0700 Subject: [PATCH 194/247] Replace black and isort with ruff * Use ruff config and Make commands from scancode.io Signed-off-by: Jono Yang --- Makefile | 27 ++++++++++++--------------- pyproject.toml | 37 +++++++++++++++++++++++++++++++++++++ setup.cfg | 3 +-- 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 94451b3..1738b20 100644 --- a/Makefile +++ b/Makefile @@ -17,27 +17,24 @@ dev: @echo "-> Configure the development envt." ./configure --dev -isort: - @echo "-> Apply isort changes to ensure proper imports ordering" - ${VENV}/bin/isort --sl -l 100 src tests setup.py - -black: - @echo "-> Apply black code formatter" - ${VENV}/bin/black -l 100 src tests setup.py - doc8: @echo "-> Run doc8 validation" @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ -valid: isort black +valid: + @echo "-> Run Ruff format" + @${ACTIVATE} ruff format + @echo "-> Run Ruff linter" + @${ACTIVATE} ruff check --fix check: - @echo "-> Run pycodestyle (PEP8) validation" - @${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache . - @echo "-> Run isort imports ordering validation" - @${ACTIVATE} isort --sl --check-only -l 100 setup.py src tests . - @echo "-> Run black validation" - @${ACTIVATE} black --check --check -l 100 src tests setup.py + @echo "-> Run Ruff linter validation (pycodestyle, bandit, isort, and more)" + @${ACTIVATE} ruff check + @echo "-> Run Ruff format validation" + @${ACTIVATE} ruff format --check + @$(MAKE) doc8 + @echo "-> Run ABOUT files validation" + @${ACTIVATE} about check etc/ clean: @echo "-> Clean the Python env" diff --git a/pyproject.toml b/pyproject.toml index cde7907..01e60fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,3 +50,40 @@ addopts = [ "--strict-markers", "--doctest-modules" ] + +[tool.ruff] +line-length = 88 +extend-exclude = [] +target-version = "py310" + +[tool.ruff.lint] +# Rules: https://docs.astral.sh/ruff/rules/ +select = [ + "E", # pycodestyle + "W", # pycodestyle warnings + "D", # pydocstyle + "F", # Pyflakes + "UP", # pyupgrade + "S", # flake8-bandit + "I", # isort + "C9", # McCabe complexity +] +ignore = ["D1", "D203", "D205", "D212", "D400", "D415"] + +[tool.ruff.lint.isort] +force-single-line = true +sections = { django = ["django"] } +section-order = [ + "future", + "standard-library", + "django", + "third-party", + "first-party", + "local-folder", +] + +[tool.ruff.lint.mccabe] +max-complexity = 10 + +[tool.ruff.lint.per-file-ignores] +# Place paths of files to be ignored by ruff here diff --git a/setup.cfg b/setup.cfg index ef7d369..aaec643 100644 --- a/setup.cfg +++ b/setup.cfg @@ -54,8 +54,7 @@ testing = aboutcode-toolkit >= 7.0.2 pycodestyle >= 2.8.0 twine - black - isort + ruff docs = Sphinx>=5.0.2 From 6a8c9ae144a1985b59fb69a0b2c55e32831714b8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 00:46:06 +0100 Subject: [PATCH 195/247] Use org standard 100 line length Signed-off-by: Philippe Ombredanne --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 01e60fc..cea91bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,7 @@ addopts = [ ] [tool.ruff] -line-length = 88 +line-length = 100 extend-exclude = [] target-version = "py310" From 2fd31d54afa47418c764de0f1a30d67c7059ed7b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 08:40:28 +0100 Subject: [PATCH 196/247] Lint all common code directories Signed-off-by: Philippe Ombredanne --- pyproject.toml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index cea91bd..9e62736 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,14 @@ addopts = [ line-length = 100 extend-exclude = [] target-version = "py310" +include = [ + "pyproject.toml", + "src/**/*.py", + "etc/**/*.py", + "test/**/*.py", + "doc/**/*", + "*.py" +] [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ From eb5fc82ab1cab8a4742a2b9028d1436956960e81 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 09:07:47 +0100 Subject: [PATCH 197/247] Remove unused targets Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1738b20..930e801 100644 --- a/Makefile +++ b/Makefile @@ -48,4 +48,4 @@ docs: rm -rf docs/_build/ @${ACTIVATE} sphinx-build docs/ docs/_build/ -.PHONY: conf dev check valid black isort clean test docs +.PHONY: conf dev check valid clean test docs From 529d51621c9e2af8e1ec2503044b8752c71c3ba7 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 11:03:05 +0100 Subject: [PATCH 198/247] Improve import sorting Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 1 - etc/scripts/fetch_thirdparty.py | 2 +- etc/scripts/test_utils_pip_compatibility_tags.py | 3 +-- etc/scripts/utils_dejacode.py | 1 - etc/scripts/utils_pip_compatibility_tags.py | 14 ++++++-------- etc/scripts/utils_thirdparty.py | 3 +-- pyproject.toml | 7 ++++++- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 2daded9..62dbb14 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -12,7 +12,6 @@ import utils_thirdparty - @click.command() @click.option( "-d", diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 3f9ff52..30d376c 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -16,8 +16,8 @@ import click -import utils_thirdparty import utils_requirements +import utils_thirdparty TRACE = False TRACE_DEEP = False diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index 98187c5..a33b8b3 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -25,14 +25,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from unittest.mock import patch import sysconfig +from unittest.mock import patch import pytest import utils_pip_compatibility_tags - @pytest.mark.parametrize( "version_info, expected", [ diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index 652252d..c71543f 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -14,7 +14,6 @@ import requests import saneyaml - from packvers import version as packaging_version """ diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index af42a0c..de0ac95 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -27,14 +27,12 @@ import re -from packvers.tags import ( - compatible_tags, - cpython_tags, - generic_tags, - interpreter_name, - interpreter_version, - mac_platforms, -) +from packvers.tags import compatible_tags +from packvers.tags import cpython_tags +from packvers.tags import generic_tags +from packvers.tags import interpreter_name +from packvers.tags import interpreter_version +from packvers.tags import mac_platforms _osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)") diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 46dc728..b0295ec 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -25,14 +25,13 @@ import packageurl import requests import saneyaml +import utils_pip_compatibility_tags from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name from packvers import tags as packaging_tags from packvers import version as packaging_version -import utils_pip_compatibility_tags - """ Utilities to manage Python thirparty libraries source, binaries and metadata in local directories and remote repositories. diff --git a/pyproject.toml b/pyproject.toml index 9e62736..ba55770 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,10 +76,15 @@ select = [ "I", # isort "C9", # McCabe complexity ] -ignore = ["D1", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D203", "D205", "D212", "D400", "D415"] [tool.ruff.lint.isort] force-single-line = true +lines-after-imports = 1 +default-section = "first-party" +known-first-party = ["src", "tests", "etc/scripts/**/*.py"] +known-third-party = ["click", "pytest"] + sections = { django = ["django"] } section-order = [ "future", From aae1a2847c0e493b0e8bea542da30dbdfb2be68e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 21:35:16 +0100 Subject: [PATCH 199/247] Apply small code updates Signed-off-by: Philippe Ombredanne --- etc/scripts/utils_requirements.py | 20 ++++++++----- etc/scripts/utils_thirdparty.py | 48 +++++++++++++++---------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 1c50239..a9ac223 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -57,21 +57,25 @@ def get_required_name_version(requirement, with_unpinned=False): >>> assert get_required_name_version("fooA==1.2.3.DEV1") == ("fooa", "1.2.3.dev1") >>> assert get_required_name_version("foo==1.2.3", with_unpinned=False) == ("foo", "1.2.3") >>> assert get_required_name_version("foo", with_unpinned=True) == ("foo", "") - >>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == ("foo", ""), get_required_name_version("foo>=1.2") + >>> expected = ("foo", ""), get_required_name_version("foo>=1.2") + >>> assert get_required_name_version("foo>=1.2", with_unpinned=True) == expected >>> try: ... assert not get_required_name_version("foo", with_unpinned=False) ... except Exception as e: ... assert "Requirement version must be pinned" in str(e) """ requirement = requirement and "".join(requirement.lower().split()) - assert requirement, f"specifier is required is empty:{requirement!r}" + if not requirement: + raise ValueError(f"specifier is required is empty:{requirement!r}") name, operator, version = split_req(requirement) - assert name, f"Name is required: {requirement}" + if not name: + raise ValueError(f"Name is required: {requirement}") is_pinned = operator == "==" if with_unpinned: version = "" else: - assert is_pinned and version, f"Requirement version must be pinned: {requirement}" + if not is_pinned and version: + raise ValueError(f"Requirement version must be pinned: {requirement}") return name, version @@ -120,7 +124,7 @@ def get_installed_reqs(site_packages_dir): # setuptools, pip args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] - return subprocess.check_output(args, encoding="utf-8") + return subprocess.check_output(args, encoding="utf-8") # noqa: S603 comparators = ( @@ -150,9 +154,11 @@ def split_req(req): >>> assert split_req("foo >= 1.2.3 ") == ("foo", ">=", "1.2.3"), split_req("foo >= 1.2.3 ") >>> assert split_req("foo>=1.2") == ("foo", ">=", "1.2"), split_req("foo>=1.2") """ - assert req + if not req: + raise ValueError("req is required") # do not allow multiple constraints and tags - assert not any(c in req for c in ",;") + if not any(c in req for c in ",;"): + raise Exception(f"complex requirements with : or ; not supported: {req}") req = "".join(req.split()) if not any(c in req for c in comparators): return req, "", "" diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index b0295ec..6d5ffdc 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -559,7 +558,8 @@ def download(self, dest_dir=THIRDPARTY_DIR): Download this distribution into `dest_dir` directory. Return the fetched filename. """ - assert self.filename + if not self.filename: + raise ValueError(f"self.filename has no value but is required: {self.filename!r}") if TRACE_DEEP: print( f"Fetching distribution of {self.name}=={self.version}:", @@ -829,10 +829,9 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): urls = LinksRepository.from_url( use_cached_index=use_cached_index).links errors = [] - extra_lic_names = [l.get("file") - for l in self.extra_data.get("licenses", {})] + extra_lic_names = [lic.get("file") for lic in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] - extra_lic_names = [ln for ln in extra_lic_names if ln] + extra_lic_names = [eln for eln in extra_lic_names if eln] lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()] for filename in lic_names + extra_lic_names: floc = os.path.join(dest_dir, filename) @@ -853,7 +852,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from remote: {lic_url}") - except: + except Exception: try: # try licensedb second lic_url = f"{LICENSEDB_API_URL}/{filename}" @@ -866,8 +865,9 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from licensedb: {lic_url}") - except: - msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}' + except Exception: + msg = f"No text for license {filename} in expression " + f"{self.license_expression!r} from {self}" print(msg) errors.append(msg) @@ -1009,7 +1009,7 @@ def get_license_link_for_filename(filename, urls): exception if no link is found or if there are more than one link for that file name. """ - path_or_url = [l for l in urls if l.endswith(f"/{filename}")] + path_or_url = [url for url in urls if url.endswith(f"/{filename}")] if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: @@ -1140,7 +1140,6 @@ def to_filename(self): @attr.attributes class Wheel(Distribution): - """ Represents a wheel file. @@ -1301,7 +1300,7 @@ def is_pure(self): def is_pure_wheel(filename): try: return Wheel.from_filename(filename).is_pure() - except: + except Exception: return False @@ -1489,8 +1488,7 @@ def dists_from_paths_or_urls(cls, paths_or_urls): ) except InvalidDistributionFilename: if TRACE_DEEP: - print( - f" Skipping invalid distribution from: {path_or_url}") + print(f" Skipping invalid distribution from: {path_or_url}") continue return dists @@ -1500,8 +1498,7 @@ def get_distributions(self): """ if self.sdist: yield self.sdist - for wheel in self.wheels: - yield wheel + yield from self.wheels def get_url_for_filename(self, filename): """ @@ -1632,7 +1629,8 @@ class PypiSimpleRepository: type=dict, default=attr.Factory(lambda: defaultdict(dict)), metadata=dict( - help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} available in this repo" + help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} " + "available in this repo" ), ) @@ -1647,7 +1645,8 @@ class PypiSimpleRepository: type=bool, default=False, metadata=dict( - help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache." + help="If True, use any existing on-disk cached PyPI index files. " + "Otherwise, fetch and cache." ), ) @@ -1656,7 +1655,8 @@ def _get_package_versions_map(self, name): Return a mapping of all available PypiPackage version for this package name. The mapping may be empty. It is ordered by version from oldest to newest """ - assert name + if not name: + raise ValueError(f"name is required: {name!r}") normalized_name = NameVer.normalize_name(name) versions = self.packages[normalized_name] if not versions and normalized_name not in self.fetched_package_normalized_names: @@ -1713,7 +1713,7 @@ def fetch_links(self, normalized_name): ) links = collect_urls(text) # TODO: keep sha256 - links = [l.partition("#sha256=") for l in links] + links = [link.partition("#sha256=") for link in links] links = [url for url, _, _sha256 in links] return links @@ -1936,7 +1936,7 @@ def get_remote_file_content( # several redirects and that we can ignore content there. A HEAD request may # not get us this last header print(f" DOWNLOADING: {url}") - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 status = response.status_code if status != requests.codes.ok: # NOQA if status == 429 and _delay < 20: @@ -2161,7 +2161,7 @@ def call(args, verbose=TRACE): """ if TRACE_DEEP: print("Calling:", " ".join(args)) - with subprocess.Popen( + with subprocess.Popen( # noqa: S603 args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: @@ -2227,7 +2227,7 @@ def download_wheels_with_pip( cli_args.extend(["--requirement", req_file]) if TRACE: - print(f"Downloading wheels using command:", " ".join(cli_args)) + print("Downloading wheels using command:", " ".join(cli_args)) existing = set(os.listdir(dest_dir)) error = False @@ -2260,7 +2260,7 @@ def download_wheels_with_pip( def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") @@ -2312,5 +2312,5 @@ def get_license_expression(declared_licenses): return get_only_expression_from_extracted_license(declared_licenses) except ImportError: # Scancode is not installed, clean and join all the licenses - lics = [python_safe_name(l).lower() for l in declared_licenses] + lics = [python_safe_name(lic).lower() for lic in declared_licenses] return " AND ".join(lics).lower() From 037f9fc1b03736eeac9e0eefac3e35acc916d193 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 21:42:03 +0100 Subject: [PATCH 200/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 3 +- etc/scripts/fetch_thirdparty.py | 26 ++++----- etc/scripts/gen_pypi_simple.py | 4 +- etc/scripts/utils_dejacode.py | 15 +++--- etc/scripts/utils_requirements.py | 9 ++-- etc/scripts/utils_thirdparty.py | 90 +++++++++++-------------------- 6 files changed, 50 insertions(+), 97 deletions(-) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 62dbb14..1aa4e28 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -16,8 +16,7 @@ @click.option( "-d", "--dest", - type=click.Path(exists=True, readable=True, - path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), required=True, help="Path to the thirdparty directory to check.", ) diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index 30d376c..c224683 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -55,8 +55,7 @@ "-d", "--dest", "dest_dir", - type=click.Path(exists=True, readable=True, - path_type=str, file_okay=False), + type=click.Path(exists=True, readable=True, path_type=str, file_okay=False), metavar="DIR", default=utils_thirdparty.THIRDPARTY_DIR, show_default=True, @@ -121,7 +120,7 @@ show_default=False, multiple=True, help="Package name(s) that come only in sdist format (no wheels). " - "The command will not fail and exit if no wheel exists for these names", + "The command will not fail and exit if no wheel exists for these names", ) @click.option( "--wheel-only", @@ -132,7 +131,7 @@ show_default=False, multiple=True, help="Package name(s) that come only in wheel format (no sdist). " - "The command will not fail and exit if no sdist exists for these names", + "The command will not fail and exit if no sdist exists for these names", ) @click.option( "--no-dist", @@ -143,7 +142,7 @@ show_default=False, multiple=True, help="Package name(s) that do not come either in wheel or sdist format. " - "The command will not fail and exit if no distribution exists for these names", + "The command will not fail and exit if no distribution exists for these names", ) @click.help_option("-h", "--help") def fetch_thirdparty( @@ -225,8 +224,7 @@ def fetch_thirdparty( environments = None if wheels: evts = itertools.product(python_versions, operating_systems) - environments = [utils_thirdparty.Environment.from_pyver_and_os( - pyv, os) for pyv, os in evts] + environments = [utils_thirdparty.Environment.from_pyver_and_os(pyv, os) for pyv, os in evts] # Collect PyPI repos repos = [] @@ -250,7 +248,6 @@ def fetch_thirdparty( print(f"Processing: {name} @ {version}") if wheels: for environment in environments: - if TRACE: print(f" ==> Fetching wheel for envt: {environment}") @@ -262,14 +259,11 @@ def fetch_thirdparty( repos=repos, ) if not fetched: - wheels_or_sdist_not_found[f"{name}=={version}"].append( - environment) + wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) if TRACE: print(f" NOT FOUND") - if (sdists or - (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only) - ): + if sdists or (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only): if TRACE: print(f" ==> Fetching sdist: {name}=={version}") @@ -292,8 +286,7 @@ def fetch_thirdparty( sdist_missing = sdists and "sdist" in dists and not name in wheel_only if sdist_missing: mia.append(f"SDist missing: {nv} {dists}") - wheels_missing = wheels and any( - d for d in dists if d != "sdist") and not name in sdist_only + wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only if wheels_missing: mia.append(f"Wheels missing: {nv} {dists}") @@ -303,8 +296,7 @@ def fetch_thirdparty( raise Exception(mia) print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") - utils_thirdparty.fetch_abouts_and_licenses( - dest_dir=dest_dir, use_cached_index=use_cached_index) + utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index 214d90d..cfe68e6 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -69,7 +69,6 @@ def get_package_name_from_filename(filename): raise InvalidDistributionFilename(filename) elif filename.endswith(wheel_ext): - wheel_info = get_wheel_from_filename(filename) if not wheel_info: @@ -200,11 +199,10 @@ def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi" simple_html_index = [ "", "PyPI Simple Index", - '' '', + '', ] for pkg_file in directory.iterdir(): - pkg_filename = pkg_file.name if ( diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index c71543f..cd39cda 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -32,8 +32,7 @@ def can_do_api_calls(): if not DEJACODE_API_KEY and DEJACODE_API_URL: - print( - "DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") + print("DejaCode DEJACODE_API_KEY and DEJACODE_API_URL not configured. Doing nothing") return False else: return True @@ -68,8 +67,7 @@ def get_package_data(distribution): return results[0] elif len_results > 1: - print( - f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") + print(f"More than 1 entry exists, review at: {DEJACODE_API_URL_PACKAGES}") else: print("Could not find package:", distribution.download_url) @@ -150,12 +148,11 @@ def find_latest_dejacode_package(distribution): # there was no exact match, find the latest version # TODO: consider the closest version rather than the latest # or the version that has the best data - with_versions = [(packaging_version.parse(p["version"]), p) - for p in packages] + with_versions = [(packaging_version.parse(p["version"]), p) for p in packages] with_versions = sorted(with_versions) latest_version, latest_package_version = sorted(with_versions)[-1] print( - f"Found DejaCode latest version: {latest_version} " f"for dist: {distribution.package_url}", + f"Found DejaCode latest version: {latest_version} for dist: {distribution.package_url}", ) return latest_package_version @@ -181,7 +178,7 @@ def create_dejacode_package(distribution): } fields_to_carry_over = [ - "download_url" "type", + "download_urltype", "namespace", "name", "version", @@ -209,5 +206,5 @@ def create_dejacode_package(distribution): if response.status_code != 201: raise Exception(f"Error, cannot create package for: {distribution}") - print(f'New Package created at: {new_package_data["absolute_url"]}') + print(f"New Package created at: {new_package_data['absolute_url']}") return new_package_data diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index a9ac223..167bc9f 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -106,8 +106,7 @@ def lock_dev_requirements( all_req_nvs = get_required_name_versions(all_req_lines) dev_only_req_nvs = {n: v for n, v in all_req_nvs if n not in main_names} - new_reqs = "\n".join( - f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) + new_reqs = "\n".join(f"{n}=={v}" for n, v in sorted(dev_only_req_nvs.items())) with open(dev_requirements_file, "w") as fo: fo.write(new_reqs) @@ -118,12 +117,10 @@ def get_installed_reqs(site_packages_dir): as a text. """ if not os.path.exists(site_packages_dir): - raise Exception( - f"site_packages directory: {site_packages_dir!r} does not exists") + raise Exception(f"site_packages directory: {site_packages_dir!r} does not exists") # Also include these packages in the output with --all: wheel, distribute, # setuptools, pip - args = ["pip", "freeze", "--exclude-editable", - "--all", "--path", site_packages_dir] + args = ["pip", "freeze", "--exclude-editable", "--all", "--path", site_packages_dir] return subprocess.check_output(args, encoding="utf-8") # noqa: S603 diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 6d5ffdc..4ea1bab 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -243,11 +243,9 @@ def download_wheel(name, version, environment, dest_dir=THIRDPARTY_DIR, repos=tu package = repo.get_package_version(name=name, version=version) if not package: if TRACE_DEEP: - print( - f" download_wheel: No package in {repo.index_url} for {name}=={version}") + print(f" download_wheel: No package in {repo.index_url} for {name}=={version}") continue - supported_wheels = list( - package.get_supported_wheels(environment=environment)) + supported_wheels = list(package.get_supported_wheels(environment=environment)) if not supported_wheels: if TRACE_DEEP: print( @@ -291,8 +289,7 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): if not package: if TRACE_DEEP: - print( - f" download_sdist: No package in {repo.index_url} for {name}=={version}") + print(f" download_sdist: No package in {repo.index_url} for {name}=={version}") continue sdist = package.sdist if not sdist: @@ -301,8 +298,7 @@ def download_sdist(name, version, dest_dir=THIRDPARTY_DIR, repos=tuple()): continue if TRACE_DEEP: - print( - f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") + print(f" download_sdist: Getting sdist from index (or cache): {sdist.download_url}") fetched_sdist_filename = package.sdist.download(dest_dir=dest_dir) if fetched_sdist_filename: @@ -357,7 +353,6 @@ def sorted(cls, namevers): @attr.attributes class Distribution(NameVer): - # field names that can be updated from another Distribution or mapping updatable_fields = [ "license_expression", @@ -535,8 +530,7 @@ def get_best_download_url(self, repos=tuple()): repos = DEFAULT_PYPI_REPOS for repo in repos: - package = repo.get_package_version( - name=self.name, version=self.version) + package = repo.get_package_version(name=self.name, version=self.version) if not package: if TRACE: print( @@ -776,8 +770,7 @@ def load_remote_about_data(self): if notice_text: about_data["notice_text"] = notice_text except RemoteNotFetchedException: - print( - f"Failed to fetch NOTICE file: {self.notice_download_url}") + print(f"Failed to fetch NOTICE file: {self.notice_download_url}") return self.load_about_data(about_data) def get_checksums(self, dest_dir=THIRDPARTY_DIR): @@ -826,8 +819,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): Fetch license files if missing in `dest_dir`. Return True if license files were fetched. """ - urls = LinksRepository.from_url( - use_cached_index=use_cached_index).links + urls = LinksRepository.from_url(use_cached_index=use_cached_index).links errors = [] extra_lic_names = [lic.get("file") for lic in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] @@ -840,8 +832,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): try: # try remotely first - lic_url = get_license_link_for_filename( - filename=filename, urls=urls) + lic_url = get_license_link_for_filename(filename=filename, urls=urls) fetch_and_save( path_or_url=lic_url, @@ -919,8 +910,7 @@ def load_pkginfo_data(self, dest_dir=THIRDPARTY_DIR): c for c in classifiers if c.startswith("License") ] license_expression = get_license_expression(declared_license) - other_classifiers = [ - c for c in classifiers if not c.startswith("License")] + other_classifiers = [c for c in classifiers if not c.startswith("License")] holder = raw_data["Author"] holder_contact = raw_data["Author-email"] @@ -962,8 +952,7 @@ def update(self, data, overwrite=False, keep_extra=True): package_url = data.get("package_url") if package_url: purl_from_data = packageurl.PackageURL.from_string(package_url) - purl_from_self = packageurl.PackageURL.from_string( - self.package_url) + purl_from_self = packageurl.PackageURL.from_string(self.package_url) if purl_from_data != purl_from_self: print( f"Invalid dist update attempt, no same same purl with dist: " @@ -1013,8 +1002,7 @@ def get_license_link_for_filename(filename, urls): if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: - raise Exception( - f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) + raise Exception(f"Multiple links to file: {filename}: \n" + "\n".join(path_or_url)) return path_or_url[0] @@ -1102,7 +1090,6 @@ def get_sdist_name_ver_ext(filename): @attr.attributes class Sdist(Distribution): - extension = attr.ib( repr=False, type=str, @@ -1407,8 +1394,7 @@ def packages_from_dir(cls, directory): """ base = os.path.abspath(directory) - paths = [os.path.join(base, f) - for f in os.listdir(base) if f.endswith(EXTENSIONS)] + paths = [os.path.join(base, f) for f in os.listdir(base) if f.endswith(EXTENSIONS)] if TRACE_ULTRA_DEEP: print("packages_from_dir: paths:", paths) @@ -1469,8 +1455,7 @@ def dists_from_paths_or_urls(cls, paths_or_urls): dists = [] if TRACE_ULTRA_DEEP: print(" ###paths_or_urls:", paths_or_urls) - installable = [f for f in paths_or_urls if f.endswith( - EXTENSIONS_INSTALLABLE)] + installable = [f for f in paths_or_urls if f.endswith(EXTENSIONS_INSTALLABLE)] for path_or_url in installable: try: dist = Distribution.from_path_or_url(path_or_url) @@ -1536,8 +1521,7 @@ class Environment: implementation = attr.ib( type=str, default="cp", - metadata=dict( - help="Python implementation supported by this environment."), + metadata=dict(help="Python implementation supported by this environment."), repr=False, ) @@ -1551,8 +1535,7 @@ class Environment: platforms = attr.ib( type=list, default=attr.Factory(list), - metadata=dict( - help="List of platform tags supported by this environment."), + metadata=dict(help="List of platform tags supported by this environment."), repr=False, ) @@ -1637,8 +1620,7 @@ class PypiSimpleRepository: fetched_package_normalized_names = attr.ib( type=set, default=attr.Factory(set), - metadata=dict( - help="A set of already fetched package normalized names."), + metadata=dict(help="A set of already fetched package normalized names."), ) use_cached_index = attr.ib( @@ -1671,12 +1653,10 @@ def _get_package_versions_map(self, name): self.packages[normalized_name] = versions except RemoteNotFetchedException as e: if TRACE: - print( - f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") + print(f"failed to fetch package name: {name} from: {self.index_url}:\n{e}") if not versions and TRACE: - print( - f"WARNING: package {name} not found in repo: {self.index_url}") + print(f"WARNING: package {name} not found in repo: {self.index_url}") return versions @@ -1861,8 +1841,7 @@ def get(self, path_or_url, as_text=True, force=False): if force or not os.path.exists(cached): if TRACE_DEEP: print(f" FILE CACHE MISS: {path_or_url}") - content = get_file_content( - path_or_url=path_or_url, as_text=as_text) + content = get_file_content(path_or_url=path_or_url, as_text=as_text) wmode = "w" if as_text else "wb" with open(cached, wmode) as fo: fo.write(content) @@ -1884,8 +1863,7 @@ def get_file_content(path_or_url, as_text=True): if path_or_url.startswith("https://"): if TRACE_DEEP: print(f"Fetching: {path_or_url}") - _headers, content = get_remote_file_content( - url=path_or_url, as_text=as_text) + _headers, content = get_remote_file_content(url=path_or_url, as_text=as_text) return content elif path_or_url.startswith("file://") or ( @@ -1936,7 +1914,7 @@ def get_remote_file_content( # several redirects and that we can ignore content there. A HEAD request may # not get us this last header print(f" DOWNLOADING: {url}") - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 status = response.status_code if status != requests.codes.ok: # NOQA if status == 429 and _delay < 20: @@ -1951,8 +1929,7 @@ def get_remote_file_content( ) else: - raise RemoteNotFetchedException( - f"Failed HTTP request from {url} with {status}") + raise RemoteNotFetchedException(f"Failed HTTP request from {url} with {status}") if headers_only: return response.headers, None @@ -2043,8 +2020,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # lets try to get from another dist of the same local package @@ -2056,8 +2032,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get another version of the same package that is not our version @@ -2068,8 +2043,7 @@ def get_other_dists(_package, _dist): ] other_local_version = other_local_packages and other_local_packages[-1] if other_local_version: - latest_local_dists = list( - other_local_version.get_distributions()) + latest_local_dists = list(other_local_version.get_distributions()) for latest_local_dist in latest_local_dists: latest_local_dist.load_about_data(dest_dir=dest_dir) if not latest_local_dist.has_key_metadata(): @@ -2095,8 +2069,7 @@ def get_other_dists(_package, _dist): # if has key data we may look to improve later, but we can move on if local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir=dest_dir) - local_dist.fetch_license_files( - dest_dir=dest_dir, use_cached_index=use_cached_index) + local_dist.fetch_license_files(dest_dir=dest_dir, use_cached_index=use_cached_index) continue # try to get a latest version of the same package that is not our version @@ -2137,8 +2110,7 @@ def get_other_dists(_package, _dist): # if local_dist.has_key_metadata() or not local_dist.has_key_metadata(): local_dist.save_about_and_notice_files(dest_dir) - lic_errs = local_dist.fetch_license_files( - dest_dir, use_cached_index=use_cached_index) + lic_errs = local_dist.fetch_license_files(dest_dir, use_cached_index=use_cached_index) if not local_dist.has_key_metadata(): print(f"Unable to add essential ABOUT data for: {local_dist}") @@ -2161,10 +2133,9 @@ def call(args, verbose=TRACE): """ if TRACE_DEEP: print("Calling:", " ".join(args)) - with subprocess.Popen( # noqa: S603 + with subprocess.Popen( # noqa: S603 args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: - stdouts = [] while True: line = process.stdout.readline() @@ -2260,7 +2231,7 @@ def download_wheels_with_pip( def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") @@ -2286,8 +2257,7 @@ def find_problems( for dist in package.get_distributions(): dist.load_about_data(dest_dir=dest_dir) - abpth = os.path.abspath(os.path.join( - dest_dir, dist.about_filename)) + abpth = os.path.abspath(os.path.join(dest_dir, dist.about_filename)) if not dist.has_key_metadata(): print(f" Missing key ABOUT data in file://{abpth}") if "classifiers" in dist.extra_data: From 1189dda52570ed018f52eacd38c4990e8be8ff1a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:02:19 +0100 Subject: [PATCH 201/247] Apply cosmetic refactorings Signed-off-by: Philippe Ombredanne --- docs/source/conf.py | 3 ++- etc/scripts/check_thirdparty.py | 4 +--- etc/scripts/fetch_thirdparty.py | 17 ++++++++--------- etc/scripts/gen_pypi_simple.py | 15 +++++++-------- etc/scripts/gen_requirements.py | 4 ++-- etc/scripts/gen_requirements_dev.py | 4 ++-- .../test_utils_pip_compatibility_tags.py | 9 +++++---- etc/scripts/utils_dejacode.py | 9 +++++---- etc/scripts/utils_pip_compatibility_tags.py | 8 +++++--- etc/scripts/utils_requirements.py | 3 +-- etc/scripts/utils_thirdparty.py | 3 ++- 11 files changed, 40 insertions(+), 39 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8c88fa2..8aad829 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -94,7 +94,8 @@ html_show_sphinx = True # Define CSS and HTML abbreviations used in .rst files. These are examples. -# .. role:: is used to refer to styles defined in _static/theme_overrides.css and is used like this: :red:`text` +# .. role:: is used to refer to styles defined in _static/theme_overrides.css +# and is used like this: :red:`text` rst_prolog = """ .. |psf| replace:: Python Software Foundation diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index 1aa4e28..bb8347a 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -41,8 +40,7 @@ def check_thirdparty_dir( """ Check a thirdparty directory for problems and print these on screen. """ - # check for problems - print(f"==> CHECK FOR PROBLEMS") + print("==> CHECK FOR PROBLEMS") utils_thirdparty.find_problems( dest_dir=dest, report_missing_sources=sdists, diff --git a/etc/scripts/fetch_thirdparty.py b/etc/scripts/fetch_thirdparty.py index c224683..76a19a6 100644 --- a/etc/scripts/fetch_thirdparty.py +++ b/etc/scripts/fetch_thirdparty.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -10,7 +9,6 @@ # import itertools -import os import sys from collections import defaultdict @@ -109,7 +107,8 @@ @click.option( "--use-cached-index", is_flag=True, - help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.", + help="Use on disk cached PyPI indexes list of packages and versions and " + "do not refetch if present.", ) @click.option( "--sdist-only", @@ -261,7 +260,7 @@ def fetch_thirdparty( if not fetched: wheels_or_sdist_not_found[f"{name}=={version}"].append(environment) if TRACE: - print(f" NOT FOUND") + print(" NOT FOUND") if sdists or (f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only): if TRACE: @@ -276,17 +275,17 @@ def fetch_thirdparty( if not fetched: wheels_or_sdist_not_found[f"{name}=={version}"].append("sdist") if TRACE: - print(f" NOT FOUND") + print(" NOT FOUND") mia = [] for nv, dists in wheels_or_sdist_not_found.items(): name, _, version = nv.partition("==") if name in no_dist: continue - sdist_missing = sdists and "sdist" in dists and not name in wheel_only + sdist_missing = sdists and "sdist" in dists and name not in wheel_only if sdist_missing: mia.append(f"SDist missing: {nv} {dists}") - wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only + wheels_missing = wheels and any(d for d in dists if d != "sdist") and name not in sdist_only if wheels_missing: mia.append(f"Wheels missing: {nv} {dists}") @@ -295,12 +294,12 @@ def fetch_thirdparty( print(m) raise Exception(mia) - print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES") + print("==> FETCHING OR CREATING ABOUT AND LICENSE FILES") utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index) utils_thirdparty.clean_about_files(dest_dir=dest_dir) # check for problems - print(f"==> CHECK FOR PROBLEMS") + print("==> CHECK FOR PROBLEMS") utils_thirdparty.find_problems( dest_dir=dest_dir, report_missing_sources=sdists, diff --git a/etc/scripts/gen_pypi_simple.py b/etc/scripts/gen_pypi_simple.py index cfe68e6..89d0626 100644 --- a/etc/scripts/gen_pypi_simple.py +++ b/etc/scripts/gen_pypi_simple.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # SPDX-License-Identifier: BSD-2-Clause-Views AND MIT # Copyright (c) 2010 David Wolever . All rights reserved. @@ -132,7 +131,7 @@ def build_links_package_index(packages_by_package_name, base_url): Return an HTML document as string which is a links index of all packages """ document = [] - header = f""" + header = """ Links for all packages @@ -177,13 +176,13 @@ def simple_index_entry(self, base_url): def build_pypi_index(directory, base_url="https://thirdparty.aboutcode.org/pypi"): """ - Using a ``directory`` directory of wheels and sdists, create the a PyPI - simple directory index at ``directory``/simple/ populated with the proper - PyPI simple index directory structure crafted using symlinks. + Create the a PyPI simple directory index using a ``directory`` directory of wheels and sdists in + the direvctory at ``directory``/simple/ populated with the proper PyPI simple index directory + structure crafted using symlinks. - WARNING: The ``directory``/simple/ directory is removed if it exists. - NOTE: in addition to the a PyPI simple index.html there is also a links.html - index file generated which is suitable to use with pip's --find-links + WARNING: The ``directory``/simple/ directory is removed if it exists. NOTE: in addition to the a + PyPI simple index.html there is also a links.html index file generated which is suitable to use + with pip's --find-links """ directory = Path(directory) diff --git a/etc/scripts/gen_requirements.py b/etc/scripts/gen_requirements.py index 2b65ae8..1b87944 100644 --- a/etc/scripts/gen_requirements.py +++ b/etc/scripts/gen_requirements.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -34,7 +33,8 @@ def gen_requirements(): type=pathlib.Path, required=True, metavar="DIR", - help="Path to the 'site-packages' directory where wheels are installed such as lib/python3.6/site-packages", + help="Path to the 'site-packages' directory where wheels are installed " + "such as lib/python3.12/site-packages", ) parser.add_argument( "-r", diff --git a/etc/scripts/gen_requirements_dev.py b/etc/scripts/gen_requirements_dev.py index 5db1c48..8548205 100644 --- a/etc/scripts/gen_requirements_dev.py +++ b/etc/scripts/gen_requirements_dev.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -36,7 +35,8 @@ def gen_dev_requirements(): type=pathlib.Path, required=True, metavar="DIR", - help='Path to the "site-packages" directory where wheels are installed such as lib/python3.6/site-packages', + help="Path to the 'site-packages' directory where wheels are installed " + "such as lib/python3.12/site-packages", ) parser.add_argument( "-d", diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index a33b8b3..de4b706 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -1,4 +1,5 @@ -"""Generate and work with PEP 425 Compatibility Tags. +""" +Generate and work with PEP 425 Compatibility Tags. copied from pip-20.3.1 pip/tests/unit/test_utils_compatibility_tags.py download_url: https://raw.githubusercontent.com/pypa/pip/20.3.1/tests/unit/test_utils_compatibility_tags.py @@ -50,7 +51,7 @@ def test_version_info_to_nodot(version_info, expected): assert actual == expected -class Testcompatibility_tags(object): +class Testcompatibility_tags: def mock_get_config_var(self, **kwd): """ Patch sysconfig.get_config_var for arbitrary keys. @@ -81,7 +82,7 @@ def test_no_hyphen_tag(self): assert "-" not in tag.platform -class TestManylinux2010Tags(object): +class TestManylinux2010Tags: @pytest.mark.parametrize( "manylinux2010,manylinux1", [ @@ -104,7 +105,7 @@ def test_manylinux2010_implies_manylinux1(self, manylinux2010, manylinux1): assert arches[:2] == [manylinux2010, manylinux1] -class TestManylinux2014Tags(object): +class TestManylinux2014Tags: @pytest.mark.parametrize( "manylinuxA,manylinuxB", [ diff --git a/etc/scripts/utils_dejacode.py b/etc/scripts/utils_dejacode.py index cd39cda..b6bff51 100644 --- a/etc/scripts/utils_dejacode.py +++ b/etc/scripts/utils_dejacode.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -25,7 +24,7 @@ DEJACODE_API_URL_PACKAGES = f"{DEJACODE_API_URL}packages/" DEJACODE_API_HEADERS = { - "Authorization": "Token {}".format(DEJACODE_API_KEY), + "Authorization": f"Token {DEJACODE_API_KEY}", "Accept": "application/json; indent=4", } @@ -50,6 +49,7 @@ def fetch_dejacode_packages(params): DEJACODE_API_URL_PACKAGES, params=params, headers=DEJACODE_API_HEADERS, + timeout=10, ) return response.json()["results"] @@ -93,7 +93,7 @@ def update_with_dejacode_about_data(distribution): if package_data: package_api_url = package_data["api_url"] about_url = f"{package_api_url}about" - response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + response = requests.get(about_url, headers=DEJACODE_API_HEADERS, timeout=10) # note that this is YAML-formatted about_text = response.json()["about_data"] about_data = saneyaml.load(about_text) @@ -113,7 +113,7 @@ def fetch_and_save_about_files(distribution, dest_dir="thirdparty"): if package_data: package_api_url = package_data["api_url"] about_url = f"{package_api_url}about_files" - response = requests.get(about_url, headers=DEJACODE_API_HEADERS) + response = requests.get(about_url, headers=DEJACODE_API_HEADERS, timeout=10) about_zip = response.content with io.BytesIO(about_zip) as zf: with zipfile.ZipFile(zf) as zi: @@ -201,6 +201,7 @@ def create_dejacode_package(distribution): DEJACODE_API_URL_PACKAGES, data=new_package_payload, headers=DEJACODE_API_HEADERS, + timeout=10, ) new_package_data = response.json() if response.status_code != 201: diff --git a/etc/scripts/utils_pip_compatibility_tags.py b/etc/scripts/utils_pip_compatibility_tags.py index de0ac95..dd954bc 100644 --- a/etc/scripts/utils_pip_compatibility_tags.py +++ b/etc/scripts/utils_pip_compatibility_tags.py @@ -1,4 +1,5 @@ -"""Generate and work with PEP 425 Compatibility Tags. +""" +Generate and work with PEP 425 Compatibility Tags. copied from pip-20.3.1 pip/_internal/utils/compatibility_tags.py download_url: https://github.com/pypa/pip/blob/20.3.1/src/pip/_internal/utils/compatibility_tags.py @@ -130,7 +131,7 @@ def _get_custom_interpreter(implementation=None, version=None): implementation = interpreter_name() if version is None: version = interpreter_version() - return "{}{}".format(implementation, version) + return f"{implementation}{version}" def get_supported( @@ -140,7 +141,8 @@ def get_supported( abis=None, # type: Optional[List[str]] ): # type: (...) -> List[Tag] - """Return a list of supported tags for each version specified in + """ + Return a list of supported tags for each version specified in `versions`. :param version: a string version, of the form "33" or "32", diff --git a/etc/scripts/utils_requirements.py b/etc/scripts/utils_requirements.py index 167bc9f..b9b2c0e 100644 --- a/etc/scripts/utils_requirements.py +++ b/etc/scripts/utils_requirements.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -40,7 +39,7 @@ def get_required_name_versions(requirement_lines, with_unpinned=False): req_line = req_line.strip() if not req_line or req_line.startswith("#"): continue - if req_line.startswith("-") or (not with_unpinned and not "==" in req_line): + if req_line.startswith("-") or (not with_unpinned and "==" not in req_line): print(f"Requirement line is not supported: ignored: {req_line}") continue yield get_required_name_version(requirement=req_line, with_unpinned=with_unpinned) diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 4ea1bab..aafc1d6 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -91,7 +91,8 @@ - parse requirement file - create a TODO queue of requirements to process -- done: create an empty map of processed binary requirements as {package name: (list of versions/tags} +- done: create an empty map of processed binary requirements as + {package name: (list of versions/tags} - while we have package reqs in TODO queue, process one requirement: From 84257fbe200e5780cb13536a5c8eb56a88539e6a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:05:23 +0100 Subject: [PATCH 202/247] Reformat test code Signed-off-by: Philippe Ombredanne --- .gitignore | 1 + pyproject.toml | 19 +++++++++++-------- tests/test_skeleton_codestyle.py | 25 ++++++++++++++++--------- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 2d48196..8a93c94 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ tcl # Ignore Jupyter Notebook related temp files .ipynb_checkpoints/ +/.ruff_cache/ diff --git a/pyproject.toml b/pyproject.toml index ba55770..a872ab3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,16 +67,17 @@ include = [ [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ select = [ - "E", # pycodestyle - "W", # pycodestyle warnings - "D", # pydocstyle - "F", # Pyflakes - "UP", # pyupgrade - "S", # flake8-bandit +# "E", # pycodestyle +# "W", # pycodestyle warnings +# "D", # pydocstyle +# "F", # Pyflakes +# "UP", # pyupgrade +# "S", # flake8-bandit "I", # isort - "C9", # McCabe complexity +# "C9", # McCabe complexity ] -ignore = ["D1", "D200", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415"] + [tool.ruff.lint.isort] force-single-line = true @@ -100,3 +101,5 @@ max-complexity = 10 [tool.ruff.lint.per-file-ignores] # Place paths of files to be ignored by ruff here +"tests/*" = ["S101"] +"test_*.py" = ["S101"] diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index b4ce8c1..8cd85c9 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -7,30 +7,37 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import configparser import subprocess import unittest -import configparser - class BaseTests(unittest.TestCase): def test_skeleton_codestyle(self): - """ - This test shouldn't run in proliferated repositories. - """ + # This test shouldn't run in proliferated repositories. + + # TODO: update with switch to pyproject.toml setup_cfg = configparser.ConfigParser() setup_cfg.read("setup.cfg") if setup_cfg["metadata"]["name"] != "skeleton": return - args = "venv/bin/black --check -l 100 setup.py etc tests" + commands = [ + ["venv/bin/ruff", "--check"], + ["venv/bin/ruff", "format", "--check"], + ] + command = None try: - subprocess.check_output(args.split()) + for command in commands: + subprocess.check_output(command) # noqa: S603 except subprocess.CalledProcessError as e: print("===========================================================") print(e.output) print("===========================================================") raise Exception( - "Black style check failed; please format the code using:\n" - " python -m black -l 100 setup.py etc tests", + f"Code style and linting command check failed: {' '.join(command)!r}.\n" + "You can check and format the code using:\n" + " make valid\n", + "OR:\n ruff format\n", + " ruff check --fix\n", e.output, ) from e From 00684f733a0873bd837af85471814907ba93f456 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:08:25 +0100 Subject: [PATCH 203/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/check_thirdparty.py | 1 + etc/scripts/test_utils_pip_compatibility_tags.py | 1 + tests/test_skeleton_codestyle.py | 1 + 3 files changed, 3 insertions(+) diff --git a/etc/scripts/check_thirdparty.py b/etc/scripts/check_thirdparty.py index bb8347a..65ae595 100644 --- a/etc/scripts/check_thirdparty.py +++ b/etc/scripts/check_thirdparty.py @@ -11,6 +11,7 @@ import utils_thirdparty + @click.command() @click.option( "-d", diff --git a/etc/scripts/test_utils_pip_compatibility_tags.py b/etc/scripts/test_utils_pip_compatibility_tags.py index de4b706..0e9c360 100644 --- a/etc/scripts/test_utils_pip_compatibility_tags.py +++ b/etc/scripts/test_utils_pip_compatibility_tags.py @@ -33,6 +33,7 @@ import utils_pip_compatibility_tags + @pytest.mark.parametrize( "version_info, expected", [ diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index 8cd85c9..7135ac0 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -11,6 +11,7 @@ import subprocess import unittest + class BaseTests(unittest.TestCase): def test_skeleton_codestyle(self): # This test shouldn't run in proliferated repositories. From 7c4278df4e8acf04888a188d115b4c687060f1e5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:10:45 +0100 Subject: [PATCH 204/247] Refine ruff configuration Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a872ab3..0f8bd58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,11 +72,11 @@ select = [ # "D", # pydocstyle # "F", # Pyflakes # "UP", # pyupgrade -# "S", # flake8-bandit + "S", # flake8-bandit "I", # isort # "C9", # McCabe complexity ] -ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415"] +ignore = ["D1", "D200", "D202", "D203", "D205", "D212", "D400", "D415", "I001"] [tool.ruff.lint.isort] From 47cb840db13d3e7328dba8d8e62197cda82e48ec Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:54:01 +0100 Subject: [PATCH 205/247] Format doc Signed-off-by: Philippe Ombredanne --- AUTHORS.rst | 2 +- README.rst | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index 51a19cc..16e2046 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -1,3 +1,3 @@ The following organizations or individuals have contributed to this repo: -- +- diff --git a/README.rst b/README.rst index f848b4b..01d0210 100644 --- a/README.rst +++ b/README.rst @@ -1,11 +1,10 @@ A Simple Python Project Skeleton ================================ -This repo attempts to standardize the structure of the Python-based project's repositories using -modern Python packaging and configuration techniques that can then be applied to many repos. - -Using this `blog post`_ as inspiration, this repository serves as the base for all new Python -projects and is mergeable in existing repositories as well. +This repo attempts to standardize the structure of the Python-based project's +repositories using modern Python packaging and configuration techniques. +Using this `blog post`_ as inspiration, this repository serves as the base for +all new Python projects and is mergeable in existing repositories as well. .. _blog post: https://blog.jaraco.com/a-project-skeleton-for-python-projects/ @@ -69,7 +68,7 @@ Release Notes - Drop support for Python 3.8 - Drop support for macOS-11, add support for macOS-14 - + - 2024-02-19: - Replace support in CI of default ubuntu-20.04 by ubuntu-22.04 @@ -86,19 +85,19 @@ Release Notes - Synchronize configure and configure.bat scripts for sanity - Update CI operating system support with latest Azure OS images - - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party dependencies - There are now fewer scripts. See etc/scripts/README.rst for details + - Streamline utility scripts in etc/scripts/ to create, fetch and manage third-party + dependencies. There are now fewer scripts. See etc/scripts/README.rst for details - 2021-09-03: - - - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` and ``requirements-dev.txt`` - + - ``configure`` now requires pinned dependencies via the use of ``requirements.txt`` + and ``requirements-dev.txt`` - ``configure`` can now accept multiple options at once - Add utility scripts from scancode-toolkit/etc/release/ for use in generating project files - Rename virtual environment directory from ``tmp`` to ``venv`` - - Update README.rst with instructions for generating ``requirements.txt`` and ``requirements-dev.txt``, - as well as collecting dependencies as wheels and generating ABOUT files for them. + - Update README.rst with instructions for generating ``requirements.txt`` + and ``requirements-dev.txt``, as well as collecting dependencies as wheels and generating + ABOUT files for them. - 2021-05-11: - - - Adopt new configure scripts from ScanCode TK that allows correct configuration of which Python version is used. + - Adopt new configure scripts from ScanCode TK that allows correct configuration of which + Python version is used. From 7b29b5914a443069a7ff967eb4ef096034333248 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:54:35 +0100 Subject: [PATCH 206/247] Run doc8 on all rst files Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 930e801..debc404 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ + @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ *.rst valid: @echo "-> Run Ruff format" From 86c7ca45d3132e5f6873658ab1743b6e27cfeb58 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sat, 29 Mar 2025 22:55:20 +0100 Subject: [PATCH 207/247] Enable doc style checks Signed-off-by: Philippe Ombredanne --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0f8bd58..51761ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,8 @@ include = [ "etc/**/*.py", "test/**/*.py", "doc/**/*", - "*.py" + "*.py", + "." ] [tool.ruff.lint] @@ -69,10 +70,10 @@ include = [ select = [ # "E", # pycodestyle # "W", # pycodestyle warnings -# "D", # pydocstyle + "D", # pydocstyle # "F", # Pyflakes # "UP", # pyupgrade - "S", # flake8-bandit +# "S", # flake8-bandit "I", # isort # "C9", # McCabe complexity ] From 71583c5ecdfe5dd352b7f2bb9d26deaad971e151 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 14:40:36 +0200 Subject: [PATCH 208/247] Do not format more test data Signed-off-by: Philippe Ombredanne --- pyproject.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 51761ff..7d807eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,10 +60,25 @@ include = [ "src/**/*.py", "etc/**/*.py", "test/**/*.py", + "tests/**/*.py", "doc/**/*", + "docs/**/*", "*.py", "." ] +# ignore test data and testfiles: they should never be linted nor formatted +exclude = [ +# main style + "**/tests/data/**/*", +# scancode-toolkit + "**/tests/*/data/**/*", +# dejacode, purldb + "**/tests/testfiles/**/*", +# vulnerablecode, fetchcode + "**/tests/*/test_data/**/*", + "**/tests/test_data/**/*", +] + [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ From 0f1a40382bdcadf82512395787faab50927256f6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 14:58:36 +0200 Subject: [PATCH 209/247] Do not treat rst as Python Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7d807eb..5e16b56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,8 +61,8 @@ include = [ "etc/**/*.py", "test/**/*.py", "tests/**/*.py", - "doc/**/*", - "docs/**/*", + "doc/**/*.py", + "docs/**/*.py", "*.py", "." ] From 6bea6577864bf432438dabaed9e46a721aae2961 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 16:41:57 +0200 Subject: [PATCH 210/247] Combine testing and docs extra for simplicity Signed-off-by: Philippe Ombredanne --- configure | 2 -- configure.bat | 4 ---- setup.cfg | 3 --- 3 files changed, 9 deletions(-) diff --git a/configure b/configure index 22d9288..83fd203 100755 --- a/configure +++ b/configure @@ -30,7 +30,6 @@ CLI_ARGS=$1 # Requirement arguments passed to pip and used by default or with --dev. REQUIREMENTS="--editable . --constraint requirements.txt" DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" -DOCS_REQUIREMENTS="--editable .[docs] --constraint requirements.txt" # where we create a virtualenv VIRTUALENV_DIR=venv @@ -185,7 +184,6 @@ while getopts :-: optchar; do help ) cli_help;; clean ) find_python && clean;; dev ) CFG_REQUIREMENTS="$DEV_REQUIREMENTS";; - docs ) CFG_REQUIREMENTS="$DOCS_REQUIREMENTS";; esac;; esac done diff --git a/configure.bat b/configure.bat index 5b9a9d6..18b3703 100644 --- a/configure.bat +++ b/configure.bat @@ -28,7 +28,6 @@ @rem # Requirement arguments passed to pip and used by default or with --dev. set "REQUIREMENTS=--editable . --constraint requirements.txt" set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" -set "DOCS_REQUIREMENTS=--editable .[docs] --constraint requirements.txt" @rem # where we create a virtualenv set "VIRTUALENV_DIR=venv" @@ -76,9 +75,6 @@ if not "%1" == "" ( if "%1" EQU "--dev" ( set "CFG_REQUIREMENTS=%DEV_REQUIREMENTS%" ) - if "%1" EQU "--docs" ( - set "CFG_REQUIREMENTS=%DOCS_REQUIREMENTS%" - ) shift goto again ) diff --git a/setup.cfg b/setup.cfg index aaec643..ad8e0d8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -55,8 +55,6 @@ testing = pycodestyle >= 2.8.0 twine ruff - -docs = Sphinx>=5.0.2 sphinx-rtd-theme>=1.0.0 sphinx-reredirects >= 0.1.2 @@ -64,4 +62,3 @@ docs = sphinx-autobuild sphinx-rtd-dark-mode>=1.3.0 sphinx-copybutton - From c615589b54bfac74b6f17b2233b2afe60bf1d0f6 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 17:18:19 +0200 Subject: [PATCH 211/247] Refine checking of docs with doc8 Signed-off-by: Philippe Ombredanne --- Makefile | 2 +- pyproject.toml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index debc404..d21a2f9 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/ *.rst + @${ACTIVATE} doc8 docs/ *.rst valid: @echo "-> Run Ruff format" diff --git a/pyproject.toml b/pyproject.toml index 5e16b56..bfb1d35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -119,3 +119,10 @@ max-complexity = 10 # Place paths of files to be ignored by ruff here "tests/*" = ["S101"] "test_*.py" = ["S101"] + + +[tool.doc8] + +ignore-path = ["docs/build", "doc/build", "docs/_build", "doc/_build"] +max-line-length=100 +verbose=0 From 04e0a89a3bbf5359f27b6e3ef9a5026638e63de8 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 18:41:00 +0200 Subject: [PATCH 212/247] Refine doc handling * remove CI scripts and use Makefile targets instead * ensure doc8 runs quiet * add new docs-check make target to run documentation and links checks * update oudated doc for docs contribution Signed-off-by: Philippe Ombredanne --- .github/workflows/docs-ci.yml | 12 +++++------- Makefile | 10 +++++++--- docs/scripts/doc8_style_check.sh | 5 ----- docs/scripts/sphinx_build_link_check.sh | 5 ----- docs/source/conf.py | 2 +- docs/source/contribute/contrib_doc.rst | 8 ++++---- pyproject.toml | 2 -- 7 files changed, 17 insertions(+), 27 deletions(-) delete mode 100755 docs/scripts/doc8_style_check.sh delete mode 100644 docs/scripts/sphinx_build_link_check.sh diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 621de4b..10ba5fa 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -21,14 +21,12 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install Dependencies - run: pip install -e .[docs] + run: ./configure --dev - - name: Check Sphinx Documentation build minimally - working-directory: ./docs - run: sphinx-build -E -W source build + - name: Check documentation and HTML for errors and dead links + run: make docs-check - - name: Check for documentation style errors - working-directory: ./docs - run: ./scripts/doc8_style_check.sh + - name: Check documentation for style errors + run: make doc8 diff --git a/Makefile b/Makefile index d21a2f9..413399e 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev: doc8: @echo "-> Run doc8 validation" - @${ACTIVATE} doc8 docs/ *.rst + @${ACTIVATE} doc8 --quiet docs/ *.rst valid: @echo "-> Run Ruff format" @@ -46,6 +46,10 @@ test: docs: rm -rf docs/_build/ - @${ACTIVATE} sphinx-build docs/ docs/_build/ + @${ACTIVATE} sphinx-build docs/source docs/_build/ -.PHONY: conf dev check valid clean test docs +docs-check: + @${ACTIVATE} sphinx-build -E -W -b html docs/source docs/_build/ + @${ACTIVATE} sphinx-build -E -W -b linkcheck docs/source docs/_build/ + +.PHONY: conf dev check valid clean test docs docs-check diff --git a/docs/scripts/doc8_style_check.sh b/docs/scripts/doc8_style_check.sh deleted file mode 100755 index 9416323..0000000 --- a/docs/scripts/doc8_style_check.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# halt script on error -set -e -# Check for Style Code Violations -doc8 --max-line-length 100 source --ignore D000 --quiet \ No newline at end of file diff --git a/docs/scripts/sphinx_build_link_check.sh b/docs/scripts/sphinx_build_link_check.sh deleted file mode 100644 index c542686..0000000 --- a/docs/scripts/sphinx_build_link_check.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# halt script on error -set -e -# Build locally, and then check links -sphinx-build -E -W -b linkcheck source build \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 8aad829..056ca6e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,7 +18,7 @@ # -- Project information ----------------------------------------------------- project = "nexb-skeleton" -copyright = "nexB Inc. and others." +copyright = "nexB Inc., AboutCode and others." author = "AboutCode.org authors and contributors" diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index 5640db2..041b358 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -147,7 +147,7 @@ What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. +Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. What is checked: @@ -169,11 +169,11 @@ What is checked: Interspinx ---------- -ScanCode toolkit documentation uses `Intersphinx `_ +ScanCode toolkit documentation uses `Intersphinx `_ to link to other Sphinx Documentations, to maintain links to other Aboutcode Projects. To link sections in the same documentation, standart reST labels are used. Refer -`Cross-Referencing `_ for more information. +`Cross-Referencing `_ for more information. For example:: @@ -230,7 +230,7 @@ Style Conventions for the Documentaion 1. Headings - (`Refer `_) + (`Refer `_) Normally, there are no heading levels assigned to certain characters as the structure is determined from the succession of headings. However, this convention is used in Python’s Style Guide for documenting which you may follow: diff --git a/pyproject.toml b/pyproject.toml index bfb1d35..c9e6772 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,7 +122,5 @@ max-complexity = 10 [tool.doc8] - ignore-path = ["docs/build", "doc/build", "docs/_build", "doc/_build"] max-line-length=100 -verbose=0 From 8897cc63eb9ef9b06a1fdc77ebfe21289c69961b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 18:49:01 +0200 Subject: [PATCH 213/247] Add twine check to release publication Signed-off-by: Philippe Ombredanne --- .github/workflows/pypi-release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index a66c9c8..cf0579a 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -30,12 +30,15 @@ jobs: with: python-version: 3.12 - - name: Install pypa/build - run: python -m pip install build --user + - name: Install pypa/build and twine + run: python -m pip install --user build twine - name: Build a binary wheel and a source tarball run: python -m build --sdist --wheel --outdir dist/ + - name: Validate wheel and sdis for Pypi + run: python -m twine check dist/* + - name: Upload built archives uses: actions/upload-artifact@v4 with: From 3d42985990860188c5fbf9f64f3fd4d14c590a65 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 30 Mar 2025 19:16:31 +0200 Subject: [PATCH 214/247] Refine doc contribution docs Signed-off-by: Philippe Ombredanne --- docs/source/contribute/contrib_doc.rst | 119 ++++++++----------------- 1 file changed, 38 insertions(+), 81 deletions(-) diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index 041b358..dee9296 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -8,109 +8,59 @@ Contributing to the Documentation Setup Local Build ----------------- -To get started, create or identify a working directory on your local machine. +To get started, check out and configure the repository for development:: -Open that directory and execute the following command in a terminal session:: + git clone https://github.com/aboutcode-org/.git - git clone https://github.com/aboutcode-org/skeleton.git + cd your-repo + ./configure --dev -That will create an ``/skeleton`` directory in your working directory. -Now you can install the dependencies in a virtualenv:: - - cd skeleton - ./configure --docs +(Or use "make dev") .. note:: - In case of windows, run ``configure --docs`` instead of this. - -Now, this will install the following prerequisites: - -- Sphinx -- sphinx_rtd_theme (the format theme used by ReadTheDocs) -- docs8 (style linter) + In case of windows, run ``configure --dev``. -These requirements are already present in setup.cfg and `./configure --docs` installs them. +This will install and configure all requirements foer development including for docs development. -Now you can build the HTML documents locally:: +Now you can build the HTML documentation locally:: source venv/bin/activate - cd docs - make html - -Assuming that your Sphinx installation was successful, Sphinx should build a local instance of the -documentation .html files:: - - open build/html/index.html - -.. note:: - - In case this command did not work, for example on Ubuntu 18.04 you may get a message like “Couldn’t - get a file descriptor referring to the console”, try: - - :: - - see build/html/index.html + make docs -You now have a local build of the AboutCode documents. +This will build a local instance of the ``docs/_build`` directory:: -.. _contrib_doc_share_improvements: + open docs/_build/index.html -Share Document Improvements ---------------------------- - -Ensure that you have the latest files:: - - git pull - git status -Before commiting changes run Continious Integration Scripts locally to run tests. Refer -:ref:`doc_ci` for instructions on the same. +To validate the documentation style and content, use:: -Follow standard git procedures to upload your new and modified files. The following commands are -examples:: - - git status - git add source/index.rst - git add source/how-to-scan.rst - git status - git commit -m "New how-to document that explains how to scan" - git status - git push - git status - -The Scancode-Toolkit webhook with ReadTheDocs should rebuild the documentation after your -Pull Request is Merged. + source venv/bin/activate + make doc8 + make docs-check -Refer the `Pro Git Book `_ available online for Git tutorials -covering more complex topics on Branching, Merging, Rebasing etc. .. _doc_ci: Continuous Integration ---------------------- -The documentations are checked on every new commit through Travis-CI, so that common errors are -avoided and documentation standards are enforced. Travis-CI presently checks for these 3 aspects -of the documentation : +The documentations are checked on every new commit, so that common errors are avoided and +documentation standards are enforced. We checks for these aspects of the documentation: 1. Successful Builds (By using ``sphinx-build``) -2. No Broken Links (By Using ``link-check``) -3. Linting Errors (By Using ``Doc8``) +2. No Broken Links (By Using ``linkcheck``) +3. Linting Errors (By Using ``doc8``) -So run these scripts at your local system before creating a Pull Request:: +You myst run these scripts locally before creating a pull request:: - cd docs - ./scripts/sphinx_build_link_check.sh - ./scripts/doc8_style_check.sh + make doc8 + make check-docs -If you don't have permission to run the scripts, run:: - - chmod u+x ./scripts/doc8_style_check.sh .. _doc_style_docs8: -Style Checks Using ``Doc8`` +Style Checks Using ``doc8`` --------------------------- How To Run Style Tests @@ -118,8 +68,7 @@ How To Run Style Tests In the project root, run the following commands:: - $ cd docs - $ ./scripts/doc8_style_check.sh + make doc8 A sample output is:: @@ -143,11 +92,13 @@ A sample output is:: Now fix the errors and run again till there isn't any style error in the documentation. + What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. +Doc8 is a sub-project of the same Organization. Refer this +`README `_ for more details. What is checked: @@ -164,16 +115,19 @@ What is checked: - no carriage returns (use UNIX newlines) - D004 - no newline at end of file - D005 + .. _doc_interspinx: Interspinx ---------- -ScanCode toolkit documentation uses `Intersphinx `_ +AboutCode documentation uses +`Intersphinx `_ to link to other Sphinx Documentations, to maintain links to other Aboutcode Projects. To link sections in the same documentation, standart reST labels are used. Refer -`Cross-Referencing `_ for more information. +`Cross-Referencing `_ +for more information. For example:: @@ -223,6 +177,7 @@ Intersphinx, and you link to that label, it will create a link to the local labe For more information, refer this tutorial named `Using Intersphinx `_. + .. _doc_style_conv: Style Conventions for the Documentaion @@ -303,12 +258,14 @@ Style Conventions for the Documentaion ``rst_snippets/warning_snippets/`` and then included to eliminate redundancy, as these are frequently used in multiple files. + Converting from Markdown ------------------------ -If you want to convert a ``.md`` file to a ``.rst`` file, this `tool `_ -does it pretty well. You'd still have to clean up and check for errors as this contains a lot of -bugs. But this is definitely better than converting everything by yourself. +If you want to convert a ``.md`` file to a ``.rst`` file, this +`tool `_ does it pretty well. +You will still have to clean up and check for errors as this contains a lot of bugs. But this is +definitely better than converting everything by yourself. This will be helpful in converting GitHub wiki's (Markdown Files) to reStructuredtext files for Sphinx/ReadTheDocs hosting. From f428366859a143add93160bd0b1ae685be89fcbb Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 31 Mar 2025 13:35:36 -0700 Subject: [PATCH 215/247] Update codestyle command * Remove trailing whitespace Signed-off-by: Jono Yang --- docs/source/contribute/contrib_doc.rst | 4 ++-- tests/test_skeleton_codestyle.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index dee9296..2a719a5 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -97,7 +97,7 @@ What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this +Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. What is checked: @@ -263,7 +263,7 @@ Converting from Markdown ------------------------ If you want to convert a ``.md`` file to a ``.rst`` file, this -`tool `_ does it pretty well. +`tool `_ does it pretty well. You will still have to clean up and check for errors as this contains a lot of bugs. But this is definitely better than converting everything by yourself. diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py index 7135ac0..6060c08 100644 --- a/tests/test_skeleton_codestyle.py +++ b/tests/test_skeleton_codestyle.py @@ -23,7 +23,7 @@ def test_skeleton_codestyle(self): return commands = [ - ["venv/bin/ruff", "--check"], + ["venv/bin/ruff", "check"], ["venv/bin/ruff", "format", "--check"], ] command = None From f0d0e21d5e6f98645b02ff9a8fee6ee3def1be75 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 31 Mar 2025 13:44:30 -0700 Subject: [PATCH 216/247] Update README.rst Signed-off-by: Jono Yang --- README.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.rst b/README.rst index 01d0210..11a4dfb 100644 --- a/README.rst +++ b/README.rst @@ -44,6 +44,10 @@ More usage instructions can be found in ``docs/skeleton-usage.rst``. Release Notes ============= +- 2025-03-31: + + - Use ruff as the main code formatting tool, add ruff rules to pyproject.toml + - 2025-03-29: - Add support for beta macOS-15 From f3a8aa6cee5f645a668750ab7e6bf0cdc774e041 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Mon, 31 Mar 2025 14:31:37 -0700 Subject: [PATCH 217/247] Update BUILDDIR envvar in docs/Makefile Signed-off-by: Jono Yang --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 788b039..94f686b 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -7,7 +7,7 @@ SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SPHINXAUTOBUILD = sphinx-autobuild SOURCEDIR = source -BUILDDIR = build +BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: From 5b0f4d6b4079719caa9ed97efb2ba776bc2bbac1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 1 Apr 2025 14:42:52 +0200 Subject: [PATCH 218/247] Fix doc line length Signed-off-by: Philippe Ombredanne --- docs/source/contribute/contrib_doc.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/contribute/contrib_doc.rst b/docs/source/contribute/contrib_doc.rst index dee9296..2a719a5 100644 --- a/docs/source/contribute/contrib_doc.rst +++ b/docs/source/contribute/contrib_doc.rst @@ -97,7 +97,7 @@ What is Checked? ^^^^^^^^^^^^^^^^ PyCQA is an Organization for code quality tools (and plugins) for the Python programming language. -Doc8 is a sub-project of the same Organization. Refer this +Doc8 is a sub-project of the same Organization. Refer this `README `_ for more details. What is checked: @@ -263,7 +263,7 @@ Converting from Markdown ------------------------ If you want to convert a ``.md`` file to a ``.rst`` file, this -`tool `_ does it pretty well. +`tool `_ does it pretty well. You will still have to clean up and check for errors as this contains a lot of bugs. But this is definitely better than converting everything by yourself. From e776fef5ad595378752d39425109a4cbd2cb5175 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 1 Apr 2025 14:49:40 +0200 Subject: [PATCH 219/247] Format code Signed-off-by: Philippe Ombredanne --- etc/scripts/update_skeleton.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/etc/scripts/update_skeleton.py b/etc/scripts/update_skeleton.py index 5705fc4..374c06f 100644 --- a/etc/scripts/update_skeleton.py +++ b/etc/scripts/update_skeleton.py @@ -15,7 +15,7 @@ import click -ABOUTCODE_PUBLIC_REPO_NAMES=[ +ABOUTCODE_PUBLIC_REPO_NAMES = [ "aboutcode-toolkit", "ahocode", "bitcode", @@ -87,7 +87,9 @@ def update_skeleton_files(repo_names=ABOUTCODE_PUBLIC_REPO_NAMES): os.chdir(work_dir_path / repo_name) # Add skeleton as an origin - subprocess.run(["git", "remote", "add", "skeleton", "git@github.com:aboutcode-org/skeleton.git"]) + subprocess.run( + ["git", "remote", "add", "skeleton", "git@github.com:aboutcode-org/skeleton.git"] + ) # Fetch skeleton files subprocess.run(["git", "fetch", "skeleton"]) From 2a43f4cdc8105473b279eea873db00addaa14551 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 1 Apr 2025 14:59:05 +0200 Subject: [PATCH 220/247] Correct supported runner on Azure See for details: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml macOS ARM images do not seem to be supported there Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 80ae45b..fb03c09 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,14 +26,6 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos13_cpython - image_name: macOS-13-xlarge - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos13_cpython_arm64 image_name: macOS-13 python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: @@ -42,14 +34,6 @@ jobs: - template: etc/ci/azure-posix.yml parameters: job_name: macos14_cpython - image_name: macOS-14-large - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos14_cpython_arm64 image_name: macOS-14 python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: @@ -63,14 +47,6 @@ jobs: test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-posix.yml - parameters: - job_name: macos15_cpython_arm64 - image_name: macOS-15-large - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] - test_suites: - all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-win.yml parameters: job_name: win2019_cpython From 4a15550b7bcea5ec949a5049fe1a501d3bb888ff Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 1 Apr 2025 19:34:14 +0200 Subject: [PATCH 221/247] Add code checks to CI Remove running "make check" as a test Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 8 ++++++ tests/test_skeleton_codestyle.py | 44 -------------------------------- 2 files changed, 8 insertions(+), 44 deletions(-) delete mode 100644 tests/test_skeleton_codestyle.py diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fb03c09..ad18b28 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,6 +7,14 @@ jobs: + - template: etc/ci/azure-posix.yml + parameters: + job_name: run_code_checks + image_name: ubuntu-24.04 + python_versions: ['3.12'] + test_suites: + all: make check + - template: etc/ci/azure-posix.yml parameters: job_name: ubuntu22_cpython diff --git a/tests/test_skeleton_codestyle.py b/tests/test_skeleton_codestyle.py deleted file mode 100644 index 6060c08..0000000 --- a/tests/test_skeleton_codestyle.py +++ /dev/null @@ -1,44 +0,0 @@ -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/aboutcode-org/skeleton for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# - -import configparser -import subprocess -import unittest - - -class BaseTests(unittest.TestCase): - def test_skeleton_codestyle(self): - # This test shouldn't run in proliferated repositories. - - # TODO: update with switch to pyproject.toml - setup_cfg = configparser.ConfigParser() - setup_cfg.read("setup.cfg") - if setup_cfg["metadata"]["name"] != "skeleton": - return - - commands = [ - ["venv/bin/ruff", "check"], - ["venv/bin/ruff", "format", "--check"], - ] - command = None - try: - for command in commands: - subprocess.check_output(command) # noqa: S603 - except subprocess.CalledProcessError as e: - print("===========================================================") - print(e.output) - print("===========================================================") - raise Exception( - f"Code style and linting command check failed: {' '.join(command)!r}.\n" - "You can check and format the code using:\n" - " make valid\n", - "OR:\n ruff format\n", - " ruff check --fix\n", - e.output, - ) from e From b2d7512735ca257088d2cac4b55590fc5d7b20b4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 1 Apr 2025 20:15:18 +0200 Subject: [PATCH 222/247] Revert support for Python 3.13 This is not yet supported everywhere Signed-off-by: Philippe Ombredanne --- azure-pipelines.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ad18b28..7a2d4d9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ jobs: parameters: job_name: ubuntu22_cpython image_name: ubuntu-22.04 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +27,7 @@ jobs: parameters: job_name: ubuntu24_cpython image_name: ubuntu-24.04 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos13_cpython image_name: macOS-13 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +43,7 @@ jobs: parameters: job_name: macos14_cpython image_name: macOS-14 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,7 +51,7 @@ jobs: parameters: job_name: macos15_cpython image_name: macOS-15 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -59,7 +59,7 @@ jobs: parameters: job_name: win2019_cpython image_name: windows-2019 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -67,7 +67,7 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -75,6 +75,6 @@ jobs: parameters: job_name: win2025_cpython image_name: windows-2025 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.9', '3.10', '3.11', '3.12'] test_suites: all: venv\Scripts\pytest -n 2 -vvs From 2e3464b79811bcf505d93692da2418e2444150ed Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 16:52:32 +0200 Subject: [PATCH 223/247] Ignore local .env file Signed-off-by: Philippe Ombredanne --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8a93c94..4818bb3 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ tcl # Ignore Jupyter Notebook related temp files .ipynb_checkpoints/ /.ruff_cache/ +.env \ No newline at end of file From d4af79f0da82ab0d16dcf60b363a6a5290cd9403 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 16:54:29 +0200 Subject: [PATCH 224/247] Add correct extras for documentation Signed-off-by: Philippe Ombredanne --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 8ab2368..7e399c8 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -26,4 +26,4 @@ python: - method: pip path: . extra_requirements: - - docs + - testing From 49bfd37c7273f2118d35585c67e53f0cf7642f43 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 16:58:37 +0200 Subject: [PATCH 225/247] Improve MANIFEST Signed-off-by: Philippe Ombredanne --- MANIFEST.in | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index ef3721e..0f19707 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,6 @@ graft src +graft docs +graft etc include *.LICENSE include NOTICE @@ -6,10 +8,18 @@ include *.ABOUT include *.toml include *.yml include *.rst +include *.png include setup.* include configure* include requirements* -include .git* +include .dockerignore +include .gitignore +include .readthedocs.yml +include manage.py +include Dockerfile* +include Makefile +include MANIFEST.in -global-exclude *.py[co] __pycache__ *.*~ +include .VERSION +global-exclude *.py[co] __pycache__ *.*~ From 5bc987a16cb3ae0f6de101a9c9e277df431f4317 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 17:12:58 +0200 Subject: [PATCH 226/247] Improve cleaning on POSIX Signed-off-by: Philippe Ombredanne --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 83fd203..3dd9a0a 100755 --- a/configure +++ b/configure @@ -35,7 +35,7 @@ DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constrai VIRTUALENV_DIR=venv # Cleanable files and directories to delete with the --clean option -CLEANABLE="build dist venv .cache .eggs" +CLEANABLE="build dist venv .cache .eggs *.egg-info docs/_build/ pip-selfcheck.json" # extra arguments passed to pip PIP_EXTRA_ARGS=" " @@ -167,6 +167,7 @@ clean() { for cln in $CLEANABLE; do rm -rf "${CFG_ROOT_DIR:?}/${cln:?}"; done + find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete set +e exit } From 887779a9bd36650ffc6751f0069b492e80dd2f08 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 17:19:44 +0200 Subject: [PATCH 227/247] Rename dev extra to "dev" Instead of testing ... and update references accordingly Signed-off-by: Philippe Ombredanne --- .readthedocs.yml | 2 +- Makefile | 7 ++++++- configure | 2 +- configure.bat | 2 +- setup.cfg | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 7e399c8..683f3a8 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -26,4 +26,4 @@ python: - method: pip path: . extra_requirements: - - testing + - dev diff --git a/Makefile b/Makefile index 413399e..3041547 100644 --- a/Makefile +++ b/Makefile @@ -13,8 +13,13 @@ PYTHON_EXE?=python3 VENV=venv ACTIVATE?=. ${VENV}/bin/activate; + +conf: + @echo "-> Install dependencies" + ./configure + dev: - @echo "-> Configure the development envt." + @echo "-> Configure and install development dependencies" ./configure --dev doc8: diff --git a/configure b/configure index 3dd9a0a..5ef0e06 100755 --- a/configure +++ b/configure @@ -29,7 +29,7 @@ CLI_ARGS=$1 # Requirement arguments passed to pip and used by default or with --dev. REQUIREMENTS="--editable . --constraint requirements.txt" -DEV_REQUIREMENTS="--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" +DEV_REQUIREMENTS="--editable .[dev] --constraint requirements.txt --constraint requirements-dev.txt" # where we create a virtualenv VIRTUALENV_DIR=venv diff --git a/configure.bat b/configure.bat index 18b3703..3e9881f 100644 --- a/configure.bat +++ b/configure.bat @@ -27,7 +27,7 @@ @rem # Requirement arguments passed to pip and used by default or with --dev. set "REQUIREMENTS=--editable . --constraint requirements.txt" -set "DEV_REQUIREMENTS=--editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt" +set "DEV_REQUIREMENTS=--editable .[dev] --constraint requirements.txt --constraint requirements-dev.txt" @rem # where we create a virtualenv set "VIRTUALENV_DIR=venv" diff --git a/setup.cfg b/setup.cfg index ad8e0d8..99ba260 100644 --- a/setup.cfg +++ b/setup.cfg @@ -48,7 +48,7 @@ where = src [options.extras_require] -testing = +dev = pytest >= 6, != 7.0.0 pytest-xdist >= 2 aboutcode-toolkit >= 7.0.2 From 209231f0d27de0b0cfcc51eeb0fbaf9393d3df1c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 17:50:44 +0200 Subject: [PATCH 228/247] Add more excludes from tests Signed-off-by: Philippe Ombredanne --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c9e6772..bcca1a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,6 @@ norecursedirs = [ "dist", "build", "_build", - "dist", "etc", "local", "ci", @@ -34,7 +33,9 @@ norecursedirs = [ "thirdparty", "tmp", "venv", + ".venv", "tests/data", + "*/tests/test_data", ".eggs", "src/*/data", "tests/*/data" From 47bce2da33db6b3ce3bb16831ddca89a65494e23 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 17:54:23 +0200 Subject: [PATCH 229/247] Do not lint django migrations Signed-off-by: Philippe Ombredanne --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bcca1a8..d79574e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,6 +66,7 @@ include = [ "docs/**/*.py", "*.py", "." + ] # ignore test data and testfiles: they should never be linted nor formatted exclude = [ @@ -78,9 +79,10 @@ exclude = [ # vulnerablecode, fetchcode "**/tests/*/test_data/**/*", "**/tests/test_data/**/*", +# django migrations + "**/migrations/**/*" ] - [tool.ruff.lint] # Rules: https://docs.astral.sh/ruff/rules/ select = [ From 5025cfb59f0555bf4b40cd75e75ce41188e19e11 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 17:58:07 +0200 Subject: [PATCH 230/247] Add README.rst to list of "license files" Signed-off-by: Philippe Ombredanne --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 99ba260..e5b56da 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,6 +28,7 @@ license_files = AUTHORS.rst CHANGELOG.rst CODE_OF_CONDUCT.rst + README.rst [options] package_dir = From 548a72eac69e4400e4b01f22941d38fe1cb4648d Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 18:59:08 +0200 Subject: [PATCH 231/247] Use Python 3.9 as lowest suupported version Signed-off-by: Philippe Ombredanne --- setup.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index e5b56da..a9c5dbc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,6 +31,8 @@ license_files = README.rst [options] +python_requires = >=3.9 + package_dir = =src packages = find: @@ -39,7 +41,6 @@ zip_safe = false setup_requires = setuptools_scm[toml] >= 4 -python_requires = >=3.8 install_requires = From 3d256b4ac7976b46c23424e86bb62a38f0e4a095 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 19:01:22 +0200 Subject: [PATCH 232/247] Drop pycodestyle Not used anymore Signed-off-by: Philippe Ombredanne --- setup.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index a9c5dbc..6d0b648 100644 --- a/setup.cfg +++ b/setup.cfg @@ -54,7 +54,6 @@ dev = pytest >= 6, != 7.0.0 pytest-xdist >= 2 aboutcode-toolkit >= 7.0.2 - pycodestyle >= 2.8.0 twine ruff Sphinx>=5.0.2 From 645052974bf7e6f45c1e55a24a2acaa0cee24523 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 2 Apr 2025 19:26:17 +0200 Subject: [PATCH 233/247] Bump pytest minimal version Signed-off-by: Philippe Ombredanne --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 6d0b648..69f850c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -51,7 +51,7 @@ where = src [options.extras_require] dev = - pytest >= 6, != 7.0.0 + pytest >= 7.0.1 pytest-xdist >= 2 aboutcode-toolkit >= 7.0.2 twine From af87cfab2d06fb034a90412a87e0d4e660e214ee Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 25 Jun 2025 00:40:47 +0530 Subject: [PATCH 234/247] Update CI runners and scripts Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/docs-ci.yml | 2 +- .github/workflows/pypi-release.yml | 4 +- azure-pipelines.yml | 24 ++++-------- configure | 2 +- configure.bat | 4 +- etc/ci/azure-container-deb.yml | 2 +- etc/ci/azure-container-rpm.yml | 2 +- etc/scripts/utils_thirdparty.py | 61 +++++++++++++++--------------- 8 files changed, 46 insertions(+), 55 deletions(-) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 10ba5fa..8d8aa55 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -9,7 +9,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.12] + python-version: [3.13] steps: - name: Checkout code diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index cf0579a..7f81361 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -31,10 +31,10 @@ jobs: python-version: 3.12 - name: Install pypa/build and twine - run: python -m pip install --user build twine + run: python -m pip install --user --upgrade build twine pkginfo - name: Build a binary wheel and a source tarball - run: python -m build --sdist --wheel --outdir dist/ + run: python -m build --sdist --outdir dist/ - name: Validate wheel and sdis for Pypi run: python -m twine check dist/* diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7a2d4d9..4d347b7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,7 +11,7 @@ jobs: parameters: job_name: run_code_checks image_name: ubuntu-24.04 - python_versions: ['3.12'] + python_versions: ['3.13'] test_suites: all: make check @@ -19,7 +19,7 @@ jobs: parameters: job_name: ubuntu22_cpython image_name: ubuntu-22.04 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +27,7 @@ jobs: parameters: job_name: ubuntu24_cpython image_name: ubuntu-24.04 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos13_cpython image_name: macOS-13 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +43,7 @@ jobs: parameters: job_name: macos14_cpython image_name: macOS-14 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,23 +51,15 @@ jobs: parameters: job_name: macos15_cpython image_name: macOS-15 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv/bin/pytest -n 2 -vvs - - template: etc/ci/azure-win.yml - parameters: - job_name: win2019_cpython - image_name: windows-2019 - python_versions: ['3.9', '3.10', '3.11', '3.12'] - test_suites: - all: venv\Scripts\pytest -n 2 -vvs - - template: etc/ci/azure-win.yml parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -75,6 +67,6 @@ jobs: parameters: job_name: win2025_cpython image_name: windows-2025 - python_versions: ['3.9', '3.10', '3.11', '3.12'] + python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] test_suites: all: venv\Scripts\pytest -n 2 -vvs diff --git a/configure b/configure index 5ef0e06..6d317d4 100755 --- a/configure +++ b/configure @@ -110,7 +110,7 @@ create_virtualenv() { fi $PYTHON_EXECUTABLE "$VIRTUALENV_PYZ" \ - --wheel embed --pip embed --setuptools embed \ + --pip embed --setuptools embed \ --seeder pip \ --never-download \ --no-periodic-update \ diff --git a/configure.bat b/configure.bat index 3e9881f..15ab701 100644 --- a/configure.bat +++ b/configure.bat @@ -110,7 +110,7 @@ if not exist "%CFG_BIN_DIR%\python.exe" ( if exist "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ( %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\etc\thirdparty\virtualenv.pyz" ^ - --wheel embed --pip embed --setuptools embed ^ + --pip embed --setuptools embed ^ --seeder pip ^ --never-download ^ --no-periodic-update ^ @@ -126,7 +126,7 @@ if not exist "%CFG_BIN_DIR%\python.exe" ( ) ) %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%\%VIRTUALENV_DIR%\virtualenv.pyz" ^ - --wheel embed --pip embed --setuptools embed ^ + --pip embed --setuptools embed ^ --seeder pip ^ --never-download ^ --no-periodic-update ^ diff --git a/etc/ci/azure-container-deb.yml b/etc/ci/azure-container-deb.yml index 85b611d..d80e8df 100644 --- a/etc/ci/azure-container-deb.yml +++ b/etc/ci/azure-container-deb.yml @@ -21,7 +21,7 @@ jobs: - job: ${{ parameters.job_name }} pool: - vmImage: 'ubuntu-16.04' + vmImage: 'ubuntu-22.04' container: image: ${{ parameters.container }} diff --git a/etc/ci/azure-container-rpm.yml b/etc/ci/azure-container-rpm.yml index 1e6657d..a64138c 100644 --- a/etc/ci/azure-container-rpm.yml +++ b/etc/ci/azure-container-rpm.yml @@ -1,6 +1,6 @@ parameters: job_name: '' - image_name: 'ubuntu-16.04' + image_name: 'ubuntu-22.04' container: '' python_path: '' python_version: '' diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index aafc1d6..6f812f0 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# -*- coding: utf-8 -*- # # Copyright (c) nexB Inc. and others. All rights reserved. # ScanCode is a trademark of nexB Inc. @@ -24,13 +25,14 @@ import packageurl import requests import saneyaml -import utils_pip_compatibility_tags from commoncode import fileutils from commoncode.hash import multi_checksums from commoncode.text import python_safe_name from packvers import tags as packaging_tags from packvers import version as packaging_version +import utils_pip_compatibility_tags + """ Utilities to manage Python thirparty libraries source, binaries and metadata in local directories and remote repositories. @@ -91,8 +93,7 @@ - parse requirement file - create a TODO queue of requirements to process -- done: create an empty map of processed binary requirements as - {package name: (list of versions/tags} +- done: create an empty map of processed binary requirements as {package name: (list of versions/tags} - while we have package reqs in TODO queue, process one requirement: @@ -114,13 +115,14 @@ TRACE_ULTRA_DEEP = False # Supported environments -PYTHON_VERSIONS = "37", "38", "39", "310" +PYTHON_VERSIONS = "39", "310", "311", "312", "313" PYTHON_DOT_VERSIONS_BY_VER = { - "37": "3.7", - "38": "3.8", "39": "3.9", "310": "3.10", + "311": "3.11", + "312": "3.12", + "313": "3.13", } @@ -132,10 +134,11 @@ def get_python_dot_version(version): ABIS_BY_PYTHON_VERSION = { - "37": ["cp37", "cp37m", "abi3"], - "38": ["cp38", "cp38m", "abi3"], "39": ["cp39", "cp39m", "abi3"], "310": ["cp310", "cp310m", "abi3"], + "311": ["cp311", "cp311m", "abi3"], + "312": ["cp312", "cp312m", "abi3"], + "313": ["cp313", "cp313m", "abi3"], } PLATFORMS_BY_OS = { @@ -553,8 +556,7 @@ def download(self, dest_dir=THIRDPARTY_DIR): Download this distribution into `dest_dir` directory. Return the fetched filename. """ - if not self.filename: - raise ValueError(f"self.filename has no value but is required: {self.filename!r}") + assert self.filename if TRACE_DEEP: print( f"Fetching distribution of {self.name}=={self.version}:", @@ -822,9 +824,9 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): """ urls = LinksRepository.from_url(use_cached_index=use_cached_index).links errors = [] - extra_lic_names = [lic.get("file") for lic in self.extra_data.get("licenses", {})] + extra_lic_names = [l.get("file") for l in self.extra_data.get("licenses", {})] extra_lic_names += [self.extra_data.get("license_file")] - extra_lic_names = [eln for eln in extra_lic_names if eln] + extra_lic_names = [ln for ln in extra_lic_names if ln] lic_names = [f"{key}.LICENSE" for key in self.get_license_keys()] for filename in lic_names + extra_lic_names: floc = os.path.join(dest_dir, filename) @@ -844,7 +846,7 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from remote: {lic_url}") - except Exception: + except: try: # try licensedb second lic_url = f"{LICENSEDB_API_URL}/{filename}" @@ -857,9 +859,8 @@ def fetch_license_files(self, dest_dir=THIRDPARTY_DIR, use_cached_index=False): if TRACE: print(f"Fetched license from licensedb: {lic_url}") - except Exception: - msg = f"No text for license {filename} in expression " - f"{self.license_expression!r} from {self}" + except: + msg = f'No text for license {filename} in expression "{self.license_expression}" from {self}' print(msg) errors.append(msg) @@ -999,7 +1000,7 @@ def get_license_link_for_filename(filename, urls): exception if no link is found or if there are more than one link for that file name. """ - path_or_url = [url for url in urls if url.endswith(f"/{filename}")] + path_or_url = [l for l in urls if l.endswith(f"/{filename}")] if not path_or_url: raise Exception(f"Missing link to file: {filename}") if not len(path_or_url) == 1: @@ -1288,7 +1289,7 @@ def is_pure(self): def is_pure_wheel(filename): try: return Wheel.from_filename(filename).is_pure() - except Exception: + except: return False @@ -1484,7 +1485,8 @@ def get_distributions(self): """ if self.sdist: yield self.sdist - yield from self.wheels + for wheel in self.wheels: + yield wheel def get_url_for_filename(self, filename): """ @@ -1613,8 +1615,7 @@ class PypiSimpleRepository: type=dict, default=attr.Factory(lambda: defaultdict(dict)), metadata=dict( - help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} " - "available in this repo" + help="Mapping of {name: {version: PypiPackage, version: PypiPackage, etc} available in this repo" ), ) @@ -1628,8 +1629,7 @@ class PypiSimpleRepository: type=bool, default=False, metadata=dict( - help="If True, use any existing on-disk cached PyPI index files. " - "Otherwise, fetch and cache." + help="If True, use any existing on-disk cached PyPI index files. Otherwise, fetch and cache." ), ) @@ -1638,8 +1638,7 @@ def _get_package_versions_map(self, name): Return a mapping of all available PypiPackage version for this package name. The mapping may be empty. It is ordered by version from oldest to newest """ - if not name: - raise ValueError(f"name is required: {name!r}") + assert name normalized_name = NameVer.normalize_name(name) versions = self.packages[normalized_name] if not versions and normalized_name not in self.fetched_package_normalized_names: @@ -1694,7 +1693,7 @@ def fetch_links(self, normalized_name): ) links = collect_urls(text) # TODO: keep sha256 - links = [link.partition("#sha256=") for link in links] + links = [l.partition("#sha256=") for l in links] links = [url for url, _, _sha256 in links] return links @@ -1915,7 +1914,7 @@ def get_remote_file_content( # several redirects and that we can ignore content there. A HEAD request may # not get us this last header print(f" DOWNLOADING: {url}") - with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: # noqa: S113 + with requests.get(url, allow_redirects=True, stream=True, headers=headers) as response: status = response.status_code if status != requests.codes.ok: # NOQA if status == 429 and _delay < 20: @@ -2134,7 +2133,7 @@ def call(args, verbose=TRACE): """ if TRACE_DEEP: print("Calling:", " ".join(args)) - with subprocess.Popen( # noqa: S603 + with subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" ) as process: stdouts = [] @@ -2199,7 +2198,7 @@ def download_wheels_with_pip( cli_args.extend(["--requirement", req_file]) if TRACE: - print("Downloading wheels using command:", " ".join(cli_args)) + print(f"Downloading wheels using command:", " ".join(cli_args)) existing = set(os.listdir(dest_dir)) error = False @@ -2232,7 +2231,7 @@ def download_wheels_with_pip( def check_about(dest_dir=THIRDPARTY_DIR): try: - subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) # noqa: S603 + subprocess.check_output(f"venv/bin/about check {dest_dir}".split()) except subprocess.CalledProcessError as cpe: print() print("Invalid ABOUT files:") @@ -2283,5 +2282,5 @@ def get_license_expression(declared_licenses): return get_only_expression_from_extracted_license(declared_licenses) except ImportError: # Scancode is not installed, clean and join all the licenses - lics = [python_safe_name(lic).lower() for lic in declared_licenses] + lics = [python_safe_name(l).lower() for l in declared_licenses] return " AND ".join(lics).lower() From 72c7d266275a472073d2829a25d730ada9436ab3 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 25 Jun 2025 18:16:30 +0530 Subject: [PATCH 235/247] Add missing wheel builds on release CI Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/pypi-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 7f81361..d41fbf2 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -34,7 +34,7 @@ jobs: run: python -m pip install --user --upgrade build twine pkginfo - name: Build a binary wheel and a source tarball - run: python -m build --sdist --outdir dist/ + run: python -m build --wheel --sdist --outdir dist/ - name: Validate wheel and sdis for Pypi run: python -m twine check dist/* From 265e6121c9bf0eb331e8465a08efb2cc9a169500 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 21 Oct 2025 20:07:02 +0530 Subject: [PATCH 236/247] Drop python3.9 support and add python 3.14 Signed-off-by: Ayan Sinha Mahapatra --- azure-pipelines.yml | 14 +++++++------- etc/scripts/utils_thirdparty.py | 6 +++--- setup.cfg | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4d347b7..7230c41 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ jobs: parameters: job_name: ubuntu22_cpython image_name: ubuntu-22.04 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -27,7 +27,7 @@ jobs: parameters: job_name: ubuntu24_cpython image_name: ubuntu-24.04 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -35,7 +35,7 @@ jobs: parameters: job_name: macos13_cpython image_name: macOS-13 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -43,7 +43,7 @@ jobs: parameters: job_name: macos14_cpython image_name: macOS-14 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -51,7 +51,7 @@ jobs: parameters: job_name: macos15_cpython image_name: macOS-15 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv/bin/pytest -n 2 -vvs @@ -59,7 +59,7 @@ jobs: parameters: job_name: win2022_cpython image_name: windows-2022 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv\Scripts\pytest -n 2 -vvs @@ -67,6 +67,6 @@ jobs: parameters: job_name: win2025_cpython image_name: windows-2025 - python_versions: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python_versions: ['3.10', '3.11', '3.12', '3.13', '3.14'] test_suites: all: venv\Scripts\pytest -n 2 -vvs diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index 6f812f0..bc68ac7 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -115,14 +115,14 @@ TRACE_ULTRA_DEEP = False # Supported environments -PYTHON_VERSIONS = "39", "310", "311", "312", "313" +PYTHON_VERSIONS = "310", "311", "312", "313", "314" PYTHON_DOT_VERSIONS_BY_VER = { - "39": "3.9", "310": "3.10", "311": "3.11", "312": "3.12", "313": "3.13", + "314": "3.14", } @@ -134,11 +134,11 @@ def get_python_dot_version(version): ABIS_BY_PYTHON_VERSION = { - "39": ["cp39", "cp39m", "abi3"], "310": ["cp310", "cp310m", "abi3"], "311": ["cp311", "cp311m", "abi3"], "312": ["cp312", "cp312m", "abi3"], "313": ["cp313", "cp313m", "abi3"], + "314": ["cp314", "cp314m", "abi3"], } PLATFORMS_BY_OS = { diff --git a/setup.cfg b/setup.cfg index 69f850c..fa111c2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,7 +31,7 @@ license_files = README.rst [options] -python_requires = >=3.9 +python_requires = >=3.10 package_dir = =src From fc4fe3addd98f64684d146926d7f318a9fd469c4 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 22 Oct 2025 18:44:23 +0530 Subject: [PATCH 237/247] Support trusted-publishing for package releases Signed-off-by: Ayan Sinha Mahapatra --- .github/workflows/pypi-release.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index d41fbf2..7da0a40 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -71,6 +71,9 @@ jobs: needs: - create-gh-release runs-on: ubuntu-24.04 + environment: pypi-publish + permissions: + id-token: write steps: - name: Download built archives @@ -81,6 +84,4 @@ jobs: - name: Publish to PyPI if: startsWith(github.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@release/v1 - with: - password: ${{ secrets.PYPI_API_TOKEN }} + uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file From e81ff6d37248d93689f9947581a7a2148c96785d Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Fri, 24 Oct 2025 16:43:15 +0530 Subject: [PATCH 238/247] Update RTD build python version Signed-off-by: Ayan Sinha Mahapatra --- .readthedocs.yml | 2 +- pyproject.toml | 2 +- setup.cfg | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 683f3a8..27c1595 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -9,7 +9,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.11" + python: "3.13" # Build PDF & ePub formats: diff --git a/pyproject.toml b/pyproject.toml index d79574e..f106e69 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools >= 50", "wheel", "setuptools_scm[toml] >= 6"] +requires = ["setuptools >= 50", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] diff --git a/setup.cfg b/setup.cfg index fa111c2..a0f2985 100644 --- a/setup.cfg +++ b/setup.cfg @@ -39,9 +39,6 @@ packages = find: include_package_data = true zip_safe = false -setup_requires = setuptools_scm[toml] >= 4 - - install_requires = From d7d696c7d7371cdfc39745cad9b5466f437bfb51 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 16 Oct 2025 16:30:38 -0700 Subject: [PATCH 239/247] Add initial code Signed-off-by: Jono Yang --- setup.cfg | 8 ++- src/README.rst | 2 - src/__init__.py | 0 src/purl_validator/__init__.py | 111 +++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 5 deletions(-) delete mode 100644 src/README.rst create mode 100644 src/__init__.py create mode 100644 src/purl_validator/__init__.py diff --git a/setup.cfg b/setup.cfg index 69f850c..e4a0546 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,12 +1,12 @@ [metadata] -name = skeleton +name = purl-validator license = Apache-2.0 # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 -description = skeleton +description = purl-validator long_description = file:README.rst long_description_content_type = text/x-rst -url = https://github.com/aboutcode-org/skeleton +url = https://github.com/aboutcode-org/purl-validator author = nexB. Inc. and others author_email = info@aboutcode.org @@ -43,6 +43,8 @@ setup_requires = setuptools_scm[toml] >= 4 install_requires = + commoncode + ducer [options.packages.find] diff --git a/src/README.rst b/src/README.rst deleted file mode 100644 index ec651fc..0000000 --- a/src/README.rst +++ /dev/null @@ -1,2 +0,0 @@ -Put your Python source code (and installable data) in this directory. - diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/purl_validator/__init__.py b/src/purl_validator/__init__.py new file mode 100644 index 0000000..10f1520 --- /dev/null +++ b/src/purl_validator/__init__.py @@ -0,0 +1,111 @@ +# +# Copyright (c) nexB Inc. and others. +# SPDX-License-Identifier: Apache-2.0 +# +# Visit https://aboutcode.org and https://github.com/aboutcode-org/ for support and download. +# ScanCode is a trademark of nexB Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from pathlib import Path +import mmap + +from commoncode import fileutils +from packageurl import PackageURL +import ducer + + +PURLS = """ +pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1 +pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1?classifier=sources +pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.0 +pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.0?classifier=sources +""".split() + + +def create_purl_map(purls): + # Ensure elements of `purls` are strings: + purl_strs = [] + for purl in purls: + if not isinstance(purl, (PackageURL, str)): + raise ValueError(f"invalid purl in `purls`: {purl}") + if isinstance(purl, PackageURL): + purl_str = purl.to_string() + else: + purl_str = purl + purl_strs.append(purl_str) + + # purl strs must be sorted and converted to bytes before going into the Map + prepared_purl_strs = [(bytes(purl_str, "utf-8"), 1) for purl_str in sorted(purl_strs)] + + # create map + temp_dir = fileutils.get_temp_dir() + map_loc = Path(temp_dir) / "purls.map" + ducer.Map.build(map_loc, prepared_purl_strs) + + return map_loc + + +class PurlValidator: + def __init__(self, purl_map_loc=None): + self.created_maps = [] + + if purl_map_loc: + if not isinstance(purl_map_loc, (Path, str)): + raise ValueError("`purl_map_loc` must be a Path or path string") + if not isinstance(purl_map_loc, Path): + # Ensure purl_map_loc is a Path + purl_map_loc = Path(purl_map_loc) + else: + # Create purl map from PURLS + purl_map_loc = self.create_purl_map(purls=PURLS) + + self.purl_map = self.load_purl_map(location=purl_map_loc) + + def __del__(self): + for loc in self.created_maps: + fileutils.delete(loc.parent) + + def create_purl_map(self, purls): + purl_map_loc = create_purl_map(purls) + self.created_maps.append(purl_map_loc) + return purl_map_loc + + def load_purl_map(self, location): + with open(location, "rb") as f: + mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) + m = ducer.Map(mm) + return m + + def validate_purl(self, purl): + if not isinstance(purl, (PackageURL, str)): + raise ValueError("`purl` must be a PackageURL or purl string") + + # Ensure `purl` is a PackageURL + if isinstance(purl, str): + purl = PackageURL.from_string(purl) + + # Convert purl to bytes + purl_bytes = bytes(purl.to_string(), "utf-8") + + return bool(self.purl_map.get(purl_bytes)) + + +if __name__ == "__main__": + purl_validator = PurlValidator() + print( + purl_validator.validate_purl( + "pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1" + ) + ) From cb528d0559c2b0b4128549c395d8c06c55119b7f Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 21 Oct 2025 13:15:41 -0700 Subject: [PATCH 240/247] Add initial purl map Signed-off-by: Jono Yang --- src/purl_validator/__init__.py | 91 +++++++++++++++------------------ src/purl_validator/purls.map | Bin 0 -> 20176313 bytes 2 files changed, 42 insertions(+), 49 deletions(-) create mode 100644 src/purl_validator/purls.map diff --git a/src/purl_validator/__init__.py b/src/purl_validator/__init__.py index 10f1520..fd4cef9 100644 --- a/src/purl_validator/__init__.py +++ b/src/purl_validator/__init__.py @@ -26,50 +26,59 @@ import ducer -PURLS = """ -pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1 -pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1?classifier=sources -pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.0 -pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.0?classifier=sources -""".split() +PURL_MAP_LOCATION = Path(__file__).parent / "purls.map" + + +def check_purl(purl): + if not isinstance(purl, (PackageURL, str)): + raise ValueError(f"invalid `purl`: {purl}") + + # Ensure `purl` is a PackageURL + if isinstance(purl, str): + p = PackageURL.from_string(purl) + else: + p = purl + + return p + + +def create_purl_map_entry(purl): + p = check_purl(purl) + + # Convert purl to bytes + if p.namespace: + purl_str = f"{p.type}/{p.namespace}/{p.name}" + else: + purl_str = f"{p.type}/{p.name}" + + return bytes(purl_str, "utf-8") def create_purl_map(purls): - # Ensure elements of `purls` are strings: - purl_strs = [] - for purl in purls: - if not isinstance(purl, (PackageURL, str)): - raise ValueError(f"invalid purl in `purls`: {purl}") - if isinstance(purl, PackageURL): - purl_str = purl.to_string() - else: - purl_str = purl - purl_strs.append(purl_str) + # Ensure elements of `purls` are PackageURLs: + purls = [check_purl(purl) for purl in purls] - # purl strs must be sorted and converted to bytes before going into the Map - prepared_purl_strs = [(bytes(purl_str, "utf-8"), 1) for purl_str in sorted(purl_strs)] + # purl map entries must be unique, sorted, and converted to bytes before going into the Map + purl_map_entries = set(create_purl_map_entry(purl) for purl in purls) + prepared_purl_map_entries = sorted((purl_map_entry, 1) for purl_map_entry in purl_map_entries) # create map temp_dir = fileutils.get_temp_dir() map_loc = Path(temp_dir) / "purls.map" - ducer.Map.build(map_loc, prepared_purl_strs) + ducer.Map.build(map_loc, prepared_purl_map_entries) return map_loc class PurlValidator: - def __init__(self, purl_map_loc=None): + def __init__(self, purls=None): self.created_maps = [] - if purl_map_loc: - if not isinstance(purl_map_loc, (Path, str)): - raise ValueError("`purl_map_loc` must be a Path or path string") - if not isinstance(purl_map_loc, Path): - # Ensure purl_map_loc is a Path - purl_map_loc = Path(purl_map_loc) + if purls: + # Create purl map from list of purls + purl_map_loc = self.create_purl_map(purls=purls) else: - # Create purl map from PURLS - purl_map_loc = self.create_purl_map(purls=PURLS) + purl_map_loc = PURL_MAP_LOCATION self.purl_map = self.load_purl_map(location=purl_map_loc) @@ -82,30 +91,14 @@ def create_purl_map(self, purls): self.created_maps.append(purl_map_loc) return purl_map_loc - def load_purl_map(self, location): + @classmethod + def load_purl_map(cls, location): with open(location, "rb") as f: mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) m = ducer.Map(mm) return m def validate_purl(self, purl): - if not isinstance(purl, (PackageURL, str)): - raise ValueError("`purl` must be a PackageURL or purl string") - - # Ensure `purl` is a PackageURL - if isinstance(purl, str): - purl = PackageURL.from_string(purl) - - # Convert purl to bytes - purl_bytes = bytes(purl.to_string(), "utf-8") - - return bool(self.purl_map.get(purl_bytes)) - - -if __name__ == "__main__": - purl_validator = PurlValidator() - print( - purl_validator.validate_purl( - "pkg:maven/be.sweetmustard.vinegar/vinegar-pattern-matcher@0.1.1" - ) - ) + purl_map_entry = create_purl_map_entry(purl) + in_purl_map = bool(self.purl_map.get(purl_map_entry)) + return in_purl_map diff --git a/src/purl_validator/purls.map b/src/purl_validator/purls.map new file mode 100644 index 0000000000000000000000000000000000000000..bf2a09ac469104334dfce489c4cc034259af0804 GIT binary patch literal 20176313 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

4If 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

  • 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ℜh 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

    yDfL|UkO#Kf`OgIs0J_T{ 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�{Bkbq&?s-r7M8dIbi6^b(3VI(#U>Zu$ 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%0Dnf(H+m6_BB&cy^f20-y^)sPR^& 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

    MHZl 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

    S-4%5V-J=ek-xfK|ZuSQ78HP!x# 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�vSG-Lf*sN6BA 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

    R4e(q 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

    dBeWZOQCE0S|D&I78#x8&IrL4o`tT%5!DCj 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%0DK@H#$n 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

    pV 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

    Es{=tHY@2-*JX&sWD979io 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 z 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
    Q|a~DLoexpnSTs0dD15xvw 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

    kli^_2F$C=uFIsje#J`hA2Y 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 z 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 lB6N&)&Gc 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,Za>h5De-yq-3gslbLQd2{is;A}?%N~%vlbcJ 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

    `O%)PI(f}LCWrM`{W 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 IVx9A`H-KTG8+pn|ySZyn`Ss;T;Dps>>-@sMTR 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

    GtHqUBw%oS(H$aFQ#qvgCdDe|AwdDUm1$j`KAM< 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

    OhCCryR`@;54D2z(6JK)+Q#vwhbqq^D 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ƶ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�JDnzT==F0Eo-8}_o!p7n@O~%Tl4AJXR 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

    4zO%T_oz)vi;C&_<(sa#KQn3|B}g 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 K+*+sDx2+zz7<}e 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

    8t!mAv^UHX1t1`As6mM=J zZD1`XEcH9vnWU0XrUR|JXxHt4SG)~kHF?7sfmTh#vnM3BvNT|+%!A4!WK&tPYP2r0 zqC-k3vUP7FQhA#|sJu2PUf`NJ!lxvE#!?tcQJRU~&a=fS^i-sW{l65>zQKaSu245aL*<#GZeoY`#Gq){JJXaHSWUO z=%_<@L)66)>b!Q8L(L!k!-eM4a&*=BKmX!0kbv;NW-$T>!4#$OJ$W?Df*>eQQYnNn zC&VwO>nI*g)FIbpcO>mEo&fI%d|Ae8#VY|pz)GG#UEtb>gelf!)kGPAg(6n9A2M;; z43c?B&wRg{FQRD~)4b8h1W@R$7AkR+5Ii!whF-T2ZV0#KmvL6(F1 zPrxD*^ghNHBZg6~T*NN8m2pVYsu3=av}w!&eacW{1;2-Vh!83XZVfDxeBv;P z7->6O+RIV^pZD3PE}--1L?6s_y|z`OiW!5X^p{vW374$e2NQ1Z z6H?red_*#EK&o&eP25B8m5b#VJi;u`prHf<%2uVU`az@2O(e|#6}9h?H-`U3-qdcz z{ISfA7+~%N?{17c<$o^!v%JzCD845cbBu2;y=~il3}t`WK+!G!Ps>FsGg>H&%J{~} zaUah3Lq;hsuk*~z^-D5&mq-$MgLMUO&h@_DwoC-Iq<*sTwj=kl(^mJ?NV?Y8##%0D#gm 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 z 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 m@Hu~oQAq<_;MBwKaY0mDm=Bm=^y`RF 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

    H%q51;YC)I(gpWwubMPJ)a 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ⅈwK8X>!c@*Y1I>!updz+!0v=Eeb{xCe+BQmy?~jJA^nS<*xEcoPRZZ_)hQ) z7MT;wF}@BdbO2yL@)IIbT(#-Wa7~YUUYc22Q$8n0z;UJ$=-MR}<$lo*M23M#fV=kJ zdvk6Omy_YB%d;`b&{OWT3|sf9HgcOQ?arPjfZIrbzMpL#;-UdCu}4(-?Z&QU$8xJk zfYj{el!;@i7%W~1osX5rT%d!WpdAu=RYjn|9~}3D@R(AtHcdVjDab+HFE2>t!26Rg z<2jUYpfe}uP%kr_3nGf3gRtZ(@C)cyAOqa|No$r1td_I`NpcJWG5)dPJ}Jwiyq{H$ z{hsIpq-oc00oVTp7m?DKNET9qt%mND>0t)M%6ZVG#R)`<^~xwCgJ1N4_scmb3_~sD zk=pW-+)*}9at7}REF7k4{=dXA9mW+cmT;us>lA!4A}PmBFZuCQHVQCJP1WLn@8T@7gFw2K%ybS7A5T(GTK>>Y1U9JQ($|K8h_pF+nBTvwC4 zmi|vdcPc(zI?K)(tOqM3qfABkL|*^j<%w^wa5Nb25J(OkL1yb?Hix)})`iw3aSe)- ztzJ10Z^8J-Q6ZK&SF}MAWdj5A90^7h(e@U-a*4`u_8)X;)k5TtYKWj1my$ouIu`9U zH{MsoH}j-jXiJU5j*pbj$pSMCwMWoWm*RIaHx?Yosy|7**+ON6Fr+HEak}KOBw(=f zrOQW``NxcOoU&v$bF|rLCX)%16se+OJMw5bxOVKO#*yJ+J(+p{JTD@{tpi+WpumlF zZp$oSs7d7d^hGWp3#qZbxZK=km*aM^$NtZ7s4w&dvPuNxV_QQu=l@=Rkdhv(6$(Lp zy&F=aaQt*_rm{s9&QpP^%=ee9xZ1JSv=KZ{p0&yyJpNW34j14bkHT%a5Wt@wo$oyg zUd&Z8Lq;p?2sXSrq&k(?78NYvUR4e^OJmkx_v7uAu`BJjV^0q1xu1#5x>J_vkL

    10#qf+zG8L7u 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%0ARLS-A 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%0DH6J%M)_? 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℘oTwygg@j<{=(dg=~M8>_wtBy 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

    sry%ke7>6R)QeKUL&P0TM} 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