Merge lp:~bac/juju-quickstart/hacking-brew into lp:juju-quickstart

Proposed by Brad Crittenden
Status: Merged
Merged at revision: 86
Proposed branch: lp:~bac/juju-quickstart/hacking-brew
Merge into: lp:juju-quickstart
Diff against target: 142 lines (+81/-18)
1 file modified
HACKING.rst (+81/-18)
To merge this branch: bzr merge lp:~bac/juju-quickstart/hacking-brew
Reviewer Review Type Date Requested Status
Juju GUI Hackers Pending
Review via email: mp+223601@code.launchpad.net

Description of the change

Add homebrew release instructions.

Also fixed bad coding in HACKING.rst. Used the 'restview'
package from PyPI to verify it. Replaced long embedded
URLs with references. Looks very nice if rendered but
not as good if read as plaintext.

https://codereview.appspot.com/106120043/

To post a comment you must log in.
Revision history for this message
Brad Crittenden (bac) wrote :

Reviewers: mp+223601_code.launchpad.net,

Message:
Please take a look.

Description:
Add homebrew release instructions.

Also fixed bad coding in HACKING.rst. Used the 'restview'
package from PyPI to verify it. Replaced long embedded
URLs with references. Looks very nice if rendered but
not as good if read as plaintext.

https://code.launchpad.net/~bac/juju-quickstart/hacking-brew/+merge/223601

(do not edit description out of merge proposal)

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

Affected files (+83, -18 lines):
   M HACKING.rst
   A [revision details]

Revision history for this message
Francesco Banconi (frankban) wrote :

LGTM with minor changes. Thank you!

https://codereview.appspot.com/106120043/diff/1/HACKING.rst
File HACKING.rst (right):

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode215
HACKING.rst:215: #. Compute the SHA1 checksum for the tgz and insert it
as the JujuQuickstart
Juju Quickstart?

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode221
HACKING.rst:221: download failures are acceptable.)::
are acceptable)

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode252
HACKING.rst:252: rebase the branch and squash commits before pushing.
Could you give a hint about how much time passes between Jenkins tests
pass and the updated formula is merged? Is it merged right after the
tests run?

https://codereview.appspot.com/106120043/

Revision history for this message
Brad Crittenden (bac) wrote :

*** Submitted:

Add homebrew release instructions.

Also fixed bad coding in HACKING.rst. Used the 'restview'
package from PyPI to verify it. Replaced long embedded
URLs with references. Looks very nice if rendered but
not as good if read as plaintext.

R=frankban
CC=
https://codereview.appspot.com/106120043

https://codereview.appspot.com/106120043/diff/1/HACKING.rst
File HACKING.rst (right):

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode215
HACKING.rst:215: #. Compute the SHA1 checksum for the tgz and insert it
as the JujuQuickstart
On 2014/06/18 16:17:24, frankban wrote:
> Juju Quickstart?

Actually brew constructs a Ruby class based on the package name, so in
the file it really is JujuQuickstart.

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode221
HACKING.rst:221: download failures are acceptable.)::
On 2014/06/18 16:17:25, frankban wrote:
> are acceptable)

Done.

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode221
HACKING.rst:221: download failures are acceptable.)::
On 2014/06/18 16:17:25, frankban wrote:
> are acceptable)

Done.

https://codereview.appspot.com/106120043/diff/1/HACKING.rst#newcode252
HACKING.rst:252: rebase the branch and squash commits before pushing.
I will. This update was flawless and when Jenkins passed the bot merged
it in. Total time was about two hours.

https://codereview.appspot.com/106120043/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'HACKING.rst'
--- HACKING.rst 2014-06-11 14:51:38 +0000
+++ HACKING.rst 2014-06-18 16:03:57 +0000
@@ -162,17 +162,18 @@
162The procedure is analogous for pre-trusty series releases, just using the162The procedure is analogous for pre-trusty series releases, just using the
163other packaging branch.163other packaging branch.
164164
165The recipe for creating packages for trusty and beyond is in:165The recipe for creating packages for trusty and beyond is at
166<https://code.launchpad.net/~juju-gui-charmers/+recipe/juju-quickstart-trunk-daily>.166`juju-quickstart-trunk-daily
167167<https://code.launchpad.net/~juju-gui-charmers/+recipe/juju-quickstart-trunk-daily>`_.
168The pre-trusty recipe is at:168
169<https://code.launchpad.net/~juju-gui-charmers/+recipe/juju-quickstart-pre-trusty-daily>.169The pre-trusty recipe is `juju-quickstart-pre-trusty-daily
170170<https://code.launchpad.net/~juju-gui-charmers/+recipe/juju-quickstart-pre-trusty-daily>`_.
171We currently publish beta releases on the Juju Quickstart Beta PPA: see171
172<https://launchpad.net/~juju-gui/+archive/quickstart-beta/+packages>.172We currently publish beta releases on the `Juju Quickstart Beta PPA
173<https://launchpad.net/~juju-gui/+archive/quickstart-beta/+packages>`_.
173When a beta release is ready to be published, we move over the packages from174When a beta release is ready to be published, we move over the packages from
174the Juju Quickstart Beta PPA to the juju stable packages PPA in175the Juju Quickstart Beta PPA to the `Juju stable PPA
175<https://launchpad.net/~juju/+archive/stable>.176<https://launchpad.net/~juju/+archive/stable>`_.
176177
177Packages depend on `python-jujuclient` and `python-websocket-client` to be178Packages depend on `python-jujuclient` and `python-websocket-client` to be
178available. They are available in trusty and later, and they are also stored in179available. They are available in trusty and later, and they are also stored in
@@ -182,12 +183,74 @@
182Creating PyPI releases183Creating PyPI releases
183~~~~~~~~~~~~~~~~~~~~~~184~~~~~~~~~~~~~~~~~~~~~~
184185
185Juju Quickstart is present on PyPI: see186Juju Quickstart is present on `PyPI
186<https://pypi.python.org/pypi/juju-quickstart>.187<https://pypi.python.org/pypi/juju-quickstart>`_.
187It is possible to register and upload a new release on PyPI by just running188It is possible to register and upload a new release on PyPI by just running
188``make release`` and providing your PyPI credentials. Note there are no189``make release`` and providing your PyPI credentials. Note there are no
189series-specific changes required for publishing to PyPI.190series-specific changes required for publishing to PyPI.
190191
192Creating a Homebrew release
193~~~~~~~~~~~~~~~~~~~~~~~~~~~
194
195The brew formula fetches its source from PyPI, so it must be done after the PyPI
196release.
197
1981. Start with a fresh brew::
199
200 $ brew update
201
202#. Go to PyPI (https://pypi.python.org/pypi/juju-quickstart) and download the
203 new tgz file.
204
205#. Verify the md5 checksum matches that on the PyPI site via, e.g. ::
206
207 $ md5 ~/Downloads/juju-quickstart-1.4.0.tar.gz
208
209#. Use brew to edit the juju-quickstart formula::
210
211 $ brew edit juju-quickstart
212
213#. Update the URL to point to the new release tar.gz file.
214
215#. Compute the SHA1 checksum for the tgz and insert it as the JujuQuickstart
216 sha1 value::
217
218 $ shasum ~/Downloads/juju-quickstart-1.4.0.tar.gz
219
220#. Test the new formula by upgrading juju-quickstart (errors about bottle
221 download failures are acceptable.)::
222
223 $ brew upgrade juju-quickstart
224
225#. Run the formula test::
226
227 $ brew test juju-quickstart
228
229#. Perform full QA as above.
230
231After successful QA, follow the procedure outlined in the Homebrew
232`Formula-Cookbook
233<https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook#commit>`_. The
234project is adamant about having one file and one commit per pull request.
235Rebase and squash commits if required.
236
2371. Move to the brew git directory::
238
239 $ cd `brew repository`
240
241#. Create a new branch, add the changed file, and commit::
242
243 $ git checkout -b juju-quickstart-1.4.0
244 $ git add Library/Formula/juju-quickstart.rb
245 $ git commit -a -m "juju-quickstart 1.4.0"
246 $ git push git@github.com:juju/homebrew.git juju-quickstart-1.4.0
247
248#. Go to https://github.com/juju/homebrew to create a pull request.
249#. Copy the debian/changelog from the lp:juju-quickstart/packaging as the pull
250 request comment. Keep the name simple, e.g. 'juju-quickstart 1.4.0'.
251#. Watch the pull request and ensure it passes Jenkins. If changes must be made,
252 rebase the branch and squash commits before pushing.
253
191Updating application and test dependencies254Updating application and test dependencies
192~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~255~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
193256
@@ -196,13 +259,13 @@
196includes the latter, so any updates to the application requirements will also259includes the latter, so any updates to the application requirements will also
197update the test dependencies and therefore the testing virtual environment.260update the test dependencies and therefore the testing virtual environment.
198Note that, since the source requirements are dynamically generated parsing261Note that, since the source requirements are dynamically generated parsing
199``requirements.pip``, that file must only include PACKAGE==VERSION formatted262``requirements.pip``, that file must only include ``PACKAGE==VERSION`` formatted
200dependencies, and not other pip specific requirement specifications.263dependencies, and not other pip specific requirement specifications.
201264
202Also ensure, before updating the application dependencies, that those packages265Also ensure, before updating the application dependencies, that those packages
203are available in the main Ubuntu repositories for the series we support (from266are available in the main Ubuntu repositories for the series we support (from
204precise to saucy), or in the Juju Quickstart Beta PPA: see267precise to saucy), or in the `Juju Quickstart Beta PPA
205<https://launchpad.net/~juju-gui/+archive/quickstart-beta/+packages>.268<https://launchpad.net/~juju-gui/+archive/quickstart-beta/+packages>`_.
206269
207Please also keep up to date the possible values for the environments.yaml270Please also keep up to date the possible values for the environments.yaml
208default-series field (see ``quickstart.settings.JUJU_DEFAULT_SERIES``) and the271default-series field (see ``quickstart.settings.JUJU_DEFAULT_SERIES``) and the
@@ -224,12 +287,12 @@
224information about what is going on. The GUI builtin server exposes some bundle287information about what is going on. The GUI builtin server exposes some bundle
225information in two places:288information in two places:
226289
227- https://<juju-gui-url>/gui-server-info displays in JSON format the current290- ``https://<juju-gui-url>/gui-server-info`` displays in JSON format the current
228 status of all scheduled/started/completed bundle deployments;291 status of all scheduled/started/completed bundle deployments;
229- /var/log/upstart/guiserver.log is the builtin server log file, which includes292- ``/var/log/upstart/guiserver.log`` is the builtin server log file, which includes
230 logs output from the juju-deployer library.293 logs output from the juju-deployer library.
231294
232Moreover, setting `builtin-server-logging=debug` gives more debugging295Moreover, setting ``builtin-server-logging=debug`` gives more debugging
233information, e.g. it prints to the log the contents of the WebSocket messages296information, e.g. it prints to the log the contents of the WebSocket messages
234sent by the client (usually the Juju GUI) and by the Juju API server.297sent by the client (usually the Juju GUI) and by the Juju API server.
235As mentioned, juju-deployer works on its own sandbox and uses its own API298As mentioned, juju-deployer works on its own sandbox and uses its own API

Subscribers

People subscribed via source and target branches