summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/ISSUE_TEMPLATE/---bug-report.md31
-rw-r--r--.github/ISSUE_TEMPLATE/---documentation.md22
-rw-r--r--.github/ISSUE_TEMPLATE/---everything-else.md19
-rw-r--r--.github/ISSUE_TEMPLATE/---feature-request.md23
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md15
-rw-r--r--.github/workflows/release.yml132
-rw-r--r--.github/workflows/tests.yml154
7 files changed, 396 insertions, 0 deletions
diff --git a/.github/ISSUE_TEMPLATE/---bug-report.md b/.github/ISSUE_TEMPLATE/---bug-report.md
new file mode 100644
index 0000000..1f8b618
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/---bug-report.md
@@ -0,0 +1,31 @@
+---
+name: "\U0001F41E Bug Report"
+about: Did you find a bug?
+title: ''
+labels: 'Bug'
+assignees: ''
+
+---
+
+<!--
+ Hi there! Thank you for discovering and submitting an issue.
+
+ Before you submit this; let's make sure of a few things.
+ Please make sure the following boxes are ticked if they are correct.
+ If not, please try and fulfill these first.
+-->
+
+<!-- Checked checkbox should look like this: [x] -->
+- [ ] I am on the [latest](https://github.com/sdispater/pendulum/releases/latest) Pendulum version.
+- [ ] I have searched the [issues](https://github.com/sdispater/pendulum/issues) of this repo and believe that this is not a duplicate.
+
+<!--
+ Once those are done, if you're able to fill in the following list with your information,
+ it'd be very helpful to whoever handles the issue.
+-->
+
+- **OS version and name**: <!-- Replace with version + name -->
+- **Pendulum version**: <!-- Replace with version -->
+
+## Issue
+<!-- Now feel free to write your issue, but please be descriptive! Thanks again 🙌 ❤️ -->
diff --git a/.github/ISSUE_TEMPLATE/---documentation.md b/.github/ISSUE_TEMPLATE/---documentation.md
new file mode 100644
index 0000000..0d4ac41
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/---documentation.md
@@ -0,0 +1,22 @@
+---
+name: "\U0001F4DA Documentation"
+about: Did you find errors, problems, or anything unintelligible in the docs (https://pendulum.eustace.io/docs)?
+title: ''
+labels: 'Documentation'
+assignees: ''
+
+---
+
+<!--
+ Hi there! Thank you for discovering and submitting an issue with our documentation.
+
+ Before you submit this; let's make sure of a few things.
+ Please make sure the following boxes are ticked if they are correct.
+ If not, please try and fulfill these first.
+-->
+
+<!-- Checked checkbox should look like this: [x] -->
+- [ ] I have searched the [issues](https://github.com/sdispater/pendulum/issues) of this repo and believe that this is not a duplicate.
+
+## Issue
+<!-- Now feel free to write your issue, but please be descriptive! Thanks again 🙌 ❤️ -->
diff --git a/.github/ISSUE_TEMPLATE/---everything-else.md b/.github/ISSUE_TEMPLATE/---everything-else.md
new file mode 100644
index 0000000..1fc60fa
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/---everything-else.md
@@ -0,0 +1,19 @@
+---
+name: "\U0001F5C3 Everything Else"
+about: For questions and issues that do not fall in any of the other categories. This
+ can include questions about Pendulum's roadmap.
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+<!-- Describe your question and issue here. This space is meant to be used for general questions that are neither bugs, feature requests, nor documentation issues. A good example would be a question regarding Pendulum's roadmap, for example.
+
+
+<!-- Checked checkbox should look like this: [x] -->
+- [ ] I have searched the [issues](https://github.com/sdispater/pendulum/issues) of this repo and believe that this is not a duplicate.
+- [ ] I have searched the [documentation](https://pendulum.eustace.io/docs/) and believe that my question is not covered.
+
+## Issue
+<!-- Now feel free to write your issue, but please be descriptive! Thanks again 🙌 ❤️ -->
diff --git a/.github/ISSUE_TEMPLATE/---feature-request.md b/.github/ISSUE_TEMPLATE/---feature-request.md
new file mode 100644
index 0000000..4605055
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/---feature-request.md
@@ -0,0 +1,23 @@
+---
+name: "\U0001F381 Feature Request"
+about: Do you have ideas for new features and improvements?
+title: ''
+labels: 'Feature'
+assignees: ''
+
+---
+
+<!--
+ Hi there! Thank you for wanting to make Pendulum better.
+
+ Before you submit this; let's make sure of a few things.
+ Please make sure the following boxes are ticked if they are correct.
+ If not, please try and fulfill these first.
+-->
+
+<!-- Checked checkbox should look like this: [x] -->
+- [ ] I have searched the [issues](https://github.com/sdispater/pendulum/issues) of this repo and believe that this is not a duplicate.
+- [ ] I have searched the [documentation](https://pendulum.eustace.io/docs/) and believe that my question is not covered.
+
+## Feature Request
+<!-- Now feel free to write your idea for improvement. Thanks again 🙌 ❤️ -->
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..4c0ce41
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,15 @@
+## Pull Request Check List
+
+<!--
+This is just a reminder about the most common mistakes. Please make sure that you tick all *appropriate* boxes. But please read our [contribution guide](https://python-poetry.org/docs/contributing/) at least once, it will save you unnecessary review cycles!
+-->
+
+- [ ] Added **tests** for changed code.
+- [ ] Updated **documentation** for changed code.
+
+<!--
+**Note**: If your Pull Request introduces a new feature or changes the current behavior, it should be based
+on the `develop` branch. If it's a bug fix or only a documentation update, it should be based on the `master` branch.
+
+If you have *any* questions to *any* of the points above, just **submit and ask**! This checklist is here to *help* you, not to deter you from contributing!
+-->
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..3dc1bf5
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,132 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - '*.*.*'
+
+jobs:
+
+ Linux:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Get tag
+ id: tag
+ run: |
+ echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
+ - name: Building release
+ run: |
+ make linux_release
+ - name: Upload distributions artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: pendulum-dist
+ path: dist/wheelhouse
+
+ MacOS:
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Get tag
+ id: tag
+ run: |
+ echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ - name: Build distributions
+ run: |
+ source $HOME/.poetry/env
+ poetry build -vvv
+ - name: Upload distribution artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: pendulum-dist
+ path: dist
+
+ Windows:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Get tag
+ id: tag
+ shell: bash
+ run: |
+ echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install and setup Poetry
+ run: |
+ Invoke-WebRequest https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -O get-poetry.py
+ python get-poetry.py --preview -y
+ - name: Build distributions
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry build -vvv
+ - name: Upload distribution artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: pendulum-dist
+ path: dist
+
+ Release:
+ needs: [Linux, MacOS, Windows]
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+ - name: Get tag
+ id: tag
+ run: |
+ echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
+ - name: Download distribution artifact
+ uses: actions/download-artifact@master
+ with:
+ name: pendulum-dist
+ path: dist
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
+ - name: Check distributions
+ run: |
+ ls -la dist
+ - name: Publish to PyPI
+ env:
+ POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
+ run: |
+ source $HOME/.poetry/env
+ poetry publish
+ - name: Create Release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
+ with:
+ tag_name: ${{ steps.tag.outputs.tag }}
+ release_name: ${{ steps.tag.outputs.tag }}
+ draft: false
+ prerelease: false
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..2e8b58e
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,154 @@
+name: Tests
+
+on: [push, pull_request]
+
+jobs:
+ Linting:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - name: Linting
+ run: |
+ pip install pre-commit
+ pre-commit run --all-files
+ Linux:
+ needs: Linting
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, pypy3]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ source $HOME/.poetry/env
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ source $HOME/.poetry/env
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ source $HOME/.poetry/env
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ source $HOME/.poetry/env
+ PENDULUM_EXTENSIONS=0 poetry run pytest -q tests
+ - name: Test
+ run: |
+ source $HOME/.poetry/env
+ poetry run pytest -q tests
+ poetry install
+
+ MacOS:
+ needs: Linting
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, pypy3]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ source $HOME/.poetry/env
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-fix-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ source $HOME/.poetry/env
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ source $HOME/.poetry/env
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ source $HOME/.poetry/env
+ PENDULUM_EXTENSIONS=0 poetry run pytest -q tests
+ - name: Test
+ run: |
+ source $HOME/.poetry/env
+ poetry run pytest -q tests
+ Windows:
+ needs: Linting
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ shell: bash
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and setup Poetry
+ run: |
+ Invoke-WebRequest https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -O get-poetry.py
+ python get-poetry.py --preview -y
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ $env:PENDULUM_EXTENSIONS = "0"
+ poetry run pytest -q tests
+ - name: Test
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry run pytest -q tests