diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/ISSUE_TEMPLATE/---bug-report.md | 31 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/---documentation.md | 22 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/---everything-else.md | 19 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/---feature-request.md | 23 | ||||
-rw-r--r-- | .github/PULL_REQUEST_TEMPLATE.md | 15 | ||||
-rw-r--r-- | .github/workflows/release.yml | 132 | ||||
-rw-r--r-- | .github/workflows/tests.yml | 154 |
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 |