From: Martin Quinson Date: Tue, 2 Oct 2018 20:11:32 +0000 (+0200) Subject: Replace README.git by a badge stating that we welcome PRs X-Git-Tag: v3_21~6 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/fc7b4455de76d55fd7953005ac3d7d1a366fcd4c Replace README.git by a badge stating that we welcome PRs The badge is also linking on a tutorial on how to do PRs. --- diff --git a/README.git b/README.git deleted file mode 100644 index a413a0ff3c..0000000000 --- a/README.git +++ /dev/null @@ -1,186 +0,0 @@ -Using Git for SimGrid -===================== - -SimGrid developement tree is now managed with Git. -So, you need to use Git to: - -- follow the last development of SimGrid; -- propose some new commit to SimGrid developpers. - - -Installing Git and finding documentation ----------------------------------------- -Refer to your OS documentation for installing Git. - -On Debian/Unbuntu, you can install the following packages: - apt-get install git-core git-gui gitk git-email - -Git website is http://git.or.cz/ . A **lot** of documentation is available on -this website. You can read for example the -link:http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html[Tutorial -Introduction to Git] to begin with Git. - - -Setting up GIT on your computer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Be sure that git will use your right name and email for commits: - - git config --global user.name "Firstname Lastname" - git config --global user.email Firstname.Lastname@example.com - -Note: the "--global" switch ensure that these setups will be used for all -git projects. You can change these settings per project without this flags -(see "git help config" for more information) - - -Getting a working copy of SimGrid developement tree ------------------------------------------------- - -Read-only access: - git clone git://scm.gforge.inria.fr/simgrid/simgrid.git - -Read-write access (for people with account on the forge and in the SimGrid -project): - git clone git+ssh://USER@scm.gforge.inria.fr/gitroot/simgrid/simgrid.git -(replace USER by your login name on the forge) - -Note: due to the distributed nature of Git, it is probably better to checkout -with a read-only access and later push in the official repo with another -"remote" setup (see later). - -Creating a commit -~~~~~~~~~~~~~~~~~ -A commit is a self-contained modification of the sources associated to -meta-data such as author, date, message, etc. - -Several rules must be repected as much as possible: - -- all commits in public branches should lead to a state where "make" - works (required in order git-bisect to be useful); -- all commits in public branches must never be rebased (use "git revert" if you - need to revert a public commit); -- each commit should contain only one logical modification; -- this modification must be described in the log message. The first line of the - log is a summary, the second line should be empty, the next lines can - describe more precisely the modifications. - - -Your first line of commit message can begin with a [flag] telling which global -part of SimGrid you are changing. It can be for example [doc], [network], [build -system], [bugfix], etc. - -[bugfix] commits will probably be considered to be also applied in the last -stable branch. - -If you need to modify your commits (changeset) before publishing them (better -log message, splitting/merging of commits, ...), you can use: - -- "git gui" to modify (ammend) the last commit (check the good box); -- "gitk" to cherry pick interresting commits (right-clic on interesting - commits) and (re)create a linear branch; -- "git rebase -i" to merge/split/reorder commits in a linear branch; -- "git commit --amend" in the simple case; -- your email or your feet to go ask for help ;-) - - -Writing in the official repo -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -People with an account on the forge (and in the SimGrid group) are allowed -to publish their changes in the main repo. However, they can only -create/modify/remove heads under refs/heads/$forge_login/* - -Global branches $global such as 'master', 'stable-*', ... are only writable -if they are a subset of a refs/heads/$forge_login/official/$global . -Restrictions to push to these global branches can be added if required. - -To publish some commit, the easiest way is to create a "remote" config -such as: - git remote add inria-forge git+ssh://$forge_login@scm.gforge.inria.fr/gitroot/simgrid/simgrid.git - -And then, you should add to the configuration (in the [remote "inria-forge"] -section of .git/config) some lines such as (replace $forge_login by your -login on the forge): - push = refs/heads/master:refs/heads/$forge_login/wip/master - push = refs/heads/public/*:refs/heads/$forge_login/* - push = +refs/heads/wip/*:refs/heads/$forge_login/wip/* -The idea here is to establish a correspondance between local heads and remote -heads. As said before, remote heads **must** match refs/heads/$forge_login/* -in order the push to succeed. - -Note: you can also add the previous config directly into the [remote "origin"] -section if your clone has been done with the ssh protocol. - -You can create one-to-one correspondances (lines 1) or global correspondances -(lines 2 and 3) as you wish. If you add a '+' in front of the line (line 3), -then non fast-forward updates will be allowed. See 'man git-push' for more -information. - -You can them push your commits with: - git push inria-forge - - -To summary, with this setup: -- local branch named master is pushed to '$forge_login/wip/master'; -- local branches named 'public/*' are pushed to '$forge_login/*'; -- local branches named 'wip/*' are pushed to '$forge_login/wip/*'; -- other local branches are not pushed. - -Putting something in the 'master', 'stable-*', ... branches -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Just create a branch that merge the current 'master', 'stable-*', ... branch -(called $global in this text) you want to update, push it first as -$forge_login/official/$global and then push it as $global. - With the previous example setup, if you want to update 'master' to include -your current commit, you have to type something like: - git merge inria-forge/master - git push inria-forge HEAD:$forge_login/official/master - git push inria-forge HEAD:master -You can also add some config in .git/config such as - push = refs/heads/user-master:refs/heads/$forge_login/official/master - push = refs/heads/global-master:refs/heads/master - - You can also ask one official maintainer of this branch to pull from your one -(ie publish your branch and give its name to the official maintainers). - -Note: take care to ask to push only well commented, well formed changeset. -Use 'git-rebase' to cleanup your branch if needed. Do not hesitate to ask for -help if you do not know how to do it. - -Publishing branches -~~~~~~~~~~~~~~~~~~~ -There is mainly two reasons for which you might want to publish some of your -commits: - -- to merge your work into the main (master) developement branch. You must then -ensure that the branch you want to publish is ready to be merged (well -commented, well formed, bug free changeset) and then ask for a merge (see -previous paragraph). If 'make' does not produce a working binary, you should -reconsider seriously your request. - -Even if your work is not merged immediately, you should never rebase this -branch (i.e. only fast-forward commits should be done). SimGrid developers -should use public/* heads to track these kind of works; - -- to allow you/other people to test some experimental features. Rebase can -occurs here, so other developers must never merge from theses branches unless -they really know what they do. SimGrid developers should use wip/* heads to -track these kind of works; - -To summary: commits in public/* heads (and 'master', 'stable-*' heads) must -never be rebased as they can be used by other people. Take care before -pushing such heads! - -Essential commands ------------------- - -You can probably do most of your work with the following commands: - -- git clone: get a new repo -- git gui: commit some changes (graphical program) - You can very easily modify your last commit with this program -- gitk: look at commits and manage branches (graphical program) -- git rebase: rewrite/reorganize your (not yet public) commits -- git fetch: get upstream changes -- git merge: merge commits present on other branches -- git pull: do a fetch and a merge -- git push: publish your changes diff --git a/README.md b/README.md index 7656083021..b8b8f557f9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Travis Status](https://travis-ci.org/simgrid/simgrid.svg?branch=master)](https://travis-ci.org/simgrid/simgrid) [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/gvcssh340fwtoc35?svg=true)](https://ci.appveyor.com/project/mquinson/simgrid) [![SonarCloud Status](https://sonarcloud.io/api/project_badges/measure?project=simgrid&metric=alert_status)](https://sonarcloud.io/dashboard/?id=simgrid) diff --git a/tools/internal/check_dist_archive.exclude b/tools/internal/check_dist_archive.exclude index c0eaa8676c..7c32c1de3c 100644 --- a/tools/internal/check_dist_archive.exclude +++ b/tools/internal/check_dist_archive.exclude @@ -11,7 +11,7 @@ + BuildSimGrid\.sh + COPYRIGHT\.template -+ README\.(coding|git) ++ README\.coding + \.appveyor\.yml + \.circleci/.* + \.clang-format