- Replaced
--argmap
JSON literals with--argmaps
, which accepts a list of argmap names to load - Replaced
--arg
with--args
for consistency with other option pluralization - Removed
--argmap-file
direct loading in favor of--argmaps
- Changed target
argmaps
configuration to align with new autoloading API - Replaced
is_executable
boolean intarget show --commands
topermissions
showing octal mode
- Issue preventing symlinked directories from working with
checkpoint update --pending
- (internal) Naming of change target reason
uses_target
touses
for clarity
- (internal) Parallelized analyze
server.log
config
checkpointed
boolean onrun
andanalyze
output, indicating if the checkpoint was used
checkpoint update
run without args always forced a help message
analyze
andrun
no longer query the change provider when a checkpoint does not exist--changes
and--change-targets
flags onanalyze
are disabled if no checkpoint is available to guide change detection- (internal)
Cargo.lock
to git - (internal) Removed
hex
dependency - (internal) Removed
flume
dependency - (internal) Changed resolver to "2"
- (internal) Update CI to use locked cargo commands
config generate
API for generating a configuration file that is synchronized with its source file- Initial implementation of lock server, preventing parallel monorail use for a subset of APIs
target render
API for creating a visual representation of the target graph
- Removed
--target (-t)
flag frommonorail analyze
-Issue preventing monorail run
from returning non-zero exit codes
- Default commands directory from
monorail
tomonorail/cmd
- Optional per-target base argmaps
- Default argmaps directory of
monorail/argmap
--arg, --arg-map, and --arg-map
may all be specified simultaneously, and are processed with a precendece order- Support for multiple
--arg-map
and--arg-map-file
arguments and merging of them
command.definitions.args
has been removed in favor of multiple arg-map/arg-map-file support
- Configuration
output_dir
changed toout_dir
for consistency
- Graph cycle detection when specific targets are specified to
analyze
andrun
- Omit null fields in serialized run results structure
- Adjusted run results structure to reduce duplication and improve logical grouping
- The
invocation_args
field in the run results structure is nowinvocation
--arg
,--arg-map
, and--arg-map-file
arguments tomonorail run
for providing runtime arguments to commands
--fail-on-undefined
now always defaults tofalse
, instead oftrue
when one or more targets is supplied tomonorail run
- Improved error clarity for configuration file-related issues
- Disallow unknown fields in
Monorail.json
- Allow target file contains check to traverse subtree
- The
commands.path
field now always defaults tomonorail
, relative to the target path - The
commands.definitions.<command_name>.path
field is now interpreted relative to the repository root - The
commands.definitions.<command_name>.args
field now applies to mapped definitions and discovered commands
- Fixes staged changes not appearing in changesets when a checkpoint is not present (@neopug)
--commands
flag formonorail target show
for displaying available commands for targets- Command sequence support and the
--sequences
(-s
) flag formonorail run
- The
--command
argument forrun
andlog show
has changed to--commands
for consistency - The
--target
argument forrun
,analyze
, andlog show
has changed to--targets
for consistency - The
--start
(-s
) argument forrun
andanalyze
has changed to--begin
(-b
)
monorail log show
andmonorail log tail
now return an error if neither --stdout nor --stderr are provided
monorail out delete --all
for purging all run, result, log, and tracking data
- An optional
--id
(-i
) can be provided tocheckpoint update
to provide and id to use, instead of inferring one from end of history
checkpoint update
now always stores inferred references fully resolved instead of the HEAD alias
- A RFC3339 timestamp to all success and error output structs
- Verbose logging timestamp format adheres strictly to RFC3339
- Removed serialization of null fields in
monorail config show
Dependency graph, parallel execution, replaced extensions with monorail run
, and checkpoint rework.
- Replaced
monorail-bash
for running user-defined commands withmonorail run
- Generate a target DAG from target
uses
definitions - Parallel execution of user defined executables guided by the target DAG
- Tracking table for storing the change detection checkpoint and for future internal use
- Collection of compressed logs and results
- Real-time log streaming
- Replaced tag-based checkpoints with a universal checkpoint file
- Replaced
monorail checkpoint create
withmonorail checkpoint update
- Removed
git.trunk
,git.remote
, andgit.tags_refspec_prefix
configuration - Removed
extension
configuration - Removed
libgit
integration anduse_libgit2_status
argument
A large internal refactor to improve speed and flexibility.
- Replaced
inspect change
command withanalyze
- Replaced
release
command withcheckpoint create
- Updated tutorial and documentation to reflect changes
- Removed concept of
group
andproject
, replaced withtarget
- Replaced
depend
withuses
, and is no longer required to be pre-declared on a top level target (previously,depend
entries had to be declared on the parent group) - Multiple
Monorail.toml
fields now have defaults:vcs.use = "git"
,vcs.git.trunk = "master"
,vcs.git.remote = "origin"
, andextension.use
- Changed checkpoint tag messages from plain text to JSON, and added change count
- Minor tag message formatting issue when using git tags for checkpointing
- '-d' working directory flag changed to '-w'
- Delete local git tag when a checkpoint fails to push
- Changed checkpoint id format from incrementing semver to incrementing
monorail-N
, N > 0