#5 RFE: Show "package depends on orphaned"
Closed 3 years ago by lbrabec. Opened 3 years ago by churchyard.

Note to self: Figure out what data to expose


Example:

{
    "affected_packages": {
        "CutyCapt": [],
        "GtkAda": [
            "libglade2"
        ],
        "NetworkManager": [
            "gnutls"
        ],
        "OpenSceneGraph": [
            "pangox-compat"
        ],
        "R-V8": [
            "R-rmarkdown"
        ],
        "R-broom": [
            "R-rmarkdown"
        ],
        ...
        "abgraph": [],
        "abiword": [
            "gnutls"
        ],
        "accrete": [],
        "alleyoop": [
            "libglade2"
        ],
        "amqp": [],
        "apache-commons-configuration": [
            "apache-commons-vfs"
        ],
        "apache-commons-vfs": [],
        ...
    },
    "status_change": {
        "CutyCapt": "2020-05-13T05:50:55",
        "abgraph": "2020-05-26T22:56:23",
        "accrete": "2020-05-26T22:56:25",
        "amqp": "2020-06-04T18:06:26",
        "apache-commons-vfs": "2020-05-15T18:23:34",
        ...
    }
}

affected_packages

Each affected package has a list of packages that "made" it affected.
When the list is empty, the package is only affected because it is orphaned.

Note that even orphaned packages can be affected by other orphaned packages.

I could unfold that data to lists of chain dependencies, but this makes them easier to represent.

status_change

Has only orphaned packages and their date. The package is retired 6 weeks after the date (+ human delay).


When querying packages, you:

  1. check if the package is in affected_packages (if not, nothing to show here)
  2. check if the package is in status_change(if it is, you notify that with a countdown)
  3. repeat 2. recursively with packages in the affected_packages[name] list and remember the path

That way, you can than say something like:

systemd is depending on orphaned trousers and will have trouble in ~5 weeks

And the tooltip would say:

systemd → gnutls → trousers (will be retired on 2020-07-07)

orphans.json

Note that there might be multiple problematic deps and you might want to prioritize the one that will hit soonest.

Metadata Update from @frantisekz:
- Issue assigned to frantisekz

3 years ago

@churchyard: something tells me that showing the (especially complete) information in a reasonable way will be... challenging :)
Based on the current data from: https://churchyard.fedorapeople.org/orphans.json

$ sympa has multiple chains of orphan deps:
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-cli > nodejs-grunt-known-options
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-known-options
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-sinon
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-supports-color
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-html5shiv > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-supports-color
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-supports-color
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-sinon
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-type
    sympa > js-html5shiv > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-supports-color
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-cli > nodejs-grunt-known-options
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-known-options
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-sinon
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-supports-color
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-supports-color
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-supports-color
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-sinon
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-type
    sympa > js-jquery-jqplot > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-supports-color
    sympa > js-respond > nodejs-grunt > nodejs-grunt-cli > nodejs-grunt-known-options
    sympa > js-respond > nodejs-grunt > nodejs-grunt-known-options
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-supports-color
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-respond > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-supports-color
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-supports-color
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-supports-color
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-known-options
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > mocha > nodejs-supports-color
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-grunt-legacy-log > nodejs-grunt-legacy-log-utils > nodejs-chalk > nodejs-supports-color
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-chalk > nodejs-supports-color
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-constantinople > uglify-js > nodejs-acorn > nodejs-rollup
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-should > nodejs-should-type
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt > nodejs-iconv-lite > mocha > nodejs-supports-color
    sympa > js-respond > nodejs-grunt-cli > nodejs-grunt-known-options

Poor sympa :(

I'd suggest to pick the "soonest" one and break ties by prioritizing shorter ones.

First of all, let me say that I believe the current code in dashboard that is handling the orphans is broken AF, so let's disregard whatever it shows ATM.

My suggestion here is that the dashboard will (in text) list only the "leafs" instead of "any and all packages in the chains" as it does now. e.g. at the moment, and it will distinct between "direct and indirect". Taking js-jquery-file-upload as an example (since it won't have hundreds of lines):

js-jquery-file-upload has multiple chains of orphan deps:
    js-jquery-file-upload > closure-compiler
    js-jquery-file-upload > js-jquery-iframe-transport > closure-compiler

Because the package directly depends on the package being orphaned, the dashboard would say:

Depends on orphaned packages:
closure-compile

Taking a more complicated example:

js-web-socket-js has multiple chains of orphan deps:
    js-web-socket-js > uglify-js > mocha > nodejs-chalk > nodejs-ansi-styles > nodejs-require-uncached > nodejs-resolve-from
    js-web-socket-js > uglify-js > mocha > nodejs-chalk > nodejs-supports-color
    js-web-socket-js > uglify-js > mocha > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-commander > nodejs-should > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-commander > nodejs-sinon
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-equal > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-format > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-commander > nodejs-should > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-commander > nodejs-sinon
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-graceful-fs > nodejs-tap
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-equal > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-format > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-proxyquire > nodejs-should > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-inherits
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-readable-stream > nodejs-util-deprecate
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-set-immediate-shim
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-tap
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-inherits
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-process-nextick-args > nodejs-tap
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-safe-buffer > nodejs-tape
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-readable-stream > nodejs-util-deprecate
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-monocle > nodejs-readdirp > nodejs-through2 > nodejs-xtend
    js-web-socket-js > uglify-js > mocha > nodejs-jade > nodejs-transformers > nodejs-clone
    js-web-socket-js > uglify-js > mocha > nodejs-should > nodejs-should-equal > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-should > nodejs-should-format > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-should > nodejs-should-type
    js-web-socket-js > uglify-js > mocha > nodejs-supports-color
    js-web-socket-js > uglify-js > nodejs-acorn > nodejs-rollup

Here the js-web-socket-js has no "directly orphaned" deps, but is still affected by some. In this case, I suggest this:

Indirectly depends on orphaned packages:
nodejs-clone
nodejs-inherits
nodejs-resolve-from
nodejs-rollup
nodejs-set-immediate-shim
nodejs-should-type
nodejs-sinon
nodejs-supports-color
nodejs-tap
nodejs-tape
nodejs-util-deprecate
nodejs-xtend

Because these are really the "leaves" being orphaned.

Then, we could show the whole "graph", but in an actual graph form. Maybe when you hover over the card, or have it show after you click a button.. something like that. Because I agree that knowing the whole 'chain' might be interesting, but IMO the "pressing" information are the actual leaves in the 'graph of orphan-affected stuff'.

Makes sense?

Makes sense?

From my experience, explaining to packagers why their package A is affected by package B being orphaned if the dependency is indirect is very hard. "Go and traverse the deps backwards" is not what they want to here. Hence displaying the "graph" after expanding the box by clicking on it would be very much appreciated.

Metadata Update from @jskladan:
- Issue assigned to lbrabec (was: frantisekz)

3 years ago

Frontend changes deployed in production. We'll be adding some cosmetic changes (at least nav buttons to make the fact that you can zoom/navigate the graph apparent), but there is now a graphed-out dep-tree showing the non-direct deps on orphaned packages.

You can give sympa a look here: https://packager.fedorainfracloud.org/xavierb

The graph looks awesome! Thanks.

I assume the orphaned packages are the right-most column. Can they maybe be marked with red color or something like that?

The graph looks awesome! Thanks.
I assume the orphaned packages are the right-most column. Can they maybe be marked with red color or something like that?

Done.

Metadata Update from @lbrabec:
- Issue status updated to: Closed (was: Open)

3 years ago

Login to comment on this ticket.

Metadata