Page MenuHomePhabricator

2013-12 December
Updated 2,667 Days AgoPublic

Major Changes

  • Hosted repositories now reject dangerous changes (like --force pushes) by default.
  • Hosted repositories now support pre-receive/pre-commit Herald rules.
  • Herald now has some support for "object" rules, which act on a particular object and provide a middle ground between "personal" and "global" rules.
  • You can now change Phabricator's header color to differentiate between, e.g., development and production installs.
  • Added Phragment, an artifact storage application. Phragment is new and subject to change. It is probably of limited general interest until Harbormaster is more sophisticated.
  • Infrastructure improvements to Harbormaster and Drydock. These systems are not yet ready for general use.

Minor Changes

  • Added a push log.
  • Added an SSH access log.
  • Added an "r <name>" jumpnav command for jumping to a repository by name.
  • Improved FIFO-ness of task queue when retrying tasks.
  • Added a queue utilization statistic to the Daemon console to make it easier to assess how loaded the task queue is.
  • Herald rules can now check for revisions with no reviewers.
  • Herald transcripts now truncate field data to alleviate issues with enormous transcripts.
  • Herald rules now have Hnnn names.
  • Added bin/repository lookup-users to make it more clear how Phabricator is identifying authors and committers.
  • Added font support to the figlet Remarkup rule.
  • Restored visual grouping to ApplicationTransactions.
  • Improved default message when connecting over SSH.
  • Policy controls now provide the viewer-only policy as a default.
  • Added a remarkup rule for repositories (rX).
  • Removed celerity.resource-path config.
  • External libraries can now manage and serve custom static resources in a general way, by building their own maps.
  • LDAP auth now works if accounts can be queried by the anonymous user, but not by authenticated users.

Bug Fixes

  • Worked around an issue in PHP where fwrite() on a nonblocking pipe never fails, even if there's an error or the pipe is closed or broken.
  • Fixed an issue where generated patches in Differential were generated incorrectly if the original diff was missing context.
  • Added missing breadcrumb on Edit Task screen.
  • Fixed an issue where Doorkeeper would choke when pulling the same external ref more than once in a single query.
  • Fixed an issue where policy filters could be too permissive when filtering objects against multiple permissions. This had no impact in practice.
  • Fixed an issue where mail bodies would be incorrectly stripped in some cases if they began with the text "On".
  • Fixed some issues with creating new Conpherence threads via email.
  • Resolved several resource utilization issues in SSH repository hosting, where processes would use dramatically more CPU or memory than necessary in some situations.
  • Resolved an issue where some SVN SSH protocol frames could hang forever.
  • Fixed an issue where ApplicationSearch queries would not generate a persistent key when constructed with GET parameters.
  • Worked around an issue where hg sends human-readable text to stdout under --debug.
  • Fixed a missing lock release in the pull daemon under unusual failure conditions.
  • Fixed an issue in Mercurial repositories where some commands would fail if revision 0 was not on the current branch.
  • Fixed scroll overflow of wide changes in Differential.
  • Fixed policy binding of raw diffs, patches and and file content.
  • Fixed an issue where commit remarkup rules could misfire and throw when viewed by users without access to Diffusion.
  • Arcanist now figures out which working copy and which .arcconfig file it is inside in more general, predictable ways. This resolves issues where a stray ~/.arcconfig or similar would cause wonky behavior.
  • Fixed an issue where resolveKill() on a resolved ExecFuture would fail.


  • It is now impossible to misunderstand the "unknown symbol" lint message.
  • Improved usefulness of exception raised when saving a nonscalar field.
  • csprintf() now supports empty array for %Ls conversion.
  • Sending a phutil process a SIGHUP will now dump a stack trace. This can be useful for debugging hung or long-running processes.
  • Daemon overseers will now relay SIGUSR2 to their children, which invoke a callback.
  • PhutilChannel now supports read throttling and has more sensible write buffer / writable socket semantics.
Last Author
Last Edited
Jan 1 2014, 6:42 PM

Event Timeline