fix(doc): Fix broken links to `zebra_network` and `zebra_state` `Config` structs on doc.zebra.zfnd.org (#7838)

* Use full module paths to avoid a rustdoc bug

* Exclude zebra-test from external docs
This commit is contained in:
teor 2023-10-27 11:05:26 +10:00 committed by GitHub
parent b6fc0add9a
commit 920ee14512
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 47 deletions

View File

@ -144,8 +144,8 @@ jobs:
- name: Build external docs
run: |
# Exclude zebra-utils, it is not for library or app users
cargo doc --no-deps --workspace --all-features --exclude zebra-utils --target-dir "$(pwd)"/target/external
# Exclude zebra-utils and zebra-test, they are not for library or app users
cargo doc --no-deps --workspace --all-features --exclude zebra-utils --exclude zebra-test --target-dir "$(pwd)"/target/external
# Setup gcloud CLI
- name: Authenticate to Google Cloud

View File

@ -46,11 +46,11 @@
mod block;
mod checkpoint;
mod config;
mod parameters;
mod primitives;
mod script;
pub mod config;
pub mod error;
pub mod router;
pub mod transaction;

View File

@ -159,11 +159,12 @@ extern crate bitflags;
/// parameterized by 'a), *not* that the object itself has 'static lifetime.
pub type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;
mod address_book;
pub mod address_book_peers;
mod address_book_updater;
mod config;
pub mod config;
pub mod constants;
mod address_book;
mod address_book_updater;
mod isolated;
mod meta_addr;
mod peer;

View File

@ -385,44 +385,52 @@ pub(crate) fn database_format_version_at_path(
}
}
/// Writes `changed_version` to the on-disk database after the format is changed.
/// (Or a new database is created.)
///
/// # Correctness
///
/// This should only be called:
/// - after each format upgrade is complete,
/// - when creating a new database, or
/// - when an older Zebra version opens a newer database.
///
/// # Concurrency
///
/// This must only be called while RocksDB has an open database for `config`.
/// Otherwise, multiple Zebra processes could write the version at the same time,
/// corrupting the file.
///
/// # Panics
///
/// If the major versions do not match. (The format is incompatible.)
pub fn write_database_format_version_to_disk(
changed_version: &Version,
config: &Config,
network: Network,
) -> Result<(), BoxError> {
let version_path = config.version_file_path(network);
// Hide this destructive method from the public API, except in tests.
pub(crate) use hidden::write_database_format_version_to_disk;
// The major version is already in the directory path.
assert_eq!(
changed_version.major, DATABASE_FORMAT_VERSION,
"tried to do in-place database format change to an incompatible version"
);
pub(crate) mod hidden {
let version = format!("{}.{}", changed_version.minor, changed_version.patch);
use super::*;
// # Concurrency
//
// The caller handles locking for this file write.
fs::write(version_path, version.as_bytes())?;
/// Writes `changed_version` to the on-disk database after the format is changed.
/// (Or a new database is created.)
///
/// # Correctness
///
/// This should only be called:
/// - after each format upgrade is complete,
/// - when creating a new database, or
/// - when an older Zebra version opens a newer database.
///
/// # Concurrency
///
/// This must only be called while RocksDB has an open database for `config`.
/// Otherwise, multiple Zebra processes could write the version at the same time,
/// corrupting the file.
///
/// # Panics
///
/// If the major versions do not match. (The format is incompatible.)
pub fn write_database_format_version_to_disk(
changed_version: &Version,
config: &Config,
network: Network,
) -> Result<(), BoxError> {
let version_path = config.version_file_path(network);
Ok(())
// The major version is already in the directory path.
assert_eq!(
changed_version.major, DATABASE_FORMAT_VERSION,
"tried to do in-place database format change to an incompatible version"
);
let version = format!("{}.{}", changed_version.minor, changed_version.patch);
// # Concurrency
//
// The caller handles locking for this file write.
fs::write(version_path, version.as_bytes())?;
Ok(())
}
}

View File

@ -25,12 +25,12 @@
#[macro_use]
extern crate tracing;
pub mod config;
pub mod constants;
#[cfg(any(test, feature = "proptest-impl"))]
pub mod arbitrary;
mod config;
mod error;
mod request;
mod response;
@ -71,7 +71,7 @@ pub use service::{
};
#[cfg(any(test, feature = "proptest-impl"))]
pub use config::write_database_format_version_to_disk;
pub use config::hidden::write_database_format_version_to_disk;
#[cfg(any(test, feature = "proptest-impl"))]
pub use constants::latest_version_for_adding_subtrees;

View File

@ -15,16 +15,18 @@ use serde::{Deserialize, Serialize};
#[serde(deny_unknown_fields, default)]
pub struct ZebradConfig {
/// Consensus configuration
pub consensus: zebra_consensus::Config,
//
// These configs use full paths to avoid a rustdoc link bug (#7048).
pub consensus: zebra_consensus::config::Config,
/// Metrics configuration
pub metrics: crate::components::metrics::Config,
/// Networking configuration
pub network: zebra_network::Config,
pub network: zebra_network::config::Config,
/// State configuration
pub state: zebra_state::Config,
pub state: zebra_state::config::Config,
/// Tracing configuration
pub tracing: crate::components::tracing::Config,