Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

## [Unreleased]

## Changed

* **rust-releases-core** Remove `FetchResources` trait (breaking)
* **rust-releases-rust-changelog** Implement fetching of release information directly instead of via `FetchResources` trait (breaking)
* **rust-releases-rust-dist** Implement fetching of release information directly instead of via `FetchResources` trait (breaking)

[Unreleased]: https://github.com/foresterre/rust-releases

## [0.30.0] - 2025-03-12
Expand Down
12 changes: 0 additions & 12 deletions crates/rust-releases-core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,3 @@ pub trait Source {
/// Build a release index from a data set.
fn build_index(&self) -> Result<ReleaseIndex, Self::Error>;
}

/// With `FetchResources`, the set of inputs required to build a release index can be fetched.
pub trait FetchResources
where
Self: Sized,
{
/// The error to be returned when a resource can not be fetched.
type Error;

/// Fetch a set of inputs for a release channel.
fn fetch_channel(channel: Channel) -> Result<Self, Self::Error>;
}
11 changes: 5 additions & 6 deletions crates/rust-releases-rust-changelog/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//! Please, see the [`rust-releases`] for additional documentation on how this crate can be used.
//!
//! [`rust-releases`]: https://docs.rs/rust-releases
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex, Source};
use rust_releases_core::{semver, Channel, Release, ReleaseIndex, Source};
use rust_releases_io::Document;
#[cfg(test)]
#[macro_use]
Expand Down Expand Up @@ -100,10 +100,9 @@ fn create_release(line: &str, today: &ReleaseDate) -> Option<RustChangelogResult
}
}

impl FetchResources for RustChangelog {
type Error = RustChangelogError;

fn fetch_channel(channel: Channel) -> Result<Self, Self::Error> {
impl RustChangelog {
/// Fetch all known releases from the official rust changelog
pub fn fetch_channel(channel: Channel) -> Result<Self, RustChangelogError> {
if let Channel::Stable = channel {
let document = fetch()?;
Ok(Self::from_document(document))
Expand Down Expand Up @@ -167,7 +166,7 @@ impl FromStr for ReleaseDate {
mod tests {
use super::ReleaseDate;
use crate::RustChangelog;
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex};
use rust_releases_core::{semver, Channel, Release, ReleaseIndex};
use rust_releases_io::Document;
use std::fs;
use time::macros::date;
Expand Down
9 changes: 4 additions & 5 deletions crates/rust-releases-rust-dist/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
extern crate rust_releases_io;

use regex::{Captures, Regex};
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex, Source};
use rust_releases_core::{semver, Channel, Release, ReleaseIndex, Source};
use rust_releases_io::Document;
use std::collections::BTreeSet;
use std::iter::FromIterator;
Expand Down Expand Up @@ -76,10 +76,9 @@ fn parse_release(capture: Captures) -> RustDistResult<Release> {
)))
}

impl FetchResources for RustDist {
type Error = RustDistError;

fn fetch_channel(channel: Channel) -> Result<Self, Self::Error> {
impl RustDist {
/// Fetch all known releases from the rust S3 distribution bucket
pub fn fetch_channel(channel: Channel) -> Result<Self, RustDistError> {
if let Channel::Stable = channel {
let source = fetch::fetch()?;
Ok(Self { source })
Expand Down
1 change: 0 additions & 1 deletion examples/list-stable.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use rust_releases::FetchResources;
use rust_releases_core::{Channel, ReleaseIndex};
use rust_releases_rust_changelog::RustChangelog;
#[cfg(feature = "rust-dist")]
Expand Down
4 changes: 2 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
//! # Example
//!
//! ```rust,no_run
//! use rust_releases_core::{FetchResources, Source, Channel, ReleaseIndex};
//! use rust_releases_core::{Source, Channel, ReleaseIndex};
//! use rust_releases_rust_changelog::RustChangelog;
//!
//! // We choose the RustChangelog source for this example; alternatives are RustDistWithCLI and ChannelManifests
Expand Down Expand Up @@ -189,7 +189,7 @@ pub mod linear;

// core re-exports
pub use rust_releases_core::{
semver, Channel, CoreError, CoreResult, FetchResources, Release, ReleaseIndex, Source,
semver, Channel, CoreError, CoreResult, Release, ReleaseIndex, Source,
};

#[cfg(feature = "rust-releases-io")]
Expand Down
Loading