All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Nothing yet
v2.8.1 - 2024-06-30
- Fixed a bug related to yaml aliases.
v2.8.0 - 2024-06-28
- Fixed a bug that could cause a panic.
type()
now returnsnull
instead ofunknown
for null values.- Added YAML support for merge tag/aliases. Thanks to pmeier. Issue 285.
v2.7.0 - 2024-03-14
null()
function. See docs
- Dasel now correctly handles
null
values.
v2.6.0 - 2024-02-15
- Support for
--indent
flag. - More descriptive errors when dasel fails to open a file.
- Docker build improvements in workflows.
v2.5.0 - 2023-11-28
- Add
man
that generates manpages for all dasel subcommands.
- Fixed an issue when parsing empty input documents.
v2.4.1 - 2023-10-18
- JSON output now acts as expected regarding the EscapeHTML flag.
v2.4.0 - 2023-10-18
orDefault()
function. See docs--csv-comma
flag to change the csv separator.--csv-write-comma
flag to change the csv separator specifically for writes.--csv-comment
flag to change the csv comment character.--csv-crlf
flag to enable or disable CRLF output when working with csv files.
- Resolved an issue with YAML parser that was causing strings to be read as booleans.
- Fix a parsing issue with CSV types that forced you to expand and merge in order for it selects to work Issue 364.
v2.3.6 - 2023-08-30
- XML is now formatted correctly. (#354)
v2.3.5 - 2023-08-29
- Small internal optimisation (#341)
- Update to go 1.21
- Upgrade dependencies
- Resolved an issue with YAML parser that was causing strings to be read as numbers.
- Timestamps can now be resolved as expected in YAML.
v2.3.4 - 2023-06-01
len
function now works with new map type.keys
function now works with new map type.
v2.3.3 - 2023-05-31
- Errors when selecting data are now correctly handled.
v2.3.2 - 2023-05-31
- Restored previous octal, binary and hex number parsing support in YAML and
put
command.
v2.3.1 - 2023-05-29
version
command now outputs correct version information (only affected v2 onwards)
v2.3.0 - 2023-05-29
- Maps are now ordered internally.
- JSON and YAML maps maintain ordering on read/write.
all()
func now works with strings.index()
func now works with strings.
- Multi-document output should now be displayed correctly.
- Index shorthand selector now works with multiple indexes.
- Null values are now correctly handled.
v2.2.0 - 2023-04-17
keys()
function.
v2.1.2 - 2023-03-27
- Join function.
- String function.
- Null error caused by null values in arrays. See PR 307.
v2.1.1 - 2023-01-19
- Changed go module to
github.com/tomwright/dasel/v2
to ensure it works correctly with go modules.
v2.1.0 - 2023-01-11
- Ability to jump to a parent x levels up with
parent(x)
. Defaults to 1 level.
v2.0.2 - 2022-12-07
- Argument parsing issue that caused files to be written to the wrong place. See discussion 268.
v2.0.1 - 2022-12-07
float
type input
command.
- Output values are now correctly de-referenced. This fixed issues with encoded values not appearing correctly.
- Escape characters in selector strings now work as expected.
v2.0.0 - 2022-12-02
See documentation for all changes.
- Selector syntax
v1.27.3 - 2022-10-18
- The compact flag now works with the XML parser.
v1.27.2 - 2022-10-18
- Help text for select and delete commands now contain all available parsers.
- Errors now implement the
Is
interface so they are easier to use from go. - Floats are now formatted in decimal format instead of scientific notification when writing to CSV (Issue 245, Issue 229)
v1.27.1 - 2022-09-28
- Improved selector comparison parsing to allow matching on values containing special characters.
v1.27.0 - 2022-09-26
- New
value-file
flag allows you toput
values read from a file (Issue 246)
v1.26.1 - 2022-08-24
- Make the completion command available for use (Issue 216)
- Make the
__complete
command available for use
v1.26.0 - 2022-07-09
- Search optional selector -
(#:key=value)
v1.25.1 - 2022-06-29
- Pre-commit hooks for validate command.
v1.25.0 - 2022-06-26
- Support for struct type usage in go package.
- Validate command.
v1.24.3 - 2022-04-23
- Gzip compressed binaries on releases.
v1.24.2 - 2022-04-22
- Update a package to avoid a High Vulnerability in golang.org/x/crypto with CVE ID CVE-2022-27191
v1.24.1 - 2022-03-28
storage
package has been moved outside theinternal
package.
- New funcs added in
v1.24.0
can now be used as expected since you can now access thestorage.ReadWriteOption
.
v1.24.0 - 2022-03-18
Node.NewFromFile
func to load a root node from a file.Node.NewFromReader
func to load a root node from anio.Reader
.Node.WriteToFile
func to write results to a file.Node.Write
func to write results to anio.Writer
.
v1.23.0 - 2022-03-10
- Update github.com/pelletier/go-toml to consume fix for #191.
- Sprig functions to output formatter template.
v1.22.1 - 2021-11-09
- Cleaned up error output
v1.22.0 - 2021-11-09
- Type selector
[@]
.
- Errors are now written to stderr as expected.
v1.21.2 - 2021-10-21
- Linux arm32 build target.
v1.21.1 - 2021-09-30
--escape-html
flag now defaults to false.
v1.21.0 - 2021-09-29
--escape-html
flag.
put document
andput object
are now aware of the--merge-input-documents
flag.
v1.20.1 - 2021-09-28
buster-slim
andalpine
tags to built docker images.
- Different encodings in XML files are now handled as expected.
v1.20.0 - 2021-08-30
-v
,--value
flag to workaround dash issue.
- Fixed an issue in which unicode characters could cause issues when parsing selectors.
v1.19.0 - 2021-08-14
--colour
,--color
flag to enable colourised output in select command.
v1.18.0 - 2021-08-11
--format
flag toselect
command.
v1.17.0 - 2021-08-08
- Support for
!=
comparison operator in dynamic and search selectors. - Support for
-
/keyValue
key in dynamic selectors.
v1.16.1 - 2021-08-02
- Fixed a bug that stopped the delete command editing files in place.
v1.16.0 - 2021-08-01
- Delete command.
v1.15.0 - 2021-05-06
--merge-input-documents
flag.
- Optional
noupdater
build tag to disable the self-update command.
- Empty XML documents are now parsed correctly.
v1.14.1 - 2021-04-15
- arm64 build support.
v1.14.0 - 2021-04-11
.[#]
length selector.>
comparison operator.>=
comparison operator.<
comparison operator.<=
comparison operator.
v1.13.6 - 2021-03-29
- Development versions of dasel will now include more specific version information where possible.
- Fix an issue that stopped dasel being able to output CSV documents when parsed from JSON.
v1.13.5 - 2021-03-22
- Empty map values are now initialised as
map[string]interface{}
rather thanmap[interface{}]interface{}
.
v1.13.4 - 2021-03-11
v1.13.3 - 2021-03-05
- Blank YAML and CSV input is now treated as an empty document.
- Blank JSON input is now treated as an empty document.
v1.13.2 - 2021-02-25
- Improved information provided in
UnsupportedTypeForSelector
errors. - Upgrade to go 1.16.
- Make sure the
-n
,--null
flag has an effect in multi-select queries.
v1.13.1 - 2021-02-18
- Added
CGO_ENABLED=0
build flag to ensure linux_amd64 builds are statically linked.
v1.13.0 - 2021-02-11
--length
flag to select command.
v1.12.2 - 2021-01-05
- Fix a bug that stopped the write parser being properly detected when writing to the input file.
v1.12.1 - 2021-01-05
- Build workflows now updated to run on ubuntu-latest and use a matrix to build assets for
linux
,darwin
andwindows
for bothamd64
and386
.
- Release asset for macos/darwin is now named
dasel_darwin_amd64
instead ofdasel_macos_amd64
. - Self-updater now identifies
dev
version as development.
v1.12.0 - 2021-01-02
- Add
-c
,--compact
flag to remove pretty-print formatting from JSON output. - Defined
storage.IndentOption(indent string) ReadWriteOption
. - Defined
storage.PrettyPrintOption(enabled bool) ReadWriteOption
.
- Changed
storage.Parser
funcs to allow the passing of...ReadWriteOption
.
v1.11.0 - 2020-12-22
- Benchmark info now contains graphs.
update
command to self-update dasel.
- Benchmark info now directly compares dasel, jq and yq.
v1.10.0 - 2020-12-19
- Add
dasel put document
command. - Benchmark information.
-r
,--read
and-w
,--write
flags are now used indasel put object
.- Fix issues that occurred when writing to the root node.
- Command names and descriptions.
v1.9.1 - 2020-12-12
- Stopped parsing XML entities in strings.
v1.9.0 - 2020-12-12
- Add keys/index selector in multi queries.
- Add
-n
,--null
flag.
v1.8.0 - 2020-12-01
- Add ability to use
ANY_INDEX
([*]
) andDYNAMIC
((x=y)
) selectors on maps/objects.
v1.7.0 - 2020-11-30
- Add
-r
,--read
and-w
,--write
flags to specifically choose input/output parsers. This allows you to convert data between formats.
v1.6.2 - 2020-11-18
- Add support for multi-document JSON files.
v1.6.1 - 2020-11-17
- Remove some validation on
dasel put object
to allow you to put empty objects.
v1.6.0 - 2020-11-17
- Add search selector to allow recursive searching from the current node.
v1.5.1 - 2020-11-14
- Fixed an issue that stopped new values being saved.
v1.5.0 - 2020-11-12
- Add ability to use
\
as an escape character in selectors.
v1.4.1 - 2020-11-11
- Fix an issue when parsing dynamic selectors.
v1.4.0 - 2020-11-08
- Add
-m
,--multiple
flag to deal with multi-value queries. - Add
ANY_INDEX
or[*]
selector. - Add
NextMultiple
property to theNode
struct - this is used when processing multi-value queries. - Add
Node.QueryMultiple
func. - Add
Node.PutMultiple
func.
v1.3.0 - 2020-11-08
- Add support for CSV files.
- Add support for multi-document YAML files.
- Add CodeQL step in github actions.
- Docker image is now pushed to ghcr instead of github packages.
v1.1.0 - 2020-11-01
- Add sub-selector support in dynamic selectors.
v1.0.4 - 2020-10-30
- Add
--plain
flag to tell dasel to output un-formatted values.
v1.0.3 - 2020-10-29
- Command output is now followed by a newline.
v1.0.2 - 2020-10-28
- Docker image is now built and pushed when a new release is tagged.
v1.0.1 - 2020-10-28
- Add support for XML.
- Add
-
as an alias forstdin
/stdout
in--file
and--output
flags. - Selector can now be given as the first argument making the flag itself optional.
select
is now the default command.
v1.0.0 - 2020-10-27
- Add lots of tests.
- Add docs.
- Got accepted to go-awesome.
v0.0.5 - 2020-09-27
- Add support for TOML.
v0.0.4 - 2020-09-27
- Ability to check against the node value in a dynamic selector.
- Code coverage.
- Use reflection instead of fixed type checks.
v0.0.3 - 2020-09-24
- Use reflection instead of fixed type checks.
- Extract commands into their own functions to make them testable.
v0.0.2 - 2020-09-23
- Add ability to pipe data in/out of dasel.
- Add dasel put command.
v0.0.1 - 2020-09-22
- Everything!