Major Release Notes Template¶
Use this template when preparing release notes for a major version release. Copy the content below into a new file at docs/admin/release_notes/version_X.Y.md and fill in each section.
How to Identify Breaking Changes¶
When preparing a major release, review all commits since the last release tag to identify breaking changes. Focus on .textfsm file diffs and the index file:
- Field renames:
Valuelines where the field name changed - Output format changes:
Valuetype changes (e.g., scalar toList) - New fields added: New
Valuelines added to existing templates - Parsing behavior changes: Regex changes that alter what gets captured or matched
- Index pattern changes: Changes to command matching patterns in the
indexfile
Use git log vPREV..HEAD --oneline to list all commits, then inspect each with git show <commit> -- '*.textfsm' to find template-level changes.
Formatting Rules¶
- All PR references must be markdown links:
[#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN) - Template names in tables should be backtick-wrapped (e.g.,
cisco_ios_show_version) - Use
→for field rename notation in the summary table - Use
->in detailed migration guide text - Include before/after Python code examples for field renames and output format changes
Release Checklist¶
- Bump
versioninpyproject.toml - Update Python
classifiersinpyproject.tomlif Python version support changed - Update
pythondependency constraint in[tool.poetry.dependencies]if minimum changed - Update
target-versionin[tool.black]if Python minimum changed - Create
docs/admin/release_notes/version_X.Y.mdusing the template below - Add entry to
mkdocs.ymlnav (at the top of the Release Notes list) - Add entry to
docs/admin/release_notes/index.md(at the top of the table)
Template¶
# Release Notes vX.Y.Z
## Major Release Highlights
<!-- Brief paragraph summarizing the release. -->
## Breaking Changes Summary
The following templates have breaking changes in this release. If you use any of these templates, review the details below and the [Migration Guide](#migration-guide) before upgrading.
| Template | Change Type | Details |
|----------|------------|---------|
| `template_name` | Field renamed | `old_name` → `new_name` |
| `template_name` | Output format changed | Description of what changed |
| `template_name` | New field added | `field_name` (type) |
| `template_name` | New fields added | `field1`, `field2` |
| `template_name` | Parsing behavior changed | Description of what changed |
| `template_name` | Index pattern changed | Description of what changed |
## Breaking Changes
### Python Version Support
<!-- Only include if Python version support changed. -->
* **Dropped Python X.Y support** - Minimum Python version is now X.Z+
* **Added Python X.W support** - Now supports Python X.Z, X.A, X.B, and X.W
### Field Name Changes (Breaking)
* **Template display name**: Renamed `old_field` to `new_field` for reason in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
### Output Format Changes (Breaking)
* **Template display name**: Description of output format change in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
- Old: `example of old output`
- New: `example of new output`
### New Fields Added to Existing Templates (Schema Changes)
* **Template display name**: New `field_name` field added in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
### Parsing Behavior Changes
* **Template display name**: Description of parsing change in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
## What's Changed
### New Templates
* Add Platform command description in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
### Enhanced Templates
* Enhancement description in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
### Bug Fixes
* Fix description in [#NNNN](https://github.com/networktocode/ntc-templates/pull/NNNN)
## Migration Guide
### Python Version
<!-- Only include if Python version support changed. -->
Ensure you are running Python X.Z or higher before upgrading. Python X.Y is no longer supported.
### Field Name Changes
If you are using the following template, update your code to use the new field name:
**Template display name:**
- `old_field` -> `new_field`
```python
# Before (vPREV)
result["old_field"]
# After (vCURR)
result["new_field"]
```
### Output Format Changes
**Template display name - `field_name`:**
Description of what changed and how to update code:
```python
# Before (vPREV)
# old usage pattern
# After (vCURR)
# new usage pattern
```
### New Fields in Existing Templates
The following templates now include additional fields in their output. If your code does strict schema validation or exact dictionary comparison, update accordingly:
| Template | New Field(s) |
|----------|-------------|
| `template_name` | `field_name` (type) |
### Parsing Behavior Changes
**Template display name:**
Description of what changed and how to update code.
## Statistics
- **Total Changes**: N commits
- **New Templates**: N
- **Enhanced Templates**: N
- **Bug Fixes**: N
**Full Changelog**: [vPREV...vCURR](https://github.com/networktocode/ntc-templates/compare/vPREV...vCURR)