Skip to content

Specify (optionally) the dependency type in git pkgs diff output #71

@ericcornelissen

Description

@ericcornelissen

The git pkgs diff output is currently a "flat" list of changed dependencies. It could be informative to know whether the changed dependencies are runtime or development dependencies, as indicated by the git pkgs tree command. To this end, the git pkgs diff output could use the structure of git pkgs tree, something like:

$ git pkgs diff
Added:
├── development
│   ├── @babel/code-frame 7.29.0 (package-lock.json)
│   ├── @babel/compat-data 7.29.0 (package-lock.json)
│   ├── @babel/generator 7.29.0 (package-lock.json)
│   ├── @babel/parser 7.29.0 (package-lock.json)
│   ├── @babel/traverse 7.29.0 (package-lock.json)
│   ├── @babel/types 7.29.0 (package-lock.json)
│   ├── @types/http-cache-semantics 4.2.0 (package-lock.json)
│   ├── bare-fs 4.5.3 (package-lock.json)
│   ├── baseline-browser-mapping 2.9.19 (package-lock.json)
│   ├── caniuse-lite 1.0.30001766 (package-lock.json)
│   ├── commander 14.0.3 (package-lock.json)
│   ├── electron-to-chromium 1.5.283 (package-lock.json)
│   ├── katex 0.16.28 (package-lock.json)
│   ├── ky 1.14.3 (package-lock.json)
│   ├── lru-cache 11.2.5 (package-lock.json)
│   ├── unist-util-visit 5.1.0 (package-lock.json)
│   └── zod 4.3.6 (package-lock.json)
└── runtime
    ├── @ericcornelissen/lregexp 1.0.7 (package-lock.json)
    └── which 3.0.1 (package-lock.json)

Removed:
├── development
│   ├── @babel/code-frame 7.28.6 (package-lock.json)
│   ├── @babel/compat-data 7.28.6 (package-lock.json)
│   ├── @babel/traverse 7.28.6 (package-lock.json)
│   ├── @babel/types 7.28.6 (package-lock.json)
│   ├── @types/http-cache-semantics 4.0.4 (package-lock.json)
│   ├── bare-fs 4.5.2 (package-lock.json)
│   ├── baseline-browser-mapping 2.9.17 (package-lock.json)
│   ├── caniuse-lite 1.0.30001765 (package-lock.json)
│   ├── commander 14.0.2 (package-lock.json)
│   ├── electron-to-chromium 1.5.267 (package-lock.json)
│   ├── katex 0.16.27 (package-lock.json)
│   ├── ky 1.14.2 (package-lock.json)
│   ├── lru-cache 11.2.4 (package-lock.json)
│   ├── unist-util-visit 5.0.0 (package-lock.json)
│   ├── which 3.0.0 (package-lock.json)
│   └── zod 4.3.5 (package-lock.json)
└── runtime
    ├── @ericcornelissen/lregexp 1.0.3 (package-lock.json)
    └── which 3.0.0 (package-lock.json)

I can also see this add some unnecessary noise in some people eyes, so it might make sense to provide an opt-in/opt-out mechanism for this presentation vs. the current presentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions