Changelog¶
All notable changes to SIMNOS are documented here. For full details, see the GitHub Releases.
v2.2.1¶
Features
- Add NTC Templates v9.1 commands to Cisco family — cisco_nxos / cisco_xr / cisco_asa: 19 commands total. Includes manual
cisco_asanetmiko init compat (show curpriv/terminal pager 0etc.) (#151) - Add NTC Templates v9.1 commands to non-Cisco batch — fortinet / juniper_junos / paloalto_panos / arista_eos: 30 commands total (#154)
- Add NTC Templates v9.1 commands to Huawei family — huawei_smartax / huawei_vrp: 39 commands total (#160)
- Add
show privilegeto cisco_ios for Ansible compatibility, mark cisco_ios as Ansible-verified in compatibility table (#124)
Bug Fixes
- Rewrite
gen_docs_platform_commandsinvoke task: handle commands withoutoutputfield, usestr.format()for{base_prompt}substitution to match runtime semantics, regenerate all 50 platform docs with correct rendering (#146) - Render escaped brace literals (
{{ ... }}) correctly in platform docs by switching docs generator tostr.format(), matchingcmd_shell.defaultruntime. Affects 10 platforms with literal braces in fixtures (huawei_smartax, juniper_junos, cisco_asa, cisco_ios, cisco_nxos, hp_comware, arista_eos, paloalto_panos, oneaccess_oneos, huawei_vrp) (#160)
Tooling
- Improve
sync_ntc_commands.py: prefer canonical raw fixture, retain alternate fixtures asoutput_variants, filter sibling-fixture noise (#147) - Auto-escape literal
{xxx}patterns insync_ntc_commands.pyoutput (preventive escape) so that runtimestr.format()is safe for any NTC fixture content (#156)
Tests
- Add
tests/test_gen_docs_platform_commands.pypinningrender_templateformatter semantics (substitution, escape unescape, error context) to prevent future regression of brace rendering (#160)
CI/CD
- Enable
pytest-xdistparallel execution by default (addopts = "-vv -n auto"). Local measurement: 18:06 → 3:01 (6.0x speedup) (#164) - Remove Docker-first tasks (
build/clean/rebuild/pytest/cli/tests) and dead code fromtasks.py, dropINVOKE_LOCALfrom CI workflows (#145)
v2.2.0¶
Features
- Add 9 new platforms from NTC Templates v9.0: aruba_aoscx, cisco_apic, cisco_viptela, cisco_wlc_ssh, edgecore, extreme_slxos, oneaccess_oneos, watchguard_firebox, zte_zxros (#129)
- Add 28 new commands to cisco_ios from NTC Templates v9.1, including SD-WAN, CTS, endpoint-tracker, and license commands (#128)
Tests
- Add netmiko connection tests for all YAML-only platforms (#129)
- Refine test skip logic with granular
skip_enable_platformsinstead of full-platform xfail (#129)
Documentation
- Add
CONTRIBUTING.mdwith bilingual support (English / Japanese), AI Transparency policy, and contribution workflow (#121) - Add
SECURITY.mdwith bilingual support pointing to GitHub Private Vulnerability Reporting (#120) - Convert platform compatibility list to detailed compatibility table with notes (#129)
CI/CD
- Add yamllint to CI for YAML platform validation across 50+ YAML files (#137)
Dependencies
- Bump ntc-templates 9.0.0 → 9.1.0 (transitive via netmiko)
- Bump cryptography 46.0.5 → 46.0.7
- Bump pytest 9.0.2 → 9.0.3
- Bump trivy-action 0.35.0 → 0.36.0
- Bump GitHub Actions Pages workflows to Node.js 24 compatible versions
v2.1.3¶
Security
- Fix trivy-action supply chain compromise: update 0.34.1 → v0.35.0 (#117)
CI/CD
- Update GitHub Actions to Node.js 24 compatible versions (#112, #118)
- Add Dependabot configuration for automated weekly updates (#116)
v2.1.2¶
Performance
- Remove per-byte
time.sleep(0.01)in SSH/Telnet tap functions — test suite ~20% faster (#107) - Replace
accept()polling withselectors+socketpairfor instant server shutdown (#106)
Security
- Upgrade dependencies to fix 7 Dependabot alerts: urllib3, filelock, virtualenv, pynacl (#111)
v2.1.1¶
Bug Fixes
- Resolve Docker Trivy scan failure (zlib CVE) with
apk upgrade --no-cache(#102) - Increase macOS test timeout to 600s for cisco_ios (#102)
- Fix BrokenPipeError on Telnet authentication failure (#102)
CI/CD
- Change publish workflow triggers from tag push to release event to prevent premature publishing (#103)
v2.1.0¶
Features
- Echo coalescing for SSH and Telnet servers — prevents intermittent empty output with netmiko
send_command()(#87, #94) - Telnet server plugin with RFC 854/857/858 compliance
- Thread-safe TapIO I/O bridge shared by SSH and Telnet servers
Bug Fixes
- Replace thread-unsafe ChannelFile with direct Channel API (#85)
- Add CRLF handling to SSH channel_to_shell_tap (#88)