diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 14ef1d2..8586b3f 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -1,10 +1,6 @@ ## Code of Conduct -This is adapted from the Revolt Lounge. - 1. Please be kind to one another, remember the human. -2. (Not applicable to GitHub.) -3. Trolling, flaming, baiting or other attention-stealing behaviour is not welcome. -4. Racism, homophobia, or otherwise demeaning a group of people is not allowed, this is an inclusive space and we ask that you respect this. - -These rules only apply to the Revolt Testers server and any public communication with the team, such as GitHub discussions or issues. Communities may apply these rules to their own servers. +2. Spam and unsolicited advertisements are not permitted. +3. Trolling, flaming, baiting or other attention-stealing behaviour is not allowed. +4. Discrimination or otherwise demeaning a group of people is not permitted, this is an inclusive space and we ask that you respect this. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 38728b3..8914cfe 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,22 +1,3 @@ -> # Client Refactoring! -> Revite is currently being deprecated and replaced with a Solid.js client, for more information see https://github.com/revoltchat/revoltchat-solid-client-monorepo/issues/14 with information on how to contribute for the time being. - -# Finding Issues - -You can find issues using the main project board, here are some categories you should look at in-order: -1. If you are new to the code base or are looking for issues we really need help with, look at ["What can I help with?"](https://github.com/orgs/revoltchat/projects/3/views/11) -2. Issue Board ["Free Issues"](https://github.com/orgs/revoltchat/projects/3/views/1): issues that anyone can pick up and are generally free to work on. -3. Issue Board ["Todo"](https://github.com/orgs/revoltchat/projects/3/views/1): these are issues that are probably fine to pick up, but please ask first since a lot of these tend to be complicated and potentially already planned. -4. Working on new issues and fixes: ideally you should run new features by us, most fixes are probably going to be alright though, we wouldn't want to reject any PRs that we don't deem suitable after work has already been done. If it's a fix, make sure to make an issue for it first, if it's a new feature, it may be better suited in [Feature Suggestions](https://github.com/revoltchat/revolt/discussions/categories/feature-suggestions). - -Any issues marked with "Future Work" or with a milestone greater than the current milestone are out of bounds and should not be worked on since it's likely that the team already has a plan in place, any work you may do may conflict with prior ideas, and your work may potentially be rejected if it does fit the criteria exactly. In general, these issues are just postponed to reduce long term technical debt, i.e. allow current issues to be handled. - -# Working on Issues - -Be sure to: -- Follow the contributing guidelines below. -- Notify us when you're working on an issue, either by leaving a comment (you don't necessarily need to be assigned to an issue) or if you forget, be sure to link your PR back to the original issue by including "Fixes \#1" in your PR to ensure we keep track of this stuff. - # Contributing - Commit using [Conventional Commit style](https://www.conventionalcommits.org/en/v1.0.0-beta.2/). @@ -27,7 +8,11 @@ Be sure to: ### Contributing Source Translations +> [!IMPORTANT] +> For any other language, always use [Weblate](https://translate.revolt.chat)! + You may have to add or modify source translations to achieve something in the client, to modify source translations: + - PR your translations to the [translations repository](https://github.com/revoltchat/translations). - Use these translations in your local client, but do not commit changes to the `external/locale` submodule as to avoid conflicts with other PRs. - Language definitions will be updated accordingly after merge. @@ -35,13 +20,21 @@ You may have to add or modify source translations to achieve something in the cl # Merging Pull Requests To keep commit history nice and tidy, always use [Conventional Commit style](https://www.conventionalcommits.org/en/v1.0.0-beta.2/) for any merge commit messages. And where possible: + 1. `Squash and Merge` for bug fixes / small features, especially if the fix has multiple iterations, [example](https://github.com/revoltchat/revite/pull/492), or if the commits don't follow conventional commit style. -Beyond this point you should usually check with a maintainer on how to merge, (drop a message in the "Ready to merge" channel), and should only proceed with the following if the commits follow [Conventional Commit style](https://www.conventionalcommits.org/en/v1.0.0-beta.2/): +Beyond this point you should usually check with a maintainer on how to merge, and should only proceed with the following if the commits follow [Conventional Commit style](https://www.conventionalcommits.org/en/v1.0.0-beta.2/): 2. Prefer to `Rebase and Merge` where possible. -3. Create a merge request with commit message similar to `chore: merge something from x (#1)`. +3. Create a merge request with commit message similar to `merge: remote-tracking branch abc into xyz (#1)`. + +# What can I help with? -# Triage +The main project board can serve as a helpful starting point: -If you are part of the triage team, or are interested in triage, the [full guide is available here](https://github.com/orgs/revoltchat/teams/triage-team/discussions/1). +1. If you are new to the code base or are looking for issues we really need help with, look at ["What can I help with?"](https://github.com/orgs/revoltchat/projects/3/views/11) +2. Issue Board ["Free Issues"](https://github.com/orgs/revoltchat/projects/3/views/1): issues that anyone can pick up and are generally free to work on +3. Issue Board ["Todo"](https://github.com/orgs/revoltchat/projects/3/views/1): these are issues that are probably fine to pick up, but please ask first since a lot of these tend to be complicated and potentially already planned +4. Working on new issues and fixes: ideally you should run new features by us, most fixes are probably going to be alright though, we wouldn't want to reject any PRs that we don't deem suitable after work has already been done. If it's a fix, make sure to make an issue for it first, if it's a new feature, it may be better suited in [Feature Suggestions](https://github.com/revoltchat/revolt/discussions/categories/feature-suggestions) + +Any issues marked with "Future Work" or with a milestone greater than the current milestone are out of bounds and should not be worked on since it's likely that the team already has a plan in place, any work you may do may conflict with prior ideas, and your work may potentially be rejected if it does fit the criteria exactly. In general, these issues are just postponed to reduce long term technical debt, i.e. allow current issues to be handled. diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 6a1d83d..9d3fe0d 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -7,28 +7,29 @@ Before reporting a vulnerability, please make sure it is in scope, for example y - Server vulnerabilities that may escalate user privileges or allow exfiltration of data. - Client vulnerabilities that allow remote code execution or allow exfiltration of data. -You should not report anything that requires phyiscal access to a client machine to achieve, such as: +You should not report anything that requires physical access to a client machine to achieve, such as: - Intercepting requests to visually affect client privilege (and not actual server privilege) - Exfiltration of user credentials through third party sites -If you would like to report a security vulnerability, -please email **[security@revolt.chat](mailto:security@revolt.chat)**, -this will open a new ticket in ticket system, you should receive a response -within the next couple of days, potentially within a few minutes if someone -is currently active. +You may disclose security vulnerabilities to us in two different ways: -To help us best triage the issue, please provide: +- Create a draft security advisory on the appropriate GitHub repository on [our organisation](https://github.com/revoltchat). + + You can select the "Security" tab once on the repository then fill out the details as appropriate. + +- Email us at [security@revolt.chat](mailto:security@revolt.chat) to open a new ticket. + + You should receive a response within the next couple of days. + +In general, please always provide: - The type of issue at hand -- The name of the relevant project affected +- The name of the relevant project(s) affected - Reproduction steps -- Reference to any relevant source file(s) that you may suspect are causing the issue -- Any extra information about your configuration. +- Reference to any relevant source file(s) that you may suspect are causing the issue (if you can) +- Any extra information about your configuration - Description of potential ways this can be exploited, if you can list any - -For revoltchat/revite in particular: - -- Please include the commit hash of the client, it is visible in settings under the log out button. +- Any version information (e.g. commit hash for web client, API version, etc) Thank you for helping Revolt. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2a8570f..5fd79cd 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,5 +1,4 @@ ## Please make sure to check the following tasks before opening and submitting a PR -* [ ] I understand and have followed the [contribution guide](https://github.com/revoltchat/revolt/discussions/282) -* [ ] I have tested my changes locally and they are working as intended -* [ ] These changes do not have any notable side effects on other Revolt projects +- [ ] I understand and have followed the [contribution guide](https://github.com/revoltchat/.github/blob/master/.github/CONTRIBUTING.md) +- [ ] I have tested my changes locally and they are working as intended diff --git a/profile/README.md b/profile/README.md index 5f5c403..1bb8fe5 100644 --- a/profile/README.md +++ b/profile/README.md @@ -11,13 +11,12 @@ - ### [🌍 Website](https://revolt.chat): The Revolt website. - ### [💖 Donate to Revolt](https://insrt.uk/donate): Help support the project. - ### [📖 Support](https://support.revolt.chat): Get help with using Revolt. -- ### [✨ awesome-revolt](https://github.com/insertish/awesome-revolt): Find libraries and more! +- ### [✨ awesome-revolt](https://github.com/revoltchat/awesome-revolt): Find libraries and more! - ### [😎 Contributing to Revolt](https://github.com/revoltchat/.github/blob/master/.github/CONTRIBUTING.md): Learn how to contribute to Revolt. - ### [🦜 Discussions](https://github.com/orgs/revoltchat/discussions): Request features or ask questions. -- ### [🔧 Developer Documentation](https://developers.revolt.chat): Docs for developers. +- ### [🔧 Developer Documentation](https://developers.revolt.chat): Documentation for developers. - ### [💻 Project Tracker](https://github.com/orgs/revoltchat/projects/3/views/1): Full GitHub project overview. - ### [🕓 Roadmap](https://trello.com/b/4e2O7tge/roadmap): High-level product roadmap. -- ### [🧰 Internal Homepage](https://trello.com/b/qEUXfFL5/internal-management): Internal project management board (for Revolt team members). # Get Revolt @@ -25,38 +24,68 @@ Get Revolt for your platform [from the website](https://revolt.chat/download)! # Repositories -Below is a list of Revolt client repositories. +## Clients -|Repository|Description|Maintainer(s)|Recommended For Use| -|---|---|:-:|:-:| -|[revite](https://github.com/revoltchat/revite)|Preact Progressive Web App|On Hold|✅| -|[frontend](https://github.com/revoltchat/frontend)|Solid.js Progressive Web App|[@insertish](https://github.com/insertish)|| -|[android](https://github.com/revoltchat/android) (private repo)|Android App|[@infi](https://github.com/infi)|| -|[ios](https://github.com/revoltchat/ios) (private repo)|iOS App|[@zomatree](https://github.com/zomatree)|| -|[rvmob](https://github.com/revoltchat/rvmob)|React Native Client|[@Rexogamer](https://github.com/rexogamer)|| -|[mutiny](https://github.com/revoltchat/mutiny)|GTK4 Desktop Client|[@lo2dev](https://github.com/lo2dev)|| +Here are clients being maintained under Revolt's organisation, though not all of them are necessarily maintained by the core team and instead are community projects (you can also find more [third-party clients here](https://github.com/revoltchat/awesome-revolt?tab=readme-ov-file#-third-party-clients)). -Here is a list of important repositories and who is managing each. +> [!NOTE] +> revoltchat/frontend is the next-generation Revolt client, [more details here](https://revolt.chat/posts/refreshing-revolt-web) + +| Repository | Description | Maintainer(s) | Recommended For Use | Working State | +| ------------------------------------------------------------ | ---------------------------- | :----------------------------------------: | :-----------------: | :-----------: | +| [revite](https://github.com/revoltchat/revite) | Preact Progressive Web App | [@insertish](https://github.com/insertish) | ✅ | ✅ | +| [frontend](https://github.com/revoltchat/frontend) | Solid.js Progressive Web App | [@insertish](https://github.com/insertish) | | 🚥 | +| [android](https://github.com/revoltchat/android) (private †) | Android App | [@infi](https://github.com/infi) | | 🚥 | +| [ios](https://github.com/revoltchat/ios) (private ‡) | iOS App | [@zomatree](https://github.com/zomatree) | | 🚥 | +| [rvmob](https://github.com/revoltchat/rvmob) | React Native Client | [@Rexogamer](https://github.com/rexogamer) | | ✅ | +| [mutiny](https://github.com/revoltchat/mutiny) | GTK4 Desktop Client | [@lo2dev](https://github.com/lo2dev) | | | + +† Currently in a limited private beta. + +‡ Currently still under development. + +There are also some wrappers and adjacent repositories: + +| Repository | Description | Maintainer(s) | +| -------------------------------------------------------- | ------------------------------------- | :----------------------------------------: | +| [desktop](https://github.com/revoltchat/desktop) | Electron desktop wrapper for Revite | [@insertish](https://github.com/insertish) | +| [android-twa](https://github.com/revoltchat/android-twa) | Android Trusted Web Activity | [@insertish](https://github.com/insertish) | +| [fdroid](https://github.com/revoltchat/fdroid) | F-droid repository (Android releases) | [@insertish](https://github.com/insertish) | +| [components](https://github.com/revoltchat/components) | Components library for Revite | | -|Repository|Description|Maintainer(s)| -|---|---|:-:| -|[revolt](https://github.com/revoltchat/revolt)|Discussion board|| -|[backend](https://github.com/revoltchat/backend)|Rust backend services|[@insertish](https://github.com/insertish)| -|[vortex](https://github.com/revoltchat/vortex)|Voice server|On Hold| -|[autumn](https://github.com/revoltchat/autumn)|File server micro-service|[@insertish](https://github.com/insertish)| -|[january](https://github.com/revoltchat/january)|Media proxy and embed generator|[@insertish](https://github.com/insertish)| -|[revolt.js](https://github.com/revoltchat/revolt.js)|JavaScript library|[@insertish](https://github.com/insertish)| -|[api](https://github.com/revoltchat/api)|JavaScript API library|[@insertish](https://github.com/insertish)| -|[revolt.py](https://github.com/revoltchat/revolt.py)|Python library|[@Zomatree](https://github.com/Zomatree)| -|[translations](https://github.com/revoltchat/translations)|Client translations|[@Rexogamer](https://github.com/Rexogamer)| -|[themes](https://github.com/revoltchat/themes)|Revite themes|[@Rexogamer](https://github.com/Rexogamer)| -|[desktop](https://github.com/revoltchat/desktop)|Electron desktop wrapper for Revite|[@insertish](https://github.com/insertish)| -|[android-twa](https://github.com/revoltchat/android-twa)|Android Trusted Web Activity|[@insertish](https://github.com/insertish)| -|[documentation](https://github.com/revoltchat/documentation)|Developers site|[@insertish](https://github.com/insertish), [@Rexogamer](https://github.com/Rexogamer)| -|[genemoji](https://github.com/revoltchat/genmoji)|Emoji pack structure unification toolchain|[@infi](https://github.com/infi)| -|[self-hosted](https://github.com/revoltchat/self-hosted)|Docker Compose Configuration|[@insertish](https://github.com/insertish)
(nobody assigned to issues)| -|[legal](https://github.com/revoltchat/legal)|Legal documents|[@insertish](https://github.com/insertish)| -|[contributions](https://github.com/revoltchat/contributions)|Source contribution tracker|[@insertish](https://github.com/insertish)| -|[fdroid](https://github.com/revoltchat/fdroid)|F-droid repository|[@insertish](https://github.com/insertish)| +## Server software +Below is a list of all the repositories relevant to developing the core Revolt service. + +| Repository | Description | Maintainer(s) | +| ---------------------------------------------------- | ---------------------------------------- | :----------------------------------------: | +| [backend](https://github.com/revoltchat/backend) | Rust core libraries and backend services | [@insertish](https://github.com/insertish) | +| [rfcs](https://github.com/revoltchat/rfcs) | RFCs for changes to Revolt | [@insertish](https://github.com/insertish) | +| [api](https://github.com/revoltchat/api) | JavaScript API library | [@insertish](https://github.com/insertish) | +| [revolt.js](https://github.com/revoltchat/revolt.js) | JavaScript library | [@insertish](https://github.com/insertish) | + +There are also some components which we intend to merge into the backend repository in the future: + +| Repository | Description | Maintainer(s) | +| ------------------------------------------------ | ------------------------------- | :----------------------------------------: | +| [vortex](https://github.com/revoltchat/vortex) | Voice server | On Hold | +| [autumn](https://github.com/revoltchat/autumn) | File server micro-service | [@insertish](https://github.com/insertish) | +| [january](https://github.com/revoltchat/january) | Media proxy and embed generator | [@insertish](https://github.com/insertish) | + +## Everything else + +Here is a list of important repositories and who is managing each. +| Repository | Description | Maintainer(s) | +| -------------------------------------------------------------- | ------------------------------------------ | :------------------------------------------------------------------------------------: | +| [awesome-revolt](https://github.com/revoltchat/awesome-revolt) | Awesome list for Revolt | @everyone | +| [cla](https://github.com/revoltchat/cla) | Contributor License Agreement | [@insertish](https://github.com/insertish) | +| [contributions](https://github.com/revoltchat/contributions) | Open source contribution tracker | [@insertish](https://github.com/insertish) | +| [documentation](https://github.com/revoltchat/documentation) | Developers site | [@insertish](https://github.com/insertish), [@Rexogamer](https://github.com/Rexogamer) | +| [genemoji](https://github.com/revoltchat/genmoji) | Emoji pack structure unification toolchain | [@infi](https://github.com/infi) | +| [legal](https://github.com/revoltchat/legal) | Legal documents | [@insertish](https://github.com/insertish) | +| [revolt](https://github.com/revoltchat/revolt) | Organisation repository | | +| [revolt.chat](https://github.com/revoltchat/revolt.chat) | Landing page | | +| [self-hosted](https://github.com/revoltchat/self-hosted) | Docker Compose Configuration | [@insertish](https://github.com/insertish)
(nobody assigned to issues) | +| [themes](https://github.com/revoltchat/themes) | Revite themes | [@Rexogamer](https://github.com/Rexogamer) | +| [translations](https://github.com/revoltchat/translations) | Client translations | [@Rexogamer](https://github.com/Rexogamer) | diff --git a/profile/android.png b/profile/android.png deleted file mode 100644 index 7ebd1e2..0000000 Binary files a/profile/android.png and /dev/null differ diff --git a/profile/arch.png b/profile/arch.png deleted file mode 100644 index c1de580..0000000 Binary files a/profile/arch.png and /dev/null differ diff --git a/profile/macOS.png b/profile/macOS.png deleted file mode 100644 index e3da2a1..0000000 Binary files a/profile/macOS.png and /dev/null differ diff --git a/profile/tux.png b/profile/tux.png deleted file mode 100644 index 0568c4a..0000000 Binary files a/profile/tux.png and /dev/null differ diff --git a/profile/windows.png b/profile/windows.png deleted file mode 100644 index 21890d6..0000000 Binary files a/profile/windows.png and /dev/null differ