Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
prjemian authored Jan 23, 2025
0 parents commit 439964b
Show file tree
Hide file tree
Showing 71 changed files with 4,645 additions and 0 deletions.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: 'bug'
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Code with explanation
2. How to run code
3. The error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- OS: [e.g. Linux]
- Package versions implicated in the error (torch, mdlearn versions, etc)

**Additional context**
Add any other context about the problem here.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: 'enhancement'
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/other.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Other issue template
about: Any issue that does not fit the other templates
title: ''
labels: ''
assignees: ''

---

**Description**
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/question-issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Question issue template
about: Ask a question about how to use mdlearn
title: ''
labels: question
assignees: ''

---

**Describe the question**
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Set update schedule for GitHub Actions
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:

- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
158 changes: 158 additions & 0 deletions .github/workflows/code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
name: Unit Tests & Code Coverage

on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch: # allow manual triggering

defaults:
run:
shell: bash -l {0}

jobs:
lint:
name: Code style
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Upgrade pip & test with pre-commit
run: |
set -vxeuo pipefail
python -m pip install --upgrade pip
python -m pip install pre-commit
pre-commit run --all-files
test-matrix:
name: Python ${{ matrix.python-version }} # - Redis ${{ matrix.redis-version }}
runs-on: ubuntu-latest
needs: lint
strategy:
matrix:
python-version:
- "3.11"
- "3.12"
# - "3.13" waiting for upstream packages
# redis-version:
# # - "6"
# - "7"
max-parallel: 5
env:
DISPLAY: ":99.0"

steps:
- uses: actions/checkout@v4

- name: Install OS libraries to test Linux PyQt apps
run: |
sudo apt update -y
sudo apt install -y \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-xinerama0 \
libxcb-xfixes0 \
libxkbcommon-x11-0 \
screen \
x11-utils \
xvfb
# FIXME: conflicts if redis is running on host (local runners)
# - name: Start Redis
# uses: supercharge/redis-github-action@1.7.0
# with:
# redis-version: ${{ matrix.redis-version }}
# redis-remove-container: true # false by default

- name: Create environment Python ${{ matrix.python-version }} # - Redis ${{ matrix.redis-version }}
# needed for Unpack step
uses: mamba-org/setup-micromamba@v2
with:
cache-environment: true
cache-environment-key: env-key-${{ matrix.python-version }}
condarc: |
channels:
- conda-forge
- nodefaults
channel-priority: flexible
# environment-file: environment.yml
environment-name: anaconda-test-env-py-${{ matrix.python-version }} # -${{ matrix.redis-version }}
create-args: >-
coveralls
pytest
pytest-cov
pytest-qt
pytest-xvfb
python=${{ matrix.python-version }}
setuptools-scm
pyqt>5.15
pyepics
- name: Install this package with pip
shell: bash -l {0}
run: |
set -vxeuo pipefail
pip install -e .
- name: Run tests with pytest & coverage
shell: bash -l {0}
run: |
set -vxeuo pipefail
coverage run --concurrency=thread --parallel-mode -m pytest -vvv --exitfirst .
coverage combine
coverage report --precision 3
- name: Upload coverage data to coveralls.io
shell: bash -l {0}
run: |
set -vxeuo pipefail
micromamba list coveralls
which coveralls
coveralls debug
if [ "${GITHUB_TOKEN}" != "" ]; then
# only upload from GitHub runner
coveralls --service=github
else
echo "No credentials for upload to coveralls."
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: ${{ matrix.python-version }} # -${{ matrix.redis-version }}
COVERALLS_PARALLEL: true

# https://coveralls-python.readthedocs.io/en/latest/usage/configuration.html#github-actions-support
coveralls:
name: Report unit test coverage to coveralls
needs: test-matrix
runs-on: ubuntu-latest
container: python:3-slim

steps:
- name: Gather coverage and report to Coveralls
run: |
set -vxeuo pipefail
echo "Finally!"
pip3 install --upgrade coveralls
# debug mode: output prepared json and reported files list to stdout
# https://coveralls-python.readthedocs.io/en/latest/troubleshooting.html
coveralls debug
if [ "${GITHUB_TOKEN}" != "" ]; then
# only upload from GitHub runner
coveralls --service=github --finish
else
echo "No credentials for upload to coveralls."
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72 changes: 72 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Publish Sphinx docs to GitHub Pages
# see: https://github.com/marketplace/actions/sphinx-to-github-pages

on:
# Build the docs on pushes to main branch, PRs to main branch, and new tags.
# Publish only on demand.
push:
branches:
- main
tags:
- '*' # all tags
pull_request:
branches:
- main
workflow_dispatch: # allow manual triggering
inputs:
deploy:
description: 'Deploy documentation'
type: boolean
required: true
default: false

defaults:
run:
shell: bash -l {0}

jobs:

pages:
name: Publish documentation
runs-on: ubuntu-latest

steps:

- name: Deploy Information
if: ${{ github.event.inputs.deploy }}
run: |
echo "The docs will be published from this workflow run."
- name: Install pandoc
run: |
set -vxeuo pipefail
sudo apt-get update
sudo apt-get -y install pandoc
- name: Set time zone
run: echo "TZ=America/Chicago" >> "$GITHUB_ENV"

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # required for push to dest repo

- uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install our package
run: pip install -e .[doc]

- name: Sphinx
id: deployment
run: make -C docs html

- name: Publish (push gh-pages branch) only on demand
uses: peaceiris/actions-gh-pages@v4
if: ${{ github.event.inputs.deploy }}
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/html
force_orphan: true
Loading

0 comments on commit 439964b

Please sign in to comment.