Skip to content

Commit 8b2874b

Browse files
draft 1?
1 parent b1cac4c commit 8b2874b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2213
-1
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @cancervariants/wagner-lab-developers
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Bug Report
2+
description: Report a bug.
3+
labels: ["bug"]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: Describe the bug
8+
description: Provide a clear and concise description of what the bug is.
9+
validations:
10+
required: true
11+
- type: textarea
12+
attributes:
13+
label: Steps to reproduce
14+
description: Provide detailed steps to replicate the bug.
15+
placeholder: |
16+
1. In this environment...
17+
2. With this config...
18+
3. Run '...'
19+
4. See error...
20+
validations:
21+
required: true
22+
- type: textarea
23+
attributes:
24+
label: Expected behavior
25+
description: What did you expect to happen?
26+
validations:
27+
required: true
28+
- type: textarea
29+
attributes:
30+
label: Current behavior
31+
description: |
32+
What actually happened?
33+
34+
Include full errors, stack traces, and/or relevant logs.
35+
validations:
36+
required: true
37+
- type: textarea
38+
attributes:
39+
label: Acceptance Criteria
40+
description: |
41+
Provide the criteria that must be met in order for this issue to be considered fixed.
42+
Be specific, and consider potential edge cases.
43+
validations:
44+
required: true
45+
- type: textarea
46+
attributes:
47+
label: Possible reason(s)
48+
description: Provide any insights into what might be causing the issue.
49+
validations:
50+
required: false
51+
- type: textarea
52+
attributes:
53+
label: Suggested fix
54+
description: Provide any suggestions on how to resolve the bug.
55+
validations:
56+
required: false
57+
- type: textarea
58+
attributes:
59+
label: Branch, commit, and/or version
60+
description: Provide the branch, commit, and/or version you're using.
61+
placeholder: |
62+
branch: issue-1
63+
commit: abc123d
64+
validations:
65+
required: true
66+
- type: textarea
67+
attributes:
68+
label: Screenshots
69+
description: If applicable, add screenshots with descriptions to help explain your problem.
70+
validations:
71+
required: false
72+
- type: textarea
73+
attributes:
74+
label: Environment details
75+
description: Provide environment details (OS name and version, etc).
76+
validations:
77+
required: true
78+
- type: textarea
79+
attributes:
80+
label: Additional details
81+
description: Provide any other additional details about the problem.
82+
validations:
83+
required: false
84+
- type: dropdown
85+
attributes:
86+
label: Contribution
87+
description: Can you contribute to the development of this feature?
88+
options:
89+
- "Yes, I can create a PR for this fix."
90+
- "Yes, but I can only provide ideas and feedback."
91+
- "No, I cannot contribute."
92+
validations:
93+
required: false
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Feature Request
2+
description: Suggest an idea for this project.
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: Feature description
8+
description: Provide a clear and concise description of what you want to happen.
9+
validations:
10+
required: true
11+
- type: textarea
12+
attributes:
13+
label: Use case
14+
description: |
15+
Why do you need this feature? For example: "I'm always frustrated when..."
16+
validations:
17+
required: true
18+
- type: textarea
19+
attributes:
20+
label: Acceptance Criteria
21+
description: |
22+
Provide the criteria that must be met in order for this issue to be considered complete.
23+
Be specific, and consider potential edge cases.
24+
validations:
25+
required: true
26+
- type: textarea
27+
attributes:
28+
label: Proposed solution
29+
description: Provide proposed solution.
30+
validations:
31+
required: false
32+
- type: textarea
33+
attributes:
34+
label: Alternatives considered
35+
description: Describe any alternative solutions you've considered.
36+
validations:
37+
required: false
38+
- type: textarea
39+
attributes:
40+
label: Implementation details
41+
description: Provide any technical details on how the feature might be implemented.
42+
validations:
43+
required: false
44+
- type: textarea
45+
attributes:
46+
label: Potential Impact
47+
description: |
48+
Discuss any potential impacts of this feature on existing functionality or performance, if known.
49+
Will this feature cause breaking changes?
50+
What challenges might arise?
51+
validations:
52+
required: false
53+
- type: textarea
54+
attributes:
55+
label: Additional context
56+
description: Provide any other context or screenshots about the feature.
57+
validations:
58+
required: false
59+
- type: dropdown
60+
attributes:
61+
label: Contribution
62+
description: Can you contribute to the development of this feature?
63+
options:
64+
- "Yes, I can create a PR for this feature."
65+
- "Yes, but I can only provide ideas and feedback."
66+
- "No, I cannot contribute."
67+
validations:
68+
required: false

.github/workflows/checks.yaml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: checks
2+
on: [push, pull_request]
3+
jobs:
4+
test:
5+
name: test py${{ matrix.python-version }}
6+
runs-on: ubuntu-latest
7+
strategy:
8+
matrix:
9+
python-version: ["3.11", "3.12", "3.13"]
10+
steps:
11+
- uses: actions/checkout@v6
12+
13+
- name: Set up Python
14+
uses: actions/setup-python@v6
15+
with:
16+
python-version: ${{ matrix.python-version }}
17+
18+
- name: Install uv
19+
uses: astral-sh/setup-uv@v7
20+
with:
21+
enable-cache: true
22+
23+
- name: Install dependencies
24+
run: uv sync --extra tests
25+
26+
- name: Run tests
27+
run: uv run pytest
28+
29+
lint:
30+
name: lint
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v6
34+
35+
- name: Setup Python
36+
uses: actions/setup-python@v6
37+
with:
38+
python-version: "3.13"
39+
40+
- name: Install uv
41+
uses: astral-sh/setup-uv@v7
42+
with:
43+
enable-cache: true
44+
45+
- name: Install dependencies
46+
run: uv sync --extra dev
47+
48+
- name: Check style
49+
run: uv run ruff check && uv run ruff format --check
50+
51+
precommit_hooks:
52+
runs-on: ubuntu-latest
53+
steps:
54+
- uses: actions/checkout@v6
55+
56+
- uses: j178/prek-action@v1
57+
with:
58+
extra_args: '--all-files --skip "ruff-format" --skip "ruff-check"'
59+
60+
61+
docs:
62+
runs-on: ubuntu-latest
63+
env:
64+
SPHINX_GITHUB_CHANGELOG_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65+
steps:
66+
- uses: actions/checkout@v6
67+
68+
- name: Set up Python
69+
uses: actions/setup-python@v6
70+
with:
71+
python-version: 3.12 # broken on 3.13
72+
73+
- name: Install uv
74+
uses: astral-sh/setup-uv@v7
75+
with:
76+
enable-cache: true
77+
78+
- name: Install dependencies
79+
run: uv sync --extra docs
80+
81+
- name: Attempt docs build
82+
working-directory: ./docs
83+
run: source ../.venv/bin/activate && make html
84+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Pull Request Has Priority Label
2+
on:
3+
pull_request:
4+
types: [opened, labeled, unlabeled, synchronize]
5+
jobs:
6+
pr-priority-label:
7+
runs-on: ubuntu-latest
8+
permissions:
9+
issues: write
10+
pull-requests: write
11+
outputs:
12+
status: ${{ steps.check-labels.outputs.status }}
13+
steps:
14+
- id: check-labels
15+
uses: mheap/github-action-required-labels@v5
16+
with:
17+
mode: exactly
18+
count: 1
19+
labels: "priority:*"
20+
use_regex: true
21+
add_comment: true
22+
message: "PRs require a priority label. Please add one."
23+
exit_type: failure

.github/workflows/release.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
2+
name: Publish Python distribution to PyPI
3+
4+
on:
5+
release:
6+
types: [created]
7+
8+
jobs:
9+
build:
10+
name: Build distribution
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
- name: Set up Python
16+
uses: actions/setup-python@v5
17+
with:
18+
python-version: "3.x"
19+
- name: Install pypa/build
20+
run: >-
21+
python3 -m
22+
pip install
23+
build
24+
--user
25+
- name: Build a binary wheel and a source tarball
26+
run: python3 -m build
27+
- name: Store the distribution packages
28+
uses: actions/upload-artifact@v4
29+
with:
30+
name: python-package-distributions
31+
path: dist/
32+
publish-to-pypi:
33+
name: >-
34+
Publish Python distribution to PyPI
35+
needs:
36+
- build
37+
runs-on: ubuntu-latest
38+
environment:
39+
name: pypi
40+
url: https://pypi.org/p/gene-harmony
41+
permissions:
42+
id-token: write # IMPORTANT: mandatory for trusted publishing
43+
steps:
44+
- name: Download all the dists
45+
uses: actions/download-artifact@v4
46+
with:
47+
name: python-package-distributions
48+
path: dist/
49+
- name: Publish distribution to PyPI
50+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/stale.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: "Stalebot for issues and PRs"
2+
3+
on:
4+
schedule:
5+
- cron: "30 13 * * 1-5"
6+
7+
jobs:
8+
stale-high-priority:
9+
uses: genomicmedlab/software-templates/.github/workflows/reusable-stale.yaml@main
10+
with:
11+
days-before-issue-stale: 90
12+
days-before-pr-stale: 1
13+
labels: priority:high
14+
15+
stale-medium-priority:
16+
uses: genomicmedlab/software-templates/.github/workflows/reusable-stale.yaml@main
17+
with:
18+
days-before-issue-stale: 135
19+
days-before-pr-stale: 3
20+
labels: priority:medium
21+
22+
stale-low-priority:
23+
uses: genomicmedlab/software-templates/.github/workflows/reusable-stale.yaml@main
24+
with:
25+
days-before-issue-stale: 180
26+
days-before-pr-stale: 7
27+
labels: priority:low

0 commit comments

Comments
 (0)