diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5ce7294..2653617 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,7 +45,7 @@ jobs: # Windows and macOS builds using cargo-packager - name: Build with cargo-packager (Windows/macOS) if: runner.os != 'Linux' - working-directory: crates/coop + working-directory: desktop run: | cargo install cargo-packager --locked cargo packager --release @@ -154,13 +154,13 @@ jobs: - name: Create draft release id: create_release - uses: softprops/action-gh-release@v2 + uses: akkuman/gitea-release-action@v1 with: - tag_name: ${{ steps.version.outputs.tag }} - name: ${{ steps.version.outputs.tag }} + server_url: "https://git.reya.su/" + repository: "reya/coop" + token: ${{ secrets.GITEA_TOKEN }} draft: true prerelease: false - generate_release_notes: true files: | artifacts/**/* diff --git a/Cargo.toml b/Cargo.toml index 0d2c502..699ff5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/*", "desktop", "web"] default-members = ["desktop"] [workspace.package] -version = "1.0.0-beta3" +version = "1.0.0-beta4" edition = "2024" publish = false diff --git a/Cargo.toml-E b/Cargo.toml-E deleted file mode 100644 index 0d2c502..0000000 --- a/Cargo.toml-E +++ /dev/null @@ -1,56 +0,0 @@ -[workspace] -resolver = "2" -members = ["crates/*", "desktop", "web"] -default-members = ["desktop"] - -[workspace.package] -version = "1.0.0-beta3" -edition = "2024" -publish = false - -[workspace.dependencies] -# GPUI -gpui = { git = "https://github.com/zed-industries/zed" } -gpui_platform = { git = "https://github.com/zed-industries/zed", features = ["font-kit", "x11", "wayland"] } -gpui_linux = { git = "https://github.com/zed-industries/zed" } -gpui_windows = { git = "https://github.com/zed-industries/zed" } -gpui_macos = { git = "https://github.com/zed-industries/zed" } -gpui_tokio = { git = "https://github.com/zed-industries/zed" } -reqwest_client = { git = "https://github.com/zed-industries/zed" } - -# Nostr -nostr-lmdb = { git = "https://github.com/rust-nostr/nostr" } -nostr-connect = { git = "https://github.com/rust-nostr/nostr" } -nostr-blossom = { git = "https://github.com/rust-nostr/nostr" } -nostr-gossip-memory = { git = "https://github.com/rust-nostr/nostr" } -nostr-sdk = { git = "https://github.com/rust-nostr/nostr" } -nostr = { git = "https://github.com/rust-nostr/nostr", features = [ "nip96", "nip59", "nip49", "nip44" ] } - -# Others -anyhow = "1.0.44" -chrono = "0.4.38" -futures = "0.3" -itertools = "0.13.0" -log = "0.4" -oneshot = "0.1.10" -flume = { version = "0.11.1", default-features = false, features = ["async", "select"] } -rust-embed = "8.5.0" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -schemars = "1" -smallvec = "1.14.0" -smol = "2" -tracing = "0.1.40" -webbrowser = "1.0.4" -tracing-subscriber = { version = "0.3.18", features = ["fmt", "env-filter"] } - -[profile.release] -strip = true -opt-level = "z" -lto = true -codegen-units = 1 -panic = "abort" - -[profile.profiling] -inherits = "release" -debug = true diff --git a/GEMINI.md b/GEMINI.md deleted file mode 100644 index 8bc2571..0000000 --- a/GEMINI.md +++ /dev/null @@ -1,54 +0,0 @@ -# Coop - Gemini Context - -## Project Overview - -Coop is a simple, fast, and reliable Nostr client for secure messaging across all platforms. It is written in Rust and structured as a Cargo workspace. The project utilizes: -- **GPUI**: The GPU-accelerated UI framework developed by Zed Industries for cross-platform, high-performance user interfaces. -- **Rust Nostr SDK**: For handling the Nostr protocol (including NIPs like 44, 49, 59, 96). - -The workspace is divided into several sub-crates under `crates/`, including the main application (`coop`), UI components (`ui`, `chat_ui`, `title_bar`, `theme`), and domain logic (`chat`, `person`, `relay_auth`, `state`, `device`). - -## Building and Running - -### Prerequisites -- **Rust Toolchain**: Use `rustup` to install the Rust toolchain. -- **System Dependencies**: Depending on your OS, you must run the provided setup scripts to install necessary libraries before compiling. - -### Commands -- **Install Linux Dependencies**: - ```bash - ./script/linux - ``` -- **Install FreeBSD Dependencies**: - ```bash - ./script/freebsd - ``` -- **Install macOS Dependencies**: - ```bash - ./script/macos - ``` -- **Build the project** (debug mode): - ```bash - cargo build - ``` -- **Run the application**: - ```bash - cargo run - ``` -- **Build for Production** (optimized release binary): - ```bash - cargo build --release - ``` - -### Packaging -- Packaging scripts and manifests are available in the `script/` directory (e.g., `bundle-linux`, `bundle-snap`, `prepare-flathub`) and the `flathub/` directory. - -## Development Conventions - -- **Code Formatting**: The project enforces a strict Rust code formatting style via `rustfmt.toml`. - - **Edition**: 2024 - - **Indentation**: Block style with 4 tab spaces. - - **Imports**: Grouped by `StdExternalCrate`, with module granularity and automatic reordering of imports, modules, and impl items. -- **Modularity**: Code is split into focused crates (e.g., separating UI code in `chat_ui` from core messaging logic in `chat`). When contributing, ensure your code respects these boundaries. -- **Contributing**: Contributions are made via Pull Requests on the `lumehq/coop` GitHub repository. Ensure all tests pass before submitting. -- **UI Architecture**: Because Coop uses GPUI, UI components are built using GPUI's element tree structure, event handling, and view contexts. diff --git a/README.md b/README.md index 09e8e65..5320197 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ ![Coop](/docs/coop.png)

- - Actions + + Actions - GitHub repo size - GitHub issues - GitHub pull requests + GitHub repo size + GitHub issues + GitHub pull requests

Coop is a simple, fast, and reliable nostr client for secure messaging across all platforms. @@ -36,7 +36,7 @@ To install Coop, follow these steps: 1. **Download the Latest Release**: - - Visit the [Coop Releases page on GitHub](https://github.com/lumehq/coop/releases). + - Visit the [Coop Releases page on GitHub](https://github.com/reyakov/coop/releases). - Download the package that matches your operating system (Windows, macOS, or Linux). 2. **Install**: @@ -65,7 +65,7 @@ Coop is built using Rust and GPUI. All Nostr related stuffs handled by [Rust Nos 1. Clone the repository: ```bash - git clone https://github.com/lumehq/coop.git + git clone https://github.com/reyakov/coop.git cd coop ``` @@ -118,7 +118,7 @@ For more information, see the [Contributing](#contributing) section. - [Rust Nostr](https://github.com/rust-nostr/nostr/) - [GPUI](https://www.gpui.rs/) - [GPUI Components](https://github.com/longbridge/gpui-component/) -- [Coop Issue Tracker](https://github.com/lumehq/coop/issues/) +- [Coop Issue Tracker](https://github.com/reyakov/coop/issues/) ### License diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index aea5a71..d20c678 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -14,7 +14,7 @@ product-name = "Coop" description = "Chat Freely, Stay Private on Nostr" identifier = "su.reya.coop" category = "SocialNetworking" -version = "1.0.0-beta3" +version = "1.0.0-beta4" out-dir = "../dist" before-packaging-command = "cargo build --release" resources = ["Cargo.toml", "src"] diff --git a/desktop/Cargo.toml-E b/desktop/Cargo.toml-E deleted file mode 100644 index aea5a71..0000000 --- a/desktop/Cargo.toml-E +++ /dev/null @@ -1,71 +0,0 @@ -[package] -name = "coop" -version.workspace = true -edition.workspace = true -publish.workspace = true - -[[bin]] -name = "coop" -path = "src/main.rs" - -[package.metadata.packager] -name = "Coop" -product-name = "Coop" -description = "Chat Freely, Stay Private on Nostr" -identifier = "su.reya.coop" -category = "SocialNetworking" -version = "1.0.0-beta3" -out-dir = "../dist" -before-packaging-command = "cargo build --release" -resources = ["Cargo.toml", "src"] -icons = [ - "resources/32x32.png", - "resources/128x128.png", - "resources/128x128@2x.png", - "resources/icon.icns", - "resources/icon.ico", -] - -[dependencies] -assets = { path = "../crates/assets" } -ui = { path = "../crates/ui" } -title_bar = { path = "../crates/title_bar" } -theme = { path = "../crates/theme" } -common = { path = "../crates/common" } -state = { path = "../crates/state" } -device = { path = "../crates/device" } -chat = { path = "../crates/chat" } -chat_ui = { path = "../crates/chat_ui" } -settings = { path = "../crates/settings" } -auto_update = { path = "../crates/auto_update" } -person = { path = "../crates/person" } -relay_auth = { path = "../crates/relay_auth" } - -gpui.workspace = true -gpui_platform.workspace = true -gpui_linux.workspace = true -gpui_windows.workspace = true -gpui_macos.workspace = true -gpui_tokio.workspace = true -reqwest_client.workspace = true - -nostr-connect.workspace = true -nostr-sdk.workspace = true - -anyhow.workspace = true -serde.workspace = true -serde_json.workspace = true -itertools.workspace = true -log.workspace = true -smallvec.workspace = true -smol.workspace = true -futures.workspace = true -oneshot.workspace = true -webbrowser.workspace = true -tracing-subscriber.workspace = true - -indexset = "0.12.3" - -[target.'cfg(target_os = "macos")'.dependencies] -# Temporary workaround https://github.com/zed-industries/zed/issues/47168 -core-text = "=21.0.0"