- Move
Cli*
types topeace_cli
crate undercli::output
module. (#182, #189) - Move
OutputFormat
andOutputFormatParseError
topeace_cli_model
crate. (#182, #189) - Render progress and outcome diagram using
dot_ix
. (#182, #189, #191) - Experimented renaming
Item
trait toStep
(reverted). (#187, #192) - Rename
peace_resources
crate topeace_resource_rt
. (#182, #187, #193, #194)
- Provide more accurate feedback about interruption on CLI. (#172, #173)
- Remove requirement to import
peace::cfg::AppName
when usingapp_name!("..")
macro. (#157, #176) - Remove requirement to import
peace::cfg::FlowId
when usingflow_id!("..")
macro. (#157, #176) - Remove requirement to import
peace::cfg::ItemId
when usingitem_id!("..")
macro. (#157, #176) - Remove requirement to import
peace::cfg::Profile
when usingprofile!("..")
macro. (#157, #176) - Add
CmdCtxTypes
to group error, output, and params keys into one type parameter. (#166, #177) - Add
Presenter::list_numbered_aligned
andlist_bulleted_aligned
. (#151, #178) - Add
ListNumberedAligned
,ListBulleted
,ListBulletedAligned
. (#151, #178) - Add
Either
,PresentableExt
. (#151, #178) - Remove
TS
type parameter fromSingleProfileSingleFlow
andMultiProfileSingleFlow
scopes. (#179, #180)
- Change
CmdOutcome
to be anenum
indicating whether it is completed, interrupted, or erroneous. (#141, #163) - Add
CmdBlock
trait to encompass one function for all items. (#141, #163) - Add interruptibility support using
interruptible
throughCmdCtxBuilder::with_interruptibility
. (#141, #163) - Add
ItemStreamOutcome
to track whichItem
s are processed or not processed. (#164, #165) - Suppress progress rendering for
StatesCurrentReadCmd
,StatesGoalReadCmd
, andDiffCmd
. (#167, #168) - Suppress control character echo on
stdin
, which removes progress bar rendering artifact. (#169, #170)
- Add
CmdBase
andCmdIndependence
for easier command composition. (#120, #130) - Rename
StatesDesired*
toStatesGoal*
. (#131, #132) - Add
StatesGoalStored
to distinguish between stored and discoveredStatesGoal
. (#131, #132) DiffCmd::diff{,_with}
supports discovery of state during diffing. (#133, #134)- Add
PartialEq
bound toItem::State
. (#59, #135) - Guard
EnsureCmd::{exec,exec_dry}
if stored current state or goal state is not in sync with actual. (#59, #135) - Guard
CleanCmd::{exec,exec_dry}
if stored current state is not in sync with actual. (#59, #135) - Add
*Cmd::*_with
for command logic to be executed as sub commands. (#59, #135) - Removed "output_colorized" feature, and always include colorized output. (#136, #137)
- Removed "output_json" feature, and always include json output format. (#136, #137)
- Add tests where useful cases are missed. (#136, #137)
- Ignore unnecessary missed lines (e.g. panics in tests). (#136, #137)
- Remove
peace_item_sh_sync_cmd
. (#136, #137) - Always store an entry for each item's state in
states_*.yaml
, in order of item insertion. (#138, #139)
- Add
Item::Params
associated type. (#116, #117) - Rename
OpCtx
toFnCtx
. (#116, #117) - Update
Item
functions to take inSelf::Params
. (#116, #117) - Implement referential item param values. (#94, #118)
- Add
Params
derive. (#94, #118) - Add
ParamsSpecs
to*SingleFlow
command context scopes. (#94, #118) - Take in
Params::Spec
s inCmdCtxBuilder::with_item_params
. (#94, #118) - Use
Params::Partial
inItem::try_state_*
functions. (#94, #118) - Implement one level recursion referential item params. (#119, #121)
- Implement deep merging of params specs. (#122, #123)
- Calculate padding for progress bar item IDs. (#46, #124)
- Implement
Clone
,PartialEq
forFlow
. (#125, #126)
- Rename
app_cycle
example toenvman
. (#35, #107) - Develop
envman
example to have sensible errors and state display messages. (#35, #107) - Return both command outcome and errors in
ApplyCmd
. (#107) StatesDiscoverCmd
discovers states concurrently. (#107)- Serialize
StatesDesired
as part ofApplyCmd
. (#107) - Consolidate
Item
functions into single trait. (#96, #109) - Remove
StatesCurrentDiscoverCmd
andStatesDesiredDiscoverCmd
. (#110, #111) - Update
DiffCmd
to take in states to diff. (#101, #112) - Add
DiffCmd::current_and_desired
to diff current and desired states of a profile. (#113, #114) - Add
DiffCmd::diff_profiles_current
to diff current states of two profiles. (#113, #114)
- Move
R, W, ROpt, WOpt, RMaybe, WMaybe
topeace_data::accessors
. (#94, #95) - Automatically insert
Current<Item::State>
after state current and ensure exec executions. (#94, #95) - Automatically insert
Desired<Item::State>
after state desired discover execution. (#94, #95) - Consolidate
EnsureOpSpec
andCleanOpSpec
intoApplyOpSpec
. (#67, #99) - Add icons to CLI progress bars. (#102, #103)
- Add elapsed / ETA time to CLI progress bars. (#102, #103)
- Display messages in CLI progress bars. (#102, #103)
- Display progress bars during state discovery. (#100, #104)
- Clear progress bars on command end. (#100, #104)
- Include entry for current and discovered states, and diff in
envman
example. (#91, #105) - Sort progress bars based on insertion order. (#91, #105)
- Use
▰
and▱
parallelogram characters for progress bars. (#91, #105) - Spinner progress is now rendered. (#91, #105)
- Add
cargo-deny
andcargo-about
CI checks. (#76) - Add [
peace::fmt::{Presentable, Presenter}
] traits. (#77, #79) - Add [
peace::rt_model::CliMdPresenter
] which is the default for presenting text inCliOutput
. (#77, #79) - Hold
WorkspaceParams
,ProfileParams
, andFlowParams
type registries inCmdContext
. (#35, #80) - Add new
CmdCtx
that contains workspace / profile / flow scoped information. (#81, #82) - Update examples to use
CmdCtx
. (#83, #85) - Remove the old
CmdContext
. (#83, #85)
FileDownload
item now supports base64 storage for WASM target. (#62)- Implement
TarXItem
for native target. (#62) - Support multiple workspace, profile, and flow parameters. (#45, #63)
- Support progress bars in
CliOutput
. (#42, #66) - Consolidate
StateLogical
andStatePhysical
intoItem::State
. (#69, #70) - Use ETag to determine if a file needs to be re-downloaded. (#68, #71)
- Add
PeaceAppDir
layer so different Peace tools don't conflict with each other. (#35, #72) - Move
profile
andflow_id
parameters toCmdContextBuilder
. (#35, #73) - Support reading
Profile
from workspace params. (#35, #73)
ShCmdStateDiffFn
correctly runsstate_diff_sh_cmd
for state diff. (#57)ShCmdParams
now uses theId
type parameter so that differentShCmdItem
s can be used correctly. (#57)ShCmdItem
takes in optionalShCmdParams<Id>
and inserts it intoresources
. (#57)CmdContextBuilder
sets the current directory to the workspace directory. (#57)StatesDesired
is now stored asState<Logical, Placeholder>
. (#52, #58)- Re-read discovered
States
are now namedStatesSaved
. (#52, #60) StatesCurrent
is only present when the discovered in the current execution. (#52, #60)States*Deserialize
errors are consolidated into a single variant. (#52, #60)States*Serialize
errors are consolidated into a single variant. (#52, #60)
- Require
Display
to be implemented forStateLogical
andStatePhysical
. (#28, #37) - Output states and diff as text on single line. (#28, #37)
- Support CLI output with colour with the
"output_colorized"
feature. (#28, #38) - Support CLI output as YAML. (#28, #39)
- Support CLI output as JSON with the
"output_json"
feature. (#28, #39) - Error compatibility with
miette
with the"error_reporting"
feature. (#28, #40) - Items are published as part of the
peace_items
crate. (#44) file_download
item is type parameterized. (#44)- Add
ShCmdItem
, which allows item logic to be defined by shell commands. (#53, #54)
- Peace book – https://peace.mk/. (#22, #23)
- WASM Support. (#20, #21)
- Workspace, profile, and flow directories. (#15, #24, #26)
- Workspace, profile, and flow initialization parameters. (#26, #29, #30)
StatesDiscoverCmd
to discover both current and desired states. (#24, #26, #27)CleanCmd
to clean up an item. (#33, #34)