Skip to content

Update repository to match Bluesky standards - #352

Merged
skarakuzu merged 31 commits into
bluesky:mainfrom
dmgav:repo-update
Jul 16, 2026
Merged

Update repository to match Bluesky standards#352
skarakuzu merged 31 commits into
bluesky:mainfrom
dmgav:repo-update

Conversation

@dmgav

@dmgav dmgav commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

The repository updates include:

  • Single configuration using pyproject.toml.
  • Using ruff for linting.
  • Using pixi to 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.

@dmgav dmgav changed the title Repo update Update repository to match Bluesky standards Jul 15, 2026
@dmgav
dmgav marked this pull request as ready for review July 16, 2026 16:27
@dmgav
dmgav requested a review from Copilot July 16, 2026 16:28
@dmgav
dmgav requested a review from skarakuzu July 16, 2026 16:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 legacy setup.py, requirements*.txt, and related workflows) and update CI/release automation accordingly.
  • Switch lint/format workflow to ruff via pre-commit, and update scripts/CI to run tests/builds via pixi environments.
  • 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
skarakuzu merged commit 9b5fea3 into bluesky:main Jul 16, 2026
84 of 92 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants