Repos need not carry a `xyz.radicle.project` payload; the default
branch can come from `xyz.radicle.crefs` alone. Such repos got no
counts and no default branch, and failed schema validation in
explorer, which broke the parse of a whole listing.
httpd:
- Add top-level `cobs` with issue, patch and bucketed release counts
- Add top-level `defaultBranch`, qualified like the crefs payload
- Omit a count the node cannot determine instead of reporting zero
- Drop `head`: the tip is `refs[defaultBranch]`
- Keep counts in the project payload for older clients until a
major release
- Keep the project payload when a COB read fails
- Keep `meta.releases` a single count: delegate + other
- Log and skip canonical ref rules and refs that fail to read,
so one bad ref doesn't drop the default branch tip
explorer:
- Model `cobs` and `defaultBranch`, adapting older nodes to one shape
- Resolve the default branch from the crefs HEAD on older nodes
- Collect the shims for older httpd in http-client/lib/compat.ts,
each naming the httpd release that the client can drop it with
- Add `defaultBranchTip`, replacing `head`, with a fallback to the
legacy `meta.head`
- Make the project payload and its legacy meta optional
- Fall back to the RID for the repo name, and show a placeholder
for a missing name in repo cards and the header
- Hide a counter instead of reading a missing count as zero
- Fall back to a full-page check for "More" without counts
- Add a `repo.sourceUnavailable` route for repos without a
default branch or tip
- Browse explicit revisions and offer the branch selector without
a default branch
- List these repos in repo grids and on the landing page
- Say the node is older or built without releases
- Scope release pages in the client, so views never call the shims
- Read OG worker repos through the same compat shims
- Share the repo name and default branch helpers with the OG worker
CI:
- Add check:open-graph, a wrangler deploy dry run
- Run it in GitHub CI, Buildkite and check:ci
- Install explorer's dependencies first: the worker
resolves compat.ts imports, such as zod, from there
Tests:
- Test that a build without releases omits the count
- Test that one failing rule keeps the others
- Test the repo shape across httpd versions and the release shims
- Test `hasMorePages` and `repoName`
- Test repos without a project payload end to end
Extracts the avatar components and the style tokens into shared/ui, which
both apps consume as a workspace package, to try out ADR 2. Nix and the
Docker setups are not updated yet.
Every patch saved its own Rust caches, up to 3 GB per patch, which
pushed the repo past GitHub's 10 GB cache limit and evicted the ones
master builds rely on. Patches now restore master's caches, and
line-table-only debug info keeps the builds and caches smaller.
Desktop's GitHub workflows are already prefixed `desktop-`. With both
projects in one repo, the prefix shows which project a workflow or
Buildkite step belongs to.
GitHub only reads workflows from the root `.github/` and ryph only reads
the root `.ryph/`. The desktop workflows now run in `desktop/`, and the
ryph setup installs and warms both projects.
- Add release read API to httpd as cargo feature enabled by default
- Add Releases and Release views to the UI
- Filter out redacted artifacts and mark delegate authors
- Degrade releases UI gracefully with older radicle-httpd versions
- Hide fully redacted releases
- Skip releases in the list endpoint when every artifact was redacted by
its author or a delegate, so no empty release entries are shown
- Keep them reachable with showRedacted=true and by release id
- Add e2e tests for the release routes
Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
This also drops .tool-versions to keep a single source of truth for the
node version in .nvmrc. We also point the github actions to .nvmrc now.
I'm the only dev who's using asdf to manage my tooling and I decided to
just configure it to fall back to .nvmrc via `legacy_version_file =
yes`.
radicle-httpd and rad-web have been removed from the files.radicle.xyz
tar files, so we should build them to always have the web client be
compatible with the httpd
Since we don't have or want any deployments on IPFS, and we don't have
much use for hash routing else, we can clean up some code and remove
some tests.
This has introduced CI issues where e2e tests show up as successfull
as workflow but when entering the workflow show up as failed.
This is due to the nature of `continue-on-error` which marks a workflow
as successfull even if there where errors
Due to us moving to Radicle, we need to implement the following changes.
- We don't need the CI to run on pull_requests anymore.
- We want the CI to run on any push.
- For visual tests we don't want to update any comments and just fail
the test and upload the artifacts for checking.
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
It’s not necessary anymore to add the folder with the heartwood test
binaries to `PATH` before running the end-to-end tests.
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
Also moves the HASH_ROUTING env variable from being modified inside the
hashRouter.spec.ts into the webserver config in the
playwright.config.ipfs.ts
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>