Repository navigation
Beebeeb CLI 0.14.0 — storage is chosen by country, and a push you interrupted can be resumed
bb region now works by country, not by city. You choose Europe (the default) or a country, and
bb no longer prints a city name anywhere, including in --json output. This release also lets you
re-run an interrupted bb push to finish it. Since v0.13.6 two pull requests landed on main:
#91 (re-running an interrupted push, task 1950) and #92 (bb region by country, task
2050). #90, the Scoop manifest bump for 0.13.6, does not touch the binary.
What's New
bb region list | get | setwork by country.bb region listshows Europe (the default: no
specific country, Beebeeb places your files in any of its European datacenters), Germany and
Finland, with your current choice marked. Netherlands is listed as coming soon and cannot be chosen
yet.bb region settakes a country code or a name, in any case:bb region set deand
bb region set germanydo the same thing, andeuropereturns to the default. The list comes from
the server, so a country that goes live appears without a newbb. Your choice applies to new
uploads only: files you already uploaded stay where they are.- A city is no longer a choice. If you type one,
bb
refuses it without changing your setting and tells you to choose by country, with the codes from the
list. bb billing usagegroups by country. Usage that has no country is shown under Europe.--jsongainscountryandcountry_code.bb --json region getandsetadd both keys and
keep the existing ones (preferred_region,current,label/name).bb --json billing usage
keepsregionandused_bytes, and addscountry. Itscitykey is kept for scripts that read
it, is deprecated, and now carries the country name.- Re-running an interrupted
bb pushresumes it. (task 1950) Before, a push stopped mid-upload
left a half-uploaded file, and running the same command again refused with "already exists - pass
--replace or --keep-both". Now, when that file is your own unfinished first upload (the local resume
record and the server agree), the same command continues it. The chunks the server already holds are
skipped, or the upload restarts from the first chunk if the chunk formats differ. A completed file is
still a conflict, and so is an interrupted--replace: a plain push never finishes someone's replace.
Bug Fixes / Hardening
- No city name in any output, including
--json.bb account showandbb region liststrip
the server's deprecated city keys, so a server that still sends them does not leak them throughbb.
bb whoami,bb account showandbb speedtestname your choice by country (bb speedtestused
to print a raw datacenter id), andbb billing showalways reads "Europe" for the billing region. A
test scans the production source and the README for place names, and fails if one comes back. - Older servers keep working. A server that still lists one row per datacenter is folded into one
row per country, and a stored datacenter id reads as its country. Old datacenter ids typed by hand
or kept in scripts (the short datacenter ids) are still accepted and sent as they are; the server maps them
andbbshows the resulting country. - Known limit, not changed here:
bb region setsends only the country, which the server reads
as a non-strict choice. Setting a country from the CLI therefore clears a strict choice made in the
web or mobile app. The CLI has no strict flag yet.
Verification
Code under test: 400b212 (cli main, after #92). The release commit on top of it only changes the
version to 0.14.0, Cargo.lock (that one line), this file, and the changelog.
cargo test --no-fail-faston Linux (Legion), from the gate on #92: 19 test binaries, every one
test result: ok, 0 failed. Main unit tests (bb): 511 passed, 3 ignored.region_choice: 18
passed.no_city_copy: 3 passed. The other 16 integration binaries were unchanged and green.cargo clippy --all-targets -- -D warningsandcargo fmt -- --checkwere clean. The GitHub CI
TestsandClippy & Formatjobs passed on #92.- New tests were seen to fail first. Against the previous
main,no_city_copyfailed 2 of 3 (the
README and two place names inbilling.rs) andregion_choicefailed 11 of 18. Eleven mutations on
the final code each turned the intended tests red, among them: no folding of per-datacenter rows,
dropping the country-code match, switching the legacy-id passthrough off, billing readingcity,
and a city name added to the help text. - The #91 resume path was tested with the real
bbbinary killed mid-upload and re-run: 3 new
integration tests, plus a mutation check on thedownload_versionguard. - Real server, local: the lead ran this build (
bb 0.14.0, built from 63345d1, scratch HOME) against a
local server at the production server commit b6bf7fb4.bb region listshowed Europe (default),
Finland, Germany, and Netherlands "coming soon · not selectable".bb --json region listcarried
country/country_codeand no city key. - Production, read-only: the lead ran the same build, not signed in, against production's public list.
It gave the same four rows, and the JSON had no city or provider string. - Not verified:
bb region setagainst production. It needs a signed-in account, and the lead does not
use real accounts for checks. Also,bb.exeis cross-compiled and is not run on a Windows machine by
this release process.
Install / Update
curl -fsSL https://get.beebeeb.io | sh # macOS / Linux
brew upgrade beebeeb-io/tap/bb # macOS, Homebrew
scoop update bb # Windows, Scoop
macOS and Linux installs (shell installer or Homebrew) self-update on next run via the built-in OTA
updater. The updater checks when bb starts, so a running bb sync daemon keeps the old version
until it restarts: restart it after updating. Windows installs do not self-update yet: run
scoop update bb to get 0.14.0. The Scoop manifest (scoop/bb.json) is bumped by a follow-up pull
request; until that pull request is merged, scoop update bb still installs 0.13.6.
Full changelog: v0.13.6...v0.14.0