From a060c59e60eb29009aa42f3f61469d5ca662aa70 Mon Sep 17 00:00:00 2001 From: Jonas Geuens Date: Tue, 3 Sep 2024 10:21:49 +0200 Subject: [PATCH] #306 Migratie pyproject + GH Actions --- .github/pr-labeler.yml | 3 ++ .github/workflows/pr-labeler.yml | 22 ++++++++++++ .github/workflows/pyoes.yml | 39 +++++++++++++++++++++ .travis.yml | 14 -------- README.md | 28 +++++++++++++++ pyproject.toml | 58 ++++++++++++++++++++++++++++++++ tox.ini | 18 ---------- 7 files changed, 150 insertions(+), 32 deletions(-) create mode 100644 .github/pr-labeler.yml create mode 100644 .github/workflows/pr-labeler.yml create mode 100644 .github/workflows/pyoes.yml delete mode 100644 .travis.yml create mode 100644 README.md create mode 100644 pyproject.toml delete mode 100644 tox.ini diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml new file mode 100644 index 00000000..b0f2235f --- /dev/null +++ b/.github/pr-labeler.yml @@ -0,0 +1,3 @@ +feature: ['feature/*', 'feat/*'] +fix: ['bugfix/*', 'fix/*'] +test: test/* \ No newline at end of file diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml new file mode 100644 index 00000000..cd91bce3 --- /dev/null +++ b/.github/workflows/pr-labeler.yml @@ -0,0 +1,22 @@ +name: PR Labeler +on: + pull_request: + types: [opened] + branches: + - 'develop' + - 'epic' + +permissions: + contents: read + +jobs: + pr-labeler: + permissions: + contents: read # for TimonVS/pr-labeler-action to read config file + pull-requests: write # for TimonVS/pr-labeler-action to add labels in PR + runs-on: ubuntu-latest + steps: + - uses: TimonVS/pr-labeler-action@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/pr-labeler.yml \ No newline at end of file diff --git a/.github/workflows/pyoes.yml b/.github/workflows/pyoes.yml new file mode 100644 index 00000000..8a706bc8 --- /dev/null +++ b/.github/workflows/pyoes.yml @@ -0,0 +1,39 @@ +name: pyoes + +on: [push, pull_request] + +env: + PYTHON_VERSION: "3.11" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '16' + + - name: Install dependencies + run: | + pip install -r requirements-dev.txt + python setup.py develop + + - name: Run checks and tests + run: | + ./check_versions.sh + py.test --cov pyoes --cov-report term-missing + + - name: Upload coverage to Coveralls + run: coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 026eccdb..00000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -os: linux -dist: focal -language: python -python: - - "3.8" -env: - - LC_ALL=en_US.utf-8 -install: - - pip install -r requirements-dev.txt - - python setup.py develop -script: - - ./check_versions.sh - - py.test --cov pyoes --cov-report term-missing -after_success: coveralls diff --git a/README.md b/README.md new file mode 100644 index 00000000..883bb317 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +pyoes: Pyramid OE style +======================= + +.. image:: https://travis-ci.org/OnroerendErfgoed/pyoes.png + :target: https://travis-ci.org/OnroerendErfgoed/pyoes +.. image:: https://coveralls.io/repos/OnroerendErfgoed/pyoes/badge.png?branch=master + :target: https://coveralls.io/r/OnroerendErfgoed/pyoes + +.. image:: https://readthedocs.org/projects/pyoes/badge/?version=latest + :target: https://readthedocs.org/projects/pyoes/?badge=latest + :alt: Documentation Status +.. image:: https://badge.fury.io/py/pyoes.png + :target: http://badge.fury.io/py/pyoes + +Pyoes helps to share layout between different websites and applications of +Onroerend Erfgoed (Flanders Heritage). + +More information about this library can be found in the docs `folder`. These can +be build using `Sphinx `_. + +.. code-block:: bash + + # activate your virtual env + $ pip install -r requirements-dev.txt + $ cd docs + $ make html + # You can also build a pdf, provided you have the correct latex toolchain installed. + $ make latexpdf diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..0b5e343a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,58 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +version = "0.22.0" +name = "pyoes" +readme = "README.md" +authors = [ + { name = "Flanders Heritage Agency", email = "ict@onroerenderfgoed.be" }, +] +description = "pyoes" +requires-python = ">=3.10,<3.12" +keywords = ["pyramid", "sass", "compass", "style", "css", "jinja2", "templates"] +classifiers = [ + "Programming Language :: Python", + "Framework :: Pyramid", +] +dependencies = [ + "pyramid==2.0.2", + "pyramid-jinja2==2.10", + "MarkupSafe==2.1.3", + "Jinja2==3.1.4", + "python-dateutil==2.8.2" +] + +[project.optional-dependencies] + +dev = [ + "waitress==2.1.2"" + "Sphinx==7.1.2", + "sphinxcontrib-httpdomain==1.8.1, + "sphinx-rtd-theme==2.0.0", + "sphinxcontrib-plantuml==0.27", + "oe-sphinx-theme==0.4.0", + "pytest==7.4.3", + "pytest-cov==4.1.0", + "coveralls==3.3.1", + "pep8==1.7.1" +] + +[tool.hatch.build.targets.wheel] +# In the wheel we want to have toelatingen_archeologie in the root as a python module. +packages = [ + "/pyoes", +] + +[project.entry-points."paste.app_factory"] +main = "pyoes:main" + +[project.entry-points."pyramid.scaffold"] +pyoes = "pyoes.scaffolds:PyoesTemplate" +pyoesAdmin = "pyoes.scaffolds:PyoesAdminTemplate" +pyoesProces = "pyoes.scaffolds:PyoesProcesTemplate" + +[tool.hatch.metadata] +# This allows us to use github links as dependencies +allow-direct-references = true \ No newline at end of file diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 6b6a320e..00000000 --- a/tox.ini +++ /dev/null @@ -1,18 +0,0 @@ -[tox] -envlist = py27, py33, py34, cover - -[testenv] -commands = - pip install -r requirements-dev.txt - python setup.py develop - py.test -setenv = - LC_ALL = en_US.utf-8 - -[testenv:cover] -basepython = - python2.7 -commands = - pip install -r requirements-dev.txt - python setup.py develop - py.test --cov pyoes --cov-report term-missing