Refactor: Extract new crate simple-git (#1304)

`binstalk-downloader` contains stuff about http(s) before the
git code is moved into it and now it becomes http and git.

While git indeed uses http stuff, which is why I decided to put
it into binstalk-downloader, it is more than just downloading
since it is stateful (can be cached locally and updated)
where as http is stateless.

Also `binstalk-downloader`'s codegen time now increases
dramatically and it also creates extra dependencies for
binstalk-fetchers, delaying its execution.

The git code also don't use anything from `binstalk-downloader`
at all, it makes sense to be an independent crate.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2023-08-19 11:08:55 +10:00 committed by GitHub
parent 20a57a9a9b
commit dc77a1ab93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 258 additions and 24 deletions

View file

@ -1,15 +1,13 @@
use std::{io, path::PathBuf, sync::Arc};
use binstalk_downloader::{
git::{GitCancellationToken, GitUrl, Repository},
remote::Client,
};
use binstalk_downloader::remote::Client;
use binstalk_types::cargo_toml_binstall::Meta;
use cargo_toml_workspace::cargo_toml::Manifest;
use compact_str::{CompactString, ToCompactString};
use once_cell::sync::OnceCell;
use semver::VersionReq;
use serde_json::{from_slice as json_from_slice, Deserializer as JsonDeserializer};
use simple_git::{GitCancellationToken, GitUrl, Repository};
use tempfile::TempDir;
use tokio::task::spawn_blocking;
use url::Url;

View file

@ -19,7 +19,7 @@ use tokio::task;
use url::{ParseError as UrlParseError, Url};
#[cfg(feature = "git")]
pub use binstalk_downloader::git::{GitError, GitUrl, GitUrlParseError};
pub use simple_git::{GitError, GitUrl, GitUrlParseError};
mod vfs;