mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-27 12:30:13 +03:00
Release v3.1.0a5
This commit is contained in:
parent
51c6440403
commit
582412bac3
168
CHANGELOG
168
CHANGELOG
@ -1,5 +1,173 @@
|
||||
# Change Log
|
||||
|
||||
## 3.1.0a5 19/08/2026
|
||||
|
||||
* Bundle web-ui v3.1.0a5
|
||||
* Sync appliances
|
||||
* copilot: sync CONSOLE_TYPES with the server ConsoleType enum
|
||||
* feat: Enhance information displayed on the system status dashboard
|
||||
* docker: cap GNS3_STOP_TIMEOUT at 210 s (controller stop budget)
|
||||
* docker: harden the shm/devices/extra_configs/masking work (code review)
|
||||
* docker: make the vendor graceful-stop grace period configurable (GNS3_STOP_TIMEOUT)
|
||||
* docker: graceful stop for vendor NOS containers (SIGTERM + 60s grace)
|
||||
* fix: UDP port allocation race causing link self-loop (one-way links)
|
||||
* add support basic support for OpenBSD.
|
||||
* docker: use the container's chown (not busybox) in vendor volume/perms path
|
||||
* docker: mask systemd-udevd in privileged containers (GNS3_MASK_UDEV)
|
||||
* docker: persist extra_configs in the template DB table
|
||||
* docker: inject config files into containers via extra_configs
|
||||
* docker: warn about low inotify/file-max and missing FUSE at connect
|
||||
* docker: inject /dev/shm size and host devices via HostConfig from env
|
||||
* appliance: expose custom_adapters on the v1-6 appliance model
|
||||
* appliance: accept docker_exec console type in Docker appliances
|
||||
* fix: recreate docker_exec console on reconnect after CLI exit
|
||||
* vendor: drop the hardcoded /etc/network mount for SKIP_INIT containers
|
||||
* vendor: skip /etc/network in volume bridge and permission passes
|
||||
* fix: run _fix_permissions container-side on /gns3volumes mount targets
|
||||
* fix: host-side permission fix + SKIP_INIT volume persistence docs
|
||||
* refactor: move vendor NOS Docker support into VendorDockerVM subclass
|
||||
* docker_exec console: wrap exec command in while-true loop so sr_cli restarts on quit
|
||||
* Prototype: vendor NOS Docker node support (SR Linux etc.) — docker_exec console via Docker exec API (pty + hijacked HTTP + NAWS resize)
|
||||
* fix: update CI configuration to use a single OS and remove Windows-specific dependencies
|
||||
* fix: breaking change with dependency FastAPI v0.137.0 https://fastapi.tiangolo.com/release-notes/#specific-breaking-changes
|
||||
* fix: suppress redundant console port setter log during Docker node create
|
||||
* revert: restore force_close=True in compute._session()
|
||||
* perf: parallelize batch NIO creation across nodes
|
||||
* fix: scope marker reconcile to the current bridge/NIO
|
||||
* cleanup: remove stray debug print in Dynamips node creation
|
||||
* fix: reconcile marker filters in _ubridge_apply_markers (delete/update)
|
||||
* log: suppress marker sink stats when no matches received
|
||||
* log: add periodic marker.match throughput statistics
|
||||
* marker: route marker.match to a dedicated project WS channel
|
||||
* perf: raise marker UDP receive buffer from ~208KB to 8MB
|
||||
* perf: move project-open marker inheritance to prepare phase
|
||||
* perf: parallelise compute-side batch NIO update per node
|
||||
* perf: batch update/delete marker-def fan-out too (full project-level)
|
||||
* perf: batch marker-def fan-out to one PUT /nios/batch per compute
|
||||
* log: add marker fan-out timing for project-open and interactive def-change
|
||||
* tune: raise start_all concurrency from 3 to 10
|
||||
* revert: drop _connect_nio thread-pool executor, restore async _ubridge_send
|
||||
* fix: use socket.fromfd in send_batch_sync for Python 3.13 compat
|
||||
* log: demote all per-node lifecycle INFO logs to DEBUG
|
||||
* fix: await Dynamips.create_nio (it is async, unlike sync base)
|
||||
* fix: use bound-method param count for Dynamips create_nio detection
|
||||
* fix: Dynamips create_nio(node, nio_settings) takes extra arg + add tests
|
||||
* log: add start/stop/close progress lines; revert start concurrency to 3
|
||||
* log: lower per-node lifecycle logs in base_node to DEBUG
|
||||
* perf: raise start/stop/suspend/reset-console concurrency from 3
|
||||
* fix: race in concurrent node creation sending duplicate POST /projects
|
||||
* log: lower per-node docker lifecycle logs to DEBUG
|
||||
* log: emit progress lines for node and link loading on project open
|
||||
* cleanup: remove project-open stage timing logs, lower NIO-added log to debug
|
||||
* perf: skip per-link topology dump during project-open prepare
|
||||
* perf: batch NIO dispatch on project open (one HTTP per compute)
|
||||
* perf: cache compute.host_ip + add UDPLink.create timing log
|
||||
* perf: dedicated 500-worker thread pool for ubridge batch I/O
|
||||
* perf: offload per-NIO ubridge commands to thread-pool executor
|
||||
* perf: enable TCP keep-alive for local compute HTTP requests
|
||||
* debug: add per-command timing to _connect_nio ubridge calls
|
||||
* perf: parallelize UDP port allocation and NIO creation in UDPLink.create
|
||||
* fix: SIGKILL docker container on stop instead of 5s grace period
|
||||
* fix: add event handling for deleted projects
|
||||
* fix: tests after merging
|
||||
* server: raise the open-files (RLIMIT_NOFILE) limit at startup
|
||||
* marker: batch topology dumps in bulk fan-out (per-def on 500+ links was ~1 minute)
|
||||
* marker: concurrent (bounded) definition fan-out
|
||||
* marker: forward data_link_type on per-link marker create
|
||||
* iou: skip already-installed markers in _ubridge_apply_markers (NIO update idempotency)
|
||||
* marker: serial-link (WAN) support via data_link_type -> uBridge linktype
|
||||
* iou: forward data_link_type on capture start so serial pcaps use the correct linktype
|
||||
* ubridge: default the control transport to unix
|
||||
* ubridge: require version >= 1.2.0
|
||||
* fix: add missing HTTPException import
|
||||
* mcp: drop direction from marker_definition tool
|
||||
* marker: tighten marker name max length from 128 to 32
|
||||
* marker: drop deleted marker from port NIO cache to stop empty pcap on restart
|
||||
* marker: validate def BPF once, skip re-validation on inherited fan-out
|
||||
* marker: point directional defs at BPF, refresh implementation doc
|
||||
* marker: incremental apply, clear bridge map on uBridge stop
|
||||
* marker: fine-grained filter ops, clean pcap on remove
|
||||
* marker: restore direction on project load, reject tx/rx on definitions
|
||||
* schema: accept direction='both' in marker schemas, normalize to None
|
||||
* qemu: demote QEMU monitor connect and set_link logs to DEBUG
|
||||
* marker: key _marker_filter_bridges by (name, link_id) so multi-link nodes toggle every copy
|
||||
* marker: make per-filter toggle fall back to NIO rebuild when the marker isn't installed
|
||||
* marker: make per-filter toggle a no-op when the marker isn't installed
|
||||
* marker: rework pause/resume from project-wide to per-definition
|
||||
* marker: fix PUT marker with an enabled-only body (bpf no longer required)
|
||||
* marker: persist project-wide markers_paused to the .gns3 file
|
||||
* marker: document pause/resume and instant enabled toggle
|
||||
* marker: test enabled/pause/resume and instant toggle
|
||||
* marker: drive uBridge enabled/pause/resume in real time
|
||||
* marker: add direction-clear, routing, and ubridge transport tests
|
||||
* marker: support clearing direction via explicit null / "both"
|
||||
* marker: let callers pin the capture node via capture_node_id
|
||||
* Name AF_UNIX sockets by node id for self-describing debuggability
|
||||
* Detect unsupported -U flag and fail fast with a clear error
|
||||
* Add configurable uBridge control channel transport (tcp/unix)
|
||||
* fix(import): unvalidated symlink creation in import_project
|
||||
* fix(qemu): move the bios options after the network ones
|
||||
* fix(qemu): fix addition of QEMU RNG device causes interface names to change
|
||||
* bugfix: docker workflow needs lowercase name
|
||||
* fix(qemu): remove trailing space from RNG object argument
|
||||
* Add MCP tools for traffic-insight marker feature
|
||||
* Improve MCP tool descriptions for link_update, device_show_run, and link_reset
|
||||
* Do not start nodes when deleting a project
|
||||
* fix: correct always-true state check in DockerVM.stop()
|
||||
* add bug report issue template
|
||||
* Adds controller and compute API support for explicitly pulling or updating Docker images.
|
||||
* feat(tests): increase maximum open file descriptors for test runs on Unix
|
||||
* (feat): Implement functional Layer 1 keepalive support for IOU/IOL nodes
|
||||
* Fix typo with ovmf_firmware_dir
|
||||
* Fix issues after merging
|
||||
* fix(builtin): hide GNS3 internal bridge interfaces from Cloud node
|
||||
* feat(builtin): NAT node returns its interface IP info in asdict()
|
||||
* fix(controller): refresh cloud/nat node interfaces from compute on GET
|
||||
* refactor(builtin): use deterministic bridge name from switch UUID
|
||||
* fix(builtin): bring kernel bridge UP after creation
|
||||
* feat: migrate builtin EthernetSwitch from Dynamips ethsw to ubridge brctl
|
||||
* fix(mcp): remove unreliable node_reload / node_reload_all tools
|
||||
* fix(rbac): guard None current_user on websocket auth failure
|
||||
* fix(mcp): thread token_version into console/download token minting
|
||||
* fix(mcp): pass user.token_version when generating temp JWT from API key
|
||||
* fix(marker): avoid reentrant-lock deadlock when uBridge starts lazily
|
||||
* fix(marker): per-link attribution via link field in MARK signals
|
||||
* fix(marker): set nio.markers on iou/dynamips/cloud nio update
|
||||
* fix(marker): reject reserved global-prefix names only on create
|
||||
* fix(marker): clean inherited markers on def delete
|
||||
* feat(marker): add highlight_duration render hint
|
||||
* fix(marker): fix inheritance hook, topology load, update sync, and asdict
|
||||
* fix(marker): export MarkerDefinitionCreate from schemas package
|
||||
* fix(marker): replace pydantic lookahead pattern with field_validator
|
||||
* feat(marker): add project-level marker definition inheritance
|
||||
* fix(marker): reserve "global" name prefix for future marker inheritance
|
||||
* fix(marker): extend marker support to dynamips and cloud nodes
|
||||
* fix(marker): enable marker support for docker nodes
|
||||
* fix(marker): tolerate port conflict on marker listener startup
|
||||
* fix(marker): validate marker name and expose enabled via REST
|
||||
* fix(marker): uniquify auto-generated marker names per link
|
||||
* feat(marker): add project-level marker aggregation endpoint
|
||||
* feat(marker): add IOU node marker support via iol_bridge
|
||||
* refactor(marker): converge to filter single-path model, remove dual-apply endpoints
|
||||
* fix(marker): restore markers from topology on project load
|
||||
* feat(marker): add optional color field to marker data model
|
||||
* fix(marker): use allowlist in _choose_marker_side, align with _get_filter_node
|
||||
* fix(marker): stop auto-deleting markers on node stop in node_updated
|
||||
* fix(marker): ride markers on NIO so they survive node restart and project reload
|
||||
* config: set marker_listen_port default to 3070 and document in config templates
|
||||
* fix(marker): add _choose_marker_side to exclude non-uBridge node types
|
||||
* Only set IOU images to be executable when importing images
|
||||
* fix(import): project import does not move images symlinks into place
|
||||
* Search for system UEFI that is compatible with Python < 3.12
|
||||
* UEFI improvements for Qemu VMs * Add OVMF firmware directory configuration * Automatically add a Random Number Generator (RNG) device when using uefi option is enabled
|
||||
* fix(docker): handle container name conflict automatically
|
||||
* fix: gns3-server crashes on startup if "Open this project in the background" is active but there is a problem with that project
|
||||
* Handle HTTPNotFound exception when retrieving compute status
|
||||
* Replace ControllerForbiddenError with aiohttp.web.HTTPForbidden for project deletion error handling
|
||||
* Fix: Check compute connectivity before open() during project deletion
|
||||
* Use typed InterfaceStatus enum and simplify stats fallback in interfaces()
|
||||
* Expose full interface address list and link state in cloud node API
|
||||
|
||||
## 2.2.61 30/07/2026
|
||||
|
||||
* Sync appliances
|
||||
|
||||
@ -58,7 +58,7 @@ class CrashReport:
|
||||
Report crash to a third party service
|
||||
"""
|
||||
|
||||
DSN = "https://7b5d8f1189b61e674dc6ee41b0ec9da8@o19455.ingest.us.sentry.io/38482"
|
||||
DSN = "https://b8b31d4b05b8a353824c5e45f7792885@o19455.ingest.us.sentry.io/38482"
|
||||
_instance = None
|
||||
|
||||
def __init__(self):
|
||||
|
||||
@ -22,8 +22,8 @@
|
||||
# or negative for a release candidate or beta (after the base version
|
||||
# number has been incremented)
|
||||
|
||||
__version__ = "3.1.0.dev5"
|
||||
__version_info__ = (3, 1, 0, 99)
|
||||
__version__ = "3.1.0a5"
|
||||
__version_info__ = (3, 1, 0, -99)
|
||||
|
||||
if "dev" in __version__:
|
||||
try:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user