rendez-cli 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rendez-cli
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Put your repository into a Rendez session, from your terminal
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://rendez.space
@@ -27,18 +27,33 @@ This puts the *files* somewhere useful — the repository already checked out on
27
27
  your machine, instead of an empty directory on the server.
28
28
 
29
29
  ```bash
30
- pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
30
+ pipx install rendez-cli
31
31
 
32
32
  cd ~/code/your-repo
33
33
  rendez connect -g "add rate limiting"
34
34
  ```
35
35
 
36
- Not on PyPI: the name `rendez` there belongs to an unrelated project, so the
37
- distribution would be `rendez-cli` (the installed command stays `rendez`).
38
- Authentication works and the server is deployed; what is still open before
39
- publishing is a protocol-version handshake, so an installed CLI and a
40
- redeployed server cannot drift apart silently (`DEPLOYMENT.md` §10).
41
- Installing from the repository needs read access to it.
36
+ **On PyPI as `rendez-cli`**; the installed command is `rendez`. The names
37
+ differ because `rendez` on PyPI belongs to an unrelated project -- a
38
+ distribution and its entry point need not match.
39
+
40
+ It defaults to the deployed service (`rendez.space`). Point it somewhere else
41
+ with `--api`/`--web`, or `RENDEZ_API`/`RENDEZ_WEB`, which is what a local
42
+ stack needs.
43
+
44
+ The client sends a wire-protocol version and reads the server's on `/health`
45
+ (`DEC-092`). An installed CLI that has fallen behind a redeployed server says
46
+ so and names the upgrade, rather than failing somewhere less legible:
47
+
48
+ ```bash
49
+ pipx upgrade rendez-cli
50
+ ```
51
+
52
+ Installing from the repository still works for people with access to it:
53
+
54
+ ```bash
55
+ pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
56
+ ```
42
57
 
43
58
  **HTTPS rather than `git+ssh`**, which assumes a GitHub SSH key that a
44
59
  developer may not have — `gh auth login` covers HTTPS and is already how most
@@ -8,18 +8,33 @@ This puts the *files* somewhere useful — the repository already checked out on
8
8
  your machine, instead of an empty directory on the server.
9
9
 
10
10
  ```bash
11
- pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
11
+ pipx install rendez-cli
12
12
 
13
13
  cd ~/code/your-repo
14
14
  rendez connect -g "add rate limiting"
15
15
  ```
16
16
 
17
- Not on PyPI: the name `rendez` there belongs to an unrelated project, so the
18
- distribution would be `rendez-cli` (the installed command stays `rendez`).
19
- Authentication works and the server is deployed; what is still open before
20
- publishing is a protocol-version handshake, so an installed CLI and a
21
- redeployed server cannot drift apart silently (`DEPLOYMENT.md` §10).
22
- Installing from the repository needs read access to it.
17
+ **On PyPI as `rendez-cli`**; the installed command is `rendez`. The names
18
+ differ because `rendez` on PyPI belongs to an unrelated project -- a
19
+ distribution and its entry point need not match.
20
+
21
+ It defaults to the deployed service (`rendez.space`). Point it somewhere else
22
+ with `--api`/`--web`, or `RENDEZ_API`/`RENDEZ_WEB`, which is what a local
23
+ stack needs.
24
+
25
+ The client sends a wire-protocol version and reads the server's on `/health`
26
+ (`DEC-092`). An installed CLI that has fallen behind a redeployed server says
27
+ so and names the upgrade, rather than failing somewhere less legible:
28
+
29
+ ```bash
30
+ pipx upgrade rendez-cli
31
+ ```
32
+
33
+ Installing from the repository still works for people with access to it:
34
+
35
+ ```bash
36
+ pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
37
+ ```
23
38
 
24
39
  **HTTPS rather than `git+ssh`**, which assumes a GitHub SSH key that a
25
40
  developer may not have — `gh auth login` covers HTTPS and is already how most
@@ -16,7 +16,7 @@ build-backend = "setuptools.build_meta"
16
16
 
17
17
  [project]
18
18
  name = "rendez-cli"
19
- version = "0.1.0"
19
+ version = "0.1.1"
20
20
  description = "Put your repository into a Rendez session, from your terminal"
21
21
  readme = "README.md"
22
22
  license = "MIT"
@@ -887,6 +887,20 @@ async def run(args: argparse.Namespace) -> int:
887
887
  except urllib.error.URLError as exc:
888
888
  print(f"Authentication check failed: {exc}", file=sys.stderr)
889
889
  return 1
890
+ # The browser will not let you start a session without a provider key
891
+ # (`DEC-052`), and the server does not enforce it either way -- so this
892
+ # client used to create a session that could never answer, which is a
893
+ # worse dead end than the refusal (`DEC-094`, `R-103`). Best-effort: a
894
+ # server too old for the route, or one that errors, must not block a
895
+ # session over a check that is only advisory.
896
+ try:
897
+ if not (api_json(f"{api}/account/keys", token) or {}).get("keys"):
898
+ print("No API key on this account, so a session could not answer.\n"
899
+ f"Add one at {args.web.rstrip('/')}/sessions, then run this again.",
900
+ file=sys.stderr)
901
+ return 1
902
+ except Exception: # noqa: BLE001
903
+ pass
890
904
  try:
891
905
  sid = args.session
892
906
  # Before the stdin reader exists: `choose_session` reads the fd
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rendez-cli
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Put your repository into a Rendez session, from your terminal
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://rendez.space
@@ -27,18 +27,33 @@ This puts the *files* somewhere useful — the repository already checked out on
27
27
  your machine, instead of an empty directory on the server.
28
28
 
29
29
  ```bash
30
- pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
30
+ pipx install rendez-cli
31
31
 
32
32
  cd ~/code/your-repo
33
33
  rendez connect -g "add rate limiting"
34
34
  ```
35
35
 
36
- Not on PyPI: the name `rendez` there belongs to an unrelated project, so the
37
- distribution would be `rendez-cli` (the installed command stays `rendez`).
38
- Authentication works and the server is deployed; what is still open before
39
- publishing is a protocol-version handshake, so an installed CLI and a
40
- redeployed server cannot drift apart silently (`DEPLOYMENT.md` §10).
41
- Installing from the repository needs read access to it.
36
+ **On PyPI as `rendez-cli`**; the installed command is `rendez`. The names
37
+ differ because `rendez` on PyPI belongs to an unrelated project -- a
38
+ distribution and its entry point need not match.
39
+
40
+ It defaults to the deployed service (`rendez.space`). Point it somewhere else
41
+ with `--api`/`--web`, or `RENDEZ_API`/`RENDEZ_WEB`, which is what a local
42
+ stack needs.
43
+
44
+ The client sends a wire-protocol version and reads the server's on `/health`
45
+ (`DEC-092`). An installed CLI that has fallen behind a redeployed server says
46
+ so and names the upgrade, rather than failing somewhere less legible:
47
+
48
+ ```bash
49
+ pipx upgrade rendez-cli
50
+ ```
51
+
52
+ Installing from the repository still works for people with access to it:
53
+
54
+ ```bash
55
+ pipx install "git+https://github.com/rendez-engine/hive.git#subdirectory=cli"
56
+ ```
42
57
 
43
58
  **HTTPS rather than `git+ssh`**, which assumes a GitHub SSH key that a
44
59
  developer may not have — `gh auth login` covers HTTPS and is already how most
File without changes
File without changes