Skip to content

Commit e191e6c

Browse files
authored
Release musl builds + prepare 0.11.1 release (#396)
* Add musl x86-64 target to releases * Bump version + changelog (rc) * Update `opentelemetry-proto` to remove `protoc` dependency Ref: open-telemetry/opentelemetry-rust#881 * The musl build does not support kafka * Update changelog for 0.11.1
1 parent 48c8bba commit e191e6c

File tree

5 files changed

+46
-23
lines changed

5 files changed

+46
-23
lines changed

.github/workflows/release.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ jobs:
2828
# env.
2929
- target: aarch64-unknown-linux-gnu
3030
os: ubuntu-latest
31+
features: kafka
3132
cc: 'aarch64-linux-gnu-gcc'
3233
cxx: 'aarch64-linux-gnu-g++'
3334

3435
# Mac M1 cross build. Uses protobuf compiler on the host. librdkafka
3536
# needs explicit cross env vars.
3637
- target: aarch64-apple-darwin
3738
os: macos-latest
39+
features: kafka
3840
cflags: '-target arm64-apple-macos'
3941
cxxflags: '-target arm64-apple-macos'
4042
cc: 'clang'
@@ -43,10 +45,20 @@ jobs:
4345
# Normal x86-64 Linux build
4446
- target: x86_64-unknown-linux-gnu
4547
os: ubuntu-latest
48+
features: kafka
49+
50+
# Musl x86-64 Linux build. Assume librdkafka needs cc/cxx.
51+
- target: x86_64-unknown-linux-musl
52+
os: ubuntu-latest
53+
# the musl build does not support kafka
54+
features: ''
55+
cc: 'musl-gcc'
56+
cxx: 'explicitly-unset'
4657

4758
# Normal Intel Mac build
4859
- target: x86_64-apple-darwin
4960
os: macos-latest
61+
features: kafka
5062

5163
# Try to complete every job in the matrix, even if one fails.
5264
fail-fast: false
@@ -71,15 +83,10 @@ jobs:
7183
target: ${{ matrix.target }}
7284
if: matrix.target == 'aarch64-unknown-linux-gnu'
7385

74-
# Install the protobuf compiler for linux builds
75-
- name: Install protobuf (Apt)
76-
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler
77-
if: matrix.os == 'ubuntu-latest'
78-
79-
# Install the protobuf compiler for mac builds
80-
- name: Install protobuf (Brew)
81-
run: brew install protobuf
82-
if: matrix.os == 'macos-latest'
86+
# Install musl tools for musl builds
87+
- name: Install musl tools
88+
run: sudo apt-get update && sudo apt-get install -y musl-tools
89+
if: matrix.target == 'x86_64-unknown-linux-musl'
8390

8491
# Run the build & upload artifacts
8592
- name: Build and upload lading binaries
@@ -93,6 +100,8 @@ jobs:
93100

94101
with:
95102
bin: lading
103+
no_default_features: true
104+
features: ${{ matrix.features || '' }}
96105
target: ${{ matrix.target }}
97106
checksum: sha256
98107
token: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [0.11.1] - 2022-11-22
10+
### Added
11+
- Releases now include x86-64 musl binaries
12+
- The musl build does not support kafka
13+
14+
### Changed
15+
- The Protobuf compiler is no longer required to build lading
16+
917
## [0.11.0] - 2022-11-16
1018
### Added
1119
- Observer now measures child processes of the target

Cargo.lock

Lines changed: 5 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ members = [
77

88
[package]
99
name = "lading"
10-
version = "0.11.0"
10+
version = "0.11.1"
1111
authors = ["Brian L. Troutwine <brian@troutwine.us>"]
1212
edition = "2021"
1313
license = "MIT"
@@ -33,10 +33,10 @@ metrics-exporter-prometheus = { version = "0.11.0", default-features = false, fe
3333
metrics-util = { version = "0.14" }
3434
nix = { version = "0.25" }
3535
once_cell = "1.16"
36-
opentelemetry-proto = { version = "0.1", features = ["traces", "metrics", "logs", "gen-tonic"] }
36+
opentelemetry-proto = { git = "https://github.com/open-telemetry/opentelemetry-rust/", rev = "6078e32", features = ["traces", "metrics", "logs", "gen-tonic"] }
3737
prost = "0.11"
3838
rand = { version = "0.8", default-features = false, features = ["small_rng", "std", "std_rng"] }
39-
rdkafka = "0.28"
39+
rdkafka = { version = "0.28", optional = true }
4040
rmp-serde = { version = "1.1", default-features = false }
4141
serde = { version = "1.0", features = ["std", "derive"] }
4242
serde_json = { version = "1.0", features = ["std"] }
@@ -61,6 +61,10 @@ async-pidfd = "0.1"
6161
proptest = "1.0"
6262
proptest-derive = "0.3.0"
6363

64+
[features]
65+
default = ["kafka"]
66+
kafka = ["rdkafka"]
67+
6468
[[bin]]
6569
name = "lading"
6670

src/generator.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ pub mod file_gen;
2020
pub mod file_tree;
2121
pub mod grpc;
2222
pub mod http;
23-
pub mod kafka;
2423
pub mod splunk_hec;
2524
pub mod tcp;
2625
pub mod udp;
2726

27+
#[cfg(feature = "kafka")]
28+
pub mod kafka;
29+
2830
#[derive(Debug)]
2931
/// Errors produced by [`Server`].
3032
pub enum Error {
@@ -37,6 +39,7 @@ pub enum Error {
3739
/// See [`crate::generator::splunk_hec::Error`] for details.
3840
SplunkHec(splunk_hec::Error),
3941
/// See [`crate::generator::kafka::Error`] for details.
42+
#[cfg(feature = "kafka")]
4043
Kafka(kafka::Error),
4144
/// See [`crate::generator::file_gen::Error`] for details.
4245
FileGen(file_gen::Error),
@@ -59,6 +62,7 @@ pub enum Config {
5962
/// See [`crate::generator::splunk_hec::Config`] for details.
6063
SplunkHec(splunk_hec::Config),
6164
/// See [`crate::generator::kafka::Config`] for details.
65+
#[cfg(feature = "kafka")]
6266
Kafka(kafka::Config),
6367
/// See [`crate::generator::file_gen::Config`] for details.
6468
FileGen(file_gen::Config),
@@ -83,6 +87,7 @@ pub enum Server {
8387
/// See [`crate::generator::splunk_hec::SplunkHec`] for details.
8488
SplunkHec(splunk_hec::SplunkHec),
8589
/// See [`crate::generator::kafka::Kafka`] for details.
90+
#[cfg(feature = "kafka")]
8691
Kafka(kafka::Kafka),
8792
/// See [`crate::generator::file_gen::FileGen`] for details.
8893
FileGen(file_gen::FileGen),
@@ -110,6 +115,7 @@ impl Server {
110115
Config::SplunkHec(conf) => Self::SplunkHec(
111116
splunk_hec::SplunkHec::new(conf, shutdown).map_err(Error::SplunkHec)?,
112117
),
118+
#[cfg(feature = "kafka")]
113119
Config::Kafka(conf) => {
114120
Self::Kafka(kafka::Kafka::new(conf, shutdown).map_err(Error::Kafka)?)
115121
}
@@ -147,6 +153,7 @@ impl Server {
147153
Server::Udp(inner) => inner.spin().await.map_err(Error::Udp),
148154
Server::Http(inner) => inner.spin().await.map_err(Error::Http),
149155
Server::SplunkHec(inner) => inner.spin().await.map_err(Error::SplunkHec),
156+
#[cfg(feature = "kafka")]
150157
Server::Kafka(inner) => inner.spin().await.map_err(Error::Kafka),
151158
Server::FileGen(inner) => inner.spin().await.map_err(Error::FileGen),
152159
Server::FileTree(inner) => inner.spin().await.map_err(Error::FileTree),

0 commit comments

Comments
 (0)