Skip to content

Commit

Permalink
Revert build config
Browse files Browse the repository at this point in the history
  • Loading branch information
charliermarsh committed Sep 9, 2024
1 parent 3059531 commit 54fa5cd
Show file tree
Hide file tree
Showing 17 changed files with 31 additions and 158 deletions.
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/install-wheel-rs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "install-wheel-rs"
version = "0.0.1"
publish = false
description = "Takes a wheel and installs it, either in a venv or for monotrail"
description = "Takes a wheel and installs it."
keywords = ["wheel", "python"]

edition = { workspace = true }
Expand Down
3 changes: 0 additions & 3 deletions crates/install-wheel-rs/Readme.md

This file was deleted.

15 changes: 15 additions & 0 deletions crates/uv-cache-info/src/cache_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,31 @@ use std::cmp::max;
use std::io;
use std::path::{Path, PathBuf};

/// The information used to determine whether a built distribution is up-to-date, based on the
/// timestamps of relevant files, the current commit of a repository, etc.
#[derive(Default, Debug, Clone, Hash, PartialEq, Eq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "kebab-case")]
#[serde(try_from = "CacheInfoWire")]
pub struct CacheInfo {
/// The timestamp of the most recent `ctime` of any relevant files, at the time of the build.
/// The timestamp will typically be the maximum of the `ctime` values of the `pyproject.toml`,
/// `setup.py`, and `setup.cfg` files, if they exist; however, users can provide additional
/// files to timestamp via the `cache-keys` field.
timestamp: Option<Timestamp>,
/// The commit at which the distribution was built.
commit: Option<Commit>,
}

impl CacheInfo {
/// Return the [`CacheInfo`] for a given timestamp.
pub fn from_timestamp(timestamp: Timestamp) -> Self {
Self {
timestamp: Some(timestamp),
..Self::default()
}
}

/// Compute the cache info for a given path, which may be a file or a directory.
pub fn from_path(path: &Path) -> io::Result<Self> {
let metadata = fs_err::metadata(path)?;
if metadata.is_file() {
Expand All @@ -31,6 +40,7 @@ impl CacheInfo {
}
}

/// Compute the cache info for a given directory.
pub fn from_directory(directory: &Path) -> io::Result<Self> {
let mut commit = None;

Expand Down Expand Up @@ -103,6 +113,8 @@ impl CacheInfo {
Ok(Self { timestamp, commit })
}

/// Compute the cache info for a given file, assumed to be a binary or source distribution
/// represented as (e.g.) a `.whl` or `.tar.gz` archive.
pub fn from_file(path: impl AsRef<Path>) -> Result<Self, io::Error> {
let metadata = fs_err::metadata(path.as_ref())?;
let timestamp = Timestamp::from_metadata(&metadata);
Expand All @@ -126,7 +138,10 @@ struct TimestampCommit {
#[derive(Debug, serde::Deserialize)]
#[serde(untagged)]
enum CacheInfoWire {
/// For backwards-compatibility, enable deserializing [`CacheInfo`] structs that are solely
/// represented by a timestamp.
Timestamp(Timestamp),
/// A [`CacheInfo`] struct that includes both a timestamp and a commit.
TimestampCommit(TimestampCommit),
}

Expand Down
2 changes: 1 addition & 1 deletion crates/uv-cache-info/src/commit_info.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::path::{Path, PathBuf};

/// The current commit for a repository.
/// The current commit for a repository (i.e., a 40-character hexadecimal string).
#[derive(Default, Debug, Clone, Hash, PartialEq, Eq, serde::Deserialize, serde::Serialize)]
pub(crate) struct Commit(String);

Expand Down
1 change: 0 additions & 1 deletion crates/uv-dispatch/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,6 @@ impl<'a> BuildContext for BuildDispatch<'a> {
&BuildOptions::default(),
self.hasher,
self.index_locations,
self.config_settings,
self.cache(),
venv,
&markers,
Expand Down
1 change: 0 additions & 1 deletion crates/uv-distribution/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ license = { workspace = true }
workspace = true

[dependencies]
cache-key = { workspace = true }
distribution-filename = { workspace = true }
distribution-types = { workspace = true }
install-wheel-rs = { workspace = true }
Expand Down
38 changes: 1 addition & 37 deletions crates/uv-distribution/src/index/built_wheel_index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ use distribution_types::{
use platform_tags::Tags;
use uv_cache::{Cache, CacheBucket, CacheShard, WheelCache};
use uv_cache_info::CacheInfo;
use uv_configuration::ConfigSettings;
use uv_fs::symlinks;
use uv_types::HashStrategy;

Expand All @@ -17,22 +16,15 @@ pub struct BuiltWheelIndex<'a> {
cache: &'a Cache,
tags: &'a Tags,
hasher: &'a HashStrategy,
build_configuration: &'a ConfigSettings,
}

impl<'a> BuiltWheelIndex<'a> {
/// Initialize an index of built distributions.
pub fn new(
cache: &'a Cache,
tags: &'a Tags,
hasher: &'a HashStrategy,
build_configuration: &'a ConfigSettings,
) -> Self {
pub fn new(cache: &'a Cache, tags: &'a Tags, hasher: &'a HashStrategy) -> Self {
Self {
cache,
tags,
hasher,
build_configuration,
}
}

Expand Down Expand Up @@ -61,13 +53,6 @@ impl<'a> BuiltWheelIndex<'a> {

let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let cache_shard = if self.build_configuration.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(self.build_configuration))
};

Ok(self.find(&cache_shard))
}
/// Return the most compatible [`CachedWheel`] for a given source distribution at a local path.
Expand Down Expand Up @@ -98,13 +83,6 @@ impl<'a> BuiltWheelIndex<'a> {

let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let cache_shard = if self.build_configuration.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(self.build_configuration))
};

Ok(self
.find(&cache_shard)
.map(|wheel| wheel.with_cache_info(cache_info)))
Expand Down Expand Up @@ -147,13 +125,6 @@ impl<'a> BuiltWheelIndex<'a> {

let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let cache_shard = if self.build_configuration.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(self.build_configuration))
};

Ok(self
.find(&cache_shard)
.map(|wheel| wheel.with_cache_info(cache_info)))
Expand All @@ -173,13 +144,6 @@ impl<'a> BuiltWheelIndex<'a> {
WheelCache::Git(&source_dist.url, &git_sha.to_short_string()).root(),
);

// If there are build settings, we need to scope to a cache shard.
let cache_shard = if self.build_configuration.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(self.build_configuration))
};

self.find(&cache_shard)
}

Expand Down
64 changes: 0 additions & 64 deletions crates/uv-distribution/src/source/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -426,14 +426,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
// freshness, since entries have to be fresher than the revision itself.
let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// If the cache contains a compatible wheel, return it.
if let Some(built_wheel) = BuiltWheelMetadata::find_in_cache(tags, &cache_shard) {
return Ok(built_wheel.with_hashes(revision.into_hashes()));
Expand Down Expand Up @@ -527,14 +519,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
});
}

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// Otherwise, we either need to build the metadata.
// If the backend supports `prepare_metadata_for_build_wheel`, use it.
if let Some(metadata) = self
Expand Down Expand Up @@ -687,14 +671,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
// freshness, since entries have to be fresher than the revision itself.
let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// If the cache contains a compatible wheel, return it.
if let Some(built_wheel) = BuiltWheelMetadata::find_in_cache(tags, &cache_shard) {
return Ok(built_wheel);
Expand Down Expand Up @@ -805,14 +781,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
});
}

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// Otherwise, we need to build a wheel.
let task = self
.reporter
Expand Down Expand Up @@ -929,14 +897,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
// freshness, since entries have to be fresher than the revision itself.
let cache_shard = cache_shard.shard(revision.id());

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// If the cache contains a compatible wheel, return it.
if let Some(built_wheel) = BuiltWheelMetadata::find_in_cache(tags, &cache_shard) {
return Ok(built_wheel);
Expand Down Expand Up @@ -1060,14 +1020,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
));
}

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// Otherwise, we need to build a wheel.
let task = self
.reporter
Expand Down Expand Up @@ -1179,14 +1131,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {

let _lock = lock_shard(&cache_shard).await?;

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// If the cache contains a compatible wheel, return it.
if let Some(built_wheel) = BuiltWheelMetadata::find_in_cache(tags, &cache_shard) {
return Ok(built_wheel);
Expand Down Expand Up @@ -1313,14 +1257,6 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> {
));
}

// If there are build settings, we need to scope to a cache shard.
let config_settings = self.build_context.config_settings();
let cache_shard = if config_settings.is_empty() {
cache_shard
} else {
cache_shard.shard(cache_key::cache_digest(config_settings))
};

// Otherwise, we need to build a wheel.
let task = self
.reporter
Expand Down
5 changes: 2 additions & 3 deletions crates/uv-installer/src/plan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use platform_tags::Tags;
use pypi_types::{Requirement, RequirementSource, ResolverMarkerEnvironment};
use uv_cache::{Cache, CacheBucket, WheelCache};
use uv_cache_info::{CacheInfo, Timestamp};
use uv_configuration::{BuildOptions, ConfigSettings, Reinstall};
use uv_configuration::{BuildOptions, Reinstall};
use uv_distribution::{
BuiltWheelIndex, HttpArchivePointer, LocalArchivePointer, RegistryWheelIndex,
};
Expand Down Expand Up @@ -57,15 +57,14 @@ impl<'a> Planner<'a> {
build_options: &BuildOptions,
hasher: &HashStrategy,
index_locations: &IndexLocations,
config_settings: &ConfigSettings,
cache: &Cache,
venv: &PythonEnvironment,
markers: &ResolverMarkerEnvironment,
tags: &Tags,
) -> Result<Plan> {
// Index all the already-downloaded wheels in the cache.
let mut registry_index = RegistryWheelIndex::new(cache, tags, index_locations, hasher);
let built_index = BuiltWheelIndex::new(cache, tags, hasher, config_settings);
let built_index = BuiltWheelIndex::new(cache, tags, hasher);

let mut cached = vec![];
let mut remote = vec![];
Expand Down
1 change: 0 additions & 1 deletion crates/uv/src/commands/pip/install.rs
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,6 @@ pub(crate) async fn pip_install(
link_mode,
compile,
&index_locations,
config_settings,
&hasher,
&markers,
&tags,
Expand Down
5 changes: 1 addition & 4 deletions crates/uv/src/commands/pip/operations.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ use pypi_types::ResolverMarkerEnvironment;
use uv_cache::Cache;
use uv_client::{BaseClientBuilder, RegistryClient};
use uv_configuration::{
BuildOptions, Concurrency, ConfigSettings, Constraints, ExtrasSpecification, Overrides,
Reinstall, Upgrade,
BuildOptions, Concurrency, Constraints, ExtrasSpecification, Overrides, Reinstall, Upgrade,
};
use uv_dispatch::BuildDispatch;
use uv_distribution::DistributionDatabase;
Expand Down Expand Up @@ -350,7 +349,6 @@ pub(crate) async fn install(
link_mode: LinkMode,
compile: bool,
index_urls: &IndexLocations,
config_settings: &ConfigSettings,
hasher: &HashStrategy,
markers: &ResolverMarkerEnvironment,
tags: &Tags,
Expand Down Expand Up @@ -378,7 +376,6 @@ pub(crate) async fn install(
build_options,
hasher,
index_urls,
config_settings,
cache,
venv,
markers,
Expand Down
1 change: 0 additions & 1 deletion crates/uv/src/commands/pip/sync.rs
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,6 @@ pub(crate) async fn pip_sync(
link_mode,
compile,
&index_locations,
config_settings,
&hasher,
&markers,
&tags,
Expand Down
2 changes: 0 additions & 2 deletions crates/uv/src/commands/project/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,6 @@ pub(crate) async fn sync_environment(
link_mode,
compile_bytecode,
index_locations,
config_setting,
&hasher,
&markers,
tags,
Expand Down Expand Up @@ -1040,7 +1039,6 @@ pub(crate) async fn update_environment(
*link_mode,
*compile_bytecode,
index_locations,
config_setting,
&hasher,
&markers,
tags,
Expand Down
Loading

0 comments on commit 54fa5cd

Please sign in to comment.