Skip to content

Commit

Permalink
Merge pull request #3 from dnv-opensource/2-restructure-the-repo-and-…
Browse files Browse the repository at this point in the history
…change-to-uv-as-package-manager

2 restructure the repo and change to uv as package manager
  • Loading branch information
ClaasRostock authored Nov 8, 2024
2 parents 0b62db5 + e8133fa commit 02e9237
Show file tree
Hide file tree
Showing 76 changed files with 4,140 additions and 1,496 deletions.
13 changes: 13 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[paths]
source =
src/sim_explorer
*/site-packages/sim_explorer

[run]
source = sim_explorer
branch = True

[report]
# fail_under = 10.0
show_missing = True
skip_covered = True
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.{yml,yaml}]
indent_style = space
indent_size = 2
36 changes: 36 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.py text
*.cpp text
*.hpp text
*.c text
*.h text
*.json text
*.xml text
*.txt text
*.yml text
*.yaml text
*.toml text
*.rst text
*.ini text

# Declare files that will always have CRLF line endings on checkout.
*.vcproj text eol=crlf
*.sln text eol=crlf
*.md text eol=crlf

# Declare files that will always have LF line endings on checkout.
*.sh text eol=lf

# Declare files that will not be normalized regardless of their content.
*.jpg -text
*.png -text
*.gif -text
*.ico -text

# Denote all files that are truly binary and should not be modified.
*.onnx binary
*.fmu binary
27 changes: 14 additions & 13 deletions .github/workflows/_build_and_publish_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,18 @@ jobs:
- name: Checkout active branch
uses: actions/checkout@v4
with:
fetch-depth: 1
lfs: true
- name: Install Python
uses: actions/setup-python@v4
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
python-version: '3.11'
cache: 'pip' # cache pip dependencies
- name: Install dependencies
run: |
pip install -r requirements-dev.txt
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"
- name: Install the project
run: uv sync --upgrade
- name: Print debugging information
run: |
echo "github.ref:" ${{github.ref}}
Expand All @@ -36,16 +38,15 @@ jobs:
git branch
git branch -a
git remote -v
python -V
pip list --not-required
pip list
uv run python -V
uv pip list
# Build documentation
- uses: sphinx-doc/github-problem-matcher@master
- name: Build documentation
run: |
cd docs
make html
uv run make html
- name: Clone and cleanup gh-pages branch
run: |
Expand Down Expand Up @@ -102,7 +103,7 @@ jobs:

# Publish: Commit gh-pages branch and publish it to GitHub Pages
- name: Publish documentation
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
55 changes: 29 additions & 26 deletions .github/workflows/_build_package.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
name: Build Package

on: workflow_call

jobs:
build:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
lfs: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip' # cache pip dependencies
- name: Install build and twine
run: pip install build twine
- name: Run build
run: python -m build
- name: Run twine check
run: twine check --strict dist/*
- uses: actions/upload-artifact@v4
with:
path: ./dist/*.tar.gz
name: Build Package

on: workflow_call

jobs:
build:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"
- name: Build source distribution and wheel
run: uv build
- name: Run twine check
run: uvx twine check --strict dist/*
- uses: actions/upload-artifact@v4
with:
path: |
dist/*.tar.gz
dist/*.whl
116 changes: 80 additions & 36 deletions .github/workflows/_code_quality.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,80 @@
name: Code Quality

on: workflow_call

jobs:
ruff_format:
runs-on: ubuntu-latest
name: ruff format
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip' # cache pip dependencies
- name: Install dependencies
run: pip install -r requirements.txt
- name: Install ruff
run: pip install ruff==0.3.0
- name: Run ruff format
run: ruff format --diff .

ruff_check:
runs-on: ubuntu-latest
name: ruff check
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip' # cache pip dependencies
- name: Install dependencies
run: pip install -r requirements.txt
- name: Install ruff
run: pip install ruff==0.3.0
- name: Run ruff check
run: ruff check --diff .
name: Code Quality

on: workflow_call

jobs:
ruff_format:
runs-on: ubuntu-latest
name: ruff format
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"
- name: Install the project
run: uv sync --upgrade
- name: Run ruff format
run: uv run ruff format --diff

ruff_check:
runs-on: ubuntu-latest
name: ruff check
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"
- name: Install the project
run: uv sync --upgrade
- name: Run ruff check
run: uv run ruff check --diff

# pyright:
# runs-on: ubuntu-latest
# name: pyright
# steps:
# - uses: actions/checkout@v4
# - name: Install uv
# uses: astral-sh/setup-uv@v2
# with:
# enable-cache: true
# cache-dependency-glob: "uv.lock"
# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version-file: "pyproject.toml"
# - name: Install the project
# run: uv sync --upgrade
# - name: Run pyright
# run: uv run pyright

mypy:
runs-on: ubuntu-latest
name: mypy
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"
- name: Install the project
run: uv sync --upgrade
- name: Run mypy
run: uv run mypy
8 changes: 1 addition & 7 deletions .github/workflows/_merge_into_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,4 @@ jobs:
with:
type: now
target_branch: release
# @TODO: A dedicated RELEASE_TOKEN should be created in the repo settings
# and used for this task when in production.
# It is set here to the default GITHUB_TOKEN only
# for demonstration purposes, enabling the workflow in the repo template
# to run without additional configuration.
# github_token: ${{ secrets.RELEASE_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ secrets.RELEASE_TOKEN }}
19 changes: 0 additions & 19 deletions .github/workflows/_publish_package.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/_publish_package_test.yml

This file was deleted.

29 changes: 16 additions & 13 deletions .github/workflows/_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,34 @@ on: workflow_call

jobs:
test:
name: Test on ${{matrix.python.toxenv}}-${{matrix.platform.toxenv}}
name: Test on ${{matrix.python.version}}-${{matrix.platform.runner}}
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
toxenv: linux
- runner: windows-latest
toxenv: windows
# - runner: macos-latest
python:
- version: '3.10'
toxenv: 'py310'
- version: '3.11'
toxenv: 'py311'
# libcosimpy does so far not work in version 12
# - version: '3.12'
# toxenv: 'py312'
- version: '3.12'
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v2
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install Python ${{ matrix.python.version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python.version }}
cache: 'pip' # cache pip dependencies
- name: Install tox
run: python -m pip install tox
- name: Install the project
run: uv sync --upgrade -p ${{ matrix.python.version }} --no-dev
- name: Install pytest
run: |
uv pip install pytest
uv pip install pytest-cov
- name: Run pytest
run: tox -e ${{matrix.python.toxenv}}-${{matrix.platform.toxenv}}
run: uv run pytest --cov
Loading

0 comments on commit 02e9237

Please sign in to comment.