← Back to team overview

launchpad-dev team mailing list archive

Re: UI RFD: branches that haven't been pushed to

 

On 2010-04-20 18:05, Jonathan Lange wrote:

Jono, thanks for showing us more of the breadth of this problem beyond my own very limited research.

People not familiar with distributed version control fail to
figure out how to start a branch.  Project owners set up translations
exports to nonexistent branches.
I am familiar with DVCS and I think I'd be tripped up by this one. Why
doesn't the translations exporter create a new branch?
Because there are choices to be made that we probably don't fully 
understand ourselves.  Does the user have the right branch sitting 
around somewhere that we don't know about?  What if they push it just as 
we try to create it?  What if they want to use the branch for merging 
with their development branch?  What if that's not the one selected in 
Launchpad for whatever reason (e.g. because that's a mirror of a bzr 
branch hosted elsewhere)?  Do they have any restrictions on versions and 
formats, e.g. because they are running stable OSs for a long time?
We did ask the bzr folks and were assured that creating an empty branch 
would not be the right thing to do.  The suggestion was not to offer 
unpushed branches for selection, but on reflection I think that would 
just be moving the hamster around under the carpet.  Why your branch 
doesn't show up in the selector would be highly nonobvious.
I now see this also came up in the discussion for bug 368312, which you 
pointed to.

  "Configure a series branch" on a product
series can appear to do nothing, with no next steps becoming obvious (bug
567065).
Looking at the bug, I think that's a different problem too.
Definitely.  See the "without absolving" clause.  The point is that it 
is related, and a fix for 567065 would benefit further from the other 
changes.

1. For branches that have had no changes scanned yet, lots of places that
link to them could benefit from a standardized warning icon and tooltip, or
even a full paragraph.  Maybe even all places.

Not quite what you describe, but see:
  https://bugs.edge.launchpad.net/launchpad-code/+bug/368312
  https://bugs.edge.launchpad.net/launchpad-code/+bug/320065
The latter is very close, though I think it would be unwise to show any 
further detail in the link.  For one, it's probably costly to look up 
the actual state of the codehosting server (and both error-prone and 
slow to cache it in the db).  For another, it can be hard to maintain 
brief and verbose descriptions of roughly the same set of states in 
parallel.  The two start conspiring against you when the set of 
conditions you're willing to check while rendering the bug page diverges 
from the ones you're willing to check for each branch link in, say, a 
listing of 300.
On the other hand, if you can just draw attention to the problem, the 
link to diagnostic details is right there.
Marking links to broken branches may look ugly at first, but many people 
will catch on to the fact that they can make the icons go away, and 
we'll all be happier for it.  It may even get us some user feedback 
about problems we didn't know existed.

The branch page should definitely be better in this regard. The code
team are working this week to reduce a significant part of the latency
between pushing and appearing in the web ui.
I wasn't aware that was a problem, except in one specific case we happen 
to care a lot about.  But the faster this happens I guess, the less 
confusion a few warning icons will cause.

Before a link to help will help, Launchpad needs to be more honest
about the state of the branch. See
That's a wording issue, but one we'd do well to figure out before 
sprinkling the wording all over the UI.
How about this?  "Launchpad has not processed any revisions for this 
branch yet.  Processing may take a few minutes after the branch has been 
pushed."

https://bugs.edge.launchpad.net/launchpad-code/+bug/445424. We should
also have an ajax widget that updates when the branch is ready, rather
than the embarrassing "please refresh" thing we have now (same goes
for MP diffs).
Sidenote: polling by the client is a known performance risk with Ajax.

On the other hand the need may be less pressing when users can see the link change its appearance in the course of normal Launchpad usage.

Jeroen



Follow ups

References