Merge lp:~dave-cheney/juju-core/169-add-juju-development-charm into lp:~go-bot/juju-core/trunk

Proposed by Dave Cheney
Status: Work in progress
Proposed branch: lp:~dave-cheney/juju-core/169-add-juju-development-charm
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 378 lines (+342/-0)
6 files modified
repostory/trusty/juju-development/README.md (+14/-0)
repostory/trusty/juju-development/config.yaml (+1/-0)
repostory/trusty/juju-development/hooks/install (+39/-0)
repostory/trusty/juju-development/icon.svg (+279/-0)
repostory/trusty/juju-development/metadata.yaml (+8/-0)
repostory/trusty/juju-development/revision (+1/-0)
To merge this branch: bzr merge lp:~dave-cheney/juju-core/169-add-juju-development-charm
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+217488@code.launchpad.net

Description of the change

add juju-development charm

It's a charm for Juju development.

Sit back, relax, and let the juju-development charm create a first class development environment to hack on Juju.

https://codereview.appspot.com/90860043/

To post a comment you must log in.
Revision history for this message
Dave Cheney (dave-cheney) wrote :

Reviewers: mp+217488_code.launchpad.net,

Message:
Please take a look.

Description:
add juju-development charm

It's a charm for Juju development.

Sit back, relax, and let the juju-development charm create a first class
development environment to hack on Juju.

https://code.launchpad.net/~dave-cheney/juju-core/169-add-juju-development-charm/+merge/217488

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/90860043/

Affected files (+343, -0 lines):
   A [revision details]
   A repostory/trusty/juju-development/README.md
   A repostory/trusty/juju-development/config.yaml
   A repostory/trusty/juju-development/hooks/install
   A repostory/trusty/juju-development/icon.svg
   A repostory/trusty/juju-development/metadata.yaml
   A repostory/trusty/juju-development/revision

2638. By Dave Cheney

sudo ALL THE THINGS

Revision history for this message
Dave Cheney (dave-cheney) wrote :
Revision history for this message
William Reade (fwereade) wrote :

I heartily endorse the general idea, but (1) we should update the docs
to suggest using it; and (2) really, we should put it in the charm
store. Any strong reason we're not doing so? Its existence assumes
network access regardless. And if there *is* a good reason to put it in
the source tree, we should spell "repository" correctly ;p.

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/config.yaml
File repostory/trusty/juju-development/config.yaml (right):

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/config.yaml#newcode1
repostory/trusty/juju-development/config.yaml:1: options:
can we just skip config.yaml for now?

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/revision
File repostory/trusty/juju-development/revision (right):

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/revision#newcode1
repostory/trusty/juju-development/revision:1: 3
I'd prefer to skip this too.
https://juju.ubuntu.com/docs/authors-charm-components.html states that
it is "deprecated", which is a useful lie [0], but it's still pretty
useless in a local charm, and is handled by the store for store charms.

[0] the original docs explained in some detail why you shouldn't use it,
iirc, but I think it was edited for the convenience of normal humans.

https://codereview.appspot.com/90860043/

Revision history for this message
Dave Cheney (dave-cheney) wrote :

Good point. I'll figure out how to put it in a personal branch of the
charm store.

On Tue, May 6, 2014 at 6:38 PM, <email address hidden> wrote:
> I heartily endorse the general idea, but (1) we should update the docs
> to suggest using it; and (2) really, we should put it in the charm
> store. Any strong reason we're not doing so? Its existence assumes
> network access regardless. And if there *is* a good reason to put it in
> the source tree, we should spell "repository" correctly ;p.
>
>
> https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/config.yaml
> File repostory/trusty/juju-development/config.yaml (right):
>
> https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/config.yaml#newcode1
> repostory/trusty/juju-development/config.yaml:1: options:
> can we just skip config.yaml for now?
>
> https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/revision
> File repostory/trusty/juju-development/revision (right):
>
> https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/revision#newcode1
> repostory/trusty/juju-development/revision:1: 3
> I'd prefer to skip this too.
> https://juju.ubuntu.com/docs/authors-charm-components.html states that
> it is "deprecated", which is a useful lie [0], but it's still pretty
> useless in a local charm, and is handled by the store for store charms.
>
> [0] the original docs explained in some detail why you shouldn't use it,
> iirc, but I think it was edited for the convenience of normal humans.
>
> https://codereview.appspot.com/90860043/

Revision history for this message
Nick Veitch (evilnick) wrote :

On May 6, 2014 9:48 AM, "Dave Cheney" <email address hidden> wrote:
>
> Good point. I'll figure out how to put it in a personal branch of the
> charm store.
>
https://juju.ubuntu.com/docs/authors-charm-store.html

Should cover it.

Revision history for this message
Andrew Wilkins (axwalk) wrote :

Handy, thanks. I'm using this to track down broken unit tests on precise
without involving The Cloud.

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/hooks/install
File repostory/trusty/juju-development/hooks/install (right):

https://codereview.appspot.com/90860043/diff/20001/repostory/trusty/juju-development/hooks/install#newcode9
repostory/trusty/juju-development/hooks/install:9: apt-get install -y
build-essential bzr mercurial git-core golang-go vim-nox
golang-go installs go1 on precise, which isn't sufficient for juju-core

https://codereview.appspot.com/90860043/

Unmerged revisions

2638. By Dave Cheney

sudo ALL THE THINGS

2637. By Dave Cheney

Add juju-development charm

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'repostory'
2=== added directory 'repostory/precise'
3=== added symlink 'repostory/precise/juju-development'
4=== target is u'../trusty/juju-development'
5=== added directory 'repostory/trusty'
6=== added directory 'repostory/trusty/juju-development'
7=== added file 'repostory/trusty/juju-development/README.md'
8--- repostory/trusty/juju-development/README.md 1970-01-01 00:00:00 +0000
9+++ repostory/trusty/juju-development/README.md 2014-04-28 21:57:02 +0000
10@@ -0,0 +1,14 @@
11+Welcome
12+-------
13+
14+Welcome to the fabulous world of Juju development.
15+
16+If you're like me, you're anxious to get going, so anxious in fact that you won't want to spend time reading needless Getting Started documentation.
17+
18+Instead, deploy this charm,
19+
20+ juju deploy --repository=$YOUR_JUJU_CHECKOUT/repository local:juju-development
21+
22+And in a few minutes you'll have a complete Juju environment ready to rock!
23+
24+ juju ssh juju-development/0
25
26=== added file 'repostory/trusty/juju-development/config.yaml'
27--- repostory/trusty/juju-development/config.yaml 1970-01-01 00:00:00 +0000
28+++ repostory/trusty/juju-development/config.yaml 2014-04-28 21:57:02 +0000
29@@ -0,0 +1,1 @@
30+options:
31
32=== added directory 'repostory/trusty/juju-development/hooks'
33=== added file 'repostory/trusty/juju-development/hooks/install'
34--- repostory/trusty/juju-development/hooks/install 1970-01-01 00:00:00 +0000
35+++ repostory/trusty/juju-development/hooks/install 2014-04-28 21:57:02 +0000
36@@ -0,0 +1,39 @@
37+#!/bin/bash
38+
39+set -ex
40+
41+# step 0. remove stupid default editor decision.
42+apt-get purge -y nano
43+
44+# step 1. install Go and basic deps.
45+apt-get install -y build-essential bzr mercurial git-core golang-go vim-nox
46+
47+# from now on we're the ubuntu user
48+export GOPATH=/home/ubuntu
49+cd $GOPATH
50+
51+# step 2. fetch juju-core and other transitive deps (but don't compile because
52+# we need to run godeps -u first).
53+sudo -u ubuntu -E -s go get -v -u -d launchpad.net/juju-core/...
54+
55+# step 3. install godeps, lbox and cobzr
56+sudo -u ubuntu -E -s go get -u -v launchpad.net/godeps
57+sudo -u ubuntu -E -s go get -u -v launchpad.net/lbox
58+sudo -u ubuntu -E -s go get -u -v launchpad.net/cobzr
59+
60+# step 4. install juju dependencies
61+cd $GOPATH/src/launchpad.net/juju-core; sudo -u ubuntu -E -s make install-dependencies
62+
63+# step 5. switch to the correct revisions with godeps
64+sudo -u ubuntu -E -s $GOPATH/bin/godeps -u dependencies.tsv
65+
66+# step 6. step environment variables and aliases
67+echo 'GOPATH=$HOME' >> /home/ubuntu/.bashrc
68+# install $GOPATH/bin _before_ $PATH to work around the manditory installation of
69+# juju-core (which comes via juju-mongodb)
70+echo 'PATH=$GOPATH/bin:$PATH' >> /home/ubuntu/.bashrc
71+echo 'export PATH GOPATH' >> /home/ubuntu/.bashrc
72+echo 'alias bzr="cobzr"' >> /home/ubuntu/.bashrc
73+echo 'alias gb="go install -v"' >> /home/ubuntu/.bashrc
74+echo 'alias gi="goimports -w ."' >> /home/ubuntu/.bashrc
75+echo 'alias jc="cd $GOPATH/src/launchpad.net/juju-core/"' >> /home/ubuntu/.bashrc
76
77=== added file 'repostory/trusty/juju-development/icon.svg'
78--- repostory/trusty/juju-development/icon.svg 1970-01-01 00:00:00 +0000
79+++ repostory/trusty/juju-development/icon.svg 2014-04-28 21:57:02 +0000
80@@ -0,0 +1,279 @@
81+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
82+<!-- Created with Inkscape (http://www.inkscape.org/) -->
83+
84+<svg
85+ xmlns:dc="http://purl.org/dc/elements/1.1/"
86+ xmlns:cc="http://creativecommons.org/ns#"
87+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
88+ xmlns:svg="http://www.w3.org/2000/svg"
89+ xmlns="http://www.w3.org/2000/svg"
90+ xmlns:xlink="http://www.w3.org/1999/xlink"
91+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
92+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
93+ width="96"
94+ height="96"
95+ id="svg6517"
96+ version="1.1"
97+ inkscape:version="0.48+devel r12274"
98+ sodipodi:docname="Juju_charm_icon_template.svg">
99+ <defs
100+ id="defs6519">
101+ <linearGradient
102+ inkscape:collect="always"
103+ xlink:href="#Background"
104+ id="linearGradient6461"
105+ gradientUnits="userSpaceOnUse"
106+ x1="0"
107+ y1="970.29498"
108+ x2="144"
109+ y2="970.29498"
110+ gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />
111+ <linearGradient
112+ id="Background">
113+ <stop
114+ id="stop4178"
115+ offset="0"
116+ style="stop-color:#b8b8b8;stop-opacity:1" />
117+ <stop
118+ id="stop4180"
119+ offset="1"
120+ style="stop-color:#c9c9c9;stop-opacity:1" />
121+ </linearGradient>
122+ <filter
123+ style="color-interpolation-filters:sRGB;"
124+ inkscape:label="Inner Shadow"
125+ id="filter1121">
126+ <feFlood
127+ flood-opacity="0.59999999999999998"
128+ flood-color="rgb(0,0,0)"
129+ result="flood"
130+ id="feFlood1123" />
131+ <feComposite
132+ in="flood"
133+ in2="SourceGraphic"
134+ operator="out"
135+ result="composite1"
136+ id="feComposite1125" />
137+ <feGaussianBlur
138+ in="composite1"
139+ stdDeviation="1"
140+ result="blur"
141+ id="feGaussianBlur1127" />
142+ <feOffset
143+ dx="0"
144+ dy="2"
145+ result="offset"
146+ id="feOffset1129" />
147+ <feComposite
148+ in="offset"
149+ in2="SourceGraphic"
150+ operator="atop"
151+ result="composite2"
152+ id="feComposite1131" />
153+ </filter>
154+ <filter
155+ style="color-interpolation-filters:sRGB;"
156+ inkscape:label="Drop Shadow"
157+ id="filter950">
158+ <feFlood
159+ flood-opacity="0.25"
160+ flood-color="rgb(0,0,0)"
161+ result="flood"
162+ id="feFlood952" />
163+ <feComposite
164+ in="flood"
165+ in2="SourceGraphic"
166+ operator="in"
167+ result="composite1"
168+ id="feComposite954" />
169+ <feGaussianBlur
170+ in="composite1"
171+ stdDeviation="1"
172+ result="blur"
173+ id="feGaussianBlur956" />
174+ <feOffset
175+ dx="0"
176+ dy="1"
177+ result="offset"
178+ id="feOffset958" />
179+ <feComposite
180+ in="SourceGraphic"
181+ in2="offset"
182+ operator="over"
183+ result="composite2"
184+ id="feComposite960" />
185+ </filter>
186+ <clipPath
187+ clipPathUnits="userSpaceOnUse"
188+ id="clipPath873">
189+ <g
190+ transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
191+ id="g875"
192+ inkscape:label="Layer 1"
193+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
194+ <path
195+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
196+ d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
197+ id="path877"
198+ inkscape:connector-curvature="0"
199+ sodipodi:nodetypes="sssssssss" />
200+ </g>
201+ </clipPath>
202+ <filter
203+ inkscape:collect="always"
204+ id="filter891"
205+ inkscape:label="Badge Shadow">
206+ <feGaussianBlur
207+ inkscape:collect="always"
208+ stdDeviation="0.71999962"
209+ id="feGaussianBlur893" />
210+ </filter>
211+ </defs>
212+ <sodipodi:namedview
213+ id="base"
214+ pagecolor="#ffffff"
215+ bordercolor="#666666"
216+ borderopacity="1.0"
217+ inkscape:pageopacity="0.0"
218+ inkscape:pageshadow="2"
219+ inkscape:zoom="4.0745362"
220+ inkscape:cx="18.514671"
221+ inkscape:cy="49.018169"
222+ inkscape:document-units="px"
223+ inkscape:current-layer="layer1"
224+ showgrid="true"
225+ fit-margin-top="0"
226+ fit-margin-left="0"
227+ fit-margin-right="0"
228+ fit-margin-bottom="0"
229+ inkscape:window-width="1920"
230+ inkscape:window-height="1029"
231+ inkscape:window-x="0"
232+ inkscape:window-y="24"
233+ inkscape:window-maximized="1"
234+ showborder="true"
235+ showguides="true"
236+ inkscape:guide-bbox="true"
237+ inkscape:showpageshadow="false">
238+ <inkscape:grid
239+ type="xygrid"
240+ id="grid821" />
241+ <sodipodi:guide
242+ orientation="1,0"
243+ position="16,48"
244+ id="guide823" />
245+ <sodipodi:guide
246+ orientation="0,1"
247+ position="64,80"
248+ id="guide825" />
249+ <sodipodi:guide
250+ orientation="1,0"
251+ position="80,40"
252+ id="guide827" />
253+ <sodipodi:guide
254+ orientation="0,1"
255+ position="64,16"
256+ id="guide829" />
257+ </sodipodi:namedview>
258+ <metadata
259+ id="metadata6522">
260+ <rdf:RDF>
261+ <cc:Work
262+ rdf:about="">
263+ <dc:format>image/svg+xml</dc:format>
264+ <dc:type
265+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
266+ <dc:title></dc:title>
267+ </cc:Work>
268+ </rdf:RDF>
269+ </metadata>
270+ <g
271+ inkscape:label="BACKGROUND"
272+ inkscape:groupmode="layer"
273+ id="layer1"
274+ transform="translate(268,-635.29076)"
275+ style="display:inline">
276+ <path
277+ style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"
278+ d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
279+ id="path6455"
280+ inkscape:connector-curvature="0"
281+ sodipodi:nodetypes="sssssssss" />
282+ </g>
283+ <g
284+ inkscape:groupmode="layer"
285+ id="layer3"
286+ inkscape:label="PLACE YOUR PICTOGRAM HERE"
287+ style="display:inline" />
288+ <g
289+ inkscape:groupmode="layer"
290+ id="layer2"
291+ inkscape:label="BADGE"
292+ style="display:none"
293+ sodipodi:insensitive="true">
294+ <g
295+ style="display:inline"
296+ transform="translate(-340.00001,-581)"
297+ id="g4394"
298+ clip-path="none">
299+ <g
300+ id="g855">
301+ <g
302+ inkscape:groupmode="maskhelper"
303+ id="g870"
304+ clip-path="url(#clipPath873)"
305+ style="opacity:0.6;filter:url(#filter891)">
306+ <path
307+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
308+ d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"
309+ sodipodi:ry="12"
310+ sodipodi:rx="12"
311+ sodipodi:cy="552.36218"
312+ sodipodi:cx="252"
313+ id="path844"
314+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
315+ sodipodi:type="arc" />
316+ </g>
317+ <g
318+ id="g862">
319+ <path
320+ sodipodi:type="arc"
321+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
322+ id="path4398"
323+ sodipodi:cx="252"
324+ sodipodi:cy="552.36218"
325+ sodipodi:rx="12"
326+ sodipodi:ry="12"
327+ d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"
328+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
329+ <path
330+ transform="matrix(1.25,0,0,1.25,33,-100.45273)"
331+ d="m 264,552.36218 a 12,12 0 1 1 -24,0 A 12,12 0 1 1 264,552.36218 Z"
332+ sodipodi:ry="12"
333+ sodipodi:rx="12"
334+ sodipodi:cy="552.36218"
335+ sodipodi:cx="252"
336+ id="path4400"
337+ style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
338+ sodipodi:type="arc" />
339+ <path
340+ sodipodi:type="star"
341+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
342+ id="path4459"
343+ sodipodi:sides="5"
344+ sodipodi:cx="666.19574"
345+ sodipodi:cy="589.50385"
346+ sodipodi:r1="7.2431178"
347+ sodipodi:r2="4.3458705"
348+ sodipodi:arg1="1.0471976"
349+ sodipodi:arg2="1.6755161"
350+ inkscape:flatsided="false"
351+ inkscape:rounded="0.1"
352+ inkscape:randomized="0"
353+ d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 C 669.9821,591.68426 670.20862,595.55064 669.8173,595.77657 Z"
354+ transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
355+ </g>
356+ </g>
357+ </g>
358+ </g>
359+</svg>
360
361=== added file 'repostory/trusty/juju-development/metadata.yaml'
362--- repostory/trusty/juju-development/metadata.yaml 1970-01-01 00:00:00 +0000
363+++ repostory/trusty/juju-development/metadata.yaml 2014-04-28 21:57:02 +0000
364@@ -0,0 +1,8 @@
365+name: juju-development
366+summary: A Juju development environment
367+maintainer: David Cheney <david.cheney@canonical.com>
368+description: |
369+ juju-development deploys a complete development environment for Juju.
370+categories:
371+ - misc
372+subordinate: false
373
374=== added file 'repostory/trusty/juju-development/revision'
375--- repostory/trusty/juju-development/revision 1970-01-01 00:00:00 +0000
376+++ repostory/trusty/juju-development/revision 2014-04-28 21:57:02 +0000
377@@ -0,0 +1,1 @@
378+3

Subscribers

People subscribed via source and target branches

to status/vote changes: