From 7a8589e9479ddae43508b81f95b6fe1eb35ff02a Mon Sep 17 00:00:00 2001 From: Sylvain Benner Date: Thu, 1 Feb 2024 12:47:46 -0500 Subject: [PATCH] Create doc feature in all burn crates and use them for docs.rs build (#1212) --- burn-candle/Cargo.toml | 6 +++++- burn-common/Cargo.toml | 7 ++++-- burn-core/Cargo.toml | 47 +++++++++++++++++++++++++---------------- burn-dataset/Cargo.toml | 4 ++++ burn-fusion/Cargo.toml | 4 ++++ burn-ndarray/Cargo.toml | 34 ++++++++++++++++++----------- burn-tch/Cargo.toml | 2 +- burn-tensor/Cargo.toml | 4 ++++ burn-train/Cargo.toml | 6 +++++- burn-wgpu/Cargo.toml | 4 ++++ burn/Cargo.toml | 21 ++++++------------ 11 files changed, 89 insertions(+), 50 deletions(-) diff --git a/burn-candle/Cargo.toml b/burn-candle/Cargo.toml index b160b763f..490790436 100644 --- a/burn-candle/Cargo.toml +++ b/burn-candle/Cargo.toml @@ -13,17 +13,18 @@ version.workspace = true [features] default = ["std"] std = [] +doc = ["default"] cuda = ["candle-core/cuda"] metal = ["candle-core/metal"] accelerate = ["candle-core/accelerate"] + [dependencies] derive-new = { workspace = true } burn-tensor = { path = "../burn-tensor", version = "0.12.1", default-features = false } half = { workspace = true } candle-core = { workspace = true } - [dev-dependencies] burn-autodiff = { path = "../burn-autodiff", version = "0.12.1", default-features = false, features = [ "export_tests", @@ -33,3 +34,6 @@ burn-tch = { path = "../burn-tch", version = "0.12.1", default-features = false, burn-tensor = { path = "../burn-tensor", version = "0.12.1", default-features = false, features = [ "export_tests", ] } + +[package.metadata.docs.rs] +features = ["doc"] \ No newline at end of file diff --git a/burn-common/Cargo.toml b/burn-common/Cargo.toml index 56fc94bdd..7a53aa3f2 100644 --- a/burn-common/Cargo.toml +++ b/burn-common/Cargo.toml @@ -12,9 +12,8 @@ version.workspace = true [features] default = ["std"] - std = ["rand/std"] - +doc = ["default"] wasm-sync = [] [target.'cfg(target_family = "wasm")'.dependencies] @@ -22,6 +21,7 @@ async-trait = { workspace = true } getrandom = { workspace = true, features = ["js"] } web-time = { version = "1.0.0" } + [dependencies] # ** Please make sure all dependencies support no_std when std is disabled ** @@ -33,3 +33,6 @@ serde = { workspace = true } [dev-dependencies] dashmap = { workspace = true } + +[package.metadata.docs.rs] +features = ["doc"] \ No newline at end of file diff --git a/burn-core/Cargo.toml b/burn-core/Cargo.toml index 3a8e5dc71..88538ca02 100644 --- a/burn-core/Cargo.toml +++ b/burn-core/Cargo.toml @@ -13,31 +13,41 @@ version.workspace = true [features] default = [ "std", - "burn-dataset?/default", - "burn-ndarray?/default", "burn-candle?/default", - "burn-wgpu?/default", - "burn-fusion?/default", - "burn-tch?/default", - "burn-dataset?/default", "burn-common/default", + "burn-dataset?/default", + "burn-fusion?/default", + "burn-ndarray?/default", + "burn-tch?/default", "burn-tensor/default", + "burn-wgpu?/default", ] std = [ + "bincode/std", + "burn-candle?/std", + "burn-common/std", + "burn-fusion?/std", + "burn-ndarray?/std", + "burn-tensor/std", + "burn-wgpu?/std", "flate2", + "half/std", "log", "rand/std", "rmp-serde", "serde/std", "serde_json/std", - "bincode/std", - "half/std", - "burn-ndarray?/std", - "burn-candle?/std", - "burn-wgpu?/std", - "burn-fusion?/std", - "burn-common/std", - "burn-tensor/std", +] +doc = [ + "std", + "burn-candle/doc", + "burn-common/doc", + "burn-dataset/doc", + "burn-fusion/doc", + "burn-ndarray/doc", + "burn-tch/doc", + "burn-tensor/doc", + "burn-wgpu/doc", ] dataset = ["burn-dataset"] sqlite = ["burn-dataset?/sqlite"] @@ -72,10 +82,8 @@ experimental-named-tensor = ["burn-tensor/experimental-named-tensor"] test-tch = ["tch"] # To use tch during testing, default uses ndarray. test-wgpu = ["wgpu"] # To use wgpu during testing, default uses ndarray. - [dependencies] - # ** Please make sure all dependencies support no_std when std is disabled ** burn-common = { path = "../burn-common", version = "0.12.1", default-features = false } @@ -118,5 +126,8 @@ burn-dataset = { path = "../burn-dataset", version = "0.12.1", features = [ "fake", ] } -burn-ndarray = { path = "../burn-ndarray", version = "0.12.0", default-features = false } -burn-autodiff = { path = "../burn-autodiff", version = "0.12.0" } +burn-ndarray = { path = "../burn-ndarray", version = "0.12.1", default-features = false } +burn-autodiff = { path = "../burn-autodiff", version = "0.12.1" } + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn-dataset/Cargo.toml b/burn-dataset/Cargo.toml index 257b5af88..2f39e5452 100644 --- a/burn-dataset/Cargo.toml +++ b/burn-dataset/Cargo.toml @@ -12,6 +12,7 @@ version.workspace = true [features] default = ["sqlite-bundled"] +doc = ["default"] audio = ["hound"] @@ -64,3 +65,6 @@ fake = { workspace = true } [package.metadata.cargo-udeps.ignore] normal = ["strum", "strum_macros"] + +[package.metadata.docs.rs] +features = ["doc"] \ No newline at end of file diff --git a/burn-fusion/Cargo.toml b/burn-fusion/Cargo.toml index 5c2720494..bc98f3a3d 100644 --- a/burn-fusion/Cargo.toml +++ b/burn-fusion/Cargo.toml @@ -13,6 +13,7 @@ version.workspace = true [features] default = ["std"] std = ["serde/std"] +doc = ["default"] [dependencies] burn-tensor = { path = "../burn-tensor", version = "0.12.1", default-features = false } @@ -22,3 +23,6 @@ derive-new = {workspace = true } spin = { workspace = true } log = { workspace = true } serde = { workspace = true } + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn-ndarray/Cargo.toml b/burn-ndarray/Cargo.toml index 968403a89..2fc7968b2 100644 --- a/burn-ndarray/Cargo.toml +++ b/burn-ndarray/Cargo.toml @@ -12,28 +12,35 @@ version.workspace = true [features] default = ["std"] - std = [ - "rand/std", - "burn-tensor/std", - "burn-common/std", "burn-autodiff", - "rayon", - "ndarray/std", - "ndarray/rayon", + "burn-common/std", + "burn-tensor/std", "matrixmultiply/std", "matrixmultiply/threading", + "ndarray/rayon", + "ndarray/std", + "rand/std", + "rayon", ] +doc = ["default"] blas-accelerate = [ + "blas-src/accelerate", # Accelerate framework (macOS only) "ndarray/blas", - "blas-src/accelerate", -] # Accelerate framework (macOS only) -blas-netlib = ["ndarray/blas", "blas-src/netlib"] -blas-openblas = ["ndarray/blas", "blas-src/openblas", "openblas-src"] -blas-openblas-system = [ +] +blas-netlib = [ + "blas-src/netlib", "ndarray/blas", +] +blas-openblas = [ "blas-src/openblas", + "ndarray/blas", + "openblas-src", +] +blas-openblas-system = [ + "blas-src/openblas", + "ndarray/blas", "openblas-src/system", ] @@ -59,3 +66,6 @@ num-traits = { workspace = true } openblas-src = { workspace = true, optional = true } rand = { workspace = true } spin = { workspace = true } # using in place of use std::sync::Mutex; + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn-tch/Cargo.toml b/burn-tch/Cargo.toml index 7f41bef35..8c1459247 100644 --- a/burn-tch/Cargo.toml +++ b/burn-tch/Cargo.toml @@ -31,4 +31,4 @@ burn-tensor = { path = "../burn-tensor", version = "0.12.1", default-features = ] } [package.metadata.docs.rs] -features = [ "doc" ] +features = ["doc"] diff --git a/burn-tensor/Cargo.toml b/burn-tensor/Cargo.toml index 811074172..23887330f 100644 --- a/burn-tensor/Cargo.toml +++ b/burn-tensor/Cargo.toml @@ -12,6 +12,7 @@ version.workspace = true [features] default = ["std"] +doc = ["default"] experimental-named-tensor = [] export_tests = ["burn-tensor-testgen"] std = ["rand/std", "half/std"] @@ -36,3 +37,6 @@ serde = { workspace = true } [dev-dependencies] rand = { workspace = true, features = ["std", "std_rng"] } # Default enables std + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn-train/Cargo.toml b/burn-train/Cargo.toml index 056b85b66..1289219c1 100644 --- a/burn-train/Cargo.toml +++ b/burn-train/Cargo.toml @@ -12,6 +12,7 @@ version.workspace = true [features] default = ["metrics", "tui"] +doc = ["default"] metrics = ["nvml-wrapper", "sysinfo", "systemstat"] tui = ["ratatui", "crossterm"] @@ -37,4 +38,7 @@ derive-new = { workspace = true } serde = { workspace = true, features = ["std", "derive"] } [dev-dependencies] -burn-ndarray = { path = "../burn-ndarray", version = "0.12.0" } +burn-ndarray = { path = "../burn-ndarray", version = "0.12.1" } + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn-wgpu/Cargo.toml b/burn-wgpu/Cargo.toml index aa9715e03..eccc8a69e 100644 --- a/burn-wgpu/Cargo.toml +++ b/burn-wgpu/Cargo.toml @@ -13,6 +13,7 @@ version.workspace = true [features] default = ["autotune", "std", "burn-compute/default"] std = [] +doc = ["default"] autotune = [] fusion = ["burn-fusion"] @@ -66,3 +67,6 @@ harness = false [[bench]] name = "reduction" harness = false + +[package.metadata.docs.rs] +features = ["doc"] diff --git a/burn/Cargo.toml b/burn/Cargo.toml index 1fd7b8adc..b83cc95b0 100644 --- a/burn/Cargo.toml +++ b/burn/Cargo.toml @@ -14,6 +14,11 @@ rust-version = "1.71" [features] default = ["burn-core/default", "burn-train?/default", "std"] std = ["burn-core/std"] +doc = [ + "default", + "burn-core/doc", + "burn-train/doc", +] # Training with full features train = ["burn-train", "autodiff", "dataset"] @@ -66,18 +71,4 @@ burn-core = { path = "../burn-core", version = "0.12.1", default-features = fals burn-train = { path = "../burn-train", version = "0.12.1", optional = true, default-features = false } [package.metadata.docs.rs] -features = [ - "dataset", - "default", - "std", - "train", - "tui", - "metrics", - "sqlite", - "ndarray", - "tch", - "wgpu", - "candle", - "fusion", - "experimental-named-tensor", -] +features = ["doc"]