this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add CONTRIBUTING guide and update README

+207 -2
+205
CONTRIBUTING.md
··· 1 + # Contributing to Lumina 2 + 3 + > IMPORTANT 4 + > 5 + > This project is not hosted on GitHub or Codeberg. However, you can contribute by sending pull requests to the project's repository or any of it's official mirrors. I'll be happy to review and merge your contributions to the main repository. 6 + > 7 + > If you turn into a frequent contributor, you may contact me to gain a <https://git.strawmelonjuice.com/> account to contribute on the main repository. 8 + 9 + Thank you for your interest in contributing! This document outlines how to set up your environment, follow the style, and submit changes. 10 + 11 + --- 12 + 13 + ## Where to contribute 14 + 15 + - Main repository (primary): <https://git.strawmelonjuice.com/strawmelonjuice/lumina> 16 + - Official mirrors: <https://codeberg.org/strawmelonjuice/lumina>, <https://github.com/strawmelonjuice/lumina> 17 + - Note about GitHub: Any changes made on GitHub will be overwritten by automated force-pushes from strawmelonjuiceforge and may not be reviewed. 18 + 19 + Please open issues and submit pull requests (PRs) on the main repository or an official mirror. 20 + 21 + Frequent contributors may request an account on the main forge to collaborate more directly: <https://git.strawmelonjuice.com/>. 22 + 23 + --- 24 + 25 + ## Code of Conduct 26 + 27 + - Be respectful and constructive. 28 + - Assume good intent and seek clarity. 29 + - Harassment, discrimination, and personal attacks are not tolerated. 30 + 31 + If you experience or witness unacceptable behavior, contact the maintainer via the main forge. 32 + 33 + --- 34 + 35 + ## Project layout 36 + 37 + - `server/` — Rust (Rocket) server application. 38 + - `client/` — Gleam application targeting JavaScript (bundled to browser). 39 + - `mise/` — Task definitions for development flows. 40 + - `data/` — Local runtime data directory (created by tasks). 41 + - Root files — Workspace-level configuration, license, docs, and Docker-related files. 42 + 43 + --- 44 + 45 + ## Prerequisites 46 + 47 + - Rust toolchain (latest stable) with `rustfmt` and (optionally) `clippy`. 48 + - Gleam. 49 + - Bun. 50 + - Node is not required when using Bun. 51 + - Redis/Postgres if you want to test those backends, otherwise SQLite is the default for development. 52 + - Optional: Watchexec (installed automatically via tasks), Taplo, Prettier (run via tasks). 53 + 54 + This repository uses `mise` to manage tools and developer tasks: 55 + - Install mise: https://mise.jdx.dev/ 56 + - Then install toolchain/tool deps used by the project and tasks: 57 + ```sh 58 + mise install 59 + ``` 60 + 61 + --- 62 + 63 + ## Local setup 64 + 65 + Environment is configured via environment variables. For development, the server prefers a `.env` file in your instance folder: `$LUMINAFOLDER/.env`. 66 + 67 + Key variables (defaults exist for development): 68 + - `LUMINA_DB_TYPE` — `sqlite` or `postgres` (default: `sqlite`) 69 + - `LUMINA_REDIS_URL` — `redis://127.0.0.1/` 70 + - `LUMINA_SERVER_ADDR` — `127.0.0.1` 71 + - `LUMINA_SERVER_PORT` — `8085` 72 + - And others described in `README.MD` 73 + 74 + First-time setup: 75 + ```sh 76 + # From repo root 77 + mise install 78 + mise run build-server 79 + ``` 80 + 81 + Development run options: 82 + ```sh 83 + # Fast development with auto-restart on changes 84 + mise run development-run-watch # add -podman to run in podman, since otherwise you'll need to run a Redis server and a PostgreSQL server locally. 85 + 86 + # Or run once (debug) 87 + mise run development-run # add -podman to run in podman, since otherwise you'll need to run a Redis server and a PostgreSQL server locally. 88 + 89 + # Or an optimized (release) development run 90 + mise run optimised-development-run # You need to have a Redis server and a PostgreSQL server running locally. 91 + ``` 92 + 93 + There are more variations. Run `mise run` and type 'development' in the task finder to list all of them. 94 + 95 + The build pipeline (mise) takes care of client (Gleam) compilation and styles, and it will create necessary data directories. 96 + 97 + --- 98 + 99 + ## Formatting, checks, and quality 100 + 101 + Before pushing or opening a PR, run: 102 + ```sh 103 + # Format Rust, Gleam, and meta files 104 + mise run format 105 + 106 + # Basic checks (Rust and Gleam) 107 + mise run check 108 + 109 + # Build to ensure it compiles 110 + mise run build-server 111 + 112 + # Optionally: There are some watching tasks and tasks to run Lumina niet development mode 113 + mise run check-watch 114 + mise run development-run-watch-podman 115 + # ..etc. 116 + ``` 117 + 118 + Conventions: 119 + - Rust code is formatted with `rustfmt`. 120 + - Gleam code is formatted with `gleam format`. 121 + - Meta files are formatted via Prettier and Taplo. 122 + - Prefer clear, explicit error handling and logs over silent failures. 123 + - Keep modules cohesive and prefer small, testable units. 124 + 125 + --- 126 + 127 + ## Branching and commit messages 128 + 129 + - Create feature branches from the default branch (typically `main`). 130 + - Suggested naming: `feat/<short-name>`, `fix/<short-name>`, `docs/<short-name>`, `chore/<short-name>`. 131 + - Commit messages: 132 + - Be concise and descriptive. 133 + - Prefer Conventional Commits style when possible: 134 + - `feat: add user session cleanup job` 135 + - `fix(server): handle empty redis url` 136 + - `docs: improve contributing guide` 137 + 138 + --- 139 + 140 + ## Pull requests 141 + 142 + PR checklist: 143 + - Code is formatted and builds locally. 144 + - `mise run check` passes. 145 + - Include tests when adding logic or fixing bugs (Rust: `cargo test`; Gleam: `gleam test`). 146 + - Update docs (README/WHY/ABOUT) where relevant. 147 + - Keep PRs focused. Large refactors should be split or well-justified. 148 + 149 + Review expectations: 150 + - Be prepared to discuss design decisions and trade-offs. 151 + - Address review comments via additional commits (avoid force-push unless asked). 152 + - Squash commits at merge time if appropriate. 153 + 154 + --- 155 + 156 + ## Reporting bugs 157 + 158 + When filing a bug report: 159 + - Describe what you expected to happen and what actually happened. 160 + - Include steps to reproduce. 161 + - Provide version info (commit hash) and environment (OS, DB type, Redis/Postgres versions). 162 + - Include relevant logs or stack traces when possible. 163 + 164 + --- 165 + 166 + ## Feature requests 167 + 168 + When proposing a feature: 169 + - Explain the problem it solves and the target use-cases. 170 + - Consider alternatives and why this approach is preferred. 171 + - If possible, include a small design sketch (API, data flow, or UI). 172 + - Prototype branches are welcome if they help the discussion. 173 + 174 + --- 175 + 176 + ## Security 177 + 178 + If you discover a security issue: 179 + - Do not open a public issue with sensitive details. 180 + - Contact me privately via the email on my main forge. 181 + - Provide clear reproduction steps and affected versions. 182 + - A fix or mitigation plan will be discussed before public disclosure. 183 + 184 + --- 185 + 186 + ## Tests 187 + 188 + - Rust: place tests alongside modules or in `server/` integration tests, use `cargo test`. 189 + - Gleam: use `gleam test` for client-side logic where applicable. 190 + - Prefer deterministic tests; avoid timing-based flakes. 191 + - Add tests for new behavior and regression tests for fixed bugs. 192 + 193 + --- 194 + 195 + ## License and contributor terms 196 + 197 + By contributing, you agree that your contributions are licensed under the BSD 3-Clause License of this repository, unless explicitly stated otherwise in writing. 198 + 199 + See `LICENSE` at the repository root. 200 + 201 + --- 202 + 203 + ## Thank you 204 + 205 + Your time and effort are appreciated. Whether you’re reporting a bug, improving docs, or adding features—every contribution helps make Lumina better.
+2 -2
README.MD
··· 1 1 # Lumina(/peonies) server 2 2 3 3 > Notice: 4 - > This repo is edited on [My personal forge](https://git.strawmelonjuice.com/strawmelonjuice/lumina) and mirrorred on [codeberg](https://codeberg.org/strawmelonjuice/lumina). 5 - > Any changes in the code on github will be overwritten by automated force-push from Codeberg. 4 + > This repo is edited on [My personal forge](https://git.strawmelonjuice.com/strawmelonjuice/lumina) and mirrorred on [codeberg](https://codeberg.org/strawmelonjuice/lumina) and [GitHub](https://github.com/strawmelonjuice/lumina). But you can still send in a PR! 5 + > See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. 6 6 7 7 ## -> Rewrite '25' 8 8
notes/Todo's/Client.md

This is a binary file and will not be displayed.

notes/Todo's/Cross-instance API's.md

This is a binary file and will not be displayed.

notes/Todo's/Server-client API's.md

This is a binary file and will not be displayed.

notes/Todo's/Server.md

This is a binary file and will not be displayed.