Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Commits on Aug 26, 2015
  1. @epriestley

    Prevent "commit message magic words" parser from exploding on "revert…

    epriestley authored
    …s aaaa.....aaz"
    
    Summary:
    Fixes T9268. Currently, we try to match any string like "a2f313f1" as a commit/revision, so short hashes will get picked up.
    
    However, we don't require a word boundary or terminal after the match, so for input like "aaa...aaaaz" the engine can get stuck trying to split the string into sub-matches.
    
    That is, in the original case, the input "aaaz" had valid matches against `[rA-Z0-9a-f]+` up to "z" of:
    
      aaa
      aa a
      a aa
      a a a
    
    All of these will fail once it hits "z", but it has to try them all. This complexity is explosive with longer strings.
    
    Instead, require a word boundary or EOL after the match, so this is the only valid match:
    
      aaa
    
    Then the engine sees the "z", says "nope, no match" and doesn't have to backtrack across all possible combinations.
    
    Test Plan: Added a failing unit test, applied patch, clean test.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9268
    
    Differential Revision: https://secure.phabricator.com/D13997
Commits on Aug 24, 2015
  1. @epriestley

    Fix mail parameter error with old migrations

    epriestley authored
    Summary:
    Fixes T9251. Old mail could get saved with bad parameters for two reasons that I can come up with:
    
      - Nothing ever set a parameter on it -- not sure this could ever actually happen; or
      - some field contained non-UTF8 data prior to D13939 and we silently failed to encode it.
    
    My guess is that the second case is probably the culprit here.
    
    In any case, recover from this so `20150622.metamta.5.actor-phid-mig.php` can proceed.
    
    Test Plan: Same effective patch as user patch in T9251; looked at some mail to make sure it was still pulling parameters properly.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9251
    
    Differential Revision: https://secure.phabricator.com/D13990
  2. @epriestley

    Add very basic routing to Nuance

    epriestley authored
    Summary:
    Ref T8783. Sort out some relationships and fields:
    
      - Make Items 1:1 with Queues: each item is always in exactly one queue. Minor discussion on T8783. I think this is easier to understand and reason about (and implement!) and can't come up with any real cases where it isn't powerful enough.
      - Remove "QueueItem", which allowed items to be in multiple queues at once.
      - Remove "dateNuanced", which is equivalent to "dateCreated" in all cases.
    
    Then add really basic routing:
    
      - Add "Default Queue" for Sources. New items from the source route into that queue.
      - (Some day there will be routing rules, but for now the rule is "always route into the default queue".)
      - Show queue on items.
      - Show more / more useful edit history and transactions in several UIs.
    
    Test Plan:
    {F749445}
    
    {F749446}
    
    {F749447}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8783
    
    Differential Revision: https://secure.phabricator.com/D13988
  3. @hach-que

    Fix issues where Drydock queries didn't work correctly with empty arrays

    hach-que authored
    Summary: Ref T2015.  This fixes issues where the Drydock queries wouldn't filter (or throw an exception) when passed empty arrays for their `with` methods.  In addition, this also adds `array_unique` to the resource and lease subqueries so that we don't pull in a bunch of stuff if logs or leases have the same related objects.
    
    Test Plan: Tested it by using DarkConsole on the log controller.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: joshuaspence, Korvin, epriestley
    
    Maniphest Tasks: T2015
    
    Differential Revision: https://secure.phabricator.com/D10879
  4. @hach-que

    Improve Drydock log search engine

    hach-que authored
    Summary: Ref T2015.  This allows searching based on blueprints, resources or leases when viewing the logs, which helps when searching for events that occured to a particular blueprint / resource / lease.  Unlike the logs shown on the resource / lease pages, the search engine supports paging properly, which means it can be used to find entries in the past.
    
    Test Plan: Used the Drydock log search page.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: joshuaspence, Korvin, epriestley
    
    Maniphest Tasks: T2015
    
    Differential Revision: https://secure.phabricator.com/D10874
  5. @hach-que

    Show time on Drydock logs

    hach-que authored
    Summary: Show the time in addition to the date in the Drydock logs.
    
    Test Plan: Brought forward from D10479.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: joshuaspence, Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D10909
  6. @hach-que

    Associate Harbormaster build target with leases

    hach-que authored
    Summary: Ref T1049.  This ensures the Harbormaster build target is associated with leases, so in the future we can query things and find out whether builds are still running with associated leases.
    
    Test Plan: Leased a host, checked the DB and saw the field populated.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: joshuaspence, Korvin, epriestley
    
    Maniphest Tasks: T1049
    
    Differential Revision: https://secure.phabricator.com/D10870
Commits on Aug 23, 2015
  1. @epriestley

    Add basic "View" and "Edit" features to Nuance

    epriestley authored
    Summary:
    Ref T8783.
    
    The "View" UI is where a user would check their request for feedback or a resolution, if it's something that makes sense for them to interact with from the web UI.
    
    The "Edit" UI is the manage/admin UI where you'd respond to a request. It's similar to the view UI but will have actions and eventually some queue UI, etc.
    
    (I don't think items need a normal "Edit" UI -- it doesn't make sense to "Edit" a tweet or inbound email -- but maybe this will shuffle around a little eventually.)
    
    Test Plan:
    View
    
    {F747218}
    
    Edit
    
    {F747219}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8783
    
    Differential Revision: https://secure.phabricator.com/D13980
  2. @epriestley

    Use didRejectResult() when querying workboard columns

    epriestley authored
    Summary: Fixes T9250. Ref T4345.
    
    Test Plan:
    Faked a policy error:
    
    {F748975}
    
    Reviewers: joshuaspence, chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T4345, T9250
    
    Differential Revision: https://secure.phabricator.com/D13981
  3. @epriestley

    Tune document details in Legalpad

    epriestley authored
    Summary:
    Fixes T9245. These picked up some possibly-confusing metadata, like in the screenshot on T9245 where "Subscribers" appears in the middle of the page for no obvious reason.
    
      - Make these pages a little cleaner by removing elements which aren't important for signing agreements.
      - Use the last time the actual document text was updated as the modification time, not the last time the "Document" object was modified. The latter will change for trivial things like altering the view/edit policy, but that could be confusing if you see that a TOS was "last updated yesterday" but can't figure out what actually changed (since nothing changed).
    
    Test Plan: Viewed signature page for a document.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9245
    
    Differential Revision: https://secure.phabricator.com/D13982
  4. @epriestley

    Allow Nuance source definitions to add actions to source views

    epriestley authored
    Summary:
    Ref T8783. If you have a source (like a "report bug" form), let it put a link (like "View Form") on the source detail page.
    
    This also straightens out getting definitions from sources, which had a bug with the modern way we do `PhutilClassMapQuery`.
    
    Specifically, if you called the old mechanism on two different sources, they'd return the same definition object, but they need to return different definitions.
    
    Test Plan:
    {F747093}
    
    {F747092}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8783
    
    Differential Revision: https://secure.phabricator.com/D13966
  5. @epriestley

    Add a main page to Nuance

    epriestley authored
    Summary: Ref T8783. There's nothing at `/nuance/` right now, put something basic there.
    
    Test Plan: {F747078}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8783
    
    Differential Revision: https://secure.phabricator.com/D13965
Commits on Aug 22, 2015
  1. @epriestley

    Allow transaction publishers to pass binary data to workers

    epriestley authored
    Summary:
    Ref T8672. Ref T9187. Root issue in at least one case is:
    
      - User makes a commit including a file with some non-UTF8 text (say, a Japanese file full of Shift-JIS).
      - We pass the file to the TransactionEditor so it can inline or attach the patch if the server is configured for these things.
        - When inlining patches, we convert them to UTF8 before inlining. We must do this since the rest of the mail is UTF8.
        - When attaching patches, we send them in the original encoding (as file attachments). This is correct, and means we need to give the worker the raw patch in whatever encoding it was originally in: we can't just convert it to utf8 earlier, or we'd attach the wrong patch in some cases.
      - TransactionEditor does its thing (e.g., creates the commit), then gets ready to send mail about whatever it did.
      - The publishing work now happens in the daemon queue, so we prepare to queue a PublishWorker and pass it the patch (with some other data).
      - When we queue workers, we serialize the state data with JSON.
    
    So far, so good. But this is where things go wrong:
    
      - JSON can't encode binary data, and can't encode Shift-JIS. The encoding silently fails and we ignore it.
    
    Then we get to the worker, and things go wrong-er:
    
      - Since the data is bad, we fatal. This isn't a permanent failure, so we continue retrying the task indefinitely.
    
    This applies several fixes:
    
      # When queueing tasks, fail loudly when JSON encoding fails.
      # In the worker, fail permanently when data can't be decoded.
      # Allow Editors to specify that some of their data is binary and needs special handling.
    
    This is fairly messy, but some simpler alternatives don't seem like good ways forward:
    
      - We can't convert to UTF8 earlier, because we need the original raw patch when adding it as an attachment.
      - We could encode //only// this field, but I suspect some other fields will also need attention, so that adding a mechanism will be worthwhile. In particular, I suspect filenames //may// be causing a similar problem in some cases.
      - We could convert task data to always use a serialize()-based binary safe encoding, but this is a larger change and I think it's correct that things are UTF8 by default, even if it makes a bit of a mess. I'd rather have an explicit mess like this than a lot of binary data floating around.
    
    The change to make `LiskDAO` will almost certainly catch some other problems too, so I'm going to hold this until after `stable` is cut. These problems were existing problems (i.e., the code was previously breaking or destroying data) so it's definitely correct to catch them, but this will make the problems much more obvious/urgent than they previously were.
    
    Test Plan:
      - Created a commit with a bunch of Shift-JIS stuff in a file.
      - Tried to import it.
    
    Prior to patch:
    
      - Broken PublishWorker with distant, irrelevant error message.
    
    With patch partially applied (only new error checking):
    
      - Explicit, local error message about bad key in serialized data.
    
    With patch fully applied:
    
      - Import went fine and mail generated.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Subscribers: devurandom, nevogd
    
    Maniphest Tasks: T8672, T9187
    
    Differential Revision: https://secure.phabricator.com/D13939
Commits on Aug 21, 2015
  1. @chadlittle

    Hide answer box if you asked the question in Ponder

    chadlittle authored
    Summary: Fixes T9241. Users have a tendancy to assume Ponder is a "forum", make replying to your own question take an additional click.
    
    Test Plan:
    View my own question, see notice, click open answer box, reply. Visit not my question, see box as normal.
    
    {F743412}
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: cspeckmim, Korvin
    
    Maniphest Tasks: T9241
    
    Differential Revision: https://secure.phabricator.com/D13957
  2. @epriestley

    Add a "Startup" to DarkConsole

    epriestley authored
    Summary: Ref T8588. It looks like something slow is happening //before// we start DarkConsole. Add some crude reporting to try to narrow it down.
    
    Test Plan: {F743050}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8588
    
    Differential Revision: https://secure.phabricator.com/D13956
  3. @epriestley

    Use pink for "Unbreak Now" priority instead of indigo

    epriestley authored
    Summary:
    Fixes T9237. A while ago, the old (more-pink) indigo got split into "pink" (more pink) and "indigo" (more purple), but we didn't change this color config in Maniphest.
    
    This generally made the color more purple, and it's now pretty simliar to the "needs triage" color (violet).
    
    Make it "pink" instead.
    
    Test Plan: {F742617}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9237
    
    Differential Revision: https://secure.phabricator.com/D13954
  4. @chadlittle

    Fix Ponder Answer email reply handler

    chadlittle authored
    Summary: Should fix all email reply issues, but no solid means of testing at home (how do you local reply test?)
    
    Test Plan: Check for answer mail in /mail/ and see proper headers. Make sure question mail works too.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T3846
    
    Differential Revision: https://secure.phabricator.com/D13951
  5. @chadlittle

    Fix Ponder Answer query joins, builtins

    chadlittle authored
    Summary: Fixes T9234. The joins method was still the old method and the builtin was calling the wrong key.
    
    Test Plan: Test authored builtin, custom search
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9234
    
    Differential Revision: https://secure.phabricator.com/D13953
  6. @chadlittle

    Allow public on Ponder Questions, History pages

    chadlittle authored
    Summary: Ref T9234, these should allow being publicly visible
    
    Test Plan: log out, see page
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9234
    
    Differential Revision: https://secure.phabricator.com/D13952
Commits on Aug 20, 2015
  1. @chadlittle

    Correct link in Badges email

    chadlittle authored
    Summary: Fixes T9231, adds a correct link
    
    Test Plan: read
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9231
    
    Differential Revision: https://secure.phabricator.com/D13950
  2. @chadlittle

    Fix some quirkiness with Answer comments in Ponder

    chadlittle authored
    Summary: There is still some general buginess with answer comments, trying to work them out. This replaces timeline rendering into one offs (less performant) but resolves many bugs. Or if there is a more performant way, let me know? Also when leaving an answer comment, you currently get redirected back to the page, but both the comment form is still populated and you dont see your answer without a reload. I feel like I'm missing some magical parameter to pass, so just redirecting back to the question itself.
    
    Test Plan: Leave lots of answer comments.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D13946
  3. @chadlittle

    Reduce tt padding by 1px

    chadlittle authored
    Summary: If we have lots ot `text in monospace` everywhere, the padding bleeds. Reduce 1px.
    
    Test Plan: eyeball it
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D13947
  4. @chadlittle

    Use dateModified for Answer headers in Ponder

    chadlittle authored
    Summary: Fixes T9226, shows the update time, not the creation time.
    
    Test Plan: Update an answer, see new date.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9226
    
    Differential Revision: https://secure.phabricator.com/D13945
  5. @chadlittle

    Remove Files Widget from Conpherence

    chadlittle authored
    Summary: Fixes T8834. Removes everywhere I could find references to Files.
    
    Test Plan: Use Conpherence, send a message, attach a file, try durable column, send message, send file. Seems snappy.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T8834
    
    Differential Revision: https://secure.phabricator.com/D13936
  6. @epriestley

    Show all packages with a claim on a file in the table of contents view

    epriestley authored
    Summary:
    Ref T9218. See discussion there for rationale; I think this is the right behavior to pursue.
    
    The screenshot below is pretty ugly. I think it's a lot worse than most real-world cases will be, since you have to sort of opt-in to having crazy levels of overlapping packages, and it's perfectly normal/reasonable for files owned by one package. Owners is powerful enough to let you specify sub-packages with exclusive ownership.
    
    That said, this may be more typical than I hope. I don't think we can reduce the complexity here much for free, but it would might be reasonable to add some view options (e.g.: group by package?, show only packages I own?, show packages as icons with a tooltip?) if it's an issue.
    
    Test Plan: {F734956}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9218
    
    Differential Revision: https://secure.phabricator.com/D13940
Commits on Aug 19, 2015
  1. @chadlittle

    Remove Calendar from Conpherence

    chadlittle authored
    Summary: Ref T8834, cleanly removes "Calendar" widget from Conpherence. RIP. :(
    
    Test Plan: Bounce around Conpherence, no Calendar. grep for "calendar" in apps folder, css, js
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T8834
    
    Differential Revision: https://secure.phabricator.com/D13934
  2. @chadlittle

    Remove call to loadDrydockLease

    chadlittle authored
    Summary: Fixes T9219... I think.
    
    Test Plan: swagging a guess for epriestley
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9219
    
    Differential Revision: https://secure.phabricator.com/D13932
Commits on Aug 18, 2015
  1. @chadlittle

    Allow Owners Packages to be archived

    chadlittle authored
    Summary: Fixes T8428. Adds status to packages, allows setting and application search. I presume though these need checked elsewhere?
    
    Test Plan: New package, edit package, archive package, run search queries.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T8428
    
    Differential Revision: https://secure.phabricator.com/D13925
  2. @epriestley

    Fix Owners package specificity ordering

    epriestley authored
    Summary: This algorithm isn't quite right with respect to ordering more-specific packages correctly.
    
    Test Plan: {F729864}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Differential Revision: https://secure.phabricator.com/D13929
  3. @chadlittle

    Unbeta Ponder

    chadlittle authored
    Summary: Pending other diffs, this actually removes Ponder as a prototype. Fixes T3578
    
    Test Plan: No longer listed as a prototype
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T3578
    
    Differential Revision: https://secure.phabricator.com/D13920
  4. @epriestley

    Probably fix bad loadArtifactLease() call

    epriestley authored
    Summary: Ref T9205. This is a likely fix.
    
    Test Plan: This isn't straightforward to test in the upstream unless you have custom code on top of it.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9205
    
    Differential Revision: https://secure.phabricator.com/D13928
Commits on Aug 17, 2015
  1. @chadlittle

    Sort Ponder Answers by voteCount

    chadlittle authored
    Summary: Fixes T9207. I think this is correct? Sorts based on vote count and reverses the order of the array so higher is first.
    
    Test Plan: Test vote ordering on a number of sample tasks.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T9207
    
    Differential Revision: https://secure.phabricator.com/D13924
  2. @chadlittle

    Add ability to reply to Ponder Answer emails

    chadlittle authored
    Summary: Ref T9068, Ref T3846. Maybe fixes both, but I'm having issues testing email replies in a sandbox. Moves answer feed/mail generation to the AnswerEditor, hides it in QuestionEditor.
    
    Test Plan: Write an answer, see feed story, check /mail/ for mail generation.
    
    Reviewers: epriestley
    
    Reviewed By: epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T3846, T9068
    
    Differential Revision: https://secure.phabricator.com/D13905
  3. @epriestley

    Show packages in table of contents views in Diffusion and Differential

    epriestley authored
    Summary:
    Fixes T8004.
    
      - For paths which are part of a package, show the package.
      - Highlight paths which are part of a package you (the viewer) have authority over.
    
    Test Plan:
    {F725418}
    
      - Viewed owned and unowned chagnes in Diffusion and Differential.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8004
    
    Differential Revision: https://secure.phabricator.com/D13923
  4. @epriestley

    Further modernize OwnersPackageQuery

    epriestley authored
    Summary:
    Ref T8320.
    
      - Add needOwners().
      - Split withOwnerPHIDs() [exact owners] and withAuthorityPHIDs() [indirect authority] apart.
      - Restore searching by path.
    
    Test Plan: Browsed pacakges, edited packages, edited paths.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T8320
    
    Differential Revision: https://secure.phabricator.com/D13922
Something went wrong with that request. Please try again.