Re: [Launchpad-dev] timeline questions

2010-09-29 Thread Stuart Bishop
 And if get_current_browser_request always works, can we put it in
 get_request_timeline instead of typing it explicitly every time?

 So there are two disconnected steps:
  - get a request from some context
  - get the timeline from that request (which will use IAnnotations
 once bug 623199 is fixed)

 I'm not too keen on conflating these steps; we could certainly add a
 new helper get_current_browser_request_timeline() though, that would
 be fine.

For scripts, consider adding this as an attribute on LaunchpadScript
so everyone gets to play.




-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] timeline questions

2010-09-29 Thread Robert Collins
On Wed, Sep 29, 2010 at 8:19 PM, Stuart Bishop
stuart.bis...@canonical.com wrote:
 And if get_current_browser_request always works, can we put it in
 get_request_timeline instead of typing it explicitly every time?

 So there are two disconnected steps:
  - get a request from some context
  - get the timeline from that request (which will use IAnnotations
 once bug 623199 is fixed)

 I'm not too keen on conflating these steps; we could certainly add a
 new helper get_current_browser_request_timeline() though, that would
 be fine.

 For scripts, consider adding this as an attribute on LaunchpadScript
 so everyone gets to play.

hmm? scripts can use features already; fixing bug 623199 would make
that be better structured, but theres no functional issue today.

-Rob

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] timeline questions

2010-09-29 Thread Stuart Bishop
On Wed, Sep 29, 2010 at 3:06 PM, Robert Collins
robert.coll...@canonical.com wrote:
 On Wed, Sep 29, 2010 at 8:19 PM, Stuart Bishop
 stuart.bis...@canonical.com wrote:
 And if get_current_browser_request always works, can we put it in
 get_request_timeline instead of typing it explicitly every time?

 So there are two disconnected steps:
  - get a request from some context
  - get the timeline from that request (which will use IAnnotations
 once bug 623199 is fixed)

 I'm not too keen on conflating these steps; we could certainly add a
 new helper get_current_browser_request_timeline() though, that would
 be fine.

 For scripts, consider adding this as an attribute on LaunchpadScript
 so everyone gets to play.

 hmm? scripts can use features already; fixing bug 623199 would make
 that be better structured, but theres no functional issue today.


I mean making LaunchpadScript.__init__() initialize self.timeline (or
LaunchpadScript.timeline into a property) so it is trivial for scripts
to use and easy to find, which makes it much more likely people will
use it. Also only one piece of code to change if the setup dance
changes.


-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] timeline questions

2010-09-29 Thread Robert Collins
On Wed, Sep 29, 2010 at 10:05 PM, Stuart Bishop
stuart.bis...@canonical.com wrote:
 I mean making LaunchpadScript.__init__() initialize self.timeline (or
 LaunchpadScript.timeline into a property) so it is trivial for scripts
 to use and easy to find, which makes it much more likely people will
 use it. Also only one piece of code to change if the setup dance
 changes.

Scripts already do set_request_started, which is all thats needed; I'm
not sure why this additional thing would be needed.

To work with security properly scripts need to be setting up
participations, which should provide an IAnnotation participation long
term, and thats where it would live at that point (and OOPSes would
use that too, etc)

-Rob

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] performance tuesday... tests

2010-09-29 Thread Jeroen Vermeulen

On 2010-09-29 06:02, Robert Collins wrote:


Everyone else may know this already, but layers are a pretty poor
interface, at least the way they are used in LP's test suite.


Yay for revisiting our layers setup!

If I may add a pet peeve of my own: the email stub. 
LaunchpadScriptLayer (and no lighter layer, for no other reason that I 
can see than the layers system) does this:


provideUtility(TestMailBox(), IMailBox)

...after which email gets captured in a global variable.  I'd love to 
see that become a fixture or resource that I can use in more 
fine-grained tests without setting up a full LaunchpadLayer.



Jeroen

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] timeline questions

2010-09-29 Thread Stuart Bishop
On Wed, Sep 29, 2010 at 4:31 PM, Robert Collins
robert.coll...@canonical.com wrote:

 Scripts already do set_request_started, which is all thats needed; I'm
 not sure why this additional thing would be needed.

Its not needed. Its convenient. self.timeline is much easier to
remember than get_request_timeline(get_current_browser_request()), as
well as avoiding the huh? factor on what
get_current_browser_requests() means in the context of a command line
tool.


-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] performance tuesday... tests

2010-09-29 Thread Jonathan Lange
On Wed, Sep 29, 2010 at 12:02 AM, Robert Collins
robe...@robertcollins.net wrote:
 So I meant to look at +filebug timeouts yesterday but I got distracted
 into test infrastructure (because things were slow).

I'm very glad you're looking into this. Let me know if there's
something I can do to help.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How do we fix the Launchpad's login experience?

2010-09-29 Thread Jonathan Lange
On Fri, Sep 24, 2010 at 5:45 AM, William Grant m...@williamgrant.id.au wrote:
 On Fri, 2010-09-24 at 00:38 -0400, Elliot Murphy wrote:
 I'm really glad to see this being discussed in detail.

 On Thu, Sep 23, 2010 at 7:18 PM, William Grant m...@williamgrant.id.au 
 wrote:
  I think that login.launchpad.net needs to disappear. It is simply too
  confusing -- everyone has two independent sets of email addresses
  associated with Launchpad.net.
 
  It can't safely be destroyed now (forcing non-Ubuntu LP users to use an
  Ubuntu-branded SSO site would be foolish), but it seems reasonable to do
  it once LP becomes a general OpenID provider.

 This might be a dumb question, but why is it a problem if non-Ubuntu
 LP users see an Ubuntu-branded SSO site?

 Many projects are concerned that Launchpad is too tied to Ubuntu.
 Forcing them through an Ubuntu authentication gateway will probably not
 help with that.


I don't disagree with you, but I haven't heard anything from these
projects. I'd like to know more about their concerns, do you have
anything that could help me follow this up?

...
  In summary: fix bug #637968, make LP a general RP, destroy
  login.launchpad.net.

 This sounds like a good summary, although I would like to understand
 why is making LP a general RP a necessary step?

 As above: we don't want to scare more people off LP. Forcing everyone
 through somewhere with heavy Ubuntu branding is going to scare more
 people off.


Well, even separately from the branding issue, it's removing a step
for people who already have openids.

I'm not convinced that Ubuntu branding would scare people off. First,
I don't think Ubuntu branding is that scary. Second, I think that a
little bit of copy could significantly reduce the you are now
Ubuntified aspect.

I more readily believe that people will be put off simply by yet
another password confirmation dialog.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread Julian Edwards
On Tuesday 28 September 2010 23:39:41 Robert Collins wrote:
 Yes, you did, for clarity here - I'm not proposing to start
 *postgresql* dynamically [yet, the contract does permit it though]
 simply for performance reasons.

I'd really like to see some of the other external processes started on demand 
though.  For example, I object vehemently to these persistent services on my 
*desktop* machine:

 * Apache (and the rewrite script we use for Code)
 * Rabbit MQ (why is this installed when we're not even using it yet?)
 * Memcached

Rabbit is particularly annoying because it blocks shutdown on my machine when 
it hangs :/

Requiring all this stuff to be running persistently is a very large barrier to 
drive-by contributions.

Cheers
J

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] generic job queue cronjob?

2010-09-29 Thread Jonathan Lange
On Mon, Sep 27, 2010 at 2:46 PM, Aaron Bentley aa...@canonical.com wrote:
...
 We are already pretty decoupled there.  When the scanner notices a
 branch tip change, it fires a TipChanged event.  One of the subscribers
 generates the appropriate UpdatePreviewDiffJob.


And they told me I was mad.

Well, I'll show them. I'll show them all!

Muahahahahah,
jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] redundant Poppy (soyuz upload server) instances

2010-09-29 Thread Jonathan Lange
On Tue, Sep 28, 2010 at 9:29 PM, Robert Collins
robe...@robertcollins.net wrote:
 One of the SPOF's we have at the moment is poppy: we have a single
 instance of both the FTP and SFTP servers.

 Are any code changes needed to support having two instances of both
 (behind a load balancer, so clients won't know about them).

 Or is it just creating one/two new configs in production and deploying
 another copy running that config?

 I am assuming, given that we run a separate SFTP and FTP process, that
 there aren't any concurrency issues around the task being performed.

I don't know about Poppy per se, but there's nothing in its SSH server
code preventing multiple instances that I know of.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] New utility script: update-copyright

2010-09-29 Thread Jonathan Lange
On Tue, Sep 28, 2010 at 2:33 PM, Henning Eggers
henning.egg...@canonical.com wrote:
 Hi LP coders!

 Devel revision 11645 has a new script utilities/update-copyright. It will
 update the years in the Copyright 2009-2010 Canonical Ltd. statement that is
 found on top of each source file (*) in the LP tree. This is such a minor
 thing that it is often forgotten and many files still refer to just 2009
 although they have already been changed this year. (The notice was only added
 last year before LP was open-sourced.)


Sounds good.

How can I set this up as a pre-commit hook so I don't ever have to
think about this again?

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] release branches

2010-09-29 Thread Jonathan Lange
On Tue, Sep 28, 2010 at 4:41 AM, Robert Collins
robert.coll...@canonical.com wrote:
 On Tue, Sep 28, 2010 at 4:05 PM, William Grant m...@williamgrant.id.au 
 wrote:
 This would chop 4 hours off the time that things take to deploy,
 remove one buildbot queue and generally make the whole code-live
 story a bit simpler, at the cost of making the security-fix story more
 complex. Personally, I think that that is a net win.

 It's not just security fixes that need this sort of treatment. See, for
 example, jtv's recent emergency Codehosting fix: it needed to skip ahead
 of un-QA'd revisions. Cowboying may be appropriate here too. I don't
 really know.

 So really, we're saying that there are two sorts of changes:
  - must-deploy-asap
  - deploy-with-due-care


This sounds straightforward.

Would it be appropriate to start tracking how often we engage the
must-deploy-asap branch of the process?

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] redundant Poppy (soyuz upload server) instances

2010-09-29 Thread Julian Edwards
On Wednesday 29 September 2010 12:24:12 Jonathan Lange wrote:
 On Tue, Sep 28, 2010 at 9:29 PM, Robert Collins
 
 robe...@robertcollins.net wrote:
  One of the SPOF's we have at the moment is poppy: we have a single
  instance of both the FTP and SFTP servers.
  
  Are any code changes needed to support having two instances of both
  (behind a load balancer, so clients won't know about them).
  
  Or is it just creating one/two new configs in production and deploying
  another copy running that config?
  
  I am assuming, given that we run a separate SFTP and FTP process, that
  there aren't any concurrency issues around the task being performed.
 
 I don't know about Poppy per se, but there's nothing in its SSH server
 code preventing multiple instances that I know of.

There is an issue in both to do with file name creation races isn't there?


___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread Stuart Bishop
On Wed, Sep 29, 2010 at 5:54 PM, Julian Edwards
julian.edwa...@canonical.com wrote:

  * Rabbit MQ (why is this installed when we're not even using it yet?)
  * Memcached

You can turn off memcached - LP starts this as necessary. And RabbitMQ
since no code is using it yet (waiting on staging install).

I think the 'preferred' method is still the incredibly ugly:

update-rc.d -f memcached remove
update-rc.d memcached stop 20 2 3 4 5 .

(or is there some way of making service(8) do the right thing? Nothing
in the manpage)


 Rabbit is particularly annoying because it blocks shutdown on my machine when
 it hangs :/

My laptop too. I keep forgetting to disable it :)



-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] so many unmerged branches

2010-09-29 Thread Jonathan Lange
On Wed, Sep 29, 2010 at 2:44 AM, Jon Sackett
jonathan.sack...@canonical.com wrote:

 - 4 hour test suites [highly delayed feedback]
 - testfix *existing* [after your 4 hour check, it can still bounce]
 - a high rate of spurious errors ( 1% is high, and I'm pretty sure
 thats the case)
 - folk working on many things at once (which is itself a result of
 the 4 hour queue)

 From the perspective of a newer developer, you have succinctly grabbed the 
 basic
 problems I have with getting branches from Approved to  Merged. If it weren't 
 for the fact
 that the number of balls I'm juggling is pretty low right now, I'm sure 
 branches would start
 being forgotten.

I'm practically an old hand and they're the same problems for me.

There are a few tricks you can use to not forget branches:
  * Consult https://code.edge.launchpad.net/~jcsackett/launchpad
  * Consult https://code.edge.launchpad.net/~jcsackett/+activereviews
  * Delete local copies (or checkouts) of branches after they've been
merged into stable/db-stable
  * Keep the number of branches low

I especially rely on the third one, since it's really easy for me to
do `ls ~/src/launchpad` to see what work I've got outstanding.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] RFI: translations of website applications

2010-09-29 Thread Deryck Hodge
On Tue, Sep 28, 2010 at 10:32 PM, Robert Collins
robe...@robertcollins.net wrote:
 Personally I'd welcome translation of Launchpad's UI itself and I
 think answers is a great place to start. I think that we could, for
 instance, ask for 'please write the bug report in english' on bug
 pages and so forth, to mitigate the 'we may get lots of non english
 reports'. Translating user content, like project descriptions would be
 awesome too.


Hi, Rob.

I think we need to think through the potential bug problem a bit more.
 People don't read warnings on websites. :-)

I have heard the concern expressed 3 or 4 times in the last year that
the problem of a large numbers of bugs would get worse if a non-small
amount of those bugs were suddenly entered in languages other than
English.  I'm not against translating Launchpad, but I think we have
to have a better answer than add a warning to the page.  I'm not
sure what that answer is, though.

I don't see this preventing starting work on this with the answers
app, but I do think we need to be thinking more about this before
moving on to the bugs app.

Cheers,
deryck


-- 
Deryck Hodge
https://launchpad.net/~deryck
http://www.devurandom.org/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] RFI: translations of website applications

2010-09-29 Thread Danilo Šegan
У сре, 29. 09 2010. у 06:53 -0500, Deryck Hodge пише:

 I don't see this preventing starting work on this with the answers
 app, but I do think we need to be thinking more about this before
 moving on to the bugs app.

I agree that we do need a better answer than let's put up a warning.
I think the one I mentioned (i.e. engaging community to translate bug
reports back to English) would be a nice way to give even more people an
opportunity to contribute and get involved (i.e. the quality of bug
report translation doesn't have to be as high as regular UI
translation).

FWIW, I'd say the natural next target after Answers is Translations,
then Registry, and only then other apps like Code, Soyuz and Bugs.  And
the point we start translating Registry, we'd have to come up with a
good solution to this problem, so I wouldn't stress too much about
getting bug comments in a different language (we already do to a small
extent).

Cheers,
Danilo



___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] so many unmerged branches

2010-09-29 Thread Deryck Hodge
On Wed, Sep 29, 2010 at 6:50 AM, Jonathan Lange j...@canonical.com wrote:
 I'm practically an old hand and they're the same problems for me.

 There are a few tricks you can use to not forget branches:
  * Consult https://code.edge.launchpad.net/~jcsackett/launchpad
  * Consult https://code.edge.launchpad.net/~jcsackett/+activereviews
  * Delete local copies (or checkouts) of branches after they've been
 merged into stable/db-stable
  * Keep the number of branches low

 I especially rely on the third one, since it's really easy for me to
 do `ls ~/src/launchpad` to see what work I've got outstanding.

The kanban board should help with the last item.  We're making sure
cards correspond to branches rather than bugs on the bugs team board.
Part of this is to better reflect the work we're doing and see if that
helps cycle time and part of it is to make sure we don't have work
lingering forever.

Cheers,
deryck


-- 
Deryck Hodge
https://launchpad.net/~deryck
http://www.devurandom.org/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] RFI: translations of website applications

2010-09-29 Thread Deryck Hodge
On Wed, Sep 29, 2010 at 7:04 AM, Danilo Šegan dan...@canonical.com wrote:
 У сре, 29. 09 2010. у 06:53 -0500, Deryck Hodge пише:

 I don't see this preventing starting work on this with the answers
 app, but I do think we need to be thinking more about this before
 moving on to the bugs app.

 I agree that we do need a better answer than let's put up a warning.
 I think the one I mentioned (i.e. engaging community to translate bug
 reports back to English) would be a nice way to give even more people an
 opportunity to contribute and get involved (i.e. the quality of bug
 report translation doesn't have to be as high as regular UI
 translation).

 FWIW, I'd say the natural next target after Answers is Translations,
 then Registry, and only then other apps like Code, Soyuz and Bugs.  And
 the point we start translating Registry, we'd have to come up with a
 good solution to this problem, so I wouldn't stress too much about
 getting bug comments in a different language (we already do to a small
 extent).


Yes, I think translating the bug reports back to English could work.
I think the general plan you outline looks good to me, too.

Cheers,
deryck

-- 
Deryck Hodge
https://launchpad.net/~deryck
http://www.devurandom.org/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] so many unmerged branches

2010-09-29 Thread Deryck Hodge
On Wed, Sep 29, 2010 at 7:05 AM, Deryck Hodge
deryck.ho...@canonical.com wrote:
 On Wed, Sep 29, 2010 at 6:50 AM, Jonathan Lange j...@canonical.com wrote:
 I'm practically an old hand and they're the same problems for me.

 There are a few tricks you can use to not forget branches:
  * Consult https://code.edge.launchpad.net/~jcsackett/launchpad
  * Consult https://code.edge.launchpad.net/~jcsackett/+activereviews
  * Delete local copies (or checkouts) of branches after they've been
 merged into stable/db-stable
  * Keep the number of branches low

 I especially rely on the third one, since it's really easy for me to
 do `ls ~/src/launchpad` to see what work I've got outstanding.

 The kanban board should help with the last item.  We're making sure
 cards correspond to branches rather than bugs on the bugs team board.
 Part of this is to better reflect the work we're doing and see if that
 helps cycle time and part of it is to make sure we don't have work
 lingering forever.


As I clicked send, I realized this doesn't help non-Canonical
Launchpad devs.  But those of us using the Kanban board can add a card
for community dev branches when we land those on another dev's behalf.

Cheers,
deryck

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] RFI: translations of website applications

2010-09-29 Thread Curtis Hovey
On Wed, 2010-09-29 at 06:53 -0500, Deryck Hodge wrote:
 I have heard the concern expressed 3 or 4 times in the last year that
 the problem of a large numbers of bugs would get worse if a non-small
 amount of those bugs were suddenly entered in languages other than
 English.  I'm not against translating Launchpad, but I think we have
 to have a better answer than add a warning to the page.  I'm not
 sure what that answer is, though.

The lose of registration/login/reset makes it harder to complete the
user experience we want for Answers. We want to allow a non-technical
user to come to accomplish a few tasks in their native language:

  * Search for an answer
  * Ask a question
  * Answer a question

These last two points require a logged in user. It when Lp managed
identity to allow users to register/login/reset in their own language.

The profile page and links to answers need to be translated too.

There is no solution/infrastructure for translating email templates.

-- 
__Curtis C. Hovey_
http://launchpad.net/


signature.asc
Description: This is a digitally signed message part
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 09/29/2010 06:54 AM, Julian Edwards wrote:
 On Tuesday 28 September 2010 23:39:41 Robert Collins wrote:
 Yes, you did, for clarity here - I'm not proposing to start
 *postgresql* dynamically [yet, the contract does permit it though]
 simply for performance reasons.
 
 I'd really like to see some of the other external processes started on demand 
 though.  For example, I object vehemently to these persistent services on my 
 *desktop* machine:
 
  * Apache (and the rewrite script we use for Code)

Because Apache's config contains a symlink to a file in my home
directory, and my home directory is not available at apache startup time
(because it's encrypted), Apache actually doesn't start for me.

Aaron
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkyjPWsACgkQ0F+nu1YWqI2dzwCePGKjcnuKs7Qo2eSk27cOkhDx
z88An1ZQgbrVbEy56H+KLm7MKKnWNdbl
=YObx
-END PGP SIGNATURE-

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How do we fix the Launchpad's login experience?

2010-09-29 Thread Curtis Hovey
On Wed, 2010-09-29 at 11:39 +0100, Jonathan Lange wrote:
  Many projects are concerned that Launchpad is too tied to Ubuntu.
  Forcing them through an Ubuntu authentication gateway will probably
 not
  help with that.
 
 
 I don't disagree with you, but I haven't heard anything from these
 projects. I'd like to know more about their concerns, do you have
 anything that could help me follow this up?

I would ask this differently. Launchpad uses Ubuntu SSO to manage
identity now. Do projects believe this is deceitful (this sounds harsher
than I mean), that they are being tricked into using Ubuntu SSO.

I really think this is a non-issue given that (as I understand) the goal
is to allow Lp to with with any OpenID provider.

-- 
__Curtis C. Hovey_
http://launchpad.net/


signature.asc
Description: This is a digitally signed message part
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread James Westby
On Wed, 29 Sep 2010 18:50:35 +0700, Stuart Bishop stuart.bis...@canonical.com 
wrote:
 On Wed, Sep 29, 2010 at 5:54 PM, Julian Edwards
 julian.edwa...@canonical.com wrote:
 
   * Rabbit MQ (why is this installed when we're not even using it yet?)
   * Memcached
 
 You can turn off memcached - LP starts this as necessary. And RabbitMQ
 since no code is using it yet (waiting on staging install).
 
 I think the 'preferred' method is still the incredibly ugly:
 
 update-rc.d -f memcached remove
 update-rc.d memcached stop 20 2 3 4 5 .
 
 (or is there some way of making service(8) do the right thing? Nothing
 in the manpage)

This is not the preferred way.

Unfortunately there isn't yet a way to consistently do this across
services, but there is a convention to have an /etc/default/name file
where it can be configured.

Therefore to stop memcached running you can edit /etc/default/memcached
and change ENABLE_MEMCACHED to no.

RabbitMQ unfortunately doesn't have as nice a way of doing it, but you
could set DAEMON=true in /etc/default/rabbitmq if you wanted to do it.

Thanks,

James

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] release branches

2010-09-29 Thread Francis J. Lacoste
Hi Robert,

I think this is a nice simplification of our process. Let's proceed with this 
once qastaging is live and edge no more.

Cheers

-- 
Francis J. Lacoste
francis.laco...@canonical.com

On September 27, 2010, Robert Collins wrote:
 Hi, we have currently a production-stable branch which is private; it
 is maintained with CP's and merges during a cycle and discarded every
 time we bring db-stable into play.
 
 I'd like to suggest that we make a few changes here as RFWTAD progresses.
 
 Firstly, I think that security patches which have never been public
 are really very very rare: we can make the process for dealing with
 them a little more complex, and make the common case much simpler, for
 an overall net win.
 
 Once we have qastaging live, we're going to be switching deployments
 to edge that haven't been QA'd, off. QA will be moving to qastaging.
 
 At that point, if we want to, we can simply stop using
 production-devel and production-stable.
 
 Here's how it would work.
 
 We deploy stable rather than production-stable to servers. This would
 mean no more CP's - only cowboys and deploys.
 We shouldn't need CP's because we have the QA process Maris mailed out
 for moving things on stable into production.
 
 And at that point, if we have a security issue we have to deploy asap;
 we'd do the following:
  - cowboy it out there [and keep it as a cowboy on future deploys]
  - land a regular branch fixing it for good
  - remove the cowboy when the regular branch has been incorporated
 into the main deployed codebase.
 
 This would chop 4 hours off the time that things take to deploy,
 remove one buildbot queue and generally make the whole code-live
 story a bit simpler, at the cost of making the security-fix story more
 complex. Personally, I think that that is a net win.
 
 Seeking-your-thoughts,
 Rob
 
 ___
 Mailing list: https://launchpad.net/~launchpad-dev
 Post to : launchpad-dev@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~launchpad-dev
 More help   : https://help.launchpad.net/ListHelp


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] performance tuesday... tests

2010-09-29 Thread Francis J. Lacoste
Hi Robert,

On September 28, 2010, Robert Collins wrote:
 Several ways, firstly layers, by supporting setup-only fixtures add
 about 30-40 seconds per test run for every layer that we have that
 can't be torn down. Secondly, because layers are so fragile, our test
 fixtures do redundant work on setup - they have code to shutdown
 failed-to-shutdown instances that can spin for up to 5 seconds (by
 default).

Unless I'm mistaken the only layer that can't be currently torn down is the 
FunctionalLayer that loads the ZCML. And I remember Gary telling me that 
recent zope libraries (that we are using) now support unloading the zope 
component registry. So in theory, we could make all our layers support tear 
down.


-- 
Francis J. Lacoste
francis.laco...@canonical.com


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] performance tuesday... tests

2010-09-29 Thread Jonathan Lange
On Wed, Sep 29, 2010 at 3:15 PM, Francis J. Lacoste
francis.laco...@canonical.com wrote:
 Hi Robert,

 On September 28, 2010, Robert Collins wrote:
 Several ways, firstly layers, by supporting setup-only fixtures add
 about 30-40 seconds per test run for every layer that we have that
 can't be torn down. Secondly, because layers are so fragile, our test
 fixtures do redundant work on setup - they have code to shutdown
 failed-to-shutdown instances that can spin for up to 5 seconds (by
 default).

 Unless I'm mistaken the only layer that can't be currently torn down is the
 FunctionalLayer that loads the ZCML. And I remember Gary telling me that
 recent zope libraries (that we are using) now support unloading the zope
 component registry. So in theory, we could make all our layers support tear
 down.


The Zopeless layer also can't be torn down. I believe it's for the
same reasons, so the theory still holds.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] redundant Poppy (soyuz upload server) instances

2010-09-29 Thread Jonathan Lange
On Wed, Sep 29, 2010 at 12:38 PM, Julian Edwards
julian.edwa...@canonical.com wrote:
 On Wednesday 29 September 2010 12:24:12 Jonathan Lange wrote:
 On Tue, Sep 28, 2010 at 9:29 PM, Robert Collins

 robe...@robertcollins.net wrote:
  I am assuming, given that we run a separate SFTP and FTP process, that
  there aren't any concurrency issues around the task being performed.

 I don't know about Poppy per se, but there's nothing in its SSH server
 code preventing multiple instances that I know of.

 There is an issue in both to do with file name creation races isn't there?


Don't know. A very quick scan through the code mentions bug 156795 and
bug 185731.

Next step is for someone (not me!) to either do some serious code
analysis or an experiment. Or both.

jml

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


[Launchpad-dev] Script and Cronscript updates

2010-09-29 Thread Stuart Bishop
Some changes have landed recently to make script wragling better.

Now for scripts and cronscripts, the --log-file argument has been
decoupled from the stderr verbosity settings. It has also been
extended to specify the level of messages that go into the log file.
So now the following will emit WARNING and above messages to stderr,
and log DEBUG and above messages to the given file:

foo.py -q --log-file=/var/logs/foo.log

logrotate can be used to rotate the logs - the Python logging system
watches for rotation and handles things gracefully.


Cronscripts now generate OOPS reports for WARNING and above log
messages. Other scripts do not (they could, but it didn't seem to make
much sense).


We also have a config file that can be retrieved from a URL to enable
or disable cronscripts individually or in bulk. The default config
file location is file:cronscripts.ini (relative to the tree root, so
cronscripts.ini in the root of the tree), and can be overridden by
setting cron_control_url in the [canonical] section of the active
launchpad-lazr.conf file. The file can look like this:


[DEFAULT]
enabled = True

[checkwatches]
enabled = False


If a script can't find its own section, the DEFAULT is used. If the
config cannot be loaded or parsing fails, things default to enabled.
Scripts emit an INFO message if they are disabled. The script names
are the same ones the monitoring scripts look for.

Our first use of this could be to disable staging cronscripts during
staging updates - if they kick in at the wrong time during the update
it can cause deadlocks and the update to abort, like we saw yesterday.

-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How do we fix the Launchpad's login experience?

2010-09-29 Thread Francis J. Lacoste

On September 24, 2010, William Grant wrote:
 On Fri, 2010-09-24 at 00:38 -0400, Elliot Murphy wrote:
  I'm really glad to see this being discussed in detail.
  
  On Thu, Sep 23, 2010 at 7:18 PM, William Grant m...@williamgrant.id.au 
wrote:
 
  I use
  https://launchpad.net/~statik/ to login via openID to various 3rd
  party sites such as stackoverflow.com. Is this going to stop working
  ?(I won't complain if it does, just trying to understand)
 
 That's the XRDS coming into play. If you look at the HTML, you'll see
 elements delegating the page's identity to login.launchpad.net.
 login.launchpad.net and login.ubuntu.com are real OpenID providers,
 while Launchpad just has a couple of tags that delegate.
 
 This XRDS dates from the days when LP was an OpenID provider, and there
 was no other URL to use. It could probably be deprecated, perhaps with
 newly-created profiles not providing the delegation tags.

The plan was once we support arbitrary OpenID provider, we would let you 
choose to which identity your profile identity is delegated. With probably a 
default option of no delegation. (A feature stolen from Sourceforge :-)


 
   In summary: fix bug #637968, make LP a general RP, destroy
   login.launchpad.net.
  
  This sounds like a good summary, although I would like to understand
  why is making LP a general RP a necessary step?
 
 As above: we don't want to scare more people off LP. Forcing everyone
 through somewhere with heavy Ubuntu branding is going to scare more
 people off.
 

That was the working assumption when we rebranded the SSO site to Ubuntu (and 
not Canonical).

It might be argued though, that people who object to using Launchpad because 
of the Ubuntu SSO login wouldn't use it anyway because of the Canonical/Ubuntu 
link. 

Said differently: we assumed the difference between the set of people who 
won't use Launchpad with a Ubuntu-branded SSO and the set of people who won't 
use Launchpad is non-empty.

A different assumption is that these two sets are identical and the difference 
is empty.

We could test this assumption by sending an email to all Lauchpad users 
stating our intention of using the Ubuntu SSO in a month, what it means for 
them, what is the change they are going to see... and counting the number of 
people who scream :-)


-- 

Francis J. Lacoste
francis.laco...@canonical.com


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] RFI: translations of website applications

2010-09-29 Thread Francis J. Lacoste
For what's it worth, the SSO part is already I18Ned.

So the login/registration process has already been taken care of.

-- 
Francis J. Lacoste
francis.laco...@canonical.com

On September 29, 2010, Curtis Hovey wrote:
 On Wed, 2010-09-29 at 06:53 -0500, Deryck Hodge wrote:
  I have heard the concern expressed 3 or 4 times in the last year that
  the problem of a large numbers of bugs would get worse if a non-small
  amount of those bugs were suddenly entered in languages other than
  English.  I'm not against translating Launchpad, but I think we have
  to have a better answer than add a warning to the page.  I'm not
  sure what that answer is, though.
 
 The lose of registration/login/reset makes it harder to complete the
 user experience we want for Answers. We want to allow a non-technical
 user to come to accomplish a few tasks in their native language:
 
   * Search for an answer
   * Ask a question
   * Answer a question
 
 These last two points require a logged in user. It when Lp managed
 identity to allow users to register/login/reset in their own language.
 
 The profile page and links to answers need to be translated too.
 
 There is no solution/infrastructure for translating email templates.


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How to QA your code for continuous rollouts

2010-09-29 Thread Francis J. Lacoste
On September 27, 2010, Julian Edwards wrote:
 On Friday 24 September 2010 03:50:42 Maris Fogels wrote:
 
 There's one more scenario that I'd like to see - marking a change as
 already qa-ok when it lands.  In the Soyuz team we frequently do QA on
 unlanded branches on the dogfood server, partly because it's easy for us
 to do this, and partly because we're extremely uncomfortable landing some
 kinds of changes without a *lot* of QA first (over several weeks).
 
 Right now I am using the [no-qa] tag for PQM which makes the scripts mark
 the bug as qa-untestable.  I'd like it if we could have a [qa-ok] as well
 to indicate that QA was indeed carried out sucessfully.  This would also
 reduce my frustration when I forget that the tagger script happily removes
 my qa-ok tag and replaces it with something else. ;)
 

I think this is a sensible request. There are some other use cases where a 
change is QA-ed on staging by a manual merge before being landed. (That 
happens for release-critical bug fixes or security fixes).


-- 
Francis J. Lacoste
francis.laco...@canonical.com


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How to QA your code for continuous rollouts

2010-09-29 Thread Francis J. Lacoste

On September 23, 2010, Maris Fogels wrote:
 = Has my branch been deployed yet? =
 
 We have created HTML reports that shows the QA status of all of the
 revisions on stable and db-stable:
 
   https://devpad.canonical.com/~lpqateam/qa_reports/deployment-stable.html
   https://devpad.canonical.com/~lpqateam/qa_reports/deployment-db-
stable.html

Hi Maris,

Thanks a lot to Diogo, Ursula and you for these changes! This is greatly 
appreciated.

A few nit-picks on the reports.

* It says 'Revision X can be deployed to edge'. That should be 'production' 
since we are getting rid of edge and currently automatically deploying to it.

* If the first revision is undeployable, the message reads weird 'Revision can 
be deployed to edge'

* You need some special logic to handle the automatic merge from stable. These 
are marked as orphaned. Which doesn't make sense. In the ideal world, we 
should probably mark them as qa-ok once all the revisions contained in the 
merge are marked as qa-ok/qa-untestable.

Cheers

-- 
Francis J. Lacoste
francis.laco...@canonical.com


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] how to use feature flags

2010-09-29 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 09/21/2010 06:09 PM, Robert Collins wrote:
 yes, see the existing tests that do it ;) I suggest the memcache ones
 as an example. There is an XXX there that needs fixing too.

You mean this?

 ignore = getFeatureStore().add(FeatureFlag(
... scope=u'default', flag=u'memcache', value=u'disabled',
... priority=1))
 empty_request = LaunchpadTestRequest()
 per_thread.features = FeatureController(
... ScopesFromRequest(empty_request).lookup)

I think there's a lot of room for improvement here.  If feature flags
are meant to be pervasive, I think we should be able to depend on their
existence in tests, not need to create them explicitly-- otherwise,
we'll get test failures because the FeatureController hasn't been
initialized.  (Or worse, we'll accidentally leak FeatureControllers into
other tests.)  If performance is an issue, we can make a
LazyFeatureController that won't cost anything unless we use a FeatureFlag.

There's also a significant disconnect between how flags are queried and
how they are set.  Since they are queried via FeatureController, I
searched in vain for a method to set them there.

Also, features.getFeatureFlag is a function, not a method, so it should
not have a camelCase name.

Aaron
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkyjhJcACgkQ0F+nu1YWqI3k9QCfbILJTc+ny/BVsn2cHCchlxjV
3OEAn1sgKvJVrObQWyHFzfGXTs7ZSMxa
=1OBY
-END PGP SIGNATURE-

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] how to use feature flags

2010-09-29 Thread Maris Fogels
On 09/29/2010 02:25 PM, Aaron Bentley wrote:
 On 09/21/2010 06:09 PM, Robert Collins wrote:
 yes, see the existing tests that do it ;) I suggest the memcache ones
 as an example. There is an XXX there that needs fixing too.
 
 You mean this?
 
  ignore = getFeatureStore().add(FeatureFlag(
 ... scope=u'default', flag=u'memcache', value=u'disabled',
 ... priority=1))
  empty_request = LaunchpadTestRequest()
  per_thread.features = FeatureController(
 ... ScopesFromRequest(empty_request).lookup)
 
 I think there's a lot of room for improvement here.  If feature flags
 are meant to be pervasive, I think we should be able to depend on their
 existence in tests, not need to create them explicitly-- otherwise,
 we'll get test failures because the FeatureController hasn't been
 initialized.  (Or worse, we'll accidentally leak FeatureControllers into
 other tests.)  If performance is an issue, we can make a
 LazyFeatureController that won't cost anything unless we use a FeatureFlag.
 
 There's also a significant disconnect between how flags are queried and
 how they are set.  Since they are queried via FeatureController, I
 searched in vain for a method to set them there.
 
 Also, features.getFeatureFlag is a function, not a method, so it should
 not have a camelCase name.
 
 Aaron

I have a branch in development that adds a much easier to use test helper for
setting feature flags during development.  Unfortunately I am blocked on the
flags not being set properly during one peculiar pagetest (if anyone is able to
help me with this, please feel free to ping me on IRC).  Once I figure out how
to get the flags to work in my branch, then I will land it and update the list
with instructions for using the new helpers.


-- 
Māris Fogels -- https://launchpad.net/~mars
Launchpad.net -- cross-project collaboration and hosting



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] The future of downtime for rollouts?

2010-09-29 Thread Francis J. Lacoste
I like the idea of a fixed downtime budget a lot.

What do we need to make it happen?

My thoughts:

  * A feedback mechanism allowing us to track how much of the budget is spent.  
 
* Something like a script that extracts a measure from the staging update?
  * Once the budget is spent, no more DB changes.
  * We probably need a way to input the budget for case where a OS maintenance 
task will shrink the DB budget.


-- 
Francis J. Lacoste
francis.laco...@canonical.com

On September 14, 2010, Robert Collins wrote:
 On Wed, Sep 15, 2010 at 12:46 AM, Curtis Hovey
 
 curtis.ho...@canonical.com wrote:
  On Tue, 2010-09-14 at 11:41 +0100, Tom Haddon wrote:
  Might be more reliable but less accurate :) We estimate the downtime
  based on how long the last update took on staging, and then
  multiplying
  by a factor that seems to have accurately reflected the difference in
  time between staging and production (with a little padding). We could
  only commit to 90 mins if we refused to rollout any DB updates that
  took
  longer than a certain period of time on staging.
  
  Staging restore times trend up, so we are always talking about
  increasing time for a rollout. We will continue to do schema development
  after the featureflag is complete. What we cannot see is the staging
  restore time verses the real time--maybe that is pointless because there
  are other rollout incidents that increased the rollout.
 
 Staging restore times as a whole are a poor surrogate as already discussed.
 
 The point I am making is that unless we decide *how much downtime we
 will tolerate*, we'll always have reasons to do more.
 
 So I'm proposing:
  - a 90m budget.
  - if we can't do it in that timeframe, we don't do it.
 
 We *will have to* innovate and address various issues to stick to
 this, but 90m of time is actually a lot of lost time to the many
 thousands of users we have in every timezone. We could spend a week
 with the whole team working on something to make the upgrade faster,
 and still be spending less time than our users are losing, when we're
 down.
 
 -Rob
 
 ___
 Mailing list: https://launchpad.net/~launchpad-dev
 Post to : launchpad-dev@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~launchpad-dev
 More help   : https://help.launchpad.net/ListHelp


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] ArchitectureGuide - all developers please read this ; )

2010-09-29 Thread Francis J. Lacoste
This looks great.

I think the values are on the mark and that the metric are at the very least 
worth a try.

What was the reviewers feedback on this?

-- 
Francis J. Lacoste
francis.laco...@canonical.com

On September 9, 2010, Robert Collins wrote:
 So at the Epic I proposed some architectural values that I hope will
 help us reach some goals for the system. This wiki page:
 https://dev.launchpad.net/ArchitectureGuide lays those goals, values
 and draft metrics out.
 
 Our review team is very good at having sensible discussions about all
 the code that comes into the system, and I've asked (via the normal
 process for review changes) that they start including in those
 discussions questions/comments about those values and metrics on the
 ArchitectureGuide page.
 
 There will be specific things like ('does this page/API do more
 queries as it gets more data') which we may want to accumulate as
 things-to-look for - please put them on *their* relevant wiki page
 (e.g. for the example I gave, dev.launchpad.net/Database/Performance
 might be a sensible place, or just /Performance).
 
 The goal I have here is to provoke *discussion and analysis*, so that
 our shared body of knowledge for delivering a fast, robust  flexible
 product increases in the areas I've highlighted on the
 ArchitectureGuide page, which were not previously covered at all. We
 all own the guide, so like the rest of the wiki, this is a living
 page: please dive in and improve it.
 
 I'm totally sure the metrics I'm suggesting are noddy and
 dialed-wrongly : lets fix those as we go, or perhaps even take them
 out. Though I think it is nice to a ballpark figure to aim for for
 things, just to prompt one to think about the issues.
 
 I'm going to follow up in the review meetings over the next few weeks
 to see how reviewers are finding these discussions, and how its
 working for everyone.
 
 In short, I'd love it if you can:
  - Please read the ArchitectureGuide. It contains useful stuff. In a
 very broad sense, follow its recommendations/request or fix it if its
 wrong.
  - I believe that doing this will help us all have a better product in
 a very significant fashion.
  - In every review, whether you are the reviewee or reviewer, try to
 talk about -even one- of the values I mention. For instance, talk
 performance.
 
 Cheers,
 Rob
 
 ___
 Mailing list: https://launchpad.net/~launchpad-dev
 Post to : launchpad-dev@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~launchpad-dev
 More help   : https://help.launchpad.net/ListHelp


signature.asc
Description: This is a digitally signed message part.
___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread Michael Hudson
On Wed, 29 Sep 2010 11:54:01 +0100, Julian Edwards 
julian.edwa...@canonical.com wrote:
 On Tuesday 28 September 2010 23:39:41 Robert Collins wrote:
  Yes, you did, for clarity here - I'm not proposing to start
  *postgresql* dynamically [yet, the contract does permit it though]
  simply for performance reasons.
 
 I'd really like to see some of the other external processes started on demand 
 though.  For example, I object vehemently to these persistent services on my 
 *desktop* machine:
 
  * Apache (and the rewrite script we use for Code)

Yeah, this sucks.

I'm not sure what would be better though.  I guess we could run an
apache that listens on a high port under Launchpad's control when we run
make run_codehosting and have bazaar.launchpad.dev:80 proxy to that.
An alternative would be using something other than Apache to serve the
static data and get away from the horrible prg rewrite interface, but
that's a little bit scary.

Cheers,
mwh

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] generic job queue cronjob?

2010-09-29 Thread Martin Pool
On 27 September 2010 23:46, Aaron Bentley aa...@canonical.com wrote:
 On 09/24/2010 05:45 PM, Martin Pool wrote:
 On 24 September 2010 23:27, Aaron Bentley aa...@canonical.com wrote:
 Right.  I was wondering if Launchpad was going to (now, or later)
 change to just sending this branch tip changed and then have the
 recipients decide what to do with that.  For instance, we want to
 update precalculated mp preview diffs when the branch changes.
 Ideally, in a message system, the branch scanner wouldn't need to know
 anything about that, only the job that's subscribed to those events.

 We are already pretty decoupled there.  When the scanner notices a
 branch tip change, it fires a TipChanged event.  One of the subscribers
 generates the appropriate UpdatePreviewDiffJob.

That's what I meant: it seems like we already have both pubsub and
task-dispatch type messaging.  Perhaps we are happy having the events
happen entirely in process for now, but if we're considering future
architecture perhaps it should be taken into account.

 If we want to take that direction perhaps it's better not considering
 it only as a task dispatch system?

 I don't know about that.  It's quite useful to represent this as a job,
 not an event.  (You could do an event message which generates a job
 message, but that seems inefficient to me.)

But isn't that basically what you described above?  Or are you saying
it would be inefficient to do an event passed out to an external
broker rather than just transmitted within zope?

 We can then inform our users that a diff is pending (and maybe
 distinguish between pending and in progress).  This is a real-world
 example of imperative messages imply an expected consequence, while
 informative messages don't, and leave us less-informed as a consequence.

Nice example, particularly that if you know you requested a task
rather than just sending a message you can check its status,
potentially cancel it, etc.

-- 
Martin

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] Test results: flags-gui = devel: SUCCESS

2010-09-29 Thread Martin Pool
That's such a nice subject line I had to keep it.

When devel is next deployed, Launchpad will get a /+feature-rules
page, through which ~admins can configure feature flag rules, as an
alternative to losas updating them through sql.
http://launchpadlibrarian.net/56727141/20100929-feature-control.png
For instance if someone adds a flag to disable moving bugs out of
fix-released, we might add

  bugs.lock_fix_released  edge  100  true

where the fields are
 - the flag name, matching your call to getFeatureFlag
http://people.canonical.com/~mwh/canonicalapi/lp.services.features.html

 - the scope selector in which you want this value to apply

 - the priority of this rule, higher numbers being more important,
used when more than one scope could match for this flag

 - the value it will take, as a string

I encourage you to use this on launchpad.dev to interactively test how
your feature flags work.

Changes to the rules on production are governed by the
ProductionChangeApprovalPolicy (internal link:
https://wiki.canonical.com/Launchpad/PolicyandProcess/ProductionChangeApprovalPolicy)
which basically means that you should ask a team lead, project lead,
or technical architect, who will then ask a LOSA to actually make the
change.

-- 
Martin

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] stories for external test helpers (librarian, memcache, etc)

2010-09-29 Thread Robert Collins
So, starting services that we need just in time.

I'm totally +1 on this.

What it broadly needs:
 - some way to install but not run (at all) system services such as
apache, which can be custom per-thing, we just need to ensure that
when you install the thing *via* the lp-developer-deps that this
happens.
one way would be to depend on e.g. lp-apache | apache, and
lp-apache would do the disabling stuff; it would only be pulled in if
apache wasn't already installed.

 - glue to configure-and-run those services when we need them. This
could take [at least] two forms:
   - system wide configs (e.g. like the apache site we use) and we
start the service
   - transient configs generated on  the fly just for use (and then we
run the binary with only our config)
Clearly system wide configs is what we use for apache and postgresql,
and we may want to where the service is particularly costly to bring
up; but we don't need to stop there.

I'm not *personally* driven to improve this area yet, because I think
the incremental benefits are small compared to concurrent test runs,
for instance. It does have the potential to make it dramatically
easier to get setup developing on LP though, which would be awesome.

-Rob

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] The future of downtime for rollouts?

2010-09-29 Thread Robert Collins
On Thu, Sep 30, 2010 at 9:07 AM, Francis J. Lacoste
francis.laco...@canonical.com wrote:
 I like the idea of a fixed downtime budget a lot.

 What do we need to make it happen?

 My thoughts:

  * A feedback mechanism allowing us to track how much of the budget is spent.
    * Something like a script that extracts a measure from the staging update?
  * Once the budget is spent, no more DB changes.
  * We probably need a way to input the budget for case where a OS maintenance
    task will shrink the DB budget.

Those things may help automate the process but I think all we actually need is:
 * Choose a budget.
 * Change the release managers documentation to remove 'determine the
downtime window' stuff and instead be 'announce how much of the budget
will be used'.

We only need these two things as long as we have some constraints:
 - the LOSA OS maintenance windows are  the downtime budget and we
know a cycle in advance for them.
 - there is a chokepoint for DB patches where someone can assess how
we're going when patches are considered.

And we already have those constraints.

-Rob

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] The future of downtime for rollouts?

2010-09-29 Thread Martin Pool
On 30 September 2010 06:07, Francis J. Lacoste
francis.laco...@canonical.com wrote:
 I like the idea of a fixed downtime budget a lot.

 What do we need to make it happen?

 My thoughts:

  * A feedback mechanism allowing us to track how much of the budget is spent.
    * Something like a script that extracts a measure from the staging update?
  * Once the budget is spent, no more DB changes.
  * We probably need a way to input the budget for case where a OS maintenance
    task will shrink the DB budget.

It seems like, by saying no more DB changes, you're anticipating a
budget that refills only every several months or so. That's a pretty
interesting idea.  I thought what Robert was saying, though, was a cap
at 90 minutes on any single outage.

-- 
Martin

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] ArchitectureGuide - all developers please read this ; )

2010-09-29 Thread Martin Pool
I liked the talk and I like the values expressed here.

To me, this document in its current form is not really an architecture
guide.  In a document with that name I'd expect to find some
discussion of the big moving parts in the system (zope, storm, jobs,
cronscripts), what kind of approach we like people to take (do
security in zcml, don't write doctests, ...), and so on.  Probably
some of that is already written down and can merge into this.

 Coupling: No more than 5 dependencies of a component.
 Cohesion: Attributes should be used in more than 1/3 of interactions. If they 
 are used less often than that, consider deleting or splitting into separate 
 components.

I still think those are really weird expressions of useful values. :-}
 Perhaps it could be If you can split a class into two or more
simpler classes, do it.

-- 
Martin

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How to QA your code for continuous rollouts

2010-09-29 Thread Martin Pool
I wish, as part of these changes, Launchpad would change away from
using the confusing term QA for this process.

QA proper means much more than just testing, but the process
described here isn't even testing or verification that the bug is
actually fixed.  It's more like shakedown or approval for deployment.

-- 
Martin

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] Test results: flags-gui = devel: SUCCESS

2010-09-29 Thread Bryce Harrington
On Thu, Sep 30, 2010 at 09:04:33AM +1000, Martin Pool wrote:
 That's such a nice subject line I had to keep it.

Indeed, thanks, I've been appreciating this new format today.  :-)

Bryce

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] ArchitectureGuide - all developers please read this ; )

2010-09-29 Thread Robert Collins
 I still think those are really weird expressions of useful values. :-}
  Perhaps it could be If you can split a class into two or more
 simpler classes, do it.

Thats a nice test to use as well; perhaps you could add it to the page?

-Rob

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] performance tuesday... tests

2010-09-29 Thread Stuart Bishop
On Wed, Sep 29, 2010 at 9:15 PM, Francis J. Lacoste
francis.laco...@canonical.com wrote:
 Hi Robert,

 On September 28, 2010, Robert Collins wrote:
 Several ways, firstly layers, by supporting setup-only fixtures add
 about 30-40 seconds per test run for every layer that we have that
 can't be torn down. Secondly, because layers are so fragile, our test
 fixtures do redundant work on setup - they have code to shutdown
 failed-to-shutdown instances that can spin for up to 5 seconds (by
 default).

 Unless I'm mistaken the only layer that can't be currently torn down is the
 FunctionalLayer that loads the ZCML. And I remember Gary telling me that
 recent zope libraries (that we are using) now support unloading the zope
 component registry. So in theory, we could make all our layers support tear
 down.

But the really interesting thing is that I think the only reason we
had to go with layers was that it handled resources that couldn't be
torn down. If the CA teardown works reliably and as expected, I don't
see anything else tying us to layers. Layers never really fit right -
I got agreement with upstream for a 'resources' model supporting our
complex environment that would have been backwards compatible, but
nobody ever got around to implementing it.


-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Launchpad-dev] How to QA your code for continuous rollouts

2010-09-29 Thread Stuart Bishop
On Mon, Sep 27, 2010 at 6:41 PM, Julian Edwards
julian.edwa...@canonical.com wrote:

 Right now I am using the [no-qa] tag for PQM which makes the scripts mark the
 bug as qa-untestable.  I'd like it if we could have a [qa-ok] as well to
 indicate that QA was indeed carried out sucessfully.  This would also reduce
 my frustration when I forget that the tagger script happily removes my qa-ok
 tag and replaces it with something else. ;)

It is a little overenthusiastic isn't it. I just qa-ok'd
https://bugs.edge.launchpad.net/launchpad-foundations/+bug/628637 for
the third time. Maybe third time is the charm?




-- 
Stuart Bishop stu...@stuartbishop.net
http://www.stuartbishop.net/

___
Mailing list: https://launchpad.net/~launchpad-dev
Post to : launchpad-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-dev
More help   : https://help.launchpad.net/ListHelp