diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..f7f503a3ca86469da5dfce0a68d6b90884613bfb --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,52 @@ +# Contributing + +Before contributing, please make sure that your development environment is properly configured by following this tutorial : + +[Setting up your development environment] + +Sign-ups on our gitlab are disabled. If you would like to contribute, please ask for its creation on [the technical forum]. + +When contributing to this repository, please first discuss the change you wish to make via issue and +via [the technical forum] before making a change. + +Please note we have a specific workflow, please follow it in all your interactions with the project. + +## Workflow + +- You must create an issue for each feature you wish to develop, with a precise title and a + description of your feature. Then, assign it to yourself and click on the button + **`Create a merge request`**. GitLab will create a branch dedicated to the issue as well as a + *Work in Progress* merge request of this branch into the main branch (`dev`). +- Please use tags to specify feature domains and concerned modules. +- Never contribute to a branch whose issue has not been assigned to you! If the contributor make a + `git rebase` your commit will be lost ! +- Before you push your commit: + - Document your code. + - Write unit tests, and verify that they **all** pass. + - Apply the [project's git conventions] + +## Merge Process + +1. Ensure you rebased your branch on the latest `dev` commit to avoid any merge conflicts. + +2. Ensure that you respect the [commit naming conventions]. + +3. Ensure that all automated tests pass with the `yarn test` command. + +4. Update the documentation with details of changes to the interface, this includes new environment + variables, exposed ports, useful file locations and container parameters. + +5. Push your branch on the gitlab and create a merge request. Briefly explain the purpose of your contribution in the description of the merge request. + +6. Tag a Duniter reviewer so he will review your contribution. If you still have no news after several weeks, tag another reviewer or/and talk about your contribution on [the technical forum]. + +## List of Duniter's reviewers + +- @librelois +- @Moul +- @c-geek + +[Setting up your development environment]: ./doc/dev/setup_env_dev.md +[the technical forum]: https://forum.duniter.org +[project's git conventions]: ./doc/dev/git-conventions.md +[commit naming conventions]: ./doc/dev/git-conventions.md#naming-commits diff --git a/README.md b/README.md index 410936dd8918f4495b47aabb55bf278337af30d4..666422946a7b5d7a6e9cad21df65ca6cbd982e9a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@  -# Duniter [](https://travis-ci.org/duniter/duniter) [](https://coveralls.io/github/duniter/duniter?branch=master) [](https://david-dm.org/duniter/duniter) +# Duniter [](https://git.duniter.org/nodes/typescript/duniter/commits/dev) [](https://coveralls.io/github/duniter/duniter?branch=master) [](https://david-dm.org/duniter/duniter) Duniter (previously uCoin) is a libre software allowing to create a new kind of P2P crypto-currencies based on individuals and Universal Dividend. @@ -39,9 +39,8 @@ See [Install a node documentation](https://duniter.org/en/wiki/duniter/install/) ### Contribute -- [Quick-start-guide : start a duniter node with web-ui from source](https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/quick-start.md) -- [Guide (fr)](https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/contribute-french.md) -- [Developer guide](https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/developer-guide.md) +- See [CONTRIBUTING](./CONTRIBUTING.md). +- [Guide (fr)](./doc/dev/contribute-french.md) ### Documentation @@ -60,18 +59,23 @@ If you wish to participate/debate on Duniter, you can: ### Developement -Duniter is using modules on different git repositories: +Duniter is currently migrating from [Typescript] to [Rust]. +This migration is being done gradually via a [NodeJs]<->[Rust] binding provided by [Neon]. +The fact of migrating from code to [Rust] is commonly called "oxidation", so we speak of "Duniter's oxidation". -- [Duniteroxyde](https://git.duniter.org/nodes/typescript/duniteroxyde): Neon binding for rust DUBP libs. -- [Debug](https://github.com/duniter/duniter-debug): debug tool. +The long-term goal is to oxidize Duniter entirely, but it is a long process that will take several years. + +Duniter is divided into several git repositories: + +- [Duniter](https://git.duniter.org/nodes/typescript/duniter): this repository. +- [Dubp-rs-libs](https://git.duniter.org/libs/dubp-rs-libs): Set of Rust libraries common to Duniter and a possible future Rust client/wallet. - [Web admin](https://git.duniter.org/nodes/typescript/modules/duniter-ui): web administration interface (optional). - [GVA](https://git.duniter.org/nodes/typescript/modules/gva-api): Future client API aimed to replace BMA. GVA stands for GraphQL Validation API. -Optional modules: +Optional repositories: - [Currency monit](https://git.duniter.org/nodes/typescript/modules/duniter-currency-monit): charts to monitor currency and web of trust state. - [Remuniter](https://github.com/duniter/remuniter): service to remunerate blocks issuers. -- [Wot explorer](https://github.com/c-geek/wotex): Web of Trust explorer. # References @@ -88,3 +92,8 @@ Optional modules: # License This software is distributed under [GNU AGPLv3](https://git.duniter.org/nodes/typescript/duniter/blob/dev/LICENSE). + +[Neon]: https://neon-bindings.com/ +[NodeJs]: https://nodejs.org/en/ +[Rust]: https://www.rust-lang.org/ +[Typescript]: https://www.typescriptlang.org/ diff --git a/doc/dev/contribute-french.md b/doc/dev/contribute-french.md new file mode 100644 index 0000000000000000000000000000000000000000..15411fda3364683fc16bf539c2f8bc1c6d52cfd9 --- /dev/null +++ b/doc/dev/contribute-french.md @@ -0,0 +1,7 @@ +# Contribuer au code de Duniter + +Le tutoriel le plus récent est ici : [https://duniter.org/fr/contribuer/blockchain-nodejs/tutoriel-dev/](https://duniter.org/fr/contribuer/blockchain-nodejs/tutoriel-dev/) + +Son contenu est en grande partie encore valable, même si certaines parties ne sont plus tout à fait exactes, notamment avec la migration en cours vers du Rust. + +Un nouveau tutoriel sera rédigé dans les mois a venir, en attendant nous vous recommandons la lecture du tutoriel cité ci-dessus.