Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chap 3 #12

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0262e76
Réorganisation de «Principes de fonctionnement» et simplification de …
Jul 6, 2013
35c2a4c
Correction d’espace insécable (mode typo nazi)
Jul 6, 2013
dd60bc9
Ajouts : branches, remotes
Djiko Jul 7, 2013
8310f17
Ajout d’une espace dans le README
Jul 11, 2013
5a0e62d
Début trad chapitre native datatypes
audionuma Jul 14, 2013
c72a032
Update 01-installing-python.html
ldidry Jul 14, 2013
cf5ceec
Ajout du wokflow dans le README
ldidry Jul 14, 2013
5c0a2eb
Update README.md
ldidry Jul 14, 2013
2a21005
Marquage du chapitre 2 en 'En cours'.
progval Jul 14, 2013
47bb4b4
Quoi de neuf dans “Plongez dans Python 3” passé en statut «En cours»
Jul 14, 2013
1a840f3
Changement de statut
shan-x Jul 14, 2013
7691cc6
Changement de status pour 05-strings.html
Jul 14, 2013
3155183
Correction typo permalink chap 16
jtanguy Jul 14, 2013
3191d87
Supression du : dans le titre du chap 15
jtanguy Jul 14, 2013
5acb5e6
Merge pull request #5 from jtanguy/master
ldidry Jul 14, 2013
385799f
Update README.md
ldidry Jul 14, 2013
b6b8c05
Titre page / début de la branche chap-3
audionuma Jul 15, 2013
a763c07
trad intro
audionuma Jul 15, 2013
5984401
introduction
audionuma Aug 2, 2013
c79850a
booléens
audionuma Aug 3, 2013
b1be835
nombres
audionuma Aug 5, 2013
ea45f5c
listes
audionuma Aug 8, 2013
420cbb3
tuples
audionuma Aug 9, 2013
90989dd
ensembles
audionuma Aug 12, 2013
9dbe61e
dictionnaires et none
audionuma Aug 13, 2013
382b04f
Pour en savoir plus
audionuma Aug 13, 2013
cb0ec94
passage statut relecture
audionuma Aug 13, 2013
ec1e4d8
Relecture du chapitre 3.
progval Aug 13, 2013
bf1b167
relecture
audionuma Aug 14, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 00-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<meta name=viewport content='initial-scale=1.0'>
<form action=http://www.google.com/cse><div><input type=hidden name=cx value=014021643941856155761:l5eihuescdw><input type=hidden name=ie value=UTF-8><input type=search name=q size=25 placeholder="powered by Google&trade;">&nbsp;<input type=submit name=sa value=Search></div></form>

<p>Vous êtes ici :&nbsp;&nbsp;<span title="Ce n'est pas un point" style='cursor:default'>&bull;</span>
<p>Vous êtes ici&nbsp;:&nbsp;<span title="Ce n'est pas un point" style='cursor:default'>&bull;</span>

<h1>Plongez dans Python 3</h1>

Expand Down
2 changes: 1 addition & 1 deletion 00-whats-new.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Quoi de neuf dans &#8220;Plongez dans Python 3&#8221;
status: Non traduit
status: En cours
permalink: whats-new.html
---
<!DOCTYPE html>
Expand Down
2 changes: 1 addition & 1 deletion 01-installing-python.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Installer Python
status: Non traduit
status: Relecture
permalink: installing-python.html
---
<!DOCTYPE html>
Expand Down
2 changes: 1 addition & 1 deletion 02-your-first-python-program.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Votre premier programme en Python
status: Non traduit
status: En cours
permalink: your-first-python-program.html
---
<!DOCTYPE html>
Expand Down
509 changes: 254 additions & 255 deletions 03-native-datatypes.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion 05-strings.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Chaînes de caractères
status: Non traduit
status: En cours
permalink: string.html
---
<!DOCTYPE html>
Expand Down
2 changes: 1 addition & 1 deletion 07-generators.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Fermetures <i class=baa>&amp;</i> Générateurs
status: Non traduit
status: En cours
permalink: generators.html
---
<!DOCTYPE html>
Expand Down
4 changes: 2 additions & 2 deletions 16-case-study-porting-chardet-to-python-3.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Étude de cas : Le portage de <code>chardet</code> vers Python 3
title: Étude de cas - Le portage de <code>chardet</code> vers Python 3
status: Non traduit
permalink: case-study-porting-to-python-3.html
permalink: case-study-porting-chardet-to-python-3.html
---
<!DOCTYPE html>
<meta charset=utf-8>
Expand Down
138 changes: 118 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,41 @@ Dive Into Python 3
Projet de traduction fr
-----------------------

TODO: expliquer le projet, comment participer, qui contacter, à quelle on mange, pourquoi les escargots n'ont pas de dents...
TODO: expliquer le projet, à quelle heure on mange, pourquoi les escargots n'ont pas de dents…

Comment participer ?
--------------------

Pour discuter, on a une mailing-list : [email protected]. Inscrivez-vous sur [http://www.framalistes.org/sympa/subscribe/plongez-dans-python-3](http://www.framalistes.org/sympa/subscribe/plongez-dans-python-3).

Ensuite, il faut nous envoyer un petit mail sur cette liste en nous donnant votre pseudo github, qu'on vous ajoute au groupe qui a les droits sur ce dépôt, histoire de pouvoir bosser.

La façon de travailler est assez simple, mais il est primordial de s'y tenir, sinon ça va être le gros bazar.

1. Passer le statut à "En cours" dans l'en-tête du fichier que vous allez traduire, dans la branche master.
2. Pousser cette modification (ou la refaire) dans la branche gh-pages.
3. Créer, à partir de la branche master, une nouvelle branche portant le nom du fichier à traduire.
4. Traduire.
5. Passer le statut du fichier à "Relecture" dans la branche du fichier, la branche master et la branche gh-pages
6. Faire une pull-request pour pousser la branche du fichier dans la branche master
7. Relecture par les autres membres de l'équipe, quand ils sont ok pour pousser, ils mettent un :+1: (émoticône pouce vers le haut de github) dans les commentaires de la pull-request
8. Quand on a 4 ou 5 :+1: dans les commentaires, le coordinateur (ldidry) pousse dans master, update le statut à "Publié" dans les branches master et gh-pages.
9. goto 1

GIT : petit guide à l'usage du débutant
---------------------------------------

Git est un système de gestion de versions décentralisé [DVCS](https://en.wikipedia.org/wiki/Distributed_revision_control). Voilà pour les gros mots. Passons maintenant à quelque chose de compréhensible pour l'humain courant.
Git est un système de gestion de versions décentralisé [DVCS](https://en.wikipedia.org/wiki/Distributed_revision_control). Voilà pour les gros mots.

Passons maintenant à quelque chose de compréhensible pour l'humain courant. Ce guide doit vous mettre le pied à l'étrier du projet de traduction de Dive Into Python 3.

### Git : kesako ?

Git permet de gérer des versions de fichiers. Grâce à Git, on sait qui a fait quoi et à quel moment. Le savoir c'est bien, mais en faire quelque chose c'est mieux. Grâce à cette faculté de versionning, il est ainsi possible de voyager dans le temps : essayer de nouvelles choses, revenir en arrière... Moultes possibilités à découvrir.

### Je n'y connais rien. Que fais je ?

Eh bien vous apprenez. Pas de panique : inutile d'avoir fait Polytechnique. La courbe d'apprentissage des commandes de base est très rapide.
Eh bien vous apprenez. Pas de panique : inutile d'avoir fait Polytechnique. La courbe d'apprentissage des commandes de base est très rapide. Vous allez apprendre comment fonctionne Git avec des explications pour être humain et comment utiliser les commandes de base de Git : clone, pull, push, log, commit, branch, status...

#### Installation

Expand All @@ -33,13 +54,14 @@ Les principes sont assez simples :
Dans les deux cas, cela revient au même : vous disposez localement d'un dépôt sur lequel vous allez pouvoir travailler.

* Travailler sur votre dépôt.
* Versionner vos modifications -> Créer un commit.

Une fois satisfait de votre modification ou de votre ajout, vous pouvez versionner vos modifications. En langage Git, on parle de commit. Ce commit crée une nouvelle version du fichier. S'il s'agit d'un nouveau fichier, ce sera la première version.

* Publier vos modifications.
* Versionner vos modifications → Créer un commit.

Vos commits sont dans votre dépôt local. Vous avez alors la possibilité de les publier vers le dépôt initial ou même vers un autre dépôt. En langage Git, on parle de push. Si vous ne disposez pas des droit de publication sur dépôt distant, vous pouvez aussi proposer vos modifications au responsable du dépôt. En langage Git on parle de pull request.

* Publier vos modifications.

En résumé, vous créez un dépôt local, vous travaillez, vous committez et vous publiez. Facile, non ?

Expand All @@ -48,7 +70,7 @@ En résumé, vous créez un dépôt local, vous travaillez, vous committez et vo
Concrètement, voici ce que ça donne pour ce projet. Commençons pas cloner joyeusement le projet. Dans votre dossier personnel, placez vous à l'endroit où vous souhaitez créer votre dépôt local puis exécutez la commande de clonage

```bash
git clone https://github.com/framasoft/plongez-dans-python3.git
$ git clone https://github.com/framasoft/plongez-dans-python3.git
```

Vous devriez obtenir le résultat suivant. Vous remarquerez que cette opération crée automatiquement un dossier dans lequel figurera votre dépôt :
Expand All @@ -65,7 +87,7 @@ Resolving deltas: 100% (1587/1587), done.
Faites une modification. Vous pouvez obtenir à tout moment le statut de votre dépôt :

```bash
Blake:plongez-dans-python3 gcoulais$ git status
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
Expand All @@ -89,8 +111,8 @@ Ici un fichier README.md a été ajouté mais n'a pas encore été committé. Gi
Ajoutons maintenant le fichier au suivi de version et committons. L'opération se déroule donc en deux fois : add puis commit. Un commit est toujours accompagné d'un message expliquant ce que vous avez fait.

```bash
Blake:plongez-dans-python3 gcoulais$ git add README.md
Blake:plongez-dans-python3 gcoulais$ git commit -m "Ajout du README.md"
$ git add README.md
$ git commit -m "Ajout du README.md"
[master 2c53431] Ajout du README.md
1 file changed, 80 insertions(+)
create mode 100644 README.md
Expand All @@ -99,7 +121,7 @@ Blake:plongez-dans-python3 gcoulais$ git commit -m "Ajout du README.md"
Il ne reste plus qu'à publier la modification sur le dépôt distant :

```bash
Blake:plongez-dans-python3 gcoulais$ git push origin master
$ git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Expand All @@ -114,7 +136,7 @@ To https://github.com/framasoft/plongez-dans-python3.git
Effectivement, d'autres que vous travaillent sur cette traduction. Il faut donc que vous puissiez récupérer leurs modifications. Encore une fois, c'est un jeu d'enfant. Placez vous simplement dans votre dépôt et magie :

```bash
Blake:plongez-dans-python3 gcoulais$ git pull origin master
$ git pull origin master
From https://github.com/framasoft/plongez-dans-python3
* branch master -> FETCH_HEAD
Already up-to-date.
Expand All @@ -123,21 +145,21 @@ Already up-to-date.
Ici ce n'est pas très parlant : le dépôt local était déjà à jour. Mais c'est bien là que vous verrez apparaître toutes les modifications de vos petits camarades. Attention, si vous avez des modifications en cours, Git refusera de faire l'opération de pull. Il suffit de mettre de côté vos modifications, de récupérer la dernière version du dépôt distant puis d'y appliquer vos modifications en cours. En langage git, ça donne ça :

```bash
Blake:plongez-dans-python3 gcoulais$ git stash
$ git stash
Saved working directory and index state WIP on master: 7583460 README : coloration syntaxique pour les blocs de code
HEAD is now at 7583460 README : coloration syntaxique pour les blocs de code
```

puis
puis :

```bash
Blake:plongez-dans-python3 gcoulais$ git pull origin master
$ git pull origin master
```

et enfin
et enfin :

```bash
Blake:plongez-dans-python3 gcoulais$ git stash apply
$ git stash apply
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
Expand All @@ -150,9 +172,85 @@ no changes added to commit (use "git add" and/or "git commit -a")

#### Origin master : c'est quoi cette bouteille de lait ?

#### À propos des branches
Lors des opérations de récupératio (pull) et publication (push), vous avez utilisé des choses inconnues : origin master. Tout d'abord, c'est dangereux d'exécuter une commande sans savoir ce qu'elle fait :) . Bon, ici aucun chaton n'a été tué, l'honneur est sauf. Mais alors qu'est ce que c'est que ce 'origin master' ?

Votre dépôt local est autonome. Vous pouvez n'utiliser que lui et ne jamais rien publier. Mais si vous souhaitez contribuer à un autre dépôt, il y a un moment où votre votre dépôt local doit connaitre un plusieurs dépôts externes vers lesquels il pourra publier ou desquels il pourra récupérer des mise à jour. En langage Git, cela s'appelle un remote. Un remote est un dépôt distant qui est associé au votre.

TODO: expliquer brièvement les branches.
TODO: expliquer brièvement les remote. Pourquoi origin master
Par ailleurs, votre dépôt local peut être associé à plusieurs remotes. Il faut donc un moyen de différencier ces remotes. Ils sont donc nommés.

Enfin, un remote contient au moins une branche, il faut donc pouvoir identifier la branche distante avec laquelle vous souhaitez communiquer. Comment ça vous ne savez pas ce qu'est une branche ? Un peu de patience, ça vient.

Pour en revenir à ce qui nous intéresse, origin est donc un dépôt distant et master une branche dans ce dépôt. La magie, c'est que vous n'avez rien fait pour créer ou nommer ce remote. En fait, Git l'a fait tout seul comme un grand lorsque vous avez cloné le dépôt. Vous pouvez voir les dépôts auxquels vous être abonnés avec une simple commande :

```bash
$ git remote -v
origin [email protected]:framasoft/plongez-dans-python3.git (fetch)
origin [email protected]:framasoft/plongez-dans-python3.git (push)
no changes added to commit (use "git add" and/or "git commit -a")
```

Il y a beaucoup de choses que l'on peut faire avec les remotes. Il y a cependant de grandes chances que cette simple commande vous soit suffisante dans le cadre de ce projet.

#### Jardinons un peu : les branches

Pour en terminer avec ce petit voyage au pays de Git, soyons un peu bucoliques. Lorsque vous créez ou clonez un dépôt, Git crée une branche par défaut appelée master. Une branche est une sorte de copie du dépôt (en fait Git ne copie pas vraiment les données, mais nous n'irons pas aussi loin). Vous pouvez alors travailler sur cette copie sans impacter les autres branches : toute ce qui est committé dans cette nouvelle branche n'apparaîtra pas dans les autres. Si au final vous êtes satisfaits de votre travail, il ne vous reste plus qu'à commiter vos modifications dans cette branche puis à les rapatrier dans la branche master. En langage Git, on parle de merge. Mais vous pouvez aussi ne pas être content de ce que vous avez fait et ne pas vouloir conserver ces modifications. Il suffit de les committer puis de supprimer la nouvelle branche.

Pour connaitre la liste des branches de votre dépôt local :

```bash
$ git branch
* master
```

Pour créer une nouvelle branche :

```bash
$ git branch maNouvelleBranche
$ git branch
maNouvelleBranche
* master
```

L'astérisque vous indique le dépôt sur lequel vous travaillez. Changeons de branche pour travailler sur maNouvelleBranche :

```bash
$ git checkout maNouvelleBranche
M README.md
Switched to branch 'maNouvelleBranche'
gilles@Arctica:~/Developpement/Python/DiveIntoPython3$ git branch
* maNouvelleBranche
master
```

L'astérisque vous montre que vous êtes désormais sur la branche maNouvelleBranche.

#### Faites le petit chef : lister les commits

Dans votre activité professionnelle, vous avez sûrement un (petit) chef qui vient vous voir 20 fois par jour en vous disant "Alors, t'en es où ?". Oui, c'est énervant.

Mais Git est un gars calme et posé qui répondra toujours à vos sollicitations. Alors n'hésitez pas à faire le chef :

```bash
$ git log
commit 35c2a4c061a953e0ced1f69b0ecaabc1dbb224cd
Author: Sinma <[email protected]>
Date: Sat Jul 6 23:08:02 2013 +0200

Correction d’espace insécable (mode typo nazi)

commit 0262e7670d638e98db2e0aee34592612522da980
Author: Sinma <[email protected]>
Date: Sat Jul 6 22:37:39 2013 +0200

Réorganisation de «Principes de fonctionnement» et simplification de la présentation des commandes

Dans la partie «Principes de fonctionnement», j’ai placé le texte explicatif avant la description pour les deux derniers points de la liste.

J’ai aussi supprimé ce qu’il y avait avant le $ pour les lignes de commandes, ça risque moins de provoquer la confusion (moi-même je n’ai pas comp

commit f38a3530decc51c6ec72163f9595387409e506af
[...]
```
Vous pouvez naviguer dans l'historique des commits avec les flèches haut et bas de votre clavier. Quittez avec q.

Vous avez désormais les armes pour démarrer. Il y a énormément d'autres choses que vous pouvez faire avec Git mais ce n'est pas l'objet de ce tutoriel. Pour savoir comment faire telle ou telle chose, vous pouvez consulter le [Git Book](http://git-scm.com/book/fr/) ou solliciter la [liste de discussion](http://www.framalistes.org/sympa/info/plongez-dans-python-3).