From b6aa9a30e8d0fcaf4bc17b4d284dfed2b2fdf7c4 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 17 Jan 2020 17:52:48 -0500 Subject: [PATCH] Add more info to contributing. Fixes #429 --- CHANGELOG | 22 ++++++++++++++++++++++ CONTRIBUTING.md | 4 ++++ README.md | 4 +++- docs/src/contributing.md | 33 ++++++++++++++++++++++++++++++++- 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG create mode 100644 CONTRIBUTING.md diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..4d86f6d --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,22 @@ +# Lemmy v0.6.0 Release (2020-01-16) + +`v0.6.0` is here, and we've closed [41 issues!](https://github.com/dessalines/lemmy/milestone/15?closed=1) + +This is the biggest release by far: + +- Avatars! +- Optional Email notifications for username mentions, post and comment replies. +- Ability to change your password and email address. +- Can set a custom language. +- Lemmy-wide settings to disable downvotes, and close registration. +- A better documentation system, hosted in lemmy itself. +- [Huge DB performance gains](https://github.com/dessalines/lemmy/issues/411) (everthing down to < `30ms`) by using materialized views. +- Fixed major issue with similar post URL and title searching. +- Upgraded to Actix `2.0` +- Faster comment / post voting. +- Better small screen support. +- Lots of bug fixes, refactoring of back end code. + +Another major announcement is that Lemmy now has another lead developer besides me, [@felix@radical.town](https://radical.town/@felix). Theyve created a better documentation system, implemented RSS feeds, simplified docker and project configs, upgraded actix, working on federation, a whole lot else. + +https://dev.lemmy.ml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..7827d82 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,4 @@ +# Contributing + +See [here](https://dev.lemmy.ml/docs/contributing.html) for contributing Instructions. + diff --git a/README.md b/README.md index ff6d9f2..b7bea3e 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,9 @@ Each lemmy server can set its own moderation policy; appointing site-wide admins Made with [Rust](https://www.rust-lang.org), [Actix](https://actix.rs/), [Inferno](https://www.infernojs.org), [Typescript](https://www.typescriptlang.org/) and [Diesel](http://diesel.rs/). -[Documentation](https://dev.lemmy.ml/docs/index.html) +- [Documentation](https://dev.lemmy.ml/docs/index.html) +- [Releases / Changelog](/CHANGELOG) +- [Contributing](https://dev.lemmy.ml/docs/contributing.html) ## Features diff --git a/docs/src/contributing.md b/docs/src/contributing.md index 4f29af3..e73cc4b 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -1 +1,32 @@ -Information about contributing to Lemmy, whether it is translating, testing, designing or programming. \ No newline at end of file +# Contributing + +Information about contributing to Lemmy, whether it is translating, testing, designing or programming. + +## Translating + +Go [here](https://github.com/dessalines/lemmy#translations) for translation instructions. + +## Architecture + +### Front end + +- The front end is written in `typescript`, using a react-like framework called [inferno](https://infernojs.org/). All UI elements are reusable `.tsx` components. +- The main page and routing are in `ui/src/index.tsx`. +- The components are located in `ui/src/components`. + +### Back end + +- The back end is written in `rust`, using `diesel`, and `actix`. +- The server source code is split into main sections in `server/src`. These include: + - `db` - The low level database actions. + - Database additions are done using diesel migrations. Run `diesel migration generate xxxxx` to add new things. + - `api` - The high level user interactions (things like `CreateComment`) + - `routes` - The server endpoints . + - `apub` - The activitypub conversions. + - `websocket` - Creates the websocket server. + +## Linting / Formatting + +- Every front and back end commit is automatically formatted then linted using `husky`, and `lint-staged`. +- Rust with `cargo fmt` and `cargo clippy`. +- Typescript with `prettier` and `eslint`.