yamine 0.14.0 → 0.14.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +8 -15
- data/lib/yamine/cli/boot.rb +2 -6
- data/lib/yamine/cli.rb +5 -8
- data/lib/yamine/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b5f2bd591be3e0b58deef894b8772575e46068fe4cc6287eaedf18926874f965
|
|
4
|
+
data.tar.gz: a1136bf238dc84bb2c150a00e02c385f19d3c9dd17ed94142091772712777768
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 65139ff9a320e9fd827ef4ee1ea2b2f43d3ddb5d8aa14e31a642085a2e74cfa8f95ecdd03d3d1bd12af567a971d1f124c3b80cb5baa835d582cf5633169e73ca
|
|
7
|
+
data.tar.gz: 69b45bfe7fa0852be260ed74a1985a4f3052afa6aecd4bf821e29de721c71005082ad4b3ba078532df9ecf759f19a8ee9495f650734c296fc6e878b9356459ed
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.1] — 2026-09-13
|
|
4
|
+
|
|
5
|
+
### Removed
|
|
6
|
+
|
|
7
|
+
- **`yamine run` has been removed.** `run` was an alias of `start` since
|
|
8
|
+
the config-first rewrite but kept its old help text, and the
|
|
9
|
+
compound-line error advice still pointed at `yamine run -- <cmd>` —
|
|
10
|
+
a command that silently ignores its argument. The subcommand now
|
|
11
|
+
prints the migration message every other removed command uses ("all
|
|
12
|
+
processes come from config/local.yml"), and the advice rewrites to
|
|
13
|
+
what is actually true: split the command into its own process in
|
|
14
|
+
config, or wrap it in a script. One-off routed commands (Docker,
|
|
15
|
+
ad-hoc ports) go through `yamine alias`, which gives them a hostname
|
|
16
|
+
without yamine owning the process lifecycle.
|
|
17
|
+
|
|
3
18
|
## [0.14.0] — 2026-09-13
|
|
4
19
|
|
|
5
20
|
### Added
|
data/README.md
CHANGED
|
@@ -134,8 +134,8 @@ case) need `yamine hosts sync`.
|
|
|
134
134
|
|
|
135
135
|
| Axis | Example | Source |
|
|
136
136
|
|---|---|---|
|
|
137
|
-
| app | `myapp` |
|
|
138
|
-
| service | `api.myapp` |
|
|
137
|
+
| app | `myapp` | `service:` in `config/local.yml` (`yamine init` infers it) |
|
|
138
|
+
| service | `api.myapp` | a non-web process name (every `proxy: true` process but `web`) |
|
|
139
139
|
| variant | `fix-ui.myapp` | `--variant`, `YAMINE_VARIANT`, linked worktree branch |
|
|
140
140
|
| tld | `myapp.preview.example.com` | `--tld` (default `localhost`) |
|
|
141
141
|
|
|
@@ -186,7 +186,6 @@ worktrees (the branch stays); `--dry-run` prints the plan; `remove
|
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
188
|
yamine # -> https://myapp.localhost
|
|
189
|
-
yamine --service api # -> https://api.myapp.localhost
|
|
190
189
|
yamine --variant demo # -> https://demo.myapp.localhost
|
|
191
190
|
yamine --tld preview.example.com # your own domain (OAuth parity)
|
|
192
191
|
```
|
|
@@ -217,7 +216,6 @@ to start it. `yamine status` reports which mode an app is in.
|
|
|
217
216
|
yamine # boot app (waits until healthy, then supervises)
|
|
218
217
|
yamine start --no-wait # fire-and-forget (register routes immediately)
|
|
219
218
|
yamine start --json # machine-readable wait result (--wait default)
|
|
220
|
-
yamine run -- <cmd> # run explicit command through proxy
|
|
221
219
|
yamine get <name> # print URL for cross-service wiring
|
|
222
220
|
yamine alias <name> <port> # static route (e.g. Docker)
|
|
223
221
|
yamine list [--json] # show active routes (+ backend liveness)
|
|
@@ -244,18 +242,13 @@ OAuth callbacks, mailer hosts, webhook URLs), `PORT`, and `HOST`.
|
|
|
244
242
|
## Frameworks
|
|
245
243
|
|
|
246
244
|
Rails and bare Rack (`config.ru`) boot managed on a unix socket (Puma
|
|
247
|
-
when available; `rackup` on TCP otherwise).
|
|
248
|
-
Jekyll, Bridgetown,
|
|
249
|
-
|
|
250
|
-
`
|
|
245
|
+
when available; `rackup` on TCP otherwise). Port-ignoring CLIs —
|
|
246
|
+
Jekyll, Bridgetown, Middleman — get explicit `--port/--host` flags
|
|
247
|
+
injected at boot; everything else comes from `processes:` in
|
|
248
|
+
`config/local.yml`, one process per entry.
|
|
251
249
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
yamine --proc worker # (first line is the default)
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
Procfile lines that are compound (`&&`, `||`, `|`, `;`) are refused with
|
|
258
|
-
guidance rather than silently mis-injected.
|
|
250
|
+
Process commands that are compound (`&&`, `||`, `|`, `;`) are refused
|
|
251
|
+
with guidance rather than silently mis-injected.
|
|
259
252
|
|
|
260
253
|
For Rails integration (hosts, Action Cable origins, Procfile rewrite,
|
|
261
254
|
generators) — deprecated; core covers Rails now.
|
data/lib/yamine/cli/boot.rb
CHANGED
|
@@ -42,10 +42,6 @@ module Yamine
|
|
|
42
42
|
opts[:json] ? $stderr.puts(message) : puts(message)
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
def run_explicit(ctx, args)
|
|
46
|
-
run_inferred(ctx, args)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
45
|
def run_named(ctx, name, _args)
|
|
50
46
|
if name.to_s.start_with?("-")
|
|
51
47
|
$stderr.puts "Error: unknown flag `#{name}`. Try `yamine --help` or `yamine start --help`."
|
|
@@ -217,7 +213,7 @@ module Yamine
|
|
|
217
213
|
url = Hostname.url(hostname, port: ctx.proxy_port, tls: ctx.proxy_tls)
|
|
218
214
|
cmd = entry["cmd"].to_s
|
|
219
215
|
if cmd.match?(Yamine::Procfile::COMPOUND)
|
|
220
|
-
$stderr.puts " [#{proc_name}] ERROR: compound line (&&, ||, |, ;) —
|
|
216
|
+
$stderr.puts " [#{proc_name}] ERROR: compound line (&&, ||, |, ;) — split it into separate processes, or wrap in a script and point cmd: at it"
|
|
221
217
|
next
|
|
222
218
|
end
|
|
223
219
|
port = opts[:app_port] || Ports.find_free
|
|
@@ -356,7 +352,7 @@ module Yamine
|
|
|
356
352
|
def boot_background(ctx, runner, resolved, proc_name, entry, opts, children, db_url)
|
|
357
353
|
cmd = entry["cmd"].to_s
|
|
358
354
|
if cmd.match?(Yamine::Procfile::COMPOUND)
|
|
359
|
-
$stderr.puts " [#{proc_name}] ERROR: compound line (&&, ||, |, ;) —
|
|
355
|
+
$stderr.puts " [#{proc_name}] ERROR: compound line (&&, ||, |, ;) — split it into separate processes, or wrap in a script and point cmd: at it"
|
|
360
356
|
return
|
|
361
357
|
end
|
|
362
358
|
port = opts[:app_port] || Ports.find_free
|
data/lib/yamine/cli.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Yamine
|
|
|
10
10
|
# In non-interactive environments (no TTY or CI=1) we fail early with
|
|
11
11
|
# a clear message instead of prompting (portless lesson).
|
|
12
12
|
class CLI
|
|
13
|
-
SUBCOMMANDS = %w[
|
|
13
|
+
SUBCOMMANDS = %w[get alias hosts list doctor trust clean prune proxy service sudoers kamal stop restart log status open setup start init db worktree].freeze
|
|
14
14
|
|
|
15
15
|
def self.run(argv)
|
|
16
16
|
new.run(argv)
|
|
@@ -44,7 +44,6 @@ module Yamine
|
|
|
44
44
|
cmd = args.shift
|
|
45
45
|
ctx = Context.new
|
|
46
46
|
case cmd
|
|
47
|
-
when "run" then BootCommand.run_explicit(ctx, args)
|
|
48
47
|
when "get" then RoutesCommand.get(ctx, args)
|
|
49
48
|
when "alias" then RoutesCommand.alias_add(ctx, args)
|
|
50
49
|
when "hosts" then SystemCommand.hosts(ctx, args)
|
|
@@ -81,11 +80,9 @@ module Yamine
|
|
|
81
80
|
yamine - Stable named .localhost URLs for Ruby development.
|
|
82
81
|
|
|
83
82
|
Usage:
|
|
84
|
-
yamine start
|
|
83
|
+
yamine start One-setup-and-go: setup if needed, then boot -> https://<app>.localhost
|
|
85
84
|
yamine setup One-shot workstation setup without booting (run once)
|
|
86
|
-
yamine Bare form of `start`
|
|
87
|
-
yamine run [cmd] Same, with explicit command
|
|
88
|
-
yamine <name> <cmd> Run with explicit name
|
|
85
|
+
yamine Bare form of `start` — boots every process in config/local.yml
|
|
89
86
|
yamine get <name> Print URL for a service
|
|
90
87
|
yamine alias <name> <port> Static route (e.g. Docker)
|
|
91
88
|
yamine list Show active routes (+ backend liveness)
|
|
@@ -106,8 +103,8 @@ module Yamine
|
|
|
106
103
|
yamine restart Touch tmp/restart.txt
|
|
107
104
|
yamine log [-f] [n] Tail (or follow) this app's backend log
|
|
108
105
|
|
|
109
|
-
Flags: --variant, --tld, --force, --app-port, --wait (default), --no-wait, --json
|
|
110
|
-
Env:
|
|
106
|
+
Flags: --variant, --tld, --force, --app-port, --wait (default), --no-wait, --json, --branch
|
|
107
|
+
Env: YAMINE_VARIANT/TLD/PORT/STATE_DIR/AGENT, YAMINE_BRANCH=1
|
|
111
108
|
HELP
|
|
112
109
|
end
|
|
113
110
|
|
data/lib/yamine/version.rb
CHANGED