Update repository to match Bluesky standards - #352
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR modernizes the repository’s packaging, tooling, and CI to align with current Bluesky conventions: migrating to pyproject.toml, switching to ruff, and adopting pixi for managing dev/test environments. In addition to tooling changes, it introduces/updates several runtime modules and adds substantial new test coverage across the manager subsystem.
Changes:
- Migrate packaging/configuration to
pyproject.toml(removing legacysetup.py,requirements*.txt, and related workflows) and update CI/release automation accordingly. - Switch lint/format workflow to
ruffviapre-commit, and update scripts/CI to run tests/builds viapixienvironments. - Add/adjust manager runtime modules (e.g., JSON-RPC handler, logging helpers, run monitoring, task result storage, config schema) and expand the test suite.
Reviewed changes
Copilot reviewed 53 out of 90 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| store_test_durations.sh | Run pytest via pixi (py313 environment). |
| src/bluesky_queueserver/tests/conftest.py | Touched (diff not provided in prompt). |
| src/bluesky_queueserver/tests/common.py | Add JSON-RPC message helper for tests. |
| src/bluesky_queueserver/tests/init.py | Touched (diff not provided in prompt). |
| src/bluesky_queueserver/profile_collection_sim/user_group_permissions.yaml | Add sample user-group permission rules for simulated profile collection. |
| src/bluesky_queueserver/profile_collection_sim/99-custom.py | Add simulated devices/plans/functions for demos/tests. |
| src/bluesky_queueserver/profile_collection_sim/15-plans.py | Add plan imports and an example “marked up” count wrapper. |
| src/bluesky_queueserver/profile_collection_sim/05-run-engine.py | Add RunEngine + BestEffortCallback setup for sim profile collection. |
| src/bluesky_queueserver/profile_collection_sim/00-ophyd.py | Add simulated ophyd objects into global namespace for sim startup. |
| src/bluesky_queueserver/manager/worker.py | Small formatting/IO tweaks (f-string; open() mode cleanup). |
| src/bluesky_queueserver/manager/utils.py | Add utility helpers (to_boolean, dict filtering). |
| src/bluesky_queueserver/manager/tests/test_zmq_api_base.py | Minor test cleanups (loop vars, string asserts, file reads, comprehensions). |
| src/bluesky_queueserver/manager/tests/test_utils.py | Add tests for filter_dict_by_permitted_keys. |
| src/bluesky_queueserver/manager/tests/test_task_results.py | Add tests for new TaskResults. |
| src/bluesky_queueserver/manager/tests/test_start_re_manager_cli.py | Adjust imports and file reads. |
| src/bluesky_queueserver/manager/tests/test_start_manager.py | Loop variable cleanup. |
| src/bluesky_queueserver/manager/tests/test_qserver_console.py | Adjust imports. |
| src/bluesky_queueserver/manager/tests/test_qserver_cli.py | Reformat asserts and fix a missing assert. |
| src/bluesky_queueserver/manager/tests/test_profile_tools.py | Adjust imports. |
| src/bluesky_queueserver/manager/tests/test_plan_queue_ops.py | Remove unused enumerate variable. |
| src/bluesky_queueserver/manager/tests/test_plan_monitoring.py | Add tests for run monitoring components. |
| src/bluesky_queueserver/manager/tests/test_output_streaming.py | Add tests for console/info output streaming components. |
| src/bluesky_queueserver/manager/tests/test_manager.py | Add tests for manager request parameter validation helper. |
| src/bluesky_queueserver/manager/tests/test_manager_options.py | Adjust imports. |
| src/bluesky_queueserver/manager/tests/test_logging.py | Add tests for PPrintForLogging. |
| src/bluesky_queueserver/manager/tests/test_json_rpc.py | Add tests for new JSON-RPC response manager. |
| src/bluesky_queueserver/manager/tests/test_ip_kernel_func.py | Adjust imports and fix a missing assert. |
| src/bluesky_queueserver/manager/tests/test_info_streaming.py | Adjust imports. |
| src/bluesky_queueserver/manager/tests/test_gen_lists.py | Add CLI/API tests around list generation tooling. |
| src/bluesky_queueserver/manager/tests/test_fixtures.py | Add fixture-level smoke tests for re_manager_cmd. |
| src/bluesky_queueserver/manager/tests/test_conversions.py | Reformat test data structures. |
| src/bluesky_queueserver/manager/tests/test_console_monitor_cli.py | Adjust imports. |
| src/bluesky_queueserver/manager/tests/test_config.py | Add tests for config schema parsing/validation behavior. |
| src/bluesky_queueserver/manager/tests/test_comms.py | Loop variable cleanup. |
| src/bluesky_queueserver/manager/tests/test_annotation_decorator.py | Simplify generators; ruff-related typing ignores. |
| src/bluesky_queueserver/manager/tests/spreadsheet_custom_functions.py | Add custom spreadsheet parsing helper for tests. |
| src/bluesky_queueserver/manager/tests/plan_lists.py | Add spreadsheet generation helpers and sample plan list. |
| src/bluesky_queueserver/manager/tests/conftest.py | Add autouse fixture to clear registered items before/after each test. |
| src/bluesky_queueserver/manager/tests/common.py | Minor IO and exception-chaining adjustments; simplify any() usage. |
| src/bluesky_queueserver/manager/tests/init.py | Touched (diff not provided in prompt). |
| src/bluesky_queueserver/manager/task_results.py | Add async task result retention/storage helper. |
| src/bluesky_queueserver/manager/start_manager.py | Minor logger message formatting changes. |
| src/bluesky_queueserver/manager/qserver_cli.py | Improve exception chaining; simplify file reads; improve error propagation. |
| src/bluesky_queueserver/manager/profile_tools.py | Minor message formatting and attribute assignment updates. |
| src/bluesky_queueserver/manager/profile_ops.py | Switch to OSError and add exception chaining; minor comprehensions and formatting updates. |
| src/bluesky_queueserver/manager/plan_queue_ops.py | Minor error formatting and exception chaining in queue ops. |
| src/bluesky_queueserver/manager/plan_monitoring.py | Add run list + RE callback for run open/close tracking. |
| src/bluesky_queueserver/manager/manager.py | Minor loop var cleanup; exception chaining; log message formatting. |
| src/bluesky_queueserver/manager/logging_setup.py | Add logger setup helper and PPrintForLogging. |
| src/bluesky_queueserver/manager/json_rpc.py | Add custom JSON-RPC handler (replacement for external dependency). |
| src/bluesky_queueserver/manager/gen_lists.py | Switch to OSError; add exception chaining. |
| src/bluesky_queueserver/manager/conversions.py | Minor comprehension cleanup; add exception chaining. |
| src/bluesky_queueserver/manager/config.py | Minor any() simplification; exception chaining for port parsing; formatting. |
| src/bluesky_queueserver/manager/config_schemas/loading.py | Minor file open cleanup. |
| src/bluesky_queueserver/manager/config_schemas/config_schema.yml | Add config schema definition (YAML). |
| src/bluesky_queueserver/manager/config_schemas/init.py | Touched (diff not provided in prompt). |
| src/bluesky_queueserver/manager/comms.py | Improve f-string quoting; add exception chaining in timeouts; validate key error chaining. |
| src/bluesky_queueserver/manager/annotation_decorator.py | Replace setattr with direct attribute assignment. |
| src/bluesky_queueserver/manager/init.py | Touched (diff not provided in prompt). |
| src/bluesky_queueserver/init.py | Switch version import to ._version.__version__; consolidate imports. |
| setup.py | Removed (migration to pyproject.toml). |
| setup.cfg | Removed (legacy versioneer config removed). |
| requirements.txt | Removed (dependencies now in pyproject.toml). |
| requirements-dev.txt | Removed (dev deps now in pyproject.toml). |
| pyproject.toml | Add modern packaging metadata, deps, pytest/ruff/coverage config. |
| pprint | Touched (diff not provided in prompt). |
| pixi.toml | Add pixi workspace with Python feature environments and editable install. |
| MANIFEST.in | Removed (packaging approach changed). |
| docs/source/tutorials.rst | Update links to new src/-based profile collection path. |
| docs/source/features_and_config.rst | Update link to new src/-based sample permissions file path. |
| bluesky_queueserver/_version.py | Removed (versioneer-generated file removed). |
| .pre-commit-config.yaml | Switch to ruff-based local hooks; update hook set. |
| .isort.cfg | Removed (isort no longer used as separate tool). |
| .gitignore | Ignore generated _version.py files and pixi environments/lockfile. |
| .github/workflows/testing.yml | Switch CI testing to pixi matrix environments; update actions versions. |
| .github/workflows/python-publish.yml | Removed (replaced by new PyPI workflow). |
| .github/workflows/pypi.yml | Add trusted-publishing workflow using pixi for build/check/publish. |
| .github/workflows/pre-commit.yml | Switch pre-commit CI to pixi-based environment. |
| .github/workflows/isort.yml | Removed (isort workflow removed). |
| .github/workflows/flake8.yml | Removed (flake8 workflow removed). |
| .github/workflows/docs.yml | Switch docs build CI to pixi-based environment. |
| .github/workflows/docs_publish.yml | Switch docs publish CI to pixi-based environment and update naming/actions. |
| .github/workflows/black.yml | Removed (black workflow removed; ruff format used). |
| .gitattributes | Mark pixi.lock merge strategy/language hints; retain export-subst line. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
skarakuzu
approved these changes
Jul 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The repository updates include:
pyproject.toml.rufffor linting.pixito run tests and building documents.The code was revised to meet the latest linting standards. The PR contains no changes that can affect operation of the server.