Merge lp:~dholbach/launchpad/coc-2.0 into lp:launchpad

Proposed by Daniel Holbach on 2012-11-09
Status: Merged
Merged at revision: 16283
Proposed branch: lp:~dholbach/launchpad/coc-2.0
Merge into: lp:launchpad
Diff against target: 521 lines (+427/-12)
6 files modified
lib/lp/registry/browser/tests/test_codeofconduct.py (+2/-2)
lib/lp/registry/codesofconduct/2.0.txt (+202/-0)
lib/lp/registry/model/codeofconduct.py (+1/-1)
lib/lp/registry/stories/gpg-coc/reformatted_20_coc.asc (+213/-0)
lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt (+7/-7)
lib/lp/services/webapp/doc/canonical_url_examples.txt (+2/-2)
To merge this branch: bzr merge lp:~dholbach/launchpad/coc-2.0
Reviewer Review Type Date Requested Status
Richard Harding (community) 2012-11-09 Needs Information on 2012-11-15
Review via email: mp+133702@code.launchpad.net
To post a comment you must log in.
Daniel Holbach (dholbach) wrote :

The new CoC should be announced beginning of next week.

Daniel Holbach (dholbach) wrote :

I did not manage to update the signed code of conduct, because I didn't know how exactly it was generated. So with this piece I need some help.

Richard Harding (rharding) wrote :

> I did not manage to update the signed code of conduct, because I didn't know
> how exactly it was generated. So with this piece I need some help.

Hey Daniel, I *think* you're referring to the signed CoC in the test suite? If so, the tests are using the GPG keys in lp.testing.gpgkeys (data folder). So if that's what you mean you should be able to sign the new CoC for the test with the keys there using <email address hidden>

If I'm misunderstanding you let me know.

review: Needs Information
Daniel Holbach (dholbach) wrote :

Yes, I was referring to the signed CoC in the test suite. Can anyone help me sign it? I'm not quite sure how to get it done.

Richard Harding (rharding) wrote :

Daniel, I've managed to get the tests passing I think. I've pushed my branch over @
https://code.launchpad.net/~rharding/launchpad/coc2

To sign the coc correctly I had to import the <email address hidden> key from lib/lp/testing/gpgkeys. Then signed --cleansign --default-key XXXXX. The testing passphrase was 'test'.

From there things seem to be going ok. If you're ok with it I'll just go through the normal ec2 land from my branch to get things finished up. If you'd prefer you can pull the file from my branch and I'll ok this MP for landing.

Daniel Holbach (dholbach) wrote :

Please go ahead. Thanks so much for your help with this!

Richard Harding (rharding) wrote :

This is merged and QA'd. It should go out in the first deploy of next week since no one wants to deploy on a Friday. Let me know if there's any issue or anything else that needs a hand.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/registry/browser/tests/test_codeofconduct.py'
2--- lib/lp/registry/browser/tests/test_codeofconduct.py 2012-02-01 15:26:32 +0000
3+++ lib/lp/registry/browser/tests/test_codeofconduct.py 2012-11-09 15:48:24 +0000
4@@ -160,11 +160,11 @@
5
6 def test_response(self):
7 """Ensure the headers and body are as expected."""
8- coc = getUtility(ICodeOfConductSet)['1.1']
9+ coc = getUtility(ICodeOfConductSet)['2.0']
10 content = coc.content
11 browser = self.getViewBrowser(coc, '+download')
12 self.assertEqual(content, browser.contents)
13 self.assertEqual(str(len(content)), browser.headers['Content-length'])
14- disposition = 'attachment; filename="UbuntuCodeofConduct-1.1.txt"'
15+ disposition = 'attachment; filename="UbuntuCodeofConduct-2.0.txt"'
16 self.assertEqual(disposition, browser.headers['Content-disposition'])
17 self.assertEqual('text/plain', browser.headers['Content-type'])
18
19=== added file 'lib/lp/registry/codesofconduct/2.0.txt'
20--- lib/lp/registry/codesofconduct/2.0.txt 1970-01-01 00:00:00 +0000
21+++ lib/lp/registry/codesofconduct/2.0.txt 2012-11-09 15:48:24 +0000
22@@ -0,0 +1,202 @@
23+= Ubuntu Code of Conduct v2.0 =
24+
25+== Community ==
26+
27+Ubuntu is about showing humanity to one another: the word itself
28+captures the spirit of being human.
29+
30+We want a productive, happy and agile community that can welcome new
31+ideas in a complex field, improve every process every year, and foster
32+collaboration between groups with very different needs, interests and
33+skills.
34+
35+We gain strength from diversity, and actively seek participation from
36+those who enhance it. This code of conduct exists to ensure that
37+diverse groups collaborate to mutual advantage and enjoyment. We will
38+challenge prejudice that could jeopardise the participation of any
39+person in the project.
40+
41+The Code of Conduct governs how we behave in public or in private
42+whenever the project will be judged by our actions. We expect it to be
43+honored by everyone who represents the project officially or
44+informally, claims affiliation with the project, or participates
45+directly.
46+
47+We strive to:
48+
49+ '''Be considerate.'''
50+
51+ Our work will be used by other people, and we in turn will depend on
52+ the work of others. Any decision we take will affect users and
53+ colleagues, and we should consider them when making decisions.
54+
55+ '''Be respectful.'''
56+
57+ Disagreement is no excuse for poor manners. We work together to
58+ resolve conflict, assume good intentions and do our best to act in
59+ an empathic fashion. We don't allow frustration to turn into a
60+ personal attack. A community where people feel uncomfortable or
61+ threatened is not a productive one.
62+
63+ '''Take responsibility for our words and our actions.'''
64+
65+ We can all make mistakes; when we do, we take responsibility for
66+ them. If someone has been harmed or offended, we listen carefully
67+ and respectfully, and work to right the wrong.
68+
69+ '''Be collaborative.'''
70+
71+ What we produce is a complex whole made of many parts, it is the sum
72+ of many dreams. Collaboration between teams that each have their own
73+ goal and vision is essential; for the whole to be more than the sum
74+ of its parts, each part must make an effort to understand the whole.
75+
76+ Collaboration reduces redundancy and improves the quality of our
77+ work. Internally and externally, we celebrate good collaboration.
78+ Wherever possible, we work closely with upstream projects and others
79+ in the free software community to coordinate our efforts.
80+
81+ We prefer to work transparently and involve interested parties as
82+ early as possible.
83+
84+ '''Value decisiveness, clarity and consensus.'''
85+
86+ Disagreements, social and technical, are normal, but we do not allow
87+ them to persist and fester leaving others uncertain of the agreed
88+ direction.
89+
90+ We expect participants in the project to resolve disagreements
91+ constructively. When they cannot, we escalate the matter to
92+ structures with designated leaders to arbitrate and provide clarity
93+ and direction.
94+
95+ '''Ask for help when unsure.'''
96+
97+ Nobody is expected to be perfect in this community. Asking questions
98+ early avoids many problems later, so questions are encouraged,
99+ though they may be directed to the appropriate forum. Those who are
100+ asked should be responsive and helpful.
101+
102+ '''Step down considerately.'''
103+
104+ When somebody leaves or disengages from the project, we ask that
105+ they do so in a way that minimises disruption to the project. They
106+ should tell people they are leaving and take the proper steps to
107+ ensure that others can pick up where they left off.
108+
109+
110+== Leadership, Authority and Responsibility ==
111+
112+We all lead by example, in debate and in action. We encourage new
113+participants to feel empowered to lead, to take action, and to
114+experiment when they feel innovation could improve the project.
115+Leadership can be exercised by anyone simply by taking action, there
116+is no need to wait for recognition when the opportunity to lead
117+presents itself.
118+
119+'''Delegation from the top.'''
120+
121+Responsibility for the project starts with the "benevolent dictator",
122+who delegates specific responsibilities and the corresponding
123+authority to a series of teams, councils and individuals, starting
124+with the Community Council ("CC"). That Council or its delegated
125+representative will arbitrate in any dispute.
126+
127+We are a meritocracy; we delegate decision making, governance and
128+leadership from senior bodies to the most able and engaged candidates.
129+
130+'''Support for delegation is measured'''
131+
132+Nominations to the boards and councils are at the discretion of the
133+Community Council, however the Community Council will seek the input
134+of the community before confirming appointments.
135+
136+Leadership is not an award, right, or title; it is a privilege, a
137+responsibility and a mandate. A leader will only retain their
138+authority as long as they retain the support of those who delegated
139+that authority to them.
140+
141+'''We value discussion, data and decisiveness.'''
142+
143+We gather opinions, data and commitments from concerned parties before
144+taking a decision. We expect leaders to help teams come to a decision
145+in a reasonable time, to seek guidance or be willing to take the
146+decision themselves when consensus is lacking, and to take
147+responsibility for implementation.
148+
149+The poorest decision of all is no decision: clarity of direction has
150+value in itself. Sometimes all the data are not available, or
151+consensus is elusive. A decision must still be made. There is no
152+guarantee of a perfect decision every time - we prefer to err, learn,
153+and err less in future than to postpone action indefinitely.
154+
155+We recognise that the project works better when we trust the teams
156+closest to a problem to make the decision for the project. If we learn
157+of a decision that we disagree with, we can engage the relevant team
158+to find common ground, and failing that, we have a governance
159+structure that can review the decision. Ultimately, if a decision has
160+been taken by the people responsible for it, and is supported by the
161+project governance, it will stand. None of us expects to agree with
162+every decision, and we value highly the willingness to stand by the
163+project and help it deliver even on the occasions when we ourselves
164+may prefer a different route.
165+
166+'''Open meritocracy.'''
167+
168+We invite anybody, from any company, to participate in any aspect of
169+the project. Our community is open, and any responsibility can be
170+carried by any contributor who demonstrates the required capacity and
171+competence.
172+
173+'''Teamwork'''
174+
175+A leader's foremost goal is the success of the team.
176+
177+"A virtuoso is judged by their actions; a leader is judged by the
178+actions of their team." A leader knows when to act and when to step
179+back. They know when to delegate work, and when to take it upon
180+themselves.
181+
182+'''Credit'''
183+
184+A good leader does not seek the limelight, but celebrates team members
185+for the work they do. Leaders may be more visible than members of the
186+team, good ones use that visibility to highlight the great work of
187+others.
188+
189+'''Courage and considerateness'''
190+
191+Leadership occasionally requires bold decisions that will not be
192+widely understood, consensual or popular. We value the courage to take
193+such decisions, because they enable the project as a whole to move
194+forward faster than we could if we required complete consensus.
195+Nevertheless, boldness demands considerateness; take bold decisions,
196+but do so mindful of the challenges they present for others, and work
197+to soften the impact of those decisions on them. Communicating changes
198+and their reasoning clearly and early on is as important as the
199+implementation of the change itself.
200+
201+'''Conflicts of Interest'''
202+
203+We expect leaders to be aware when they are conflicted due to
204+employment or other projects they are involved in, and abstain or
205+delegate decisions that may be seen to be self-interested. We expect
206+that everyone who participates in the project does so with the goal of
207+making life better for its users.
208+
209+When in doubt, ask for a second opinion. Perceived conflicts of
210+interest are important to address; as a leader, act to ensure that
211+decisions are credible even if they must occasionally be unpopular,
212+difficult or favourable to the interests of one group over another.
213+
214+This Code is not exhaustive or complete. It is not a rulebook; it
215+serves to distill our common understanding of a collaborative, shared
216+environment and goals. We expect it to be followed in spirit as much
217+as in the letter.
218+
219+
220+'''The Ubuntu Code of Conduct is licensed under the
221+[[http://creativecommons.org/licenses/by-sa/3.0/|Creative Commons
222+Attribution-Share Alike 3.0 license]]. You may re-use it for your own
223+project, and modify it as you wish, just please allow others to use
224+your modifications and give credit to the Ubuntu Project!'''
225
226=== modified file 'lib/lp/registry/model/codeofconduct.py'
227--- lib/lp/registry/model/codeofconduct.py 2012-06-29 08:40:05 +0000
228+++ lib/lp/registry/model/codeofconduct.py 2012-11-09 15:48:24 +0000
229@@ -62,7 +62,7 @@
230
231 path = 'lib/lp/registry/codesofconduct/'
232 prefix = 'Ubuntu Code of Conduct - '
233- currentrelease = '1.1'
234+ currentrelease = '2.0'
235 # Set the datereleased to the date that 1.0 CoC was released,
236 # preserving everyone's Ubuntu Code of Conduct signatory status.
237 # https://launchpad.net/products/launchpad/+bug/48995
238
239=== added file 'lib/lp/registry/stories/gpg-coc/reformatted_20_coc.asc'
240--- lib/lp/registry/stories/gpg-coc/reformatted_20_coc.asc 1970-01-01 00:00:00 +0000
241+++ lib/lp/registry/stories/gpg-coc/reformatted_20_coc.asc 2012-11-09 15:48:24 +0000
242@@ -0,0 +1,213 @@
243+-----BEGIN PGP SIGNED MESSAGE-----
244+Hash: SHA1
245+
246+= Ubuntu Code of Conduct v2.0 =
247+
248+== Community ==
249+
250+Ubuntu is about showing humanity to one another: the word itself
251+captures the spirit of being human.
252+
253+We want a productive, happy and agile community that can welcome new
254+ideas in a complex field, improve every process every year, and foster
255+collaboration between groups with very different needs, interests and
256+skills.
257+
258+We gain strength from diversity, and actively seek participation from
259+those who enhance it. This code of conduct exists to ensure that
260+diverse groups collaborate to mutual advantage and enjoyment. We will
261+challenge prejudice that could jeopardise the participation of any
262+person in the project.
263+
264+The Code of Conduct governs how we behave in public or in private
265+whenever the project will be judged by our actions. We expect it to be
266+honored by everyone who represents the project officially or
267+informally, claims affiliation with the project, or participates
268+directly.
269+
270+We strive to:
271+
272+ '''Be considerate.'''
273+
274+ Our work will be used by other people, and we in turn will depend on
275+ the work of others. Any decision we take will affect users and
276+ colleagues, and we should consider them when making decisions.
277+
278+ '''Be respectful.'''
279+
280+ Disagreement is no excuse for poor manners. We work together to
281+ resolve conflict, assume good intentions and do our best to act in
282+ an empathic fashion. We don't allow frustration to turn into a
283+ personal attack. A community where people feel uncomfortable or
284+ threatened is not a productive one.
285+
286+ '''Take responsibility for our words and our actions.'''
287+
288+ We can all make mistakes; when we do, we take responsibility for
289+ them. If someone has been harmed or offended, we listen carefully
290+ and respectfully, and work to right the wrong.
291+
292+ '''Be collaborative.'''
293+
294+ What we produce is a complex whole made of many parts, it is the sum
295+ of many dreams. Collaboration between teams that each have their own
296+ goal and vision is essential; for the whole to be more than the sum
297+ of its parts, each part must make an effort to understand the whole.
298+
299+ Collaboration reduces redundancy and improves the quality of our
300+ work. Internally and externally, we celebrate good collaboration.
301+ Wherever possible, we work closely with upstream projects and others
302+ in the free software community to coordinate our efforts.
303+
304+ We prefer to work transparently and involve interested parties as
305+ early as possible.
306+
307+ '''Value decisiveness, clarity and consensus.'''
308+
309+ Disagreements, social and technical, are normal, but we do not allow
310+ them to persist and fester leaving others uncertain of the agreed
311+ direction.
312+
313+ We expect participants in the project to resolve disagreements
314+ constructively. When they cannot, we escalate the matter to
315+ structures with designated leaders to arbitrate and provide clarity
316+ and direction.
317+
318+ '''Ask for help when unsure.'''
319+
320+ Nobody is expected to be perfect in this community. Asking questions
321+ early avoids many problems later, so questions are encouraged,
322+ though they may be directed to the appropriate forum. Those who are
323+ asked should be responsive and helpful.
324+
325+ '''Step down considerately.'''
326+
327+ When somebody leaves or disengages from the project, we ask that
328+ they do so in a way that minimises disruption to the project. They
329+ should tell people they are leaving and take the proper steps to
330+ ensure that others can pick up where they left off.
331+
332+
333+== Leadership, Authority and Responsibility ==
334+
335+We all lead by example, in debate and in action. We encourage new
336+participants to feel empowered to lead, to take action, and to
337+experiment when they feel innovation could improve the project.
338+Leadership can be exercised by anyone simply by taking action, there
339+is no need to wait for recognition when the opportunity to lead
340+presents itself.
341+
342+'''Delegation from the top.'''
343+
344+Responsibility for the project starts with the "benevolent dictator",
345+who delegates specific responsibilities and the corresponding
346+authority to a series of teams, councils and individuals, starting
347+with the Community Council ("CC"). That Council or its delegated
348+representative will arbitrate in any dispute.
349+
350+We are a meritocracy; we delegate decision making, governance and
351+leadership from senior bodies to the most able and engaged candidates.
352+
353+'''Support for delegation is measured'''
354+
355+Nominations to the boards and councils are at the discretion of the
356+Community Council, however the Community Council will seek the input
357+of the community before confirming appointments.
358+
359+Leadership is not an award, right, or title; it is a privilege, a
360+responsibility and a mandate. A leader will only retain their
361+authority as long as they retain the support of those who delegated
362+that authority to them.
363+
364+'''We value discussion, data and decisiveness.'''
365+
366+We gather opinions, data and commitments from concerned parties before
367+taking a decision. We expect leaders to help teams come to a decision
368+in a reasonable time, to seek guidance or be willing to take the
369+decision themselves when consensus is lacking, and to take
370+responsibility for implementation.
371+
372+The poorest decision of all is no decision: clarity of direction has
373+value in itself. Sometimes all the data are not available, or
374+consensus is elusive. A decision must still be made. There is no
375+guarantee of a perfect decision every time - we prefer to err, learn,
376+and err less in future than to postpone action indefinitely.
377+
378+We recognise that the project works better when we trust the teams
379+closest to a problem to make the decision for the project. If we learn
380+of a decision that we disagree with, we can engage the relevant team
381+to find common ground, and failing that, we have a governance
382+structure that can review the decision. Ultimately, if a decision has
383+been taken by the people responsible for it, and is supported by the
384+project governance, it will stand. None of us expects to agree with
385+every decision, and we value highly the willingness to stand by the
386+project and help it deliver even on the occasions when we ourselves
387+may prefer a different route.
388+
389+'''Open meritocracy.'''
390+
391+We invite anybody, from any company, to participate in any aspect of
392+the project. Our community is open, and any responsibility can be
393+carried by any contributor who demonstrates the required capacity and
394+competence.
395+
396+'''Teamwork'''
397+
398+A leader's foremost goal is the success of the team.
399+
400+"A virtuoso is judged by their actions; a leader is judged by the
401+actions of their team." A leader knows when to act and when to step
402+back. They know when to delegate work, and when to take it upon
403+themselves.
404+
405+'''Credit'''
406+
407+A good leader does not seek the limelight, but celebrates team members
408+for the work they do. Leaders may be more visible than members of the
409+team, good ones use that visibility to highlight the great work of
410+others.
411+
412+'''Courage and considerateness'''
413+
414+Leadership occasionally requires bold decisions that will not be
415+widely understood, consensual or popular. We value the courage to take
416+such decisions, because they enable the project as a whole to move
417+forward faster than we could if we required complete consensus.
418+Nevertheless, boldness demands considerateness; take bold decisions,
419+but do so mindful of the challenges they present for others, and work
420+to soften the impact of those decisions on them. Communicating changes
421+and their reasoning clearly and early on is as important as the
422+implementation of the change itself.
423+
424+'''Conflicts of Interest'''
425+
426+We expect leaders to be aware when they are conflicted due to
427+employment or other projects they are involved in, and abstain or
428+delegate decisions that may be seen to be self-interested. We expect
429+that everyone who participates in the project does so with the goal of
430+making life better for its users.
431+
432+When in doubt, ask for a second opinion. Perceived conflicts of
433+interest are important to address; as a leader, act to ensure that
434+decisions are credible even if they must occasionally be unpopular,
435+difficult or favourable to the interests of one group over another.
436+
437+This Code is not exhaustive or complete. It is not a rulebook; it
438+serves to distill our common understanding of a collaborative, shared
439+environment and goals. We expect it to be followed in spirit as much
440+as in the letter.
441+
442+
443+'''The Ubuntu Code of Conduct is licensed under the
444+[[http://creativecommons.org/licenses/by-sa/3.0/|Creative Commons
445+Attribution-Share Alike 3.0 license]]. You may re-use it for your own
446+project, and modify it as you wish, just please allow others to use
447+your modifications and give credit to the Ubuntu Project!'''
448+
449+-----BEGIN PGP SIGNATURE-----
450+Version: GnuPG v1.4.9 (GNU/Linux)
451+
452+iEYEARECAAYFAksVcI0ACgkQ2yWXVgK6XvbgDACgqN25IVdVInlqyQ1GWTh32/QT
453+wDAAn2VGsn4WxJvnCf6738f2aWPqZ4aK
454+=3I88
455+-----END PGP SIGNATURE-----
456
457=== modified file 'lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt'
458--- lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt 2012-08-21 14:39:52 +0000
459+++ lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt 2012-11-09 15:48:24 +0000
460@@ -397,7 +397,7 @@
461 Sample Person tries unsuccessfully to register a truncated code of conduct.
462
463 >>> truncated_coc = read_file('truncated_coc.asc')
464- >>> browser.open('http://launchpad.dev/codeofconduct/1.1/+sign')
465+ >>> browser.open('http://launchpad.dev/codeofconduct/2.0/+sign')
466 >>> browser.getControl('Signed Code').value = truncated_coc
467 >>> browser.getControl('Continue').click()
468 >>> print_errors(browser.contents)
469@@ -422,11 +422,11 @@
470 >>> browser.open('http://launchpad.dev/codeofconduct/1.0/+sign')
471 >>> browser.getLink('the current version').click()
472 >>> print browser.url
473- http://launchpad.dev/codeofconduct/1.1
474+ http://launchpad.dev/codeofconduct/2.0
475
476 >>> browser.getLink('Sign it').click()
477 >>> print browser.url
478- http://launchpad.dev/codeofconduct/1.1/+sign
479+ http://launchpad.dev/codeofconduct/2.0/+sign
480
481
482 Code of Conduct registration
483@@ -436,7 +436,7 @@
484 has leading spaces removed. This succeeds because the words the same and
485 appear in the same order.
486
487- >>> reformatted_coc = read_file('reformatted_11_coc.asc')
488+ >>> reformatted_coc = read_file('reformatted_20_coc.asc')
489 >>> browser.getControl('Signed Code').value = reformatted_coc
490 >>> browser.getControl('Continue').click()
491 >>> print browser.url
492@@ -688,11 +688,11 @@
493 >>> browser.open('http://localhost:9000/codeofconduct')
494 >>> browser.getLink('current version').click()
495
496- >>> 'Ubuntu Code of Conduct - 1.1' in browser.contents
497+ >>> 'Ubuntu Code of Conduct - 2.0' in browser.contents
498 True
499
500 >>> browser.getLink('Sign it').url
501- 'http://localhost:9000/codeofconduct/1.1/+sign'
502+ 'http://localhost:9000/codeofconduct/2.0/+sign'
503
504 >>> browser.getLink('Download this version').url
505- 'http://localhost:9000/codeofconduct/1.1/+download'
506+ 'http://localhost:9000/codeofconduct/2.0/+download'
507
508=== modified file 'lib/lp/services/webapp/doc/canonical_url_examples.txt'
509--- lib/lp/services/webapp/doc/canonical_url_examples.txt 2012-05-22 12:05:51 +0000
510+++ lib/lp/services/webapp/doc/canonical_url_examples.txt 2012-11-09 15:48:24 +0000
511@@ -94,8 +94,8 @@
512
513 An ICodeOfConduct
514
515- >>> canonical_url(cocset['1.1'])
516- u'http://launchpad.dev/codeofconduct/1.1'
517+ >>> canonical_url(cocset['2.0'])
518+ u'http://launchpad.dev/codeofconduct/2.0'
519
520
521 Distributions, distroseriess and so on