github neilotoole/sq v0.34.0

latest releases: v0.48.3, v0.48.2, v0.48.1...
16 months ago

This release significantly overhauls sq's config mechanism (#199).
For an overview, see the new config docs.

Alas, this release has several minor breaking changes ☢️.

Added

  • sq config ls shows config.
  • sq config get gets individual config option.
  • sq config set sets config values.
  • sq config edit edits config.
    • Editor can be specified via $EDITOR or $SQ_EDITOR.
  • sq config location prints the location of the config dir.
  • --config flag is now honored globally.
  • Many more knobs are exposed in config.
  • Logging is much more configurable. There are new knobs:
    $ sq config set log true
    $ sq config set log.level INFO
    $ sq config set log.file /var/log/sq.log
    There are also equivalent flags (--log, --log.file and --log.level) and
    envars (SQ_LOG, SQ_LOG_FILE and SQ_LOG_LEVEL).
  • Several more commands support YAML output:

Changed

  • The structure of sq's config file (sq.yml) has changed. The config
    file is automatically upgraded when using the new version.
  • The default location of the sq log file has changed. The new location
    is platform-dependent. Use sq config get log.file -v to view the location,
    or sq config set log.file /path/to/sq.log to set it.
  • ☢️ Envar SQ_CONFIG replaces SQ_CONFIGDIR.
  • ☢️ Envar SQ_LOG_FILE replaces SQ_LOGFILE.
  • ☢️ Format flag --table is renamed to --text. This is changed because while the
    output is mostly in table format, sometimes it's just plain text. Thus
    table was not quite accurate.
  • ☢️ The flag to explicitly specify a driver when piping input to sq has been
    renamed from --driver to --ingest.driver. This change aligns
    the naming of the ingest options and reduces ambiguity.
    # previously
    $ cat mystery.data | sq --driver=csv '.data'
    
    # now
    $ cat mystery.data | sq --ingest.driver=csv '.data'
  • ☢️ sq add no longer has the generic --opts x=y mechanism. This flag was
    ambiguous and confusing. Instead, use explicit option flags.
    # previously
    $ sq add ./actor.csv --opts=header=false
    
    # now
    $ sq add ./actor.csv --ingest.header=false
  • ☢️ The short form of the sq add --handle flag has been changed from -h to
    -n. While this is not ideal, the -h shorthand is already in use everywhere
    else as the short form of --header.
    # previously
    $ sq add ./actor.csv -h @actor
    
    # now
    $ sq add ./actor.csv -n @actor
  • ☢️ The --pretty flag has been removed. Its only previous use was with the
    json format, where if --pretty=false would output the JSON in compact form.
    To better align with jq, there is now a --compact / -c flag that behaves
    identically to jq.
  • ☢️ Because of the above --compact / -c flag, the short form of the --csv
    flag is changing from -c to -C. It's an unfortunate situation, but alignment
    with jq's behavior is an overarching principle that justifies the change.

Don't miss a new sq release

NewReleases is sending notifications on new releases.