CONTRIBUTING.md (2843B)
1 # Contributing 2 3 Rad Roots is an open-source project, and we welcome all contributions — including code improvements, bug fixes, translations, new features, and bug reports. 4 5 ## Translations 6 7 If you would like to contribute by translating the app into another language, please visit our [localisation repository](https://github.com/radrootslabs/packages-locales). To contribute translations: 8 9 1. *Fork the repository and add your language files following the existing structure.* 10 11 2. *Submit a Pull Request with your changes.* 12 13 14 If the language you would like to add translations for is not yet set up in the repository let us know by [opening an issue](https://github.com/radrootslabs/packages-locales/issues), or [email us](mailto:support@radroots.dev) and we will assist you in adding the required files. 15 16 ## Development Environment 17 18 Ensure the required system dependencies are installed: 19 20 *Rust* 21 ```bash 22 $ cargo --version 23 > cargo 1.88.0 (873a06493 2025-05-10) 24 ``` 25 26 *NodeJS* 27 ```bash 28 $ node --version 29 > v20.18.0 30 ``` 31 32 *Yarn* 33 ```bash 34 $ yarn --version 35 > 1.22.22 36 ``` 37 38 ## Building 39 40 This app is implemented as a progressive web application using [SvelteKit](https://svelte.dev/), and maintained as a monorepository using [Turbo](https://turborepo.com/) with individual packages tracked as Git submodules. 41 42 To begin, first clone the repository and set up your local working copy: 43 44 ```bash 45 mkdir pwa && cd pwa 46 47 git clone https://github.com/radrootslabs/pwa . 48 49 git remote rename origin upstream 50 51 git remote add origin https://github.com/<YOUR-USERNAME>/pwa.git 52 53 git push -u origin master 54 ``` 55 56 Initialize and update Git submodules: 57 ```bash 58 git submodule update --init --recursive 59 ``` 60 61 Checkout Git submodules branches: 62 ```bash 63 git submodule foreach 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch)' 64 ``` 65 66 Install the application dependencies: 67 ```bash 68 pnpm install 69 ``` 70 71 72 Configure local environment variables: 73 ```bash 74 (cd ../../../.. && uv run --project . --package radroots_scripts radroots-scripts local env generate) 75 ``` 76 77 Build the application: 78 ```bash 79 pnpm build:app 80 ``` 81 82 Run the application in development mode: 83 ```bash 84 (cd ../../../.. && uv run --project . --package radroots_scripts radroots-scripts local web app run) 85 ``` 86 87 ## Contributing 88 89 1. Create a feature branch 90 2. Make your changes 91 3. Submit a Pull Request 92 4. Wait for review and address feedback 93 94 ## Additional Resources 95 96 - [Rust Documentation](https://www.rust-lang.org/tools/install) 97 - [NodeJS Documentation](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating) 98 - [Yarn Documentation](https://classic.yarnpkg.com/en/docs) 99 - [SvelteKit Documentation](https://svelte.dev/docs/kit/introduction) 100 - [Turbo Documentation](https://turborepo.com/docs) 101 102 ## License 103 104 Refer to the LICENSE file in the repository for terms of use and distribution.