doc/reference/libpurple/code_contributions.md

Thu, 21 Jul 2022 01:10:22 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 21 Jul 2022 01:10:22 -0500
changeset 41454
7cc69bde919d
parent 41424
5afbe5b72c49
permissions
-rw-r--r--

Update pidgin for the purple_account_manager_get_(in)active deprecations

Testing Done:
Compiled and made sure the menus still functioned as expected.

Reviewed at https://reviews.imfreedom.org/r/1536/

41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
1 Title: Code Contributions
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
2 Slug: code-contributions
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
3
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
4 ## Code Contributions
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
6 ### Introduction
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
7
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
8 All of the Pidgin related projects use [Review
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
9 Board](https://reviewboard.org/) for handling contributions at
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
10 [reviews.imfreedom.org](https://reviews.imfreedom.org).
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
12 ### First Time Setup
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
14 There are a few things you'll need to set up to be able to submit a code
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
15 review to these projects. This includes installing
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
16 [RBTools](https://www.reviewboard.org/downloads/rbtools/)
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
17 as well as some additional
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
18 [Mercurial](https://www.mercurial-scm.org/)
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
19 configuration.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
21 #### Install RBTools
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
23 The recommended way to install RBTools is via pip and can be done with the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
24 following command.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
26 ```sh
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
27 pip3 install -U "RBTools>=1.0.3"
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
28 ```
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
29 Once RBTools is installed you need to make sure that `rbt` is available on your
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
30 `$PATH`. To do this, you may need to add `$HOME/.local/bin` to your `$PATH`.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
31 The exact procedure to do this is dependent on your setup and outside of the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
32 scope of this document.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
34 #### Mercurial Configuration
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
36 This configuration for Mercurial is to make your life as a contributor easier.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
37 There a few different ways to configure Mercurial, but these instructions will
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
38 update your user specific configuration in `$HOME/.hgrc`.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
40 The first thing we need to do is to install the evolve extension. This
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
41 extension makes rewriting history safe and we use it extensively in our
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
42 repositories. You can install it with a simple `pip3 install -U hg-evolve`. We
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
43 will enable it below with some other bundled extensions, but you can find more
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
44 information about it
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
45 [here](https://www.mercurial-scm.org/wiki/EvolveExtension).
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
46
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
47 When working with Mercurial repositories it is very important to make sure that
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
48 your username is set properly as it is added to every commit you make. To set
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
49 your username you must add it to the `[ui]` section in your `$HOME/.hgrc` like
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
50 the following example.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
52 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 [ui]
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
54 username = Full Name <email@example.com>
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
55 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
57 Next we need to make sure that the ***evolve*** and ***rebase*** extensions are
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
58 loaded. To do so add the lines in the following example. You do not need to put
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
59 anything after the `=` as this will tell Mercurial to look for them in the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
60 default places for extensions.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
62 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 [extensions]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 evolve =
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 rebase =
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
66 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
68 Next we're going to create a ***revsetalias***. This will be used to make it
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
69 easier to look at your history and submit your review request.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
71 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 [revsetalias]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 wip = only(.,default)
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
74 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
76 This alias will show us just the commits that are on our working branch and not
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
77 on the default branch. The default branch is where all accepted code
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
78 contributions go. Optionally, you can add the `wip` command alias below which
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
79 will show you the revision history of what you are working on.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
81 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 [alias]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 wip = log --graph --rev wip
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
84 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
86 There are quite a few other useful configuration changes you can make, and a
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
87 few examples can be found below.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
89 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 [ui]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 # update a large number of settings for a better user experience, highly
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 # recommended!!
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 tweakdefaults = true
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 [alias]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 # make hg log show the graph as well as commit phase
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 lg = log --graph --template phases
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
98 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
100 Below is all of the above configuration settings to make it easier to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
101 copy/paste.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
103 ```ini
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 [ui]
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
105 username = Full Name <email@example.com>
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106 # update a large number of settings for a better user experience, highly
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 # recommended!!
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 tweakdefaults = true
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 [extensions]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 evolve =
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 rebase =
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 [alias]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 # make hg log show the graph as well as commit phase
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116 lg = log --graph --template phases
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 # show everything between the upstream and your wip
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119 wip = log --graph --rev wip
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 [revsetalias]
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 wip = only(.,default)
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
123 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
125 #### Log in to Review Board
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
127 To be able to submit a review request you need to have an account on our
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
128 JetBrains Hub instance at [hub.imfreedom.org](https://hub.imfreedom.org). You
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
129 can create an account here in a number of ways and even turn on two factor
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
130 authentication. But please note that if you turn on two factor authentication
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
131 you will need to create an [application
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
132 password](https://www.jetbrains.com/help/hub/application-passwords.html) to be
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
133 able to login to Review Board.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
135 Once you have that account you can use it to login our Review Board instance at
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
136 [reviews.imfreedom.org](https://reviews.imfreedom.org). Please note, you will
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
137 have to login via the web interface before being able to use RBTools.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
139 Once you have an account and have logged into our Review Board site, you can
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
140 begin using RBTools. In your shell, navigate to a Mercurial clone of one of the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
141 Pidgin or purple-related projects, then run the `rbt login` command. You should
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
142 only need to do this once, unless you change your password or have run the `rbt
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
143 logout` command.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
144
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
145 ### Creating a New Review Request
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
147 Before starting a new review request, you should make sure that your
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
148 local copy of the repository is up to date. To do so, make sure you are
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
149 on the ***default*** branch via
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
150 `hg update default`. Once you are on the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
151 ***default*** branch, you can update your copy with
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
152 `hg pull --update`. Now that you're starting with the most
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
153 recent code, you can proceed with your contributions.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
155 While it's not mandatory, it is highly recommended that you work on your
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
156 contributions via a branch. If you don't go this path, you will have
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
157 issues after your review request is merged. This branch name can be
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
158 whatever you like as it will not end up in the main repositories, and
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
159 you can delete it from your local repository after it is merged. See
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
160 [cleanup](#cleanup) for more information.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
162 You can create the branch with the following command:
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
164 ```sh
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
165 hg branch my-new-branch-name
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
166 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
168 Now that you have a branch started, you can go ahead and work like you normally
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
169 would, committing your code at logical times, etc. Once you have some work
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
170 committed and you are ready to create a new review request, you can type `rbt
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
171 post wip` and you should be good to go. This will create a new review request
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
172 using all of the committed work in your repository and will output something
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
173 like below.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
175 ```sh
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
176 Review request #403 posted.
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 https://reviews.imfreedom.org/r/403/
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 https://reviews.imfreedom.org/r/403/diff/
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
180 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
182 At this point, your review request has been posted, but it is not yet
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
183 published. This means no one can review it yet. To do that, you need to go to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
184 the URL that was output from your `rbt post` command and verify that everything
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
185 looks correct. If this review request fixes any bugs, please make sure to enter
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
186 their numbers in the bugs field on the right. Also, be sure to review the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
187 actual diff yourself to make sure it includes what you intended it to and
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
188 nothing extra.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
190 Once you are happy with the review request, you can hit the publish button
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
191 which will make the review request public and alert the reviewers of its
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
192 creation. Optionally you can pass `--open` to `rbt post` in the future to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
193 automatically open the draft review in your web browser.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
195 `rbt post` has a ton of options, so be sure to check them out with `rbt post
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
196 --help`. There are even options to automatically fill out the bugs fixed fields
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
197 among other things.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
199 ### Updating an Existing Review Request
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
201 Typically with a code review, you're going to need to make some updates.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
202 However there's also a good chance that your original branching point has
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
203 changed as other contributions are accepted. To deal with this you'll need to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
204 rebase your branch on top of the new changes.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
206 Rebasing, as the name suggests is the act of replaying your previous
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
207 commits on top of a new base revision. Mercurial makes this pretty easy.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
208 First, make sure you are on your branch with
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
209 `hg up my-branch-name`. Now you can preview the rebase with
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
210 `hg rebase -d default --keepbranches --dry-run`. We prefer
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
211 doing a dry-run just to make sure there aren't any major surprises. You
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
212 may run into some conflicts, but those will have to be fixed regardless.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
214 If everything looks good, you can run the actual rebase with `hg rebase -d
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
215 default --keepbranches`. Again if you run into any conflicts, you will have to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
216 resolve them and they will cause the dry-run to fail. Once you have fixed the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
217 merge conflicts, you'll then need to mark the files as resolved with `hg
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
218 resolve --mark filename`. When you have resolved all of the conflicted files
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
219 you can continue the rebase with `hg rebase --continue`. You may run into
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
220 multiple conflicts, so just repeat until you're done.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
222 After rebasing you can start addressing the comments in your review and commit
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
223 them. Once they are committed, you can update your existing review request
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
224 with `rbt post --update`. If for some reason `rbt` can not figure out the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
225 proper review request to update, you can pass the number in via `rbt post
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
226 --review-request-id #`. Note that when using `--review-request-id` you no
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
227 longer need to specify `--update`.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
229 Just like an initial `rbt post`, the updated version will be in a draft state
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
230 until you publish it. So again, you'll need to visit the URL that was output,
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
231 verify everything, and click the publish button.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
233 ### Landing a Review Request
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
234
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
235 This will typically only be done by the Pidgin developers with push access. If
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
236 you want to test a patch from a review request, please see the [patch](#path)
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
237 section below.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
239 It is ***HIGHLY*** recommended that you use a separate clone of the repository
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
240 in question when you want to land review requests. This makes it much easier
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
241 to avoid accidentally pushing development work to the canonical repository
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
242 which makes everyone's life easier. Also, the mainline repositories now auto
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
243 publish, so if you do not selectively push commits, all of your draft commits
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
244 will be published. You can name this additional clone whatever you like, but
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
245 using something like `pidgin-clean` is a fairly common practice. This makes it
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
246 easy for you to know that this clone is only meant for landing review requests,
41424
5afbe5b72c49 fix typos in code contributions guide
ivanhoe <ivanhoe@fiscari.de>
parents: 41164
diff changeset
247 and other administrative work like updating the ChangeLog and COPYRIGHT files.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
249 When you are ready to land a review request you need to make sure you are on
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
250 the proper branch. In most cases this will be the branch named ***default***
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
251 and can be verified by running the command `hg branch`. Next you need to make
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
252 sure that your local copy is up to date. You can do this by running `hg pull
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
253 --update`.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
255 Please note, if you run `hg pull` and then immediately run `hg pull --update`
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
256 you will ***not*** update to the most recent commit as this new invocation of
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
257 `hg pull` has not actually pulled in any new commits. To properly update,
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
258 you'll need to run `hg update` instead.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
260 Once your local copy is up to date you can land the review request with `rbt
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
261 land --no-push --review-request-id #` where `#` is the number of the review
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
262 request you are landing. The `--no-push` argument is to disable pushing this
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
263 commit immediately. Most of our configuration already enables this flag for
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
264 you, but if you're in doubt, please use the `--no-push` argument.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
266 Once the review request has been landed, make sure to verify that the revision
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
267 history looks correct, run a test build as well as the unit tests, and if
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
268 everything looks good, you can continue with the housekeeping before we finally
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
269 push the new commits.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
271 The housekeeping we need to do entails a few things. If this is a big new
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
272 feature or bug fix, we should be documenting this in the ChangeLog file for the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
273 repository. Please follow the existing convention of mentioning the contributor
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
274 as well as the issues addressed and the review request number. Likewise, if
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
275 this is someone's first contribution you will need to add them to the COPYRIGHT
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
276 file in the repository as well. If you had to update either of these files,
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
277 review your changes and commit them directly.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
279 Now that any updates to ChangeLog and COPYRIGHT are completed, we can actually
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
280 start pushing the changes back to the canonical repository. Currently not all
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
281 of the canonical repositories are publishing repositories so we'll need to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
282 manually mark the commits as public. This is easily accomplished with `hg phase
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
283 --public`. ***Note***, if you are not using a separate clone of the canonical
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
284 repository you will need to specify a revision to avoid publishing every commit
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
285 in your repository. If you run into issues or have more questions about phases
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
286 see the [official documentation](https://www.mercurial-scm.org/wiki/Phases).
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
288 Now that the changes have been made public, we can finally push to the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
289 canonical repository with `hg push`. Once that is done, you'll also need to go
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
290 and mark the review request as ***Submitted*** in the Review Board web
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
291 interface.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
293 ### Testing Patches Locally
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
294
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
295 If you want to test a patch locally for any reason, you first need to make sure
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
296 that you are on the target branch for the review request which is listed on the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
297 review request page. In most cases this will be the ***default*** branch.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
298 Regardless you'll need to run `hg up branch-name` before applying the patch.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
299
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
300 Now that you are on the correct branch, you can apply the patch with
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
301 `rbt patch #` where `#` is the id of the review request you want to test. This
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
302 will apply the patch from the review request to your working copy without
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
303 committing it.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
304
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
305 Once you're done with your testing you can remove the changes with `hg revert
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
306 --no-backup --all`. This will return your repository to exactly what it was
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
307 before the patch was applied. The `--no-backup` argument says to not save the
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
308 changes that you are reverting and the `--all` argument tells Mercurial to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
309 revert all files.
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
310
41424
5afbe5b72c49 fix typos in code contributions guide
ivanhoe <ivanhoe@fiscari.de>
parents: 41164
diff changeset
311 ### Cleaning up a Landed or Discarded Review Request
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
313 Whether or not your pull request has been accepted, you probably want to clean
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
314 it up from your local repository. To do so, you need to update to a branch
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
315 other than the branch you built it on. In the following example, we're going to
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
316 remove the branch named ***my-new-branch-name*** that we used to create a
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
317 review request.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
318
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
319 ```sh
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
320 hg up default
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
321 hg prune -r 'branch(my-new-branch-name)'
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
322 ```
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
323
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
324 Now, all commits that were on the ***my-new-branch-name*** branch will have
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
325 their contents removed but internally Mercurial keeps track that these revisions
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
326 have been deleted.
40716
7a4e48594a24 Update all of the development documentation
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
327
41164
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
328 You can repeat this for any other branches you need to clean up, and you're
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
329 done!
d861b10105fb Convert the libpurple docs to gi-docgen
Gary Kramlich <grim@reaperworld.com>
parents: 40972
diff changeset
330

mercurial