Page MenuHomePhabricator

2018 Week 5 (Very Early February)
Updated 1,195 Days AgoPublic

Summary of changes from January 26, 2018 to February 2, 2018.

PhabricatorrPrP032f5b229433 commits
ArcanistrARCrARC2e0233220 commits
libphutilrPHUrPHUcc343d04 commits
Instances (SAAS)rSAASrSAAS301336d0 commits
Services (SAAS)rSERVICESrSERVICESedd96db0 commits
Core (SAAS)rCORErCOREdbd0d3f1 commit
  • These changes were promoted to stable.


Data Exporters: Maniphest has been upgraded to the common data export workflow and the old Export to Excel button is now in the upper right menu under Use ResultsExport Data.

Exporting data from Maniphest now produces a more complete set of data including the author, points, and some custom fields.

Old export format extensions (which subclass ManiphestExcelFormat) are no longer supported. In cases where these extensions were used to add additional fields, they may no longer be necessary, or it may be possible to reimplement them much more simply by subclassing PhabricatorExportEngineExtension. ExportEngine extensions can now add fields rather than needing to define an entire export pipeline. See PhabricatorLiskExportEngineExtension for an example.

Edge Compaction: Edge transactions are now represented more compactly. For the overwhelming majority of installs this will imperceptibly decrease storage requirements going forward with no other observable effects.

Previously, edge transactions were represented in an inefficient way. This had the greatest effect if your data or use cases involved writing a very large number of edges to a small number of objects, which is rare.

This is unlikely to happen under normal use by regular human users, but could happen if you import a repository where many commits mention other commits, or you use scripts to create lots of relationships between objects, or tag objects with thousands of projects, or do something similarly unusual. In these cases the storage requirements could compound explosively.

You can estimate how much storage is used by edge transactions by running bin/storage probe and looking at the *_transaction tables. Their combined size is an upper bound on potential waste.

These tables usually store a moderate amount of data, but are not normally among the largest tables in the databases. If bin/storage probe reports that any of your transaction tables are very large, you may be affected by the inefficient edge storage format. (You can double check this by looking at the data in the table and seeing if most of it is enormous blobs of highly redundant edge data.)

Edges can be compacted retroactively with bin/garbage compact-edges. Most installs will not need to do this. After compaction finishes, run bin/storage optimize to reclaim any recovered disk space.

See T13051 for some more details.


Remote Addresses: The policy behavior for who can see remote addresses (client IP addresses) has been simplified.

Remote addresses are stored in user activity logs, pull logs, and push logs. Previously, administrators could see addresses in activity logs, while users who could edit the corresponding repository could see activity in pull and push logs.

This generally produced reasonable results but wasn't especially obvious or intuitive, and occasionally caused confusion or clashed with other organizational policies around handling this information. It also implied some implementation complexity.

The new policy rule is: only administrators can see remote addresses. This is now the behavior for activity logs, pull logs, and push logs.

There is one exception to this rule: in SettingsActivity Logs, which shows activity logs for your account, you can see addresses if: your account took the action; or the action was taken by an unauthenticated user and affected your account (usually, login). This allows users to review their own account logs for suspicious activity.

CSV Execution: We knew about this before we implemented CSV export so this doesn't fix anything, but see T12800 to understand why some cells in CSV exports are mangled.


  • No migrations in this period.

Upgrading / Compatibility

  • Old custom task exporters which subclass ManiphestExcelFormat are no longer supported. See above for details.

Data Exporters

  • Added an Excel exporter.
  • CSV, Text, and Excel exporters now have header rows.
  • Exporters no longer fails to find a suitable storage engine when exporting a file larger than 8MB.
  • The export dialog now remembers the format you used last time.
  • Exports affecting more than 1,000 rows are now processed in the background.
  • Added a bin/bulk export tool for debugging exports.
  • [] User activity logs now support export.
  • [] Push logs now support export.
  • Fixed an issue where queries using URI query parameters (/?author=...) ignored the parameters when filtering the export result set.


  • [] FileFinder now uses literal semantics for withName() and withSuffix() across platforms. The new withNameGlob() supports glob semantics.
  • [] Really, seriously, definitely probably fixed a bug with Herald not using the acting viewer to retrieve commit data when executed from the test console.
  • [] Transactions with no available actions (for example, only inline comments) no longer show the dropdown caret.
  • Fixed a PHP7.2 issue with count(null) in PHUIInfoView.
  • Added date range filtering to activity logs, pull logs, and push logs.
  • Push logs are now more human readable.
  • [] "Assign to" should now work properly in the bulk editor.
  • Fixed an issue with comment actions that affect numeric fields like "Points" in Maniphest.
  • maniphest.edit should now accept null to unassign a task, as suggested by the documentation.
  • GitLFS over SSH no longer fatals on a bad getUser() call.
  • [] Commits and revisions may now Reverts <commit|revision> one another, and reverting or reverted changes are shown more clearly in the timeline.

The [] icon indicates a change backed by support mana.

Last Author
Last Edited
Feb 2 2018, 9:28 PM

Event Timeline

epriestley edited the content of this document. (Show Details)