Summary of changes from Aug 31, 2019 to September 8, 2019.
| Codebase | Repository | {icon lock} | HEAD | Activity |
|----------|------------|--|------|----------|
| Phabricator | rP | | rPcaccbb69d2 | 16 commits |
| Arcanist | rARC | | rARC3cdfe1ff | 1 commit |
| libphutil | rPHU | | rPHUf51f1b3 | 1 commit |
| Instances (SAAS) | rSAAS | {icon lock} | rSAAS7ecf93d | 7 commits |
| Services (SAAS) | rSERVICES | {icon lock} | rSERVICESc4bd119 | 4 commits |
| Core (SAAS) | rCORE | {icon lock} | rCOREd8bf7ac | 13 commits |
- These changes were promoted to `stable`.
General
=======
- //No notes in this period.//
Security
========
- //No notes in this period.//
Migrations
==========
- //No migrations in this period.//
Upgrading / Compatibility
=========================
**Many Classes Have Moved from libphutil to Phabricator:** Many classes defined in `libphutil/` but not used in `libphutil/` or `arcanist/` have moved from `libphutil/` to `phabricator/`.
You are only impacted by this change if you:
- develop third-party code; and
- include `libphutil/` as a library, but do not include `phabricator/`; and
- use classes which are not used elsewhere in `libphutil/` or `arcanist/`.
See D20773 for a full list of impacted classes and functions. Briefly, classes for doing these things have moved: connecting directly to databases and running queries; executing OAuth handshakes; generating Lipsum text; rendering Remarkup; and reading and writing ICS calendar event files.
If this change impacts you, the simplest fix is to include `phabricator/` as a library, not just `libphutil/`.
The goal of this change is to eventually merge `libphutil/` completely into `arcanist/` and `phabricator/`. See D19688 for the future change which does this and discussion of rationale.
**bin/storage destroy:** In clustered setups, this command now targets a single database host with `--host` and can target replicas. This makes it useful to wipe an out-of-sync replica before resynchronizing.
Without `--host`, this workflow is now an error in a clustered environment. If you automate destruction of databases, you may need to tweak your automation. (This is probably unusual.)
**X-Forwarded-For:** If Phabricator is installed behind a load balancer, you may currently have code in `preamble.php` to set up the environment so the `X-Forwarded-For` header is trusted.
This code has been simplified, particularly in the case where your install is behind two or more load balancers. See @{article:Configuring a Premable Script} for more details. The old code still works fine, but the new code is simpler -- usually, just one line:
```lang=php
<?php
preamble_trust_x_forwarded_for_header();
```
Minor
=====
- If you are on a detached HEAD and run `arc land`, the workflow now follows through better instead of trying to delete the raw commit hash as though it were a branch.
- [{icon tint, color=sky}] Clustered Git repositories now retry safe requests over SSH. This improves reliability in situations where some nodes are down. Generally, SSH workflows now assert that if any node in the cluster could serve a request, the request will be served.
- [{icon tint, color=sky}] The default behavior of the global search bar can now be configured in {nav Settings > Global Settings > Search}.
- If you try to log out of a fresh install before configuring authentication providers, you'll now be warned that you may be signing up for more than you intend.
//The [{icon tint, color=sky}] icon indicates a change backed by support mana.//