Skip to content

Latest commit

 

History

History
644 lines (560 loc) · 28.1 KB

CHANGELOG.md

File metadata and controls

644 lines (560 loc) · 28.1 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

1.0.0-alpha.2 (2021-08-30)

Bug Fixes

  • core: catch errors in normalize events (96d2690)
  • core: correct the usage of arch_chroot (f6925cc)
  • core: handle errors in normalize hook (fc3895e)
  • core: honors on_action when calling modules (2f67c05)
  • core: link match full error code (a5a5d4b)
  • core: match against module instead of namespaces (554884c)
  • core: merge $ like magick properties (03a3244)
  • core: pass error and output in action argument (68eec1b)
  • core: remove unused code (b7f2df8)
  • core: revert wrong usage of dollar sign (a232efb)
  • core: stop processing after normalize error (0fe9177)

Features

  • core: call load modules exporting object (5bffd10)
  • core: custom keywords for stream and error (f4a3941)
  • core: debug accept stderr string (c281391)
  • core: enforce schema in argument_to_config (67a6a62)
  • core: expose serializer in log.md (d578171)
  • core: metadata header schema (ae64293)
  • core: new end option in scheduler (8ae894c)
  • core: new local object in tools.path (61c8917)
  • core: new scheduler strict option (da0b027)
  • core: new schema event to modify action schema (59aeda0)
  • core: registry get return parent actions (78a5f81)
  • core: scheduler parallel execution (2d60f03)
  • core: schema validation for debug (db60fb8)
  • core: schema validation for depth, index and position (4bfc2de)
  • core: schema validation for disabled (1f80590)
  • core: schemas stored in definitions (d8fd7de)
  • core: templating desactivated by default (387c122)
  • core: tmpdir metadata accept functions (8a37452)
  • core: unmanaged handlers after resolve (0f98f59)
  • core: update module metadata in call (0c7c793)
  • core: validate assertion function output (8e62d3f)
  • core: validate raw properties (a79f1b6)

1.0.0-alpha.1 (2021-03-10)

Bug Fixes

  • core: bastard applied to all conditions and assertions (562299c)
  • core: build previous feature (958fb2d)
  • core: dollar sign (35d58c6)
  • core: filter out entering logs for bastard (1cd8ce1)
  • core: fix folder removal error message (205bc56)
  • core: fix uncaught error in execute.wait (e89ada5)
  • core: interpret null as a value in find (ad78b85)
  • core: log.md enter honors $log false (6a17153)
  • core: reject errors when $ref is invalid (f8fd133)
  • core: relax called in result to handler scheduler errors (41d5cf8), closes #282
  • core: remove ref to ssh in fs.move (a1644c9)
  • core: remove usage of run (33be522)
  • core: scheduler accept empty array of handlers (7f1aa82)
  • core: session call out actions after handler actions (a72a8d6)
  • core: siblings initialized as empty array (93c1508)
  • core: use scheduler instead of Promise.all on session creation (7d16d96)

Features

  • core: $log property in error thrown by action (6a7d4e8)
  • core: activate diff in log.md (2d548db)
  • core: call accept module path (25ff5fc)
  • core: close ssh conn from sibling (85dec82)
  • core: config enter in log.md (bb9c496)
  • core: fs.assert trim when match content (e7e0262)
  • core: magic_dollar plugin (77df829)
  • core: new bastard metadata (0f57bab)
  • core: new retry property in execute.wait (f38bb1d)
  • core: new utils.promise.array_filter function (8793cb3)
  • core: plugin execute export config to metadata (3022c14)
  • core: revert scheduler to not manage errors in handler (c6ebce7)
  • core: scheduler pause and resume (2635719)
  • schema coercion (9e52391)

1.0.0-alpha.0 (2021-02-03)

The jump to version 1.0.0 is a major which rewrite every single part of the code. The list of changes is too big to be reproduced here. We'll start generating the changelog from this version.

Version 0.9.7

New feature:

  • system.execute: inject arch_chroot path
  • system.execute: new command property in error object

Enhancements

  • schema: improve multiple errors message
  • file.ini: add schema
  • file: add schema
  • connection.http: escape data argument

Fix:

  • schema: call after conditions
  • misc.ini: handle array in multi brackets
  • misc.string: escape shell single quotes using double quotes
  • system.mod: remove sudo

Version 0.9.6

Breaking changes:

  • system.mod: name is renamed module
  • metadata: split and independent from options
  • metadata: renamed from internal
  • cron: move into tools

New feature:

  • fs.readdir: new action
  • on_options: new hook
  • system.user.read: use getent passwd command
  • schema: initial support
  • system.execute: pipe option.stdin
  • connection.assert: new option not
  • schema: new option

Fix:

  • ssh: dont attempt to read private key if password provided
  • session: remove support for 2nd argument
  • connection.wait: fix race condition with quorum
  • events: fix handling next and error events
  • connection.wait: fix tests

Cleanup:

  • system.execute: document events
  • registry: move into engine
  • package: simplify test command

Version 0.9.3

Breaking changes:

  • api: parent part of context
  • each: invalid args throw error instead of passing it
  • domain: remove option and support

New features:

  • system.execute.assert: assert exit code
  • connection.http: new action
  • java.keytool: new keytool option, improve discovery
  • file.download: http_headers and cookies with no cache
  • file.ini: new parse_bracket_then_curly
  • debug: print lines
  • system.authconfig: new action
  • file.cache: new cookies option
  • conditions: executed as actions
  • conditions: support sudo
  • service.install: add yay support
  • locale_gen: force generation if boolean
  • core env: working lxd prototype

Fix:

  • log: refactor end and error cli
  • retry: ensure 1st level of options is immutable
  • sudo: support local option in file actions
  • relax: callback error are propagated to parent
  • file.upload: honors sudo
  • db.database: mysql/mariadb default to latin1
  • status: more expressive tests
  • file.stat: handle empty stdout
  • file.hash: enrich error message
  • file.download: honors sudo
  • service.init: disable templating if no context
  • cascade: implement cascaded options in callbacks
  • file.cson: fix merging when target is missing
  • keystore_add: use command instead of which
  • file.hash: use command instead of which

Cleanup:

  • session: externalize args_to_actions and make_action
  • session: make_context
  • session: isolate current action from history
  • core: remove unnecessary transmission of ssh

Management:

  • project: raise Node.js and use files
  • tests: update ssh2-they
  • core: latest dependencies

Version 0.9.1

Breaking changes:

  • package: rename scope to nikitajs
  • fs.readFile: show exemple
  • system.execute: cleanup temp file with arch chroot
  • package: split package under a single monorepo
  • misc.file: remove module
  • file.cache: rename headers to http_headers to avoid conflict

New features:

  • nikita: require all dependencies
  • misc.file.type: print the file type given a mode
  • handler: pass session to context
  • file.cache: enforce hash

Fixes:

  • core: clean up file with arch chroot
  • file.cache: handle false ssh options

Management:

  • events: isolate tests into api/events
  • aspect: isolate tests into api/aspect
  • doc: minor updates

Version 0.8.1

New features:

  • file.hash: predictable hash using sort
  • log: honors debug when log is disabled
  • system.execute.assert: honors execute options
  • misc: export db and docker

Fixes:

  • system.execute: clean up tmp file
  • docker.cp: migrate to options as destructured assignment
  • fs.mkdir: ensure macos compatiblity by using shortcut params
  • java.keystore_add: dont copy certs unless ssh and local
  • java.keystore_add: new tmpdir option
  • file: preserve origin permissions on update
  • fs.stat: macos compatibility
  • file.cache: fix undefined status argument
  • file.download: ssh null replaced by false

Cleanup:

  • test: filter all test with tags

Management:

  • package: latest dependencies

Version 0.8.0

Backward incompatibilities:

  • misc.file: deprecate usage of hash and compare
  • misc.glob: deprecated in favour of file.glob
  • context: 1st arg of handlers with the options key
  • service: option action renamed state
  • service: values start, stop, restart renamed started, stopped and restarted

New features:

  • options.depth: definable by user
  • file.glob: new action
  • file.hash: new action
  • system.chown: use getent
  • session: dont overwrite options when undefined
  • service.install: new options pacman_flags and yaourt_flags

Fixes:

  • session: remove unused condition while unstacking
  • file.upload: refactor and use file.hash
  • cascade: overwrite default values set in session
  • options status: dont return undefined when false
  • fs: disable log
  • system.mkdir: removed zombie call to uid_gid
  • options.log: true enabling/forcing logs
  • file.types.etc_passwd.read: reduce log verbosity
  • file.types.etc_group.read: reduce log verbosity
  • misc.ini.stringify: handle boolean values
  • misc.ini.stringify: fix eol for array values
  • service: 2nd argument is not a callback
  • log: remove log from cascade and parent usage

Minor enhancements:

  • fs.createWriteStream: code simplification

Management:

  • package: update license field to reflect MIT
  • env: emulate systemctl
  • env: rename MECANO_TEST to NIKITA_TEST_MODULE
  • misc.ini: isolate misc ini into its own module
  • misc.ini: reorganize tests
  • file.ini: isolate tests
  • register: isolate registration into its own module

Version 0.7.0

Backward incompatibilities:

  • session: renamed from context
  • actions: 2nd arg in callback is now an object
  • file.types.etc_group.read: rename output params user_list ot users
  • file.render: remove eco dependency

New features:

  • system.info.disk: new action
  • system.info.system: new action

Fixes:

  • ssh: fix conflict with session options
  • db: honors the port property

Cleanup and minor enhancements:

  • ssh: test arguments
  • cascade: test array when defined in action
  • mysql: isolate tests into their container
  • mariadb: isolate tests into their container
  • mysql: freeze version 5.7 to avoid authentication issues

Management:

  • package: push to current branch
  • package: use https url for issues
  • misc.doc: remove unused module
  • package: remove fs.realpath dependency
  • wrap: remove ssh2-connect dependency
  • package: remove backmeup, ftp and jsftp dependencies
  • package: re-activate lock file
  • package: latest dependencies

Version 0.6.8

Backward incompatibilities:

  • wrap: remove connection
  • log: move options.log to nikita.log
  • option depth: renaming, was total_depth
  • option log: remove depth and header_depth
  • option action: rename option, was type
  • option debug: print to stderr
  • log.cli: escape new line from color
  • log.cli: print to stderr

New features:

  • ssh.open: accept connection
  • options headers: inject parent headers
  • option parent: inject parent options
  • option depth: pass depth to actions
  • option get: ensure options are cloned
  • log: new action
  • option cascade: defined as a cascaded option
  • option debug: accept stdout value
  • array.flatten: depth limit as 2nd argument
  • cwd: marked as propagated

Fixes:

  • context: fix default param handler value
  • ssh: no longer reference ssh2
  • cascade: honored by get actions
  • cascade: global, session and action merge

Cleanup and minor enhancements:

  • option cascade: test false value in action
  • attempt: new test
  • event end: new test
  • event handled: write tests
  • file.assert: isolate tests and fix buffer usage
  • context: refactor arguments conversion to actions
  • context: simplify options cloning
  • context: remove deprecation about destination and local_source
  • fs.createWriteStream: normalize error with missing parent directory
  • src: ensure target paths are absolute over SSH

Management:

  • travis: test against Node.js versions 8 and 10
  • changelog: organize messages by group
  • package: latest dependencies

Version 0.6.7

  • fs.createWriteStream: new implementation
  • events: emit error and end
  • system.user: catch error on reading etc/passwd
  • fs.createReadStream: new sample and test
  • file etc_passwrd: read sample
  • system.limits: add sample
  • fs: new createReadStream action
  • system.cgroups: prepare store remove by cgroups in callback
  • fs.mkdir: fix uid/gid ingored options
  • store: move from options to context
  • uid gid: externalize reading to etc_passwd and etc_group
  • test: limit usage of ssh2-fs
  • fs: set default argument to target
  • sudo: start working on new option
  • conditions: fix test after latest ssh move to action
  • file.assert: handle root uid and gid
  • file.assert: new trim option
  • assert: remove connection
  • docker: fix tests
  • file.yaml: remove callback style

Version 0.6.5

  • system.chown: handle uid and gid 0
  • system.execute: enforce target
  • registry: registered handle non enumerable properties
  • ssh: move from options to action

Version 0.6.4

  • get: new option to call synchronuous
  • context: isolate internal state variables
  • registry: isolate registry functions from nikita
  • promise: synchronous handler may return a promise
  • api: remove lazy registry in favor of return undefined unless property exists
  • registry: get takes flatten and depracted options
  • api: rename then as next to avoid conflict with promise #125
  • package: fix npm test command
  • mod: persistent configuration
  • system.copy: create target parent directory
  • tools.sysctl: honors backup
  • file.cache: coffee esthetic
  • package: update jsftp

Version 0.6.3

  • package: publishing workflow
  • copy: fix multiple callback on error
  • repos: auto confirmation in repolist after repo creation
  • merge: duplicate arrays
  • mod: new system.mod action
  • kv: fix log enter in get
  • ssh: improve log messages
  • misc: merge buffer
  • keystore: use sha1 instead of md5
  • ssh_authorized_keys: new action
  • tests: update mocha coffee registration
  • service.init: pass empty context to render unless provided
  • package: use coffescript v2
  • render: ensure context is provided
  • db: support mariadb engine
  • log: improve and simplify CLI coloration
  • api: fix aspect when call co-jointly
  • db: rename postgres engine to postgresql
  • connection: assert accept servers and server
  • options: rename wait to sleep
  • misc: isolate array functions
  • service: new assert action with installed, started and stopped options
  • system.copy: better fix
  • system.copy: fixed parseInt
  • docker: doc cleanup #119
  • misc: merge support null as first argument
  • rubygem: source support glob expression
  • rubygem: improve test suport and resilience
  • rubygem: new fetch, install and remove actions
  • progragation: fix multi level propagation
  • context: disable ssh auto connect if no_ssh is enabled
  • system.copy: honors uid, gid, mode or preserve ownership and permissions #117
  • system.copy: refactor current source code #116
  • sysctl: handle empty line in merge
  • sysctl: hande equal sign in comment
  • ssh: allow root bootstraping if ssh is an object
  • test: use skip for non applyable tests
  • chmod: refactor in no callback style
  • misc.mode.compare: fix after multi mode comparaison
  • file.assert: accept an array of modes
  • test: upgrade mocha by using promise
  • propagation: prevent context option to propagate
  • propagation: rename from propagated_option, refactor as object
  • file.assert: validate file types
  • context: end honoring promise
  • package: npm lock file
  • doc: migrate to nikita-www and clean up
  • cron: test now passing on centos7 [bug]
  • service: replace which by command -v [enhancement]
  • test: rename disable_service_start to disable_service_systemctl [enhancement]
  • docker centos7: update docker installation [enhancement]
  • sysctl: new action [feature]
  • file: set permission for backup (security fix)
  • repo: fix and refactor gpg verify [bug]

Version 0.6.2

  • disabled: emit lifecycle event
  • package: latest dependencies
  • test: remove unrequired timeout
  • cron: disabled by default, enable in docker
  • file ini: value as array in stringify_then_curly
  • ssh root: fix new connection after reboot
  • option retry: unlimited if true
  • file.types.ceph_conf: add file type for ceph configuration file
  • group: handle root gid "0"
  • keystore add: handle CA certs chain
  • execute assert: new action
  • file assert: minor improvements
  • log cli: shy dislay no status change
  • log cli: dont display disabled and failed conditions
  • user: create parent directory
  • test: use promise in bootstrap test
  • file assert: uid & gid ownerships
  • backup: support cmd
  • keystore add: create parent directories if not exists
  • tools.repo: add update option
  • copy: print source and target stat logs
  • compress: externalize utils functions
  • keystore add: create parent directories
  • service.init: reload daemon when file changed on disk
  • tools.repo: refactor to support remote download
  • context: introduce promise
  • connection wait: fix errors
  • file: fix typo and lower eof log level
  • log: global options with log_csv, log_fs, log_md and log_stream
  • file.assert: content as a regexp
  • src: remove usage of new while creating error instances
  • system.mkdir: use target in error messages
  • java.keystore_add: cacert not required
  • system.remove: log removed files
  • chown: fix and test stat option
  • src: 2 spaces md list indentation
  • chown: complete refactoring
  • compress and extract: support bz2 tests on centos7
  • conditions: support redhat in unless_os
  • context: load modules relative to process cwd
  • ping: call it and receive pong
  • wait.execute: pass std_log options
  • execute: std_log options not disabled if undefined or null
  • download: fix file based checksum validation
  • java.keystore: detect if keystore exists
  • condition: fix Red Hat detection
  • file.properties: add exemple
  • db.user: trap any error
  • database: default mysql charset as utf8
  • system.tmpfs: remove system.discover and fix status not modifed
  • tools.repo: support http(s) protocol for source
  • tools.repo: convert ugly test to unit test
  • tools.repo: fix documentation
  • tools.repo: repo udpate disabled by default
  • tools.repo: fix path resolution
  • java.keystore_add: chwon and chmod support
  • service: disable stdin log for installed and outpdated
  • file.properties: internal parse fn take source as first argument
  • conditions: normalize redhat name
  • system discover: default to shy
  • database: create user with grant options
  • service.init: daemon-reload based on loader only and not system.discover
  • disable repo test for archlinux, ubuntu test environment
  • tools.repo: add tools action to push repo file for packet manager closes #104
  • file.types.yum_repo: add action to write repo file to yum format
  • file.ini: complete rewrite and add source options support
  • misc.ini.stringify: add escape option
  • misc.regexp.esace: add example
  • startup: improve error message
  • misc.db: surround password by quotes
  • misc.db: engine, host and username now required
  • misc.db: cmd now optianal, stronger argument parsing
  • properties: status detection based on diff
  • properties: new comment option #103
  • conditions: new if_os and unless_os #102
  • ini: fix header, dont pass options to write
  • options: handle user home in source and target #101
  • uid_gid: fix intrusive determination of gid #100
  • chown: name as main argument
  • user.remove: new action #99
  • system.user: isolate and refactor #98
  • ssh root: fix log messages
  • docker: latest node 6.10.1
  • tempfs: remove unused dependencies
  • group: write tests #97
  • group.remove: new action #96
  • group: isolate and refactor #95
  • ssh.root: improve logs
  • ini: detect platform if local otherwise unix styles #94
  • cson: new file writer #93
  • execute: support sudo #92
  • service: re-introduce outdated and installed options
  • context: fix error message for unregistered middleware
  • service.startup: update-rc support for ubuntu #91
  • service startup: refactoring and chroot support #90
  • pacman_conf: target default path and rootdir support #89
  • locale_gen: new file types action #88
  • file: fix log information #87
  • src: enforce line ending with git #83
  • service: support arch-chroot in install, start, status, stop #86
  • user: support arch-chroot #85
  • execute: suport arch-chroot commands #84
  • execute: option dirty leave temp file as is #82
  • service: support pacman #81
  • travis: test with node 7 #80
  • misc.glob: only used command #79
  • service: split activation between install & start #78
  • service: throw err if loader not detected #77
  • test: fix creation of test config file #76
  • docker: test against archlinux #73
  • system.execute: bash explicitly defined by its option #75
  • file: support pacman conf #74
  • service: remove all ref to option.store and rewrite all this mess #72

Version 0.6.1

  • backup: start complete rewrite #71
  • debug: print stdin and better filter on printable logs #70
  • docker: clean up node.js downloaded archive #69
  • system discover: support oracle and cache not enabled by default #68
  • docker rh: pass hash test by installing openssl #67
  • docker ubuntu: install java to support tests #66
  • misc.file.hash: support for sha256 digest #65
  • kv: shared key/value store with events #64
  • tempfs: fix test when not executed on centos #63
  • samples: update mkdir #62
  • test: fix travis #60
  • execute: execute a file in bash if target #61
  • execute: move to system namespace #59
  • cache: move to file namespace #58
  • package: clean lib before coffee generation #57
  • compress: code simplification #56
  • compress: move to tools namespace #55
  • backup: move to tools namespace #54
  • registry: api documentation #53
  • deprecate: new function honoring Node.js native usage #52
  • extract: move to system namespace #51
  • file.assert: honor option error with exist, hash and mode #50
  • file.assert: new option not #49
  • remove: move to system namespace #48
  • file.assert: validate file mode #47
  • file.assert: validate signature with sha1 and md5 #46
  • copy: move to system namespace #45
  • link: move to system namespace #44
  • git: move to tools namespace #43
  • move: move to file namespace #42
  • render: move to file namespace #41
  • src: normalize titles #40
  • wait: rename wait/time to wait #39
  • touch: move to system namespace #38
  • mkdir: move to system namespace #37
  • cgroups: move to system namespace #36
  • chmod: move to system namespace #35
  • chown: move to system namespace #34
  • group: move to system namespace #33
  • user: move to system namespace #32
  • iptables: move to tools namespace #31
  • conditions: more descriptive message #30
  • package: rename to nikita #29
  • changelog: time to be serious #28
  • package: fix bug and repo url #27
  • disable: Introduce new option "disable" #26

Version 0.6.0

Not imported!