diff --git a/changelog.md b/changelog.md
index cea19e697b4f..bd7cc4c6e88e 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,96 @@
+
+# 4.0.0 (2019-01-16)
+
+## New Contributors!
+
+@mattzeunert, @dima74, @jeffbcross, @knoxmic, and @shogunsea. Thanks!
+
+## Major Changes
+
+* A bevy of bug fixes and performance improvements.
+
+* A special reward for getting a perfect score.
+
+* A new layout for the PWA category, emphasizing speed, installability, and polish.
+
+
+
+[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0-beta...v4.0.0) (in addition to the changes in [4.0.0-beta](https://github.com/GoogleChrome/lighthouse/releases/tag/v4.0.0-beta), [4.0.0-alpha.1](https://github.com/GoogleChrome/lighthouse/releases/tag/v4.0.0-alpha.1), and [4.0.0-alpha.0](https://github.com/GoogleChrome/lighthouse/releases/tag/4.0.0-alpha.0))
+
+## Core
+
+* config: reorder categories to match new score gauge order ([#6848](https://github.com/googlechrome/lighthouse/pull/6848))
+* driver: handle navigation rejections within `Driver.gotoURL` ([#6739](https://github.com/googlechrome/lighthouse/pull/6739))
+* driver: exit early when testing page with insecure certificate ([#6608](https://github.com/googlechrome/lighthouse/pull/6608))
+* driver: `waitForFCP` when tracing ([#6944](https://github.com/googlechrome/lighthouse/pull/6944))
+* handle invalid network timing data ([#6780](https://github.com/googlechrome/lighthouse/pull/6780))
+* fix `usesObjectFit` property for ImageElement ([#6761](https://github.com/googlechrome/lighthouse/pull/6761))
+* fonts: resolve URLs relative to stylesheet ([#6782](https://github.com/googlechrome/lighthouse/pull/6782))
+* lantern: remove unnecessary sort calls ([#6900](https://github.com/googlechrome/lighthouse/pull/6900))
+* lantern: drop node id from error message ([#6774](https://github.com/googlechrome/lighthouse/pull/6774))
+* minification: properly handle regex character classes ([#6745](https://github.com/googlechrome/lighthouse/pull/6745))
+* preconnect: add warning if preconnect link is not used ([#6694](https://github.com/googlechrome/lighthouse/pull/6694))
+* preload: warn when duplicate requests issued ([#6849](https://github.com/googlechrome/lighthouse/pull/6849))
+* scoreDisplayMode: change `'not-applicable'` to `'notApplicable'` ([#6783](https://github.com/googlechrome/lighthouse/pull/6783))
+* service-worker: check that `start_url` is within SW's scope ([#6678](https://github.com/googlechrome/lighthouse/pull/6678))
+* speedindex: scale scoring coefficients based on throttling ([#7007](https://github.com/googlechrome/lighthouse/pull/7007))
+* tap-targets: helper functions for working with `ClientRects` ([#6703](https://github.com/googlechrome/lighthouse/pull/6703))
+* url: add intent protocol to `NON_NETWORK_PROTOCOLS` ([#6711](https://github.com/googlechrome/lighthouse/pull/6711))
+* user-timings: move into computed artifact ([#6719](https://github.com/googlechrome/lighthouse/pull/6719))
+* change `displayValue` to be string only ([#6767](https://github.com/googlechrome/lighthouse/pull/6767))
+* add type checking to `pwmetrics-events` ([#6980](https://github.com/googlechrome/lighthouse/pull/6980))
+* stricter LR-desktop metric scoring ([#6969](https://github.com/googlechrome/lighthouse/pull/6969))
+* in-page functions refactor ([#6702](https://github.com/googlechrome/lighthouse/pull/6702))
+
+## Deps
+
+* update axe-core to latest ([#7020](https://github.com/googlechrome/lighthouse/pull/7020))
+* update details-element-polyfill to 2.2.0 ([#6928](https://github.com/googlechrome/lighthouse/pull/6928))
+* update tsc to 3.2.2 ([#6684](https://github.com/googlechrome/lighthouse/pull/6684))
+* snyk: update snyk snapshot ([#6888](https://github.com/googlechrome/lighthouse/pull/6888), [#6842](https://github.com/googlechrome/lighthouse/pull/6842))
+
+## Docs
+
+* readme: add speedrank to integrations list ([#6987](https://github.com/googlechrome/lighthouse/pull/6987))
+* readme: added simple guidance on install options ([#6810](https://github.com/googlechrome/lighthouse/pull/6810))
+* configuration.md: update link to pwmetrics ([#6816](https://github.com/googlechrome/lighthouse/pull/6816))
+* scoring: update TTI references ([#6865](https://github.com/googlechrome/lighthouse/pull/6865))
+* `--help`: use HTTPS link to bit.ly/chrome-flags ([#6692](https://github.com/googlechrome/lighthouse/pull/6692))
+* ask people to test a11y issues upstream first ([#6764](https://github.com/googlechrome/lighthouse/pull/6764))
+
+## Extension
+
+* return `runnerResult` from `runLighthouseInExtension()` ([#6839](https://github.com/googlechrome/lighthouse/pull/6839))
+
+## I18n
+
+* localize `LighthouseError` messages ([#6457](https://github.com/googlechrome/lighthouse/pull/6457), [#6812](https://github.com/googlechrome/lighthouse/pull/6812))
+
+## Report
+
+* pwa: add tooltip to badge gauge ([#6689](https://github.com/googlechrome/lighthouse/pull/6689))
+* add top-level section for passed audits that had warnings ([#6989](https://github.com/googlechrome/lighthouse/pull/6989))
+* celebrate all 100s ([#5455](https://github.com/googlechrome/lighthouse/pull/5455))
+* expand groups within "Passed Audits" by default ([#6930](https://github.com/googlechrome/lighthouse/pull/6930))
+* fix margin on score gauge wrappers ([#6948](https://github.com/googlechrome/lighthouse/pull/6948), [#6972](https://github.com/googlechrome/lighthouse/pull/6972))
+* support narrow screens ([#6857](https://github.com/googlechrome/lighthouse/pull/6857))
+* larger margins for audit group summaries ([#6688](https://github.com/googlechrome/lighthouse/pull/6688))
+* clean up more clump/group/expandable cruft ([#6982](https://github.com/googlechrome/lighthouse/pull/6982))
+
+## Tests
+
+* smokehouse: assert `errorCode` in expectations ([#6851](https://github.com/googlechrome/lighthouse/pull/6851))
+* smokehouse: use node's native `URLSearchParams` ([#6929](https://github.com/googlechrome/lighthouse/pull/6929))
+* add type checking to `cli/tests/` ([#6874](https://github.com/googlechrome/lighthouse/pull/6874))
+* report: restore old, disabled failed grouping test ([#7006](https://github.com/googlechrome/lighthouse/pull/7006))
+
+## Misc
+
+* descriptions: more accurate metric descriptions ([#6508](https://github.com/googlechrome/lighthouse/pull/6508))
+* emulation: use correct Nexus 5X screen size ([#6932](https://github.com/googlechrome/lighthouse/pull/6932))
+* snyk: only keep vuln data for detectable libs ([#6919](https://github.com/googlechrome/lighthouse/pull/6919))
+* clean up local names within Config ([#6950](https://github.com/googlechrome/lighthouse/pull/6950))
+
# 4.0.0-beta (2018-11-29)
[Full Changelog](https://github.com/googlechrome/lighthouse/compare/v4.0.0-alpha.1...v4.0.0-beta)
diff --git a/clients/extension/manifest.json b/clients/extension/manifest.json
index 3bab6209cb27..684c6c1cb579 100644
--- a/clients/extension/manifest.json
+++ b/clients/extension/manifest.json
@@ -1,6 +1,6 @@
{
"name": "__MSG_appName__",
- "version": "3.3.0.4100",
+ "version": "4.0.0",
"minimum_chrome_version": "66",
"manifest_version": 2,
"description": "__MSG_appDescription__",
diff --git a/lighthouse-core/test/results/sample_v2.json b/lighthouse-core/test/results/sample_v2.json
index 17b6acce4bb6..b47b0931de26 100644
--- a/lighthouse-core/test/results/sample_v2.json
+++ b/lighthouse-core/test/results/sample_v2.json
@@ -5,7 +5,7 @@
"hostUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3358.0 Safari/537.36",
"benchmarkIndex": 1000
},
- "lighthouseVersion": "4.0.0-beta",
+ "lighthouseVersion": "4.0.0",
"fetchTime": "2018-03-13T00:55:45.840Z",
"requestedUrl": "http://localhost:10200/dobetterweb/dbw_tester.html",
"finalUrl": "http://localhost:10200/dobetterweb/dbw_tester.html",
diff --git a/package.json b/package.json
index d7ebf19cad34..f82506ed3215 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lighthouse",
- "version": "4.0.0-beta",
+ "version": "4.0.0",
"description": "Lighthouse",
"main": "./lighthouse-core/index.js",
"bin": {
diff --git a/proto/sample_v2_round_trip.json b/proto/sample_v2_round_trip.json
index 035e8408b0bf..fa934a87a3a3 100644
--- a/proto/sample_v2_round_trip.json
+++ b/proto/sample_v2_round_trip.json
@@ -3335,7 +3335,7 @@
"warningHeader": "Warnings: "
}
},
- "lighthouseVersion": "4.0.0-beta",
+ "lighthouseVersion": "4.0.0",
"requestedUrl": "http://localhost:10200/dobetterweb/dbw_tester.html",
"runWarnings": [],
"timing": {