Skip to content

Commit

Permalink
Merge pull request aboutcode-org#1 from nexB/update-skeleton-files
Browse files Browse the repository at this point in the history
Update skeleton files
  • Loading branch information
JonoYang authored Jul 21, 2023
2 parents 647aaab + 9095a74 commit a3530fb
Show file tree
Hide file tree
Showing 19 changed files with 208 additions and 71 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docs-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pypi-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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 }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*.py[cod]

# virtualenv and other misc bits
/src/*.egg-info
*.egg-info
/dist
/build
Expand Down
11 changes: 11 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@
# Required
version: 2

# Build in latest ubuntu/python
build:
os: ubuntu-22.04
tools:
python: "3.11"

# Build PDF & ePub
formats:
- epub
- pdf

# Where the Sphinx conf.py file is located
sphinx:
configuration: docs/source/conf.py
Expand Down
54 changes: 54 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -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
5 changes: 4 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
@@ -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.

Expand Down Expand Up @@ -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
Expand Down
36 changes: 22 additions & 14 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,56 @@ jobs:

- 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', '3.10']
job_name: ubuntu20_cpython
image_name: ubuntu-20.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
image_name: ubuntu-20.04
python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10']
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

- template: etc/ci/azure-posix.yml
parameters:
job_name: macos1015_cpython
image_name: macos-10.15
python_versions: ['3.6', '3.7', '3.8', '3.9', '3.10']
job_name: macos11_cpython
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

- template: etc/ci/azure-posix.yml
parameters:
job_name: macos11_cpython
image_name: macos-11
python_versions: ['3.7', '3.8', '3.9', '3.10']
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

- 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

- 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']
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
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.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
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -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=" "
Expand Down
2 changes: 1 addition & 1 deletion configure.bat
Original file line number Diff line number Diff line change
Expand Up @@ -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= "
Expand Down
12 changes: 12 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -95,3 +101,9 @@
.. role:: img-title-para
"""

# -- Options for LaTeX output -------------------------------------------------

latex_elements = {
'classoptions': ',openany,oneside'
}
8 changes: 4 additions & 4 deletions etc/scripts/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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.
Expand All @@ -50,7 +50,7 @@ The sequence of commands to run are:

./configure --clean
./configure
python etc/release/gen_requirements.py --site-packages-dir <path to site-packages dir>
python etc/scripts/gen_requirements.py --site-packages-dir <path to 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.
Expand All @@ -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 <path to site-packages dir>
python etc/scripts/gen_requirements_dev.py --site-packages-dir <path to 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
Expand Down
Loading

0 comments on commit a3530fb

Please sign in to comment.