NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #73 most downloaded on pub.dev
A library for YAML manipulation with comment and whitespace preservation.
Last release 7 months ago
13 Feb 2026
Ships fairly regularly
a new release about every 6 months
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
15 releases · first in 2020
One column per quarter.
Removes comments associated with a node when remove is called.
remove is called.
v2.2.3 and earlier.
## Before edit
---
key: value # These
# dangling
# should be
# removed.
# Safe
next:
- value # These
# should be
# removed.
# Safe
- next
# After edit:
# 1. YamlEditor.remove(['key'])
# 2. YamlEditor.remove(['next', 0])
---
# dangling
# should be
# removed.
# Ignored
next:
# should be
# removed.
# Safe
- next
v2.2.4 and later (same string as above)
# After edit:
# 1. YamlEditor.remove(['key'])
# 2. YamlEditor.remove(['next', 0])
---
# Ignored
next:
# Safe
- next
Fix alphabetical ordering when inserting into a single-element maps.
Suppress warnings previously printed to stdout when parsing YAML internally.
Suppress warnings previously printed to stdout when parsing YAML internally.
Fix error thrown when inserting duplicate keys to different maps in the same list. (#69)
Fix error thrown when inserting in nested list using spliceList method
(#83)
Fix error thrown when string has spaces when applying ScalarStyle.FOLDED.
(#41). Resolves
([#86]).
Require Dart 3.1
Move to dart-lang/tools monorepo.
Fix parsing of pre-release and build identifiers to only treat pure-digit base-10 identifiers as integers, treating hexadecimal and signed identifiers
Fix inconsistent line endings when inserting maps into a document using \r\n.
Fix inconsistent line endings when inserting maps into a document using \r\n.
(#65)
AliasError is changed to AliasException and exposed in the public API.
All node-mutating methods on YamlEditor, i.e. update(), appendToList(),
prependToList(), insertIntoList(), spliceList(), remove() will now
throw an exception instead of an error when encountering an alias on the path
to modify.
This allows catching and handling when this is happening.
- Require Dart 2.19
Switched to using the Apache httpd mime.conf table as the source of truth for mime types. Mime type additions:
application/vnd.geogebra.slidesfont/collectionimage/jxlimage/vnd.dvb.subtitlevideo/mp2tapplication/x-font-otf => font/otfapplication/x-font-ttf => font/ttfapplication/x-font-woff => font/woffmodel/vnd.mtsapplication/inkml+xml, inkml => inkapplication/octet-stream, so => binapplication/onenote, onetoc2 => onetocapplication/pgp-signature, sig => ascapplication/tei+xml, teicorpus => teiapplication/vnd.adobe.fxp, fxpl => fxpapplication/vnd.clonk.c4group, c4u => c4gapplication/vnd.dece.data, uvvf => uvfapplication/vnd.dece.ttml+xml, uvvt => uvtapplication/vnd.eszigno3+xml, et3 => es3application/vnd.framemaker, maker => fmapplication/vnd.geometry-explorer, gre => gexapplication/vnd.grafeq, gqs => gqfapplication/vnd.ibm.modcap, listafp => afpapplication/vnd.iccprofile, icm => iccapplication/vnd.intercon.formnet, xpx => xpwapplication/vnd.kde.kpresenter, kpt => kprapplication/vnd.kde.kword, kwt => kwdapplication/vnd.kinar, knp => kneapplication/vnd.koan, skt => skpapplication/vnd.ms-project, mpt => mppapplication/vnd.palm, pqa => pdbapplication/vnd.quark.quarkxpress, qxt => qxdapplication/vnd.simtech-mindmapper, twds => twdapplication/vnd.stardivision.writer, vor => sdwapplication/vnd.sus-calendar, susp => susapplication/vnd.symbian.install, sisx => sisapplication/vnd.ufdl, ufdl => ufdapplication/vnd.visio, vsw => vsdapplication/vnd.zul, zirz => zirapplication/x-authorware-bin, x32 => aabapplication/x-blorb, blorb => blbapplication/x-cbr, cbz => cbrapplication/x-director, w3d => dirapplication/x-font-type1, pfm => pfaapplication/x-msdownload, msi => exeapplication/x-pkcs12, pfx => p12application/x-pkcs7-certificates, spc => p7bapplication/x-zmachine, z8 => z1application/xv+xml, xvml => mxmlaudio/basic, snd => auaudio/mpeg, mpga => mp3audio/vnd.dece.audio, uvva => uvaimage/tiff, tif => tiffimage/vnd.dece.graphic, uvvi => uviimage/x-freehand, fhc => fhmessage/rfc822, mime => emlmodel/mesh, silo => mshmodel/x3d+binary, x3dbz => x3dbmodel/x3d+vrml, x3dvz => x3dvmodel/x3d+xml, x3dz => x3dtext/troff, tr => ttext/uri-list, urls => uritext/x-fortran, for => fvideo/mj2, mjp2 => mj2video/vnd.dece.hd, uvvh => uvhvideo/vnd.dece.mobile, uvvm => uvmvideo/vnd.dece.pd, uvvp => uvpvideo/vnd.dece.sd, uvvs => uvsvideo/vnd.dece.video, uvvv => uvvvideo/vnd.uvvu.mp4, uvvu => uvuvideo/x-ms-asf, asx => asfwrapAsYamlNode(value, collectionStyle, scalarStyle) will apply
collectionStyle and scalarStyle recursively when wrapping a children of
Map and List.
While this may change the style of the YAML documents written by applications
that rely on the old behavior, such YAML documents should still be valid.
Hence, we hope it is reasonable to make this change in a minor release.scalarStyle: ScalarStyle.SINGLE_QUOTED.appendToList and insertIntoList functions inserts new item into next yaml item
rather than at end of list.
(#23)Updated the value of the pubspec repository field.
repository field.Fix trailing whitespace after adding new key with block-value to map (#15).
repository and other meta-data in pubspec.yaml.License changed to BSD, as this package is now maintained by the Dart team.
API will no-longer return null in-place of a YamlNode, instead a YamlNode with YamlNode.value == null should be used. These are easily created with wr
null in-place of a YamlNode, instead a
YamlNode with YamlNode.value == null should be used. These are easily
created with wrapAsYamlNode(null).Fixed bug in adding an empty map as a map value.
Throws an error if the final YAML after edit is not parsable.
Updated behavior surrounding list and map removal.
Initial stable release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →