generated from allenai/python-package-template
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 758a84d
Showing
45 changed files
with
1,727 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
[flake8] | ||
max-line-length = 115 | ||
|
||
ignore = | ||
# these rules don't play well with black | ||
# whitespace before : | ||
E203 | ||
# line break before binary operator | ||
W503 | ||
|
||
exclude = | ||
.venv | ||
.git | ||
__pycache__ | ||
docs/build | ||
dist | ||
.mypy_cache | ||
|
||
per-file-ignores = | ||
# __init__.py files are allowed to have unused imports and lines-too-long | ||
*/__init__.py:F401 | ||
*/**/**/__init__.py:F401,E501 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
name: 🐛 Bug Report | ||
description: Create a report to help us reproduce and fix the bug | ||
labels: 'bug' | ||
|
||
body: | ||
- type: markdown | ||
attributes: | ||
value: > | ||
#### Before submitting a bug, please make sure the issue hasn't been already addressed by searching through [the existing and past issues](https://github.com/allenai/python-package-template/issues?q=is%3Aissue+sort%3Acreated-desc+). | ||
- type: textarea | ||
attributes: | ||
label: 🐛 Describe the bug | ||
description: | | ||
Please provide a clear and concise description of what the bug is. | ||
If relevant, add a minimal example so that we can reproduce the error by running the code. It is very important for the snippet to be as succinct (minimal) as possible, so please take time to trim down any irrelevant code to help us debug efficiently. We are going to copy-paste your code and we expect to get the same result as you did: avoid any external data, and include the relevant imports, etc. For example: | ||
```python | ||
# All necessary imports at the beginning | ||
import my_package | ||
# A succinct reproducing example trimmed down to the essential parts: | ||
assert False is True, "Oh no!" | ||
``` | ||
If the code is too long (hopefully, it isn't), feel free to put it in a public gist and link it in the issue: https://gist.github.com. | ||
Please also paste or describe the results you observe instead of the expected results. If you observe an error, please paste the error message including the **full** traceback of the exception. It may be relevant to wrap error messages in ```` ```triple quotes blocks``` ````. | ||
placeholder: | | ||
A clear and concise description of what the bug is. | ||
validations: | ||
required: true | ||
- type: textarea | ||
attributes: | ||
label: Versions | ||
description: | | ||
Please run the following and paste the output below. | ||
```sh | ||
python --version && pip freeze | ||
``` | ||
validations: | ||
required: true | ||
- type: markdown | ||
attributes: | ||
value: > | ||
Thanks for contributing 🎉! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
name: 📚 Documentation | ||
description: Report an issue related to https://my-package.readthedocs.io/latest | ||
labels: 'documentation' | ||
|
||
body: | ||
- type: textarea | ||
attributes: | ||
label: 📚 The doc issue | ||
description: > | ||
A clear and concise description of what content in https://my-package.readthedocs.io/latest is an issue. | ||
validations: | ||
required: true | ||
- type: textarea | ||
attributes: | ||
label: Suggest a potential alternative/fix | ||
description: > | ||
Tell us how we could improve the documentation in this regard. | ||
- type: markdown | ||
attributes: | ||
value: > | ||
Thanks for contributing 🎉! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: 🚀 Feature request | ||
description: Submit a proposal/request for a new feature | ||
labels: 'feature request' | ||
|
||
body: | ||
- type: textarea | ||
attributes: | ||
label: 🚀 The feature, motivation and pitch | ||
description: > | ||
A clear and concise description of the feature proposal. Please outline the motivation for the proposal. Is your feature request related to a specific problem? e.g., *"I'm working on X and would like Y to be possible"*. If this is related to another GitHub issue, please link here too. | ||
validations: | ||
required: true | ||
- type: textarea | ||
attributes: | ||
label: Alternatives | ||
description: > | ||
A description of any alternative solutions or features you've considered, if any. | ||
- type: textarea | ||
attributes: | ||
label: Additional context | ||
description: > | ||
Add any other context or screenshots about the feature request. | ||
- type: markdown | ||
attributes: | ||
value: > | ||
Thanks for contributing 🎉! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: Python virtualenv | ||
description: Set up a Python virtual environment with caching | ||
inputs: | ||
python-version: | ||
description: The Python version to use | ||
required: true | ||
cache-prefix: | ||
description: Update this to invalidate the cache | ||
required: true | ||
default: v0 | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ inputs.python-version }} | ||
|
||
- shell: bash | ||
run: | | ||
# Install prerequisites. | ||
pip install --upgrade pip setuptools wheel virtualenv | ||
- shell: bash | ||
run: | | ||
# Get the exact Python version to use in the cache key. | ||
echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_ENV | ||
- uses: actions/cache@v2 | ||
id: virtualenv-cache | ||
with: | ||
path: .venv | ||
key: ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('requirements.txt', 'dev-requirements.txt') }} | ||
|
||
- if: steps.virtualenv-cache.outputs.cache-hit != 'true' | ||
shell: bash | ||
run: | | ||
# Set up virtual environment without cache hit. | ||
test -d .venv || virtualenv -p $(which python) --copies --reset-app-data .venv | ||
. .venv/bin/activate | ||
pip install -e .[dev] | ||
- if: steps.virtualenv-cache.outputs.cache-hit == 'true' | ||
shell: bash | ||
run: | | ||
# Set up virtual environment from cache hit. | ||
. .venv/bin/activate | ||
pip install --no-deps -e .[dev] | ||
- shell: bash | ||
run: | | ||
# Show environment info. | ||
. .venv/bin/activate | ||
echo "✓ Installed $(python --version) virtual environment to $(which python)" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "pip" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
open-pull-requests-limit: 10 | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<!-- To ensure we can review your pull request promptly please complete this template entirely. --> | ||
|
||
<!-- Please reference the issue number here. You can replace "Fixes" with "Closes" if it makes more sense. --> | ||
Fixes # | ||
|
||
Changes proposed in this pull request: | ||
<!-- Please list all changes/additions here. --> | ||
- | ||
|
||
## Before submitting | ||
|
||
<!-- Please complete this checklist BEFORE submitting your PR to speed along the review process. --> | ||
- [ ] I've read and followed all steps in the [Making a pull request](https://github.com/allenai/beaker-py/blob/main/CONTRIBUTING.md#making-a-pull-request) | ||
section of the `CONTRIBUTING` docs. | ||
- [ ] I've updated or added any relevant docstrings following the syntax described in the | ||
[Writing docstrings](https://github.com/allenai/beaker-py/blob/main/CONTRIBUTING.md#writing-docstrings) section of the `CONTRIBUTING` docs. | ||
- [ ] If this PR fixes a bug, I've added a test that will fail without my fix. | ||
- [ ] If this PR adds a new feature, I've added tests that sufficiently cover my new functionality. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
name: Main | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- 'v*.*.*' | ||
|
||
env: | ||
# Change this to invalidate existing cache. | ||
CACHE_PREFIX: v0 | ||
PYTHONPATH: ./ | ||
|
||
jobs: | ||
checks: | ||
name: Python ${{ matrix.python }} - ${{ matrix.task.name }} | ||
runs-on: [ubuntu-latest] | ||
timeout-minutes: 15 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['3.7', '3.10'] | ||
task: | ||
- name: Test | ||
run: | | ||
pytest -v --color=yes tests/ | ||
include: | ||
- python: '3.10' | ||
task: | ||
name: Lint | ||
run: flake8 . | ||
|
||
- python: '3.10' | ||
task: | ||
name: Type check | ||
run: mypy . | ||
|
||
- python: '3.10' | ||
task: | ||
name: Build | ||
run: | | ||
python setup.py check | ||
python setup.py bdist_wheel sdist | ||
- python: '3.10' | ||
task: | ||
name: Style | ||
run: | | ||
isort --check . | ||
black --check . | ||
- python: '3.10' | ||
task: | ||
name: Docs | ||
run: cd docs && make html | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup Python environment | ||
uses: ./.github/actions/setup-venv | ||
with: | ||
python-version: ${{ matrix.python }} | ||
cache-prefix: ${{ env.CACHE_PREFIX }} | ||
|
||
- name: ${{ matrix.task.name }} | ||
run: | | ||
. .venv/bin/activate | ||
${{ matrix.task.run }} | ||
- name: Upload package distribution files | ||
if: matrix.task.name == 'Build' | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: package | ||
path: dist | ||
|
||
- name: Clean up | ||
if: always() | ||
run: | | ||
. .venv/bin/activate | ||
pip uninstall -y my-package | ||
release: | ||
name: Release | ||
runs-on: ubuntu-latest | ||
needs: [checks] | ||
if: startsWith(github.ref, 'refs/tags/') | ||
steps: | ||
- uses: actions/checkout@v1 | ||
|
||
- name: Setup Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
|
||
- name: Install requirements | ||
run: | | ||
pip install --upgrade pip setuptools wheel | ||
pip install -r dev-requirements.txt | ||
- name: Prepare environment | ||
run: | | ||
echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV | ||
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV | ||
- name: Download package distribution files | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: package | ||
path: dist | ||
|
||
- name: Generate release notes | ||
run: | | ||
python scripts/release_notes.py > ${{ github.workspace }}-RELEASE_NOTES.md | ||
- name: Publish package to PyPI | ||
run: | | ||
twine upload -u '${{ secrets.PYPI_USERNAME }}' -p '${{ secrets.PYPI_PASSWORD }}' dist/* | ||
- name: Publish GitHub release | ||
uses: softprops/action-gh-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
body_path: ${{ github.workspace }}-RELEASE_NOTES.md | ||
prerelease: ${{ contains(env.TAG, 'rc') }} | ||
files: | | ||
dist/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: PR Checks | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
paths: | ||
- 'my_package/**' | ||
|
||
jobs: | ||
changelog: | ||
name: CHANGELOG | ||
runs-on: ubuntu-latest | ||
if: github.event_name == 'pull_request' | ||
|
||
steps: | ||
- uses: actions/checkout@v1 | ||
|
||
- name: Check that CHANGELOG has been updated | ||
run: | | ||
# If this step fails, this means you haven't updated the CHANGELOG.md | ||
# file with notes on your contribution. | ||
git diff --name-only $(git merge-base origin/main HEAD) | grep '^CHANGELOG.md$' && echo "Thanks for helping keep our CHANGELOG up-to-date!" |
Oops, something went wrong.