Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: replace poetry with setup.py #95

Merged
merged 1 commit into from
Sep 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ commit = True
tag = True
message = release(project): {current_version} → {new_version}

[bumpversion:file:pyproject.toml]
search = version = "{current_version}"
replace = version = "{new_version}"
[bumpversion:file:setup.py]
search = version="{current_version}"
replace = version="{new_version}"

[bumpversion:file:diamond_miner/__init__.py]
18 changes: 10 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- uses: dioptra-io/setup-poetry-action@v1
- name: Install package
run: poetry install
run: |
python -m venv venv
./venv/bin/pip install -e .[dev]
- name: Insert test data
run: poetry run tests/data/insert.py
run: ./venv/bin/python tests/data/insert.py
- name: Run tests
run: poetry run pytest --cov=diamond_miner --cov-report=xml
run: ./venv/bin/pytest --cov=diamond_miner --cov-report=xml
- uses: codecov/codecov-action@v3

mkdocs:
Expand All @@ -30,13 +31,14 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- uses: dioptra-io/setup-poetry-action@v1
- name: Install package
run: poetry install
run: |
python -m venv venv
./venv/bin/pip install -e .[dev]
- name: Build documentation
run: poetry run mkdocs build --strict
run: ./venv/bin/mkdocs build --strict
- name: Publish documentation
run: poetry run mkdocs gh-deploy --force --no-history --strict
run: ./venv/bin/mkdocs gh-deploy --force --no-history --strict
if: ${{ startsWith(github.ref, 'refs/tags/v') }}

pypi:
Expand Down
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
global-include *.pyx
global-include *.pxd
15 changes: 0 additions & 15 deletions build_ext.py

This file was deleted.

18 changes: 11 additions & 7 deletions docs/dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,29 @@ This library is developed on GitHub in the [`dioptra-io/diamond-miner`](https://
git clone [email protected]:dioptra-io/diamond-miner.git
cd diamond-miner/

# Create and enter a virtual environment
python -m venv venv
source venv/bin/activate

# Compile the Cython code and install the dependencies (once)
poetry install
pip install -e .

# Install the pre-commit hooks (once)
poetry run pre-commit install
pre-commit install

# Edit some files...
# Run poetry install again if you have edited Cython files (`.pyx`)
# Run pip install again if you have edited Cython files (`.pyx`)

# Run the tests
poetry run pytest
pytest

# Preview the documentation
poetry run mkdocs serve --watch diamond_miner --watch docs
mkdocs serve --watch diamond_miner --watch docs

# Commit...

# Tag a new version
poetry run bumpversion patch # or minor/major
bumpversion patch # or minor/major
```

## Test data
Expand All @@ -33,7 +37,7 @@ Most tests require a running instance of ClickHouse with pre-populated tables.
To start a ClickHouse server and insert the test data:
```bash
docker run --rm -d -p 8123:8123 clickhouse/clickhouse-server:22.6
poetry run tests/data/insert.py
python tests/data/insert.py
```

To use a different server, set the `DIAMOND_MINER_TEST_DATABASE_URL` environment variable (`http://localhost:8123` by default).
53 changes: 3 additions & 50 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,46 +1,6 @@
[tool.poetry]
name = "diamond-miner"
version = "1.0.3"
description = "High-speed, Internet-scale, load-balanced paths discovery."
license = "MIT"
authors = [
"Kevin Vermeulen <[email protected]>",
"Matthieu Gouel <[email protected]>",
"Maxime Mouchet <[email protected]>"
]
readme = "README.md"
homepage = "https://github.com/dioptra-io/diamond-miner"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Topic :: Internet",
"Typing :: Typed"
]

[tool.poetry.build]
# https://github.com/python-poetry/poetry/issues/7470
script = "build_ext.py"
generate-setup-file = true

[tool.poetry.dependencies]
python = ">=3.10,<4.0"
pych-client = "^0.3.1"
pygfc = "^1.0.5"
zstandard = ">=0.15.2,<0.19.0"

[tool.poetry.dev-dependencies]
bumpversion = "^0.6.0"
coverage = {extras = ["toml"], version = "^7.1.0"}
Cython = "^0.29.33"
hypothesis = "^6.68.2"
mkdocs-bibtex = "^2.8.13"
mkdocs-material = "^9.0.13"
mkdocstrings = {extras = ["python"], version = "^0.20.0"}
mypy = "^1.0.1"
pytest = "^7.2.1"
pytest-cov = "^4.0.0"
[build-system]
requires = ["setuptools", "Cython"]
build-backend = "setuptools.build_meta"

[tool.pytest.ini_options]
addopts = "--capture=no --doctest-modules --ignore=examples --log-cli-level=info --strict-markers --verbosity=2"
Expand Down Expand Up @@ -80,10 +40,3 @@ archs = ["x86_64", "aarch64"]

[tool.cibuildwheel.macos]
archs = ["universal2"]

[build-system]
requires = ["poetry-core>=1.0.0", "setuptools>=40.6.0", "Cython>=0.29.0"]
build-backend = "poetry.core.masonry.api"

[project]
requires-python = ">=3.10"
44 changes: 44 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from Cython.Build import cythonize
from setuptools import find_packages, setup

setup(
name="diamond-miner",
version="1.0.3",
license="MIT",
description="High-speed, Internet-scale, load-balanced paths discovery.",
author="Kevin Vermeulen, Matthieu Gouel, Maxime Mouchet",
url="https://github.com/dioptra-io/diamond-miner",
packages=find_packages(),
ext_modules=cythonize(
"diamond_miner/**/*.pyx",
compiler_directives={"binding": True, "embedsignature": True},
language_level=3,
),
python_requires=">=3.10",
install_requires=[
"pych-client~=0.3.1",
"pygfc~=1.0.5",
"zstandard>=0.15.2,<0.19.0",
],
extras_require={
"dev": [
"bumpversion~=0.6.0",
"coverage[toml]~=7.1.0",
"hypothesis~=6.68.2",
"mkdocs-bibtex~=2.8.13",
"mkdocs-material~=9.0.13",
"mkdocstrings[python]~=0.20.0",
"mypy~=1.0.1",
"pytest~=7.2.1",
"pytest-cov~=4.0.0",
]
},
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Topic :: Internet",
"Typing :: Typed",
],
)
1 change: 0 additions & 1 deletion tests/data/insert.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/usr/bin/env python3
import logging
import re
from collections.abc import Sequence
Expand Down
Loading