From b5380c93c8407b33445757a5acc5916341ce0295 Mon Sep 17 00:00:00 2001 From: Maat Date: Fri, 2 Apr 2021 08:25:38 +0200 Subject: Doc content for contribution --- CONTRIBUTION.md | 289 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 269 insertions(+), 20 deletions(-) diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index e22dbc65..8a7c8f25 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -1,40 +1,287 @@ This file is meant to ease the onboarding of new contributors. -Introcution -=========== - - - -Quick start -=========== +Introduction +============ -Git clone -Git branch -Lang -Git pull / Git push +TODO + + +Quick start for testers +======================= + +```bash +$ git clone git://git.mageia.org/software/rpm/urpmi +$ cd urpmi +$ git checkout + # Possible branches : + # - topic/maat_color +$ dev/mogen +$ ./urpmi +$ su -c "./urpmi --test " +$ su -c "./urpmi " + # Warning this last command *really* installs the package +``` + +Quick start for coders +====================== + +```bash +$ git clone ssh://@git.mageia.org/software/rpm/urpmi +$ cd urpmi +$ git branch topic/ + # This creates the new branch with current master as the starting point. + # If you want to start from elswhere you need to master git branch command +$ git checkout topic/ + # This puts you on your new branch to start coding +$ dev/mogen + # This generates the local translation .mo files for a translated display + # If you work on translations you can use dev/mogen --watch in a dedicated term + # and work in an other : translation will be updated in near realtime + + # While [ 1 ] + # do + # Coding & testing +git add +git commit -m "Commit message" +git push origin topic/ + # All these git commands allow you to publish your changes. + # You'll need you have a dev account in Mageia system -> https://wiki.mageia.org + # Make sure you master git enough and make sure to have a Mageia mentor to guide you +``` Good proctices & advices ======================== Coding standards & indentation +------------------------------ +Coding standards are : + * space indentation (no tabs) + * 4 spaces for one indentation level + * 4 spacesfor tabulations (and replace tabs by spaces) + * Opening brackets on the same line + * closing brackets on the line after Commit messages - - - -Organization & architecture -=========================== - - +--------------- + +Commit standards are : + * Language = english + * One commit per change (do not mix multiple topics in a single commit) + * Commit title should be short but allow to identify what's done + * Commit message under the title can explain more + +Branches +-------- + +Unless you are working on an official branch your branch should be named topic/_ + + +Organization & architecture of the code +======================================= + +Files and directories +--------------------- + +The thereafter tree is created with the command : +```bash +tree -I "locale|media|blib|t|pod|*.mo" +``` + +urpmi +├── ChangeLog +├── Changes +├── CONTRIBUTION.md +├── dev +│   └── mogen +├── gurpm +│   └── RPMProgressDialog.pm +├── gurpmi +├── gurpmi2 +├── gurpmi.desktop.in +├── gurpmi.pm +├── inst.list +├── Makefile +├── Makefile.PL +├── MANIFEST +├── MANIFEST.SKIP +├── MYMETA.json +├── MYMETA.yml +├── pm_to_blib +├── po +│   ├── *.po +│   ├── Makefile +│   ├── POTFILES.in +│   ├── urpmi.pot +├── polkit +│   ├── Makefile +│   └── org.mageia.gurpmi2.policy.in +├── README.md +├── README.transifex +├── README.zeroconf +├── rpm-find-leaves +├── rurpme +├── rurpmi +├── skip.list +├── urpm +│   ├── args.pm +│   ├── bug_report.pm +│   ├── cdrom.pm +│   ├── cfg.pm +│   ├── download.pm +│   ├── get_pkgs.pm +│   ├── install.pm +│   ├── ldap.pm +│   ├── lock.pm +│   ├── main_loop.pm +│   ├── md5sum.pm +│   ├── media.pm +│   ├── mirrors.pm +│   ├── msg.pm +│   ├── orphans.pm +│   ├── parallel_ka_run.pm +│   ├── parallel.pm +│   ├── parallel_ssh.pm +│   ├── prompt.pm +│   ├── README.ka-run +│   ├── README.ssh +│   ├── removable.pm +│   ├── select.pm +│   ├── signature.pm +│   ├── sys.pm +│   ├── util.pm +│   ├── xml_info_pkg.pm +│   └── xml_info.pm +├── urpme +├── urpmf +├── urpmi +├── urpmi.addmedia +├── urpmi.bash-completion +├── urpmi.pm +├── urpmi.removemedia +├── urpmi-repository-http.service +├── urpmi.schema +├── urpmi.update +├── urpm.pm +└── urpmq + +A few files are just information files : + +├── ChangeLog +├── Changes +├── CONTRIBUTION.md <-- We are here +├── README.md +├── README.transifex +├── README.zeroconf +├── urpm +│   ├── README.ka-run +│   ├── README.ssh + +Some files are generated by build or test process: + +├── blib/* +├── locale/* +├── Makefile +├── MYMETA.json +├── MYMETA.yml +├── po +│   ├── *.mo +├── t +│   ├── media/* + +Some files are used either to set up build or to test: +├── Makefile.PL +├── MANIFEST +├── MANIFEST.SKIP +├── po +│   ├── Makefile +│   ├── POTFILES.in +├── polkit +│   ├── Makefile +│   └── org.mageia.gurpmi2.policy.in + +some are dev tools used to work on urpmii or buld/test: + +├── dev +│   └── mogen +├── pm_to_blib + + +Some are the urpm* tools themselves: + +├── gurpmi <-- GUI for urpmi +├── gurpmi2 <-- GUI for urpmi too +├── rurpme <-- r-urpm-i for retricted-mode urpmi +├── rurpmi <-- r-urpm-e for retricted-mode urpme +├── urpme <-- urpm-e for urpm "erase" : uninstalls software +├── urpmf <-- urpm-f for urpm "find file" : searches for a file in software +├── urpmi <-- urpm-i for urpm "install" : installs softvare +├── urpmi.addmedia <-- adds a new medium (source of software) +├── urpmi.removemedia <-- removes a medium +├── urpmi.update <-- updates a medium +└── urpmq <-- urpm-q for urpm "query" : search for softvare (by name...) + +Some are config files that will be put in the system during install and used by urpmi: + +├── gurpmi.desktop.in +├── inst.list +├── skip.list +├── urpmi.bash-completion +├── urpmi-repository-http.service + +Some are translation files: + +├── po +│   ├── *.po +│   ├── *.pot + +And the rest are .pm files = librairies called by the "main" programs urpm* + +├── gurpm +│   └── RPMProgressDialog.pm +├── gurpmi.pm +├── urpm +│   ├── args.pm +│   ├── bug_report.pm +│   ├── cdrom.pm +│   ├── cfg.pm +│   ├── download.pm +│   ├── get_pkgs.pm +│   ├── install.pm +│   ├── ldap.pm +│   ├── lock.pm +│   ├── main_loop.pm +│   ├── md5sum.pm +│   ├── media.pm +│   ├── mirrors.pm +│   ├── msg.pm +│   ├── orphans.pm +│   ├── parallel_ka_run.pm +│   ├── parallel.pm +│   ├── parallel_ssh.pm +│   ├── prompt.pm +│   ├── removable.pm +│   ├── select.pm +│   ├── signature.pm +│   ├── sys.pm +│   ├── util.pm +│   ├── xml_info_pkg.pm +│   └── xml_info.pm +├── urpm.pm + + +Architecture and libraries organization +--------------------------------------- + +TODO Urpmi internals =============== - +TODO @@ -42,7 +289,7 @@ Urpmi internals Roadmap ======= - +TODO @@ -50,7 +297,9 @@ Roadmap Contributors ============ +Lets pay here our tribute to the heroeswho created andcontributed to urpmi... +TODO -- cgit v1.2.1