All notable changes to this project will be documented in this file, which follows the conventions of keepachangelog.com. This project adheres to Semantic Versioning.
:project-dirs
pattern can now support recursive subdirectories with
a double-wildcard .../**
syntax.
#85lint
task now only considers dependency names and versions for
detecting conflicts, which should improve the signal-to-noise ratio.
#73unlink
task will now only remove internal checkouts by default. It also
accepts an :all
option to remove external checkouts, as well as a list of
project names to specifically unlink.
#66
#80each
task provides a command to resume execution, the arguments
will be properly quoted for shells.
#27
#72each
task is now compatible with composite profiles.
#29
#77each
is used with :parallel
, task aliases are now correctly resolved
before iteration starts.
#36
#74:inherit-raw
and :inherit-leaky-raw
to
list keys which should be inherited without interpretation from the
metaproject. This is useful for inheriting source paths without them being
canonicalized.
#68
#75each
task supports a new :silent
option, which will suppress task
output for successful projects. This can be useful in large CI builds where
the output is only consulted in the event of failure.
#37
#81each :endure
iteration, the stack
trace is printed immediately instead of swallowing the error.each :output
iteration, the stack
trace is printed in the output file in addition to the combined output.
#56do
are resolved before parallel execution, which should ensure
they are fully loaded before they are called.:parallel
and
:output
options in the each
subtask.graph
subtask supports an :image-path
option to explicitly specify the
graph image output, as well as a :dot-path
option to also write the raw dot
definition for the graph.deps
subtask supports listing all project dependencies in the monorepo.
The output should be suitable for other tooling to consume.:monolith/fingerprint-seed
value as a way to force
fingerprint invalidations when desired.puget
for colorized output and canonical printing. This
avoids pulling in fipp
which is problematic to use in Leiningen on Java 9+.
#49LEIN_MONOLITH_COLOR
environment variable to no
, false
, or off
.graph
subtask to take specific targeting options.
#43each
subtask couldn't be composed with subsequent tasks if it had no
work to do. #44each
subtask no longer fails when zero projects are selected.each
subtask supports :refresh
and :changed
to perform incremental
runs over the projects.changed
, mark-fresh
, and clear-fingerprints
subtasks inspect and
manipulate the underlying fingerprints used to perform incremental runs.link
could try to link a project to itself and fail. #41link
subtask accepts a list of projects to target, allowing you to
select which checkout links get created.graph
subtask could throw an exception when clusters exist at the root
of the metaproject. #31:inherit-leaky
vector to generate a leaky
profile for inclusion in subprojects' built artifacts.This release marks the first stable major release of the plugin. Actual feature
changes are small, but lein-monolith
has seen enough production use to be
considered a mature project.
:output
option to each
task allows saving individual subproject output
to separate files under the given directory.each
now use the subproject's root as the working directory,
rather than the monolith root. #21info
task supports targeting options.with-all
task supports targeting options.:subtree
targeting option.each
task supports additional dependency closure selection options,
including :in <projects>
, :upstream
, :upstream-of <projects>
,
:downstream
, and :downstream-of <projects>
.:project-selectors
can be provided to each
in order to chain the
filters applied to the targeted projects.:subtree
option to each
is deprecated.:report
option to the each
task to print out detailed timing once
each
completes.each :parallel <threads>
option to run tasks on subprojects
concurrently. Tasks still run in dependency order, but mutually independent
projects are run simultaneously on a fixed-size thread pool.each
to print a completion message after subproject tasks finish
running. This improves output during parallel execution.each
task supports an :endure
option to continue iteration in the
event of subproject failures. This supports better CI usage for testing.each
task now adds a :monolith/index
key to project maps passed to
the project-selector function to enable mod-distribution logic.each
weren't output in the continuation command.:deep
option to the link
task to link checkouts for all transitive
dependencies.each
iteration.with-all
is used in a subproject.This release contains a breaking change in how the plugin is configured! All
options are now contained in a required metaproject at the repository root
instead of a separate monolith.clj
file.
This should also be much faster to run due to lazily initializing subprojects instead of loading them all before running any commands.
:resource-paths
from each subproject.:monolith/inherit
key
in subprojects and :monolith {:inherit [...]}
in the metaproject.lint
subtask runs the dependency conflict checks which previously ran
during every merged profile task.each
task supports :skip <project>
and :select <filter>
options.:monolith
key in a project no longer automatically includes the
merged profile; instead, it is used for general plugin configuration.each :subtree
would show the wrong number of total
subprojects while printing its progress.Initial project release
Can you improve this documentation? These fine people already did:
Greg Look, Alex Engelberg & Drew InglisEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close