ruby_everywhere 0.4.0 → 0.5.0

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -2
  3. data/bridge/README.md +70 -1
  4. data/bridge/everywhere/bridge.js +151 -0
  5. data/bridge/everywhere/native.css +61 -0
  6. data/lib/everywhere/auth_handoff.rb +8 -2
  7. data/lib/everywhere/builders/desktop.rb +326 -0
  8. data/lib/everywhere/child_processes.rb +74 -0
  9. data/lib/everywhere/commands/build.rb +44 -5
  10. data/lib/everywhere/commands/dev.rb +426 -59
  11. data/lib/everywhere/commands/install.rb +20 -0
  12. data/lib/everywhere/commands/release.rb +2 -2
  13. data/lib/everywhere/config.rb +298 -4
  14. data/lib/everywhere/console.rb +117 -0
  15. data/lib/everywhere/desktop_assets.rb +150 -0
  16. data/lib/everywhere/dock/footer.rb +150 -0
  17. data/lib/everywhere/dock/screen.rb +114 -0
  18. data/lib/everywhere/dock/state.rb +59 -0
  19. data/lib/everywhere/dock.rb +238 -0
  20. data/lib/everywhere/emulator.rb +2 -2
  21. data/lib/everywhere/fatal.rb +20 -0
  22. data/lib/everywhere/line_pump.rb +89 -0
  23. data/lib/everywhere/log_filter.rb +37 -0
  24. data/lib/everywhere/native_helper.rb +38 -5
  25. data/lib/everywhere/paths.rb +62 -11
  26. data/lib/everywhere/relay.rb +77 -0
  27. data/lib/everywhere/shellout.rb +90 -15
  28. data/lib/everywhere/task_pool.rb +123 -0
  29. data/lib/everywhere/ui.rb +54 -11
  30. data/lib/everywhere/version.rb +1 -1
  31. data/support/desktop/README.md +121 -0
  32. data/support/{shell → desktop}/src-tauri/Cargo.lock +23 -0
  33. data/support/{shell → desktop}/src-tauri/Cargo.toml +19 -1
  34. data/support/{shell → desktop}/src-tauri/capabilities/default.json +7 -0
  35. data/support/desktop/src-tauri/gen/schemas/capabilities.json +1 -0
  36. data/support/desktop/src-tauri/src/extension_host.rs +53 -0
  37. data/support/desktop/src-tauri/src/extensions/mod.rs +39 -0
  38. data/support/{shell → desktop}/src-tauri/src/main.rs +355 -10
  39. data/support/{shell → desktop}/src-tauri/tauri.conf.json +2 -2
  40. data/support/{macos → release/macos}/notarize.sh +2 -2
  41. metadata +31 -17
  42. data/support/github/build.yml +0 -85
  43. data/support/shell/src-tauri/gen/schemas/capabilities.json +0 -1
  44. /data/support/{shell → desktop}/splash/index.html +0 -0
  45. /data/support/{shell → desktop}/src-tauri/build.rs +0 -0
  46. /data/support/{shell → desktop}/src-tauri/gen/schemas/acl-manifests.json +0 -0
  47. /data/support/{shell → desktop}/src-tauri/gen/schemas/desktop-schema.json +0 -0
  48. /data/support/{shell → desktop}/src-tauri/gen/schemas/macOS-schema.json +0 -0
  49. /data/support/{shell → desktop}/src-tauri/icons/icon.png +0 -0
  50. /data/support/{shell → desktop}/src-tauri/src/updater.rs +0 -0
  51. /data/support/{macos → release/macos}/entitlements.plist +0 -0
@@ -1,85 +0,0 @@
1
- # RubyEverywhere Platform — reusable build workflow.
2
- #
3
- # Lives in the RunnerDispatch build repo (private, RubyEverywhere-owned). The
4
- # Platform triggers it via workflow_dispatch (see app/models/runner_dispatch.rb);
5
- # it runs one artifact on an ephemeral, single-use macOS runner and reports back
6
- # through the Runner API. No customer source lives in this repo — it arrives as
7
- # the snapshot the runner downloads.
8
- #
9
- # The heavy part is provisioning the toolchain (rbe-tebako fork + deps + Xcode
10
- # shims). Cache it aggressively; a warm runner builds in minutes.
11
-
12
- name: RubyEverywhere Platform Build
13
-
14
- on:
15
- workflow_dispatch:
16
- inputs:
17
- artifact_id:
18
- description: Artifact public id (art_…)
19
- required: true
20
- runner_token:
21
- description: Per-artifact runner token
22
- required: true
23
- callback_base_url:
24
- description: Platform base URL the runner reports back to
25
- required: true
26
-
27
- # One in-flight job per artifact.
28
- concurrency:
29
- group: build-${{ inputs.artifact_id }}
30
- cancel-in-progress: false
31
-
32
- jobs:
33
- build:
34
- # macOS/iOS → macos; Android → ubuntu; Windows → windows (routed by the
35
- # dispatcher today only macOS is live).
36
- runs-on: macos-14 # Apple Silicon
37
- timeout-minutes: 45
38
-
39
- steps:
40
- - name: Set up Ruby (to run the every CLI itself)
41
- uses: ruby/setup-ruby@v1
42
- with:
43
- ruby-version: "3.4"
44
-
45
- - name: Provision the RubyEverywhere toolchain
46
- run: |
47
- set -euo pipefail
48
- # The signing engine needs the rbe-tebako fork + build deps. This is the
49
- # slow step — restore it from cache in a real setup (actions/cache on
50
- # ~/.tebako, ~/.tebako-shims, brew).
51
- brew install bison
52
- gem install ruby_everywhere # provides `every`
53
- # gem install rbe-tebako # the fork (or build from source)
54
- # bin/setup-xcode-shims # Xcode 26 CXX shim, rbconfig patch
55
- every doctor || true # surfaces any missing toolchain bits
56
-
57
- - name: Install Apple intermediate certificates
58
- run: |
59
- set -euo pipefail
60
- # The delivered .p12 holds only the leaf; codesign needs the Developer
61
- # ID intermediate to build a complete chain (a clean runner has none).
62
- for cert in DeveloperIDG2CA AppleWWDRCAG3; do
63
- curl -fsSL "https://www.apple.com/certificateauthority/$cert.cer" -o "$RUNNER_TEMP/$cert.cer"
64
- sudo security import "$RUNNER_TEMP/$cert.cer" -k /Library/Keychains/System.keychain || true
65
- done
66
-
67
- - name: Provision the generic Tauri shell
68
- run: |
69
- set -euo pipefail
70
- # The shell (src-tauri) is generic — same for every app. Pull the
71
- # pinned prebuilt shell for this platform.
72
- echo "SHELL_DIR=$RUNNER_TEMP/shell/src-tauri" >> "$GITHUB_ENV"
73
- # gh release download --repo rubyeverywhere/shell --pattern 'src-tauri-*' ...
74
- # OR: git clone --depth 1 https://github.com/rubyeverywhere/shell "$RUNNER_TEMP/shell"
75
-
76
- - name: Run the build
77
- run: |
78
- every platform runner \
79
- --artifact "${{ inputs.artifact_id }}" \
80
- --token "${{ inputs.runner_token }}" \
81
- --url "${{ inputs.callback_base_url }}" \
82
- --shell-dir "$SHELL_DIR"
83
- # Signing credentials are pulled JIT from the Platform into a throwaway
84
- # keychain by the runner itself — they are never GitHub secrets, and the
85
- # ephemeral runner is destroyed after this job.
@@ -1 +0,0 @@
1
- {"default":{"identifier":"default","description":"Main window IPC: local app origins (the packaged Rails app serves on 127.0.0.1)","remote":{"urls":["http://127.0.0.1:*","http://localhost:*"]},"local":true,"windows":["main"],"permissions":["core:default","core:window:allow-set-title","notification:default","dialog:default","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text"]}}
File without changes
File without changes