Inwelling: collecting metadata from downstream users

Here is project repository.

Library Overview

This library helps to send metadata through the hierarchy of crates, from
downstream crates to one of their common ancestor.

The main API is inwelling(), which is expected to be called in build.rs of
the common ancestor crate.

.      +--------------> [topmost crate]
.      |      3            |       ^
.      |                  4|       |8
.      |                   |       |
.      |                 [dependencies]
.      |2                  |       |
.      |                   |       |
.      |        (metadata) |5     7| (API)
.      |                   |       |
.      |        1          v   6   |
. inwelling() <---- build.rs ----> bindings.rs
.[inwelling crate]     [common ancestor]

The information in section [package.metadata.inwelling.{common ancestor}.*]
in downstream crates' Cargo.toml files will be collected by inwelling().

version 0.1.2 published.

What' new:

Optional Metadata

Cargo features can control whether to send metadata or not. in section [package.metadata.inwelling.{common ancestor}] , a value of feature = blah means that the metadata will be collected by inwelling if and only if blah feature is enabled. See beta crate in examples for more.