Add Python source distribution (#221)

* Add Python source distribution

* Fixes

* Fix Python Test
This commit is contained in:
Kevin Dewald 2023-03-11 11:55:47 -08:00 committed by GitHub
parent 8eac7b0aca
commit dbba8cb6c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 220 additions and 13 deletions

View File

@ -3,6 +3,42 @@ name: PyPI Test Release
on: [push, pull_request]
jobs:
build_sdist:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
cache: "pip"
- name: Build source distribution
run: |
pip3 install build twine
python3 -m build --sdist
- name: Upload files
uses: actions/upload-artifact@v3
with:
name: simplepyble
path: dist/*.tar.gz
- name: Check packages
run: twine check dist/*.tar.gz
- name: Publish packages
if: ${{ env.HAS_TWINE_USERNAME == 'true' }}
run: |
twine upload --repository testpypi --skip-existing dist/*.tar.gz --verbose
env:
HAS_TWINE_USERNAME: ${{ secrets.TEST_PYPI_USER != '' }}
TWINE_USERNAME: ${{ secrets.TEST_PYPI_USER }}
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }}
build_wheels:
runs-on: ${{ matrix.os }}
@ -39,8 +75,6 @@ jobs:
CIBW_ARCHS_MACOS: x86_64 universal2 arm64
CIBW_ARCHS_WINDOWS: AMD64 x86
CIBW_SKIP: "*musllinux_* pp*"
with:
package-dir: simplepyble
- name: Upload wheels
uses: actions/upload-artifact@v3

View File

@ -148,7 +148,6 @@ jobs:
- name: Install SimplePyBLE with Plain flavor
run: python setup.py install --plain
working-directory: ./simplepyble
- name: Run PyTest
run: pytest

3
.gitignore vendored
View File

@ -6,8 +6,7 @@ _doxygen
_skbuild
/build_*
simplepyble/build
simplepyble/dist
/dist
__pycache__
*.egg-info

178
MANIFEST.in Normal file
View File

@ -0,0 +1,178 @@
include LICENSE.md
include VERSION
include cmake/epilogue.cmake
include cmake/find/FindDBus1.cmake
include cmake/find/Findfmt.cmake
include cmake/parse_version.cmake
include cmake/prelude.cmake
include pyproject.toml
include setup.py
include simpleble/CMakeLists.txt
include simpleble/cmake/simpleble.pc.in
include simpleble/include/simpleble/Adapter.h
include simpleble/include/simpleble/AdapterSafe.h
include simpleble/include/simpleble/Characteristic.h
include simpleble/include/simpleble/Descriptor.h
include simpleble/include/simpleble/Exceptions.h
include simpleble/include/simpleble/Logging.h
include simpleble/include/simpleble/Peripheral.h
include simpleble/include/simpleble/PeripheralSafe.h
include simpleble/include/simpleble/Service.h
include simpleble/include/simpleble/SimpleBLE.h
include simpleble/include/simpleble/Types.h
include simpleble/include/simpleble/Utils.h
include simpleble/include/simpleble_c/adapter.h
include simpleble/include/simpleble_c/logging.h
include simpleble/include/simpleble_c/peripheral.h
include simpleble/include/simpleble_c/simpleble.h
include simpleble/include/simpleble_c/types.h
include simpleble/include/simpleble_c/utils.h
include simpleble/src/CommonUtils.h
include simpleble/src/Exceptions.cpp
include simpleble/src/Logging.cpp
include simpleble/src/LoggingInternal.h
include simpleble/src/Utils.cpp
include simpleble/src/backends/common/AdapterBaseTypes.h
include simpleble/src/backends/common/CharacteristicBase.cpp
include simpleble/src/backends/common/CharacteristicBase.h
include simpleble/src/backends/common/DescriptorBase.cpp
include simpleble/src/backends/common/DescriptorBase.h
include simpleble/src/backends/common/ServiceBase.cpp
include simpleble/src/backends/common/ServiceBase.h
include simpleble/src/backends/linux/AdapterBase.cpp
include simpleble/src/backends/linux/AdapterBase.h
include simpleble/src/backends/linux/Bluez.cpp
include simpleble/src/backends/linux/Bluez.h
include simpleble/src/backends/linux/PeripheralBase.cpp
include simpleble/src/backends/linux/PeripheralBase.h
include simpleble/src/backends/macos/AdapterBase.h
include simpleble/src/backends/macos/AdapterBase.mm
include simpleble/src/backends/macos/AdapterBaseMacOS.h
include simpleble/src/backends/macos/AdapterBaseMacOS.mm
include simpleble/src/backends/macos/PeripheralBase.h
include simpleble/src/backends/macos/PeripheralBase.mm
include simpleble/src/backends/macos/PeripheralBaseMacOS.h
include simpleble/src/backends/macos/PeripheralBaseMacOS.mm
include simpleble/src/backends/macos/Utils.h
include simpleble/src/backends/macos/Utils.mm
include simpleble/src/backends/plain/AdapterBase.cpp
include simpleble/src/backends/plain/AdapterBase.h
include simpleble/src/backends/plain/PeripheralBase.cpp
include simpleble/src/backends/plain/PeripheralBase.h
include simpleble/src/backends/windows/AdapterBase.cpp
include simpleble/src/backends/windows/AdapterBase.h
include simpleble/src/backends/windows/PeripheralBase.cpp
include simpleble/src/backends/windows/PeripheralBase.h
include simpleble/src/backends/windows/Utils.cpp
include simpleble/src/backends/windows/Utils.h
include simpleble/src/builders/AdapterBuilder.cpp
include simpleble/src/builders/AdapterBuilder.h
include simpleble/src/builders/CharacteristicBuilder.cpp
include simpleble/src/builders/CharacteristicBuilder.h
include simpleble/src/builders/DescriptorBuilder.cpp
include simpleble/src/builders/DescriptorBuilder.h
include simpleble/src/builders/PeripheralBuilder.cpp
include simpleble/src/builders/PeripheralBuilder.h
include simpleble/src/builders/ServiceBuilder.cpp
include simpleble/src/builders/ServiceBuilder.h
include simpleble/src/external/kvn_safe_callback.hpp
include simpleble/src/external/logfwd.hpp
include simpleble/src/frontends/base/Adapter.cpp
include simpleble/src/frontends/base/Characteristic.cpp
include simpleble/src/frontends/base/Descriptor.cpp
include simpleble/src/frontends/base/Peripheral.cpp
include simpleble/src/frontends/base/Service.cpp
include simpleble/src/frontends/safe/AdapterSafe.cpp
include simpleble/src/frontends/safe/PeripheralSafe.cpp
include simpleble/src_c/adapter.cpp
include simpleble/src_c/logging.cpp
include simpleble/src_c/peripheral.cpp
include simpleble/src_c/simpleble.cpp
include simpleble/src_c/utils.cpp
include simplebluez/CMakeLists.txt
include simplebluez/cmake/simplebluez.pc.in
include simplebluez/include/simplebluez/Adapter.h
include simplebluez/include/simplebluez/Agent.h
include simplebluez/include/simplebluez/Bluez.h
include simplebluez/include/simplebluez/Characteristic.h
include simplebluez/include/simplebluez/Descriptor.h
include simplebluez/include/simplebluez/Device.h
include simplebluez/include/simplebluez/Exceptions.h
include simplebluez/include/simplebluez/ProxyOrg.h
include simplebluez/include/simplebluez/ProxyOrgBluez.h
include simplebluez/include/simplebluez/Service.h
include simplebluez/include/simplebluez/Types.h
include simplebluez/include/simplebluez/interfaces/Adapter1.h
include simplebluez/include/simplebluez/interfaces/Agent1.h
include simplebluez/include/simplebluez/interfaces/AgentManager1.h
include simplebluez/include/simplebluez/interfaces/Battery1.h
include simplebluez/include/simplebluez/interfaces/Device1.h
include simplebluez/include/simplebluez/interfaces/GattCharacteristic1.h
include simplebluez/include/simplebluez/interfaces/GattDescriptor1.h
include simplebluez/include/simplebluez/interfaces/GattService1.h
include simplebluez/src/Adapter.cpp
include simplebluez/src/Agent.cpp
include simplebluez/src/Bluez.cpp
include simplebluez/src/Characteristic.cpp
include simplebluez/src/Descriptor.cpp
include simplebluez/src/Device.cpp
include simplebluez/src/Exceptions.cpp
include simplebluez/src/Logging.cpp
include simplebluez/src/Logging.h
include simplebluez/src/ProxyOrg.cpp
include simplebluez/src/ProxyOrgBluez.cpp
include simplebluez/src/Service.cpp
include simplebluez/src/interfaces/Adapter1.cpp
include simplebluez/src/interfaces/Agent1.cpp
include simplebluez/src/interfaces/AgentManager1.cpp
include simplebluez/src/interfaces/Battery1.cpp
include simplebluez/src/interfaces/Device1.cpp
include simplebluez/src/interfaces/GattCharacteristic1.cpp
include simplebluez/src/interfaces/GattDescriptor1.cpp
include simplebluez/src/interfaces/GattService1.cpp
include simpledbus/CMakeLists.txt
include simpledbus/cmake/simpledbus.pc.in
include simpledbus/include/simpledbus/advanced/Interface.h
include simpledbus/include/simpledbus/advanced/Proxy.h
include simpledbus/include/simpledbus/base/Connection.h
include simpledbus/include/simpledbus/base/Exceptions.h
include simpledbus/include/simpledbus/base/Holder.h
include simpledbus/include/simpledbus/base/Message.h
include simpledbus/include/simpledbus/base/Path.h
include simpledbus/include/simpledbus/external/kvn_safe_callback.hpp
include simpledbus/include/simpledbus/external/logfwd.hpp
include simpledbus/include/simpledbus/interfaces/ObjectManager.h
include simpledbus/src/advanced/Interface.cpp
include simpledbus/src/advanced/Proxy.cpp
include simpledbus/src/base/Connection.cpp
include simpledbus/src/base/Exceptions.cpp
include simpledbus/src/base/Holder.cpp
include simpledbus/src/base/Logging.cpp
include simpledbus/src/base/Logging.h
include simpledbus/src/base/Message.cpp
include simpledbus/src/base/Path.cpp
include simpledbus/src/interfaces/ObjectManager.cpp
include simplepyble/CMakeLists.txt
include simplepyble/README.rst
include simplepyble/requirements.txt
include simplepyble/src/main.cpp
include simplepyble/src/simplepyble/__init__.py
include simplepyble/src/wrap_adapter.cpp
include simplepyble/src/wrap_characteristic.cpp
include simplepyble/src/wrap_descriptor.cpp
include simplepyble/src/wrap_peripheral.cpp
include simplepyble/src/wrap_service.cpp
include simplepyble/src/wrap_types.cpp
prune .github
prune docs
prune examples
prune simpleble/test
prune simplebluez/test
prune simpledbus/test
prune simplersble
prune utils
exclude MANIFEST.in
exclude .clang-format
exclude .gitignore
exclude .readthedocs.yaml
exclude README.rst

View File

@ -17,8 +17,7 @@ argparser.add_argument('--plain', help='Use Plain SimpleBLE', required=False, a
args, unknown = argparser.parse_known_args()
sys.argv = [sys.argv[0]] + unknown
here = pathlib.Path(__file__).parent.resolve()
root = here.parent.resolve()
root = pathlib.Path(__file__).parent.resolve()
# Generate the version string
# TODO: Make the dev portion smarter by looking at tags.
@ -26,7 +25,7 @@ version_str = (root / "VERSION").read_text(encoding="utf-8").strip()
version_str += ".dev1" # ! Ensure it matches the intended release version!
# Get the long description from the README file
long_description = (here / "README.rst").read_text(encoding="utf-8")
long_description = (root / "simplepyble" / "README.rst").read_text(encoding="utf-8")
cmake_options = []
cmake_options.append(f"-Dpybind11_DIR={pybind11.get_cmake_dir()}")
@ -53,10 +52,11 @@ skbuild.setup(
long_description_content_type='text/x-rst',
packages=["simplepyble"],
package_dir={"": "src"},
package_dir={"": "simplepyble/src"},
cmake_source_dir="simplepyble",
cmake_args=cmake_options,
cmake_process_manifest_hook=exclude_unnecessary_files,
cmake_install_dir="src/simplepyble",
cmake_install_dir="simplepyble/src/simplepyble",
setup_requires=[
"setuptools>=42",
@ -66,9 +66,6 @@ skbuild.setup(
"pybind11",
],
install_requires=[],
test_requires=[
"pytest",
],
extras_require={},
platforms="Windows, macOS, Linux",
python_requires=">=3.7",