docs: describe the shipped bakery product and single-trunk releases
All checks were successful
check / check (push) Successful in 1m12s
All checks were successful
check / check (push) Successful in 1m12s
README still called the GTK picker and mirroring pipeline stubs. Both are built: breadcastd discovers Cast and DLNA devices and owns the session; breadcast is the GTK picker. Install is bakery; this is not on the BOS ISO. CONTRIBUTING now follows the ecosystem single-trunk main + RC-tag model. Leftover dev/beta CI workflows are documented, not rewritten. bread-theme and bread-utils already pin bread-ecosystem v0.7.1.
This commit is contained in:
parent
bbff5f951c
commit
d1dd98a889
11 changed files with 128 additions and 105 deletions
|
|
@ -1,23 +1,18 @@
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
`breadcast` — cast your screen to any Chromecast/Google TV, for Hyprland
|
`breadcast` — cast your screen to a Chromecast/Google TV or DLNA renderer
|
||||||
(daemon + GTK4 popup).
|
(daemon + GTK4 popup).
|
||||||
|
|
||||||
Part of the bread ecosystem; this repo follows the same branch/release
|
A bakery product in the bread ecosystem — **not** shipped on the BOS ISO
|
||||||
workflow as every other ecosystem product.
|
and not part of the default desktop. This repo follows the same
|
||||||
|
branch/release workflow as every other ecosystem product.
|
||||||
|
|
||||||
## Branches
|
## Branches
|
||||||
|
|
||||||
- **`main`** — release branch, always tag-ready. Nothing is committed to it
|
There is one long-lived branch: **`main`**. All day-to-day work lands here.
|
||||||
directly; it only moves forward via a `beta` merge (see below).
|
Every push to `main` is supposed to publish a **dev-track** build (see
|
||||||
- **`dev`** — integration branch. All day-to-day work lands here first.
|
Tracks below) — a real install you can test before cutting anything more
|
||||||
Every push to `dev` automatically builds and publishes a **dev-track**
|
formal.
|
||||||
build (see Tracks below) — use this to test your change in a real install
|
|
||||||
before it goes any further.
|
|
||||||
- **`beta`** — a frozen stabilization branch, cut from `dev` periodically.
|
|
||||||
Every push to `beta` automatically builds and publishes a **beta-track**
|
|
||||||
build. While a freeze is active, only fixes for issues found *in that
|
|
||||||
freeze* should land on `beta`.
|
|
||||||
|
|
||||||
New work — features and bug fixes alike — goes on a short-lived branch:
|
New work — features and bug fixes alike — goes on a short-lived branch:
|
||||||
|
|
||||||
|
|
@ -26,28 +21,29 @@ feature/<short-name>
|
||||||
fix/<issue-number-or-short-name>
|
fix/<issue-number-or-short-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
Branch off `dev`, open a PR/push back into `dev` when ready. If you're fixing
|
Branch off `main`, open a PR/push back into `main` when ready. Short-lived
|
||||||
something reported against an active `beta` freeze, branch off `beta`
|
branches get deleted on merge — they never accumulate the kind of drift a
|
||||||
instead, merge the fix there to unblock testers, and also forward the same
|
second long-lived branch does.
|
||||||
fix into `dev` so it doesn't quietly reappear next cycle.
|
|
||||||
|
|
||||||
## The release cycle
|
## The release cycle
|
||||||
|
|
||||||
1. Work accumulates on `dev` via `feature/x` / `fix/x` branches. Each push
|
There's no separate `beta` or release branch — "stable" and "beta" are both
|
||||||
auto-publishes a dev build — install it with `bakery track set dev` and
|
just **tags** on `main`, not branches that need to be kept in sync:
|
||||||
`bakery update --all`, then report or fix anything broken with another
|
|
||||||
push to `dev`.
|
1. Work accumulates on `main` via `feature/x` / `fix/x` branches. Each push
|
||||||
2. Once `dev` has gone roughly **a week** without new issues, `beta` is cut
|
is meant to auto-publish a dev build — install it with
|
||||||
fresh from `dev`'s current tip. This freezes it as the stabilization
|
`bakery track set dev` and `bakery update --all`, then fix anything
|
||||||
target — `dev` keeps moving independently starting the next cycle.
|
broken with another push.
|
||||||
3. `beta` is open for anyone to test: `bakery track set beta` and
|
2. When you want to stabilize before a real release, tag a release
|
||||||
`bakery update --all`. **File issues against anything you find on this
|
candidate: `git tag vX.Y.Z-rc.1 && git push origin vX.Y.Z-rc.1` (push to
|
||||||
repo's Forgejo issue tracker.** Fixes land via `fix/<issue>` branches
|
both remotes). That tag alone should trigger a beta-track build —
|
||||||
merged into `beta`.
|
"freezing" is just pausing pushes to `main` while you test it, not a
|
||||||
4. Once `beta` has gone roughly **a month** without new issues, it's merged
|
branch operation. Cut `-rc.2`, `-rc.3`, etc. for further fixes.
|
||||||
into `main` and tagged `vX.Y.Z` — that tag is what actually triggers the
|
3. Once an RC has gone without issues, tag the real release:
|
||||||
stable release build. `beta` is then reset from `dev` to start the next
|
`git tag vX.Y.Z && git push origin vX.Y.Z` — that's what triggers the
|
||||||
cycle.
|
signed stable release build.
|
||||||
|
|
||||||
|
Do **not** use leftover `dev` / `beta` branches as integration trunks.
|
||||||
|
|
||||||
## Tracks, from a user's perspective
|
## Tracks, from a user's perspective
|
||||||
|
|
||||||
|
|
@ -59,14 +55,15 @@ bakery update --all # pull the latest build on your current track
|
||||||
|
|
||||||
| Track | What it is | Published from |
|
| Track | What it is | Published from |
|
||||||
|--------|-----------|-----------------|
|
|--------|-----------|-----------------|
|
||||||
| `stable` | The last tagged release | `main`, on a `vX.Y.Z` tag push |
|
| `stable` | The last tagged release | a `vX.Y.Z` tag |
|
||||||
| `beta` | Current stabilization freeze | `beta`, on every push |
|
| `beta` | Latest release candidate | a `vX.Y.Z-rc.N` tag |
|
||||||
| `dev` | Bleeding edge | `dev`, on every push |
|
| `dev` | Bleeding edge | `main`, on every push |
|
||||||
|
|
||||||
Dev/beta versions are auto-computed (`X.Y.Z-dev.<timestamp>+<sha>` /
|
Dev versions are auto-computed (`X.Y.Z-dev.<timestamp>+<sha>`) from the
|
||||||
`-beta.…`) from the latest published stable tag, so they always sort as
|
latest published stable tag, so they always sort as newer than what you
|
||||||
newer than what you have installed — no manual version bumping needed when
|
have installed — no manual version bumping needed. Beta versions are just
|
||||||
pushing to `dev` or `beta`.
|
the RC tag itself (already valid semver, already sorts below the real
|
||||||
|
release it's a candidate for).
|
||||||
|
|
||||||
## Local development
|
## Local development
|
||||||
|
|
||||||
|
|
@ -77,14 +74,22 @@ cargo test --release --workspace
|
||||||
|
|
||||||
## CI
|
## CI
|
||||||
|
|
||||||
- `dev-release.yml` — triggered on push to `dev`.
|
Intended single-trunk wiring (see
|
||||||
- `beta-release.yml` — triggered on push to `beta`.
|
[bread-ecosystem's docs/release-channels.md](https://git.breadway.dev/Breadway/bread-ecosystem/src/branch/main/docs/release-channels.md)):
|
||||||
- `release.yml` — triggered on a `v*` tag push, cuts the actual stable release.
|
|
||||||
|
|
||||||
All CI runs on a self-hosted runner; nothing runs automatically on plain
|
- push to `main` → dev-track build
|
||||||
commits or PRs beyond the track builds above. See
|
- `vX.Y.Z-rc.N` tag → beta-track build
|
||||||
[bread-ecosystem's docs/release-channels.md](https://git.breadway.dev/Breadway/bread-ecosystem/src/branch/main/docs/release-channels.md)
|
- `vX.Y.Z` tag → signed stable release
|
||||||
for the full policy, including how a new product gets wired onto these tracks.
|
|
||||||
|
`release.yml` already fires on a `v*` tag push. `dev-release.yml` and
|
||||||
|
`beta-release.yml` are leftover from the old three-branch model and still
|
||||||
|
trigger on the `dev` / `beta` branch names — they have not been rewritten.
|
||||||
|
Follow the cycle above; do not treat those branches as current, and do not
|
||||||
|
rewrite the leftover workflows unless you are deliberately migrating CI.
|
||||||
|
|
||||||
|
`check.yml` runs clippy + test on `feature/**` and `fix/**` branches.
|
||||||
|
|
||||||
|
All CI runs on a self-hosted runner.
|
||||||
|
|
||||||
## Questions
|
## Questions
|
||||||
|
|
||||||
|
|
|
||||||
125
README.md
125
README.md
|
|
@ -1,75 +1,88 @@
|
||||||
# breadcast
|
# breadcast
|
||||||
|
|
||||||
Cast your screen to any Chromecast/Google TV, for Hyprland. It consists of
|
Cast your screen to a Chromecast, Google TV, or DLNA renderer on the LAN.
|
||||||
two binaries:
|
Two binaries:
|
||||||
|
|
||||||
- **`breadcastd`** — a background daemon that discovers Cast devices on the
|
- **`breadcastd`** — background daemon. Discovers Cast (mDNS) and DLNA/UPnP
|
||||||
LAN and (once built — see Status) owns the screen-capture/encode/serve
|
(SSDP) devices, owns the portal screen-capture / encode pipeline, and
|
||||||
pipeline and the live Cast V2 session.
|
runs the live session: Cast Streaming (vendored openscreen) or
|
||||||
- **`breadcast`** — a GTK4 Layer Shell popup for picking a device and
|
DLNA/AVTransport. One active session at a time.
|
||||||
starting/stopping a cast.
|
- **`breadcast`** — GTK4 Layer Shell popup. Thin IPC client of
|
||||||
|
`breadcastd`: pick a device, start or stop a cast. Closing the popup
|
||||||
|
does not interrupt an active session.
|
||||||
|
|
||||||
## Status
|
This is a **bakery product**. It is **not** shipped on the BOS ISO and is
|
||||||
|
**not** part of the default desktop — install it yourself if you want it.
|
||||||
|
|
||||||
This is early: device discovery (mDNS) and the Cast V2 sender (real device
|
## Install
|
||||||
control — connect, launch the receiver, load media) are built and validated
|
|
||||||
against real Chromecast/Google TV hardware. The actual screen-mirroring
|
```sh
|
||||||
pipeline (portal-based screen capture → GPU-accelerated encode → HLS →
|
bakery install breadcast
|
||||||
local HTTP server) and the GTK4 device-picker UI are not built yet.
|
```
|
||||||
`breadcastd` today only does discovery and optional breadd event
|
|
||||||
publishing; `breadcast` is a stub binary. See `CLAUDE.md`'s Status section
|
That puts `breadcast` and `breadcastd` on `$PATH` (usually `~/.local/bin`),
|
||||||
for more detail.
|
installs `contrib/breadcastd.service` as a systemd user unit, enables it,
|
||||||
|
and starts the daemon. `bakery doctor breadcast` checks the system
|
||||||
|
packages listed in `bakery.toml` first.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Rust toolchain (edition 2021)
|
- A Wayland compositor with Layer Shell and `xdg-desktop-portal`
|
||||||
- GTK 4.12+ and `gtk4-layer-shell` (once the UI lands)
|
ScreenCast (Hyprland is the primary target)
|
||||||
- GStreamer + `gst-plugin-pipewire`, `gst-plugins-bad` (VA-API `va` plugin),
|
- GTK 4.12+ and `gtk4-layer-shell`
|
||||||
`gst-plugin-hlssink3` (once the capture pipeline lands)
|
- GStreamer plus `gst-plugin-pipewire`, `gst-plugins-bad`,
|
||||||
- Hyprland (or any Wayland compositor with Layer Shell and the
|
`gst-plugin-va` (`vah264enc`), and `gst-plugin-hlssink3`
|
||||||
`xdg-desktop-portal` ScreenCast interface)
|
- `jsoncpp` and `openssl` (runtime deps of the vendored Cast Streaming
|
||||||
|
code)
|
||||||
|
|
||||||
## Build
|
From source you also need a Rust toolchain (edition 2021).
|
||||||
|
|
||||||
|
## Build from source
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git clone https://git.breadway.dev/breadway/breadcast
|
git clone https://git.breadway.dev/Breadway/breadcast
|
||||||
cd breadcast
|
cd breadcast
|
||||||
cargo build --release
|
cargo build --release
|
||||||
```
|
```
|
||||||
|
|
||||||
The compiled binaries are at `target/release/breadcast` and
|
Binaries land at `target/release/breadcast` and `target/release/breadcastd`.
|
||||||
`target/release/breadcastd`.
|
|
||||||
|
|
||||||
## Try device discovery today
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cargo run -p breadcast-core --example discover
|
|
||||||
```
|
|
||||||
|
|
||||||
Prints Chromecast/Google TV devices as they appear/disappear on the LAN.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Copy the binaries to somewhere on your `$PATH`, e.g.:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cp target/release/breadcast target/release/breadcastd ~/.local/bin/
|
cp target/release/breadcast target/release/breadcastd ~/.local/bin/
|
||||||
```
|
|
||||||
|
|
||||||
### systemd user service
|
|
||||||
|
|
||||||
A unit file is provided in `contrib/`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cp contrib/breadcastd.service ~/.config/systemd/user/
|
cp contrib/breadcastd.service ~/.config/systemd/user/
|
||||||
systemctl --user daemon-reload
|
systemctl --user daemon-reload
|
||||||
systemctl --user enable --now breadcastd
|
systemctl --user enable --now breadcastd
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Start the daemon (or let the systemd unit handle it):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
breadcastd
|
||||||
|
```
|
||||||
|
|
||||||
|
Open the device picker:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
breadcast
|
||||||
|
```
|
||||||
|
|
||||||
|
Running `breadcast` again while it is open closes it (toggle). Click a
|
||||||
|
device to start mirroring — the portal picker asks which screen to share.
|
||||||
|
**Stop mirroring** ends the session. Status is Idle or Casting.
|
||||||
|
|
||||||
|
Discovery examples (optional, for debugging the LAN):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cargo run -p breadcast-core --example discover
|
||||||
|
cargo run -p breadcast-core --example dlna_discover
|
||||||
|
```
|
||||||
|
|
||||||
### Hyprland keybind
|
### Hyprland keybind
|
||||||
|
|
||||||
For stock Hyprland, add the contents of `contrib/hyprland.conf` to your
|
On stock Hyprland, add the contents of `contrib/hyprland.conf` to your
|
||||||
`hyprland.conf`:
|
`hyprland.conf` if you want Super+C and the frosted-glass blur:
|
||||||
|
|
||||||
```
|
```
|
||||||
layerrule = blur, breadcast
|
layerrule = blur, breadcast
|
||||||
|
|
@ -78,20 +91,16 @@ layerrule = ignorezero, breadcast
|
||||||
bind = $mainMod, C, exec, breadcast
|
bind = $mainMod, C, exec, breadcast
|
||||||
```
|
```
|
||||||
|
|
||||||
On BOS, Hyprland config is Lua+JSON-driven instead — see
|
BOS does not ship this app or a default keybind for it. Add one yourself
|
||||||
`contrib/binds.json` for the equivalent keybind entry to merge into your
|
if you install breadcast on a BOS machine.
|
||||||
`binds.json` by hand (there's no per-app self-registration mechanism yet).
|
|
||||||
There is currently no BOS-native equivalent for the `layerrule` blur lines.
|
|
||||||
|
|
||||||
## bread event integration
|
## bread event integration
|
||||||
|
|
||||||
`breadcastd` optionally publishes into the shared bread automation fabric
|
`breadcastd` works the same with or without `breadd`. When `breadd` is
|
||||||
(`bread.cast.*`) when `breadd` is running, and works identically without
|
running, it publishes `bread.cast.*` and honors `bread.command.cast.*`.
|
||||||
it. See `EVENTS.md` for the full, honest-about-scope contract — most of the
|
See [EVENTS.md](EVENTS.md) for the bus contract. `bread` is not a bakery
|
||||||
eventually-planned events (mirroring start/stop) aren't implemented yet,
|
dependency.
|
||||||
since the mirroring pipeline itself isn't built yet.
|
|
||||||
|
|
||||||
## Theming
|
## Theming
|
||||||
|
|
||||||
`breadcast` will inherit its colour palette from `bread-theme`, matching
|
`breadcast` inherits its colour palette from `bread-theme`.
|
||||||
the rest of the ecosystem, once its GTK4 UI is built.
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ system_deps = [
|
||||||
"openssl",
|
"openssl",
|
||||||
]
|
]
|
||||||
optional_system_deps = ["hyprland", "xdg-desktop-portal-hyprland"]
|
optional_system_deps = ["hyprland", "xdg-desktop-portal-hyprland"]
|
||||||
|
# breadd is optional: breadcastd publishes bread.cast.* when it is running
|
||||||
|
# and works the same without it. See EVENTS.md. Not a bakery bread dep.
|
||||||
bread_deps = []
|
bread_deps = []
|
||||||
|
|
||||||
[[service]]
|
[[service]]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_readme_md", "label": "README.md", "file_type": "document", "source_file": "README.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_breadcast", "label": "breadcast", "file_type": "document", "source_file": "README.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_install", "label": "Install", "file_type": "document", "source_file": "README.md", "source_location": "L17"}, {"id": "$graphify-root$_readme_requirements", "label": "Requirements", "file_type": "document", "source_file": "README.md", "source_location": "L28"}, {"id": "$graphify-root$_readme_build_from_source", "label": "Build from source", "file_type": "document", "source_file": "README.md", "source_location": "L40"}, {"id": "$graphify-root$_readme_usage", "label": "Usage", "file_type": "document", "source_file": "README.md", "source_location": "L57"}, {"id": "$graphify-root$_readme_hyprland_keybind", "label": "Hyprland keybind", "file_type": "document", "source_file": "README.md", "source_location": "L82"}, {"id": "$graphify-root$_readme_bread_event_integration", "label": "bread event integration", "file_type": "document", "source_file": "README.md", "source_location": "L97"}, {"id": "$graphify-root$_readme_theming", "label": "Theming", "file_type": "document", "source_file": "README.md", "source_location": "L104"}], "edges": [{"source": "$graphify-root$_readme_md", "target": "$graphify-root$_readme_breadcast", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_install", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_requirements", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_build_from_source", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_usage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L57", "weight": 1.0}, {"source": "$graphify-root$_readme_usage", "target": "$graphify-root$_readme_hyprland_keybind", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L82", "weight": 1.0}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_bread_event_integration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L97", "weight": 1.0}, {"source": "$graphify-root$_readme_md", "target": "$graphify-root$_events_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L101", "weight": 1.0, "target_file": "$graphify-root$/EVENTS.md"}, {"source": "$graphify-root$_readme_breadcast", "target": "$graphify-root$_readme_theming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L104", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_events_md", "label": "EVENTS.md", "file_type": "document", "source_file": "EVENTS.md", "source_location": "L1"}, {"id": "$graphify-root$_events_breadcast_bread_event_integration", "label": "breadcast \u2014 bread event integration", "file_type": "document", "source_file": "EVENTS.md", "source_location": "L1"}, {"id": "$graphify-root$_events_events_published_bread_cast", "label": "Events published (`bread.cast.*`)", "file_type": "document", "source_file": "EVENTS.md", "source_location": "L15"}, {"id": "$graphify-root$_events_commands_honored_bread_command_cast", "label": "Commands honored (`bread.command.cast.*`)", "file_type": "document", "source_file": "EVENTS.md", "source_location": "L24"}, {"id": "$graphify-root$_events_fail_safe_behavior", "label": "Fail-safe behavior", "file_type": "document", "source_file": "EVENTS.md", "source_location": "L36"}], "edges": [{"source": "$graphify-root$_events_md", "target": "$graphify-root$_events_breadcast_bread_event_integration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "EVENTS.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_events_breadcast_bread_event_integration", "target": "$graphify-root$_events_events_published_bread_cast", "relation": "contains", "confidence": "EXTRACTED", "source_file": "EVENTS.md", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_events_breadcast_bread_event_integration", "target": "$graphify-root$_events_commands_honored_bread_command_cast", "relation": "contains", "confidence": "EXTRACTED", "source_file": "EVENTS.md", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_events_breadcast_bread_event_integration", "target": "$graphify-root$_events_fail_safe_behavior", "relation": "contains", "confidence": "EXTRACTED", "source_file": "EVENTS.md", "source_location": "L36", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "label": "README.md", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L1"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_usage", "label": "Usage", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L4"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_build", "label": "Build", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L8"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_run_example", "label": "Run example", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L19"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_generic_features", "label": "Generic features", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L21"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_media_features", "label": "Media features", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L49"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_dns_txt_record_description", "label": "DNS TXT Record description", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L81"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_model_names", "label": "Model names", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L93"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_readme_useful_links_and_sources_of_inspiration", "label": "Useful links and sources of inspiration", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L98"}], "edges": [{"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_usage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_build", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_run_example", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_run_example", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_generic_features", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_run_example", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_media_features", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L49", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_dns_txt_record_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L81", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_model_names", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L93", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_readme_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_readme_useful_links_and_sources_of_inspiration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/README.md", "source_location": "L98", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_ci_build_sh", "label": "build.sh", "file_type": "code", "source_file": "ci/build.sh", "source_location": "L1", "metadata": {"language": "bash", "kind": "file"}}, {"id": "$graphify-root$_ci_build_sh__entry", "label": "build.sh script", "file_type": "code", "source_file": "ci/build.sh", "source_location": "L1", "metadata": {"language": "bash", "kind": "bash_entrypoint"}}], "edges": [{"source": "$graphify-root$_ci_build_sh", "target": "$graphify-root$_ci_build_sh__entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "ci/build.sh", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"language": "bash", "callee": "set", "caller_nid": "$graphify-root$_ci_build_sh__entry", "source_file": "ci/build.sh", "source_location": "L9"}, {"language": "bash", "callee": "rm", "caller_nid": "$graphify-root$_ci_build_sh__entry", "source_file": "ci/build.sh", "source_location": "L16"}, {"language": "bash", "callee": "git", "caller_nid": "$graphify-root$_ci_build_sh__entry", "source_file": "ci/build.sh", "source_location": "L17"}], "bash_sources": []}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_vendor_rust_cast_0_21_0_patches_md", "label": "PATCHES.md", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L1"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_patches_vendoring_notes", "label": "Vendoring notes", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L1"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_patches_why", "label": "Why", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L8"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_patches_the_patch", "label": "The patch", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L23"}, {"id": "$graphify-root$_vendor_rust_cast_0_21_0_patches_rolling_the_pin", "label": "Rolling the pin", "file_type": "document", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L31"}], "edges": [{"source": "$graphify-root$_vendor_rust_cast_0_21_0_patches_md", "target": "$graphify-root$_vendor_rust_cast_0_21_0_patches_vendoring_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_patches_vendoring_notes", "target": "$graphify-root$_vendor_rust_cast_0_21_0_patches_why", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_patches_vendoring_notes", "target": "$graphify-root$_vendor_rust_cast_0_21_0_patches_the_patch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_vendor_rust_cast_0_21_0_patches_vendoring_notes", "target": "$graphify-root$_vendor_rust_cast_0_21_0_patches_rolling_the_pin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "vendor/rust_cast-0.21.0/PATCHES.md", "source_location": "L31", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_contributing_md", "label": "CONTRIBUTING.md", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L1"}, {"id": "$graphify-root$_contributing_contributing", "label": "Contributing", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L1"}, {"id": "$graphify-root$_contributing_branches", "label": "Branches", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L10"}, {"id": "$graphify-root$_contributing_the_release_cycle", "label": "The release cycle", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L28"}, {"id": "$graphify-root$_contributing_tracks_from_a_user_s_perspective", "label": "Tracks, from a user's perspective", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L48"}, {"id": "$graphify-root$_contributing_local_development", "label": "Local development", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L68"}, {"id": "$graphify-root$_contributing_ci", "label": "CI", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L75"}, {"id": "$graphify-root$_contributing_questions", "label": "Questions", "file_type": "document", "source_file": "CONTRIBUTING.md", "source_location": "L94"}], "edges": [{"source": "$graphify-root$_contributing_md", "target": "$graphify-root$_contributing_contributing", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_branches", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_the_release_cycle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_tracks_from_a_user_s_perspective", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L48", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_local_development", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L68", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_ci", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L75", "weight": 1.0}, {"source": "$graphify-root$_contributing_contributing", "target": "$graphify-root$_contributing_questions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CONTRIBUTING.md", "source_location": "L94", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"nodes": [{"id": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_md", "label": "PATCHES.md", "file_type": "document", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L1"}, {"id": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_vendoring_notes", "label": "Vendoring notes", "file_type": "document", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L1"}, {"id": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_rolling_the_pin", "label": "Rolling the pin", "file_type": "document", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L16"}, {"id": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_what_s_excluded_and_why", "label": "What's excluded and why", "file_type": "document", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L27"}, {"id": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_local_patches_not_upstream", "label": "Local patches (not upstream)", "file_type": "document", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L45"}], "edges": [{"source": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_md", "target": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_vendoring_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_vendoring_notes", "target": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_rolling_the_pin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_vendoring_notes", "target": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_what_s_excluded_and_why", "relation": "contains", "confidence": "EXTRACTED", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_vendoring_notes", "target": "$graphify-root$_breadcast_caststream_sys_vendor_openscreen_patches_local_patches_not_upstream", "relation": "contains", "confidence": "EXTRACTED", "source_file": "breadcast-caststream-sys/vendor/openscreen/PATCHES.md", "source_location": "L45", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||||
2
graphify-out/cache/stat-index.json
vendored
2
graphify-out/cache/stat-index.json
vendored
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue