Summary of changes from March 29, 2019 to April 17, 2019.
| Codebase | Repository | {icon lock} | HEAD | Activity |
|----------|------------|--|------|----------|
| Phabricator | rP | | rP02cfcfa079 | 71 commits |
| Arcanist | rARC | | rARC9830c931 | 0 commits |
| libphutil | rPHU | | rPHU639e4b9 | 2 commits |
| Instances (SAAS) | rSAAS | {icon lock} | rSAAS5e60851 | 0 commits |
| Services (SAAS) | rSERVICES | {icon lock} | rSERVICES05a1d48 | 1 commit |
| Core (SAAS) | rCORE | {icon lock} | rCORE78c222b | 0 commits |
- These changes were promoted to `stable`.
- This release is large and off-cycle, and largely corresponds to `master` briefly reaching a point of relative stability between larger changes connected to Dashboards/Portals (see T13083) in 2019 Week 14/15 and upcoming changes to Charts/Permanent Refs (see T13279/T13277).
General
=======
[{icon tint, color=sky}] **Portals**: The "Dashboards" application now allows you to create "Portals".
Portals allow you to collect multiple dashboards and other resources together on a single page. Roughly, they're an editable menu which you can add dashboards and other links to. The portal menu is similar to the Home menu and the Favorites application, but you can create portals for a particular topic.
Portals are mostly groundwork for charts, and are likely to be more useful once charts come online: they'll let you collect multiple dashboards with information and charts together to get an overview of the state of a project or team.
Security
========
- //No notes in this period.//
Migrations
==========
| Migration | Risk | Duration | Notes |
|-----------|------|----------|-------|
| 20190329.portals.01.create.sql | | 17 ms |
| 20190329.portals.02.xaction.sql | | 20 ms |
| 20190410.portals.01.ferret.doc.sql | | 13 ms |
| 20190410.portals.02.ferret.field.sql | | 15 ms |
| 20190410.portals.03.ferret.ngrams.sql | | 14 ms |
| 20190410.portals.04.ferret.cngrams.sql | | 20 ms |
| 20190412.dashboard.01.panels.php | | 194 ms |
| 20190412.dashboard.02.install.sql | | 12 ms |
| 20190412.dashboard.03.dashngrams.sql | | 9 ms |
| 20190412.dashboard.04.panelngrams.sql | | 9 ms |
| 20190412.dashboard.05.dferret.doc.sql | | 14 ms |
| 20190412.dashboard.06.dferret.field.sql | | 14 ms |
| 20190412.dashboard.07.dferret.ngrams.sql | | 14 ms |
| 20190412.dashboard.08.dferret.cngrams.sql | | 18 ms |
| 20190412.dashboard.09.pferret.doc.sql | | 14 ms |
| 20190412.dashboard.10.pferret.field.sql | | 14 ms |
| 20190412.dashboard.11.pferret.ngrams.sql | | 14 ms |
| 20190412.dashboard.12.pferret.cngrams.sql | | 20 ms |
| 20190412.dashboard.13.rebuild.php | | 32 ms |
| 20190412.herald.01.rebuild.php | | 4 ms |
//"Duration" is the duration for this install, and may not be representative.//
Upgrading / Compatibility
=========================
[{icon tint, color=sky}] **ProfileMenu**: The `ProfileMenu` API has changed. If you have custom `ProfileMenu` item implementations, they will likely require minor updates. D20358 represents the bulk of the API changes: `newNavigationMenuItems()` has become `newMenuItemViewList()`, and `newItem()` is now `newItemView()`. These API changes support tracking the selection and highlight state of items in cases when a single `ProfileMenu` item produces multiple distinct controls in the menu. Today, there are no such upstream cases, but this made some of the other changes easier. See also D20357 for more discussion and rationale.
[{icon tint, color=sky}] **Dashboards**: Dashboard panel APIs have changed somewhat. If you define custom panel implementations, they likely require minor updates. See D20372 for context.
New `bin/auth lock` and `bin/auth unlock` options allow you to freeze and thaw authentication configuration so it can't be edited via the web UI. This mostly reduces the amount of damage that an attacker can do with a compromised administrator account (for example, by reconfiguring an LDAP provider to point at an evil proxy they control which logs usernames and passwords). You will receive a setup warning after upgrading if auth configuration is unlocked. This option currently has a limited effect on actually preventing edits.
[{icon tint, color=sky}] When revisions are added as dependencies of one another or tasks are associated with commits, the actions no longer publish notifications or feed stories. See D20437 for some context.
Profile Menus
=============
[{icon tint, color=sky}] Profile menus are the editable menus used on the home page, the Favorites application, projects, user profiles, and portals.
- When a profile menu has a link item which exactly matches the current URI including query parameters, that item is now highlighted even if it isn't the item building the page content. This primarily allows you to add link items to a workboard which show different views of the workboard and have the menu provide more useful visual feedback about which view you're looking at.
- Some items, like "Edit Menu", are now locked to the top or bottom of the menu and can not be moved.
- When a default item is selected from a menu, disabled items are no longer candidates. This primarily affects cases where the home page menu has several dashboards with different visibility as the first few items.
- The "Favorites" application now has a persistent menu when you're viewing a dashboard.
Dashboards
==========
[{icon tint, color=sky}] Dashboards were really hard to edit. They still aren't perfect, but it should now be very difficult to make a dashboard descend into a state of madness. These changes are primarily focused on giving charts a warm, dry place to live once they come online.
- The "View", "Manage", and "Arrange" modes of Dashboards have been combined.
- Previously, the "View" mode of dashboards offered a read-only rendering of the panels. To get something similar, you should now add the dashboard to a Portal (or Favorites, or Home). When a dashboard is rendered in a menu context, it renders in "view" mode. When a dashboard is rendered from within the Dashboards application, it renders in "edit/manage" mode.
- The "Install Dashboard" workflow is now less of a catastrophic mess.
- Dashboard templates are no longer supported. There was only one anyway. You always get a blank slate when creating a new dashboard now.
- Editing tab panels should now randomly delete less of your data.
- Dashboards and panels now show an accurate list of places where they are used.
- Dashboards can have duplicate panels. This isn't too exciting. This is mostly useful when you don't want your dashboard to completely break itself after it randomly decides to duplicate a panel.
Minor
=====
- [{icon tint, color=sky}] When database connections fail, particularly from CLI scripts, the diagnostic information is now more clear.
- Improved rendering of sequences of quoted lists in Remarkup when the quoted block was attributed to an author.
- [{icon tint, color=sky}] Fixed a bug where context lines completely failed to render in Differential.
- [{icon tint, color=sky}] Fixed a bug where `[[` or `((` could be too persistent in trying to evaluate autosuggest rules. This possibly led to poor performance in some edit workflows?
- [{icon tint, color=sky}] Fixed some issues with the "Actions" dropdown button on Phame blog live views.
- [{icon tint, color=sky}] Added a workboard trigger rule to assign tasks.
- [{icon tint, color=sky}] Added workboard trigger rules to add and remove tasks.
- [{icon tint, color=sky}] "JIRA Issue URIs" is now supported as a Herald field for revisions.
- [{icon tint, color=sky}] If you add files to the instructions for a custom form, they will now correctly be visible to users who can see the form.
- [{icon tint, color=sky}] Owners packages now show Herald rules which affect them.
- [{icon tint, color=sky}] Phabricator now accepts pushes which include arbitrary refs (not just tags and branches).
//The [{icon tint, color=sky}] icon indicates a change backed by support mana.//