From 45d9f584401881931aa264d80e8ef0a58def13c1 Mon Sep 17 00:00:00 2001 From: jlw387 Date: Thu, 22 Aug 2024 21:15:10 -0400 Subject: [PATCH 1/2] Loosened requirements for numpy, pandas, and tabulate Adjusted requirements.txt to allow for newer versions of NumPy, pandas, and tabulate. The strict version requirements were causing installation/build issues for Python 3.12. --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 078b794..7444d37 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -numpy==1.23.5 +numpy>=1.23.5 pytest>=7.1.2 pytest-cov>=4.1.0 pyyaml>=6.0.1 -pandas==1.5.3 -tabulate==0.9.0 +pandas>=1.5.3 +tabulate>=0.9.0 From cd6c38643c164c3ae826e16025317ea9584505f9 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 23 Aug 2024 13:55:33 -0400 Subject: [PATCH 2/2] Updated CI Workflow Updated the contents of `python-app.yml` to match the CI used in the test repository. Specific changes include: - Setting the workflow to run for pushes and pull requests to 'development' (previously the only specified branch was 'main') - Adding build tests for multiple versions of Python (3.10, 3.11, and 3.12). - Adding a "branch name check" which ensures that nothing is merged to main other than 'development' and hotfix branches. --- .github/workflows/python-app.yml | 48 ++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index cb0877f..f865f9a 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -1,40 +1,60 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: Python application +name: Python package on: push: - branches: [ "main" ] + branches: [ "main", "development" ] pull_request: - branches: [ "main" ] - -permissions: - contents: read + branches: [ "main", "development" ] jobs: - run-tests: + build: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 - uses: actions/setup-python@v3 + + - name: Check branch names + id: check_branch_names + run: | + BASE_REF="${{ github.base_ref }}" + HEAD_REF="${{ github.head_ref }}" + + echo "Base ref: $BASE_REF" + echo "Head ref: $HEAD_REF" + + if [[ "$BASE_REF" == "main" && ! (“$HEAD_REF == “development || "$HEAD_REF" =~ ^hotfix_) ]]; then + echo "Main cannot be merged from branches other than development or hotfixes. Exiting..." + exit 1 + fi + + echo "Branches are merge compatible." + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: ${{ matrix.python-version }} + - name: Install dependencies run: | python -m pip install --upgrade pip - pip install flake8 pytest + python -m pip install flake8 pytest if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 pyplate --count --exit-zero --max-line-length=127 --statistics - flake8 tests --count --exit-zero --max-line-length=127 --statistics + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest run: | pytest tests