Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on May 22, 2015
  1. @joshuaspence

    phtize all the things

    joshuaspence authored
    Summary: `pht`ize a whole bunch of strings in rP.
    
    Test Plan: Intense eyeballing.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: hach-que, Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D12797
Commits on May 18, 2015
  1. @joshuaspence

    Change "lint save" to not use Arcanist Projects

    joshuaspence authored
    Summary: Ref T7604. Change `DiffusionLintSaveRunner` to use repositories instead of Arcanist Projects.
    
    Test Plan: Ran the `save_lint.php` script and queried results using the `diffusion.getlintmessages` Conduit endpoint.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T7604
    
    Differential Revision: https://secure.phabricator.com/D12893
Commits on May 5, 2015
  1. @joshuaspence

    Use phutil_json_decode instead of json_decode

    joshuaspence authored
    Summary: Generally, `phutil_json_decode` should be preferred over `json_decode`.
    
    Test Plan: Eyellballed.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D12680
Commits on May 4, 2015
  1. @joshuaspence

    Fix a few issues with the "import symbols" script

    joshuaspence authored
    Summary: Ref T7977. Fix a few issues that I forgot to fix up.
    
    Test Plan: Run the script.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T7977
    
    Differential Revision: https://secure.phabricator.com/D12668
Commits on May 3, 2015
  1. @joshuaspence

    Move symbols to be repository-based

    joshuaspence authored
    Summary: Fixes T7220. Ref T7977. Changes symbols from being bound to an Arcanist project to being bound to a repository.
    
    Test Plan:
    - Added symbols and then applied migrations, symbols seemed to be migrated successfully.
    - Tested the `/diffusion/symbol/$SYMBOL_NAME` endpoint.
    - Tested the `/diffusion/symbol/$SYMBOL_NAME` endpoint with the `?repositories=$REPOSITORY_PHID` parameter.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: avivey, Korvin, epriestley
    
    Maniphest Tasks: T7977, T7220
    
    Differential Revision: https://secure.phabricator.com/D12608
Commits on Apr 2, 2015
  1. @epriestley

    Make file policies for emailed files more consistent

    epriestley authored
    Summary:
    Fixes T7712. Currently, files sent via email get default policies, like they were dragged and dropped onto the home page.
    
    User expectation is better aligned with giving files more restrictive policies, like they were draggged and dropped directly onto an object.
    
    Make files sent via email have restricted default visibility. Once we identify the sender, set them as the file author. Later, the file will become visible to other users via attachment to a task, revision, etc.
    
    Test Plan: Sent some files via email; verified they got restrictive policies, correct authorship, and appropriate object attachment.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7712
    
    Differential Revision: https://secure.phabricator.com/D12255
Commits on Feb 24, 2015
  1. @epriestley

    Pass overseer configuration over stdin

    epriestley authored
    Summary:
    Ref T7352. This changes `phd` to pass configuration to overseers over stdin. We still run one overseer per daemon.
    
    The "status" stuff needs some cleanup, but it's mostly just UI/cosmetic.
    
    Test Plan:
      - Ran `phd debug`, `phd launch`, `phd start`, `phd status`, `phd stop`, etc.
      - Verified PID files write in a reasonable format.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7352
    
    Differential Revision: https://secure.phabricator.com/D11855
Commits on Feb 18, 2015
  1. @epriestley

    Allow a different SSH host to be set in Diffusion

    epriestley authored
    Summary:
    Ref T6941. In the cluster (and in other reasonable setups) we've separated SSH load balancers from HTTP load balancers.
    
    In particular, ELBs will not let you load balance port 22, so this is likely a reasonable/common issue in larger clusters in AWS.
    
    Allow users to specify an alternate host for SSH traffic.
    
    Test Plan: Set host to someting different, saw it reflected in UI.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T6941
    
    Differential Revision: https://secure.phabricator.com/D11800
Commits on Feb 3, 2015
  1. @epriestley

    Remove TERM=dumb, which is causing difficult-to-reproduce hangs

    epriestley authored
    Summary:
    Ref T7119. Three users have now reported that this causes their systems to hang, so it's looking like the cure is worse than the disease.
    
    Revert this until we can eventually reproduce and understand the hang.
    
    Test Plan: Users running into issues have reported that this resolves things.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7119
    
    Differential Revision: https://secure.phabricator.com/D11644
Commits on Feb 2, 2015
  1. @joshuaspence

    Use `PhutilXHPASTBinary` methods

    joshuaspence authored
    Summary: Use `PhutilXHPASTBinary` methods instead of `xhpast_parse` functions. Depends on D11517.
    
    Test Plan: N/A, this is a direct swap.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11612
Commits on Jan 30, 2015
  1. @epriestley

    Add some of a billing daemon skeleton

    epriestley authored
    Summary:
    Ref T6881. This adds the worker, and a script to make it easier to test. It doesn't actually invoice anything.
    
    I'm intentionally allowing the script to double-bill since it makes testing way easier (by letting you bill the same period over and over again), and provides a tool for recovery if billing screws up.
    
    (This diff isn't very interesting, just trying to avoid a 5K-line diff at the end.)
    
    Test Plan: Used `bin/phortune invoice ...` to get the worker to print out some date ranges which it would theoretically invoice.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T6881
    
    Differential Revision: https://secure.phabricator.com/D11577
Commits on Jan 28, 2015
  1. @epriestley

    Proxy VCS SSH requests

    epriestley authored
    Summary: Fixes T7034. Like HTTP, proxy requests to the correct host if a repository has an Almanac service host.
    
    Test Plan: Ran VCS requests through the proxy.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7034
    
    Differential Revision: https://secure.phabricator.com/D11543
  2. @epriestley

    Prepare SSH connections for proxying

    epriestley authored
    Summary:
    Ref T7034.
    
    In a cluster environment, when a user connects with a VCS request over SSH (like `git pull`), the receiving server may need to proxy it to a server which can actually satisfy the request.
    
    In order to proxy the request, we need to know which repository the user is interested in accessing.
    
    Split the SSH workflow into two steps:
    
      # First, identify the repository.
      # Then, execute the operation.
    
    In the future, this will allow us to put a possible "proxy the whole thing somewhere else" step in the middle, mirroring the behavior of Conduit.
    
    This is trivially easy in `git` and `hg`. Both identify the repository on the commmand line.
    
    This is fiendishly complex in `svn`, for the same reasons that hosting SVN was hard in the first place. Specifically:
    
      - The client doesn't tell us what it's after.
      - To get it to tell us, we have to send it a server capabilities string //first//.
      - We can't just start an `svnserve` process and read the repository out after a little while, because we may need to proxy the request once we figure out the repository.
      - We can't consume the client protocol frame that tells us what the client wants, because when we start the real server request it won't know what the client is after if it never receives that frame.
      - On the other hand, we must consume the second copy of the server protocol frame that would be sent to the client, or they'll get two "HELLO" messages and not know what to do.
    
    The approach here is straightforward, but the implementation is not trivial. Roughly:
    
      - Start `svnserve`, read the "hello" frame from it.
      - Kill `svnserve`.
      - Send the "hello" to the client.
      - Wait for the client to send us "I want repository X".
      - Save the message it sent us in the "peekBuffer".
      - Return "this is a request for repository X", so we can proxy it.
    
    Then, to continue the request:
    
      - Start the real `svnserve`.
      - Read the "hello" frame from it and throw it away.
      - Write the data in the "peekBuffer" to it, as though we'd just received it from the client.
      - State of the world is normal again, so we can continue.
    
    Also fixed some other issues:
    
      - SVN could choke if `repository.default-local-path` contained extra slashes.
      - PHP might emit some complaints when executing the commit hook; silence those.
    
    Test Plan: Pushed and pulled repositories in SVN, Mercurial and Git.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7034
    
    Differential Revision: https://secure.phabricator.com/D11541
  3. @epriestley

    Pass cluster.instance to ssh-exec if it is defined

    epriestley authored
    Summary: Ref T7034. This is a second special case, like commit hooks, where we need some help from Phabricator to make instance identity knowable.
    
    Test Plan: Connected to an instance and ran SSH commands.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7034
    
    Differential Revision: https://secure.phabricator.com/D11539
Commits on Jan 27, 2015
  1. @epriestley

    Promote instance identity to the upstream and pass it to commit hooks

    epriestley authored
    Summary:
    Fixes T7019. In a cluster environment, pushes currently fail because the commit hook can't identify the instance.
    
    For web processes, the hostname identifies the instance -- but we don't have a hostname in the hook.
    
    For CLI processes, the environment identifies the instance -- but we don't have an environment in the hook under SVN.
    
    Promote the instance identifier into the upstream and pack/unpack it explicitly for hooks. This is probably not useful for anyone but us, but the amount of special-purpose code we're introducing is very small.
    
    I poked at trying to do this in a more general way, but:
    
      - We MUST know this BEFORE we run code, so the normal subclassing stuff is useless.
      - I couldn't come up with any other parameter which might ever be useful to pass in.
    
    Test Plan: Used `git push` to push code through proxied HTTP, got a clean push.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7019
    
    Differential Revision: https://secure.phabricator.com/D11495
  2. @chadlittle

    Delete app icons

    chadlittle authored
    Summary: Unused at this point
    
    Test Plan: Grep
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: hach-que, Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11506
Commits on Jan 25, 2015
  1. @chadlittle

    Remove 1x AppIcons, use FontIcons instead

    chadlittle authored
    Summary: Removes the 1x application icons, and uses the fonticons instead. Feed was only known location.
    
    Test Plan:
    feed, dashboards, grep for use
    
    {F275636}
    
    Reviewers: btrahan, epriestley
    
    Reviewed By: epriestley
    
    Subscribers: hach-que, Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11496
Commits on Jan 20, 2015
  1. @epriestley

    Add bin/trigger, for testing event triggers

    epriestley authored
    Summary:
    Ref T6881. This makes it easier to fire a trigger and make sure it works properly. You can use the `--now` flag to travel through time, and test scheduling conditions with `--last` and `--next`. It will tell you when the trigger would reschedule.
    
    Better than waiting 24 hours to see if things work.
    
    Test Plan: Fired some backups, got useful output which made me think my code probably works correctly.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T6881
    
    Differential Revision: https://secure.phabricator.com/D11438
Commits on Jan 6, 2015
  1. @bobtrahan

    Repositories - Move scripts/repository/reparse.php to bin/repository …

    bobtrahan authored
    …reparse
    
    Summary:
    Fixes T5966. Accomplishes a few things
    
     - see title
     - adds a force-autoclose flag and the plumbing for it
     - removes references to some HarborMaster thing that used to key off commits and seems long dead, but forgotten :/
    
    Test Plan:
    ran a few commands. These first three had great success:
    
    `./repository reparse --all FIRSTREPO --message --change  --herald --owners`
    `./repository reparse --all FIRSTREPO --message --change  --herald --owners --min-date yesterday`
    `./repository reparse --all FIRSTREPO --message --change  --herald --owners --min-date yesterday --force-autoclose`
    
    ...and these next two showed me some errors as expected:
    
    `./repository reparse --all FIRSTREPO --message --change  --herald --owners --min-date garbagedata`
    `./repository reparse --all GARBAGEREPO --message --change  --herald --owners`
    
    Also, made a diff in a repository with autoclose disabled and commited the diff. Later, reparse the diff with force-autoclose. Verified the diff closed and that the reason "why" had the proper message text.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: joshuaspence, epriestley, Korvin
    
    Maniphest Tasks: T5966
    
    Differential Revision: https://secure.phabricator.com/D10492
Commits on Jan 4, 2015
  1. @joshuaspence

    Correctly pass worker priority from reparse script

    joshuaspence authored
    Summary: D11044 broke the `./scripts/repository/reparse.php` script.
    
    Test Plan: `./scripts/repository/reparse.php --message --all X`
    
    Reviewers: btrahan, #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11211
Commits on Dec 30, 2014
  1. @joshuaspence

    Use `new FutureIterator` instead of `Futures`

    joshuaspence authored
    Summary: Ref T6829. Deprecate the `Futures()` function.
    
    Test Plan: N/A
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T6829
    
    Differential Revision: https://secure.phabricator.com/D11077
Commits on Dec 21, 2014
  1. @chadlittle

    Remove docs sprite, replace with FontAwesome

    chadlittle authored
    Summary: Removes the docs sprite in Conpherence with FontAwesome, adds additional icons. Unsure what happens if someone customized this config option.
    
    Test Plan: Added images and files to a Conpherence, saw new icons.
    
    Reviewers: btrahan, epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11028
Commits on Dec 20, 2014
  1. @chadlittle

    Remove payments sprite

    chadlittle authored
    Summary: Removes unused payments sprite and code, also some unused conpherence generated images. We use images in login (and could use FontAwesome, maybe).
    
    Test Plan: grep codebase, pull up uiexamples icons page
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11025
  2. @chadlittle

    Remove unused Conpherence sprites

    chadlittle authored
    Summary: These were refactored out a while ago
    
    Test Plan: Grep codebase, use Conpherence on desktop, mobile.
    
    Reviewers: btrahan, epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11023
Commits on Dec 9, 2014
  1. @joshuaspence

    Minor linter fixes

    joshuaspence authored
    Summary: Self explanatory
    
    Test Plan: `arc lint`
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D10946
Commits on Nov 24, 2014
  1. @epriestley

    Add `bin/worker flood`, for flooding the task queue with work

    epriestley authored
    Summary: Ref T6615. Ref T3554. We need better tooling around the queue eventually, so start here.
    
    Test Plan: Added 100K+ tasks locally with `bin/worker flood`. Executed some of them with `bin/phd debug taskmaster` (we already have a TestWorker, used in unit tests).
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T3554, T6615
    
    Differential Revision: https://secure.phabricator.com/D10894
Commits on Nov 7, 2014
  1. @epriestley

    Standardize SSH key storage

    epriestley authored
    Summary:
    Ref T5833. This fixes a few weird things with this table:
    
      - A bunch of columns were nullable for no reason.
      - We stored an MD5 hash of the key (unusual) but never used it and callers were responsible for manually populating it.
      - We didn't perform known-key-text lookups by using an index.
    
    Test Plan:
      - Ran migrations.
      - Faked duplicate keys, saw them clean up correctly.
      - Added new keys.
      - Generated new keys.
      - Used `bin/auth-ssh` and `bin/auth-ssh-key`.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T5833
    
    Differential Revision: https://secure.phabricator.com/D10805
Commits on Nov 6, 2014
  1. @epriestley

    Add a query/policy layer on top of SSH keys for Almanac

    epriestley authored
    Summary:
    Ref T5833. Currently, SSH keys are associated only with users, and are a bit un-modern. I want to let Almanac Devices have SSH keys so devices in a cluster can identify to one another.
    
    For example, with hosted installs, initialization will go something like this:
    
      - A request comes in for `company.phacility.com`.
      - A SiteSource (from D10787) makes a Conduit call to Almanac on the master install to check if `company` is a valid install and pull config if it is.
      - This call can be signed with an SSH key which identifies a trusted Almanac Device.
    
    In the cluster case, a web host can make an authenticated call to a repository host with similar key signing.
    
    To move toward this, put a proper Query class on top of SSH key access (this diff). In following diffs, I'll:
    
      - Rename `userPHID` to `objectPHID`.
      - Move this to the `auth` database.
      - Provide UI for device/key association.
    
    An alternative approach would be to build some kind of special token layer in Conduit, but I think that would be a lot harder to manage in the hosting case. This gives us a more direct attack on trusting requests from machines and recognizing machines as first (well, sort of second-class) actors without needing things like fake user accounts.
    
    Test Plan:
      - Added and removed SSH keys.
      - Added and removed SSH keys from a bot account.
      - Tried to edit an unonwned SSH key (denied).
      - Ran `bin/ssh-auth`, got sensible output.
      - Ran `bin/ssh-auth-key`, got sensible output.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T5833
    
    Differential Revision: https://secure.phabricator.com/D10790
Commits on Oct 29, 2014
  1. @epriestley

    Fix various MySQL version issues with new charset stuff

    epriestley authored
    Summary:
    Ref T1191. Notable stuff:
    
      - Adds `--disable-utf8mb4` to `bin/storage` to make it easier to test what things will (approximately) do on old MySQL. This isn't 100% perfect but should catch all the major stuff. It basically makes us pretend the server is an old server.
      - Require utf8mb4 to dump a quickstart.
      - Fix some issues with quickstart generation, notably special casing the FULLTEXT handling.
      - Add an `--unsafe` flag to `bin/storage adjust` to let it truncate data to fix schemata.
      - Fix some old patches which don't work if the default table charset is utf8mb4.
    
    Test Plan:
      - Dumped a quickstart.
      - Loaded the quickstart with utf8mb4.
      - Loaded the quickstart with `--disable-utf8mb4` (verified that we get binary columns, etc).
      - Adjusted schema with `--disable-utf8mb4` (got a long adjustment with binary columns, some truncation stuff with weird edge case test data).
      - Adjusted schema with `--disable-utf8mb4 --unsafe` (got truncations and clean adjust).
      - Adjusted schema back without `--disable-utf8mb4` (got a long adjustment with utf8mb4 columns, some invalid data on truncated utf8).
      - Adjusted schema without `--disable-utf8mb4`, but with `--unsafe` (got truncations on the invalid data).
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T1191
    
    Differential Revision: https://secure.phabricator.com/D10757
Commits on Oct 7, 2014
  1. @joshuaspence

    Minor formatting changes

    joshuaspence authored
    Summary: Apply some autofix linter rules.
    
    Test Plan: `arc lint` and `arc unit`
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin, hach-que
    
    Differential Revision: https://secure.phabricator.com/D10585
Commits on Oct 3, 2014
  1. @hach-que

    Implement storage of a host ID and a public key for authorizing Condu…

    hach-que authored
    …it between servers
    
    Summary:
    Ref T4209.  This creates storage for public keys against authorized hosts, such that servers can be authorized to make Conduit calls as the omnipotent user.
    
    Servers are registered into this system by running the following command once:
    
    ```
    bin/almanac register
    ```
    
    NOTE: This doesn't implement authorization between servers, just the storage of public keys.
    
    Placing this against Almanac seemed like the most sensible place, since I'm imagining in future that the `register` command will accept more information (like the hostname of the server so it can be found in the service directory).
    
    Test Plan: Ran `bin/almanac register` and saw the host (and public key information) appear in the database.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T4209
    
    Differential Revision: https://secure.phabricator.com/D10400
Commits on Sep 8, 2014
  1. @joshuaspence

    Use `PhutilConsoleProgressBar` for the `repository/reparse.php` script

    joshuaspence authored
    Summary: The output from this script is too verbose... all that I care about is the overall progress.
    
    Test Plan:
    Ran the script on a large repository.
    
    ```lang=bash
    ./scripts/repository/reparse.php --all XYZ --message
    NOTE: This script will queue tasks to reparse the data. Once the tasks have been queued, you need to run Taskmaster daemons to execute them.
    
    QUEUEING TASKS (92,969 Commits):
    [                                                                  ]   0.1%
    ```
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D10441
Commits on Aug 30, 2014
  1. @epriestley

    Convert two missed phutil_utf8_shorten() callsites

    epriestley authored
    Summary: Fixes T6006. These didn't get caught by D10392.
    
    Test Plan: Forced migration to re-run; ran SSH commands against Phabricator.
    
    Auditors: btrahan
Commits on Aug 15, 2014
  1. @epriestley

    Replace ActionHeader minicons with Font icons

    epriestley authored
    Summary:
    Ref T5885. See D10276.
    
    Currently, ActionHeaders can only have minicons, and we don't use them anywhere and they probably don't make much sense in the product anymore.
    
    Instead, allow them to have font icons. Remove minicons, which have no callsites and probably won't in the future.
    
    Test Plan:
    {F190925}
    
      - Grepped for `minicons`.
      - Grepped for `setHeaderIcon()`.
    
    Reviewers: btrahan, chad
    
    Reviewed By: chad
    
    Subscribers: epriestley
    
    Maniphest Tasks: T5885
    
    Differential Revision: https://secure.phabricator.com/D10277
Commits on Aug 8, 2014
  1. @epriestley

    Improve `bin/storage upgrade` behavior when run out-of-order

    epriestley authored
    Summary:
    Fixes T5770. This error occurs if you run `bin/storage upgrade` before you set up MySQL credentials.
    
    This isn't what the setup guide says to do, but it's an easy mistake to make and should be a permitted install path since there's no reason you can't do things in this order.
    
    Specifically, we use a mixture of "standard" (configured) and "administrative" (`--user` and `--password`) credentials, and if the standard ones are bogus bad things happen. We use the standard credentials to make some initialization order stuff easier, and because there's no `--host` flag and adding one would be silly, and because we only need administrative credentials to issue ALTER / CREATE statements.
    
    Test Plan: Ran with bad standard credentials; ran with bad administrative credentials. Ran with good credentials.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T5770
    
    Differential Revision: https://secure.phabricator.com/D10199
Something went wrong with that request. Please try again.