Pianificazione del progetto AMP
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 Mon Dec 07 2020What was accomplished
- Internal release pipeline improvements
- Maintenance for custom AMP GitHub apps
- AMP closure compiler was upgraded from May to November
- Progress on code coverage measurements during tests
What's next
- Refactor Travis-specific CI pipeline code
- Continue work on other ongoing projects
Infrastructure
Status Update Mon Nov 09 2020What was accomplished
- Ushered 2-week release freeze (beta channel updated, but not stable / lts)
- Migrated AMP project CLA to latest OpenJS agreement
- Progress on Visual diff infrastructure redesign
- Progress on instrumenting minified code for coverage during E2E tests
What's next
- Fixes to AMP closure compiler build pipeline
- Explore technology options for a status page for AMP
- Explore automating asset downloading + page freezing for visual diff tests
- Continue work on other ongoing projects
Infrastructure
Status Update Fri Oct 02 2020What was accomplished
- Infra updates for release freeze from 10/26-11/8
- AMP has fully moved off Google CLA to OpenJS CLA
- Package management has been migrated from Yarn to NPM
- Travis integration migrated from travis-ci.org to travis-ci.com
Infrastructure
Status Update Thu Oct 01 2020What was accomplished
- Internal improvements to release process, including freezing from 10/26-11/8
- Beta browsers / OSs are included in manual testing matrix
- Coverage data can now be collected during E2E and manual testing
- Deployed new OpenJS CLA for
ampproject
(not blocking yet, will eventually replace Google CLA) - Fixes to package management (Yarn 1 is reaching end-of-life)
What's next
- Design review for package management solution (Yarn 1 vs. Yarn 2 vs. NPM)
- Test result collection and reporting for automated tests
- Documentation for release process and error reporting
- Syntax checks for OWNERS files
- Continue work on ongoing release projects
Infrastructure
Status Update Wed Sep 02 2020What was accomplished
- IE 11 integration tests are now blocking
- Investigated running Karma tests on an iOS simulator
- Internal infrastructure improvements to cherry-picks and generation of visual tests
- Upgraded custom AMP closure compiler to September, discovered crash (https://github.com/ampproject/amp-closure-compiler/issues/22#issuecomment-699145802)
What's next
- Fix closure crash
- Refactor internal CI code
- Investigate alternatives that allow for iOS testing
- Incorporate beta browsers / OSs in manual testing matrix
- Continue with ongoing projects (coverage, release infra, compilation toolchain)
Infrastructure
Status Update Tue Sep 01 2020What was accomplished
- Updates to visual diff internals (plus stability fixes during release process)
- Updates to cherry pick internals during release process
- Initial planning for improvements to CI pipeline
- Instrumented minified builds for code coverage measurements
What's next
- Instrument minified runtime in dev-server and during automated testing
- Begin consolidating code specific to CI service across build-system
- Initial planning for reorganizing of AMP source code directories
- Continue work on other in-flight projects
Infrastructure
Status Update Mon Aug 03 2020What was accomplished
- Improvements to guts of visual testing
- Improvements to workflow for generating github releases
- AMP can now be built and tested on Windows
- Discovered cause of test flakes on Safari (incomplete iframe cleanup)
- Investigated code coverage for minified builds
What's next
- Planning for improvements to CI pipeline
- Instrument minified builds, augment dev server middleware
- Continue work on in-flight projects mentioned above
Infrastructure
Status Update Sat Aug 01 2020What was accomplished
- Started deprecating old RTVs > 6 months old
- Started automating new release creation as part of cherry-pick workflow
- Added a windows native compiler to
ampproject/amp-closure-compiler
- Fixed race in
watch
logic of defaultgulp
server - New database for test case level reporting for unit / integration tests
- Error reporting / monitoring for module/nomodule rollout
What's next
- Infrastructure enhancements around release creation / tagging
- Scale up visual testing
- Publish native compiler to npm under
@ampproject/amp-closure-compiler
- Add reporting for E2E tests
- Instrument minified code with mapping to original source code
- Automate error report issue creation
Infrastructure
Status Update Sat May 02 2020What 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)
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
Infrastructure
Status Update Mon Feb 03 2020What 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 usingyarn
- Triaged backlog of infrastructure issues
- Renaming
AMP_CANARY
cookie to__Host-AMP_OPT_IN
What's next
- Default minified build (
gulp dist
) will now addAMP_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)
Infrastructure
Status Update Mon Jan 06 2020What 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
What's next
- Wrap up docs / comms for LTS
- Improve changelog creation
- Network logging API for E2E tests
- Measure code coverage during integration tests
Infrastructure
Status Update Thu Jan 02 2020What 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 forgulp {build|watch|dist}
- Published Infra doc for OpenJS
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)
Infrastructure
Status Update Mon Dec 09 2019What 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
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
Infrastructure
Status Update Fri Nov 01 2019What 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
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
Infrastructure
Status Update Wed Oct 02 2019What 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
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
Infrastructure
Status Update Tue Oct 01 2019What 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
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
Infrastructure
Status Update Sun Sep 01 2019What 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
What's next
- Owners bot: always / never notify owners, auto-assign reviewers, syntax checks
- Improve Travis greenness
- Release tooling (“is my PR in production?”)
Infrastructure
Status Update Mon Jul 08 2019Release 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)
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
Infrastructure
Status Update Sun Jun 02 2019Release quality
- Fixed saucelabs safari 12.1 bug
- Run integration tests on IE 11
Developer experience
- Refactor of
gulp test
intogulp unit|integration|a4a
- WIP: Bot to deploy in-flight PR code for demo / testing (on-demand)
- Refactored / sped up unminified builds by 15%
What's next
- Redeploy owners bot with new reviewers assignment algorithm
- Generate externs for all typedefs found in
3p/ads/bind
Infrastructure
Status Update Thu May 02 2019Release 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
What's next
- Enforce code coverage for lines changed by PRs
- Move owners code to ampproject repo, reuse common libs
Infrastructure
Status Update Wed May 01 2019What was accomplished
Release quality
- Progress on fixing failing E2E tests
- IE-11 integration tests are back in blocking mode (tests must opt in)
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