# v1.9.5 - Deprecation Warnings for Legacy Configuration Models (2025-12-29)

## What Changed?

This release adds deprecation warnings to `DaqConfig` and `ScanConfig` configuration models, guiding users toward the unified `SamplerConfig` format.
Users will see warnings when using the old configuration sections, with clear migration instructions provided.
All existing configurations continue to work without changes—this is a preparation step for v1.11.0 where the old models will be removed.

---

## What's New

### Deprecation Warnings for Configuration Models

**What it does**:
When you load a configuration file using the old `[daq]` or `[scan]` sections, you'll now receive a `DeprecationWarning`.
This warning tells you exactly what to do:

- Migrate from `[daq]` to `[sampler]` with `mode = "count_based"`
- Migrate from `[scan]` to `[sampler]` with `mode = "time_based"`

The warning includes a link to the migration guide with detailed instructions and examples.

**How to use it**:
No action needed unless you want to avoid warnings.
When you see the warning:

1. Read the migration guide: [docs/users/migration.md](../users/migration.md)
2. Update your TOML configuration file
3. Re-run your command—the warning should disappear

**Example warning**:

```
DeprecationWarning: DaqConfig is deprecated since v1.5.0 and will be removed in v1.11.0.
Please migrate to SamplerConfig with mode='count_based'.
See migration guide: https://docs.example.com/migration/
```

---

## Installation

### Quick Start

```bash
# Get the release
git checkout v1.9.5

# Setup
task env:setup

# Run CLI
haniwers-v1 config show
```

---

## What's Different from the Last Version?

### ✅ Added

- Deprecation warnings for `DaqConfig` and `ScanConfig` configuration models
- Comprehensive migration guide for users (`docs/users/migration.md`)
- Clear timeline: warnings in v1.9.5, removal in v1.11.0

### 🔧 Changed

- Configuration model docstrings updated to indicate removal timeline (v1.11.0)
- Both `DaqConfig` and `ScanConfig` now emit `DeprecationWarning` on instantiation

### 🐛 Fixed

- No bug fixes in this release

---

## Is It Safe to Upgrade?

**Backward Compatible**: ✅ Yes

- All existing configurations continue to work without modification
- Deprecation warnings are non-breaking—they don't prevent execution
- The warnings guide users toward the new format at their own pace
- No code changes required for users—only configuration updates if desired

---

## Tests Passed

- ✅ Builds without errors
- ✅ All unit tests passing (386 selected)
- ✅ Deprecation warnings properly triggered in configuration loading
- ✅ Pre-commit hooks passing (ruff format, YAML, etc.)

---

## Release Details

- **Date**: 2025-12-29
- **Version**: v1.9.5
- **Files Changed**: 4 (model.py, migration.md, index.md, CHANGELOG.md)
- **Commits**:
  - d7d30d0: refactor(config): add deprecation warnings to DaqConfig and ScanConfig
  - c5416b2: docs(users): add migration guide for v1.10.0 deprecation
  - ec3e5e7: bump: version 1.9.4 → 1.9.5

---

## Next Steps

- **v1.10.0** (next planned): Full deprecation release with enhanced documentation and migration support
- **v1.11.0** (future): Complete removal of `DaqConfig` and `ScanConfig` from codebase
- **Ongoing**: Phase 2 refactoring—large file decomposition (`sampler.py`, `cli/options.py`, `config/model.py`)
