Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 3 commits into from
Oct 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/docs-deploy-firebase.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion zebra-consensus/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
7 changes: 4 additions & 3 deletions zebra-network/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
80 changes: 44 additions & 36 deletions zebra-state/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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::*;
teor2345 marked this conversation as resolved.
Show resolved Hide resolved

// # 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);

// 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);

Ok(())
// # Concurrency
//
// The caller handles locking for this file write.
fs::write(version_path, version.as_bytes())?;

Ok(())
}
}
4 changes: 2 additions & 2 deletions zebra-state/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
8 changes: 5 additions & 3 deletions zebrad/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Loading