Skip to content

Commit c442050

Browse files
committed
chore: move to subcrate structure
1 parent c1bd5e4 commit c442050

22 files changed

Lines changed: 124 additions & 122 deletions

File tree

.github/workflows/ci-matrix.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ jobs:
2929
- uses: actions-rs/cargo@v1
3030
with:
3131
command: build
32-
args: --no-default-features --features async-std,strict,${{ matrix.features }}
32+
args: -p unleash-api-client --no-default-features --features async-std,strict,${{ matrix.features }}
3333

3434
- uses: actions-rs/cargo@v1
3535
with:
3636
command: test
37-
args: --no-default-features --features async-std,strict,${{ matrix.features }}
37+
args: -p unleash-api-client --no-default-features --features async-std,strict,${{ matrix.features }}
3838

3939
clippy:
4040
runs-on: ubuntu-latest
@@ -58,13 +58,13 @@ jobs:
5858
- uses: actions-rs/cargo@v1
5959
with:
6060
command: build
61-
args: --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets
61+
args: -p unleash-api-client --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets
6262

6363
- uses: actions-rs/cargo@v1
6464
# We test with approximately all-features to ensure that that does build
6565
with:
6666
command: test
67-
args: --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets
67+
args: -p unleash-api-client --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets
6868

6969
- uses: actions-rs/cargo@v1
7070
with:
@@ -74,7 +74,7 @@ jobs:
7474
- uses: actions-rs/cargo@v1
7575
with:
7676
command: clippy
77-
args: --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets -- -D warnings
77+
args: -p unleash-api-client --features strict,async-std,reqwest-client,reqwest-client-rustls,reqwest-client-11,reqwest-client-11-rustls --all-targets -- -D warnings
7878

7979
msrv:
8080
runs-on: ubuntu-latest
@@ -100,4 +100,4 @@ jobs:
100100
- uses: actions-rs/cargo@v1
101101
with:
102102
command: build
103-
args: --release --no-default-features
103+
args: --release --no-default-features

.github/workflows/publish.yaml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,13 @@ on:
77
jobs:
88
publish:
99
runs-on: ubuntu-latest
10-
11-
name: "publish"
12-
13-
# Reference your environment variables
10+
name: publish
1411
environment: cargo
1512

1613
steps:
17-
- uses: actions/checkout@master
18-
19-
- name: Run publish-action
20-
uses: tu6ge/publish-action@v0.4.6
14+
- uses: actions/checkout@v4
15+
- uses: dtolnay/rust-toolchain@stable
16+
- name: Publish unleash-api-client
17+
run: cargo publish --manifest-path crates/unleash-api-client/Cargo.toml
2118
env:
22-
# This can help you tagging the github repository
23-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24-
# This can help you publish to crates.io
25-
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
19+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

Cargo.toml

Lines changed: 8 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,8 @@
1-
[package]
2-
name = "unleash-api-client"
3-
version = "0.15.0"
4-
authors = ["Robert Collins <robert.collins@cognite.com>"]
5-
edition = "2021"
6-
rust-version = "1.83"
7-
description = "An API client for https://www.getunleash.io/"
8-
readme = "README.md"
9-
homepage = "https://github.com/Unleash/unleash-rust-sdk/"
10-
repository = "https://github.com/Unleash/unleash-rust-sdk/"
11-
license = "Apache-2.0"
12-
keywords = ["continualdeployment"]
13-
categories = ["api-bindings", "web-programming"]
14-
default-run = "dump-features"
15-
16-
[lib]
17-
bench = false
18-
19-
[[bin]]
20-
bench = false
21-
name = "dump-features"
22-
path = "src/bin/dump-features.rs"
23-
required-features = ["async-std", "reqwest-client"]
24-
25-
[[bench]]
26-
harness = false
27-
name = "is_enabled"
28-
29-
[dependencies]
30-
anyhow = "1.0.44"
31-
arc-swap = "1.4.0"
32-
async-std = { version = "1.13.1", optional = true }
33-
async-trait = "0.1.56"
34-
cfg-if = "1.0.0"
35-
enum-map = "2.7.3"
36-
futures-timer = "3.0.2"
37-
hostname = "0.4.1"
38-
ipnet = "2.3.1"
39-
log = "0.4.14"
40-
murmur3 = "0.5.1"
41-
rand = "0.9.1"
42-
rustversion = "1.0.7"
43-
semver = { version = "1.0.26", features = ["serde"] }
44-
serde_json = "1.0.68"
45-
serde_plain = "1.0.0"
46-
unleash-types = "=0.15.22"
47-
unleash-yggdrasil = { version = "0.21.0", features = ["hostname"] }
48-
uuid = { version = "1.11.0", features = ["v4"] }
49-
50-
[dependencies.chrono]
51-
version = "0.4.41"
52-
default-features = false
53-
features = ["clock", "serde"]
54-
55-
[dependencies.reqwest]
56-
version = "0.12"
57-
default-features = false
58-
features = ["json"]
59-
optional = true
60-
61-
[dependencies.reqwest-11]
62-
version = "0.11"
63-
default-features = false
64-
features = ["json"]
65-
optional = true
66-
package = "reqwest"
67-
68-
[dependencies.serde]
69-
version = "1.0.219"
70-
features = ["derive"]
71-
72-
[dev-dependencies]
73-
criterion = "0.6.0" # Remember to update audit.toml
74-
futures = "0.3.17"
75-
maplit = "1.0.2"
76-
num_cpus = "1.13.0"
77-
regex = "1.9.6"
78-
simple_logger = "5.0.0"
79-
80-
[dev-dependencies.tokio]
81-
version = "1.12.0"
82-
features = ["macros", "rt-multi-thread", "time"]
83-
84-
[badges]
85-
[badges.maintenance]
86-
status = "experimental"
87-
88-
[features]
89-
# Enable async-std for tests and dump-features
90-
async-std = ["dep:async-std"]
91-
# Enable backtrace feature in anyhow
92-
backtrace = ["anyhow/backtrace"]
93-
# Force clients to make a choice about which client to use
94-
default = []
95-
# Enable the functional test suite
96-
functional = []
97-
# Built in HTTP clients
98-
reqwest-client = ["reqwest", "reqwest?/default-tls"]
99-
reqwest-client-11 = ["reqwest-11", "reqwest-11?/default-tls"]
100-
# For users that don't want to depend on OpenSSL.
101-
reqwest-client-11-rustls = ["reqwest-11", "reqwest-11?/rustls-tls"]
102-
reqwest-client-rustls = ["reqwest", "reqwest?/rustls-tls"]
103-
# To error if an unsupported API feature is present
104-
strict = []
1+
[workspace]
2+
resolver = "2"
3+
members = [
4+
"crates/unleash-api-client",
5+
]
6+
default-members = [
7+
"crates/unleash-api-client",
8+
]
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
[package]
2+
name = "unleash-api-client"
3+
version = "0.15.0"
4+
authors = ["Robert Collins <robert.collins@cognite.com>"]
5+
edition = "2021"
6+
rust-version = "1.83"
7+
description = "An API client for https://www.getunleash.io/"
8+
readme = "README.md"
9+
homepage = "https://github.com/Unleash/unleash-rust-sdk/"
10+
repository = "https://github.com/Unleash/unleash-rust-sdk/"
11+
license = "Apache-2.0"
12+
keywords = ["continualdeployment"]
13+
categories = ["api-bindings", "web-programming"]
14+
default-run = "dump-features"
15+
16+
[lib]
17+
bench = false
18+
19+
[[bin]]
20+
bench = false
21+
name = "dump-features"
22+
path = "src/bin/dump-features.rs"
23+
required-features = ["async-std", "reqwest-client"]
24+
25+
[[bench]]
26+
harness = false
27+
name = "is_enabled"
28+
29+
[dependencies]
30+
anyhow = "1.0.44"
31+
arc-swap = "1.4.0"
32+
async-std = { version = "1.13.1", optional = true }
33+
async-trait = "0.1.56"
34+
cfg-if = "1.0.0"
35+
enum-map = "2.7.3"
36+
futures-timer = "3.0.2"
37+
hostname = "0.4.1"
38+
ipnet = "2.3.1"
39+
log = "0.4.14"
40+
murmur3 = "0.5.1"
41+
rand = "0.9.1"
42+
rustversion = "1.0.7"
43+
semver = { version = "1.0.26", features = ["serde"] }
44+
serde_json = "1.0.68"
45+
serde_plain = "1.0.0"
46+
unleash-types = "=0.15.22"
47+
unleash-yggdrasil = { version = "0.21.0", features = ["hostname"] }
48+
uuid = { version = "1.11.0", features = ["v4"] }
49+
50+
[dependencies.chrono]
51+
version = "0.4.41"
52+
default-features = false
53+
features = ["clock", "serde"]
54+
55+
[dependencies.reqwest]
56+
version = "0.12"
57+
default-features = false
58+
features = ["json"]
59+
optional = true
60+
61+
[dependencies.reqwest-11]
62+
version = "0.11"
63+
default-features = false
64+
features = ["json"]
65+
optional = true
66+
package = "reqwest"
67+
68+
[dependencies.serde]
69+
version = "1.0.219"
70+
features = ["derive"]
71+
72+
[dev-dependencies]
73+
criterion = "0.6.0" # Remember to update audit.toml
74+
futures = "0.3.17"
75+
maplit = "1.0.2"
76+
num_cpus = "1.13.0"
77+
regex = "1.9.6"
78+
simple_logger = "5.0.0"
79+
80+
[dev-dependencies.tokio]
81+
version = "1.12.0"
82+
features = ["macros", "rt-multi-thread", "time"]
83+
84+
[badges]
85+
[badges.maintenance]
86+
status = "experimental"
87+
88+
[features]
89+
# Enable async-std for tests and dump-features
90+
async-std = ["dep:async-std"]
91+
# Enable backtrace feature in anyhow
92+
backtrace = ["anyhow/backtrace"]
93+
# Force clients to make a choice about which client to use
94+
default = []
95+
# Enable the functional test suite
96+
functional = []
97+
# Built in HTTP clients
98+
reqwest-client = ["reqwest", "reqwest?/default-tls"]
99+
reqwest-client-11 = ["reqwest-11", "reqwest-11?/default-tls"]
100+
# For users that don't want to depend on OpenSSL.
101+
reqwest-client-11-rustls = ["reqwest-11", "reqwest-11?/rustls-tls"]
102+
reqwest-client-rustls = ["reqwest", "reqwest?/rustls-tls"]
103+
# To error if an unsupported API feature is present
104+
strict = []

benches/is_enabled.rs renamed to crates/unleash-api-client/benches/is_enabled.rs

File renamed without changes.

examples/async-std.rs renamed to crates/unleash-api-client/examples/async-std.rs

File renamed without changes.

examples/threads.rs renamed to crates/unleash-api-client/examples/threads.rs

File renamed without changes.

examples/tokio.rs renamed to crates/unleash-api-client/examples/tokio.rs

File renamed without changes.

src/bin/dump-features.rs renamed to crates/unleash-api-client/src/bin/dump-features.rs

File renamed without changes.

0 commit comments

Comments
 (0)