mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-18 19:30:27 +08:00
So both the docs and agents know `desktop/` is its own project, with commands run from there.
99 lines
2.7 KiB
Markdown
99 lines
2.7 KiB
Markdown
# Radicle Desktop
|
|
|
|
This desktop application lets you interact with [Radicle][rad], a peer-to-peer code collaboration and publishing stack.
|
|
|
|
It lives in the `desktop/` folder of the radicle-gui repository, next to the
|
|
Radicle web explorer. Run all commands below from `desktop/`.
|
|
|
|
## Installation
|
|
|
|
See [radicle.dev/desktop#install](https://radicle.dev/desktop#install).
|
|
|
|
### From source
|
|
|
|
**Prerequisites:**
|
|
|
|
- [Node.js][nod] (24 or higher) and [npm][npm]
|
|
- [Rust][rus] toolchain (1.77 or higher)
|
|
- [Tauri system dependencies][tau]
|
|
|
|
On Windows, NPM's script shell must be set to a POSIX compatible shell such as
|
|
[Git Bash][gfw]:
|
|
|
|
```
|
|
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
|
|
```
|
|
|
|
Run the following commands to build the desktop app locally:
|
|
|
|
```
|
|
git clone https://seed.radicle.dev/z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git radicle-gui
|
|
cd radicle-gui/desktop
|
|
npm install
|
|
npm run tauri build
|
|
```
|
|
|
|
Then run one of the builds that the script outputs at the end.
|
|
|
|
## Development
|
|
|
|
To start the app in development mode with hot reload:
|
|
|
|
```
|
|
npm run dev
|
|
```
|
|
|
|
To log how long every backend command takes, for performance work, set
|
|
`VITE_LOG_INVOKE_TIMINGS=true`. Each call then prints `[invoke] <command> <ms>ms`
|
|
to the browser console (visible at debug level):
|
|
|
|
```
|
|
VITE_LOG_INVOKE_TIMINGS=true npm run dev
|
|
```
|
|
|
|
A dev build uses its own identifier, so it runs next to an installed release,
|
|
and it never registers itself as the handler for `rad:` links. On Linux and
|
|
Windows, open a link in it by starting the dev binary a second time with the
|
|
link as its argument, while `npm run dev` is running:
|
|
|
|
```
|
|
target/dev-without-assertions/radicle-desktop rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
|
|
```
|
|
|
|
On macOS links only reach app bundles. Quit the installed app, then build and
|
|
open a debug bundle:
|
|
|
|
```
|
|
npm run tauri build -- --debug --bundles app
|
|
```
|
|
|
|
## Releasing
|
|
|
|
Releases are driven by an interactive, phased script. Start one with:
|
|
|
|
```
|
|
scripts/release --phase prep --version X.Y.Z
|
|
```
|
|
|
|
Each phase does its mechanical work, then prints the manual tasks for its gate
|
|
and the exact flag to resume with. List the phases and see the configuration
|
|
with `scripts/release --list` and `scripts/release --help`. Releases are tagged
|
|
`releases/desktop/<version>`.
|
|
|
|
## Getting in touch
|
|
|
|
To get in touch with the maintainers, sign up to our [official chat on Zulip][zul].
|
|
|
|
## License
|
|
|
|
The UI is distributed under the terms of GPLv3. See [LICENSE][lic] for details.
|
|
|
|
[gfw]: https://gitforwindows.org
|
|
[lic]: ./LICENSE
|
|
[rad]: https://radicle.dev
|
|
[nod]: https://nodejs.org
|
|
[npm]: https://www.npmjs.com
|
|
[rus]: https://www.rust-lang.org/
|
|
[tau]: https://v2.tauri.app/start/prerequisites/#system-dependencies
|
|
[zul]: https://radicle.zulipchat.com/#narrow/stream/444463-desktop
|