-
Notifications
You must be signed in to change notification settings - Fork 47
docs: Add comprehensive documentation for configuration system #447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Add documentation for the YAML-based configuration system introduced in PRs #417 and #441: - configuration-system.md: Main guide covering architecture, machine configs (illumination, confocal, camera mappings), user profiles (general.yaml, objective.yaml), merge logic, and best practices - configuration-api.md: Developer reference for ConfigRepository API, Pydantic models, utility functions, and access patterns - configuration-migration.md: Migration guide from legacy XML/JSON format including auto-migration, manual migration script usage, and troubleshooting - Update automation.md to reference new configuration docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix has_legacy_configs_to_migrate() signature (takes profile and base_path) - Clarify confocal_config.yaml structure matches Pydantic model - Add note about .example file format difference Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The method signature is get_channels(objective), not get_channels(). Updated the widget example to show correct usage. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Mark camera_mappings.yaml as optional (for multi-camera setups) - Mark intensity_calibrations/ as optional in directory diagram - Mark illumination_channel_config.yaml as required Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
06926d2 to
e292ee1
Compare
There was a problem hiding this comment.
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 adds comprehensive documentation for Squid's YAML-based configuration system, covering user guides, developer API reference, and migration procedures for upgrading from the legacy XML format.
Changes:
- Three new documentation files (
configuration-system.md,configuration-api.md,configuration-migration.md) providing complete coverage of the configuration architecture - Updated cross-reference in
automation.mdto point to the new configuration documentation
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
software/docs/configuration-system.md |
Main user guide covering architecture, machine configs, user profiles, merge logic, and best practices |
software/docs/configuration-api.md |
Developer reference documenting ConfigRepository API, Pydantic models, and code integration patterns |
software/docs/configuration-migration.md |
Migration guide for transitioning from legacy XML/JSON format to YAML |
software/docs/automation.md |
Updated cross-reference to point to new configuration system documentation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| | `public_properties` | Properties available in `general.yaml` | | ||
| | `objective_specific_properties` | Properties only in objective-specific files | | ||
|
|
||
| > **Note**: The `confocal_config.yaml.example` file in `machine_configs/` uses a simplified format for reference. When creating your actual config, use the structure shown above which matches the Pydantic model. |
Copilot
AI
Jan 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This note refers to a confocal_config.yaml.example file but doesn't explain what the simplified format looks like or why it differs from the actual format. Consider adding a brief explanation of the differences or removing the reference if the example file uses the same format.
| > **Note**: The `confocal_config.yaml.example` file in `machine_configs/` uses a simplified format for reference. When creating your actual config, use the structure shown above which matches the Pydantic model. | |
| > **Note**: The `confocal_config.yaml.example` file in `machine_configs/` is a minimal example: it only includes a small subset of filter-wheel mappings and properties to keep the file easy to read. Your actual `confocal_config.yaml` must follow the full structure documented above (including `version`, `filter_wheel_mappings`, `public_properties`, and `objective_specific_properties`); you can copy the example as a starting point and then extend it to match your hardware. |
Summary
New Documentation
configuration-system.md(Main Guide)configuration-api.md(Developer Reference)configuration-migration.md(Migration Guide)tools/migrate_acquisition_configs.pyTest plan
🤖 Generated with Claude Code