Skip to main content
Sign in
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
  • network/gtest-1100
  • 331-tests-de-distance-qui-ne-passent-plus
  • backup/network/gtest-1100
  • network/gtest-1110
  • tuxmain/gtest-fix-c2
  • set_UniversalDividendApi_in_RuntimeApiCollection
  • network/gtest-1000
  • upgradable-multisig
  • runtime/gtest-1000
  • network/gdev-800
  • cgeek/issue-297-cpu
  • gdev-800-tests
  • update-docker-compose-rpc-squid-names
  • fix-252
  • 1000i100-test
  • hugo/tmp-0.9.1
  • network/gdev-803
  • hugo/endpoint-gossip
  • network/gdev-802
  • hugo/distance-precompute
  • network/gdev-900
  • tuxmain/anonymous-tx
  • debug/podman
  • hugo/195-doc
  • hugo/195-graphql-schema
  • hugo-tmp-dockerfile-cache
  • release/client-800.2
  • release/runtime-800
  • feature/show_milestone
  • release/runtime-701
  • hugo-release/runtime-701
  • release/runtime-700
  • pini-check-password
  • tuxmain/benchmark-distance
  • release/runtime-600
  • feature/dc-dump
  • tests/distance-with-oracle
  • release/runtime-500
  • feature/distance-rule
  • release/hugo-chainspec-gdev5
  • release/runtime-401
  • 105_gitlab_container_registry
  • ci_cache
  • release/poka-chainspec-gdev5-pini-docker
  • release/poka-chainspec-gdev5
  • release/runtime-400
  • release/runtime-300
  • release/runtime-200
  • release/runtime-100
  • elois-duniter-storage
  • elois-compose-metrics
  • elois-smoldot
  • gdev-1000-test
  • gdev-800
  • gdev-800-0.8.0
  • gdev-802
  • gdev-803
  • gdev-900-0.10.0
  • gdev-900-0.10.1
  • gdev-900-0.9.0
  • gdev-900-0.9.1
  • gdev-900-0.9.2
  • gtest-1000
  • gtest-1000-0.11.0
  • gtest-1000-0.11.1
  • gtest-1100
  • gtest-1100-0.12.0
  • runtime-100
  • runtime-101
  • runtime-102
  • runtime-103
  • runtime-104
  • runtime-105
  • runtime-1110
  • runtime-200
  • runtime-201
  • runtime-300
  • runtime-301
  • runtime-302
  • runtime-303
  • runtime-400
  • runtime-401
  • runtime-500
  • runtime-600
  • runtime-700
  • runtime-701
  • runtime-800
  • runtime-800-backup
  • runtime-800-bis
  • runtime-801
  • v0.1.0
  • v0.2.0
  • v0.3.0
  • v0.4.0
  • v0.4.1
96 results

Target

Select target project
  • nodes / rust / Duniter v2S
  • Le Libre Au Quotidien / lc-core-substrate
  • pini / Duniter v2S
  • vincentux / Duniter v2S
  • mildred / Duniter v2S
  • d0p1 / Duniter v2S
  • Benjamin Gallois / Duniter v2S
  • Nicolas80 / Duniter v2S
8 results
Select Git revision
  • master
1 result
Show changes
452 files
+ 362630
10218
Compare changes
  • Side-by-side
  • Inline

Files

.cargo/config.toml

0 → 100644
+13 −0
Original line number Diff line number Diff line
[alias]
sanity-gdev = "test -Zgit=shallow-deps -p duniter-live-tests --test sanity_gdev -- --nocapture"
tu = "test -Zgit=shallow-deps --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests --features constant-fees" # Unit tests with constant-fees
tf = "test -Zgit=shallow-deps --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests test_fee" # Custom fee model tests
# `te` and `cucumber` are synonyms
te = "test -p duniter-end2end-tests --test cucumber_tests --features constant-fees --"
cucumber-build = "build -Zgit=shallow-deps --features constant-fees"
cucumber = "test -Zgit=shallow-deps -p duniter-end2end-tests --test cucumber_tests --"
ta = "test -Zgit=shallow-deps --workspace --exclude duniter-live-tests --features constant-fees"
tb = "test -Zgit=shallow-deps --features runtime-benchmarks -p"
rbp = "run -Zgit=shallow-deps --release --features runtime-benchmarks -- benchmark pallet --chain=dev --steps=50 --repeat=20 --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=. --pallet"
xtask = "run -Zgit=shallow-deps --package xtask --"
cucumber-node = "run -Zgit=shallow-deps -- --chain=gdev_dev --execution=Native --sealing=manual --force-authoring --rpc-cors=all --tmp --rpc-port 9944 --alice --features constant-fees"
+9 −10
Original line number Diff line number Diff line
{
  "name": "Substrate Node template",
  "name": "Duniter node",
  "context": "..",
  "settings": {
    "terminal.integrated.shell.linux": "/bin/bash",
@@ -10,16 +10,15 @@
    "bungcip.better-toml",
    "vadimcn.vscode-lldb"
  ],
  "forwardPorts": [
    3000,
    9944
  ],
  "forwardPorts": [3000, 9944],
  "preCreateCommand": ["cargo build", "cargo check"],
  "postStartCommand": "./target/debug/node-template --dev --ws-external",
  "postStartCommand": "./target/debug/duniter --dev --ws-external",
  "menuActions": [
    {"id": "polkadotjs",
    {
      "id": "polkadotjs",
      "label": "Open PolkadotJS Apps",
      "type": "external-preview",
     "args": ["https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F/$HOST/wss"]}
      "args": ["https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F/$HOST/wss"]
    }
  ]
}

.dockerignore

0 → 100644
+9 −0
Original line number Diff line number Diff line
.editorconfig
.envrc
.git*
.vscode
docker/Dockerfile
docker-compose.yml
arm-build/
**/target/
build/
+8 −0
Original line number Diff line number Diff line
This project is tracked on our hosted gitlab server at:
https://git.duniter.org/nodes/rust/duniter-v2s

The current github repository is a simple clone taken up to date at each push on the main gitlab repository.

All contributions should be performed on the main gitlab repository.

Pull requests and issues must be created on the main gitlab repository.
+5 −0
Original line number Diff line number Diff line
Please note that all issues must be opened at https://git.duniter.org/nodes/rust/duniter-v2s/issues/new?issue

If you open issue here, it will be closed.

Thank you for your understanding.
+9 −0
Original line number Diff line number Diff line
This project is tracked on our hosted gitlab server at: https://git.duniter.org/nodes/rust/duniter-v2s

The current github repository is a simple clone taken up to date at each push on the main gitlab repository.

All contributions should be performed on the main gitlab repository.

Pull requests proposed on github will be closed.

Thank you for your understanding.
+12 −0
Original line number Diff line number Diff line
# Initial disclaimer
This project is tracked on our hosted gitlab server at:
https://git.duniter.org/nodes/rust/duniter-v2s

The current github repository is a simple clone taken up to date at each push on the main gitlab repository.

All contributions should be performed on the main gitlab repository.

Pull requests and issues must be created on the main gitlab repository.

# Original README.md
+0 −19
Original line number Diff line number Diff line
name: Build and Push template

on:
  push:
    branches:
    - master

jobs:
  build-push-template:
    if: ${{ github.repository == 'substrate-developer-hub/substrate-node-template' }}
    runs-on: ubuntu-18.04
    steps:
    - name: Trigger playground inclusion
      uses: peter-evans/repository-dispatch@v1
      with:
        token: ${{ secrets.REPO_ACCESS_TOKEN }}
        repository: paritytech/substrate-playground
        event-type: template-updated
        client-payload: '{"id": "node-template"}'

.github/workflows/check.yml

deleted100644 → 0
+0 −44
Original line number Diff line number Diff line
name: Check Set-Up & Build

# Controls when the action will run.
on:
  # Triggers the workflow on push or pull request events but only for the master branch
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  check:
    # The type of runner that the job will run on
    runs-on: ubuntu-20.04

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      - name: Set-Up
        run: sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl

      - name: Install Rustup
        run: |
          curl https://sh.rustup.rs -sSf | sh -s -- -y
          source ~/.cargo/env
          rustup default stable
          rustup update nightly
          rustup update stable
          rustup target add wasm32-unknown-unknown --toolchain nightly

      - name: Check Build
        run: |
          SKIP_WASM_BUILD=1 cargo check --release

      - name: Check Build for Benchmarking
        run: >
          pushd node &&
          cargo check --features=runtime-benchmarks --release
+25 −3
Original line number Diff line number Diff line
@@ -6,11 +6,33 @@

.DS_Store

# The cache for docker container dependency
.cargo

# The cache for chain data in container
.local

# direnv cache
.direnv

# node modules
**/node_modules/**

# build folders
arm-build
build

# Temporary files
tmp

# Local chain spec
*local-spec*.json

# Log files
*.log

# Ignore output folder
output/
g1-dump.tgz
/release/

node/specs/gdev-raw.json
node/specs/gtest-raw.json
node/specs/g1-raw.json

.gitlab-ci.yml

0 → 100644
+279 −0
Original line number Diff line number Diff line
# Runner tags:
# - podman: use 'podman' to build multiplatform images

stages:
  - schedule
  - labels
  - quality
  - build
  - tests
  - release
  - deploy
  - deploy_readme

# Job templates for release builds (without tags/image, set by jobs)
.release_rules:
  stage: release
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_COMMIT_BRANCH =~ /^network\//
      when: manual
    - when: never

.debian_build_template:
  extends: .release_rules
  before_script:
    # Install build dependencies
    - apt-get update -qq && apt-get install -y -qq protobuf-compiler clang libclang-dev
  script:
    - cargo xtask client-build-deb $NETWORK

.rpm_build_template:
  extends: .release_rules
  before_script:
    # Install RPM build tools and dependencies
    - apt-get update -qq && apt-get install -y -qq rpm protobuf-compiler clang libclang-dev
  script:
    - cargo xtask client-build-rpm $NETWORK

.docker_deploy_template:
  extends: .release_rules
  image: docker:latest
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
  before_script:
    # Install Rust and build dependencies
    - apk add --no-cache curl bash gcc musl-dev
    - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal
    - source $HOME/.cargo/env
    - docker info
  script:
    - cargo xtask client-docker-deploy $NETWORK --arch $ARCH

# Release build jobs
release_debian_arm:
  extends:
    - .env_arm
    - .debian_build_template
  needs: []
  artifacts:
    paths:
      - target/debian/*.deb

release_debian_x64:
  extends:
    - .env
    - .debian_build_template
  needs: []
  artifacts:
    paths:
      - target/debian/*.deb

release_rpm_arm:
  extends:
    - .env_arm
    - .rpm_build_template
  needs: []
  artifacts:
    paths:
      - target/generate-rpm/*.rpm

release_rpm_x64:
  extends:
    - .env
    - .rpm_build_template
  needs: []
  artifacts:
    paths:
      - target/generate-rpm/*.rpm

release_docker_arm:
  extends: .docker_deploy_template
  needs: []
  tags:
    - linuxARM
  variables:
    ARCH: arm64

release_docker_x64:
  extends: .docker_deploy_template
  needs: []
  tags:
    - kepler
  variables:
    ARCH: amd64

release_docker_manifest:
  stage: release
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_COMMIT_BRANCH =~ /^network\//
      when: on_success  # Auto-start when dependencies succeed
    - when: never
  needs:
    - job: release_docker_arm
      optional: false
    - job: release_docker_x64
      optional: false
  tags:
    - kepler
  image: docker:latest
  variables:
    DOCKER_HOST: unix:///var/run/docker.sock
  before_script:
    - apk add --no-cache bash grep sed
  script:
    - docker login -u duniterteam -p $DUNITERTEAM_PASSWD docker.io
    - |
      # Extract runtime from NETWORK (e.g., gtest-1100 -> gtest)
      RUNTIME=$(echo $NETWORK | sed 's/-[0-9].*//')
      
      # Get client version from node/Cargo.toml
      CLIENT_VERSION=$(grep '^version = ' node/Cargo.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
      
      # Get runtime version from runtime/$RUNTIME/src/lib.rs
      RUNTIME_VERSION=$(grep 'spec_version:' runtime/$RUNTIME/src/lib.rs | sed 's/.*spec_version: \([0-9]*\).*/\1/')
      
      IMAGE_NAME="duniter/duniter-v2s-${NETWORK}"
      TAG="${RUNTIME_VERSION}-${CLIENT_VERSION}"
      
      echo "Creating multi-arch manifest for ${IMAGE_NAME}:${TAG}"
      
      # Use buildx imagetools to create multi-arch tags from existing images
      # This works even if the source images are manifest lists
      docker buildx imagetools create \
        --tag ${IMAGE_NAME}:${TAG} \
        ${IMAGE_NAME}:${TAG}-amd64 \
        ${IMAGE_NAME}:${TAG}-arm64
      
      echo "✅ Multi-arch tag created: ${IMAGE_NAME}:${TAG}"
      
      # Also create :latest tag
      docker buildx imagetools create \
        --tag ${IMAGE_NAME}:latest \
        ${IMAGE_NAME}:${TAG}-amd64 \
        ${IMAGE_NAME}:${TAG}-arm64
      
      echo "✅ Multi-arch tag created: ${IMAGE_NAME}:latest"

workflow:
  rules:
    - changes:
        - docker/Dockerfile
        - end2end-tests/**/*
        - node/**/*
        - pallets/**/*
        - runtime/**/*
        - .gitlab-ci.yml
        - Cargo.toml
        - Cargo.lock
        - resources/*.yaml

sanity_tests:
  extends: .env
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TOPIC=="sanity-tests"'
    - when: never
  stage: schedule
  script:
    - cargo sanity-${CURRENCY}

check_labels:
  extends: .env
  stage: labels
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - when: never
  script:
    - ./scripts/check_labels.sh $CI_MERGE_REQUEST_LABELS $CI_MERGE_REQUEST_MILESTONE

check_metadata:
  extends: .env
  stage: tests
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - when: never
  script:
    - ./scripts/check_metadata.sh

.env:
  image: paritytech/ci-unified:bullseye-1.88.0
  tags:
    - kepler

.env_arm:
  image: rust:latest  # Rust image for ARM builds
  tags:
    - linuxARM

fmt_and_clippy:
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH == "master"'
      when: never
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: always
    - when: manual
  stage: quality
  script:
    - cargo fmt -- --version
    - cargo fmt -- --check
    - cargo clippy -- -V
    - cargo clippy -Zgit=shallow-deps --features runtime-benchmarks --all --tests -- -D warnings

run_benchmarks:
  extends: .env
  stage: tests
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG
      when: never
    - if: '$CI_MERGE_REQUEST_ID || $CI_COMMIT_BRANCH == "master"'
    - when: manual
  script:
    - cargo build -Zgit=shallow-deps --release --features runtime-benchmarks
    - target/release/duniter benchmark storage --chain=dev --mul=2 --state-version=1 --weight-path=./runtime/g1/src/weights/ --batch-size=100
    - target/release/duniter benchmark overhead --chain=dev --wasm-execution=compiled --warmup=1 --repeat=100 --weight-path=./runtime/g1/src/weights/
    - target/release/duniter benchmark pallet --chain=dev --steps=5 --repeat=2 --pallet="*" --extrinsic="*" --wasm-execution=compiled --output=./runtime/g1/src/weights/
    - cargo build -Zgit=shallow-deps --release --features runtime-benchmarks # Check if autogenerated weights work

gtest_build:
  stage: build
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_COMMIT_BRANCH =~ /^(release\/runtime-)[0-9].*/
      when: never
    - if: '$CI_MERGE_REQUEST_ID || $CI_COMMIT_BRANCH == "master"'
    - when: manual
  variables:
    DEBIAN_FRONTEND: noninteractive
  script:
    - cargo build -Zgit=shallow-deps --no-default-features --features gtest

tests:
  stage: tests
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG
      when: never
    - if: '$CI_MERGE_REQUEST_ID || $CI_COMMIT_BRANCH == "master"'
    - when: manual
  variables:
    DEBIAN_FRONTEND: noninteractive
  script:
    - export RUST_MIN_STACK=16777216 # 16MB stack size otherwise CI fail during LLVM's Thin LTO (Link Time Optimization) phase
    - cargo tu
    - cargo tf
    - cargo cucumber-build
    - cargo cucumber
+1 −1
Original line number Diff line number Diff line
---
name: Ask a Question
about: Ask a question about this template.
about: Ask a question about duniter-v2s.
title: ""
labels: question
assignees: ""
+3 −5
Original line number Diff line number Diff line
---
name: Report a Bug
about: Report a problem with this template.
about: Report a problem with duniter-v2s.
title: ""
labels: bug
assignees: ""
@@ -8,9 +8,7 @@ assignees: ""

**Description**

_Tell us what happened. In particular, be specific about any changes you made to this template.
Ideally, provide a link to your project's GitHub repository. Please note that we are not able to
support all conceivable changes to this template project, but the more information you are able to
_Tell us what happened. Please elaborate, the more information you are able to
provide the more equipped we will be to help._

**Steps to Reproduce**
@@ -33,7 +31,7 @@ _Describe the environment in which you encountered this bug. Use the list below
and add additional information if you think it's relevant._

- Operating system:
- Template version/tag:
- Git commit/tag:
- Rust version (run `rustup show`):

**Logs, Errors or Screenshots**
+3 −3
Original line number Diff line number Diff line
---
name: Suggest a Feature
about: Suggest a new feature or an improvement to an existing feature for this template.
about: Suggest a new feature or an improvement to an existing feature for duniter-v2s.
title: ""
labels: enhancement
assignees: ""
@@ -9,8 +9,8 @@ assignees: ""
**Motivation**

_Describe the need or frustration that motivated you to make this suggestion. Please note that the
goal of this project is to provide a general-purpose template project, so please take care when
suggesting features that may be specific to a particular use case._
goal of this project is to bring the Ğ1 blockchain itself, so please take care when
suggesting features that may not concern the Ğ1 currency._

**Suggested Solution**

+35 −0
Original line number Diff line number Diff line
FROM docker.io/library/ubuntu:20.04

# metadata
ARG VCS_REF
ARG BUILD_DATE

# show backtraces
ENV RUST_BACKTRACE 1

# install tools and dependencies
RUN apt-get update && \
	DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \
	DEBIAN_FRONTEND=noninteractive apt-get install -y \
		libssl1.1 \
		ca-certificates \
		curl && \
# apt cleanup
	apt-get autoremove -y && \
	apt-get clean && \
	find /var/lib/apt/lists/ -type f -not -name lock -delete; \
# add user
	useradd -m -u 1000 -U -s /bin/sh -d /duniter duniter

# add duniter binary to docker image
COPY ./build/duniter /usr/local/bin

USER duniter

# check if executable works in this container
RUN /usr/local/bin/duniter --version

EXPOSE 30333 9944
VOLUME ["/duniter"]

ENTRYPOINT ["/usr/local/bin/duniter"]

.rusty-hook.toml

0 → 100644
+5 −0
Original line number Diff line number Diff line
[hooks]
pre-commit = "cargo fmt -- --check"

[logging]
verbose = true
+140 −159
Original line number Diff line number Diff line
@@ -7,16 +7,16 @@
    {
      "type": "lldb",
      "request": "launch",
            "name": "Debug unit tests in library 'lc-core'",
      "name": "Debug unit tests in library 'duniter'",
      "cargo": {
        "args": [
          "test",
          "--no-run",
          "--lib",
                    "--package=lc-core"
          "--package=duniter"
        ],
        "filter": {
                    "name": "lc-core",
          "name": "duniter",
          "kind": "lib"
        }
      },
@@ -26,13 +26,13 @@
    {
      "type": "lldb",
      "request": "launch",
            "name": "Debug executable 'lc-core'",
      "name": "Debug executable 'duniter'",
      "cargo": {
        "args": [
          "build"
        ],
        "filter": {
                    "name": "lc-core",
          "name": "duniter",
          "kind": "bin"
        }
      },
@@ -47,16 +47,16 @@
    {
      "type": "lldb",
      "request": "launch",
            "name": "Debug unit tests in executable 'lc-core'",
      "name": "Debug unit tests in executable 'duniter'",
      "cargo": {
        "args": [
          "test",
          "--no-run",
                    "--bin=lc-core",
                    "--package=lc-core"
          "--bin=duniter",
          "--package=duniter"
        ],
        "filter": {
                    "name": "lc-core",
          "name": "duniter",
          "kind": "bin"
        }
      },
@@ -66,16 +66,16 @@
    {
      "type": "lldb",
      "request": "launch",
            "name": "Debug unit tests in library 'lc-core-runtime'",
      "name": "Debug unit tests in library 'gdev-runtime'",
      "cargo": {
        "args": [
          "test",
          "--no-run",
          "--lib",
                    "--package=lc-core-runtime"
          "--package=gdev-runtime"
        ],
        "filter": {
                    "name": "lc-core-runtime",
          "name": "gdev-runtime",
          "kind": "lib"
        }
      },
@@ -120,25 +120,6 @@
      "args": [],
      "cwd": "${workspaceFolder}"
    },
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug unit tests in library 'pallet-ud-accounts-storage'",
            "cargo": {
                "args": [
                    "test",
                    "--no-run",
                    "--lib",
                    "--package=pallet-ud-accounts-storage"
                ],
                "filter": {
                    "name": "pallet-ud-accounts-storage",
                    "kind": "lib"
                }
            },
            "args": [],
            "cwd": "${workspaceFolder}"
        },
    {
      "type": "lldb",
      "request": "launch",

.vscode/settings.json

0 → 100644
+19 −0
Original line number Diff line number Diff line
{
  "editor.formatOnSave": true,
  "editor.rulers": [
    100
  ],
  "[json]": {
    "editor.defaultFormatter": "vscode.json-language-features"
  },
  "[yaml]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "lldb.dbgconfig": {
    "rustc_path": "${env:HOME}/.rustup/toolchains/nightly-2021-01-13-x86_64-unknown-linux-gnu/lib/rustlib/src/rust",
    "port_p2p": 19931,
    "port_rpc": 19932,
    "port_ws": 19933
  },
  "rust-analyzer.showUnlinkedFileNotification": false
}
 No newline at end of file

CONTRIBUTING.md

0 → 100644
+50 −0
Original line number Diff line number Diff line
# 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 an account on [the technical forum].

When contributing to this repository, please first discuss the change you wish to make via issue or
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.

## Developer documentation

Please read [Developer documentation] before contributing.

## Workflow

- If there is an unassigned issue about the thing you want to contribute to, assign the issue to yourself.
- Create a branch based on `master` and prefixed with your nickname. Give your branch a short name indicating the subject.
- Create an MR from your branch to `master`. Prefix the title with `Draft: ` until it's ready to be merged.
- If the MR is related to an issue, mention the issue in the description using the `#42` syntax.
- Never push to a branch of another contributor! If the contributor makes a `git rebase` your commit will be lost!
- Before you push your commit:
  - Apply formatters (rustfmt and prettier) and linter (clippy)
  - Document your code
  - Apply the [project's git conventions]

## Merge Process

1. Ensure you rebased your branch on the latest `master` commit to avoid any merge conflicts.
1. Ensure that you respect the [commit naming conventions].
1. Ensure that all automated tests pass with the `cargo test` command.
1. Ensure that the code is well formatted `cargo fmt` and complies with the good practices `cargo clippy`. If you have been working on tests, check everything with `cargo clippy --all --tests`.
1. Update the documentation with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
1. 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.
1. Mark the MR as ready (or remove the `Draft: ` prefix) only when you think it can be reviewed or merged.
1. Assign a Duniter reviewer so they will review your contribution. If you still have no news after several weeks, ask explicitly for a review, or tag another reviewer or/and talk about your contribution on [the technical forum].

## List of Duniter's reviewers

- @HugoTrentesaux
- @tuxmain

[commit naming conventions]: ./docs/dev/git-conventions.md#naming-commits
[Developer documentation]: ./docs/dev/
[project's git conventions]: ./docs/dev/git-conventions.md
[Setting up your development environment]: ./docs/dev/setup.md
[the technical forum]: https://forum.duniter.org
+12677 −5519

File changed.

Preview size limit exceeded, changes collapsed.

Loading