#BlackLivesMatter
Do you build things with AMP? Fill out the new AMP Developer Survey!
AMP

The AMP Project Roadmap

The ongoing development of AMP is conducted in working groups, each with knowledge or interest in a specific area of AMP.

To make their work visible to the community all groups provide regular status updates with details of what they have accomplished and what's up next.

All of the updates listed here are available as issues on GitHub and we'd love you to join the conversation there!

Select working groups

Infrastructure

Status Update Tue May 26 2020

What was accomplished

  • Deployed Error Monitor UI (in beta)
  • gulp tasks can now programmatically build runtime during tests (#28326)
  • Established grouping & reviewer assignment for Renovate PRs (#28322)
  • Investigated / debugged disconnection failures due to Sauce Labs (#28343)
  • Added performance tests to Travis CI (#28148)
All details on GitHub

What's next

  • Move generation of release binaries to open source via gulp release
  • Automatically create issues for commonly seen runtime errors
  • Add a presubmit check for renovate configuration changes
  • Test / deploy new version of karma-sauce-launcher
All details on GitHub

Infrastructure

Status Update Mon Feb 03 2020

What we did

  • Updated amp.dev release schedule page
  • Release tagging is live (PR Use: In Stable / Beta / Experimental)
  • Updated cherry-pick template with new release channel names
  • Added a way to build only the core runtime via gulp build | dist | watch --core_runtime_only
  • Clarified process for adding amphtml dependencies using yarn
  • Triaged backlog of infrastructure issues
  • Renaming AMP_CANARY cookie to __Host-AMP_OPT_IN
All details on GitHub

What's next

  • Default minified build (gulp dist) will now add AMP_CONFIG to runtime files
  • Performance tests as part of CI / release workflow
  • Make LTS and nightly channel widely available
  • Take steps to reduce CI flakiness (sauce labs, percy)
All details on GitHub

Infrastructure

Status Update Tue Jan 21 2020

What we did

  • Updated Release documentation
  • Forbid iframe-ing experiments page to prevent clickjacking
  • Release tagging works
  • Updated / unflaked e2e tests with new selenium version
  • Enforced JSDoc-based access controls in source code
  • New --core_runtime_only flag for gulp {build|watch|dist}
  • Published Infra doc for OpenJS
All details on GitHub

What's next

  • Interactive visualization for release schedule/cadence
  • Announce / monitor LTS launch
  • Rename AMP_CANARY cookie to __Host-AMP_OPT_IN
  • Automate deployment of internal GitHub apps
  • Refactor gulp changelog
  • Integrate perf tests into CI
  • Fix Sauce Labs disconnects (with help from Karma & Sauce)
All details on GitHub

Infrastructure

Status Update Mon Jan 06 2020

What we did

  • LTS: Updated validator and other parts to support new release type
  • GH releases are now auto-published
  • WIP: Updates to release schedule
  • New cherry picking section of release dashboard
  • Network logging for E2E tests
  • Added coverage instrumentation for unminified builds
All details on GitHub

What's next

  • Wrap up docs / comms for LTS
  • Improve changelog creation
  • Network logging API for E2E tests
  • Measure code coverage during integration tests
All details on GitHub

Infrastructure

Status Update Mon Dec 09 2019

What we did

  • Release names: stable, beta, experimental, nightly, lts
  • Design reviews for nightly and lts
  • Opt-in cookie for arbitrary RTVs
  • Fixed ~5k unit / integration tests that were using global sandbox
  • Added support for checking bundle-size of all JS files
  • Legacy bluebird promise cleanup
All details on GitHub

What's next

  • Deploy automated release tagger
  • More work on LTS and nightly releases
  • Validator changes to recognize LTS releases
  • Network logging for E2E tests
  • Enforce bundle-size check for JS files that opt in
All details on GitHub

Infrastructure

Status Update Mon Nov 11 2019

What we did

  • OWNERS syntax check via API
  • Eliminating use of global sinon
  • Fixed breaks due to new Node LTS
  • Owners bot GCE → GAE (with tree, teams, and syntax guide)
  • Test infra for amp-github-apps
  • Fixed npm security vulnerabilities
  • Premium Travis VMs are live
All details on GitHub

What's next

  • Automate GitHub release creation and improve content
  • Auto-label PRs on release
  • Track bundle-size for extensions
  • Automate node LTS upgrades
  • Upgrade sinon and eliminate the use of global sandbox

All details on GitHub

Infrastructure

Status Update Mon Oct 28 2019

What we did

  • New build-pipeline check for unknown dependencies
  • Automating GitHub release publication (tracking release CLs)
  • Owners Bot migrated to AppEngine w/ virtual repository
  • Public-facing owners tree & status pages
  • New style check for non-JS files (OWNERS, docs): gulp prettify
  • Lots of small documentation fixes
All details on GitHub

What's next

  • Make owners bot repo agnostic
  • Travis check for OWNERS syntax
  • First steps on monthly release channels
  • Automate GitHub release creation and improve content
  • Track bundle-size for extensions
  • Adopt new bundle-size checker
  • Un-break amphtml-validator for users of older Node versions
  • Automate node upgrades across all package.json files
All details on GitHub

Infrastructure

Status Update Mon Oct 14 2019

What we did

  • Owners check is now blocking
  • Enabled automatic reviewer assignment
  • Added bundle-size support for arbitrary binaries / extensions
  • Reorganized build-system and repo root directory for better code ownership boundaries
  • Investigated ways to check owners file changes during CI
  • Presented 2019 Infra highlights during contributor summit
All details on GitHub

What's next

  • Deploy bundle-size checks for a few non-v0.js files
  • Investigate / fix missing PR-deploy button for some folks
  • Add a CI check for OWNERS file formatting
  • Follow up on open requests from contributor summit
All details on GitHub

Infrastructure

Status Update Tue Sep 17 2019

What we did

  • Deployed owners bot after design review
  • Owners is now a non-blocking check on Github
  • Enabled brotli size tracking via bundle-size bot (not yet default)
  • Lazy-build is default gulp mode (to disable: --eager_build)
  • Re-wrote dev server as an in-process server
  • Sauce Labs start / stop scripts supported on Linux and Mac OS
  • Fixed bug that caused frequent Travis cache corruption
All details on GitHub

What's next

  • Owners bot: always / never notify owners, auto-assign reviewers, syntax checks
  • Improve Travis greenness
  • Release tooling (“is my PR in production?”)
All details on GitHub

Infrastructure

Status Update Mon Jul 08 2019

Release quality

  • Initial version of PR deploy bot
  • Fixed amp-date-picker bug, wrote post mortem
  • Enabled dormant conformance checks for runtime code

Developer experience

  • Migrated CJS runtime deps to ESM
  • Babel transforms for multipass
  • Fixed babel global transform config
  • Fixed gulp watch bug (cancel on compilation error)
All details on GitHub

What's next

  • More work on PR deploy bot
  • Re-deploy owners bot with new reviewers assignment algorithm
  • Generate externs for all typedefs found in 3p/ads/bind
All details on GitHub

Infrastructure

Status Update Mon Jun 24 2019

Release quality

  • Fixed saucelabs safari 12.1 bug
  • Run integration tests on IE 11

Developer experience

  • Refactor of gulp test into gulp unit|integration|a4a
  • WIP: Bot to deploy in-flight PR code for demo / testing (on-demand)
  • Refactored / sped up unminified builds by 15%
All details on GitHub

What's next

  • Redeploy owners bot with new reviewers assignment algorithm
  • Generate externs for all typedefs found in 3p/ads/bind
All details on GitHub

Infrastructure

Status Update Tue May 28 2019

Release quality

  • E2E tests are now a blocking check
    • Viewer / Shadow, Chrome / FF
  • Integration tests on minified runtime
  • Unit tests on Chrome / FF
  • GH status:
    • Code coverage (non-blocking)
    • Failing tests (blocking)

Developer experience

  • Prettier adoption complete!
  • Closure compiler at v20190513
  • Travis CI build / test optimizations
  • Local testing: gulp pr-check
All details on GitHub

What's next

  • Enforce code coverage for lines changed by PRs
  • Move owners code to ampproject repo, reuse common libs
All details on GitHub

Infrastructure

Status Update Mon May 13 2019

What was accomplished

Release quality

  • Progress on fixing failing E2E tests
  • IE-11 integration tests are back in blocking mode (tests must opt in)
All details on GitHub

Developer experience

  • Added babel transforms for version numbers and AMP.extension
  • Single pass now uses compiler.jar with zero custom passes
  • Refactored compilation code
  • WIP: PR checks for minified code

What's next

  • PR statuses for integration tests
  • Make e2e tests a blocking check
  • Investigate hermetic AMP tests
  • Prettier implementation
All details on GitHub

Infrastructure

Status Update Mon Apr 29 2019

What was accomplished

  • Closure compiler 2018 → 2019
  • gulp dist 4x faster
  • gulp dist --single_pass 1.5x faster
  • gulp nailgun-start for local dev
  • Visual tests are hermetic
    • Snapshots now show errors
  • Sauce infra issues sorted out
All details on GitHub

What's next

  • Update GH branch protection rules to amphtml/reviewers
  • E2E tests on Firefox
  • Iron out more CI issues
All details on GitHub

Infrastructure

Status Update Mon Apr 01 2019

What was accomplished

  • GH test status bot is now live
  • Created Windows dev VM to run integration tests locally
  • Several fixes of typedefs / casts
  • WIP: Closure compiler upgrade
All details on GitHub

What's next

  • Run E2E tests as part of CI
  • Review, test, and merge closure compiler upgrade
  • Upgrade owners bot to handle “reviewers” (vs. “owners”)
All details on GitHub

Infrastructure

Status Update Mon Mar 18 2019

What was accomplished

  • Manual test planning under way
  • Owners bot can now retrieve teams information
  • Progress on detecting bad cast locations that block single-pass
  • Progress on elevating test results to PR statuses
All details on GitHub

What's next

  • Submit PR for test statuses
  • Fix bad cast locations that affect single pass correctness
All details on GitHub

Infrastructure

Status Update Mon Mar 04 2019

What was accomplished

  • Deployed AMP Owners bot
    • Fixed permissions, logging
    • Added retry mechanism
    • Enabled in non-blocking mode
  • Fixes for build matrix / PR check
  • Solved race in amp-foo-latest.js
  • Faster booting xenial Travis VMs
  • Updated / cleaned up package.json
  • Investigated use of prettier
All details on GitHub

What's next

  • Move test results to status check
  • Auto-assignment for owner reviews
  • Add a way to re-run all checks on Travis
  • Differentiate between reviewers and owners (per new guidelines)
  • Add IE 11 testing to CI builds
All details on GitHub

Infrastructure

Status Update Tue Feb 19 2019

What was accomplished

  • New travis build matrix
  • Doubled Travis VM allocation
  • Fixits for Visual diff (per-test subdomains, new verification API)
  • Unified testing port number logic
  • Updates to owners bot (Probot)
All details on GitHub

What's next

  • Move test results to PR status checks
  • Implement (optional) retry mechanism for owners check
  • Build matrix optimizations
  • Expose new release automation
All details on GitHub

Infrastructure

Status Update Mon Feb 04 2019

What was accomplished

  • ~1 dozen new tests
  • E2e tests ready to be added to Travis runs
  • Got more Travis VMs
  • RC build is now live for versioned requests
  • Implemented configuration diffs for release automation
All details on GitHub

What's next

  • Parallelize / optimize Travis CI (separate build from tests)
  • Deploy new version of bundle-size bot
  • Direct traffic to RC for unversioned requests
All details on GitHub

Infrastructure

Status Update Tue Jan 22 2019

What was accomplished

  • Selenium-based end-to-end tests now available via gulp e2e
  • Added rc-channel opt-in flag
  • Submitted code to divert 0.5% AMP traffic to the RC build
  • bundle-size is now a required check
All details on GitHub

What's next

  • Build / serve before e2e tests
  • Run e2e tests on Travis
  • Make owners bot check blocking
  • Remove hard bundle size check
All details on GitHub