All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Please make sure to add your changes to the appropriate categories:
Added
: for new functionalityChanged
: for changes in existing functionalityDeprecated
: for soon-to-be removed functionalityRemoved
: for removed functionalityFixed
: for fixed bugsPerformance
: for performance-relevant changesSecurity
: for security-relevant changesOther
: for everything else
- n/a
- n/a
- n/a
- n/a
- n/a
- n/a
- n/a
- n/a
- Resolved RUSTSEC-2024-0421 by upgrading
url
crate dependency to "2.5.4".
- Added CLI flag
--no-owns
fordependencies
command for filtering out "owns" edges and resulting isolated nodes.
- Updated dependencies:
rust-analyzer
from0.0.246
to0.0.248
anyhow
from1.0.93
to1.0.94
clap
from4.5.21
to4.5.23
libc
from0.2.166
to0.2.168
- Added CLI flag
--version
for printing the version.
- Updated dependencies:
libc
from0.2.164
to0.2.166
rust-analyzer
from0.0.245
to0.0.246
- Updated dependencies:
rust-analyzer
from0.0.244
to0.0.245
- Updated dependencies:
rust-analyzer
from0.0.241
to0.0.244
anyhow
from1.0.91
to1.0.93
clap
from4.5.20
to4.5.21
libc
from0.2.161
to0.2.164
- Bumped MSRV from
1.81.0
to1.82.0
- Updated dependencies:
rust-analyzer
from0.0.240
to0.0.241
insta
from1.40.0
to1.41.0
anyhow
from1.0.90
to1.0.91
- The
--focus-on
option now accepts expressions starting withcrate::…
(previously the crate's name had to be written out).
- Updated dependencies:
anyhow
from1.0.89
to1.0.90
libc
from0.2.159
to0.2.161
pulldown-cmark
from0.12.1
to0.12.2
rust-analyzer
from0.0.239
to0.0.240
- Fixed
structure
's filtering logic with respect to--focus-on
and--max-depth
options. - Fixed filtering of
#[test]
and#[cfg(test)]
when--cfg-test
is not used
- Updated dependencies:
clap
from4.5.19
to4.5.20
rust-analyzer
from0.0.238
to0.0.239
- Updated dependencies:
clap
from4.5.18
to4.5.19
rust-analyzer
from0.0.236
to0.0.238
- Updated dependencies:
anyhow
from1.0.86
to1.0.89
clap
from4.5.16
to4.5.18
insta
from1.39.0
to1.40.0
libc
from0.2.158
to0.2.159
pulldown-cmark
from0.12.0
to0.12.1
rust-analyzer
from0.0.230
to0.0.237
- Bumped MSRV from
1.80.0
to1.81.0
- Updated dependencies:
rust-analyzer
from0.0.229
to0.0.230
libc
from0.2.157
to0.2.158
- Bumped MSRV from
1.78.0
to1.80.0
- Updated dependencies:
rust-analyzer
from0.0.228
to0.0.229
pulldown-cmark
from0.11.0
to0.12.0
- Updated dependencies:
rust-analyzer
from0.0.227
to0.0.228
clap
from4.5.11
to4.5.13
dunce
from1.0.4
to1.0.5
- Updated dependencies:
rust-analyzer
from0.0.226
to0.0.227
clap
from4.5.10
to4.5.11
env_logger
from0.11.4
to0.11.5
- Updated dependencies:
rust-analyzer
from0.0.225
to0.0.226
clap
from4.5.9
to4.5.10
env_logger
from0.11.3
to0.11.4
- Updated dependencies:
rust-analyzer
from0.0.224
to0.0.225
clap
from4.5.8
to4.5.9
- Updated dependencies:
rust-analyzer
from0.0.223
to0.0.224
- Updated dependencies:
rust-analyzer
from0.0.220
to0.0.223
clap
from4.5.7
to4.5.8
log
from0.4.21
to0.4.22
- Updated dependencies:
clap
from4.5.4
to4.5.7
rust-analyzer
from0.0.218
to0.0.220
- Updated dependencies:
rust-analyzer
from0.0.217
to0.0.218
- Updated dependencies:
libc
from0.2.153
to0.2.155
rust-analyzer
from0.0.216
to0.0.217
- Fixed differences in test snapshots between macOS/Linux and Windows.
- Updated dependencies:
anyhow
from1.0.82
to1.0.86
insta
from1.38.0
to1.39.0
petgraph
from0.6.4
to0.6.5
pulldown-cmark
from0.10.2
to0.11.0
rust-analyzer
from0.0.211
to0.0.216
- Bumped MSRV to
1.78.0
- Don't call
.canonicalize()
on the project path on Windows to avoid cargo incompatibility with verbatim paths.
- Updated dependencies:
rust-analyzer
from0.0.210
to0.0.211
- Updated dependencies:
anyhow
from1.0.81
to1.0.82
rust-analyzer
from0.0.208
to0.0.210
- Updated dependencies:
rust-analyzer
from0.0.207
to0.0.208
pulldown-cmark
from0.10.0
to0.10.2
- Updated dependencies:
yansi
from0.5.1
to1.0.1
clap
from4.5.3
to4.5.4
indoc
from2.0.4
to2.0.5
memoffset
from0.9.0
to0.9.1
rust-analyzer
from0.0.206
to0.0.207
- Updated dependencies:
rust-analyzer
from0.0.204
to0.0.206
anyhow
from1.0.80
to1.0.81
bitflag
from2.4.2
to2.5.0
clap
from4.5.1
to4.5.3
- Updated dependencies:
mio
from0.8.10
to0.8.11
env_logger
from0.11.2
to0.11.3
insta
from1.35.1
to1.36.1
log
from0.4.20
to0.4.21
- Fixed potential vulnerability in
mio
by upgrading it from0.8.10
to0.8.11
.
- Updated dependencies:
rust-analyzer
from0.0.202
to0.0.203
- Updated dependencies:
anyhow
from1.0.79
to1.0.80
assert_cmd
from2.0.13
to2.0.14
clap
from4.4.18
to4.5.1
env_logger
from0.11.1
to0.11.2
insta
from1.34.0
to1.35.1
thread_local
from1.1.7
to1.1.8
rust-analyzer
from0.0.200
to0.0.202
- Bumped MSRV from
1.74.0
to1.75.0
- Updated dependencies:
rust-analyzer
from0.0.197
to0.0.200
env_logger
from0.10.2
to0.11.1
pulldown-cmark
from0.9.3
to0.10.0
rust-analyzer-salsa
from0.17.0-pre.5
to0.17.0-pre.6
rust-analyzer-salsa-macros
from0.17.0-pre.5
to0.17.0-pre.6
- Updated dependencies:
bitflags
from2.4.1
->2.4.2
clap
from4.4.16
->4.4.18
env_logger
from0.10.1
->0.10.2
rust-analyzer
from0.0.196
to0.0.197
- Fixed bug (#172) where external nodes were not correctly filtered out.
- Updated dependencies:
rust-analyzer
from0.0.194
to0.0.196
assert_cmd
from2.0.12
to2.0.13
clap
from4.4.13
to4.4.16
rust-analyzer-salsa
from0.17.0-pre.4
to0.17.0-pre.5
rust-analyzer-salsa-macros
from0.17.0-pre.4
to0.17.0-pre.5
- Skip impl if type's node can't be found, rather than crashing
- Updated dependencies:
anyhow
from1.0.76
to1.0.79
clap
from4.4.11
to4.4.13
rust-analyzer
from0.0.190
to0.0.194
- Bumped MSRV from
1.70.0
to1.74.0
- Updated dependencies:
anyhow
from1.0.75
to1.0.76
- Bumped MSRV from
1.68.2
to1.70.0
- Updated dependencies:
rust-analyzer
from0.0.189
to0.0.190
- Added dedicated top-level
orphans
command (replacing the now removed--orphans
CLI flag) for detecting orphaned Rust source files within projects.
- Renamed
generate tree
command tostructure
, promoting it to a top-level command. - Renamed
generate graph
command todependencies
, promoting it to a top-level command. - Made
structure
command include types, traits, and fns by default. Use--no-types
,--no-traits
,--no-fns
to opt-out. - Made
dependencies
command include uses, externs, types, traits, and fns by default. Use--no-modules
,--no-uses
,--no-externs
,--no-types
,--no-traits
,--no-fns
to opt-out. - Updated dependencies:
rust-analyzer
from0.0.188
to0.0.189
- Removed
generate
top-level CLI command, promoting its sub-commands to top-level commands. - Removed the
--orphans
CLI flag fromstructure
command (néegenerate tree
). - Removed global CLI option
--sysroot
&--no-sysroot
. - Removed global CLI option
--no-cfg-test
. - Removed CLI selection options for
structure
command:- Removed CLI option
--types
- Removed CLI option
--traits
- Removed CLI option
--fns
- Removed CLI option
--tests
- Removed CLI option
--no-tests
- Removed CLI option
- Removed CLI selection options for
dependencies
command:- Removed CLI option
--modules
- Removed CLI option
--uses
- Removed CLI option
--externs
- Removed CLI option
--types
- Removed CLI option
--traits
- Removed CLI option
--fns
- Removed CLI option
--tests
- Removed CLI option
--no-tests
- Removed CLI option
- Support for detecting methods/type-aliases in impls.
- Support for detecting dependencies from functions and methods.
- Tracing logs for graph/tree building phases (
RUST_LOG=cargo_modules=trace …
).
- Updated dependencies:
thread_local
from1.0.0
to1.1.7
clap
from4.4.10
to4.4.11
memoffset
from0.6.1
to0.9.0
rust-analyzer
from0.0.187
to0.0.188
- Local dependencies are no longer erroneously being detected as packages.
- Updated dependencies:
clap
from4.4.8
to4.4.10
proc-macro2
from1.0.69
to1.0.70
rust-analyzer
from0.0.186
to0.0.187
- Switch Github action for Rust toolchain from
actions-rs/toolchain@v1
todtolnay/rust-toolchain@v1
- Updated dependencies:
rust-analyzer
from0.0.185
to0.0.186
- Support for sorting the output of the
generate tree
command via--sort-by <KEY>
(where<KEY>
is one ofname
,visibility
, orkind
) and--sort-reversed
CLI options.
- Updated dependencies:
rust-analyzer
from0.0.184
to0.0.185
env_logger
from0.10.0
to0.10.1
clap
from4.4.7
to4.4.8
- Updated dependencies:
rust-analyzer
from0.0.183
to0.0.184
- Updated dependencies:
rust-analyzer
from0.0.182
to0.0.183
serde_repr
from0.1.16
to0.1.17
- Updated dependencies:
rust-analyzer
from0.0.181
to0.0.182
clap
from4.4.6
to4.4.7
- Updated dependencies:
rust-analyzer
from0.0.178
to0.0.181
bitflags
from2.4.0
to2.4.1
- Added support for type and trait aliases.
- Added support for extracting "uses" edges for a type's field dependencies.
- Refactored project, giving each
generate
command its own independent implementation - Refactored and simplified orphan detection logic
- Updated dependencies:
insta
from1.33.0
to1.34.0
proc-macro2
from1.0.67
to1.0.69
rust-analyzer
from0.0.177
to0.0.178
- Support for
--orphans
/--no-orphans
forgenerate graph
command
- Updated dependencies:
clap
from4.4.5
to4.4.6
insta
from1.32.0
to1.33.0
rust-analyzer
from0.0.164
to0.0.177
- Updated dependencies:
rust-analyzer
from0.0.163
to0.0.164
anyhow
from1.0.71
to1.0.75
skywalking-eyes
from0.4.0
to0.5.0
assert_cmd
from2.0.11
to2.0.12
bitflags
from2.3.3
to2.4.0
clap
from4.3.11
to4.4.5
indoc
from2.0.2
to2.0.4
insta
from1.30.0
to1.32.0
log
from0.4.19
to0.4.20
petgraph
from0.6.3
to0.6.4
proc-macro2
from1.0.64
to1.0.67
serde_repr
from0.1.14
to0.1.16
- Removed
ra_ap_rust-analyzer
dependency.
- Updated dependencies:
rust-analyzer
from0.0.160
to0.0.163
clap
from4.3.10
to4.3.11
getopts
from0.2.19
to0.2.21
proc-macro2
from1.0.63
to1.0.64
serde_repr
from0.1.13
to0.1.14
- Bumped MSRV to
1.68.2
- Updated dependencies:
bitflags
from2.3.1
to2.3.3
clap
from4.3.0
to4.3.10
indoc
from2.0.1
to2.0.2
insta
from1.29.0
to1.30.0
log
from0.4.18
to0.4.19
proc-macro2
from1.0.60
to1.0.63
serde_repr
from0.1.12
to0.1.13
rust-analyzer
from0.0.148
to0.0.160
- CLI flag
--acyclic
for detecting cycles in the generated graph.
- Updated dependencies:
log
from0.4.17
to0.4.18
clap
from4.2.5
to4.3.0
wyz
from0.5.1
to0.6.1
bitflags
from2.2.1
to2.3.1
- Documentation of
--no-fns
CLI flag.
- Added CLI argument
--modules
(and corresponding--no-modules
) for filtering out modules from graphs. - Added CLI argument
--no-externs
as a negative complement for--externs
- Added CLI argument
--no-fns
as a negative complement for--fns
- Added CLI argument
--no-orphans
as a negative complement for--orphans
- Added CLI argument
--no-sysroot
as a negative complement for--sysroot
- Added CLI argument
--no-tests
as a negative complement for--tests
- Added CLI argument
--no-traits
as a negative complement for--traits
- Added CLI argument
--no-types
as a negative complement for--types
- Added CLI argument
--no-uses
as a negative complement for--uses
- Added CLI argument
--no-cfg-test
as a negative complement for--cfg-test
- Added dependencies:
clap
at4.2.5
- Renamed CLI argument
--with-externs
to--externs
- Renamed CLI argument
--with-fns
to--fns
- Renamed CLI argument
--with-orphans
to--orphans
- Renamed CLI argument
--with-sysroot
to--sysroot
- Renamed CLI argument
--with-tests
to--tests
- Renamed CLI argument
--with-traits
to--traits
- Renamed CLI argument
--with-types
to--types
- Renamed CLI argument
--with-uses
to--uses
- Removed dependencies:
structopt
- Updated dependencies:
indoc
from1.0.8
to2.0.1
petgraph
from0.6.2
to0.6.3
anyhow
from1.0.68
to1.0.69
structopt
from0.3
to0.3.26
serde_repr
from0.1.10
to0.1.11
assert_cmd
from2.0.8
to2.0.9
insta
from1.26.0
to1.28.0
bitflags
from1.3.2
to2.0.1
- Updated dependencies:
rust-analyzer
from0.0.148
to0.0.149
- Updated dependencies:
assert_cmd
from2.0.7
to2.0.8
rust-analyzer
from0.0.143
to0.0.148
- Updated dependencies:
insta
from1.23.0
to1.26.0
serde_repr
from0.1.8
to0.1.10
- Typo in Cargo.toml:
rust = "1.65"
=>rust-version = "1.65"
.
- Updated dependencies:
indoc
from1.0.7
to1.0.8
anyhow
from1.0.66
to1.0.68
rust-analyzer
from0.0.142
to0.0.143
- Split graph building into two separate phases: building & filtering.
- Updated dependencies:
insta
from1.21.2
to1.23.0
rust-analyzer
from0.0.140
to0.0.142
- Support for conditionally filtering traits via
--with-traits
CLI option. - Support for conditionally filtering functions via
--with-fns
CLI option. - Support for accepting a full use-tree (e.g.
foo::bar::{self, baz, blee::*}
) for--focus-on
, instead of just simple paths.
- The
--with-types
now excludes traits. Use--with-traits
CLI option to include traits. - The
--with-types
now excludes functions. Use--with-fns
CLI option to include functions. - Refactored internal graph builder to be both, simpler and more robust.
- Updated dependencies:
env_logger
from0.9.3
to0.10.0
assert_cmd
from2.0.6
to2.0.7
insta
from1.21.0
to1.21.2
rust-analyzer
from0.0.138
to0.0.140
- Updated dependencies:
assert_cmd
from2.0.5
->2.0.6
env_logger
from0.9.1
->0.9.3
rust-analyzer
from0.0.134
to0.0.138
- Upstream semver bug in rust-analyzer that would prevent running
cargo install
for0.5.12
and0.5.13
(issue).
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Made graph layout algorithm ignore
"uses"
edges in constraint calculation.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Add
README.md
sections on how to properly read/interpret the generated output and its use of structure/colors in particular
- Updated to latest crate dependencies.
- Replaced example screenshots in
README.md
with more illustrative ones
- Updated to latest crate dependencies.
- Updated to Rust 2021 edition.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Added
--cfg-test
CLI option
- Updated to latest crate dependencies.
- Maked
cargo_modules=warn
theRUST_LOG
default - Stopped filtering out
#[cfg(test)] mod …
when given--with-tests
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Made including sysroot (i.e.
core
/std
/alloc
/…) crates in analysis strictly opt-in (via--with-sysroot
).
- Improved CLI help comments
- Improved tests
- Added support for '--no-default-features', '--all-features', '--features', '--target' options
- Added support for conditionally filtering unit tests via
--with-tests
CLI option - Added option
--with-externs
forgenerate graph
command - Added support for depth-based graph shrinking
- Added 'generate' CLI sub-command
- Updated to latest crate dependencies.
- Replaced positional argument with named
--manifest-path
to better mirror cargo's CLI - Changed color of orphan graph nodes
- Renamed edges from
Has
/Uses
toOwns
/Uses
- Replaced integer node/edge ids in dot graphs with fully qualified paths for easier manual processing / searching / editing of dot output
- Made
generate graph
always print full paths - Implemented folding of external "uses" into a single node per external crate
- Changed default graph layout algorithm from 'sfdp' to 'neato'
- Cleaned up README file
- Improved terminal color handling
- Improved theming/printing
- Improved graph builder and fixed bug where nodex/edges might get omitted, unintentionally
- Refined graph printing
- Improved graph rendering
- Removed unused 'Authors' section from README file
- Removed unnecessary name from generated
digraph <name> { … }
- Removed unsupported options from
generate tree
command - Removed 'weight=' from edges in dot file
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Added Github Action.
- Updated to latest crate dependencies.
- Updated to Rust 2018 edition.
- Migrated from
libsyntax
torustc_ast
.
- Updated to latest crate dependencies
- Improve
cargo modules graph
sub-command.
- Added support for
—plain
tograph
sub-command.
- Updated to latest crate dependencies.
- Updated
README.md
to reflect the new (and added) CLI.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Updated to latest crate dependencies.
- Fixed issues and show difference between pub and private use.
- Support for printing module graph (Graphviz/dot).
- Updated to latest crate dependencies.
- Fixed issue when linking against latest libsyntax.
- Fixed usage instructions in
README.md
(i.e. requirement of nightly). - Improved install instructions in
README.md
.
- Added proper
-—version
CLI argument.
- Updated to latest crate dependencies.
- unknown
- Updated to latest crate dependencies.
- Added crates.io categories to Cargo manifest.
- Added support for
impl Trait
.
- Fixed broken lines in modules with more than one feature.
- Fixed bug preventing use as
$ cargo modules
(vs.$ cargo-modules
).
- Tree printing refinements & accessibility improvements.
Initial release.