launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #00438
Re: Branch page 3.0
On Sat, 15 Aug 2009 09:43:31 Martin Albisetti wrote:
> Hi,
>
> I've been working on a mockup for the branch index page for 3.0.
>
> The mockup is here: http://people.canonical.com/~beuno/branch-index.png
>
> I had a few things in mind when I did this:
>
> - Deleting a branch was... weird. Elliot Murphy has a long-standing
> bug about this
> - Proposing for merge is the main action for that page, and the
> current display is very noisy
> - Portlets where too busy as well
> - Needed 3.0ization
>
> There's a few things missing here:
> - How to get to the "source code" (loggerhead)
> - Where to display the technical babel (branch/repository formats,
> stacked on). This needs to be moved out of the way, as the current
> information is not human-understandable, and is rarely something users
> are interested in
> - Bugs and blueprint linking
> - Displaying the recent revisions
>
>
> Comments are welcome, expected and needed :)
Warning! This gets long, and rambles a bit.
Here are some other things that are missing too :-)
The description of the branch. This was recently added back in. It does use
the icky (IMO) field set border around the description. I really don't like
that. Bugs don't use this for their description, and I'd really not like to
see it on the main code-review page when we add a description to that instead
of the first comment.
Import branches have an area where we list the source of the import branch,
and a list of the most recent attempts. Other import branch only links or
buttons are there too. For import branches, this is pretty important
information.
Mirrored branches have additional meta-data about when they were last
mirrored, and when they'll next be mirrored. This could perhaps go down in
the metadata area that also contains the branch format information.
Personally I think that the metadata isn't that interesting most of the time,
so it wouldn't bother me at all to have this further down the page so you'd
have to scroll to see it most of the time.
I think the commands for updating the branch and getting the branch are also
not that interesting most of the time. It is useful when you don't know
anything about launchpad, but once you do it is just noise.
Before I get into my next rant, let me tell you what I do like:
* I like that you have broken out the branch name, and use it in the
breadcrumbs. Does it bother you that there may be two different branches that
have the same breadcrumbs?
* I like the "Delete this branch" link on the RHS
* I like the clean new look at the top of the page
Part of the problem about designing a one page fits all type branch page is
that there are currently three different types of branches with two more
potential types of branches in the wings. Each of these different types of
branches has different information that is interesting.
Perhaps... perhaps we have different layouts based on the different types of
branches.
Firstly we have trunk branches, or focuses of development. Most projects use
branches that are linked to series for this. Launchpad links the branches to
special series called "edge", "staging", "devel". Part of this is to get
handy "short-hand" branch identities, and despite our "db_devel" branch being
"trunk", most branches actually target the lp:launchpad/devel branch, as that
is what ends up on edge. There are other projects have have several unrelated
branches, each of which can be targetted for development, but for whatever
reasons the project owner wants to keep them together in the one project.
Right now, linking these branches to ProductSeries is the only way to mark
them as "special".
Trunk branches are interesting because these branches are the ones that users
often want to "get", and "see the source" of. These are the branches that we
may want to render the README file nicely on the page, and to be have links to
set the "Review team" for. These branches will most likely have many
subscribers, and will be the target for many merge proposals.
Feature branches are quite different. As Barry and Martin have mentioned, it
is very desirable to see what changes the branch has introduced as soon as
possible when going to the branch page. Also the most important things for
features branches are the bugs being fixed, blueprints being implemented, and
the status of the code review. I have been thinking that perhaps we'd even
want to show the review status table on the branch page itself (the pending
and completed reviews) when the branch is in review state. The only reason
right now that I don't suggest moving all of the code review content on to the
branch page itself is that we allow the same branch to be proposed to multiple
targets at one time. Perhaps this flexibility is actually hurting us more than
it is helping, and by constraining a branch to only having one review, we gain
the ability to make the branch page more useful for the reviews. (This is
getting quite radical in its shift from the current implementation).
Next we have package branches. Some of the package branches are the official
package branches that have been used to build the official packages. Others
will be users package branches used to build packages in PPAs. I can foresee
that we'll want to show some form of build history on branches that have been
build.
The other two types of branches are wikis and documentation, too far out in
the implementation plan to worry about here. We have enough to worry about.
I guess the first question we need to ask ourselves is:
"Are we designing a single branch page that nicely shows all possible
branches?"
If we are, this gets harder. Hard but not impossible. There are certainly
sections of the page that will make sense in one part, but not in another.
The review team (I removed the "default" some commits ago - not on edge yet
though) is almost certainly only different to the owner on "special" branches
that are linked to a series. Why show this option to users on a feature
branch when they are almost certainly never going to click on it, nor do they
care. The default reviewer that is shown on the mock up confused me. Who is
it the default reviewer for?
Diffs... diffs are interesting.
Merge proposals have a status called "Work in progress". This was a hang over
from the old workflow that the launchpad developers used. The intention was
always to have diffs generated somehow for these. I think we could work out
some way to have a work-in-progress proposal created with the branch (not
sending out any email notifications), and allow the user to change the target
without penalty. Perhaps we could try something smart in the scanner to look
at the active series linked to branches and choose the closest target (magic
is good when it works). Anyway... one plan we have right now is to update the
diffs when the user updates the source branch (updates on target pushes
wouldn't be done by Launchpad - but could be updated by a user with a lp:mad
like script) - and if we had the one proposal constraint, we could make this
diff available on the branch pages itself.
Anyway, I'm pretty much done now.
Comments?
Tim
Follow ups
References