Skip to content
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 .ci/variables.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"prerequisite_versions": {
"PIP": "21.2.4",
"SETUPTOOLS": "58.0.4",
"WHEEL": "0.37.0"
"PIP": "22.2",
"SETUPTOOLS": "63.2.0",
"WHEEL": "0.37.1"
},
"python_versions": {
"PY38": "3.8.13",
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfiles/Dockerfile-dev
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RUN apt-get -y update && \

RUN mkdir -p /rally/esrally
COPY setup.py /rally/
COPY setup.cfg /rally/
COPY pyproject.toml /rally/
COPY README.md /rally/
COPY MANIFEST.in /rally/
COPY esrally/ /rally/esrally/
Expand Down
125 changes: 125 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,131 @@
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "esrally"
dynamic = ["version"]
authors = [
{name="Daniel Mitterdorfer", email="daniel.mitterdorfer@gmail.com"},
]
description = "Macrobenchmarking framework for Elasticsearch"
readme = "README.md"
license = {text = "Apache License 2.0"}
requires-python = ">=3.8"
classifiers=[
"Topic :: System :: Benchmark",
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: Apache Software License",
"Intended Audience :: Developers",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3 :: Only",
]
################################################################################################
#
# Adapt `create-notice.sh` whenever changing dependencies here.
#
# That script grabs all license files so we include them in the notice file.
#
################################################################################################
dependencies = [
# License: Apache 2.0
# transitive dependencies:
# urllib3: MIT
# aiohttp: Apache 2.0
"elasticsearch[async]==7.14.0",
"urllib3==1.26.9",
# License: BSD
"psutil==5.8.0",
# License: MIT
"py-cpuinfo==7.0.0",
# License: MIT
"tabulate==0.8.9",
# License: MIT
"jsonschema==3.1.1",
# License: BSD
# transitive dependency Markupsafe: BSD
"Jinja2==2.11.3",
"markupsafe==2.0.1",
# License: MIT
"thespian==3.10.1",
# recommended library for thespian to identify actors more easily with `ps`
# "setproctitle==1.1.10",
# always use the latest version, these are certificate files...
# License: MPL 2.0
"certifi",
# License: MIT
"yappi==1.3.3",
# License: BSD
"ijson==2.6.1",
# License: Apache 2.0
# transitive dependencies:
# google-crc32c: Apache 2.0
"google-resumable-media[requests]==1.1.0",
# License: Apache 2.0
"google-auth==1.22.1",
]

[project.optional-dependencies]
s3 = [
# License: Apache 2.0
# transitive dependencies:
# botocore: Apache 2.0
# jmespath: MIT
# s3transfer: Apache 2.0
"boto3==1.18.46",
]
# These packages are only required when developing Rally
develop = [
# s3
"boto3==1.18.46",
# tests
"ujson",
"pytest==6.2.5",
"pytest-benchmark==3.2.2",
"pytest-asyncio==0.18.1",
"tox==3.14.0",
"sphinx==4.2.0",
"furo==2022.06.21",
"twine==1.15.0",
"wheel==0.33.6",
"github3.py==1.3.0",
"pylint==2.6.0",
"black==22.3.0",
"isort==5.8.0",
"trustme==0.9.0",
"pytest-httpserver==1.0.4",
]

[project.scripts]
esrally = "esrally.rally:main"
esrallyd = "esrally.rallyd:main"

[project.urls]
"Changelog" = "https://github.com/elastic/rally/blob/master/CHANGELOG.md"
"Documentation" = "https://esrally.readthedocs.io/"
"Code" = "https://github.com/elastic/rally"
"Issue tracker" = "https://github.com/elastic/rally/issues"


[tool.black]
line-length = 140
target-version = ['py38']

[tool.isort]
profile = 'black'

[tool.pytest.ini_options]
# set to true for more verbose output of tests
log_cli = false
log_level = "INFO"
addopts = "--verbose --color=yes"
testpaths = "tests"
junit_family = "xunit2"
junit_logging = "all"
asyncio_mode = "strict"
12 changes: 0 additions & 12 deletions setup.cfg

This file was deleted.

124 changes: 5 additions & 119 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,134 +15,20 @@
# specific language governing permissions and limitations
# under the License.

import os.path
import re
from os.path import dirname, join

try:
from setuptools import find_packages, setup
except ImportError:
print("*** Could not find setuptools. Did you install pip3? *** \n\n")
raise
from setuptools import find_packages, setup

with open(os.path.join(os.path.dirname(__file__), "esrally/_version.py")) as f:
raw_version = f.read().strip()
version = re.match(r'__version__ = "(.+)"', raw_version).group(1)

def str_from_file(name):
with open(join(dirname(__file__), name)) as f:
return f.read().strip()


raw_version = str_from_file("esrally/_version.py")
version = re.match(r'__version__ = "(.+)"', raw_version).group(1)

# tuples of (major, minor) of supported Python versions ordered from lowest to highest
supported_python_versions = [(3, 8), (3, 9), (3, 10)]

################################################################################################
#
# Adapt `create-notice.sh` whenever changing dependencies here.
#
# That script grabs all license files so we include them in the notice file.
#
################################################################################################
install_requires = [
# License: Apache 2.0
# transitive dependencies:
# urllib3: MIT
# aiohttp: Apache 2.0
"elasticsearch[async]==7.14.0",
"urllib3==1.26.9",
# License: BSD
"psutil==5.8.0",
# License: MIT
"py-cpuinfo==7.0.0",
# License: MIT
"tabulate==0.8.9",
# License: MIT
"jsonschema==3.1.1",
# License: BSD
# transitive dependency Markupsafe: BSD
"Jinja2==2.11.3",
"markupsafe==2.0.1",
# License: MIT
"thespian==3.10.1",
# recommended library for thespian to identify actors more easily with `ps`
# "setproctitle==1.1.10",
# always use the latest version, these are certificate files...
# License: MPL 2.0
"certifi",
# License: MIT
"yappi==1.3.3",
# License: BSD
"ijson==2.6.1",
# License: Apache 2.0
# transitive dependencies:
# google-crc32c: Apache 2.0
"google-resumable-media[requests]==1.1.0",
# License: Apache 2.0
"google-auth==1.22.1",
]

s3_require = [
# License: Apache 2.0
# transitive dependencies:
# botocore: Apache 2.0
# jmespath: MIT
# s3transfer: Apache 2.0
"boto3==1.18.46",
]

tests_require = ["ujson", "pytest==6.2.5", "pytest-benchmark==3.2.2", "pytest-asyncio==0.18.1"]

# These packages are only required when developing Rally
develop_require = [
"tox==3.14.0",
"sphinx==4.2.0",
"furo==2022.06.21",
"twine==1.15.0",
"wheel==0.33.6",
"github3.py==1.3.0",
"pylint==2.6.0",
"black==22.3.0",
"isort==5.8.0",
"trustme==0.9.0",
"pytest-httpserver==1.0.4",
]

python_version_classifiers = ["Programming Language :: Python :: {}.{}".format(major, minor) for major, minor in supported_python_versions]

first_supported_version = "{}.{}".format(supported_python_versions[0][0], supported_python_versions[0][1])

# we call the tool rally, but it will be published as esrally on pypi
setup(
name="esrally",
maintainer="Daniel Mitterdorfer",
maintainer_email="daniel.mitterdorfer@gmail.com",
version=version,
description="Macrobenchmarking framework for Elasticsearch",
long_description=str_from_file("README.md"),
long_description_content_type="text/markdown",
url="https://github.com/elastic/rally",
license="Apache License, Version 2.0",
packages=find_packages(where=".", exclude=("tests*", "benchmarks*", "it*")),
include_package_data=True,
python_requires=">={}".format(first_supported_version),
package_data={"": ["*.json", "*.yml"]},
install_requires=install_requires,
test_suite="tests",
tests_require=tests_require,
extras_require={"develop": tests_require + develop_require + s3_require, "s3": s3_require},
entry_points={
"console_scripts": ["esrally=esrally.rally:main", "esrallyd=esrally.rallyd:main"],
},
classifiers=[
"Topic :: System :: Benchmark",
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: Apache Software License",
"Intended Audience :: Developers",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
]
+ python_version_classifiers,
zip_safe=False,
)