-
-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Goals
- Merging and combining sources: sometimes we want to combine multiple sources to come to a better release index. For example, some sources are updated quicker after a release is published than others, some are easier to fetch, but are also incomplete with respect to data they contain. The merged index should have a more complete view than the individual parts.
- Consider different merging strategies; we don't always have data with timestamps, and not always is later also more correct.
- A built in source of truth index for releases in the past, baked statically into a crate (this is mostly useful if you can merge it with newer data)
- A daily ran workflow which updates the crate automatically
- Consider how to deal with corrections made by humans
- More metadata: currently we only cared about versions, and let dependencies gather additional metadata themselves, sometimes in an unpure way of getting it from the cache collected by this crate
- Think: release dates, toolchains and their targets (really everything rustup can manage)
- More than just stable: so far we only implemented fetching stable releases, but we care also about beta and nightly releases. We will skip the early alpha and other pre-1.0 releases.
- stable, beta and nightly support
Considerations
- Clients (i.e. that what fetches the data) will no longer be generic
- Clients will be responsible for their own caching and incremental data fetching (it turns out that this is often quite different for different data sources)
Output / productivity
- The project will provide a set of types which describe a Rust release
- The project will provide a set of client implementations which can the data which describes a Rust release
- The project will provide a set of transformers which take the intermediate data collected by clients, and transform it into the types describing a rust release
- The project will proving one or more merge implementations which can be used to merge data collected from different data sources
Reactions are currently unavailable