janhoy opened a new pull request, #100:
URL: https://github.com/apache/solr-orbit/pull/100

   ### Description
   
   `MANIFEST.in` still points at the pre-rebrand `osbenchmark/` package (left 
behind by #14), so **no runtime resource reaches a built distribution** and an 
installed `solr-orbit` cannot run a benchmark at all.
   
   Missing from the wheel: all 37 cluster-config `.ini` files, the 6 Jinja 
templates, the `jvm.options` and `log4j2.properties` cluster-config templates, 
`resources/benchmark.ini`, and `min-version.txt`.
   
   The one that bites first is the cluster-configs. 
`_use_default_cluster_configs_dir` (`utils/repo.py:138`) resolves them from 
`<node.benchmark.root>/resources/cluster_configs`, which is the *installed 
package* directory, so `os.listdir` raises. `--cluster-config` defaults to 
`defaults` and `_load_cluster_config` deliberately does not catch the error, so 
an ordinary `solr-orbit run` fails. Also broken: `config.py:73` bootstrapping 
`~/.solr-orbit/benchmark.ini` on first run, and `version.py:83` reading 
`min-version.txt`.
   
   An editable install hides all of this, which is why `make develop` is fine — 
but `make install` is `uv tool install dist/*.whl`, and `docker/Dockerfile` 
builds and installs a wheel too, so the published `apache/solr-orbit` image 
ships the bug.
   
   Separately, `[tool.setuptools.packages.find]` had no `namespaces = false`, 
so setuptools treated **every** directory as a namespace package. The wheel 
shipped `docs/`, `docker/`, `logs/` and `scripts/` as importable top-level 
packages — `import docs` worked in an installed `solr-orbit`, and the whole 
Jekyll site travelled inside the distribution (144 files). `top_level.txt` is 
now just `solrorbit`.
   
   Six lines in total; no `package-data` changes are needed, since 
`include-package-data` already does the work once `MANIFEST.in` points at the 
right package.
   
   ### Issues Resolved
   
   Follow-up to #14, which renamed the package but left `MANIFEST.in` behind. 
No existing issue.
   
   ### Testing
   
   - [ ] New functionality includes testing
   
   Verified by hand, because this can only be observed in a built distribution:
   
   ```
   $ uv build --wheel
   $ uv venv /tmp/v && VIRTUAL_ENV=/tmp/v uv pip install 
dist/solr_orbit-0.1.0-py3-none-any.whl
   $ /tmp/v/bin/solr-orbit list cluster-configs
   ```
   
   Before: fails. After: lists all 12 cluster-configs and mixins. `import docs` 
goes from working to `ModuleNotFoundError`, and the wheel's `top_level.txt` 
goes from `docker docs logs scripts solrorbit` to `solrorbit`.
   
   Worth adding as a CI job — build the wheel, install it into a clean venv, 
run `solr-orbit list cluster-configs` — since no unit test can catch this class 
of bug. Happy to add that here or in a follow-up, whichever you prefer.
   


-- 
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]

Reply via email to