Skip to content

Commit

Permalink
chore: update dependencies and use fork of pyproject-toml-rs (#209)
Browse files Browse the repository at this point in the history
I had to make a PR to pyproject-toml-rs to support the latest versions
of the pep* crates. Otherwise we're in dependency hell unfortunately
(because rattler has already updated, these are incompatible).

PyO3/pyproject-toml-rs#18

---------

Co-authored-by: Tim de Jager <tim@prefix.dev>
  • Loading branch information
wolfv and tdejager authored Feb 8, 2024
1 parent 01883bb commit ecaaf7c
Show file tree
Hide file tree
Showing 9 changed files with 389 additions and 280 deletions.
509 changes: 304 additions & 205 deletions Cargo.lock

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ rust-version = "1.70"
allow-branch = ["main"]
consolidate-commits = true
tag-prefix = ""

[patch.crates-io]
pyproject-toml = { git = "https://github.com/wolfv/pyproject-toml-rs", branch = "update-deps" }
71 changes: 36 additions & 35 deletions crates/rattler_installs_packages/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,53 +18,54 @@ native-tls = ['reqwest/native-tls']
rustls-tls = ['reqwest/rustls-tls']

[dependencies]
async-trait = "0.1.73"
async-trait = "0.1.77"
bytes = "1.5.0"
ciborium = "0.2.1"
ciborium = "0.2.2"
csv = "1.3.0"
data-encoding = "2.4.0"
data-encoding = "2.5.0"
dunce = "1.0.4"
elsa = "1.9.0"
fs4 = "0.6.6"
futures = "0.3.28"
elsa = "1.10.0"
fs4 = "0.7.0"
futures = "0.3.30"
html-escape = "0.2.13"
http = "0.2.9"
# reqwest needs an update to 1.0.0
http = "0.2.1"
http-cache-semantics = { version = "1.0.1", default-features = false, features = ["with_serde", "reqwest"] }
include_dir = "0.7.3"
indexmap = { version = "2.0.1", features = ["serde"] }
indexmap = { version = "2.2.2", features = ["serde"] }
itertools = "0.12.1"
miette = "5.10.0"
miette = "7.0.0"
mime = "0.3.17"
once_cell = "1.18.0"
once_cell = "1.19.0"
parking_lot = "0.12.1"
peg = "0.8.1"
peg = "0.8.2"
pep440_rs = { version = "0.4.0", features = ["serde"] }
pep508_rs = { version = "0.2.4", features = ["serde"] }
pep508_rs = { version = "0.3.0", features = ["serde"] }
pin-project-lite = "0.2.13"
rattler_digest = { version = "0.9.0", features = ["serde"] }
regex = "1.9.5"
reqwest = { version = "0.11.20", default-features = false, features = ["json", "stream"] }
rattler_digest = { version = "0.17.0", features = ["serde"] }
regex = "1.10.3"
reqwest = { version = "0.11.24", default-features = false, features = ["json", "stream"] }
reqwest-middleware = "0.2.4"
serde = "1.0.188"
serde_json = "1.0.107"
serde_with = "3.3.0"
smallvec = { version = "1.11.1", features = ["const_generics", "const_new"] }
tempfile = "3.8.0"
thiserror = "1.0.49"
tl = "0.7.7"
tokio = { version = "1.32.0", features = ["process", "rt-multi-thread"] }
tokio-util = { version = "0.7.9", features = ["compat"] }
tracing = { version = "0.1.37", default-features = false, features = ["attributes"] }
url = { version = "2.4.1", features = ["serde"] }
serde = "1.0.196"
serde_json = "1.0.113"
serde_with = "3.6.0"
smallvec = { version = "1.13.1", features = ["const_generics", "const_new"] }
tempfile = "3.10.0"
thiserror = "1.0.56"
tl = "0.7.8"
tokio = { version = "1.36.0", features = ["process", "rt-multi-thread"] }
tokio-util = { version = "0.7.10", features = ["compat"] }
tracing = { version = "0.1.40", default-features = false, features = ["attributes"] }
url = { version = "2.5.0", features = ["serde"] }
zip = "0.6.6"
resolvo = { version = "0.3.0", default-features = false }
pathdiff = "0.2.1"
async_zip = { version = "0.0.15", features = ["tokio", "deflate"] }
async_zip = { version = "0.0.16", features = ["tokio", "deflate"] }
tar = "0.4.40"
flate2 = "1.0.28"
pyproject-toml = "0.8.0"
pyproject-toml = "0.8.2"
async-once-cell = "0.5.3"
configparser = "3.0.3"
configparser = "3.0.4"
cacache = { version = "12.0.0", default-features = false, features = ["tokio-runtime", "mmap"] }
async-recursion = "1.0.5"
fs-err = "2.11.0"
Expand All @@ -73,16 +74,16 @@ async_http_range_reader = "0.6.0"

[dev-dependencies]
anyhow = "1.0.79"
axum = "0.6.20"
axum = "0.7.4"
criterion = "0.5"
insta = { version = "1.33.0", features = ["ron", "redactions"] }
miette = { version = "5.10.0", features = ["fancy"] }
once_cell = "1.18.0"
insta = { version = "1.34.0", features = ["ron", "redactions"] }
miette = { version = "7.0.0", features = ["fancy"] }
once_cell = "1.19.0"
rstest = "0.18.2"
test-utils = { path = "../test-utils" }
tokio = { version = "1.32.0", features = ["rt", "macros", "rt-multi-thread"] }
tokio = { version = "1.36.0", features = ["rt", "macros", "rt-multi-thread"] }
tokio-test = "0.4.3"
tower-http = { version = "0.4.4", features = ["add-extension"] }
tower-http = { version = "0.5.1", features = ["add-extension"] }
tracing-test = "0.2.4"

[[bench]]
Expand Down
8 changes: 4 additions & 4 deletions crates/rattler_installs_packages/src/artifacts/wheel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ impl Wheel {
.file()
.entries()
.iter()
.filter_map(|e| e.entry().filename().as_str().ok())
.filter_map(|e| e.filename().as_str().ok())
.map(|filename| {
filename
.split_once(['/', '\\'])
Expand All @@ -189,15 +189,15 @@ impl Wheel {
.entries()
.iter()
.enumerate()
.find(|(_, p)| p.entry().filename().as_str().ok() == Some(metadata_path.as_str()))
.find(|(_, p)| p.filename().as_str().ok() == Some(metadata_path.as_str()))
.ok_or(WheelVitalsError::MetadataMissing)?;

// Get the size of the entry plus the header + size of the filename. We should also actually
// include bytes for the extra fields but we don't have that information.
let offset = metadata_entry.header_offset();
let size = metadata_entry.entry().compressed_size()
let size = metadata_entry.compressed_size()
+ 30 // Header size in bytes
+ metadata_entry.entry().filename().as_bytes().len() as u64;
+ metadata_entry.filename().as_bytes().len() as u64;

// The zip archive uses as BufReader which reads in chunks of 8192. To ensure we prefetch
// enough data we round the size up to the nearest multiple of the buffer size.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ use crate::types::{
};
use crate::utils::ReadAndSeek;
use crate::wheel_builder::WheelBuilder;
use http::{HeaderMap, Method};
use indexmap::IndexMap;
use miette::IntoDiagnostic;
use pep440_rs::Version;
use rattler_digest::Sha256;
use reqwest::header::HeaderMap;
use reqwest::Method;
use std::str::FromStr;
use std::sync::Arc;
use url::Url;
Expand Down
2 changes: 1 addition & 1 deletion crates/rattler_installs_packages/src/index/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ use super::package_database::NotCached;
use crate::utils::{ReadAndSeek, SeekSlice, StreamingOrLocal};
use bytes::Bytes;
use futures::{Stream, StreamExt, TryStreamExt};
use http::header::{ACCEPT, CACHE_CONTROL};
use http_cache_semantics::{AfterResponse, BeforeRequest, CachePolicy};
use miette::Diagnostic;
use reqwest::header::{ACCEPT, CACHE_CONTROL};
use reqwest::{header::HeaderMap, Method};
use reqwest_middleware::ClientWithMiddleware;
use serde::{Deserialize, Serialize};
Expand Down
35 changes: 20 additions & 15 deletions crates/rattler_installs_packages/src/index/package_database.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ use async_http_range_reader::{AsyncHttpRangeReader, CheckSupportMethod};
use async_recursion::async_recursion;
use elsa::sync::FrozenMap;
use futures::{pin_mut, stream, StreamExt};
use http::{header::CONTENT_TYPE, HeaderMap, HeaderValue, Method};
use indexmap::IndexMap;
use miette::{self, Diagnostic, IntoDiagnostic};
use reqwest::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
use reqwest::Method;

use reqwest::{header::CACHE_CONTROL, StatusCode};
use reqwest_middleware::ClientWithMiddleware;
Expand Down Expand Up @@ -743,13 +744,15 @@ mod test {
use crate::types::PackageName;
use reqwest::Client;
use tempfile::TempDir;
use tokio::task::JoinHandle;

use crate::index::package_sources::PackageSourcesBuilder;
use axum::response::{Html, IntoResponse};
use axum::routing::get;
use axum::Router;
use insta::assert_debug_snapshot;
use std::net::{SocketAddr, TcpListener};
use std::future::IntoFuture;
use std::net::SocketAddr;
use tower_http::add_extension::AddExtensionLayer;

async fn get_index(
Expand Down Expand Up @@ -781,32 +784,30 @@ mod test {
let html = format!("<html><body>{}</body></html>", link_list);
Html(html).into_response()
} else {
StatusCode::NOT_FOUND.into_response()
axum::http::StatusCode::NOT_FOUND.into_response()
}
}

async fn make_simple_server(
package_name: &str,
) -> anyhow::Result<(Url, tokio::task::JoinHandle<()>)> {
let listener = TcpListener::bind(SocketAddr::from(([127, 0, 0, 1], 0)))?;
) -> anyhow::Result<(Url, JoinHandle<Result<(), std::io::Error>>)> {
let addr = SocketAddr::new([127, 0, 0, 1].into(), 0);
let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
let address = listener.local_addr()?;

let router = Router::new()
.route("/simple", get(get_index))
.route("/simple/:package/", get(get_package))
.layer(AddExtensionLayer::new(package_name.to_string()));

let listener = listener.try_into()?;
let server = tokio::spawn(async move {
axum::Server::from_tcp(listener)
.unwrap()
.serve(router.into_make_service())
.await
.unwrap()
});
let server = axum::serve(listener, router).into_future();

// Spawn the server.
let join_handle = tokio::spawn(server);

println!("Server started");
let url = format!("http://{}/simple/", address).parse()?;
Ok((url, server))
Ok((url, join_handle))
}

fn make_package_db() -> (TempDir, PackageDb) {
Expand Down Expand Up @@ -883,7 +884,11 @@ mod test {
.await;

// Should not fail because 404s are skipped
assert!(pytest_result.is_ok());
assert!(
pytest_result.is_ok(),
"`pytest_result` not ok: {:?}",
pytest_result
);

let test_package_result = package_db
.available_artifacts(ArtifactRequest::FromIndex(normalized_name))
Expand Down
24 changes: 12 additions & 12 deletions crates/rip_bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,24 @@ native-tls = ['rattler_installs_packages/native-tls']
rustls-tls = ['rattler_installs_packages/rustls-tls']

[dependencies]
clap = { version = "4.4.5", features = ["derive"] }
console = { version = "0.15.7", features = ["windows-console-colors"] }
clap = { version = "4.4.18", features = ["derive"] }
console = { version = "0.15.8", features = ["windows-console-colors"] }
dirs = "5.0.1"
indexmap = "2.0.1"
indexmap = "2.2.2"
indicatif = "0.17.7"
itertools = "0.12.1"
miette = { version = "5.10.0", features = ["fancy"] }
miette = { version = "7.0.0", features = ["fancy"] }
rattler_installs_packages = { path = "../rattler_installs_packages", default-features = false }
reqwest = { version = "0.11.20", default-features = false }
reqwest = { version = "0.11.24", default-features = false }
reqwest-middleware = "0.2.4"
tabwriter = { version = "1.3.0", features = ["ansi_formatting"] }
tokio = { version = "1.32.0", features = ["rt", "macros", "rt-multi-thread"] }
tracing = "0.1.37"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
url = "2.4.1"
tabwriter = { version = "1.4.0", features = ["ansi_formatting"] }
tokio = { version = "1.36.0", features = ["rt", "macros", "rt-multi-thread"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
url = "2.5.0"
rand = "0.8.5"
serde = "1.0.188"
serde_json = "1.0.107"
serde = "1.0.196"
serde_json = "1.0.113"
fs-err = "2.11.0"

[package.metadata.release]
Expand Down
14 changes: 7 additions & 7 deletions crates/test-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ readme.workspace = true
rust-version.workspace = true

[dependencies]
url = "2.4.1"
thiserror = "1.0.49"
rattler_digest = "0.11.0"
reqwest = { version = "0.11.22", default-features = false, features = ["blocking", "rustls"] }
tempfile = "3.8.0"
url = "2.5.0"
thiserror = "1.0.56"
rattler_digest = "0.17.0"
reqwest = { version = "0.11.24", default-features = false, features = ["blocking", "rustls"] }
tempfile = "3.10.0"
dirs = "5.0.1"
fslock = "0.2.1"
data-encoding = "2.4.0"
tokio = "1.34.0"
data-encoding = "2.5.0"
tokio = "1.36.0"

[package.metadata.release]
release = false

0 comments on commit ecaaf7c

Please sign in to comment.