diff --git a/Cargo.lock b/Cargo.lock index c41e0564..b96483dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1304,7 +1304,7 @@ dependencies = [ [[package]] name = "garage" -version = "0.10.0" +version = "1.0.0" dependencies = [ "assert-json-diff", "async-trait", @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "garage_api" -version = "0.10.0" +version = "1.0.0" dependencies = [ "aes-gcm", "argon2", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "garage_block" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-compression", @@ -1442,7 +1442,7 @@ dependencies = [ [[package]] name = "garage_db" -version = "0.10.0" +version = "1.0.0" dependencies = [ "err-derive", "heed", @@ -1456,7 +1456,7 @@ dependencies = [ [[package]] name = "garage_model" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-trait", @@ -1486,7 +1486,7 @@ dependencies = [ [[package]] name = "garage_net" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-trait", @@ -1512,7 +1512,7 @@ dependencies = [ [[package]] name = "garage_rpc" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-trait", @@ -1547,7 +1547,7 @@ dependencies = [ [[package]] name = "garage_table" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-trait", @@ -1569,7 +1569,7 @@ dependencies = [ [[package]] name = "garage_util" -version = "0.10.0" +version = "1.0.0" dependencies = [ "arc-swap", "async-trait", @@ -1603,7 +1603,7 @@ dependencies = [ [[package]] name = "garage_web" -version = "0.10.0" +version = "1.0.0" dependencies = [ "err-derive", "futures", diff --git a/Cargo.nix b/Cargo.nix index bb852806..e0189cdd 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -34,7 +34,7 @@ args@{ ignoreLockHash, }: let - nixifiedLockHash = "1ef5e578c148e63bdc6491d497aba66b38dcf011779d417228906ce7b19d55f4"; + nixifiedLockHash = "1ccd5eb25a83962821e0e9da4ce6df31717b2b97a5b3a0c80c9e0e0759710143"; workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc; currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock); lockHashIgnored = if ignoreLockHash @@ -58,17 +58,17 @@ in { cargo2nixVersion = "0.11.0"; workspace = { - garage_db = rustPackages.unknown.garage_db."0.10.0"; - garage_util = rustPackages.unknown.garage_util."0.10.0"; - garage_net = rustPackages.unknown.garage_net."0.10.0"; - garage_rpc = rustPackages.unknown.garage_rpc."0.10.0"; + garage_db = rustPackages.unknown.garage_db."1.0.0"; + garage_util = rustPackages.unknown.garage_util."1.0.0"; + garage_net = rustPackages.unknown.garage_net."1.0.0"; + garage_rpc = rustPackages.unknown.garage_rpc."1.0.0"; format_table = rustPackages.unknown.format_table."0.1.1"; - garage_table = rustPackages.unknown.garage_table."0.10.0"; - garage_block = rustPackages.unknown.garage_block."0.10.0"; - garage_model = rustPackages.unknown.garage_model."0.10.0"; - garage_api = rustPackages.unknown.garage_api."0.10.0"; - garage_web = rustPackages.unknown.garage_web."0.10.0"; - garage = rustPackages.unknown.garage."0.10.0"; + garage_table = rustPackages.unknown.garage_table."1.0.0"; + garage_block = rustPackages.unknown.garage_block."1.0.0"; + garage_model = rustPackages.unknown.garage_model."1.0.0"; + garage_api = rustPackages.unknown.garage_api."1.0.0"; + garage_web = rustPackages.unknown.garage_web."1.0.0"; + garage = rustPackages.unknown.garage."1.0.0"; k2v-client = rustPackages.unknown.k2v-client."0.0.4"; }; "registry+https://github.com/rust-lang/crates.io-index".addr2line."0.21.0" = overridableMkRustCrate (profileName: rec { @@ -1910,9 +1910,9 @@ in }; }); - "unknown".garage."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/garage"); features = builtins.concatLists [ @@ -1940,15 +1940,15 @@ in format_table = (rustPackages."unknown".format_table."0.1.1" { inherit profileName; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_api = (rustPackages."unknown".garage_api."0.10.0" { inherit profileName; }).out; - garage_block = (rustPackages."unknown".garage_block."0.10.0" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_model = (rustPackages."unknown".garage_model."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; - garage_rpc = (rustPackages."unknown".garage_rpc."0.10.0" { inherit profileName; }).out; - garage_table = (rustPackages."unknown".garage_table."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; - garage_web = (rustPackages."unknown".garage_web."0.10.0" { inherit profileName; }).out; + garage_api = (rustPackages."unknown".garage_api."1.0.0" { inherit profileName; }).out; + garage_block = (rustPackages."unknown".garage_block."1.0.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_model = (rustPackages."unknown".garage_model."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; + garage_rpc = (rustPackages."unknown".garage_rpc."1.0.0" { inherit profileName; }).out; + garage_table = (rustPackages."unknown".garage_table."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; + garage_web = (rustPackages."unknown".garage_web."1.0.0" { inherit profileName; }).out; git_version = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".git-version."0.3.9" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; sodiumoxide = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".kuska-sodiumoxide."0.2.5-0" { inherit profileName; }).out; @@ -1988,9 +1988,9 @@ in }; }); - "unknown".garage_api."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_api."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_api"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/api"); features = builtins.concatLists [ @@ -2014,12 +2014,12 @@ in form_urlencoded = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".form_urlencoded."1.2.1" { inherit profileName; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_block = (rustPackages."unknown".garage_block."0.10.0" { inherit profileName; }).out; - garage_model = (rustPackages."unknown".garage_model."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; - garage_rpc = (rustPackages."unknown".garage_rpc."0.10.0" { inherit profileName; }).out; - garage_table = (rustPackages."unknown".garage_table."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_block = (rustPackages."unknown".garage_block."1.0.0" { inherit profileName; }).out; + garage_model = (rustPackages."unknown".garage_model."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; + garage_rpc = (rustPackages."unknown".garage_rpc."1.0.0" { inherit profileName; }).out; + garage_table = (rustPackages."unknown".garage_table."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; hmac = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hmac."0.12.1" { inherit profileName; }).out; http = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.0.0" { inherit profileName; }).out; @@ -2052,9 +2052,9 @@ in }; }); - "unknown".garage_block."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_block."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_block"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/block"); features = builtins.concatLists [ @@ -2068,11 +2068,11 @@ in bytesize = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytesize."1.3.0" { inherit profileName; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; - garage_rpc = (rustPackages."unknown".garage_rpc."0.10.0" { inherit profileName; }).out; - garage_table = (rustPackages."unknown".garage_table."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; + garage_rpc = (rustPackages."unknown".garage_rpc."1.0.0" { inherit profileName; }).out; + garage_table = (rustPackages."unknown".garage_table."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; opentelemetry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".opentelemetry."0.17.0" { inherit profileName; }).out; rand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rand."0.8.5" { inherit profileName; }).out; @@ -2085,9 +2085,9 @@ in }; }); - "unknown".garage_db."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_db."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_db"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/db"); features = builtins.concatLists [ @@ -2114,9 +2114,9 @@ in }; }); - "unknown".garage_model."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_model."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_model"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/model"); features = builtins.concatLists [ @@ -2134,12 +2134,12 @@ in err_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".err-derive."0.3.1" { profileName = "__noProfile"; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_block = (rustPackages."unknown".garage_block."0.10.0" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; - garage_rpc = (rustPackages."unknown".garage_rpc."0.10.0" { inherit profileName; }).out; - garage_table = (rustPackages."unknown".garage_table."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_block = (rustPackages."unknown".garage_block."1.0.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; + garage_rpc = (rustPackages."unknown".garage_rpc."1.0.0" { inherit profileName; }).out; + garage_table = (rustPackages."unknown".garage_table."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; http = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.0.0" { inherit profileName; }).out; opentelemetry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".opentelemetry."0.17.0" { inherit profileName; }).out; @@ -2153,9 +2153,9 @@ in }; }); - "unknown".garage_net."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_net."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_net"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/net"); features = builtins.concatLists [ @@ -2190,9 +2190,9 @@ in }; }); - "unknown".garage_rpc."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_rpc."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_rpc"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/rpc"); features = builtins.concatLists [ @@ -2214,9 +2214,9 @@ in format_table = (rustPackages."unknown".format_table."0.1.1" { inherit profileName; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; gethostname = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gethostname."0.4.3" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; itertools = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itertools."0.12.1" { inherit profileName; }).out; @@ -2238,9 +2238,9 @@ in }; }); - "unknown".garage_table."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_table."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_table"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/table"); dependencies = { @@ -2249,9 +2249,9 @@ in bytes = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."1.5.0" { inherit profileName; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; futures_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.30" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_rpc = (rustPackages."unknown".garage_rpc."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_rpc = (rustPackages."unknown".garage_rpc."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; hexdump = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hexdump."0.1.1" { inherit profileName; }).out; opentelemetry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".opentelemetry."0.17.0" { inherit profileName; }).out; @@ -2263,9 +2263,9 @@ in }; }); - "unknown".garage_util."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_util."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_util"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/util"); features = builtins.concatLists [ @@ -2281,8 +2281,8 @@ in digest = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".digest."0.10.7" { inherit profileName; }).out; err_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".err-derive."0.3.1" { profileName = "__noProfile"; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; - garage_db = (rustPackages."unknown".garage_db."0.10.0" { inherit profileName; }).out; - garage_net = (rustPackages."unknown".garage_net."0.10.0" { inherit profileName; }).out; + garage_db = (rustPackages."unknown".garage_db."1.0.0" { inherit profileName; }).out; + garage_net = (rustPackages."unknown".garage_net."1.0.0" { inherit profileName; }).out; hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hex."0.4.3" { inherit profileName; }).out; hexdump = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hexdump."0.1.1" { inherit profileName; }).out; http = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.0.0" { inherit profileName; }).out; @@ -2307,18 +2307,18 @@ in }; }); - "unknown".garage_web."0.10.0" = overridableMkRustCrate (profileName: rec { + "unknown".garage_web."1.0.0" = overridableMkRustCrate (profileName: rec { name = "garage_web"; - version = "0.10.0"; + version = "1.0.0"; registry = "unknown"; src = fetchCrateLocal (workspaceSrc + "/src/web"); dependencies = { err_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".err-derive."0.3.1" { profileName = "__noProfile"; }).out; futures = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.30" { inherit profileName; }).out; - garage_api = (rustPackages."unknown".garage_api."0.10.0" { inherit profileName; }).out; - garage_model = (rustPackages."unknown".garage_model."0.10.0" { inherit profileName; }).out; - garage_table = (rustPackages."unknown".garage_table."0.10.0" { inherit profileName; }).out; - garage_util = (rustPackages."unknown".garage_util."0.10.0" { inherit profileName; }).out; + garage_api = (rustPackages."unknown".garage_api."1.0.0" { inherit profileName; }).out; + garage_model = (rustPackages."unknown".garage_model."1.0.0" { inherit profileName; }).out; + garage_table = (rustPackages."unknown".garage_table."1.0.0" { inherit profileName; }).out; + garage_util = (rustPackages."unknown".garage_util."1.0.0" { inherit profileName; }).out; http = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."1.0.0" { inherit profileName; }).out; http_body_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".http-body-util."0.1.0" { inherit profileName; }).out; hyper = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hyper."1.1.0" { inherit profileName; }).out; diff --git a/Cargo.toml b/Cargo.toml index c0aad2d0..b8840a91 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,15 +21,15 @@ default-members = ["src/garage"] # Internal Garage crates format_table = { version = "0.1.1", path = "src/format-table" } -garage_api = { version = "0.10.0", path = "src/api" } -garage_block = { version = "0.10.0", path = "src/block" } -garage_db = { version = "0.10.0", path = "src/db", default-features = false } -garage_model = { version = "0.10.0", path = "src/model", default-features = false } -garage_net = { version = "0.10.0", path = "src/net" } -garage_rpc = { version = "0.10.0", path = "src/rpc" } -garage_table = { version = "0.10.0", path = "src/table" } -garage_util = { version = "0.10.0", path = "src/util" } -garage_web = { version = "0.10.0", path = "src/web" } +garage_api = { version = "1.0.0", path = "src/api" } +garage_block = { version = "1.0.0", path = "src/block" } +garage_db = { version = "1.0.0", path = "src/db", default-features = false } +garage_model = { version = "1.0.0", path = "src/model", default-features = false } +garage_net = { version = "1.0.0", path = "src/net" } +garage_rpc = { version = "1.0.0", path = "src/rpc" } +garage_table = { version = "1.0.0", path = "src/table" } +garage_util = { version = "1.0.0", path = "src/util" } +garage_web = { version = "1.0.0", path = "src/web" } k2v-client = { version = "0.0.4", path = "src/k2v-client" } # External crates from crates.io diff --git a/doc/book/cookbook/real-world.md b/doc/book/cookbook/real-world.md index 59a5a7b6..7dba784d 100644 --- a/doc/book/cookbook/real-world.md +++ b/doc/book/cookbook/real-world.md @@ -96,14 +96,14 @@ to store 2 TB of data in total. ## Get a Docker image Our docker image is currently named `dxflrs/garage` and is stored on the [Docker Hub](https://hub.docker.com/r/dxflrs/garage/tags?page=1&ordering=last_updated). -We encourage you to use a fixed tag (eg. `v0.9.3`) and not the `latest` tag. -For this example, we will use the latest published version at the time of the writing which is `v0.9.3` but it's up to you +We encourage you to use a fixed tag (eg. `v1.0.0`) and not the `latest` tag. +For this example, we will use the latest published version at the time of the writing which is `v1.0.0` but it's up to you to check [the most recent versions on the Docker Hub](https://hub.docker.com/r/dxflrs/garage/tags?page=1&ordering=last_updated). For example: ``` -sudo docker pull dxflrs/garage:v0.9.3 +sudo docker pull dxflrs/garage:v1.0.0 ``` ## Deploying and configuring Garage @@ -169,7 +169,7 @@ docker run \ -v /etc/garage.toml:/etc/garage.toml \ -v /var/lib/garage/meta:/var/lib/garage/meta \ -v /var/lib/garage/data:/var/lib/garage/data \ - dxflrs/garage:v0.9.3 + dxflrs/garage:v1.0.0 ``` With this command line, Garage should be started automatically at each boot. @@ -183,7 +183,7 @@ If you want to use `docker-compose`, you may use the following `docker-compose.y version: "3" services: garage: - image: dxflrs/garage:v0.9.3 + image: dxflrs/garage:v1.0.0 network_mode: "host" restart: unless-stopped volumes: diff --git a/doc/drafts/admin-api.md b/doc/drafts/admin-api.md index 40c82f5a..16338194 100644 --- a/doc/drafts/admin-api.md +++ b/doc/drafts/admin-api.md @@ -70,7 +70,7 @@ Example response body: ```json { "node": "b10c110e4e854e5aa3f4637681befac755154b20059ec163254ddbfae86b09df", - "garageVersion": "v0.10.0", + "garageVersion": "v1.0.0", "garageFeatures": [ "k2v", "lmdb", diff --git a/script/helm/garage/Chart.yaml b/script/helm/garage/Chart.yaml index 71906cfb..d5449f28 100644 --- a/script/helm/garage/Chart.yaml +++ b/script/helm/garage/Chart.yaml @@ -21,4 +21,4 @@ version: 0.4.1 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.9.3" +appVersion: "v1.0.0" diff --git a/src/api/Cargo.toml b/src/api/Cargo.toml index 1b87496c..a5645c26 100644 --- a/src/api/Cargo.toml +++ b/src/api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_api" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/block/Cargo.toml b/src/block/Cargo.toml index b5763120..7eb6bca8 100644 --- a/src/block/Cargo.toml +++ b/src/block/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_block" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/db/Cargo.toml b/src/db/Cargo.toml index b88298ee..ef5a8659 100644 --- a/src/db/Cargo.toml +++ b/src/db/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_db" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/garage/Cargo.toml b/src/garage/Cargo.toml index a4acbb1f..9cc71abd 100644 --- a/src/garage/Cargo.toml +++ b/src/garage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/model/Cargo.toml b/src/model/Cargo.toml index 1e1ce0f7..25926080 100644 --- a/src/model/Cargo.toml +++ b/src/model/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_model" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/net/Cargo.toml b/src/net/Cargo.toml index 4bd0d2e5..c12b39a4 100644 --- a/src/net/Cargo.toml +++ b/src/net/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_net" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/net/netapp.rs b/src/net/netapp.rs index 6480a126..f1e9f1ae 100644 --- a/src/net/netapp.rs +++ b/src/net/netapp.rs @@ -35,8 +35,10 @@ pub type NetworkKey = sodiumoxide::crypto::auth::Key; /// composed of 8 bytes for Netapp version and 8 bytes for client version pub(crate) type VersionTag = [u8; 16]; -/// Value of the Netapp version used in the version tag -pub(crate) const NETAPP_VERSION_TAG: u64 = 0x6e65746170700005; // netapp 0x0005 +/// Value of garage_net version used in the version tag +/// We are no longer using prefix `netapp` as garage_net is forked from the netapp crate. +/// Since Garage v1.0, we have replaced the prefix by `grgnet` (shorthand for garage_net). +pub(crate) const NETAPP_VERSION_TAG: u64 = 0x6772676e65740010; // grgnet 0x0010 (1.0) /// HelloMessage is sent by the client on a Netapp connection to indicate /// that they are also a server and ready to recieve incoming connections @@ -123,7 +125,7 @@ impl NetApp { netapp .hello_endpoint - .swap(Some(netapp.endpoint("__netapp/netapp.rs/Hello".into()))); + .swap(Some(netapp.endpoint("garage_net/netapp.rs/Hello".into()))); netapp .hello_endpoint .load_full() diff --git a/src/net/peering.rs b/src/net/peering.rs index b4271231..168162d9 100644 --- a/src/net/peering.rs +++ b/src/net/peering.rs @@ -237,14 +237,13 @@ impl PeeringManager { ); known_hosts.update_hash(); - // TODO for v0.10 / v1.0 : rename the endpoint (it will break compatibility) let strat = Arc::new(Self { netapp: netapp.clone(), known_hosts: RwLock::new(known_hosts), public_peer_list: ArcSwap::new(Arc::new(Vec::new())), next_ping_id: AtomicU64::new(42), - ping_endpoint: netapp.endpoint("__netapp/peering/fullmesh.rs/Ping".into()), - peer_list_endpoint: netapp.endpoint("__netapp/peering/fullmesh.rs/PeerList".into()), + ping_endpoint: netapp.endpoint("garage_net/peering.rs/Ping".into()), + peer_list_endpoint: netapp.endpoint("garage_net/peering.rs/PeerList".into()), ping_timeout_millis: DEFAULT_PING_TIMEOUT_MILLIS.into(), }); diff --git a/src/rpc/Cargo.toml b/src/rpc/Cargo.toml index 3e7ac635..43d5568e 100644 --- a/src/rpc/Cargo.toml +++ b/src/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_rpc" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/rpc/system.rs b/src/rpc/system.rs index 91a42415..0e78060b 100644 --- a/src/rpc/system.rs +++ b/src/rpc/system.rs @@ -46,7 +46,7 @@ const STATUS_EXCHANGE_INTERVAL: Duration = Duration::from_secs(10); /// Version tag used for version check upon Netapp connection. /// Cluster nodes with different version tags are deemed /// incompatible and will refuse to connect. -pub const GARAGE_VERSION_TAG: u64 = 0x676172616765000A; // garage 0x000A +pub const GARAGE_VERSION_TAG: u64 = 0x6761726167650010; // garage 0x0010 (1.0) /// RPC endpoint used for calls related to membership pub const SYSTEM_RPC_PATH: &str = "garage_rpc/system.rs/SystemRpc"; diff --git a/src/table/Cargo.toml b/src/table/Cargo.toml index cac17da6..171118ea 100644 --- a/src/table/Cargo.toml +++ b/src/table/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_table" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/util/Cargo.toml b/src/util/Cargo.toml index e4c31460..883c0aa4 100644 --- a/src/util/Cargo.toml +++ b/src/util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_util" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" diff --git a/src/web/Cargo.toml b/src/web/Cargo.toml index 49549c9b..f097755c 100644 --- a/src/web/Cargo.toml +++ b/src/web/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "garage_web" -version = "0.10.0" +version = "1.0.0" authors = ["Alex Auvolat ", "Quentin Dufour "] edition = "2018" license = "AGPL-3.0"