Copilot commented on code in PR #22:
URL: https://github.com/apache/solr-orbit/pull/22#discussion_r3293753229
##########
PYTHON_SUPPORT_GUIDE.md:
##########
@@ -13,8 +13,8 @@ Make changes to the following files and open a PR titled
to the latest patch release such as `3.13.1`.
* `.github/workflows/integ-tests.yml`: Update supported Python versions in
the `python-versions` section.
Review Comment:
This guide instructs updating `.github/workflows/integ-tests.yml`, but that
workflow file is not present in the repo. Please update the guide to point at
the current CI entry point(s) that define the supported Python versions (or
remove this bullet if CI derives versions solely from `.ci/variables.json`).
##########
Makefile:
##########
@@ -83,18 +83,18 @@ test: develop
pytest tests/
it: pyinst check-java python-caches-clean tox-env-clean
- @which tox || $(PIP) install tox
+ @which tox || $(PIP) install "tox>=4"
tox
it312 it313: pyinst check-java python-caches-clean tox-env-clean
- @which tox || $(PIP) install tox
+ @which tox || $(PIP) install "tox>=4"
tox -e $(@:it%=py%)
Review Comment:
Same as above: this target only checks whether `tox` exists, not whether it
is new enough to read `[tool.tox]` from `pyproject.toml`. Please ensure
`tox>=4` is installed/used even when an older tox is already present on PATH.
##########
pyproject.toml:
##########
@@ -0,0 +1,211 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+[build-system]
+requires = ["setuptools>=68", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "solr-orbit"
+dynamic = ["version"]
+description = "Macrobenchmarking framework for Apache Solr"
+readme = {file = "README.md", content-type = "text/markdown"}
+license = {text = "Apache License, Version 2.0"}
+requires-python = ">=3.12,<3.14"
+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.12",
+ "Programming Language :: Python :: 3.13",
+]
+dependencies = [
+ # License: BSD
+ # Solr HTTP client for data operations (indexing, search, commit, optimize)
+ "pysolr>=3.10.0",
+ # License: Apache 2.0
+ # HTTP client for Solr V2 API admin operations
+ # transitive dependencies:
+ # urllib3: MIT
+ "requests>=2.28.0",
+ # License: BSD
+ "psutil>=5.8.0",
+ # License: MIT
+ "py-cpuinfo>=7.0.0",
+ # License: MIT
+ "tabulate>=0.9.0",
+ # License: MIT
+ "jsonschema>=3.1.1",
+ # License: BSD
+ "Jinja2>=3.1.3",
+ # License: BSD
+ "markupsafe>=2.0.1",
+ # License: MIT
+ # With 3.10.7, we get InvalidActorAddress exception while initialize Actor
+ "thespian>=3.10.1,<3.10.7",
+ # always use the latest version, these are certificate files...
+ # License: MPL 2.0
+ "certifi",
+ # License: Apache 2.0
+ "yappi>=1.4.0",
+ # License: BSD
+ "ijson>=2.6.1",
+ # License: Apache 2.0
+ # transitive dependencies:
+ # google-crc32c: Apache 2.0
+ "google-resumable-media>=1.1.0",
+ # License: Apache 2.0
+ "google-auth>=1.22.1",
+ # License: MIT
+ "wheel>=0.38.4",
+ # License: Apache 2.0
+ # transitive dependencies:
+ # botocore: Apache 2.0
+ # jmespath: MIT
+ # s3transfer: Apache 2.0
+ "boto3>=1.28.62",
+ # Licence: BSD-3-Clause
+ "zstandard>=0.22.0",
+ # License: BSD
+ # Required for knnvector workload
+ "h5py>=3.10.0",
+ # License: BSD
+ # Required for knnvector workload
+ "numpy>=1.24.2,<=1.26.4",
+ # License: MIT
+ "tqdm",
+ # License: MIT
+ "faker",
+ # License: BSD
+ "pandas>=1.4.3",
+ # License: MIT
+ "mimesis==11.1.0",
+ # Licence: BSD-3-Clause
+ "dask",
+ # Licence: BSD-3-Clause
+ "dask[distributed]",
+ # Licence: BSD-3-Clause
+ "bokeh!=3.0.*,>=2.4.2",
+ # License: MIT
+ "pydantic>=2.10.6",
+ # License: MIT
+ "pydantic_core>=2.27.2",
+ # License: MIT
+ "PyYAML>=5.4",
+]
+
+[project.urls]
+Homepage = "https://github.com/apache/solr-orbit"
+
+[project.scripts]
+solr-orbit = "osbenchmark.benchmark:main"
+solr-orbitd = "osbenchmark.benchmarkd:main"
+
+[project.optional-dependencies]
+test = [
+ "ujson",
+ "pytest==7.2.2",
+ "pytest-benchmark>=4.0.0",
+ "pytest-asyncio==0.14.0",
+]
+develop = [
+ "ujson",
+ "pytest==7.2.2",
+ "pytest-benchmark>=4.0.0",
Review Comment:
`pytest-benchmark` was previously pinned in test dependencies, but here it
is loosened to `>=4.0.0`. If the goal is a packaging/config migration without
behavioral changes, consider keeping the previous pin (or documenting the
intentional version change) to preserve reproducible test environments.
##########
Makefile:
##########
@@ -83,18 +83,18 @@ test: develop
pytest tests/
it: pyinst check-java python-caches-clean tox-env-clean
- @which tox || $(PIP) install tox
+ @which tox || $(PIP) install "tox>=4"
tox
Review Comment:
`make it` installs tox only if it is missing (`which tox`), but after
removing `tox.ini` the project now relies on tox v4+ reading config from
`pyproject.toml`. If a user already has tox v3 on PATH, this target will skip
installation and tox will fail to find config. Consider enforcing a minimum tox
version (e.g., check `tox --version` and install/upgrade when <4).
##########
pyproject.toml:
##########
@@ -0,0 +1,211 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+[build-system]
+requires = ["setuptools>=68", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "solr-orbit"
+dynamic = ["version"]
+description = "Macrobenchmarking framework for Apache Solr"
+readme = {file = "README.md", content-type = "text/markdown"}
+license = {text = "Apache License, Version 2.0"}
+requires-python = ">=3.12,<3.14"
+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.12",
+ "Programming Language :: Python :: 3.13",
+]
+dependencies = [
+ # License: BSD
+ # Solr HTTP client for data operations (indexing, search, commit, optimize)
+ "pysolr>=3.10.0",
+ # License: Apache 2.0
+ # HTTP client for Solr V2 API admin operations
+ # transitive dependencies:
+ # urllib3: MIT
+ "requests>=2.28.0",
+ # License: BSD
+ "psutil>=5.8.0",
+ # License: MIT
+ "py-cpuinfo>=7.0.0",
+ # License: MIT
+ "tabulate>=0.9.0",
+ # License: MIT
+ "jsonschema>=3.1.1",
+ # License: BSD
+ "Jinja2>=3.1.3",
+ # License: BSD
+ "markupsafe>=2.0.1",
+ # License: MIT
+ # With 3.10.7, we get InvalidActorAddress exception while initialize Actor
+ "thespian>=3.10.1,<3.10.7",
+ # always use the latest version, these are certificate files...
+ # License: MPL 2.0
+ "certifi",
+ # License: Apache 2.0
+ "yappi>=1.4.0",
+ # License: BSD
+ "ijson>=2.6.1",
+ # License: Apache 2.0
+ # transitive dependencies:
+ # google-crc32c: Apache 2.0
+ "google-resumable-media>=1.1.0",
+ # License: Apache 2.0
+ "google-auth>=1.22.1",
+ # License: MIT
+ "wheel>=0.38.4",
+ # License: Apache 2.0
+ # transitive dependencies:
+ # botocore: Apache 2.0
+ # jmespath: MIT
+ # s3transfer: Apache 2.0
+ "boto3>=1.28.62",
+ # Licence: BSD-3-Clause
+ "zstandard>=0.22.0",
+ # License: BSD
+ # Required for knnvector workload
+ "h5py>=3.10.0",
+ # License: BSD
+ # Required for knnvector workload
+ "numpy>=1.24.2,<=1.26.4",
+ # License: MIT
+ "tqdm",
+ # License: MIT
+ "faker",
+ # License: BSD
+ "pandas>=1.4.3",
+ # License: MIT
+ "mimesis==11.1.0",
+ # Licence: BSD-3-Clause
+ "dask",
+ # Licence: BSD-3-Clause
+ "dask[distributed]",
+ # Licence: BSD-3-Clause
+ "bokeh!=3.0.*,>=2.4.2",
+ # License: MIT
+ "pydantic>=2.10.6",
+ # License: MIT
+ "pydantic_core>=2.27.2",
+ # License: MIT
+ "PyYAML>=5.4",
+]
+
+[project.urls]
+Homepage = "https://github.com/apache/solr-orbit"
+
+[project.scripts]
+solr-orbit = "osbenchmark.benchmark:main"
+solr-orbitd = "osbenchmark.benchmarkd:main"
+
+[project.optional-dependencies]
+test = [
+ "ujson",
+ "pytest==7.2.2",
+ "pytest-benchmark>=4.0.0",
+ "pytest-asyncio==0.14.0",
+]
+develop = [
+ "ujson",
+ "pytest==7.2.2",
+ "pytest-benchmark>=4.0.0",
Review Comment:
Same issue as the `test` extra: `pytest-benchmark` is now `>=4.0.0` in the
`develop` extra. If this upgrade is intentional, it would help to call it out;
otherwise consider matching the previous pinned version to avoid unplanned
changes in developer/test tooling.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]