Page MenuHomePhabricator

Swap Repository Edit UI to new code
ClosedPublic

Authored by epriestley on May 3 2016, 10:44 PM.
Tags
None
Referenced Files
F14059427: D15842.diff
Sun, Nov 17, 7:37 PM
F14048180: D15842.id.diff
Thu, Nov 14, 6:59 AM
F14047274: D15842.id38156.diff
Thu, Nov 14, 3:16 AM
F14045889: D15842.id38161.diff
Wed, Nov 13, 3:44 PM
F14045244: D15842.id38161.diff
Wed, Nov 13, 2:25 AM
F14037023: D15842.diff
Sun, Nov 10, 1:27 PM
F14026899: D15842.id38161.diff
Fri, Nov 8, 3:29 AM
F14021992: D15842.diff
Wed, Nov 6, 2:17 PM
Subscribers
None

Details

Summary

Ref T10748. This needs more extensive testing and is sure to have some rough edges, but seems to basically work so far.

Throwing this up so I can work through it more deliberately and make notes.

Test Plan
  • Ran migration.
  • Used bin/repository list to list existing repositories.
  • Used bin/repository update <repository> to update various repositories.
  • Updated a migrated, hosted Git repository.
  • Updated a migrated, observed Git repository.
  • Converted an observed repository into a hosted repository by toggling the I/O mode of the URI.
  • Conveted a hosted repository into an observed repository by toggling it back.
  • Created and activated a new empty hosted Git repository.
  • Created and activated an observed Git repository.
  • Updated a mirrored repository.
  • Cloned and pushed over HTTP.
  • Tried to HTTP push a read-only repository.
  • Cloned and pushed over SSH.
  • Tried to SSH push a read-only repository.
  • Updated several Mercurial repositories.
  • Updated several Subversion repositories.
  • Created and edited repositories via the API.

Diff Detail

Repository
rP Phabricator
Branch
repo28
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 12036
Build 15152: Run Core Tests
Build 15151: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Swap Repository Edit UI to new code.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
  • Also drop support for obsolete/ancient transactions:
TYPE_CREDENTIAL
TYPE_SSH_LOGIN
TYPE_SSH_KEY
TYPE_SSH_KEYFILE
TYPE_HTTP_LOGIN
TYPE_HTTP_PASS
TYPE_LOCAL_PATH
TYPE_HOSTING
chad edited edge metadata.
This revision is now accepted and ready to land.May 4 2016, 1:36 PM

I'm planning to run through this this morning in greater detail and see what else I can catch, then deploy it to secure and see how much stuff catches on fire. If it feels iffy I'll probably skip promoting this week, since these changes are broad and high-impact for almost all users and the amount of affected surface area is huge.

The major weaknesses I'm aware of are:

Repository Creation Walkthrough: When you create a new repository, you currently get dumped pretty unceremoniously on the manage screen with the repository inactive. There's no hinting about what to do next. What this UI should say is:

  • Activate the repository to host it.
  • Add an observe URI, then activate the repository to observe changes elsewhere.
  • Here's documentation on this.
  • etc etc.

Basically, the "go through 5 pages of options" flow has been replaced with "1.5 pages > inactive repository > configure whatever else you want > activate repository".

Supporting Instructions: The old interfaces had a lot of support instructions which I haven't brought over yet. Most of these aren't critical, some of them are out of date, and bringing them over gives me another chance to run through everything, so I'm planning to do this later on.

epriestley edited edge metadata.
  • Minor fix for URI editing.
  • Minor fix for hosted/served URI options.
  • Typo fix for hosted clone URIs.
  • Don't serve inactive repositories.
  • Fix an issue with serializing effective remote URIs after a URI edit.
  • Fix a missing needURIs() in repository update code.
  • Fix a couple of minor issues with serving HTTP.
epriestley edited the test plan for this revision. (Show Details)
  • Fix an issue where form pages could incorrectly apply to the API, giving you a paginated API call which made zero sense.

Okay, time to ruin everything.

shipitquick

This revision was automatically updated to reflect the committed changes.

This is deployed on secure with only one minor hiccup (deploying it prevented the deployment process from finishing because it deployed before it applied the migration) which won't affect other installs. Nothing appears immediately broken.