diff --git a/Cargo.lock b/Cargo.lock index 6d3d344a060757..0d9b565425972b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9286,7 +9286,6 @@ version = "3.1.0" dependencies = [ "bincode", "log", - "qualifier_attr", "solana-account", "solana-bincode", "solana-bpf-loader-program", @@ -11417,7 +11416,6 @@ dependencies = [ "futures 0.3.31", "log", "lru", - "qualifier_attr", "quinn", "rustls 0.23.32", "solana-cli-config", diff --git a/Cargo.toml b/Cargo.toml index 8f0f43b06970ce..e23dad5c899e11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -175,23 +175,23 @@ used_underscore_binding = "deny" [workspace.dependencies] Inflector = "0.11.4" aes-gcm-siv = "0.11.1" -agave-banking-stage-ingress-types = { path = "banking-stage-ingress-types", version = "=3.1.0" } +agave-banking-stage-ingress-types = { path = "banking-stage-ingress-types", version = "=3.1.0", features = ["agave-unstable-api"] } agave-cargo-registry = { path = "cargo-registry", version = "=3.1.0" } -agave-feature-set = { path = "feature-set", version = "=3.1.0" } -agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=3.1.0" } -agave-io-uring = { path = "io-uring", version = "=3.1.0" } -agave-precompiles = { path = "precompiles", version = "=3.1.0" } -agave-reserved-account-keys = { path = "reserved-account-keys", version = "=3.1.0" } -agave-scheduler-bindings = { path = "scheduler-bindings", version = "=3.1.0" } -agave-scheduling-utils = { path = "scheduling-utils", version = "=3.1.0" } -agave-snapshots = { path = "snapshots", version = "=3.1.0" } -agave-syscalls = { path = "syscalls", version = "=3.1.0" } -agave-thread-manager = { path = "thread-manager", version = "=3.1.0" } -agave-transaction-view = { path = "transaction-view", version = "=3.1.0" } -agave-verified-packet-receiver = { path = "verified-packet-receiver", version = "=3.1.0" } -agave-votor = { path = "votor", version = "=3.1.0" } -agave-votor-messages = { path = "votor-messages", version = "=3.1.0" } -agave-xdp = { path = "xdp", version = "=3.1.0" } +agave-feature-set = { path = "feature-set", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-io-uring = { path = "io-uring", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-precompiles = { path = "precompiles", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-reserved-account-keys = { path = "reserved-account-keys", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-scheduler-bindings = { path = "scheduler-bindings", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-scheduling-utils = { path = "scheduling-utils", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-snapshots = { path = "snapshots", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-syscalls = { path = "syscalls", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-thread-manager = { path = "thread-manager", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-transaction-view = { path = "transaction-view", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-verified-packet-receiver = { path = "verified-packet-receiver", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-votor = { path = "votor", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-votor-messages = { path = "votor-messages", version = "=3.1.0", features = ["agave-unstable-api"] } +agave-xdp = { path = "xdp", version = "=3.1.0", features = ["agave-unstable-api"] } ahash = "0.8.11" anyhow = "1.0.100" aquamarine = "0.6.0" @@ -377,71 +377,71 @@ smpl_jwt = "0.7.1" socket2 = "0.6.1" soketto = "0.7" solana-account = "3.1.0" -solana-account-decoder = { path = "account-decoder", version = "=3.1.0" } -solana-account-decoder-client-types = { path = "account-decoder-client-types", version = "=3.1.0" } +solana-account-decoder = { path = "account-decoder", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-account-decoder-client-types = { path = "account-decoder-client-types", version = "=3.1.0", features = ["agave-unstable-api"] } solana-account-info = "3.0.0" -solana-accounts-db = { path = "accounts-db", version = "=3.1.0" } +solana-accounts-db = { path = "accounts-db", version = "=3.1.0", features = ["agave-unstable-api"] } solana-address = "1.0.0" solana-address-lookup-table-interface = "3.0.0" solana-atomic-u64 = "3.0.0" -solana-banks-client = { path = "banks-client", version = "=3.1.0" } -solana-banks-interface = { path = "banks-interface", version = "=3.1.0" } -solana-banks-server = { path = "banks-server", version = "=3.1.0" } +solana-banks-client = { path = "banks-client", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-banks-interface = { path = "banks-interface", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-banks-server = { path = "banks-server", version = "=3.1.0", features = ["agave-unstable-api"] } solana-bench-tps = { path = "bench-tps", version = "=3.1.0" } solana-big-mod-exp = "3.0.0" solana-bincode = "3.0.0" solana-blake3-hasher = "3.0.0" -solana-bloom = { path = "bloom", version = "=3.1.0" } +solana-bloom = { path = "bloom", version = "=3.1.0", features = ["agave-unstable-api"] } solana-bls-signatures = { version = "1.0.0", features = ["serde"] } solana-bn254 = "3.0.0" solana-borsh = "3.0.0" -solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=3.1.0" } -solana-bucket-map = { path = "bucket_map", version = "=3.1.0" } -solana-builtins = { path = "builtins", version = "=3.1.0" } -solana-builtins-default-costs = { path = "builtins-default-costs", version = "=3.1.0" } -solana-clap-utils = { path = "clap-utils", version = "=3.1.0" } -solana-clap-v3-utils = { path = "clap-v3-utils", version = "=3.1.0" } +solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-bucket-map = { path = "bucket_map", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-builtins = { path = "builtins", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-builtins-default-costs = { path = "builtins-default-costs", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-clap-utils = { path = "clap-utils", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-clap-v3-utils = { path = "clap-v3-utils", version = "=3.1.0", features = ["agave-unstable-api"] } solana-cli = { path = "cli", version = "=3.1.0" } -solana-cli-config = { path = "cli-config", version = "=3.1.0" } -solana-cli-output = { path = "cli-output", version = "=3.1.0" } -solana-client = { path = "client", version = "=3.1.0" } +solana-cli-config = { path = "cli-config", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-cli-output = { path = "cli-output", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-client = { path = "client", version = "=3.1.0", features = ["agave-unstable-api"] } solana-client-traits = "3.0.0" solana-clock = "3.0.0" solana-cluster-type = "3.0.0" solana-commitment-config = "3.0.0" -solana-compute-budget = { path = "compute-budget", version = "=3.1.0" } -solana-compute-budget-instruction = { path = "compute-budget-instruction", version = "=3.1.0" } +solana-compute-budget = { path = "compute-budget", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-compute-budget-instruction = { path = "compute-budget-instruction", version = "=3.1.0", features = ["agave-unstable-api"] } solana-compute-budget-interface = "3.0.0" -solana-compute-budget-program = { path = "programs/compute-budget", version = "=3.1.0" } +solana-compute-budget-program = { path = "programs/compute-budget", version = "=3.1.0", features = ["agave-unstable-api"] } solana-config-interface = "2.0.0" -solana-connection-cache = { path = "connection-cache", version = "=3.1.0", default-features = false } -solana-core = { path = "core", version = "=3.1.0" } -solana-cost-model = { path = "cost-model", version = "=3.1.0" } +solana-connection-cache = { path = "connection-cache", version = "=3.1.0", default-features = false, features = ["agave-unstable-api"] } +solana-core = { path = "core", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-cost-model = { path = "cost-model", version = "=3.1.0", features = ["agave-unstable-api"] } solana-cpi = "3.0.0" -solana-curve25519 = { path = "curves/curve25519", version = "=3.1.0" } +solana-curve25519 = { path = "curves/curve25519", version = "=3.1.0", features = ["agave-unstable-api"] } solana-define-syscall = "3.0.0" solana-derivation-path = "3.0.0" -solana-download-utils = { path = "download-utils", version = "=3.1.0" } +solana-download-utils = { path = "download-utils", version = "=3.1.0", features = ["agave-unstable-api"] } solana-ed25519-program = "3.0.0" -solana-entry = { path = "entry", version = "=3.1.0" } +solana-entry = { path = "entry", version = "=3.1.0", features = ["agave-unstable-api"] } solana-epoch-info = "3.0.0" solana-epoch-rewards = "3.0.0" solana-epoch-rewards-hasher = "3.0.0" solana-epoch-schedule = "3.0.0" solana-example-mocks = "3.0.0" -solana-faucet = { path = "faucet", version = "=3.1.0" } +solana-faucet = { path = "faucet", version = "=3.1.0", features = ["agave-unstable-api"] } solana-feature-gate-interface = "3.0.0" -solana-fee = { path = "fee", version = "=3.1.0" } +solana-fee = { path = "fee", version = "=3.1.0", features = ["agave-unstable-api"] } solana-fee-calculator = "3.0.0" solana-fee-structure = "3.0.0" solana-file-download = "3.1.0" solana-frozen-abi = "3.0.0" solana-frozen-abi-macro = "3.0.0" -solana-genesis = { path = "genesis", version = "=3.1.0" } +solana-genesis = { path = "genesis", version = "=3.1.0", features = ["agave-unstable-api"] } solana-genesis-config = "3.0.0" -solana-genesis-utils = { path = "genesis-utils", version = "=3.1.0" } -solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=3.1.0" } -solana-gossip = { path = "gossip", version = "=3.1.0" } +solana-genesis-utils = { path = "genesis-utils", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-gossip = { path = "gossip", version = "=3.1.0", features = ["agave-unstable-api"] } solana-hard-forks = "3.0.0" solana-hash = "3.0.0" solana-inflation = "3.0.0" @@ -451,57 +451,57 @@ solana-instructions-sysvar = "3.0.0" solana-keccak-hasher = "3.0.0" solana-keypair = "3.0.1" solana-last-restart-slot = "3.0.0" -solana-lattice-hash = { path = "lattice-hash", version = "=3.1.0" } -solana-ledger = { path = "ledger", version = "=3.1.0" } +solana-lattice-hash = { path = "lattice-hash", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-ledger = { path = "ledger", version = "=3.1.0", features = ["agave-unstable-api"] } solana-loader-v2-interface = "3.0.0" solana-loader-v3-interface = "6.1.0" solana-loader-v4-interface = "3.1.0" -solana-loader-v4-program = { path = "programs/loader-v4", version = "=3.1.0" } -solana-local-cluster = { path = "local-cluster", version = "=3.1.0" } +solana-loader-v4-program = { path = "programs/loader-v4", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-local-cluster = { path = "local-cluster", version = "=3.1.0", features = ["agave-unstable-api"] } solana-logger = "3.0.0" -solana-measure = { path = "measure", version = "=3.1.0" } -solana-merkle-tree = { path = "merkle-tree", version = "=3.1.0" } +solana-measure = { path = "measure", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-merkle-tree = { path = "merkle-tree", version = "=3.1.0", features = ["agave-unstable-api"] } solana-message = "3.0.1" -solana-metrics = { path = "metrics", version = "=3.1.0" } +solana-metrics = { path = "metrics", version = "=3.1.0", features = ["agave-unstable-api"] } solana-msg = "3.0.0" solana-native-token = "3.0.0" -solana-net-utils = { path = "net-utils", version = "=3.1.0" } +solana-net-utils = { path = "net-utils", version = "=3.1.0", features = ["agave-unstable-api"] } solana-nohash-hasher = "0.2.1" solana-nonce = "3.0.0" solana-nonce-account = "3.0.0" -solana-notifier = { path = "notifier", version = "=3.1.0" } +solana-notifier = { path = "notifier", version = "=3.1.0", features = ["agave-unstable-api"] } solana-offchain-message = "3.0.0" solana-packet = "3.0.0" -solana-perf = { path = "perf", version = "=3.1.0" } -solana-poh = { path = "poh", version = "=3.1.0" } +solana-perf = { path = "perf", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-poh = { path = "poh", version = "=3.1.0", features = ["agave-unstable-api"] } solana-poh-config = "3.0.0" -solana-poseidon = { path = "poseidon", version = "=3.1.0" } +solana-poseidon = { path = "poseidon", version = "=3.1.0", features = ["agave-unstable-api"] } solana-precompile-error = "3.0.0" solana-presigner = "3.0.0" solana-program = { version = "3.0.0", default-features = false } -solana-program-binaries = { path = "program-binaries", version = "=3.1.0" } +solana-program-binaries = { path = "program-binaries", version = "=3.1.0", features = ["agave-unstable-api"] } solana-program-entrypoint = "3.1.0" solana-program-error = "3.0.0" solana-program-memory = "3.0.0" solana-program-option = "3.0.0" solana-program-pack = "3.0.0" -solana-program-runtime = { path = "program-runtime", version = "=3.1.0" } -solana-program-test = { path = "program-test", version = "=3.1.0" } +solana-program-runtime = { path = "program-runtime", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-program-test = { path = "program-test", version = "=3.1.0", features = ["agave-unstable-api"] } solana-pubkey = { version = "3.0.0", default-features = false } -solana-pubsub-client = { path = "pubsub-client", version = "=3.1.0" } -solana-quic-client = { path = "quic-client", version = "=3.1.0" } +solana-pubsub-client = { path = "pubsub-client", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-quic-client = { path = "quic-client", version = "=3.1.0", features = ["agave-unstable-api"] } solana-quic-definitions = "3.0.0" -solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=3.1.0" } -solana-remote-wallet = { path = "remote-wallet", version = "=3.1.0", default-features = false } +solana-rayon-threadlimit = { path = "rayon-threadlimit", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-remote-wallet = { path = "remote-wallet", version = "=3.1.0", default-features = false, features = ["agave-unstable-api"] } solana-rent = "3.0.0" solana-reward-info = "3.0.0" -solana-rpc = { path = "rpc", version = "=3.1.0" } -solana-rpc-client = { path = "rpc-client", version = "=3.1.0", default-features = false } -solana-rpc-client-api = { path = "rpc-client-api", version = "=3.1.0" } -solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=3.1.0" } -solana-rpc-client-types = { path = "rpc-client-types", version = "=3.1.0" } -solana-runtime = { path = "runtime", version = "=3.1.0" } -solana-runtime-transaction = { path = "runtime-transaction", version = "=3.1.0" } +solana-rpc = { path = "rpc", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-rpc-client = { path = "rpc-client", version = "=3.1.0", default-features = false, features = ["agave-unstable-api"] } +solana-rpc-client-api = { path = "rpc-client-api", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-rpc-client-types = { path = "rpc-client-types", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-runtime = { path = "runtime", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-runtime-transaction = { path = "runtime-transaction", version = "=3.1.0", features = ["agave-unstable-api"] } solana-sanitize = "3.0.1" solana-sbpf = { version = "=0.13.0", default-features = false } solana-sdk-ids = "3.0.0" @@ -510,7 +510,7 @@ solana-secp256k1-recover = "3.0.0" solana-secp256r1-program = "3.0.0" solana-seed-derivable = "3.0.0" solana-seed-phrase = "3.0.0" -solana-send-transaction-service = { path = "send-transaction-service", version = "=3.1.0" } +solana-send-transaction-service = { path = "send-transaction-service", version = "=3.1.0", features = ["agave-unstable-api"] } solana-serde = "3.0.0" solana-serde-varint = "3.0.0" solana-serialize-utils = "3.1.0" @@ -524,49 +524,49 @@ solana-slot-hashes = "3.0.0" solana-slot-history = "3.0.0" solana-stable-layout = "3.0.0" solana-stake-interface = { version = "2.0.1" } -solana-stake-program = { path = "programs/stake", version = "=3.1.0" } -solana-storage-bigtable = { path = "storage-bigtable", version = "=3.1.0" } -solana-storage-proto = { path = "storage-proto", version = "=3.1.0" } -solana-streamer = { path = "streamer", version = "=3.1.0" } -solana-svm = { path = "svm", version = "=3.1.0" } -solana-svm-callback = { path = "svm-callback", version = "=3.1.0" } -solana-svm-feature-set = { path = "svm-feature-set", version = "=3.1.0" } -solana-svm-log-collector = { path = "svm-log-collector", version = "=3.1.0" } -solana-svm-measure = { path = "svm-measure", version = "=3.1.0" } -solana-svm-timings = { path = "svm-timings", version = "=3.1.0" } -solana-svm-transaction = { path = "svm-transaction", version = "=3.1.0" } -solana-svm-type-overrides = { path = "svm-type-overrides", version = "=3.1.0" } +solana-stake-program = { path = "programs/stake", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-storage-bigtable = { path = "storage-bigtable", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-storage-proto = { path = "storage-proto", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-streamer = { path = "streamer", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm = { path = "svm", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-callback = { path = "svm-callback", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-feature-set = { path = "svm-feature-set", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-log-collector = { path = "svm-log-collector", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-measure = { path = "svm-measure", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-timings = { path = "svm-timings", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-transaction = { path = "svm-transaction", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-svm-type-overrides = { path = "svm-type-overrides", version = "=3.1.0", features = ["agave-unstable-api"] } solana-system-interface = "2.0" -solana-system-program = { path = "programs/system", version = "=3.1.0" } +solana-system-program = { path = "programs/system", version = "=3.1.0", features = ["agave-unstable-api"] } solana-system-transaction = "3.0.0" solana-sysvar = "3.0.0" solana-sysvar-id = "3.0.0" solana-test-validator = { path = "test-validator", version = "=3.1.0" } solana-time-utils = "3.0.0" -solana-tls-utils = { path = "tls-utils", version = "=3.1.0" } -solana-tps-client = { path = "tps-client", version = "=3.1.0" } -solana-tpu-client = { path = "tpu-client", version = "=3.1.0", default-features = false } -solana-tpu-client-next = { path = "tpu-client-next", version = "=3.1.0" } +solana-tls-utils = { path = "tls-utils", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-tps-client = { path = "tps-client", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-tpu-client = { path = "tpu-client", version = "=3.1.0", default-features = false, features = ["agave-unstable-api"] } +solana-tpu-client-next = { path = "tpu-client-next", version = "=3.1.0", features = ["agave-unstable-api"] } solana-transaction = "3.0.1" -solana-transaction-context = { path = "transaction-context", version = "=3.1.0", features = ["bincode"] } +solana-transaction-context = { path = "transaction-context", version = "=3.1.0", features = ["agave-unstable-api", "bincode"] } solana-transaction-error = "3.0.0" -solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=3.1.0" } -solana-transaction-status = { path = "transaction-status", version = "=3.1.0" } -solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=3.1.0" } -solana-turbine = { path = "turbine", version = "=3.1.0" } -solana-udp-client = { path = "udp-client", version = "=3.1.0" } -solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=3.1.0" } -solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=3.1.0" } +solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-transaction-status = { path = "transaction-status", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-turbine = { path = "turbine", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-udp-client = { path = "udp-client", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-unified-scheduler-logic = { path = "unified-scheduler-logic", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-unified-scheduler-pool = { path = "unified-scheduler-pool", version = "=3.1.0", features = ["agave-unstable-api"] } solana-validator-exit = "3.0.0" -solana-version = { path = "version", version = "=3.1.0" } -solana-vote = { path = "vote", version = "=3.1.0" } +solana-version = { path = "version", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-vote = { path = "vote", version = "=3.1.0", features = ["agave-unstable-api"] } solana-vote-interface = "4.0.3" -solana-vote-program = { path = "programs/vote", version = "=3.1.0", default-features = false } -solana-wen-restart = { path = "wen-restart", version = "=3.1.0" } -solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=3.1.0" } +solana-vote-program = { path = "programs/vote", version = "=3.1.0", default-features = false, features = ["agave-unstable-api"] } +solana-wen-restart = { path = "wen-restart", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-zk-elgamal-proof-program = { path = "programs/zk-elgamal-proof", version = "=3.1.0", features = ["agave-unstable-api"] } solana-zk-sdk = "4.0.0" -solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=3.1.0" } -solana-zk-token-sdk = { path = "zk-token-sdk", version = "=3.1.0" } +solana-zk-token-proof-program = { path = "programs/zk-token-proof", version = "=3.1.0", features = ["agave-unstable-api"] } +solana-zk-token-sdk = { path = "zk-token-sdk", version = "=3.1.0", features = ["agave-unstable-api"] } spl-associated-token-account-interface = "2.0.0" spl-generic-token = "2.0.0" spl-memo-interface = "2.0.0" diff --git a/account-decoder-client-types/Cargo.toml b/account-decoder-client-types/Cargo.toml index 7e348f756358c2..5dc4e3c8f6128e 100644 --- a/account-decoder-client-types/Cargo.toml +++ b/account-decoder-client-types/Cargo.toml @@ -15,6 +15,7 @@ all-features = true rustdoc-args = ["--cfg=docsrs"] [features] +agave-unstable-api = [] zstd = ["dep:zstd"] [dependencies] diff --git a/account-decoder-client-types/src/lib.rs b/account-decoder-client-types/src/lib.rs index 4d4c1ff8ac3af6..13014d4651ae85 100644 --- a/account-decoder-client-types/src/lib.rs +++ b/account-decoder-client-types/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Core RPC client types for solana-account-decoder #![cfg_attr(docsrs, feature(doc_auto_cfg))] #[cfg(feature = "zstd")] diff --git a/account-decoder/Cargo.toml b/account-decoder/Cargo.toml index 2eeb2d4636434a..578b5275a8c27b 100644 --- a/account-decoder/Cargo.toml +++ b/account-decoder/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] Inflector = { workspace = true } base64 = { workspace = true } diff --git a/account-decoder/src/lib.rs b/account-decoder/src/lib.rs index 92be846e87407b..90ca676ade87ee 100644 --- a/account-decoder/src/lib.rs +++ b/account-decoder/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod parse_account_data; diff --git a/accounts-db/Cargo.toml b/accounts-db/Cargo.toml index 630db27042c23e..5c6b5962ffa712 100644 --- a/accounts-db/Cargo.toml +++ b/accounts-db/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_accounts_db" [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:qualifier_attr", "dep:solana-keypair", diff --git a/accounts-db/src/lib.rs b/accounts-db/src/lib.rs index e698bc154514d5..afadd0506711b2 100644 --- a/accounts-db/src/lib.rs +++ b/accounts-db/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/banking-stage-ingress-types/Cargo.toml b/banking-stage-ingress-types/Cargo.toml index b27ab6d6b7e17a..599876d201d910 100644 --- a/banking-stage-ingress-types/Cargo.toml +++ b/banking-stage-ingress-types/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] crossbeam-channel = { workspace = true } solana-perf = { workspace = true } diff --git a/banking-stage-ingress-types/src/lib.rs b/banking-stage-ingress-types/src/lib.rs index 0fcfb6f31ed391..5acb29adcdec61 100644 --- a/banking-stage-ingress-types/src/lib.rs +++ b/banking-stage-ingress-types/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use {crossbeam_channel::Receiver, solana_perf::packet::PacketBatch, std::sync::Arc}; pub type BankingPacketBatch = Arc>; diff --git a/banks-client/Cargo.toml b/banks-client/Cargo.toml index 9749ef89482ea4..4c840f96cded5b 100644 --- a/banks-client/Cargo.toml +++ b/banks-client/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_banks_client" +[features] +agave-unstable-api = [] + [dependencies] borsh = { workspace = true } futures = { workspace = true } diff --git a/banks-client/src/lib.rs b/banks-client/src/lib.rs index 90432b08544474..e276efde758869 100644 --- a/banks-client/src/lib.rs +++ b/banks-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! A client for the ledger state, from the perspective of an arbitrary validator. //! //! Use start_tcp_client() to create a client and then import BanksClientExt to diff --git a/banks-interface/Cargo.toml b/banks-interface/Cargo.toml index fcd56ec76da678..dfb97cf7b90a08 100644 --- a/banks-interface/Cargo.toml +++ b/banks-interface/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_banks_interface" +[features] +agave-unstable-api = [] + [dependencies] serde = { workspace = true } solana-account = { workspace = true, features = [ "serde" ] } diff --git a/banks-interface/src/lib.rs b/banks-interface/src/lib.rs index fb63e58943eef2..354820c6e0ab0c 100644 --- a/banks-interface/src/lib.rs +++ b/banks-interface/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(deprecated)] use { diff --git a/banks-server/Cargo.toml b/banks-server/Cargo.toml index 3cd5fc9ca75a47..c3d826f90caf67 100644 --- a/banks-server/Cargo.toml +++ b/banks-server/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_banks_server" +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } bincode = { workspace = true } diff --git a/banks-server/src/lib.rs b/banks-server/src/lib.rs index 2ea4c4460f373c..c2924beb6e120a 100644 --- a/banks-server/src/lib.rs +++ b/banks-server/src/lib.rs @@ -1,2 +1,11 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod banks_server; diff --git a/bloom/Cargo.toml b/bloom/Cargo.toml index 987eb3e044f7ed..bdac1ce8001714 100644 --- a/bloom/Cargo.toml +++ b/bloom/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_bloom" [features] +agave-unstable-api = [] frozen-abi = [ "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", diff --git a/bloom/src/lib.rs b/bloom/src/lib.rs index 944643883dd978..0f7d4fb3c59eba 100644 --- a/bloom/src/lib.rs +++ b/bloom/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] pub mod bloom; diff --git a/bucket_map/Cargo.toml b/bucket_map/Cargo.toml index 32d29ebca537d2..8d47515b0ac836 100644 --- a/bucket_map/Cargo.toml +++ b/bucket_map/Cargo.toml @@ -14,6 +14,7 @@ crate-type = ["lib"] name = "solana_bucket_map" [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/bucket_map/src/lib.rs b/bucket_map/src/lib.rs index a08bafe00c2cd8..015f7ea744ffff 100644 --- a/bucket_map/src/lib.rs +++ b/bucket_map/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] mod bucket; pub mod bucket_api; diff --git a/builtins-default-costs/Cargo.toml b/builtins-default-costs/Cargo.toml index a9716406407c62..d5597d6490c487 100644 --- a/builtins-default-costs/Cargo.toml +++ b/builtins-default-costs/Cargo.toml @@ -18,6 +18,7 @@ crate-type = ["lib"] name = "solana_builtins_default_costs" [features] +agave-unstable-api = [] frozen-abi = ["dep:solana-frozen-abi", "solana-vote-program/frozen-abi"] dev-context-only-utils = ["dep:qualifier_attr"] diff --git a/builtins-default-costs/src/lib.rs b/builtins-default-costs/src/lib.rs index fc74bc0c1f4836..0a0cb45cf48e92 100644 --- a/builtins-default-costs/src/lib.rs +++ b/builtins-default-costs/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/builtins/Cargo.toml b/builtins/Cargo.toml index b22a84411a5fdb..e14e1bd2958c0d 100644 --- a/builtins/Cargo.toml +++ b/builtins/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/builtins/src/lib.rs b/builtins/src/lib.rs index 1aba4655a02f0b..9d7b0624c545e7 100644 --- a/builtins/src/lib.rs +++ b/builtins/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Solana builtin programs. //! //! Warning: This crate is not for public consumption. It will change, and diff --git a/clap-utils/Cargo.toml b/clap-utils/Cargo.toml index 6b37e196e03e06..a5cbeccbbbe523 100644 --- a/clap-utils/Cargo.toml +++ b/clap-utils/Cargo.toml @@ -15,6 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"] [lib] name = "solana_clap_utils" +[features] +agave-unstable-api = [] + [dependencies] chrono = { workspace = true, features = ["default"] } clap = "2.33.0" diff --git a/clap-utils/src/lib.rs b/clap-utils/src/lib.rs index 58a27b2424401a..f0aa2bc3658675 100644 --- a/clap-utils/src/lib.rs +++ b/clap-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use thiserror::Error; pub struct ArgConstant<'a> { diff --git a/clap-v3-utils/Cargo.toml b/clap-v3-utils/Cargo.toml index 2f0ff47d40aa91..820282040b71b6 100644 --- a/clap-v3-utils/Cargo.toml +++ b/clap-v3-utils/Cargo.toml @@ -16,6 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"] name = "solana_clap_v3_utils" [features] +agave-unstable-api = [] elgamal = ["dep:solana-zk-sdk"] [dependencies] diff --git a/clap-v3-utils/src/lib.rs b/clap-v3-utils/src/lib.rs index c3edf98dc57d20..aaa3f9c1eee513 100644 --- a/clap-v3-utils/src/lib.rs +++ b/clap-v3-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use thiserror::Error; pub struct ArgConstant<'a> { diff --git a/cli-config/Cargo.toml b/cli-config/Cargo.toml index afd99bcc3f5770..fec95a467ad569 100644 --- a/cli-config/Cargo.toml +++ b/cli-config/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] dirs-next = { workspace = true } serde = { workspace = true } diff --git a/cli-config/src/lib.rs b/cli-config/src/lib.rs index 8b20bd2ee87d9e..4c36c4bf516a05 100644 --- a/cli-config/src/lib.rs +++ b/cli-config/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Loading and saving the Solana CLI configuration file. //! //! The configuration file used by the Solana CLI includes information about the diff --git a/cli-output/Cargo.toml b/cli-output/Cargo.toml index 8954b83b38626c..cedb05a34e82d6 100644 --- a/cli-output/Cargo.toml +++ b/cli-output/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] Inflector = { workspace = true } agave-reserved-account-keys = { workspace = true } diff --git a/cli-output/src/lib.rs b/cli-output/src/lib.rs index 5bd3c036f48bf9..d95140100678ea 100644 --- a/cli-output/src/lib.rs +++ b/cli-output/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] mod cli_output; pub mod cli_version; diff --git a/client/Cargo.toml b/client/Cargo.toml index 6000cd95b3388a..18f0312cd76962 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -13,6 +13,7 @@ edition = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/client/src/lib.rs b/client/src/lib.rs index 1dd13906080768..188eb5db5dfe7c 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod client_option; diff --git a/compute-budget-instruction/Cargo.toml b/compute-budget-instruction/Cargo.toml index 8971b9b619c6bf..78d776d9fa7b96 100644 --- a/compute-budget-instruction/Cargo.toml +++ b/compute-budget-instruction/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_compute_budget_instruction" [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/compute-budget-instruction/src/lib.rs b/compute-budget-instruction/src/lib.rs index 032730b9f1bf56..bd4b66ab38d53b 100644 --- a/compute-budget-instruction/src/lib.rs +++ b/compute-budget-instruction/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] mod builtin_programs_filter; diff --git a/compute-budget/Cargo.toml b/compute-budget/Cargo.toml index 2babd3d921dcfb..fbd9251fbe4e33 100644 --- a/compute-budget/Cargo.toml +++ b/compute-budget/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:qualifier_attr", "solana-program-runtime/dev-context-only-utils", diff --git a/compute-budget/src/lib.rs b/compute-budget/src/lib.rs index 64108a0f225183..04513bb30c040b 100644 --- a/compute-budget/src/lib.rs +++ b/compute-budget/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Solana compute budget types and default configurations. #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] diff --git a/connection-cache/Cargo.toml b/connection-cache/Cargo.toml index c246526e16d559..0106606d20971b 100644 --- a/connection-cache/Cargo.toml +++ b/connection-cache/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] async-trait = { workspace = true } bincode = { workspace = true } diff --git a/connection-cache/src/lib.rs b/connection-cache/src/lib.rs index 80314369a6e3e5..ac09b1c4d6c33e 100644 --- a/connection-cache/src/lib.rs +++ b/connection-cache/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod client_connection; diff --git a/core/Cargo.toml b/core/Cargo.toml index e978329c6fa826..cb1ddf323ddfbf 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -13,6 +13,7 @@ edition = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [features] +agave-unstable-api = [] dev-context-only-utils = [ "solana-perf/dev-context-only-utils", "solana-runtime/dev-context-only-utils", diff --git a/core/src/lib.rs b/core/src/lib.rs index b30312465f68ca..d542e3e848b586 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] #![recursion_limit = "2048"] diff --git a/cost-model/Cargo.toml b/cost-model/Cargo.toml index ed7856f71f9147..16382ee189dfe0 100644 --- a/cost-model/Cargo.toml +++ b/cost-model/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_cost_model" [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:solana-hash", "dep:solana-message", diff --git a/cost-model/src/lib.rs b/cost-model/src/lib.rs index 872d21106801d3..8daf406942e710 100644 --- a/cost-model/src/lib.rs +++ b/cost-model/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/curves/curve25519/Cargo.toml b/curves/curve25519/Cargo.toml index 7beb5dc7499bbc..cb6a56be623fc2 100644 --- a/curves/curve25519/Cargo.toml +++ b/curves/curve25519/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] bytemuck = { workspace = true } bytemuck_derive = { workspace = true } diff --git a/curves/curve25519/src/lib.rs b/curves/curve25519/src/lib.rs index d0ab9d4709da11..8d10c26d689725 100644 --- a/curves/curve25519/src/lib.rs +++ b/curves/curve25519/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects, clippy::op_ref)] //! Syscall operations for curve25519 diff --git a/download-utils/Cargo.toml b/download-utils/Cargo.toml index 7f5e194490946c..47b196ba3e16fb 100644 --- a/download-utils/Cargo.toml +++ b/download-utils/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_download_utils" +[features] +agave-unstable-api = [] + [dependencies] agave-snapshots = { workspace = true } log = { workspace = true } diff --git a/download-utils/src/lib.rs b/download-utils/src/lib.rs index 4ca89e1241bd5d..9e4d97b6797708 100644 --- a/download-utils/src/lib.rs +++ b/download-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub use solana_file_download::DownloadProgressRecord; use { agave_snapshots::{ArchiveFormat, ZstdConfig}, diff --git a/entry/Cargo.toml b/entry/Cargo.toml index 67ff51310ef3fb..26bf0574ed9d20 100644 --- a/entry/Cargo.toml +++ b/entry/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_entry" [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/entry/src/lib.rs b/entry/src/lib.rs index 3d114242404e31..af233d12d968f6 100644 --- a/entry/src/lib.rs +++ b/entry/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod entry; pub mod poh; diff --git a/faucet/Cargo.toml b/faucet/Cargo.toml index bc67f9ee29daab..0a906e97a0cafe 100644 --- a/faucet/Cargo.toml +++ b/faucet/Cargo.toml @@ -21,6 +21,7 @@ name = "solana-faucet" path = "src/bin/faucet.rs" [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/faucet/src/lib.rs b/faucet/src/lib.rs index 7421799dd2aa00..d7a14c1bee21da 100644 --- a/faucet/src/lib.rs +++ b/faucet/src/lib.rs @@ -1,2 +1,11 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod faucet; pub mod faucet_mock; diff --git a/feature-set/Cargo.toml b/feature-set/Cargo.toml index 8b29e823d9b602..1c1f20ab14ec3c 100644 --- a/feature-set/Cargo.toml +++ b/feature-set/Cargo.toml @@ -10,6 +10,7 @@ edition = { workspace = true } readme = false [features] +agave-unstable-api = [] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] [dependencies] diff --git a/feature-set/src/lib.rs b/feature-set/src/lib.rs index b525e208bfd8b8..11bc693d7b4acc 100644 --- a/feature-set/src/lib.rs +++ b/feature-set/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] use { diff --git a/fee/Cargo.toml b/fee/Cargo.toml index 032a9d127ebc48..9f01cce5719f68 100644 --- a/fee/Cargo.toml +++ b/fee/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } solana-fee-structure = { workspace = true } diff --git a/fee/src/lib.rs b/fee/src/lib.rs index 43795518f66431..17cb9d44d66d32 100644 --- a/fee/src/lib.rs +++ b/fee/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { agave_feature_set::{enable_secp256r1_precompile, FeatureSet}, solana_fee_structure::FeeDetails, diff --git a/genesis-utils/Cargo.toml b/genesis-utils/Cargo.toml index f4040d34136bf0..63210cec4193fd 100644 --- a/genesis-utils/Cargo.toml +++ b/genesis-utils/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_genesis_utils" +[features] +agave-unstable-api = [] + [dependencies] log = { workspace = true } solana-accounts-db = { workspace = true } diff --git a/genesis-utils/src/lib.rs b/genesis-utils/src/lib.rs index 150d8602468ec2..9c179fe73c7a1b 100644 --- a/genesis-utils/src/lib.rs +++ b/genesis-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { log::*, solana_accounts_db::hardened_unpack::unpack_genesis_archive, diff --git a/genesis/Cargo.toml b/genesis/Cargo.toml index b5bdab720b1131..eb9dd816a7695e 100644 --- a/genesis/Cargo.toml +++ b/genesis/Cargo.toml @@ -19,6 +19,9 @@ name = "solana_genesis" name = "solana-genesis" path = "src/main.rs" +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } base64 = { workspace = true } diff --git a/genesis/src/lib.rs b/genesis/src/lib.rs index ef54f1660ffb4d..5c6577f619b033 100644 --- a/genesis/src/lib.rs +++ b/genesis/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod address_generator; pub mod genesis_accounts; diff --git a/geyser-plugin-interface/Cargo.toml b/geyser-plugin-interface/Cargo.toml index dcd59b815833e4..fe3bee29170261 100644 --- a/geyser-plugin-interface/Cargo.toml +++ b/geyser-plugin-interface/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] log = { workspace = true, features = ["std"] } solana-clock = { workspace = true } diff --git a/geyser-plugin-interface/src/lib.rs b/geyser-plugin-interface/src/lib.rs index a6c5cad0e5aed6..21d4f24d87fb6d 100644 --- a/geyser-plugin-interface/src/lib.rs +++ b/geyser-plugin-interface/src/lib.rs @@ -1 +1,10 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod geyser_plugin_interface; diff --git a/geyser-plugin-manager/Cargo.toml b/geyser-plugin-manager/Cargo.toml index 17e438af32915a..d720305782ac0a 100644 --- a/geyser-plugin-manager/Cargo.toml +++ b/geyser-plugin-manager/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] agave-geyser-plugin-interface = { workspace = true } bs58 = { workspace = true } diff --git a/geyser-plugin-manager/src/lib.rs b/geyser-plugin-manager/src/lib.rs index 2dd1a8f5d2616b..8ecdbb2d237a30 100644 --- a/geyser-plugin-manager/src/lib.rs +++ b/geyser-plugin-manager/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod accounts_update_notifier; pub mod block_metadata_notifier; pub mod block_metadata_notifier_interface; diff --git a/gossip/src/lib.rs b/gossip/src/lib.rs index 219aeffc16d704..00831e6b46426b 100644 --- a/gossip/src/lib.rs +++ b/gossip/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] // Activate some of the Rust 2024 lints to make the future migration easier. diff --git a/gossip/src/node.rs b/gossip/src/node.rs index 11367e79aa167b..f29f35513d2bd8 100644 --- a/gossip/src/node.rs +++ b/gossip/src/node.rs @@ -405,7 +405,6 @@ impl Node { } } -#[cfg(feature = "agave-unstable-api")] mod multihoming { use { crate::{ @@ -519,5 +518,4 @@ mod multihoming { } } -#[cfg(feature = "agave-unstable-api")] pub use multihoming::*; diff --git a/io-uring/Cargo.toml b/io-uring/Cargo.toml index d25485e11017eb..9891cb807a2dce 100644 --- a/io-uring/Cargo.toml +++ b/io-uring/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] libc = { workspace = true } log = { workspace = true } diff --git a/io-uring/src/lib.rs b/io-uring/src/lib.rs index d6edd6dd57c410..07775373791e21 100644 --- a/io-uring/src/lib.rs +++ b/io-uring/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg(target_os = "linux")] mod ring; mod slab; diff --git a/lattice-hash/Cargo.toml b/lattice-hash/Cargo.toml index 2ec387e8ad8b96..8f81ca5d33e668 100644 --- a/lattice-hash/Cargo.toml +++ b/lattice-hash/Cargo.toml @@ -8,6 +8,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] base64 = { workspace = true } blake3 = { workspace = true } diff --git a/lattice-hash/src/lib.rs b/lattice-hash/src/lib.rs index f40989f67d604b..d8715671ad347e 100644 --- a/lattice-hash/src/lib.rs +++ b/lattice-hash/src/lib.rs @@ -1 +1,10 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod lt_hash; diff --git a/ledger/src/lib.rs b/ledger/src/lib.rs index 55afc6977ab835..b5a13e612f1a9b 100644 --- a/ledger/src/lib.rs +++ b/ledger/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] #![recursion_limit = "2048"] diff --git a/local-cluster/Cargo.toml b/local-cluster/Cargo.toml index 7c9d429213cd00..40a95a4b499b2b 100644 --- a/local-cluster/Cargo.toml +++ b/local-cluster/Cargo.toml @@ -13,6 +13,7 @@ edition = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [features] +agave-unstable-api = [] dev-context-only-utils = ["solana-core/dev-context-only-utils"] [dependencies] diff --git a/local-cluster/src/lib.rs b/local-cluster/src/lib.rs index 6a5b0c7032750e..a23c844043332a 100644 --- a/local-cluster/src/lib.rs +++ b/local-cluster/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod cluster; pub mod cluster_tests; diff --git a/measure/Cargo.toml b/measure/Cargo.toml index 090450251c752a..e933420e0dbe50 100644 --- a/measure/Cargo.toml +++ b/measure/Cargo.toml @@ -11,3 +11,6 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] + +[features] +agave-unstable-api = [] diff --git a/measure/src/lib.rs b/measure/src/lib.rs index a1c86feb89a43f..bb34e59763af42 100644 --- a/measure/src/lib.rs +++ b/measure/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod macros; pub mod measure; diff --git a/memory-management/Cargo.toml b/memory-management/Cargo.toml index bac18aaea0e791..de98779da49e3e 100644 --- a/memory-management/Cargo.toml +++ b/memory-management/Cargo.toml @@ -7,3 +7,6 @@ repository = { workspace = true } homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } + +[features] +agave-unstable-api = [] diff --git a/memory-management/src/lib.rs b/memory-management/src/lib.rs index 95caf247cd5bb0..093e1219dda1fa 100644 --- a/memory-management/src/lib.rs +++ b/memory-management/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![deny(clippy::arithmetic_side_effects)] pub mod aligned_memory; diff --git a/merkle-tree/Cargo.toml b/merkle-tree/Cargo.toml index 7993e255807e12..1b31febea981d8 100644 --- a/merkle-tree/Cargo.toml +++ b/merkle-tree/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_merkle_tree" +[features] +agave-unstable-api = [] + [dependencies] fast-math = { workspace = true } solana-hash = { workspace = true } diff --git a/merkle-tree/src/lib.rs b/merkle-tree/src/lib.rs index 606c487dcf84cb..fc452b9d64a105 100644 --- a/merkle-tree/src/lib.rs +++ b/merkle-tree/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod merkle_tree; diff --git a/metrics/Cargo.toml b/metrics/Cargo.toml index 7a073dfee2161a..fb142da7396565 100644 --- a/metrics/Cargo.toml +++ b/metrics/Cargo.toml @@ -15,6 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"] [lib] name = "solana_metrics" +[features] +agave-unstable-api = [] + [dependencies] crossbeam-channel = { workspace = true } gethostname = { workspace = true } diff --git a/metrics/src/lib.rs b/metrics/src/lib.rs index e71c532d42b545..855a871725e27e 100644 --- a/metrics/src/lib.rs +++ b/metrics/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod counter; pub mod datapoint; diff --git a/net-utils/Cargo.toml b/net-utils/Cargo.toml index 8c7bc64bebc0cc..5c154da0420aaa 100644 --- a/net-utils/Cargo.toml +++ b/net-utils/Cargo.toml @@ -17,7 +17,6 @@ name = "solana_net_utils" [features] agave-unstable-api = [] -default = [] dev-context-only-utils = ["dep:pcap-file", "dep:hxdmp"] shuttle-test = ["dep:shuttle", "solana-svm-type-overrides/shuttle-test"] diff --git a/net-utils/src/lib.rs b/net-utils/src/lib.rs index b3c9205909ade8..d17dc9a8d873ee 100644 --- a/net-utils/src/lib.rs +++ b/net-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! The `net_utils` module assists with networking // Activate some of the Rust 2024 lints to make the future migration easier. diff --git a/notifier/Cargo.toml b/notifier/Cargo.toml index ba5dcb2a74e3a4..4299bdf42ee61a 100644 --- a/notifier/Cargo.toml +++ b/notifier/Cargo.toml @@ -15,6 +15,9 @@ targets = ["x86_64-unknown-linux-gnu"] [lib] name = "solana_notifier" +[features] +agave-unstable-api = [] + [dependencies] log = { workspace = true } reqwest = { workspace = true, features = ["blocking", "brotli", "deflate", "gzip", "rustls-tls", "json"] } diff --git a/notifier/src/lib.rs b/notifier/src/lib.rs index 41beede3bd2052..267a528a1615fa 100644 --- a/notifier/src/lib.rs +++ b/notifier/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] /// To activate Slack, Discord, PagerDuty and/or Telegram notifications, define these environment variables /// before using the `Notifier` /// ```bash diff --git a/perf/Cargo.toml b/perf/Cargo.toml index b0a6c8c64bb1b0..5388ea915cc1b1 100644 --- a/perf/Cargo.toml +++ b/perf/Cargo.toml @@ -16,6 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"] name = "solana_perf" [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:solana-clock", "dep:solana-keypair", diff --git a/perf/src/lib.rs b/perf/src/lib.rs index 864d541c8746f1..64bc843184a482 100644 --- a/perf/src/lib.rs +++ b/perf/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] pub mod cuda_runtime; pub mod data_budget; diff --git a/poh/Cargo.toml b/poh/Cargo.toml index 3a2d1ba846fa82..03eadc2acc6585 100644 --- a/poh/Cargo.toml +++ b/poh/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_poh" [features] +agave-unstable-api = [] dev-context-only-utils = [] shuttle-test = ["dep:shuttle"] diff --git a/poh/src/lib.rs b/poh/src/lib.rs index c58abd71106412..c78cbd112ad4d5 100644 --- a/poh/src/lib.rs +++ b/poh/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod poh_controller; pub mod poh_recorder; diff --git a/poseidon/Cargo.toml b/poseidon/Cargo.toml index 7b41042855b9ec..1bd00ca10f9074 100644 --- a/poseidon/Cargo.toml +++ b/poseidon/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] thiserror = { workspace = true } diff --git a/poseidon/src/lib.rs b/poseidon/src/lib.rs index 698352cf04c686..698f77783fe97e 100644 --- a/poseidon/src/lib.rs +++ b/poseidon/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Hashing with the [Poseidon] hash function. //! //! [Poseidon]: https://www.poseidon-hash.info/ diff --git a/precompiles/Cargo.toml b/precompiles/Cargo.toml index d67c1f2d7c4a98..2eae7c55e6aba2 100644 --- a/precompiles/Cargo.toml +++ b/precompiles/Cargo.toml @@ -14,6 +14,9 @@ targets = ["x86_64-unknown-linux-gnu"] all-features = true rustdoc-args = ["--cfg=docsrs"] +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } bincode = { workspace = true } diff --git a/precompiles/src/lib.rs b/precompiles/src/lib.rs index ee09da940c065d..bbb4382cf35243 100644 --- a/precompiles/src/lib.rs +++ b/precompiles/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(docsrs, feature(doc_auto_cfg))] use { agave_feature_set::{enable_secp256r1_precompile, FeatureSet}, diff --git a/program-binaries/Cargo.toml b/program-binaries/Cargo.toml index 2c06b3ac629b88..c2d9d6174c8a12 100644 --- a/program-binaries/Cargo.toml +++ b/program-binaries/Cargo.toml @@ -8,6 +8,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] bincode = { workspace = true } serde = { workspace = true } diff --git a/program-binaries/src/lib.rs b/program-binaries/src/lib.rs index 4776a98d33d3ac..baf934fc5755eb 100644 --- a/program-binaries/src/lib.rs +++ b/program-binaries/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] use { diff --git a/program-runtime/Cargo.toml b/program-runtime/Cargo.toml index b10814821e6e14..478e8a3ea6ade1 100644 --- a/program-runtime/Cargo.toml +++ b/program-runtime/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_program_runtime" [features] +agave-unstable-api = [] dev-context-only-utils = [] dummy-for-ci-check = ["metrics"] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] diff --git a/program-runtime/src/lib.rs b/program-runtime/src/lib.rs index e302e59bada7d1..31d6d9338c726c 100644 --- a/program-runtime/src/lib.rs +++ b/program-runtime/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![deny(clippy::arithmetic_side_effects)] #![deny(clippy::indexing_slicing)] diff --git a/program-test/Cargo.toml b/program-test/Cargo.toml index e2dc3bdac743b5..5fc810858bdd4d 100644 --- a/program-test/Cargo.toml +++ b/program-test/Cargo.toml @@ -8,6 +8,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } assert_matches = { workspace = true } diff --git a/program-test/src/lib.rs b/program-test/src/lib.rs index 87a83405f17b8f..33e4db2f5a3fc3 100644 --- a/program-test/src/lib.rs +++ b/program-test/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! The solana-program-test provides a BanksClient-based test framework SBF programs #![allow(clippy::arithmetic_side_effects)] diff --git a/programs/bpf_loader/Cargo.toml b/programs/bpf_loader/Cargo.toml index 5b46ce2955eeea..cba3931999287c 100644 --- a/programs/bpf_loader/Cargo.toml +++ b/programs/bpf_loader/Cargo.toml @@ -18,6 +18,7 @@ name = "solana_bpf_loader_program" [features] default = ["metrics"] +agave-unstable-api = [] metrics = ["solana-program-runtime/metrics"] shuttle-test = [ "solana-program-runtime/shuttle-test", diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index d4478b4b3574f1..22d7bdfd5c3222 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![deny(clippy::arithmetic_side_effects)] #![deny(clippy::indexing_slicing)] diff --git a/programs/compute-budget/Cargo.toml b/programs/compute-budget/Cargo.toml index b8262283f40afd..722526b6b09d88 100644 --- a/programs/compute-budget/Cargo.toml +++ b/programs/compute-budget/Cargo.toml @@ -16,5 +16,8 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_compute_budget_program" +[features] +agave-unstable-api = [] + [dependencies] solana-program-runtime = { workspace = true } diff --git a/programs/compute-budget/src/lib.rs b/programs/compute-budget/src/lib.rs index 01bbd7a8b4f21c..45fd7d3ada0176 100644 --- a/programs/compute-budget/src/lib.rs +++ b/programs/compute-budget/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use solana_program_runtime::declare_process_instruction; pub const DEFAULT_COMPUTE_UNITS: u64 = 150; diff --git a/programs/loader-v4/Cargo.toml b/programs/loader-v4/Cargo.toml index e525742d626cdc..4c5a29af666145 100644 --- a/programs/loader-v4/Cargo.toml +++ b/programs/loader-v4/Cargo.toml @@ -26,7 +26,6 @@ svm-internal = [] [dependencies] log = { workspace = true } -qualifier_attr = { workspace = true } solana-account = { workspace = true } solana-bincode = { workspace = true } solana-bpf-loader-program = { workspace = true, features = ["svm-internal"] } diff --git a/programs/loader-v4/src/lib.rs b/programs/loader-v4/src/lib.rs index c2591e8b1cf6b7..45da0d9b143100 100644 --- a/programs/loader-v4/src/lib.rs +++ b/programs/loader-v4/src/lib.rs @@ -1,5 +1,12 @@ -#[cfg(feature = "agave-unstable-api")] -use qualifier_attr::qualifiers; +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { solana_bincode::limited_deserialize, solana_bpf_loader_program::{deploy_program, execute}, @@ -24,7 +31,6 @@ use { std::{cell::RefCell, rc::Rc}, }; -#[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] const DEFAULT_COMPUTE_UNITS: u64 = 2_000; pub fn get_state(data: &[u8]) -> Result<&LoaderV4State, InstructionError> { diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 52c925f953aecf..7c941626e48d5c 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -7311,7 +7311,6 @@ name = "solana-loader-v4-program" version = "3.1.0" dependencies = [ "log", - "qualifier_attr", "solana-account", "solana-bincode", "solana-bpf-loader-program", diff --git a/programs/stake/Cargo.toml b/programs/stake/Cargo.toml index 7f2573e16c1042..3e7104a75a0c5c 100644 --- a/programs/stake/Cargo.toml +++ b/programs/stake/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_stake_program" +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } bincode = { workspace = true } diff --git a/programs/stake/src/lib.rs b/programs/stake/src/lib.rs index d5b792f70f970e..0abea51ec9ec7f 100644 --- a/programs/stake/src/lib.rs +++ b/programs/stake/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] #[deprecated( diff --git a/programs/system/Cargo.toml b/programs/system/Cargo.toml index f685a410c3691d..6df465cf18bf19 100644 --- a/programs/system/Cargo.toml +++ b/programs/system/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_system_program" +[features] +agave-unstable-api = [] + [dependencies] bincode = { workspace = true } log = { workspace = true } diff --git a/programs/system/src/lib.rs b/programs/system/src/lib.rs index 1911e279f364d3..b8b1338476b351 100644 --- a/programs/system/src/lib.rs +++ b/programs/system/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod system_instruction; pub mod system_processor; diff --git a/programs/vote/Cargo.toml b/programs/vote/Cargo.toml index 01d2088963dd17..9208a9efb7de8c 100644 --- a/programs/vote/Cargo.toml +++ b/programs/vote/Cargo.toml @@ -18,6 +18,7 @@ name = "solana_vote_program" [features] default = ["metrics"] +agave-unstable-api = [] frozen-abi = [ "dep:solana-frozen-abi", "dep:solana-frozen-abi-macro", diff --git a/programs/vote/src/lib.rs b/programs/vote/src/lib.rs index 280949b282d4fe..d9877c8868b3b6 100644 --- a/programs/vote/src/lib.rs +++ b/programs/vote/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] pub mod vote_processor; diff --git a/programs/zk-elgamal-proof/Cargo.toml b/programs/zk-elgamal-proof/Cargo.toml index 73004c715fa7d4..a1358061dd2ed4 100644 --- a/programs/zk-elgamal-proof/Cargo.toml +++ b/programs/zk-elgamal-proof/Cargo.toml @@ -8,6 +8,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } bytemuck = { workspace = true } diff --git a/programs/zk-elgamal-proof/src/lib.rs b/programs/zk-elgamal-proof/src/lib.rs index 17bf5ab9cdd951..b9809b81022464 100644 --- a/programs/zk-elgamal-proof/src/lib.rs +++ b/programs/zk-elgamal-proof/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![forbid(unsafe_code)] use { diff --git a/programs/zk-token-proof/Cargo.toml b/programs/zk-token-proof/Cargo.toml index e9f5f6fb8d928d..e58cb3b021289c 100644 --- a/programs/zk-token-proof/Cargo.toml +++ b/programs/zk-token-proof/Cargo.toml @@ -8,6 +8,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] agave-feature-set = { workspace = true } bytemuck = { workspace = true } diff --git a/programs/zk-token-proof/src/lib.rs b/programs/zk-token-proof/src/lib.rs index 5f5e4c8ac2af0f..4961069ec58fec 100644 --- a/programs/zk-token-proof/src/lib.rs +++ b/programs/zk-token-proof/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![forbid(unsafe_code)] // Allow deprecated warnings since this crate will be removed along with // `solana-zk-token-sdk` will be removed diff --git a/pubsub-client/Cargo.toml b/pubsub-client/Cargo.toml index 54bef1f14400d9..ef879e303877b7 100644 --- a/pubsub-client/Cargo.toml +++ b/pubsub-client/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] crossbeam-channel = { workspace = true } futures-util = { workspace = true } diff --git a/pubsub-client/src/lib.rs b/pubsub-client/src/lib.rs index d572ee53397183..a0842f53203900 100644 --- a/pubsub-client/src/lib.rs +++ b/pubsub-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod nonblocking; diff --git a/quic-client/Cargo.toml b/quic-client/Cargo.toml index 1427c56a35d235..5f4b65d5072227 100644 --- a/quic-client/Cargo.toml +++ b/quic-client/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] async-lock = { workspace = true } async-trait = { workspace = true } diff --git a/quic-client/src/lib.rs b/quic-client/src/lib.rs index 930a0cc078fbc9..70c3fcedfafca4 100644 --- a/quic-client/src/lib.rs +++ b/quic-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod nonblocking; diff --git a/rayon-threadlimit/Cargo.toml b/rayon-threadlimit/Cargo.toml index b7431f2db4907c..f357a5d2f4bc23 100644 --- a/rayon-threadlimit/Cargo.toml +++ b/rayon-threadlimit/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] log = { workspace = true } num_cpus = { workspace = true } diff --git a/rayon-threadlimit/src/lib.rs b/rayon-threadlimit/src/lib.rs index e12d3584b81d23..5f36fbd6547aec 100644 --- a/rayon-threadlimit/src/lib.rs +++ b/rayon-threadlimit/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use {log::warn, std::env}; //TODO remove this hack when rayon fixes itself diff --git a/remote-wallet/Cargo.toml b/remote-wallet/Cargo.toml index 3eebb582e32204..e7ea04635242aa 100644 --- a/remote-wallet/Cargo.toml +++ b/remote-wallet/Cargo.toml @@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] default = ["linux-static-hidraw"] +agave-unstable-api = [] linux-shared-hidraw = ["hidapi/linux-shared-hidraw"] linux-shared-libusb = ["hidapi/linux-shared-libusb"] linux-static-hidraw = ["hidapi/linux-static-hidraw"] diff --git a/remote-wallet/src/lib.rs b/remote-wallet/src/lib.rs index 2400850734b1c1..5b23fed4f114f9 100644 --- a/remote-wallet/src/lib.rs +++ b/remote-wallet/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] #![allow(dead_code)] pub mod ledger; diff --git a/reserved-account-keys/Cargo.toml b/reserved-account-keys/Cargo.toml index ac1ad6f443d9d7..fa6c6259e43ea4 100644 --- a/reserved-account-keys/Cargo.toml +++ b/reserved-account-keys/Cargo.toml @@ -15,6 +15,7 @@ all-features = true rustdoc-args = ["--cfg=docsrs"] [features] +agave-unstable-api = [] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] [dependencies] diff --git a/reserved-account-keys/src/lib.rs b/reserved-account-keys/src/lib.rs index f4a22835112d74..9a5a4f80b7e335 100644 --- a/reserved-account-keys/src/lib.rs +++ b/reserved-account-keys/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Collection of reserved account keys that cannot be write-locked by transactions. //! New reserved account keys may be added as long as they specify a feature //! gate that transitions the key into read-only at an epoch boundary. diff --git a/rpc-client-api/Cargo.toml b/rpc-client-api/Cargo.toml index 7a8a53c610bbe5..1a18f44901e2be 100644 --- a/rpc-client-api/Cargo.toml +++ b/rpc-client-api/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] anyhow = { workspace = true } jsonrpc-core = { workspace = true } diff --git a/rpc-client-api/src/lib.rs b/rpc-client-api/src/lib.rs index 1974e58ff319a4..250e420e3077d3 100644 --- a/rpc-client-api/src/lib.rs +++ b/rpc-client-api/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod client_error; diff --git a/rpc-client-nonce-utils/Cargo.toml b/rpc-client-nonce-utils/Cargo.toml index 85c732716af6a4..55eab78f8a4eda 100644 --- a/rpc-client-nonce-utils/Cargo.toml +++ b/rpc-client-nonce-utils/Cargo.toml @@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] default = [] +agave-unstable-api = [] clap = ["dep:clap", "dep:solana-clap-utils"] [dependencies] diff --git a/rpc-client-nonce-utils/src/lib.rs b/rpc-client-nonce-utils/src/lib.rs index aca27e6c993e61..d5eb9cb6d781c9 100644 --- a/rpc-client-nonce-utils/src/lib.rs +++ b/rpc-client-nonce-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Durable transaction nonce helpers. pub mod blockhash_query; diff --git a/rpc-client-types/Cargo.toml b/rpc-client-types/Cargo.toml index 38fde49f235322..7ab3f1c139f71c 100644 --- a/rpc-client-types/Cargo.toml +++ b/rpc-client-types/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] base64 = { workspace = true } bs58 = { workspace = true, features = ["std"] } diff --git a/rpc-client-types/src/lib.rs b/rpc-client-types/src/lib.rs index 86e81c1126a958..7e83fd08875096 100644 --- a/rpc-client-types/src/lib.rs +++ b/rpc-client-types/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod config; diff --git a/rpc-client/Cargo.toml b/rpc-client/Cargo.toml index 007b70ac8d29a0..f8064739f1c45b 100644 --- a/rpc-client/Cargo.toml +++ b/rpc-client/Cargo.toml @@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] default = ["spinner"] +agave-unstable-api = [] # Support rpc-client methods that feature a spinner progress bar for # command-line interfaces spinner = ["dep:indicatif"] diff --git a/rpc-client/src/lib.rs b/rpc-client/src/lib.rs index c178ee55ea7d1d..1010e7933fdc44 100644 --- a/rpc-client/src/lib.rs +++ b/rpc-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod http_sender; diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 83ac31c0c2df3f..09ba2fbfe1b177 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_rpc" [features] +agave-unstable-api = [] dev-context-only-utils = [ "solana-ledger/dev-context-only-utils", "solana-rpc/dev-context-only-utils", diff --git a/rpc/src/lib.rs b/rpc/src/lib.rs index abbc8d87a62499..72ca6de33a9ba7 100644 --- a/rpc/src/lib.rs +++ b/rpc/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] mod cluster_tpu_info; pub mod filter; diff --git a/runtime-transaction/Cargo.toml b/runtime-transaction/Cargo.toml index f9974cb37080b5..5eca8414779b97 100644 --- a/runtime-transaction/Cargo.toml +++ b/runtime-transaction/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_runtime_transaction" [features] +agave-unstable-api = [] dev-context-only-utils = ["solana-compute-budget-instruction/dev-context-only-utils"] [dependencies] diff --git a/runtime-transaction/src/lib.rs b/runtime-transaction/src/lib.rs index bc66573ce1d2bc..d01abdc7d96313 100644 --- a/runtime-transaction/src/lib.rs +++ b/runtime-transaction/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] mod instruction_data_len; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 12f0a83c14d7ff..01987edd3332f2 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_runtime" [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:solana-system-program", "solana-accounts-db/dev-context-only-utils", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index ded453ea3c3104..d189b6068e8835 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/scheduler-bindings/Cargo.toml b/scheduler-bindings/Cargo.toml index 401d2d41e781a7..05b0235b018db4 100644 --- a/scheduler-bindings/Cargo.toml +++ b/scheduler-bindings/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] [lints] diff --git a/scheduler-bindings/src/lib.rs b/scheduler-bindings/src/lib.rs index d3c56ce8b8f396..f40383bf2f5552 100644 --- a/scheduler-bindings/src/lib.rs +++ b/scheduler-bindings/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![no_std] //! Messages passed between agave and an external pack process. diff --git a/scheduling-utils/Cargo.toml b/scheduling-utils/Cargo.toml index 5efe6bc2559d18..ec6c566862c6e2 100644 --- a/scheduling-utils/Cargo.toml +++ b/scheduling-utils/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] agave-scheduler-bindings = { workspace = true } agave-transaction-view = { workspace = true } diff --git a/scheduling-utils/src/lib.rs b/scheduling-utils/src/lib.rs index 85dd917ced14e4..e69055b688deae 100644 --- a/scheduling-utils/src/lib.rs +++ b/scheduling-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod thread_aware_account_locks; #[cfg(unix)] diff --git a/send-transaction-service/Cargo.toml b/send-transaction-service/Cargo.toml index 5d23109806f354..441ced1ff11818 100644 --- a/send-transaction-service/Cargo.toml +++ b/send-transaction-service/Cargo.toml @@ -13,6 +13,7 @@ edition = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [features] +agave-unstable-api = [] dev-context-only-utils = ["solana-net-utils"] [dependencies] diff --git a/send-transaction-service/src/lib.rs b/send-transaction-service/src/lib.rs index b2c771b2384861..4222f97ebf73bd 100644 --- a/send-transaction-service/src/lib.rs +++ b/send-transaction-service/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod send_transaction_service; pub mod send_transaction_service_stats; diff --git a/snapshots/Cargo.toml b/snapshots/Cargo.toml index 8aaf28f847fcc1..265aa02af6d5d9 100644 --- a/snapshots/Cargo.toml +++ b/snapshots/Cargo.toml @@ -18,7 +18,6 @@ name = "agave_snapshots" [features] agave-unstable-api = [] -default = ["agave-unstable-api"] [dependencies] lz4 = { workspace = true } diff --git a/snapshots/src/lib.rs b/snapshots/src/lib.rs index 981a6ba521e40e..3061ac7579867c 100644 --- a/snapshots/src/lib.rs +++ b/snapshots/src/lib.rs @@ -1,4 +1,12 @@ -#![cfg(feature = "agave-unstable-api")] +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] mod archive_format; mod snapshot_interval; diff --git a/storage-bigtable/Cargo.toml b/storage-bigtable/Cargo.toml index e547d11e8dcb53..0864d17acabfb2 100644 --- a/storage-bigtable/Cargo.toml +++ b/storage-bigtable/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_storage_bigtable" +[features] +agave-unstable-api = [] + [dependencies] agave-reserved-account-keys = { workspace = true } backoff = { workspace = true, features = ["tokio"] } diff --git a/storage-bigtable/src/lib.rs b/storage-bigtable/src/lib.rs index 6967db5764f1b2..7c0b3aed5b5caa 100644 --- a/storage-bigtable/src/lib.rs +++ b/storage-bigtable/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] use { diff --git a/storage-proto/Cargo.toml b/storage-proto/Cargo.toml index 23f166efaa444e..80c067b8371d25 100644 --- a/storage-proto/Cargo.toml +++ b/storage-proto/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "solana_storage_proto" +[features] +agave-unstable-api = [] + [dependencies] bincode = { workspace = true } bs58 = { workspace = true } diff --git a/storage-proto/src/lib.rs b/storage-proto/src/lib.rs index c76b46e1bc4b51..1997e8db59c331 100644 --- a/storage-proto/src/lib.rs +++ b/storage-proto/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { serde::{Deserialize, Serialize}, solana_account_decoder::{ diff --git a/streamer/Cargo.toml b/streamer/Cargo.toml index 4a3c33a5a7c17c..bb655dbe1c1af1 100644 --- a/streamer/Cargo.toml +++ b/streamer/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_streamer" [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/streamer/src/lib.rs b/streamer/src/lib.rs index 60ee2b753f77e3..71769499a6cacd 100644 --- a/streamer/src/lib.rs +++ b/streamer/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod evicting_sender; pub mod msghdr; diff --git a/svm-callback/Cargo.toml b/svm-callback/Cargo.toml index c24bd164467c3e..37772d763c8524 100644 --- a/svm-callback/Cargo.toml +++ b/svm-callback/Cargo.toml @@ -9,6 +9,9 @@ license = { workspace = true } edition = { workspace = true } readme = false +[features] +agave-unstable-api = [] + [dependencies] solana-account = { workspace = true } solana-clock = { workspace = true } diff --git a/svm-callback/src/lib.rs b/svm-callback/src/lib.rs index 57c7afa2df5a4c..b1e16e706e614d 100644 --- a/svm-callback/src/lib.rs +++ b/svm-callback/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { solana_account::AccountSharedData, solana_clock::Slot, solana_precompile_error::PrecompileError, solana_pubkey::Pubkey, diff --git a/svm-feature-set/Cargo.toml b/svm-feature-set/Cargo.toml index c55d661d51a323..6c4b24d9022edd 100644 --- a/svm-feature-set/Cargo.toml +++ b/svm-feature-set/Cargo.toml @@ -9,6 +9,9 @@ license = { workspace = true } edition = { workspace = true } readme = false +[features] +agave-unstable-api = [] + [dependencies] [lints] diff --git a/svm-feature-set/src/lib.rs b/svm-feature-set/src/lib.rs index e66cd3bdc43843..9d4db9cdb57882 100644 --- a/svm-feature-set/src/lib.rs +++ b/svm-feature-set/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #[derive(Clone, Copy, Default)] pub struct SVMFeatureSet { pub move_precompile_verification_to_svm: bool, diff --git a/svm-log-collector/Cargo.toml b/svm-log-collector/Cargo.toml index 919bb386599f9b..70ee805d50fe3a 100644 --- a/svm-log-collector/Cargo.toml +++ b/svm-log-collector/Cargo.toml @@ -12,5 +12,8 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] log = { workspace = true } diff --git a/svm-log-collector/src/lib.rs b/svm-log-collector/src/lib.rs index 612300f8e94bfc..7ae92187973ae0 100644 --- a/svm-log-collector/src/lib.rs +++ b/svm-log-collector/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub use log; use std::{cell::RefCell, rc::Rc}; diff --git a/svm-measure/Cargo.toml b/svm-measure/Cargo.toml index eee2c23b37ec6d..e415a31acd318c 100644 --- a/svm-measure/Cargo.toml +++ b/svm-measure/Cargo.toml @@ -11,3 +11,6 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] + +[features] +agave-unstable-api = [] diff --git a/svm-measure/src/lib.rs b/svm-measure/src/lib.rs index a1c86feb89a43f..bb34e59763af42 100644 --- a/svm-measure/src/lib.rs +++ b/svm-measure/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod macros; pub mod measure; diff --git a/svm-rent-calculator/Cargo.toml b/svm-rent-calculator/Cargo.toml index 1695328298ae47..865a67b00f410a 100644 --- a/svm-rent-calculator/Cargo.toml +++ b/svm-rent-calculator/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] solana-account = { workspace = true } solana-pubkey = { workspace = true } diff --git a/svm-rent-calculator/src/lib.rs b/svm-rent-calculator/src/lib.rs index 94277bb5bbd6f9..9287ad95fe7108 100644 --- a/svm-rent-calculator/src/lib.rs +++ b/svm-rent-calculator/src/lib.rs @@ -1,3 +1,11 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable \ + API. From v4.0.0 onward, the `agave-unstable-api` crate feature must be specified \ + to acknowledge use of an interface that may break without warning." +))] //! Solana SVM Rent Calculator. //! //! Rent management for SVM. diff --git a/svm-timings/Cargo.toml b/svm-timings/Cargo.toml index c0a59118777917..84e0a071d39f33 100644 --- a/svm-timings/Cargo.toml +++ b/svm-timings/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] eager = { workspace = true } enum-iterator = { workspace = true } diff --git a/svm-timings/src/lib.rs b/svm-timings/src/lib.rs index 8032fa9c73ad73..98515fe04760cd 100644 --- a/svm-timings/src/lib.rs +++ b/svm-timings/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #[macro_use] extern crate eager; use { diff --git a/svm-transaction/Cargo.toml b/svm-transaction/Cargo.toml index 629b788584b185..0fa69fa858ad9e 100644 --- a/svm-transaction/Cargo.toml +++ b/svm-transaction/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] solana-hash = { workspace = true } solana-message = { workspace = true } diff --git a/svm-transaction/src/lib.rs b/svm-transaction/src/lib.rs index 1929f2e634d58e..532205262cb08c 100644 --- a/svm-transaction/src/lib.rs +++ b/svm-transaction/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod instruction; pub mod message_address_table_lookup; pub mod svm_message; diff --git a/svm-type-overrides/Cargo.toml b/svm-type-overrides/Cargo.toml index 1159c6b6ae8d6b..93a70c79b0ffd7 100644 --- a/svm-type-overrides/Cargo.toml +++ b/svm-type-overrides/Cargo.toml @@ -9,6 +9,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] shuttle-test = ["dep:shuttle"] executor = ["dep:futures"] diff --git a/svm-type-overrides/src/lib.rs b/svm-type-overrides/src/lib.rs index c6573956336943..c35cd4f99f96cb 100644 --- a/svm-type-overrides/src/lib.rs +++ b/svm-type-overrides/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! This lib contains both standard imports and imports shuttle. //! Shuttle is a Rust crate that facilitates multithreaded testing. It has its own scheduler //! and can efficiently detect bugs in concurrent code. The downside is that we need to replace diff --git a/svm/Cargo.toml b/svm/Cargo.toml index c31eee29231e95..b5593f009e6049 100644 --- a/svm/Cargo.toml +++ b/svm/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_svm" [features] +agave-unstable-api = [] dev-context-only-utils = [ "dep:qualifier_attr", "solana-program-runtime/dev-context-only-utils", diff --git a/svm/src/lib.rs b/svm/src/lib.rs index f6f018938ebc80..c8aba822a3ac5a 100644 --- a/svm/src/lib.rs +++ b/svm/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/syscalls/Cargo.toml b/syscalls/Cargo.toml index 55758f2e632555..73f1d90fe12668 100644 --- a/syscalls/Cargo.toml +++ b/syscalls/Cargo.toml @@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] default = ["metrics"] +agave-unstable-api = [] metrics = ["solana-program-runtime/metrics"] shuttle-test = [ "solana-program-runtime/shuttle-test", diff --git a/syscalls/src/lib.rs b/syscalls/src/lib.rs index 323367ac8f5ccc..0c01b2da4157b2 100644 --- a/syscalls/src/lib.rs +++ b/syscalls/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub use self::{ cpi::{SyscallInvokeSignedC, SyscallInvokeSignedRust}, logging::{ diff --git a/thread-manager/Cargo.toml b/thread-manager/Cargo.toml index 1482012b578bfd..2a09aec5651883 100644 --- a/thread-manager/Cargo.toml +++ b/thread-manager/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] @@ -27,7 +28,7 @@ tokio = { workspace = true, features = ["time", "rt-multi-thread"] } affinity = "0.1.2" [dev-dependencies] -agave-thread-manager = { path = ".", features = ["dev-context-only-utils"] } +agave-thread-manager = { path = ".", features = ["agave-unstable-api", "dev-context-only-utils"] } axum = { workspace = true } env_logger = { workspace = true } hyper = { workspace = true, features = ["http1", "client", "stream", "tcp"] } diff --git a/thread-manager/src/lib.rs b/thread-manager/src/lib.rs index 3b120d7b4b7588..3ad426c30f27a0 100644 --- a/thread-manager/src/lib.rs +++ b/thread-manager/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { anyhow::Ok, serde::{Deserialize, Serialize}, diff --git a/tls-utils/Cargo.toml b/tls-utils/Cargo.toml index a77bb65b1994a5..6afd2b351f3a12 100644 --- a/tls-utils/Cargo.toml +++ b/tls-utils/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] rustls = { workspace = true, features = ["ring"] } solana-keypair = { workspace = true } diff --git a/tls-utils/src/lib.rs b/tls-utils/src/lib.rs index 3f20152cc894a0..d61c22e8f8c0e3 100644 --- a/tls-utils/src/lib.rs +++ b/tls-utils/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Collection of TLS related code fragments that end up popping up everywhere where quic is used. //! Aggregated here to avoid bugs due to conflicting implementations of the same functionality. diff --git a/tps-client/Cargo.toml b/tps-client/Cargo.toml index f3a98454d4f9a4..8d8ffbf10cf075 100644 --- a/tps-client/Cargo.toml +++ b/tps-client/Cargo.toml @@ -14,6 +14,7 @@ all-features = true rustdoc-args = ["--cfg=docsrs"] [features] +agave-unstable-api = [] bank-client = ["dep:solana-client-traits", "dep:solana-runtime"] dev-context-only-utils = [] diff --git a/tps-client/src/lib.rs b/tps-client/src/lib.rs index c1d0fd601fd9d1..27e4df9c5fd1d7 100644 --- a/tps-client/src/lib.rs +++ b/tps-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(docsrs, feature(doc_auto_cfg))] use { log::debug, diff --git a/tpu-client-next/Cargo.toml b/tpu-client-next/Cargo.toml index fa3c61316fcd3e..6bae9f2c77b7dd 100644 --- a/tpu-client-next/Cargo.toml +++ b/tpu-client-next/Cargo.toml @@ -12,8 +12,8 @@ edition = { workspace = true } targets = ["x86_64-unknown-linux-gnu"] [features] -agave-unstable-api = ["dep:qualifier_attr"] default = ["log"] +agave-unstable-api = [] log = ["dep:log"] metrics = ["dep:solana-metrics"] tracing = ["dep:tracing"] @@ -22,7 +22,6 @@ tracing = ["dep:tracing"] async-trait = { workspace = true } log = { workspace = true, optional = true } lru = { workspace = true } -qualifier_attr = { workspace = true, optional = true } quinn = { workspace = true } rustls = { workspace = true } solana-clock = { workspace = true } diff --git a/tpu-client-next/src/connection_workers_scheduler.rs b/tpu-client-next/src/connection_workers_scheduler.rs index 7097e40bcb2b12..af5b75bd3af202 100644 --- a/tpu-client-next/src/connection_workers_scheduler.rs +++ b/tpu-client-next/src/connection_workers_scheduler.rs @@ -2,7 +2,6 @@ //! to the upcoming leaders. #[cfg(feature = "agave-unstable-api")] -use qualifier_attr::qualifiers; use { super::leader_updater::LeaderUpdater, crate::{ @@ -305,7 +304,6 @@ impl ConnectionWorkersScheduler { } /// Sets up the QUIC endpoint for the scheduler to handle connections. -#[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] fn setup_endpoint( bind: BindTarget, stake_identity: Option, @@ -366,7 +364,6 @@ impl WorkersBroadcaster for NonblockingBroadcaster { /// /// This function selects up to `send_fanout` addresses from the `leaders` list, ensuring that /// only unique addresses are included while maintaining their original order. -#[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] pub fn extract_send_leaders(leaders: &[SocketAddr], send_fanout: usize) -> Vec { let send_count = send_fanout.min(leaders.len()); remove_duplicates(&leaders[..send_count]) diff --git a/tpu-client-next/src/lib.rs b/tpu-client-next/src/lib.rs index 4bb09c91c67932..7f2dc19c85dccd 100644 --- a/tpu-client-next/src/lib.rs +++ b/tpu-client-next/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! # Feature flags //! //! Tpu-client-next supports three features: diff --git a/tpu-client-next/src/workers_cache.rs b/tpu-client-next/src/workers_cache.rs index 838ceecd07623c..7b4abcb3518b9a 100644 --- a/tpu-client-next/src/workers_cache.rs +++ b/tpu-client-next/src/workers_cache.rs @@ -3,7 +3,6 @@ //! batches, and gathering send transaction statistics. #[cfg(feature = "agave-unstable-api")] -use qualifier_attr::qualifiers; use { crate::{ connection_worker::ConnectionWorker, @@ -81,7 +80,6 @@ impl WorkerInfo { } /// Spawns a worker to handle communication with a given peer. -#[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] pub(crate) fn spawn_worker( endpoint: &Endpoint, peer: &SocketAddr, @@ -141,7 +139,6 @@ pub enum WorkersCacheError { } impl WorkersCache { - #[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] pub(crate) fn new(capacity: usize, cancel: CancellationToken) -> Self { Self { workers: LruCache::new(capacity), @@ -155,7 +152,6 @@ impl WorkersCache { self.workers.contains(peer) } - #[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] pub(crate) fn push( &mut self, leader: SocketAddr, @@ -320,7 +316,6 @@ impl WorkersCache { /// /// The method awaits the completion of all shutdown tasks, ensuring that /// each worker is properly terminated. - #[cfg_attr(feature = "agave-unstable-api", qualifiers(pub))] pub(crate) async fn shutdown(&mut self) { // Interrupt any outstanding `send_transactions()` calls. self.cancel.cancel(); diff --git a/tpu-client/Cargo.toml b/tpu-client/Cargo.toml index ec06baa4063942..539c9a4fe108dc 100644 --- a/tpu-client/Cargo.toml +++ b/tpu-client/Cargo.toml @@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"] [features] default = ["spinner"] +agave-unstable-api = [] # Support tpu-client methods that feature a spinner progress bar for # command-line interfaces spinner = [ diff --git a/tpu-client/src/lib.rs b/tpu-client/src/lib.rs index db01a6f0bb4635..d43b681ea86e83 100644 --- a/tpu-client/src/lib.rs +++ b/tpu-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod nonblocking; diff --git a/transaction-context/Cargo.toml b/transaction-context/Cargo.toml index c5c1d21eef607e..4bc4c5fed630f6 100644 --- a/transaction-context/Cargo.toml +++ b/transaction-context/Cargo.toml @@ -15,6 +15,7 @@ all-features = true rustdoc-args = ["--cfg=docsrs"] [features] +agave-unstable-api = [] bincode = ["dep:bincode", "serde", "solana-account/bincode"] dev-context-only-utils = ["bincode", "solana-account/dev-context-only-utils", "dep:qualifier_attr"] serde = ["serde/derive"] diff --git a/transaction-context/src/lib.rs b/transaction-context/src/lib.rs index 1ff1da08d3b46a..cc6e4206f1922b 100644 --- a/transaction-context/src/lib.rs +++ b/transaction-context/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Data shared between program runtime and built-in programs as well as SBF programs. #![deny(clippy::indexing_slicing)] #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/transaction-metrics-tracker/Cargo.toml b/transaction-metrics-tracker/Cargo.toml index 74c897122a38dd..80df945fb076c3 100644 --- a/transaction-metrics-tracker/Cargo.toml +++ b/transaction-metrics-tracker/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] base64 = { workspace = true } bincode = { workspace = true } diff --git a/transaction-metrics-tracker/src/lib.rs b/transaction-metrics-tracker/src/lib.rs index c9c3a5d5b4ef4b..a8255f17fb6f97 100644 --- a/transaction-metrics-tracker/src/lib.rs +++ b/transaction-metrics-tracker/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] use { log::*, rand::Rng, diff --git a/transaction-status-client-types/Cargo.toml b/transaction-status-client-types/Cargo.toml index e3bda10e8182d6..51a7d197eddc04 100644 --- a/transaction-status-client-types/Cargo.toml +++ b/transaction-status-client-types/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] base64 = { workspace = true } bincode = { workspace = true } diff --git a/transaction-status-client-types/src/lib.rs b/transaction-status-client-types/src/lib.rs index fdc68324e746e0..e7f62ad2ebfa07 100644 --- a/transaction-status-client-types/src/lib.rs +++ b/transaction-status-client-types/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Core types for solana-transaction-status use { crate::option_serializer::OptionSerializer, diff --git a/transaction-status/Cargo.toml b/transaction-status/Cargo.toml index fe56bc13ac7c28..d1b05ac65527e7 100644 --- a/transaction-status/Cargo.toml +++ b/transaction-status/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] +[features] +agave-unstable-api = [] + [dependencies] Inflector = { workspace = true } agave-reserved-account-keys = { workspace = true } diff --git a/transaction-status/src/lib.rs b/transaction-status/src/lib.rs index f1afd1eb73961c..d0dd451f8cc8e1 100644 --- a/transaction-status/src/lib.rs +++ b/transaction-status/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub use { diff --git a/transaction-view/Cargo.toml b/transaction-view/Cargo.toml index 8216725548ea45..3c64ae7baf7cc0 100644 --- a/transaction-view/Cargo.toml +++ b/transaction-view/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/transaction-view/src/lib.rs b/transaction-view/src/lib.rs index 025b6ed8130e49..41ba02d61bf763 100644 --- a/transaction-view/src/lib.rs +++ b/transaction-view/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] // Parsing helpers only need to be public for benchmarks. #[cfg(feature = "dev-context-only-utils")] pub mod bytes; diff --git a/turbine/src/lib.rs b/turbine/src/lib.rs index 50c68d15e98dd3..f716c6153e7d34 100644 --- a/turbine/src/lib.rs +++ b/turbine/src/lib.rs @@ -1,31 +1,31 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] -#[cfg(feature = "agave-unstable-api")] mod addr_cache; -#[cfg(feature = "agave-unstable-api")] pub mod broadcast_stage; -#[cfg(feature = "agave-unstable-api")] pub mod cluster_nodes; -#[cfg(feature = "agave-unstable-api")] pub mod quic_endpoint; -#[cfg(feature = "agave-unstable-api")] pub mod retransmit_stage; -#[cfg(feature = "agave-unstable-api")] pub mod sigverify_shreds; -#[cfg(feature = "agave-unstable-api")] pub mod xdp; -#[cfg(feature = "agave-unstable-api")] #[macro_use] extern crate log; -#[cfg(feature = "agave-unstable-api")] #[macro_use] extern crate solana_metrics; diff --git a/udp-client/Cargo.toml b/udp-client/Cargo.toml index da2da691cfaf85..09a6960da7e0d9 100644 --- a/udp-client/Cargo.toml +++ b/udp-client/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/udp-client/src/lib.rs b/udp-client/src/lib.rs index 163af3043724e0..10de3b62dadcd0 100644 --- a/udp-client/src/lib.rs +++ b/udp-client/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(clippy::arithmetic_side_effects)] pub mod nonblocking; diff --git a/unified-scheduler-logic/Cargo.toml b/unified-scheduler-logic/Cargo.toml index 6fd5ef891eb40a..50cebd556ec437 100644 --- a/unified-scheduler-logic/Cargo.toml +++ b/unified-scheduler-logic/Cargo.toml @@ -9,6 +9,9 @@ homepage = { workspace = true } license = { workspace = true } edition = { workspace = true } +[features] +agave-unstable-api = [] + [dependencies] assert_matches = { workspace = true } solana-pubkey = { workspace = true } diff --git a/unified-scheduler-logic/src/lib.rs b/unified-scheduler-logic/src/lib.rs index cc09b5ce6ff23c..cbc1d69667570a 100644 --- a/unified-scheduler-logic/src/lib.rs +++ b/unified-scheduler-logic/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![allow(rustdoc::private_intra_doc_links)] //! The task (transaction) scheduling code for the unified scheduler //! diff --git a/unified-scheduler-pool/Cargo.toml b/unified-scheduler-pool/Cargo.toml index 4996870ea4c90e..359c1e43434b6c 100644 --- a/unified-scheduler-pool/Cargo.toml +++ b/unified-scheduler-pool/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/unified-scheduler-pool/src/lib.rs b/unified-scheduler-pool/src/lib.rs index d92b7eb82b470f..c617e54de2f825 100644 --- a/unified-scheduler-pool/src/lib.rs +++ b/unified-scheduler-pool/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Transaction scheduling code. //! //! This crate implements 3 solana-runtime traits [`InstalledScheduler`], [`UninstalledScheduler`] diff --git a/verified-packet-receiver/Cargo.toml b/verified-packet-receiver/Cargo.toml index 166a0fc0497252..673d797e99c5fc 100644 --- a/verified-packet-receiver/Cargo.toml +++ b/verified-packet-receiver/Cargo.toml @@ -17,6 +17,9 @@ targets = ["x86_64-unknown-linux-gnu"] crate-type = ["lib"] name = "agave_verified_packet_receiver" +[features] +agave-unstable-api = [] + [dependencies] solana-perf = { workspace = true } solana-streamer = { workspace = true } diff --git a/verified-packet-receiver/src/lib.rs b/verified-packet-receiver/src/lib.rs index 4c0db7eaa35a61..b3e715e3b56740 100644 --- a/verified-packet-receiver/src/lib.rs +++ b/verified-packet-receiver/src/lib.rs @@ -1 +1,10 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod receiver; diff --git a/version/Cargo.toml b/version/Cargo.toml index 9033498dffdd11..aa5b17e372a984 100644 --- a/version/Cargo.toml +++ b/version/Cargo.toml @@ -16,6 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"] name = "solana_version" [features] +agave-unstable-api = [] dummy-for-ci-check = [] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] diff --git a/version/src/lib.rs b/version/src/lib.rs index 4b6f6528ef9593..138e9ce6f1dd58 100644 --- a/version/src/lib.rs +++ b/version/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] pub use self::legacy::{LegacyVersion1, LegacyVersion2}; diff --git a/vortexor/Cargo.toml b/vortexor/Cargo.toml index e2afbc9339cd5c..83cf237331eeca 100644 --- a/vortexor/Cargo.toml +++ b/vortexor/Cargo.toml @@ -19,6 +19,8 @@ crate-type = ["lib"] name = "solana_vortexor" [features] +default = ["agave-unstable-api"] +agave-unstable-api = [] dev-context-only-utils = [] [dependencies] diff --git a/vortexor/src/lib.rs b/vortexor/src/lib.rs index 3434b9cdcc00ec..104fb15052da3e 100644 --- a/vortexor/src/lib.rs +++ b/vortexor/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub mod cli; pub mod rpc_load_balancer; pub mod sender; diff --git a/vote/Cargo.toml b/vote/Cargo.toml index 9758222ec0391b..243d7f1c002dc9 100644 --- a/vote/Cargo.toml +++ b/vote/Cargo.toml @@ -17,6 +17,7 @@ crate-type = ["lib"] name = "solana_vote" [features] +agave-unstable-api = [] dev-context-only-utils = ["dep:rand", "dep:bincode"] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] diff --git a/vote/src/lib.rs b/vote/src/lib.rs index 62672bc5c3436d..8131e5204f837e 100644 --- a/vote/src/lib.rs +++ b/vote/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![allow(clippy::arithmetic_side_effects)] diff --git a/votor-messages/Cargo.toml b/votor-messages/Cargo.toml index 5ebb07474b4a87..57d6185dcb1a08 100644 --- a/votor-messages/Cargo.toml +++ b/votor-messages/Cargo.toml @@ -10,6 +10,7 @@ license = { workspace = true } edition = { workspace = true } [features] +agave-unstable-api = [] frozen-abi = ["dep:solana-frozen-abi", "dep:solana-frozen-abi-macro"] [dependencies] diff --git a/votor-messages/src/lib.rs b/votor-messages/src/lib.rs index ba2ee9995d3c7c..1b99a92566d014 100644 --- a/votor-messages/src/lib.rs +++ b/votor-messages/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] //! Alpenglow vote message types #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #![deny(missing_docs)] diff --git a/votor/Cargo.toml b/votor/Cargo.toml index 2fc2fec1f0a5cb..a447123974ec7f 100644 --- a/votor/Cargo.toml +++ b/votor/Cargo.toml @@ -11,7 +11,6 @@ edition = { workspace = true } [features] agave-unstable-api = [] -default = ["agave-unstable-api"] dev-context-only-utils = ["solana-runtime/dev-context-only-utils"] frozen-abi = [ "dep:solana-frozen-abi", diff --git a/votor/src/lib.rs b/votor/src/lib.rs index 57b664116ba66d..c285e0e8a8bdb3 100644 --- a/votor/src/lib.rs +++ b/votor/src/lib.rs @@ -1,4 +1,12 @@ -#![cfg(feature = "agave-unstable-api")] +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] #![cfg_attr(feature = "frozen-abi", feature(min_specialization))] #[macro_use] diff --git a/wen-restart/Cargo.toml b/wen-restart/Cargo.toml index 10862793309512..ed73f1f74408d6 100644 --- a/wen-restart/Cargo.toml +++ b/wen-restart/Cargo.toml @@ -16,6 +16,9 @@ targets = ["x86_64-unknown-linux-gnu"] [lib] name = "solana_wen_restart" +[features] +agave-unstable-api = [] + [dependencies] anyhow = { workspace = true } log = { workspace = true } diff --git a/wen-restart/src/lib.rs b/wen-restart/src/lib.rs index d798cae1313ef4..ff357baa182e74 100644 --- a/wen-restart/src/lib.rs +++ b/wen-restart/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] pub(crate) mod solana { pub(crate) mod wen_restart_proto { include!(concat!(env!("OUT_DIR"), "/solana.wen_restart_proto.rs")); diff --git a/xdp/Cargo.toml b/xdp/Cargo.toml index e68455291f536a..41016b30f5de15 100644 --- a/xdp/Cargo.toml +++ b/xdp/Cargo.toml @@ -8,6 +8,9 @@ license = { workspace = true } edition = { workspace = true } publish = true +[features] +agave-unstable-api = [] + [dependencies] crossbeam-channel = { workspace = true } libc = { workspace = true } diff --git a/xdp/src/lib.rs b/xdp/src/lib.rs index f3afcc128b816b..70f24eed07b942 100644 --- a/xdp/src/lib.rs +++ b/xdp/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] // Activate some of the Rust 2024 lints to make the future migration easier. #![warn(if_let_rescope)] #![warn(keyword_idents_2024)] diff --git a/zk-token-sdk/Cargo.toml b/zk-token-sdk/Cargo.toml index 132704afc3f96c..593aaa38ec64ee 100644 --- a/zk-token-sdk/Cargo.toml +++ b/zk-token-sdk/Cargo.toml @@ -12,6 +12,9 @@ edition = { workspace = true } [lib] crate-type = ["cdylib", "rlib"] +[features] +agave-unstable-api = [] + [dependencies] base64 = { workspace = true } bytemuck = { workspace = true } diff --git a/zk-token-sdk/src/lib.rs b/zk-token-sdk/src/lib.rs index cd9467a0a143d4..67444c0dfa752f 100644 --- a/zk-token-sdk/src/lib.rs +++ b/zk-token-sdk/src/lib.rs @@ -1,3 +1,12 @@ +#![cfg_attr( + not(feature = "agave-unstable-api"), + deprecated( + since = "3.1.0", + note = "This crate has been marked for formal inclusion in the Agave Unstable API. From \ + v4.0.0 onward, the `agave-unstable-api` crate feature must be specified to \ + acknowledge use of an interface that may break without warning." + ) +)] // Deprecate the crate #![deprecated( since = "3.0.0",