Re: [Launchpad-dev] RFC on build from branch UI

2010-03-10 Thread Dmitrijs Ledkovs
On 3 February 2010 20:58, Aaron Bentley aa...@canonical.com wrote:
 Michael Nelson wrote:
 The main point that underlies all my comemnts is that your focus is on
 building a branch using a recipe, rather than building a recipe.

 Yes, definitely. I had thought that the recipe is just a means to the
 user goal of building a branch. Sorry, I wasn't trying to minimise
 their importance or flexibility, but rather ensure that the desire I
 want to build this branch stays in focus.

 So are we sure that building from a recipe should be a user-level thing
 at all?

 It seems like a major use case will be build this branch using this
 packaging branch.  If we had a UI that just provided that, what
 percentage of our users would still need more?

 Aaron

IMHO it would be 50/50 split cause I'm still thinking in terms of
packaging branch as the starting point and which branches do I want to
build using it. For example as an upstream project maintainer I will
strive to minimize amount of packaging branches / recipes cause that's
not usually upstream expertise. So I would have one packaging branch
possibly pinched of ubuntu and then I will go to it and start thinking
which of my project branches I want to build eg. stable release,
supported release and this wacky hack I'm working on. And ooops hardy
has different lib sonames so i need to use this other packaging branch
cause it has build time patch. So again I would go to hardy packaging
branch and say oh yeah do just the stable branch cause I really don't
want anyone to develop latest features with out-of-date libs for
example.

This feature will be a popular both from Ubuntu development side and
the upstream projects using launchpad for project management, QA /
ubuntu experience enhancement.

-- 
With best regards


Dmitrijs Ledkovs (for short Dima),
Ледков Дмитрий Юрьевич

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

___
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] RFC on build from branch UI

2010-02-10 Thread Tim Penhey
On Tue, 02 Feb 2010 23:01:49 Michael Nelson wrote:
 https://dev.launchpad.net/BuildBranchToArchiveUI

Hi Michael,

Firstly I think you have done an awesome job with the UI mock-ups.  I talked 
with Michael Hudson today, and here is the summary of what came up. I'm not 
expecting you to answer all of these, but to give us notes to work from.


We agreed that it is important to focus on the initial workflow of creating a 
new daily build of a branch into a PPA.

We realised that we are missing the schedule information for the recipe itself 
in order to support daily builds properly.

We are missing any form of UI mock-ups for the branch page itself.

What changes on the branch page when a new build has been requested?  

How are we going to show builds in progress? 

What if the user wants to remove a daily build?  Or just disable it?

Is it really feasible to share recipes?  When wanting to build into a PPA, 
what are we really accomplishing by choosing someone else's recipe?

We are likely to have multiple recipes for each branch that is being built 
daily as we are going to target multiple distroseries.  Am I right on this 
assumption?

We will want some general recipe oriented views later, but what we have is a 
good start.

Tim

___
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] RFC on build from branch UI

2010-02-10 Thread Michael Hudson
Tim Penhey wrote:
 On Tue, 02 Feb 2010 23:01:49 Michael Nelson wrote:
 https://dev.launchpad.net/BuildBranchToArchiveUI
 
 Hi Michael,
 
 Firstly I think you have done an awesome job with the UI mock-ups.  I talked 
 with Michael Hudson today, and here is the summary of what came up. I'm not 
 expecting you to answer all of these, but to give us notes to work from.
 
 
 We agreed that it is important to focus on the initial workflow of creating a 
 new daily build of a branch into a PPA.

One part of the mock up I was a bit uncomfortable with was the view
details section of selecting a recipe.  It seems as if this allowed
editing the recipe -- if this is the case, I think it's a bit wrong.
The dialog that lets you edit a recipe should have a button labelled
Save at the bottom of it, not build, to emphasise that one is editing
a shared resource, not something specific to this build.  So perhaps the
workflow should be select recipe, edit recipe, this pops up another
dialog, save, goes back to selection screen with edited recipe selected,
then click build.  I think James already said something like this.

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] RFC on build from branch UI

2010-02-07 Thread Tim Penhey
On Sat, 06 Feb 2010 06:58:27 Aaron Bentley wrote:
 Michael Nelson wrote:
  Oh, I was under the impression that wasn't possible/allowed from an LP
  app server.
 
 Not directly, no.

We don't allow it right now, but there may well be some cases where we allow 
it, like setting a branch to be append only.

We don't really want the app-servers being tied up with slow branch access, 
especially when the current page load times are absurdly long already.

Tim

___
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] RFC on build from branch UI

2010-02-07 Thread Michael Hudson
 So yes, I agree that it'd be great to send manifests to the buildd
 rather than recipes (as it guarantees what will be produced), and I
 assume we can do this as the only missing information would be the tip
 revision which we have in the db (IBranch.last_mirrored_id?),
 although, are other calculated revisionspec's allowed for branches in
 a recipe? (ie. last:3) If so, then I guess we can't calculate the
 manifest to send to the buildd?
 
 Maybe Michael H. can confirm? If it is something we can do, I'll
 create a bug for it too.

It would be hard to do it in the appserver, though there are always
ways, but doing it in the buildd-manager seems possible.  I guess by
specifying dotted revnos and so on you can make generating the manifest
fairly expensive and so risk slowing things down... but not much more
than everything else in this system (I mean OO.org is almost DoS in
itself :-p)

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] RFC on build from branch UI

2010-02-05 Thread Michael Nelson
On Thu, Feb 4, 2010 at 7:06 PM, Aaron Bentley aa...@canonical.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Michael Nelson wrote:
 On Wed, Feb 3, 2010 at 9:58 PM, Aaron Bentley aa...@canonical.com wrote:
 It seems like a major use case will be build this branch using this
 packaging branch.  If we had a UI that just provided that, what
 percentage of our users would still need more?

 I think people need (and want) more than just the packaging branch.
 For example, they'd want to specify the distroseries as well

 Doesn't a user actually want to specify a list of distroseries you want
 to build for?  And don't you need a recipe per distroseries as currently
 formulated?

Yes, that would be great, and given that we've got a distroseries
field on the SPRBuild as well, we *could* actually create separate
SPRBuilds from the one SPRecipe (bug 513201). As James noted, it's not
the most efficient way - it would be better if soyuz could do some
magic and build the source once and tweak it for multiple
distroseries.

I haven't yet added any mockups showing this. I'll try to do this today.

 If so, our UI should let them choose a list of distroseries
 and create as many recipes as necessary behind the scenes.

 by which
 time, the concept of a recipe for your build makes sense (ie. you've
 got a few ingredients).

 I don't think that follows.  Recipes are only somewhat specific to
 packaging.  Providing a UI that was less generic and more
 domain-specific could be quite helpful.

I don't think I understand. As far as I can see, everything (except
the recipe name) that we're asking for on these mockups:

http://people.canonical.com/~michaeln/bfb/build_now_overlay_without_recipe_structure.png

is required to create a build (whether you mention recipes or not)
(See below about the package name). That is, distroseries selection,
deb version and the packaging branch.

And I would have thought it would be useful to be able to re-use that
information next time I want to do a build, and the most obvious way
to do that is to save it as a recipe with a name that makes sense to
me (foo_branch_with_my_packaging).

Of course, we could instead just present by default the last
information entered by the user, but this would obviously not always
work.

Aside from that, it would mean that other people couldn't benefit from
being able to see what recipes are available for a branch and re-use
them (especially if we flooded the recipe table with new recipes for
each build).


 On top of that, I don't see how we can guess a
 valid deb version (as it depends on what's been uploaded to the PPA
 before etc.

 Surely we know what's been uploaded to a PPA before?  Anyhow, that's a
 domain-specific thing, not necessarily a recipe thing.

Yes we know what's been uploaded before (sorry, I should have
qualified that), but that doesn't help us to specify a *re-usable* deb
version string like 1.0+{revno}-{revno:packaging} (which we can't
necessarily evaluate)

Now I'm guessing your point would be, if we instead got rid of the
recipe interface and just allowed the user to specify a build, we
don't need to support re-usable deb versions strings and that's true
as long as we don't want the same interface to support daily builds.

I might try to organise a time to call and talk more about that. I'm
still not sure how that would allow us to guess a valid deb_version
for a single build (that is, incrementing the latest version published
in the PPA might not be what you want). But maybe there is a way to do
this in a sane way?


 And we can't always know the package name from the branch
 either [1].)

 I thought the debian control directory specified the package name.

Yes they do, hence the bug Recipe requires sourcepackagename before upload
https://bugs.edge.launchpad.net/launchpad-code/+bug/515581

It would be nice if the sourcepackage name wasn't required when a
recipe is created, but as I understand it, the URL traversal that was
previously decided on requires it:

(code?) ~owner/distro/distroseries/sourcepackagename/recipename The
canonical traversal for displaying/editing a recipe.

Maybe that needs to be re-thought? Or those who made that decision
might be able to comment. As currently this could lead to users
unintentionally changing the sourcepackagename from what's specified
in the packaging branches changelog.

Without this, we could certainly drop the *requirement* for the
sourcepackage name when creating a build/recipe. At the moment the
best we can do is hide the field when we already know the source
package name (via the product series packaging entry?).

(Of course, although it doesn't need to be required, it should still
be available as it is an option that we can pass through to dailydeb
to *override* the value in the changes file.)


 And even if the above was feasible, we'd still need to create a recipe
 to do the build

 Absolutely.  I never meant to suggest otherwise.

 and so when the same user comes back next time 

Re: [Launchpad-dev] RFC on build from branch UI

2010-02-05 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Nelson wrote:
 On Thu, Feb 4, 2010 at 7:06 PM, Aaron Bentley aa...@canonical.com wrote:

 Doesn't a user actually want to specify a list of distroseries you want
 to build for?  And don't you need a recipe per distroseries as currently
 formulated?
 
 Yes, that would be great, and given that we've got a distroseries
 field on the SPRBuild as well, we *could* actually create separate
 SPRBuilds from the one SPRecipe (bug 513201). As James noted, it's not
 the most efficient way - it would be better if soyuz could do some
 magic and build the source once and tweak it for multiple
 distroseries.

I guess I fear that source packages built from the same recipe on
multiple distroseries can legitimately have other differences, and that
this could be lost.  But this is not my domain.

 I don't think that follows.  Recipes are only somewhat specific to
 packaging.  Providing a UI that was less generic and more
 domain-specific could be quite helpful.
 
 I don't think I understand. As far as I can see, everything (except
 the recipe name) that we're asking for on these mockups:
 
 http://people.canonical.com/~michaeln/bfb/build_now_overlay_without_recipe_structure.png
 
 is required to create a build (whether you mention recipes or not)
 (See below about the package name). That is, distroseries selection,
 deb version and the packaging branch.

Right, and we may be in furious agreement.  Bear in mind that I was
looking at these mockups:
http://people.canonical.com/~michaeln/bfb/build_now_overlay.png

I haven't seen your new mockups 'till now.  Your new mockups hide the
recipe, showing only domain-specific fields.  Your old ones showed a
generic interface where a packaging branch was only implied, not specified.

In the new interface, the user doesn't see any recipe commands, and the
packaging branch is referred to as a packaging branch, not as an
arbitrary branch to be merged.  That's very much the sort of thing I was
proposing.

So the difference remaining is that you still have users editing
recipes, though usually indirectly, while I would generate the recipes
dynamically from settings like the ones you show.

 And I would have thought it would be useful to be able to re-use that
 information next time I want to do a build

Sure, and I was already saying that would be a good idea.

 and the most obvious way
 to do that is to save it as a recipe with a name that makes sense to
 me (foo_branch_with_my_packaging).

I remain uncertain that recipes are as flexible as we would want for
this.  Your bug https://bugs.launchpad.net/bugs/516496 suggests that as
currently formulated, they specify too much by having revision specs.

If we were to look at your build this revision scenario with a UI that
didn't directly edit recipes, launchpad would generate the necessary
recipe behind the scenes and use that to do the build.

 Aside from that, it would mean that other people couldn't benefit from
 being able to see what recipes are available for a branch and re-use
 them (especially if we flooded the recipe table with new recipes for
 each build).

I was proposing storing the domain-specific values, rather than the
recipes, and that would be something others could reuse.

 Now I'm guessing your point would be, if we instead got rid of the
 recipe interface and just allowed the user to specify a build, we
 don't need to support re-usable deb versions strings and that's true
 as long as we don't want the same interface to support daily builds.

No, I definitely want our solution to work for daily builds.  I actually
think specifying a template deb version is fine.

 And we can't always know the package name from the branch
 either [1].)
 I thought the debian control directory specified the package name.
 
 Yes they do, hence the bug Recipe requires sourcepackagename before upload
 https://bugs.edge.launchpad.net/launchpad-code/+bug/515581

Okay, but doesn't that still contradict your statement that we can't
always know the package name from the branch?

 It would be nice if the sourcepackage name wasn't required when a
 recipe is created, but as I understand it, the URL traversal that was
 previously decided on requires it:
 
 (code?) ~owner/distro/distroseries/sourcepackagename/recipename TheSo
 canonical traversal for displaying/editing a recipe.

There are probably ways we could get around it, e.g. by looking at the
contents of the package branch while creating the recipe.  Not sure
there's value in that.

 If we're not exposing recipes, why should the user care about
 duplication?  Yes, it would be nice to remember past settings, but
 again, that doesn't require recipes per se.
 
 As above, I'm not sure how it wouldn't require saving the set of
 build inputs with a user-specified name so they can re-use it (which
 is what we've got with a recipe).

It would require that, but instead of a recipe, it would be entirely
domain specific, and would fit our needs exactly.

 

Re: [Launchpad-dev] RFC on build from branch UI

2010-02-05 Thread Michael Nelson
On Fri, Feb 5, 2010 at 3:58 PM, Aaron Bentley aa...@canonical.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Michael Nelson wrote:

 I don't think I understand. As far as I can see, everything (except
 the recipe name) that we're asking for on these mockups:

 http://people.canonical.com/~michaeln/bfb/build_now_overlay_without_recipe_structure.png

 is required to create a build (whether you mention recipes or not)
 (See below about the package name). That is, distroseries selection,
 deb version and the packaging branch.

 Right, and we may be in furious agreement.  Bear in mind that I was
 looking at these mockups:
 http://people.canonical.com/~michaeln/bfb/build_now_overlay.png

 I haven't seen your new mockups 'till now.  Your new mockups hide the
 recipe, showing only domain-specific fields.  Your old ones showed a
 generic interface where a packaging branch was only implied, not specified.

They're just a few alternatives to discuss atm.,, I added that one
after Martin's email earlier (you can see them all on the wiki page).

 I remain uncertain that recipes are as flexible as we would want for
 this.  Your bug https://bugs.launchpad.net/bugs/516496 suggests that as
 currently formulated, they specify too much by having revision specs.

Yes, I'm guessing we'll be tweaking the backend implementation as we
start trying to use these. MichaelH did a great job getting all the
model code into trunk, but it'll take time to settle (IMO).

 Aside from that, it would mean that other people couldn't benefit from
 being able to see what recipes are available for a branch and re-use
 them (especially if we flooded the recipe table with new recipes for
 each build).

 I was proposing storing the domain-specific values, rather than the
 recipes, and that would be something others could reuse.

I see, like *storing* a 'packaging_branch' attribute, rather than the
parsed SPRDataInstruction that contains the merge instruction. That
might be worthwhile bringing up in your team.


 Now I'm guessing your point would be, if we instead got rid of the
 recipe interface and just allowed the user to specify a build, we
 don't need to support re-usable deb versions strings and that's true
 as long as we don't want the same interface to support daily builds.

 No, I definitely want our solution to work for daily builds.  I actually
 think specifying a template deb version is fine.


 I thought the debian control directory specified the package name.

 Yes they do, hence the bug Recipe requires sourcepackagename before upload
 https://bugs.edge.launchpad.net/launchpad-code/+bug/515581

 Okay, but doesn't that still contradict your statement that we can't
 always know the package name from the branch?

Not that I'm aware of... when we create the SPRecipe, we need to
supply a sourcepackagename, and at that point-in-time, the only
guaranteed place where I can get that information is the changes file,
which I *thought* I didn't have access to from LP (until it's uploaded
after the recipe build succeeds). But let me know if I've
mis-understood something.


 It would be nice if the sourcepackage name wasn't required when a
 recipe is created, but as I understand it, the URL traversal that was
 previously decided on requires it:

 (code?) ~owner/distro/distroseries/sourcepackagename/recipename TheSo
 canonical traversal for displaying/editing a recipe.

 There are probably ways we could get around it, e.g. by looking at the
 contents of the package branch while creating the recipe.  Not sure
 there's value in that.

Oh, I was under the impression that wasn't possible/allowed from an LP
app server.


 If we're not exposing recipes, why should the user care about
 duplication?  Yes, it would be nice to remember past settings, but
 again, that doesn't require recipes per se.

 As above, I'm not sure how it wouldn't require saving the set of
 build inputs with a user-specified name so they can re-use it (which
 is what we've got with a recipe).

 It would require that, but instead of a recipe, it would be entirely
 domain specific, and would fit our needs exactly.

OK, I guess that's a great point to pick up on a phone conversation on
Monday (so I can understand exactly what would be different from what
we're currently displaying).

Thanks Aaron!

___
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] RFC on build from branch UI

2010-02-05 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Nelson wrote:
 On Fri, Feb 5, 2010 at 3:58 PM, Aaron Bentley aa...@canonical.com wrote:
 I thought the debian control directory specified the package name.
 Yes they do, hence the bug Recipe requires sourcepackagename before upload
 https://bugs.edge.launchpad.net/launchpad-code/+bug/515581
 Okay, but doesn't that still contradict your statement that we can't
 always know the package name from the branch?
 
 Not that I'm aware of... when we create the SPRecipe, we need to
 supply a sourcepackagename, and at that point-in-time, the only
 guaranteed place where I can get that information is the changes file,
 which I *thought* I didn't have access to from LP (until it's uploaded
 after the recipe build succeeds). But let me know if I've
 mis-understood something.

We can always run things in scripts that do have access to the branches,
or we might be able to add something to the branch scanner that
identified package branches, including their sourcepackagename.

 It would be nice if the sourcepackage name wasn't required when a
 recipe is created, but as I understand it, the URL traversal that was
 previously decided on requires it:

 (code?) ~owner/distro/distroseries/sourcepackagename/recipename TheSo
 canonical traversal for displaying/editing a recipe.
 There are probably ways we could get around it, e.g. by looking at the
 contents of the package branch while creating the recipe.  Not sure
 there's value in that.
 
 Oh, I was under the impression that wasn't possible/allowed from an LP
 app server.

Not directly, no.

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

iEYEARECAAYFAktsXD8ACgkQ0F+nu1YWqI0eOACeK3gn2YHWdbGr9ljKQyBFt01L
dAAAn2hqEQUH+IHuRLyDQkKkocNZz3ZH
=YfHY
-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] RFC on build from branch UI

2010-02-04 Thread Michael Nelson
On Wed, Feb 3, 2010 at 12:38 PM, Michael Nelson
michael.nel...@canonical.com wrote:
 On Tue, Feb 2, 2010 at 3:15 PM, Martin Albisetti argent...@gmail.com wrote:
[snip]
 - I wonder why the packaging branch isn't something you can search for
 and change. IIRC, there are some advanced use cases where you use more
 voodoo, but the common case would be marvelously simple if you would
 just select a packaging branch to create a recipe

 I'm not sure how we could establish that link in the general case
 (eg., I have a packaging branch in my +junk area?) But assuming that
 it is possible, yes, the packaging branch could be a(n optional)
 selector or inline branch picker.

 This would mean that the text area would only be required for specific
 recipes that merge multiple packaging/fix branches. Which leaves me
 wondering whether we even should/need to convey the structure of the
 actual recipe (ie. we could remove the uneditable header, and just
 have a normal form with fields, rather than trying to emulate the
 recipe text). We headed down this direction because there is no
 standard way to construct a recipe and so I thought we'd need to
 expose the recipe for what it was. But all of the above fields are
 applicable to the various types of recipes (as long as the packaging
 branch option is optional). As long as we always enable the text area
 at the end so power users can add custom merge directives etc., we
 should be able to cover the most common use-cases without exposing the
 recipe?

 I'll have a play with other layouts (after thinking more about James' points).


I've put an example of the overlay that doesn't try to display the
structure of a recipe, but uses normal form fields (and hence
potentially a branch picker for the packaging branch) on the wiki at:

https://dev.launchpad.net/BuildBranchToArchiveUI#New%20Questions

As you'll see there, I'm not quite sure how to best include the
text-area for custom recipe text (it needs to be available there, but
it'd be nice to only display it when requested.

___
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] RFC on build from branch UI

2010-02-04 Thread Michael Nelson
On Wed, Feb 3, 2010 at 9:58 PM, Aaron Bentley aa...@canonical.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Michael Nelson wrote:
 The main point that underlies all my comemnts is that your focus is on
 building a branch using a recipe, rather than building a recipe.

 Yes, definitely. I had thought that the recipe is just a means to the
 user goal of building a branch. Sorry, I wasn't trying to minimise
 their importance or flexibility, but rather ensure that the desire I
 want to build this branch stays in focus.

 So are we sure that building from a recipe should be a user-level thing
 at all?

 It seems like a major use case will be build this branch using this
 packaging branch.  If we had a UI that just provided that, what
 percentage of our users would still need more?

I think people need (and want) more than just the packaging branch.
For example, they'd want to specify the distroseries as well, by which
time, the concept of a recipe for your build makes sense (ie. you've
got a few ingredients). On top of that, I don't see how we can guess a
valid deb version (as it depends on what's been uploaded to the PPA
before etc. And we can't always know the package name from the branch
either [1].)

And even if the above was feasible, we'd still need to create a recipe
to do the build, and so when the same user comes back next time to
build that branch again, we'd want to give them the option of
selecting their previous recipe rather than silently creating another
one.

So I (personally) think that even new users need to be aware of
recipes (not only that they need to be aware, but that it's helpful
for them to be aware), but the simpler we can make the first
experience, the better. Let me know if you can see any holes in the
above argument.

-Michael

[1] But we could only display the package name field when we can't
determine it from the branch, that would reduce clutter too.

___
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] RFC on build from branch UI

2010-02-04 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Nelson wrote:
 On Wed, Feb 3, 2010 at 9:58 PM, Aaron Bentley aa...@canonical.com wrote:
 It seems like a major use case will be build this branch using this
 packaging branch.  If we had a UI that just provided that, what
 percentage of our users would still need more?
 
 I think people need (and want) more than just the packaging branch.
 For example, they'd want to specify the distroseries as well

Doesn't a user actually want to specify a list of distroseries you want
to build for?  And don't you need a recipe per distroseries as currently
formulated?  If so, our UI should let them choose a list of distroseries
and create as many recipes as necessary behind the scenes.

 by which
 time, the concept of a recipe for your build makes sense (ie. you've
 got a few ingredients).

I don't think that follows.  Recipes are only somewhat specific to
packaging.  Providing a UI that was less generic and more
domain-specific could be quite helpful.

 On top of that, I don't see how we can guess a
 valid deb version (as it depends on what's been uploaded to the PPA
 before etc.

Surely we know what's been uploaded to a PPA before?  Anyhow, that's a
domain-specific thing, not necessarily a recipe thing.

 And we can't always know the package name from the branch
 either [1].)

I thought the debian control directory specified the package name.

 And even if the above was feasible, we'd still need to create a recipe
 to do the build

Absolutely.  I never meant to suggest otherwise.

 and so when the same user comes back next time to
 build that branch again, we'd want to give them the option of
 selecting their previous recipe rather than silently creating another
 one.

If we're not exposing recipes, why should the user care about
duplication?  Yes, it would be nice to remember past settings, but
again, that doesn't require recipes per se.

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

iEYEARECAAYFAktrDKUACgkQ0F+nu1YWqI0YUwCeOBhCp7lvQdHE4W/0zHFCUjKx
XqQAn1Kp8GZJfJmkvo5s26S49kw5Y4th
=ggkb
-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] RFC on build from branch UI

2010-02-03 Thread Michael Nelson
On Tue, Feb 2, 2010 at 3:15 PM, Martin Albisetti argent...@gmail.com wrote:
 On Tue, Feb 2, 2010 at 10:01 AM, Michael Nelson
 michael.nel...@canonical.com wrote:
 You can see the details at:

 https://dev.launchpad.net/BuildBranchToArchiveUI

 Hi Michael, this looks great. I've gone through the document and have
 a few questions to raise.

Great! Thanks for taking the time...



 General impressions:
 - In target user audiences, I wonder why you left out Project
 maintainers. It seemed like one of the primary users for this.

I replaced QA leads.. with Project maintainers.

 I'm
 also a bit confused as to whether the target audience is for people
 who will use the feature (the ones who will interact with the UI) or
 people who will benefit from this feature (this would just be people
 installing PPAs)

Yes, this work is primarily for the people who will be building
branches to archives. The UI for people just installing from targeted
PPAs won't change (although I'd *love* to take the opportunity to
update the PPA index to display installable binaries instead of a
'simplified' version of the list of source packages).

I'm not sure what the cause of confusion was?

 - Reading through this document ah brought back the itching need to
 link PPAs to projects. Many things would be much easier!
 - It seems to me from the UI, that I won't be able to easily say
 build this every day in Lucid, Karmic, Jaunty and Hardy. I feel
 that's the way many people are using it today

Yes - it would be great to support this (with the improvements
suggested by James), but the current db schema and builder
implementation do not support multiple distroseries for a recipe or
multiple distroseries for a single build. I've created the following
bug to capture this:

https://bugs.edge.launchpad.net/launchpad-code/+bug/516448

On the other hand, the current schema and implementation *would*
support us creating four separate sourcepackagerecipebuilds for one
recipe (each with a different distroseries). So, it might be worth
weighing up the extra cost (building the same source package 4 times)
versus the benefit of supporting this straight away. Updated the
following bug with this info:

https://bugs.edge.launchpad.net/launchpad-code/+bug/513201



 Manual build of the latest branch revision:
 - I understand it as as a one-off action, I think we should show what
 specific revision you're building,

Yes, I've added a selector that defaults to (tip) - see if this is
what you had in mind.

 and maybe a link to it

Hrm, I think we should definitely link to the other branches mentioned
in the recipe - when not editing (I'd forgotten to do that), but the
base-branch is the current branch that you're viewing. Or did you mean
link to the specific version of the branch (ui-wise, that could be
tricky - perhaps a link next to the version selector? but it's already
very crowded.)


 - I wonder why the packaging branch isn't something you can search for
 and change. IIRC, there are some advanced use cases where you use more
 voodoo, but the common case would be marvelously simple if you would
 just select a packaging branch to create a recipe

I'm not sure how we could establish that link in the general case
(eg., I have a packaging branch in my +junk area?) But assuming that
it is possible, yes, the packaging branch could be a(n optional)
selector or inline branch picker.

This would mean that the text area would only be required for specific
recipes that merge multiple packaging/fix branches. Which leaves me
wondering whether we even should/need to convey the structure of the
actual recipe (ie. we could remove the uneditable header, and just
have a normal form with fields, rather than trying to emulate the
recipe text). We headed down this direction because there is no
standard way to construct a recipe and so I thought we'd need to
expose the recipe for what it was. But all of the above fields are
applicable to the various types of recipes (as long as the packaging
branch option is optional). As long as we always enable the text area
at the end so power users can add custom merge directives etc., we
should be able to cover the most common use-cases without exposing the
recipe?

I'll have a play with other layouts (after thinking more about James' points).

 - I'm not sure if start build is the right wording, as it may take
 hours to build  :)  Maybe just Build?

I've updated this as well.

 - When you expand the recipe, it seems as though you can edit it right
 there. There's may be some confusion involved in whether you're just
 editing it for that build, or editing the recipe all together

Sorry, that's my laziness in not creating a separate mockup. There was
never any intention that you would edit recipes on this form, only use
current recipes, or create a new recipe (as the focus is on building
the branch). I've updated the mockup to display three states
(collapsed, expanded to see recipe details, after clicking create new
recipe).

 - I'm 

Re: [Launchpad-dev] RFC on build from branch UI

2010-02-03 Thread Michael Nelson
On Tue, Feb 2, 2010 at 8:52 PM, James Westby jw+deb...@jameswestby.net wrote:
 On Tue, 2 Feb 2010 11:01:49 +0100, Michael Nelson 
 michael.nel...@canonical.com wrote:
 Hi all,

 I've been putting together some mockups for the build-from-branch UI
 work (with the help of jml, wgrant and mwhudson), and would love to
 hear ideas on how they could be improved or re-worked etc.

 You can see the details at:

 https://dev.launchpad.net/BuildBranchToArchiveUI

 Thanks for working on this Michael, it's great to be able to review it
 as a whole at this time, rather than making comments as the changes
 arrive.

It's a pleasure... and it's great finding lots of issues before any UI
code has been written too :), so thanks for all your input!


 I have some comments that are quite fundamental, but let me say first
 that I like the design for interaction, and I'm confident that whatever
 you end up going with will be a pleasure to use.

 The main point that underlies all my comemnts is that your focus is on
 building a branch using a recipe, rather than building a recipe.

Yes, definitely. I had thought that the recipe is just a means to the
user goal of building a branch. Sorry, I wasn't trying to minimise
their importance or flexibility, but rather ensure that the desire I
want to build this branch stays in focus.


 I think that it is important to have something on a branch page to get
 started, but I'm not sure that driving everything from the point of view
 of the branch is the right thing to do.

Yes, I agree that the (base?) branch shoudn't be the starting point
for every recipe-related action, but I'm not sure if I'm understanding
all of what you're saying. For example, there are urls along the lines
of (from the wiki page):

(code?) ~owner/distro/distroseries/sourcepackagename/recipename
(code?) ~owner/+recipes: all recipes owned/created by a person

as points for viewing/editing and dealing with recipes directly.

 For instance, I might go to the
 branch page for the packaging branch, and want to do a build from there,

Why wouldn't this be possible? Given that if you click Build this
branch (or whatever it'll be), the overlay will allow you to select
the recipe you want (ie. including those recipes that just refer to
this branch).

 but for daily builds that won't be the base branch.

Yes, so if, from the packaging branch, you click on Build this
branch and non of the available recipes meet your requirements, so
you need to create a new recipe - then if you do want a base-branch
different from the current one you're stuck at this point (with the
current design, as the base-branch is non-editable).

So I talked with jml about this the other day when thinking through
the workflow, and from memory there were three thoughts:

1. The base-branch seems like the logical place to build your
base-branch (and specifying the packaging branch from there). That's
not to say it is the only way, just the most natural way for the 90%
case. Do you have other thoughts?
2. we couldn't see how we could have a consistent UI if users
specified the base-branch (as you could create a recipe that has
nothing to do with the current branch at all. [1])
3. The case where it *does* make sense to initiate the recipe creation
from a packaging branch is when the packaging branch contains the
source already, and hence it is the base_branch (ie. no other merges
required to have both the debian directory and the source code
toghether). I guess you are saying that there are other cases?

[1] That's not to say that the base-branch shouldn't be editable when
you edit the recipe itself, as the recipe's traversal is not
restricted by the branch:
~owner/distro/distroseries/sourcepackagename/recipename/+edit

Given that you understand the workflows much better than anyone, I'd
be keen to have a call sometime to clarify the above :)


 If I were to make a suggestion it may be for the following:

  * A branch page has a list of recipes that mention the branch, and
    a link to add a new one.

This is exactly what's displayed in the overlay isn't it (or the
non-js version)? It would be difficult to display this information
(the recipes) on the branch page itself, as there is no single bit of
the recipe that helps users identify whether it's the one they're
after. You'd need the recipe name, owner, (distroseries?), at the very
least (hence that's what's displayed in the overlay dropdown, but even
then you might need more information (revnos, packaging branch etc.),
which is why the overlay displays that in-line.

  * You can navigate to the +recipe page from there, and from there
    there is a build this button, which launches the archive picker.

So as mentioned that navigation step would only be necessary if the
recipe details were not present on the page where you select the
recipe (ie. if you just listed the recipe names (?) on the branch page
as you mentioned). But this would potentially be a lot of
back-and-forward to find the recipe that suites 

Re: [Launchpad-dev] RFC on build from branch UI

2010-02-03 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Nelson wrote:
 The main point that underlies all my comemnts is that your focus is on
 building a branch using a recipe, rather than building a recipe.
 
 Yes, definitely. I had thought that the recipe is just a means to the
 user goal of building a branch. Sorry, I wasn't trying to minimise
 their importance or flexibility, but rather ensure that the desire I
 want to build this branch stays in focus.

So are we sure that building from a recipe should be a user-level thing
at all?

It seems like a major use case will be build this branch using this
packaging branch.  If we had a UI that just provided that, what
percentage of our users would still need more?

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

iEYEARECAAYFAktp43gACgkQ0F+nu1YWqI3+hACeKYDmTyGfBPDYhQ6qIlqKnNTh
rqwAmwdrqIljcYoZJ3YFAgyRr5JG9jez
=6dMY
-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] RFC on build from branch UI

2010-02-03 Thread James Westby
On Wed, 3 Feb 2010 16:12:10 +0100, Michael Nelson 
michael.nel...@canonical.com wrote:
  I have some comments that are quite fundamental, but let me say first
  that I like the design for interaction, and I'm confident that whatever
  you end up going with will be a pleasure to use.
 
  The main point that underlies all my comemnts is that your focus is on
  building a branch using a recipe, rather than building a recipe.
 
 Yes, definitely. I had thought that the recipe is just a means to the
 user goal of building a branch. Sorry, I wasn't trying to minimise
 their importance or flexibility, but rather ensure that the desire I
 want to build this branch stays in focus.

I agree that is an important aim.

 Why wouldn't this be possible? Given that if you click Build this
 branch (or whatever it'll be), the overlay will allow you to select
 the recipe you want (ie. including those recipes that just refer to
 this branch).

That wasn't clear, sorry. I think the base branch being immutable in the
overlay indicated to me that it was all that would be offered.

  but for daily builds that won't be the base branch.
 
 Yes, so if, from the packaging branch, you click on Build this
 branch and non of the available recipes meet your requirements, so
 you need to create a new recipe - then if you do want a base-branch
 different from the current one you're stuck at this point (with the
 current design, as the base-branch is non-editable).
 
 So I talked with jml about this the other day when thinking through
 the workflow, and from memory there were three thoughts:
 
 1. The base-branch seems like the logical place to build your
 base-branch (and specifying the packaging branch from there). That's
 not to say it is the only way, just the most natural way for the 90%
 case. Do you have other thoughts?

I think it may be skewed as I am an Ubuntu developer, but I don't think
packaging branches will just be implementation details.

For instance, you may decide you want to set up a daily build for a new
project, which isn't packaged yet. To do this you branch, create the
packaging and push it. They you may go to the packaging branch as that
was just what you were working with.

I'm not sure it's a good enough argument that it should change your
approach, but perhaps something like giving them a message if they
choose daily build while on a package branch.

 2. we couldn't see how we could have a consistent UI if users
 specified the base-branch (as you could create a recipe that has
 nothing to do with the current branch at all. [1])
 3. The case where it *does* make sense to initiate the recipe creation
 from a packaging branch is when the packaging branch contains the
 source already, and hence it is the base_branch (ie. no other merges
 required to have both the debian directory and the source code
 toghether). I guess you are saying that there are other cases?

Well, creating a recipe from a packaging branch is how you will build a
package in a non-daily fashion, so that has to be supported, but it will
be the base branch in that case.

 Given that you understand the workflows much better than anyone, I'd
 be keen to have a call sometime to clarify the above :)

I'd be happy to do that. Next week is probably better as I guess we will
be in closer timezones again.

 This is exactly what's displayed in the overlay isn't it (or the
 non-js version)? It would be difficult to display this information
 (the recipes) on the branch page itself, as there is no single bit of
 the recipe that helps users identify whether it's the one they're
 after. You'd need the recipe name, owner, (distroseries?), at the very
 least (hence that's what's displayed in the overlay dropdown, but even
 then you might need more information (revnos, packaging branch etc.),
 which is why the overlay displays that in-line.

Makes sense.

[ snip more convincing comments ]

  Some further unstructured comments:
 
   When viewing a source package recipe build within their PPA, users
   can: easily go to the recipe that was used and from there to the
   branches. They should also be able to go to the manifest and so see
   the revisions that were used. I'm keen for these links to be more
   common in Launchpad, from e.g. bugs to the revisions that fix them
   etc. Being able to go binary package-source package-manifest-
   branches will be useful.
 
 Yes, that's great. I've updated the wiki with:
 When viewing a source package recipe build within their PPA, users can:
 ...
  * View the manifest (and from there the related branches and recipe)
 
 Although it'd be worth a link from the manifest to the recipe, I
 wouldn't link directly to the recipe as it could be very confusing if
 the recipe has been edited since?

Good point.

 Yes, the mockup wasn't meant to communicate that it was editable (just
 that you could create a new recipe) - my mistake. I've updated it to
 show the non-editable recipe selection/display. See what you think.

Looks great.

 

Re: [Launchpad-dev] RFC on build from branch UI

2010-02-03 Thread Aaron Bentley
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Dmitrijs Ledkovs wrote:
 On 3 February 2010 20:58, Aaron Bentley aa...@canonical.com
 So are we sure that building from a recipe should be a user-level thing
 at all?

 It seems like a major use case will be build this branch using this
 packaging branch.  If we had a UI that just provided that, what
 percentage of our users would still need more?

 IMHO it would be 50/50 split cause I'm still thinking in terms of
 packaging branch as the starting point and which branches do I want to
 build using it.

I am contrasting a UI that speaks in terms of branches and package
branches with a UI that speaks in terms of recipes.  I think that it's
more intuitive to talk about the branches, and that providing recipes in
the UI may be overkill, but I could be wrong and I want feedback.

It sounds like you're saying that you'd like a UI on the packaging
branch that lets you build other branches using it, instead of doing
that from the individual branches.  That's valid, but it answers a
question I didn't mean to ask.

 For example as an upstream project maintainer I will
 strive to minimize amount of packaging branches / recipes cause that's
 not usually upstream expertise. So I would have one packaging branch
 possibly pinched of ubuntu and then I will go to it and start thinking
 which of my project branches I want to build eg. stable release,
 supported release and this wacky hack I'm working on.

None of this requires recipes to be exposed to users.  Since, as
currently formulated, recipes specify their base branch, you would need
a different recipe for stable, supported, and wacky hack.

 And ooops hardy
 has different lib sonames so i need to use this other packaging branch
 cause it has build time patch.

As described, this doesn't need user-level recipes either, but another
approach might.  Instead of having a different packaging branch with the
build-time patch, you could have a branch with just the build-time
patch.  That would be a reason to use the full power of recipes.

 This feature will be a popular both from Ubuntu development side and
 the upstream projects using launchpad for project management, QA /
 ubuntu experience enhancement.

Note that this feature only builds native packages at the moment, so it
will not be suitable for building packages for the main archive until
that changes.

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

iEYEARECAAYFAktp7WEACgkQ0F+nu1YWqI2NaQCbBAcpZHcB7ticB/dhAySD3/rS
AoYAn1eILuW9ahLaWPosUcRYHuuNHLEf
=cno3
-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


[Launchpad-dev] RFC on build from branch UI

2010-02-02 Thread Michael Nelson
Hi all,

I've been putting together some mockups for the build-from-branch UI
work (with the help of jml, wgrant and mwhudson), and would love to
hear ideas on how they could be improved or re-worked etc.

You can see the details at:

https://dev.launchpad.net/BuildBranchToArchiveUI

The Balsamiq mockups are all available in a branch if you have some
inspiration too :) (linked on the page). And there is a list of
questions at the bottom of the page that may answer initial thoughts.

Thanks in adavance,
-Michael

BTW: Working through the UI workflow with the current schema/code
brought up a few bugs that we'll need to work on (or clarify as
invalid), so if you think you might be able to clarify them:

= Our current schema doesn't support scheduling of builds (ie. daily builds) =
https://bugs.edge.launchpad.net/launchpad-code/+bug/515923

= We're not passing the recipe's source package name or suite through
to dailydeb =
https://bugs.edge.launchpad.net/soyuz/+bug/515918

= Recipe has sourcepackagename before upload =
This one might be invalid - I just wasn't sure why we're not using the
normal process of processing an upload to create a SPN (rather than
potentially creating the SPN record for the recipe).
https://bugs.edge.launchpad.net/launchpad-code/+bug/515581

___
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] RFC on build from branch UI

2010-02-02 Thread Martin Albisetti
On Tue, Feb 2, 2010 at 10:01 AM, Michael Nelson
michael.nel...@canonical.com wrote:
 You can see the details at:

 https://dev.launchpad.net/BuildBranchToArchiveUI

Hi Michael, this looks great. I've gone through the document and have
a few questions to raise.


General impressions:
- In target user audiences, I wonder why you left out Project
maintainers. It seemed like one of the primary users for this. I'm
also a bit confused as to whether the target audience is for people
who will use the feature (the ones who will interact with the UI) or
people who will benefit from this feature (this would just be people
installing PPAs)
- Reading through this document ah brought back the itching need to
link PPAs to projects. Many things would be much easier!
- It seems to me from the UI, that I won't be able to easily say
build this every day in Lucid, Karmic, Jaunty and Hardy. I feel
that's the way many people are using it today

Manual build of the latest branch revision:
- I understand it as as a one-off action, I think we should show what
specific revision you're building, and maybe a link to it
- I wonder why the packaging branch isn't something you can search for
and change. IIRC, there are some advanced use cases where you use more
voodoo, but the common case would be marvelously simple if you would
just select a packaging branch to create a recipe
- I'm not sure if start build is the right wording, as it may take
hours to build  :)  Maybe just Build?
- When you expand the recipe, it seems as though you can edit it right
there. There's may be some confusion involved in whether you're just
editing it for that build, or editing the recipe all together
- I'm not sure what the # bzr-builder... text is above the textarea
- The Need help creating a recipe? link would probably be useful in
the unexpanded area
- What's the UI for when I want to build but there are no recipes?  I
imagined that will be the first experience for everybody, so we should
really nail that

Daily builds:
- I wonder if we could use a drop down instead of an expander with
options like Build revision XXX and Build daily


Phew, sorry it got long. I wanted to give a quick turnaround.


cheers,
-- 
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