diff --git a/.github/workflows/python-code-format.yml b/.github/workflows/python-code-format.yml index da13f31..d83c2a2 100644 --- a/.github/workflows/python-code-format.yml +++ b/.github/workflows/python-code-format.yml @@ -23,7 +23,7 @@ jobs: name: Check Python code formatting steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 @@ -43,7 +43,7 @@ jobs: python -m flake8 ucapi --count --show-source --statistics - name: Check code formatting with isort run: | - python -m isort ucapi/. --check --verbose + python -m isort ucapi/. examples/. --check --verbose - name: Check code formatting with black run: | - python -m black ucapi --check --verbose + python -m black ucapi examples --check --verbose diff --git a/.github/workflows/python-publish-pypi.yml b/.github/workflows/python-publish-pypi.yml new file mode 100644 index 0000000..5605203 --- /dev/null +++ b/.github/workflows/python-publish-pypi.yml @@ -0,0 +1,59 @@ +name: Publish ucapi on PyPI + +on: + release: + types: [released] + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-22.04 + + name: Verify Python build context + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + if [ -f test-requirements.txt ]; then pip install -r test-requirements.txt; fi + - name: Analyzing the code with pylint + run: | + python -m pylint ucapi + - name: Lint with flake8 + run: | + python -m flake8 ucapi --count --show-source --statistics + - name: Check code formatting with isort + run: | + python -m isort ucapi/. examples/. --check --verbose + - name: Check code formatting with black + run: | + python -m black ucapi examples --check --verbose + + build: + name: Build and publish PyPi package + needs: verify + runs-on: ubuntu-22.04 + if: github.repository_owner == 'unfoldedcircle' + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade build setuptools setuptools_scm + - name: Build package + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..d900c3f --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,4 @@ +exclude .* +exclude MANIFEST.in +recursive-exclude .idea * +recursive-exclude .github * diff --git a/README.md b/README.md index 612b221..1f42307 100644 --- a/README.md +++ b/README.md @@ -28,24 +28,9 @@ Use pip: ```shell pip3 install ucapi ``` -## Usage -Install build tools: -```shell -pip3 install build setuptools setuptools_scm -``` - -Build: -```shell -python -m build -``` - -Local installation: -```shell -pip3 install --force-reinstall dist/ucapi-$VERSION-py3-none-any.whl -``` - -See [examples directory](examples) for a minimal integration driver example. More examples will be published. +See [examples directory](https://github.com/aitatoi/integration-python-library/blob/main/examples) for a minimal +integration driver example. More examples will be published. ### Environment Variables @@ -66,14 +51,15 @@ We use [SemVer](http://semver.org/) for versioning. For the versions available, ## Changelog -The major changes found in each new release are listed in the [changelog](CHANGELOG.md) and -under the GitHub [releases](https://github.com/unfoldedcircle/integration-python-library/releases). +The major changes found in each new release are listed in the [changelog](https://github.com/aitatoi/integration-python-library/blob/main/CHANGELOG.md) +and under the GitHub [releases](https://github.com/unfoldedcircle/integration-python-library/releases). ## Contributions -Please read our [contribution guidelines](./CONTRIBUTING.md) before opening a pull request. +Please read our [contribution guidelines](https://github.com/aitatoi/integration-python-library/blob/main/CONTRIBUTING.md) +before opening a pull request. ## License This project is licensed under the [**Mozilla Public License 2.0**](https://choosealicense.com/licenses/mpl-2.0/). -See the [LICENSE](LICENSE) file for details. +See the [LICENSE](https://github.com/aitatoi/integration-python-library/blob/main/LICENSE) file for details. diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 0000000..589960d --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,18 @@ +# Development Setup + +This library requires Python 3.10 or newer. + +Install build tools: +```shell +pip3 install build setuptools setuptools_scm +``` + +Build: +```shell +python -m build +``` + +Local installation: +```shell +pip3 install --force-reinstall dist/ucapi-$VERSION-py3-none-any.whl +```