Skip to content

Commit

Permalink
Remove all targets we don't want anymore (#215)
Browse files Browse the repository at this point in the history
- remove termion support for linux, use crossterm everywhere.
- remove additional 'light' intermediate targets
  • Loading branch information
Byron committed Dec 5, 2021
1 parent 050964d commit 2abba9c
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 66 deletions.
29 changes: 0 additions & 29 deletions Cargo.lock

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

11 changes: 3 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,11 @@ doctest = false
default = ["max"]

max = ["fast", "pretty-cli", "prodash/render-tui-crossterm", "prodash-render-line-crossterm", "prodash/render-line-autoconfigure", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client"]
max-termion = ["fast", "pretty-cli", "prodash/render-tui-termion", "prodash-render-line-termion", "prodash/render-line-autoconfigure", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client"]

lean = ["fast", "lean-cli", "prodash-render-line-crossterm", "prodash/progress-tree", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client"]
lean-termion = ["fast", "lean-cli", "prodash-render-line-termion", "prodash/progress-tree", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client"]
lean = ["fast", "pretty-cli", "prodash-render-line-crossterm", "prodash/progress-tree", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client"]
lean-async = ["fast", "pretty-cli", "prodash-render-line-crossterm", "prodash/progress-tree", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-async-client"]

light = ["fast", "lean-cli", "gitoxide-core-tools", "gitoxide-core-blocking-client"]
light-async = ["fast", "lean-cli", "gitoxide-core-tools", "gitoxide-core-async-client"]
small = ["lean-cli", "git-features/rustsha1", "git-features/zlib-rust-backend"]
small = ["pretty-cli", "git-features/rustsha1", "git-features/zlib-rust-backend"]

gitoxide-core-tools = ["gitoxide-core/organize", "gitoxide-core/estimate-hours"]
gitoxide-core-blocking-client = ["gitoxide-core/blocking-client"]
Expand All @@ -53,10 +50,8 @@ pretty-cli = ["clap",
"gitoxide-core/local-time-support",
"env_logger",
"futures-lite"]
lean-cli = ["argh", "prodash/progress-log", "env_logger" ]

prodash-render-line-crossterm = ["prodash-render-line", "prodash/render-line-crossterm", "atty", "crosstermion"]
prodash-render-line-termion = ["prodash-render-line", "prodash/render-line-termion", "atty", "crosstermion"]

# internal
prodash-render-tui = ["prodash/render-tui"]
Expand Down
19 changes: 2 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,9 @@ release-all: release release-lean release-small ## all release builds
release: always ## the default build, big but pretty (builds in ~2min 35s)
cargo build --release

release-unix: always ## the default build, big but pretty, unix only (builds in ~2min 35s)
cargo build --release --no-default-features --features max-termion

release-lean: always ## lean and fast, with line renderer (builds in ~1min 30s)
cargo build --release --no-default-features --features lean

release-light: always ## lean and fast, log only (builds in ~1min 14s)
cargo build --release --no-default-features --features light

release-small: always ## minimal dependencies, at cost of performance (builds in ~46s)
cargo build --release --no-default-features --features small

Expand All @@ -39,15 +33,9 @@ release-small: always ## minimal dependencies, at cost of performance (builds in
debug: always ## the default build, big but pretty
cargo build

debug-unix: always ## the default build, big but pretty, unix only
cargo build --no-default-features --features max-termion

debug-lean: always ## lean and fast, with line renderer
cargo build --no-default-features --features lean

debug-light: always ## lean and fast
cargo build --no-default-features --features light

debug-small: always ## minimal dependencies, at cost of performance
cargo build --no-default-features --features small

Expand Down Expand Up @@ -79,13 +67,10 @@ clippy: ## Run cargo clippy on all crates
check: ## Build all code in suitable configurations
cargo check --all
cargo check --no-default-features --features small
cargo check --no-default-features --features light
cargo check --no-default-features --features light-async
if cargo check --features light-async 2>/dev/null; then false; else true; fi
if cargo check --features lean-async 2>/dev/null; then false; else true; fi
cargo check --no-default-features --features lean
cargo check --no-default-features --features lean-termion
cargo check --no-default-features --features lean-async
cargo check --no-default-features --features max
cargo check --no-default-features --features max-termion
cd git-actor && cargo check \
&& cargo check --features local-time-support
cd gitoxide-core && cargo check \
Expand Down
18 changes: 6 additions & 12 deletions cargo-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The top-level command-line interface.
* Use `argh` to produce a usable binary with decent documentation that is smallest in size, usually 300kb less than `pretty-cli`.
* If `pretty-cli` is enabled as well, `lean-cli` will take precedence, and you pay for building unnecessary dependencies.
* provides a line renderer for lean but pretty progress
* **prodash-render-line-crossterm** or **prodash-render-line-termion** _(mutually exclusive)_
* **prodash-render-line-crossterm**
* The `--verbose` flag will be powered by an interactive progress mechanism that doubles as log as well as interactive progress
that appears after a short duration.
* **gitoxide-core-tools**
Expand All @@ -37,20 +37,14 @@ The top-level command-line interface.

There are **convenience features**, which combine common choices of the above into one name

* **max** = *pretty-cli* + *fast* + *prodash-render-tui-crossterm* + *http* + *gitoxide-core-tools* + *client-networking*
* **max** = *fast* + *prodash-render-tui-crossterm* + *prodash-render-line-crossterm* + *http* + *gitoxide-core-tools* + *client-networking*
* _default_, for unix and windows
* **max-termion** = *pretty-cli* + *fast* + *prodash-render-tui-termion* + *http* + *gitoxide-core-tools* + *client-networking*
* for unix only, faster compile times, a little smaller
* **lean** = *lean-cli* + *fast* + *prodash-render-line-crossterm* + *gitoxide-core-tools* + *client-networking*
* for unix and windows, significantly smaller than _max_, but without `--progress` terminal user interface.
* **lean-termion** = *lean-cli* + *fast* + *prodash-render-line-termion* + *gitoxide-core-tools* + *client-networking*
* for unix only, faster compile times, a little smaller
* **light** = *lean-cli* + *fast* + *gitoxide-core-tools* + *client-networking*
* crossplatform by nature as this comes with simplified log based progress
* **light-async** = *lean-cli* + *fast* + *gitoxide-core-tools* + *client-async-networking*
* **lean** = *fast* + *prodash-render-line-crossterm* + *gitoxide-core-tools* + *client-networking*
* cross-platform by nature as this comes with simplified log based progress
* **lean-async** = *fast* + *prodash-render-line-crossterm* + *gitoxide-core-tools* + *client-async-networking*
* Due to async client-networking not being implemented for most transports, this one supports only the 'git' transport. It uses, however, a fully asynchronous
networking implementation which can serve a real-world example on how to implement custom async transports.
* **small** = *lean-cli*
* **small**
* As small as it can possibly be, no threading, no fast sha1, log based progress only, no cleanup of temporary files on interrupt, rust based zlib implementation.
* no networking, local operations only.

Expand Down

0 comments on commit 2abba9c

Please sign in to comment.