mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-28 12:10:37 +00:00

## Motivation `tokio-trace` currently offers a strategy for compatibility with the `log` crate: its macros can be dropped in as a replacement for `log`'s macros, and a subscriber can be used that translates trace events to log records. However, this requires the application to be aware of `tokio-trace` and manually set up this subscriber. Many libraries currently emit `log` records, and would like to be able to emit `tokio-trace` instrumentation instead. The `tokio` runtimes are one such example. However, with the current log compatibility strategy, replacing existing logging with trace instrumentation would break `tokio`'s logs for any downstream user which is using only `log` and not `tokio-trace`. It is desirable for libraries to have the option to emit both `log` _and_ `tokio-trace` diagnostics from the same instrumentation points. ## Solution This branch adds a `log` feature flag to the `tokio-trace` crate, which when set, causes `tokio-trace` instrumentation to emit log records as well as `tokio-trace` instrumentation. ## Notes In order to allow spans to log their names when they are entered and exited even when the span is disabled, this branch adds an `&'static Metadata` to the `Span` type. This was previously stored in the `Inner` type and was thus only present when the span was enabled. This makes disabled spans one word longer, but enabled spans remain the same size. Fixes: #949 Signed-off-by: Eliza Weisman <eliza@buoyant.io>
118 lines
2.4 KiB
YAML
118 lines
2.4 KiB
YAML
trigger: ["master"]
|
|
pr: ["master"]
|
|
|
|
jobs:
|
|
# Check formatting
|
|
- template: ci/azure-rustfmt.yml
|
|
parameters:
|
|
name: rustfmt
|
|
|
|
# Test top level crate
|
|
- template: ci/azure-test-stable.yml
|
|
parameters:
|
|
name: test_tokio
|
|
displayName: Test tokio
|
|
cross: true
|
|
crates:
|
|
- tokio
|
|
|
|
# Test crates that are platform specific
|
|
- template: ci/azure-test-stable.yml
|
|
parameters:
|
|
name: test_sub_cross
|
|
displayName: Test sub crates -
|
|
cross: true
|
|
crates:
|
|
- tokio-fs
|
|
- tokio-reactor
|
|
- tokio-signal
|
|
- tokio-tcp
|
|
- tokio-tls
|
|
- tokio-udp
|
|
- tokio-uds
|
|
|
|
# Test crates that are NOT platform specific
|
|
- template: ci/azure-test-stable.yml
|
|
parameters:
|
|
name: test_linux
|
|
displayName: Test sub crates -
|
|
crates:
|
|
- tokio-buf
|
|
- tokio-codec
|
|
- tokio-current-thread
|
|
- tokio-executor
|
|
- tokio-io
|
|
- tokio-sync
|
|
- tokio-threadpool
|
|
- tokio-timer
|
|
- tokio-trace
|
|
- tokio-trace/tokio-trace-core
|
|
- tokio-trace/test-log-support
|
|
- tokio-trace/test_static_max_level_features
|
|
|
|
- template: ci/azure-cargo-check.yml
|
|
parameters:
|
|
name: features
|
|
displayName: Check feature permtuations
|
|
rust: stable
|
|
crates:
|
|
tokio:
|
|
- codec
|
|
- fs
|
|
- io
|
|
- reactor
|
|
- rt-full
|
|
- tcp
|
|
- timer
|
|
- udp
|
|
- uds
|
|
tokio-buf:
|
|
- util
|
|
|
|
# Check async / await
|
|
- template: ci/azure-cargo-check.yml
|
|
parameters:
|
|
name: async_await
|
|
displayName: Async / Await
|
|
rust: nightly-2019-02-28
|
|
noDefaultFeatures: ''
|
|
benches: true
|
|
crates:
|
|
tokio:
|
|
- async-await-preview
|
|
|
|
# Try cross compiling
|
|
- template: ci/azure-cross-compile.yml
|
|
parameters:
|
|
name: cross_32bit_linux
|
|
target: i686-unknown-linux-gnu
|
|
|
|
# This represents the minimum Rust version supported by
|
|
# Tokio. Updating this should be done in a dedicated PR and
|
|
# cannot be greater than two 0.x releases prior to the
|
|
# current stable.
|
|
#
|
|
# Tests are not run as tests may require newer versions of
|
|
# rust.
|
|
- template: ci/azure-check-minrust.yml
|
|
parameters:
|
|
name: minrust
|
|
rust_version: 1.26.0
|
|
|
|
- template: ci/azure-tsan.yml
|
|
parameters:
|
|
name: tsan
|
|
|
|
- template: ci/azure-deploy-docs.yml
|
|
parameters:
|
|
dependsOn:
|
|
- rustfmt
|
|
- test_tokio
|
|
- test_sub_cross
|
|
- test_linux
|
|
- features
|
|
- async_await
|
|
- cross_32bit_linux
|
|
- minrust
|
|
- tsan
|