mirror of
https://github.com/bellingcat/vk-url-scraper.git
synced 2026-06-12 05:18:35 +03:00
Initial commit
This commit is contained in:
46
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
46
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -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 🎉!
|
||||
21
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
21
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@@ -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 🎉!
|
||||
26
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
26
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -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 🎉!
|
||||
54
.github/actions/setup-venv/action.yml
vendored
Normal file
54
.github/actions/setup-venv/action.yml
vendored
Normal file
@@ -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)"
|
||||
11
.github/dependabot.yml
vendored
Normal file
11
.github/dependabot.yml
vendored
Normal file
@@ -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"
|
||||
18
.github/pull_request_template.md
vendored
Normal file
18
.github/pull_request_template.md
vendored
Normal file
@@ -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.
|
||||
138
.github/workflows/main.yml
vendored
Normal file
138
.github/workflows/main.yml
vendored
Normal file
@@ -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/*
|
||||
27
.github/workflows/pr_checks.yml
vendored
Normal file
27
.github/workflows/pr_checks.yml
vendored
Normal file
@@ -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!"
|
||||
51
.github/workflows/setup.yml
vendored
Normal file
51
.github/workflows/setup.yml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: Setup
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
test_personalize:
|
||||
name: Personalize
|
||||
runs-on: [ubuntu-latest]
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.7'
|
||||
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
pip install -r setup-requirements.txt
|
||||
|
||||
- name: Run personalize script
|
||||
run: |
|
||||
python scripts/personalize.py --github-org epwalsh --github-repo new-repo --package-name new-package --yes
|
||||
|
||||
- name: Verify changes
|
||||
shell: bash
|
||||
run: |
|
||||
set -eo pipefail
|
||||
# Check that 'new-package' replaced 'my-package' in some files.
|
||||
grep -q 'new-package' setup.py .github/workflows/main.yml CONTRIBUTING.md
|
||||
# Check that the new repo URL replaced the old one in some files.
|
||||
grep -q 'https://github.com/epwalsh/new-repo' setup.py CONTRIBUTING.md
|
||||
# Double check that there are no lingering mentions of old names.
|
||||
for pattern in 'my[-_]package' 'https://github.com/allenai/python-package-template'; do
|
||||
if find . -type f -not -path './.git/*' | xargs grep "$pattern"; then
|
||||
echo "Found ${pattern} where it shouldn't be!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
echo "All good!"
|
||||
Reference in New Issue
Block a user