Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.0 #5262

Merged
merged 437 commits into from
Jul 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
437 commits
Select commit Hold shift + click to select a range
32cfdcf
Upgrade to latest Lerna (#5163)
glasser May 3, 2021
b9dc920
Upgrade TypeScript and typecheck tests (#5165)
glasser May 5, 2021
b2f3953
apollo-server-koa: enable noImplicitReturns
glasser May 4, 2021
45c1031
apollo-server-hapi: enable noImplicitThis
glasser May 4, 2021
df1b539
apollo-server-errors: enable noImplicitAny
glasser May 4, 2021
640a746
apollo-server-integration-testsuite: fully strict
glasser May 4, 2021
209ed1a
apollo-server-micro: fully strict
glasser May 4, 2021
9ba0df6
apollo-server-core: remove workaround for a noUnusedLocals bug
glasser May 4, 2021
c740835
Merge pull request #5171 from apollographql/glasser/stricter-ts
glasser May 5, 2021
9f69abb
follow-up to #5165 from unsaved editor
glasser May 5, 2021
4a8330e
Update to latest version of Fastify packages. (#5174)
glasser May 5, 2021
bc382e6
apollo-server-koa: enable noImplicitAny and strictNullChecks (#5177)
glasser May 5, 2021
93d586b
apollo-server-hapi: enable noImplicitAny and strictNullChecks (#5178)
glasser May 5, 2021
6cce70c
tests: make `npm audit` happy by inlining apollo-fetch (#5180)
glasser May 5, 2021
5a55a8b
apollo-server-core: Remove inconsistent `@cacheControl` auto-definiti…
glasser May 6, 2021
a29db0e
apollo-server-express: don't promise to support Connect (#5173)
glasser May 6, 2021
698ac3a
Update graphql-tools to v7 scoped packages and simplify dependency (#…
glasser May 6, 2021
97073f3
Release
glasser May 6, 2021
7e496d6
apollo-server-express: inline graphqlExpress, delete graphqlConnect (…
glasser May 6, 2021
875ab0f
apollo-server-core: Fix imports and exports from plugins directory (#…
glasser May 7, 2021
8382b61
apollo-server-lambda: createHandler's handler doesn't take a callback…
glasser May 7, 2021
41681eb
Upgrade @types/aws-lambda, resolving an issue (#5189)
glasser May 7, 2021
bc18800
Remove some remaining references to "engine" (#5192)
glasser May 7, 2021
06a9532
Remove 'tracing' constructor option and apollo-server-tracing (#5193)
glasser May 7, 2021
071196e
apollo-cache-control: Don't set `cacheControl` response extension
glasser May 7, 2021
da6f1ff
Make cache control follow our standard built-in plugin pattern
glasser May 7, 2021
991263e
cache control: update requestContext.overallCachePolicy continuously
glasser May 8, 2021
ffc6efb
apollo-server-integration-testsuite: test trace.cachePolicy
glasser May 8, 2021
fecc440
Remove `cacheHints` Map (except for testing)
glasser May 10, 2021
9e3218d
Merge pull request #5194 from apollographql/glasser/remove-cachecontr…
glasser May 10, 2021
9c38dcc
Make server.start() required for non-serverless frameworks (#5195)
glasser May 10, 2021
aee0ec4
Enforce that tests don't log (#5227)
glasser May 21, 2021
a65396f
apollo-server-lambda: outsource Lambda expertise (#5211)
glasser May 21, 2021
cf4a95a
apollo-server-lambda: move event/context back to top-level context op…
glasser May 21, 2021
6bcc943
Generalize Playground support to a simple "frontend page" plugin API …
glasser May 25, 2021
f6d54dc
Merge remote-tracking branch 'origin/main' into release-3.0
glasser May 25, 2021
1bf1452
Remove apollo-server-testing (#5239)
glasser May 25, 2021
9813284
Merge remote-tracking branch 'origin/main' into release-3.0
glasser May 25, 2021
80006d1
nvmrc: use Node 16 on release-3.0
glasser May 25, 2021
c2ca923
Stop installing polyfills by dropping transitive apollo-env dep(#5244)
glasser May 26, 2021
8a3a88d
fix typo in _redirects
glasser May 28, 2021
9365d5e
Merge remote-tracking branch 'origin/main' into release-3.0
glasser May 28, 2021
01a0ed8
check
glasser May 28, 2021
4736491
Complete the merge of the graph ref change to AS3
glasser May 28, 2021
fb10999
Docs: adding link to CDK SST Lambda tutorial (#5242)
jayair May 28, 2021
bba5404
Fix doc typo
glasser May 28, 2021
c6ba1ad
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 1, 2021
36aa820
CHANGELOG tweaks
glasser Jun 1, 2021
68b776f
Release
glasser Jun 1, 2021
946fc6f
CHANGELOG: fastify v3
glasser Jun 1, 2021
88a058d
Make docs peer deps happy
glasser Jun 2, 2021
8bc07a0
Make cache policy more useful (#5248)
glasser Jun 2, 2021
fa87f2c
Implement `@cacheControl(inheritMaxAge: true)` (#5247)
glasser Jun 3, 2021
7f59739
Rename "frontend" to "landing page" (#5269)
glasser Jun 3, 2021
2a7c449
One last frontend->landing page
glasser Jun 3, 2021
28f7f4c
Apollo has 2 Ls
glasser Jun 3, 2021
faeef96
Remove empty try/finally (#5283)
glasser Jun 7, 2021
a7f4ed7
WIP edits to AS3 changelog
Jun 8, 2021
0527e48
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 9, 2021
e5198c4
prettier on an integration testsuite file
glasser Jun 9, 2021
fd93b76
apollo-server-lambda: Test against a mock ALB; upgrade to fix it (#5291)
glasser Jun 9, 2021
4defa81
Make error handling around APQs more consistent
glasser Jun 9, 2021
438bb3b
Inline didEnd
glasser Jun 9, 2021
75dd2e0
Usage reporting: don't combine resolved and request operation name
glasser Jun 9, 2021
e0c81c8
Merge pull request #5287 from apollographql/glasser/emit-error-and-th…
glasser Jun 9, 2021
45e69e0
Make apollo-server-cloud-functions wrap apollo-server-express (#5293)
glasser Jun 9, 2021
36410aa
Only one way of dealing with ApolloError extensions (#5294)
glasser Jun 9, 2021
e7db21d
Incorporate feedback + new PRs from glasser
Jun 10, 2021
db17ed1
Make the plugin (and gateway) API almost entirely async (#5295)
glasser Jun 10, 2021
e4d4bff
Rename GraphQLService to GatewayInterface (#5296)
glasser Jun 10, 2021
b83cf4b
Make CORS handling more consistent (#5297)
glasser Jun 10, 2021
1f14dad
Incorporate #5295, #5296
Jun 10, 2021
99440d1
Mention backward compatibility of old symbol name
Jun 10, 2021
954d260
Merge pull request #5286 from apollographql/sb/changelog-edits
Jun 10, 2021
5da3668
CHANGELOG for #5297
glasser Jun 10, 2021
46d9329
Make early errors more consistent and more 4xxy (#5305)
glasser Jun 15, 2021
0bb223e
5288 - Allow setting response status (#5289)
nathan-melly Jun 15, 2021
fa26ab9
Make web framework integrations into peer dependencies (#5306)
glasser Jun 15, 2021
9c90c92
Run `npm audit fix`
glasser Jun 15, 2021
bf0694e
Clean up remaining skipped tests and 'AS3' comments
glasser Jun 15, 2021
20adade
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 15, 2021
307c632
Update types for Express again
glasser Jun 15, 2021
7151823
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 15, 2021
327f7cc
Merge branch 'main' into release-3.0
glasser Jun 15, 2021
a839b74
Renovate: Remove baseBranches on release branch
glasser Jun 15, 2021
a707b49
Update APQ docs and tests to Apollo Client 3 (#5308)
glasser Jun 15, 2021
97907a4
apollo-server: Clean up createServerInfo (#5310)
glasser Jun 15, 2021
e171b12
chore(deps): update dependency @graphql-codegen/cli to v1.21.5 (#5253)
renovate[bot] Jun 15, 2021
7ba9aa0
chore(deps): update dependency @types/micro to v7.3.5 (#5217)
renovate[bot] Jun 15, 2021
4269b9b
chore(deps): update dependency @types/stoppable to v1.1.1 (#5275)
renovate[bot] Jun 15, 2021
6b77914
chore(deps): update dependency apollo-graphql to v0.9.3 (#5234)
renovate[bot] Jun 15, 2021
dfea0bf
chore(deps): update dependency ioredis to v4.27.6 (#5215)
renovate[bot] Jun 15, 2021
cb12a10
chore(deps): update dependency prettier to v2.3.1 (#5277)
renovate[bot] Jun 15, 2021
a13fed2
chore(deps): update dependency @types/lodash to v4.14.170 (#5216)
renovate[bot] Jun 15, 2021
ee98726
chore(deps): update dependency @types/aws-lambda to v8.10.77 (#5274)
renovate[bot] Jun 15, 2021
ea2fe59
Upgrade to Jest 27 (#5311)
glasser Jun 15, 2021
429c504
fix: extensions argument not being passed down by Forbidden and Autho…
bristoljon Jun 15, 2021
2dae263
Changelog for #5309
glasser Jun 15, 2021
db1c55d
Combine two tsc invocations in 'pretest' into one
glasser Jun 15, 2021
72295c2
apollo-reporting-protobuf: check in generated code, regenerate manual…
glasser Jun 16, 2021
18fac1d
chore(deps): pin dependency @sinonjs/fake-timers to v7.0.5 (#5314)
renovate[bot] Jun 16, 2021
315c7fd
chore(deps): update dependency @graphql-tools/mock to v8.1.3 (#5315)
renovate[bot] Jun 16, 2021
2002d9f
chore(deps): update dependency @hapi/hapi to v20.1.4 (#5316)
renovate[bot] Jun 16, 2021
5e32579
chore(deps): update dependency @types/node to v12.20.15 (#5320)
renovate[bot] Jun 16, 2021
1dd0e59
chore(deps): update dependency nock to v13.1.0 (#5322)
renovate[bot] Jun 16, 2021
25d72b2
chore(deps): update dependency typescript to v4.3.2 (#5324)
renovate[bot] Jun 16, 2021
038baa3
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 16, 2021
6b7507a
chore(deps): update dependency @sinonjs/fake-timers to v7.1.2 (#5319)
renovate[bot] Jun 16, 2021
d461515
chore(deps): update dependency @graphql-tools/utils to v7.10.0 (#5318)
renovate[bot] Jun 16, 2021
e624134
chore(deps): update dependency graphql to v15.5.0 (#5321)
renovate[bot] Jun 16, 2021
0898f81
Introduce ApolloServerPluginLandingPageDefault (#5329)
glasser Jun 16, 2021
f23a4eb
Release
glasser Jun 16, 2021
82aab1d
CHANGELOG: Fix reference to Apollo Sandbox
glasser Jun 16, 2021
09dbe3e
Release
glasser Jun 16, 2021
8ae3291
chore(deps): update dependency fastify to v3.18.0 (#5331)
renovate[bot] Jun 16, 2021
9553da6
chore(deps): update dependency typescript to v4.3.3 (#5333)
renovate[bot] Jun 17, 2021
57a0111
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 17, 2021
0a623f0
Allow offline docs development by setting $OFFLINE
glasser Jun 17, 2021
f6d7b93
chore(deps): update dependency typescript to v4.3.4 (#5334)
renovate[bot] Jun 17, 2021
0ec8148
Automatically call start() from the testing executeOperation() (#5337)
glasser Jun 18, 2021
15b42dc
chore(deps): update dependency @graphql-codegen/typescript-operations…
renovate[bot] Jun 20, 2021
0376c83
chore(deps): update dependency graphql to v15.5.1 (#5343)
renovate[bot] Jun 20, 2021
613da25
chore(deps): update dependency @graphql-codegen/typescript-operations…
renovate[bot] Jun 21, 2021
cdd4193
chore(deps): update dependency gatsby-theme-apollo-docs to v4.7.11 (#…
renovate[bot] Jun 22, 2021
fa76505
chore(deps): update dependency jest to v27.0.5 (#5258)
renovate[bot] Jun 22, 2021
9abe4ef
chore(deps): update dependency jest-config to v27.0.5 (#5259)
renovate[bot] Jun 22, 2021
1ff98d0
Fix recently added bug in SSL termination example
glasser Jun 17, 2021
0984b38
Explain why introspection
glasser Jun 17, 2021
d3b9fa6
Update various things in apollo-server reference for AS3
glasser Jun 17, 2021
d4c9b48
schema reporting: be more explicit that you have to turn it on
glasser Jun 17, 2021
cd84263
errors page: fix for #5294, some other tweaks
glasser Jun 17, 2021
41ade63
plugins: fix typo, no need to warn about pre-2.2
glasser Jun 17, 2021
adb3fb5
drop trailing whitespace
glasser Jun 17, 2021
2ea900a
Recommend APOLLO_GRAPH_REF
glasser Jun 17, 2021
2cf8415
caching: wording fixes
glasser Jun 17, 2021
0c34a5e
custom scalars: make non-odd number an error, not a weird null
glasser Jun 17, 2021
4f49068
Remove DESIGN.mdified
glasser Jun 17, 2021
8c61550
Delete ROADMAP.md
glasser Jun 17, 2021
509f648
CONTRIBUTING: more details on reproduction recipes
glasser Jun 17, 2021
95ed551
Remove unused sub-CHANGELOGS
glasser Jun 17, 2021
57dad9f
Tweaks to top-level README
glasser Jun 17, 2021
18d31ce
Make apollo-server-core README more enlightening
glasser Jun 17, 2021
31947cf
Document Fastify v3 support in a-s-fastify README
glasser Jun 17, 2021
7d3c9fd
a-s-hapi README: tweak wording
glasser Jun 17, 2021
f954750
Make apollo-server-plugin-base README less empty
glasser Jun 17, 2021
dafefdf
Link to docs from response cache README
glasser Jun 17, 2021
384c208
Tweaks from feedback
glasser Jun 22, 2021
0ac07ce
Merge pull request #5338 from apollographql/glasser/misc-doc-fixes
glasser Jun 22, 2021
51cff45
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 22, 2021
eedbdd9
Updates to caching article
Jun 23, 2021
ad879f7
Fix some broken links
Jun 23, 2021
b75ef03
docs: make new file uploads example work (#5355)
glasser Jun 23, 2021
f0fe495
TS: enable noImplicitOverride, add overrides (#5358)
glasser Jun 23, 2021
b41d2e6
plugin/landingPage: a bit of HTML for when offline (#5362)
glasser Jun 23, 2021
d23fc9f
Incorporate feedback from @glasser
Jun 23, 2021
3da6f7d
More details on caching philosophy and heuristics
Jun 23, 2021
51252b3
Remove a word
Jun 23, 2021
dbae601
Merge pull request #5354 from apollographql/sb/docs-cache-updates
Jun 23, 2021
489ab81
Refactor plugins docs
Jun 21, 2021
130dd7b
Fix broken links
Jun 21, 2021
665cd25
Rename native to built-in for plugins
Jun 22, 2021
00bad61
Pull in some edits I had on another branch
Jun 22, 2021
e6a6ca4
Incorporate feedback from @glasser
Jun 23, 2021
74896b8
Merge pull request #5348 from apollographql/sb/more-doc-fixes
Jun 23, 2021
9ec0140
Default version is 3, remove v1, link to v2 in main for now
Jun 23, 2021
13b137f
Merge pull request #5365 from apollographql/sb/docs-default-version
Jun 24, 2021
2d78de5
chore(deps): update dependency graphql-tag to v2.12.5 (#5371)
renovate[bot] Jun 25, 2021
2805e8b
GraphQLRequestContext.overallCachePolicy should be readonly (#5375)
glasser Jun 26, 2021
3203c13
New migration guide for AS3 (#5363)
glasser Jun 26, 2021
16c00c9
Release
glasser Jun 26, 2021
f8a1125
Remove migration-engine-plugins doc (#5376)
glasser Jun 26, 2021
4c61a8b
chore(deps): update dependency prettier to v2.3.2 (#5377)
renovate[bot] Jun 26, 2021
0ff25a5
chore(deps): update dependency @types/express-serve-static-core to v4…
renovate[bot] Jun 28, 2021
1fa897c
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 28, 2021
a2fead3
default landing page: support `footer` (#5384)
glasser Jun 28, 2021
721fa9e
docs: reference for cache control plugin (#5385)
glasser Jun 28, 2021
cb75d65
Add AS3 landing page to getting started tutorial
Jun 28, 2021
512164b
Merge pull request #5386 from apollographql/sb/docs-gs-landing-page
Jun 28, 2021
ad73f47
Docs for Apollo Server landing pages
Jun 28, 2021
3b06a89
chore(deps): update dependency @hapi/hapi to v20.1.5 (#5387)
renovate[bot] Jun 29, 2021
85ebe79
chore(deps): update dependency gatsby-theme-apollo-docs to v4.7.12 (#…
renovate[bot] Jun 29, 2021
563ed8b
chore(deps): update dependency jest to v27.0.6 (#5389)
renovate[bot] Jun 29, 2021
41c900b
chore(deps): update dependency jest-config to v27.0.6 (#5390)
renovate[bot] Jun 29, 2021
bb435e9
chore(deps): update dependency fastify to v3.18.1 (#5393)
renovate[bot] Jun 29, 2021
15cdcb3
Mention startup error if multiple landing pages specified
Jun 29, 2021
d5fe6cb
Incorporate feedback from @glasser
Jun 29, 2021
1d9262b
Rename landing page file
Jun 29, 2021
3291288
Fix broken links
Jun 29, 2021
f5c730b
Include footers in landing page images
Jun 29, 2021
996e5e4
Merge pull request #5391 from apollographql/sb/landing-page-docs
Jun 29, 2021
ce65f05
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jun 29, 2021
f5e124e
chore(deps): update dependency @graphql-codegen/cli to v1.21.6 (#5398)
renovate[bot] Jun 30, 2021
e229fd0
chore(deps): update dependency @graphql-codegen/typescript-operations…
renovate[bot] Jun 30, 2021
d0c1fdd
docs: adjustments to subscriptions migration (#5400)
trevor-scheer Jun 30, 2021
3109d77
Make default CORS behavior even more consistent (#5401)
glasser Jun 30, 2021
4669d1a
Release
glasser Jun 30, 2021
d8e7a6e
docs: add landing page reference (#5394)
glasser Jun 30, 2021
049c9e2
chore(deps): update dependency typescript to v4.3.5 (#5405)
renovate[bot] Jul 1, 2021
7ab00b2
docs: update Azure Functions deployment guide (#5403)
glasser Jul 1, 2021
7b5db82
Fix some relative links (#5407)
glasser Jul 1, 2021
15c7f7c
apollo docs: updated documentation for heroku deployment (#5209)
waddling Jul 1, 2021
ad737e7
docs: refactor middleware and ApolloServer docs (#5396)
glasser Jul 1, 2021
c46c54c
Minor touchups to Heroku article (#5409)
Jul 1, 2021
f04cb2f
docs: update subscriptions docs for v3 (#5406)
trevor-scheer Jul 1, 2021
a07a4ff
docs: Mention graphql-ws (#5410)
glasser Jul 1, 2021
4d2e3ff
Tweak Google Cloud Functions and Lambda docs (#5411)
glasser Jul 1, 2021
8690837
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jul 1, 2021
b2c2097
Release
glasser Jul 1, 2021
5819780
Second pass on migration guide (#5412)
Jul 2, 2021
3731a83
docs: tell how to install RC on a few key pages (#5416)
glasser Jul 2, 2021
6faedd9
docs: Remove Netlify deploy docs (#5417)
glasser Jul 2, 2021
f93882b
Edits to subscriptions article (#5419)
Jul 2, 2021
ad2cdb5
Release
glasser Jul 2, 2021
fab9351
chore(deps): update dependency @types/uuid to v8.3.1 (#5421)
renovate[bot] Jul 2, 2021
b61f082
chore(deps): update dependency nock to v13.1.1 (#5423)
renovate[bot] Jul 4, 2021
f30bc26
chore(deps): update dependency @apollo/client to v3.3.21 (#5426)
renovate[bot] Jul 6, 2021
e5fbaf6
chore(deps): update dependency @types/async-retry to v1.4.3 (#5427)
renovate[bot] Jul 6, 2021
e7c0329
chore(deps): update dependency @types/aws-lambda to v8.10.78 (#5428)
renovate[bot] Jul 6, 2021
055b67d
chore(deps): update dependency @types/body-parser to v1.19.1 (#5429)
renovate[bot] Jul 6, 2021
02e71dd
chore(deps): update dependency @types/bunyan to v1.8.7 (#5430)
renovate[bot] Jul 6, 2021
3f0450b
chore(deps): update dependency @types/connect to v3.4.35 (#5431)
renovate[bot] Jul 6, 2021
8aca7a4
chore(deps): update dependency @types/cors to v2.8.11 (#5432)
renovate[bot] Jul 7, 2021
d948605
chore(deps): update dependency @types/express to v4.17.13 (#5433)
renovate[bot] Jul 7, 2021
d60fd62
chore(deps): update dependency @types/express-serve-static-core to v4…
renovate[bot] Jul 7, 2021
6ce5ecc
chore(deps): update dependency @types/hapi__hapi to v20.0.9 (#5435)
renovate[bot] Jul 7, 2021
87d4dcf
chore(deps): update dependency @types/ioredis to v4.26.5 (#5436)
renovate[bot] Jul 7, 2021
4a8726c
chore(deps): update dependency @types/jest to v26.0.24 (#5437)
renovate[bot] Jul 7, 2021
84b7587
chore(deps): update dependency @types/koa-router to v7.4.3 (#5438)
renovate[bot] Jul 7, 2021
c8062f7
chore(deps): update dependency @types/lodash to v4.14.171 (#5439)
renovate[bot] Jul 7, 2021
74b1d97
chore(deps): update dependency @types/lru-cache to v5.1.1 (#5440)
renovate[bot] Jul 7, 2021
348aa97
chore(deps): update dependency @types/node-fetch to v2.5.11 (#5441)
renovate[bot] Jul 7, 2021
537cf1c
docs: remove migration to 2.x doc (old, already unlinked)
glasser Jul 7, 2021
76344b6
docs/READMEs: add `@3.x` to all `npm install` invocations
glasser Jul 7, 2021
81ae16f
Update header comment to say @3.x instead of @rc
glasser Jul 7, 2021
a97684f
docs: get ready for 3.0.0 to be released to `next` (#5442)
glasser Jul 7, 2021
bcfd36c
Release
glasser Jul 7, 2021
7550165
docs: fix link which is broken when put in v3
glasser Jul 7, 2021
8a73bd1
docs: fix unknown prism language
glasser Jul 7, 2021
c80aa5e
docs: link to release-3.0 Changelog for now
glasser Jul 7, 2021
fb723b7
docs: Fix build failure when v3
glasser Jul 7, 2021
069178d
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jul 7, 2021
613c952
chore(deps): update all non-major dependencies (#5444)
renovate[bot] Jul 7, 2021
f404ad3
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jul 8, 2021
cc2f76b
Edits to union/interface docs (#5420)
Jul 8, 2021
5a1a5f5
Add link to OpenTelemetry article (#5450)
Jul 8, 2021
98219ef
chore(deps): update all non-major dependencies (#5448)
renovate[bot] Jul 8, 2021
9099b26
Improvements to AS3 docs that are not related to differences from AS2
glasser Jul 9, 2021
e532442
chore(deps): update dependency @types/koa-router to v7.4.4 (#5451)
renovate[bot] Jul 9, 2021
884d8e6
chore(deps): update all non-major dependencies (#5452)
renovate[bot] Jul 9, 2021
ee812f5
Merge remote-tracking branch 'origin/main' into release-3.0
glasser Jul 12, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 15 additions & 28 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ commands:
common_test_steps:
description: "Commands to run on every Node.js environment"
steps:
- oss/install_specific_npm_version
- oss/install_specific_npm_version:
version: '7'
- checkout
- oss/npm_clean_install_with_caching
- run:
Expand All @@ -37,19 +38,9 @@ jobs:
# The docker tag represents the Node.js version and the full list is available
# at https://hub.docker.com/r/circleci/node/.

# NODE: Note certain tests are currently being skipped for Node.js 6.
# NodeJS 6:
# executor: { name: oss/node, tag: '6' }
# steps:
# - common_test_steps

NodeJS 8:
executor: { name: oss/node, tag: '8' }
steps:
- common_test_steps

NodeJS 10:
executor: { name: oss/node, tag: '10' }
NodeJS 12:
docker:
- image: cimg/node:12.22.1
steps:
- common_test_steps
# We will save the results of this one particular invocation to use in
Expand All @@ -62,13 +53,15 @@ jobs:
paths:
- ./**

NodeJS 12:
executor: { name: oss/node, tag: '12' }
NodeJS 14:
docker:
- image: cimg/node:14.16.1
steps:
- common_test_steps

NodeJS 14:
executor: { name: oss/node, tag: '14' }
NodeJS 16:
docker:
- image: cimg/node:16.0.0
steps:
- common_test_steps

Expand Down Expand Up @@ -116,33 +109,27 @@ workflows:
version: 2
Build:
jobs:
- NodeJS 8:
<<: *common_non_publish_filters
- NodeJS 10:
<<: *common_non_publish_filters
- NodeJS 12:
<<: *common_non_publish_filters
- NodeJS 14:
<<: *common_non_publish_filters
- NodeJS 16:
<<: *common_non_publish_filters
- "Check for FIXM\x45"
- oss/lerna_tarballs:
name: Package tarballs
<<: *common_non_publish_filters
requires:
# - NodeJS 6
- NodeJS 8
- NodeJS 10
- NodeJS 12
- NodeJS 14
- NodeJS 16
- oss/dry_run:
name: Dry-run
<<: *common_publish_filters
requires:
# - NodeJS 6
- NodeJS 8
- NodeJS 10
- NodeJS 12
- NodeJS 14
- NodeJS 16
- oss/confirmation:
name: Confirmation
type: approval
Expand Down
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v14
v16
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"editor.wordWrapColumn": 80,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"typescript.tsdk": "./node_modules/typescript/lib"
"typescript.tsdk": "./node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
60 changes: 28 additions & 32 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -1,42 +1,38 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "TypeScript watch",
"type": "shell",
"command": "./node_modules/.bin/tsc",
"args": [
"--build",
"tsconfig.build.json",
"--watch"
],
"isBackground": true,
"problemMatcher": [
"$tsc-watch"
],
"presentation": {
"version": "2.0.0",
"tasks": [
{
"label": "TypeScript watch",
"type": "typescript",
"tsconfig": "tsconfig.json",
"option": "watch",
"problemMatcher": ["$tsc-watch"],
"presentation": {
"clear": true,
"group": "tsc-and-shell"
}
},
},
"isBackground": true
},
{
"label": "Shell",
"type": "shell",
"command": "bash",
"args": [
"-l",
],
"isBackground": true,
"presentation": {
"label": "Shell",
"type": "shell",
"command": "bash",
"args": ["-l"],
"isBackground": true,
"presentation": {
"group": "tsc-and-shell"
}
},
}
},
{
"label": "TS and shell",
"dependsOn": ["TypeScript watch", "Shell"],
"group": {
"kind": "build",
"isDefault": true
}
"kind": "build",
"isDefault": true
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
]
}
125 changes: 121 additions & 4 deletions CHANGELOG.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ While we will try to be as helpful as we can on any issue reported, please inclu

1. **Intended outcome:** What you were trying to accomplish when the bug occurred, and as much code as possible related to the source of the problem.
2. **Actual outcome:** A description of what actually happened, including a screenshot or copy-paste of any related error messages, logs, or other output that might be related. Places to look for information include your browser console, server console, and network logs. Please avoid non-specific phrases like “didn’t work” or “broke”.
3. **How to reproduce the issue:** Instructions for how the issue can be reproduced by a maintainer or contributor. Be as specific as possible, and only mention what is necessary to reproduce the bug. If possible, try to isolate the exact circumstances in which the bug occurs and avoid speculation over what the cause might be.
3. **How to reproduce the issue:** Instructions for how the issue can be reproduced by a maintainer or contributor. Be as specific as possible, and only mention what is necessary to reproduce the bug. If possible, try to isolate the exact circumstances in which the bug occurs and avoid speculation over what the cause might be. Ideally, a reproduction requires no creativity on the part of the Apollo team, but is an explicit series of steps leading to seeing the bug. A good reproduction often starts with `git clone` or uses a [code sandbox](https://codesandbox.io).

Creating a good reproduction really helps contributors investigate and resolve your issue quickly. In many cases, the act of creating a minimal reproduction illuminates that the source of the bug was somewhere outside the library in question, saving time and effort for everyone.

Expand Down
38 changes: 0 additions & 38 deletions DESIGN.md

This file was deleted.

112 changes: 3 additions & 109 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,109 +1,3 @@
# Apollo Server Roadmap

This roadmap is for **Apollo Server 3.x**.

## Product vision

Apollo Server is a framework for implementing and running a data graph. It is written in TypeScript, runnable in any ES2018-supporting environment (Node.js, V8, etc.), and integrates tightly with the Apollo GraphQL Platform. Apollo Server is easy to use and well documented for product teams. It provides a principled set of tools for structuring and building a data graph, and it scales to hundreds of engineers across multiple teams collaborating on and consuming a single graph.

## Apollo Server 3.x

The next version of Apollo Server is a principled implementation of a production-ready GraphQL framework. It removes large amounts of technical debt that impedes our ability to support our community and customers.

### Goals

* Apollo Server provides **patterns and features that help product teams implement a data graph** with well-defined service boundaries.
* Includes a first-class story for **schema modules**, using parts of the Apollo Federation spec, DataSources, and project structure recommendations.
* Allows a seamless transition to a federated architecture, when needed.
* Enhances execution by using `Entity`s in the graph to facilitate fetching, batching, and caching data.
* Includes a redesigned set of documentation that walks teams through building a structured data graph.
* Features a new getting-started experience designed to help product engineers be productive from day one.
* Explains the architecture and patterns for building a graph.
* Demonstrates how to run a graph in production using best practices.
* Only requires a single Apollo Server package to install, which works for teams of all sizes.
* Allows the completion of introductory documentation and the first "feature shipped" without needing to incorporate multiple packages.
* Apollo Server has a **well-structured and feature-rich transport layer, including a built-in HTTP layer** that fits into modern cloud infrastructures.
* Requires only a small copy-and-paste snippet to integrate with a variety
of Node.js HTTP frameworks.
* Includes built-in support for consuming and setting headers, status codes, and cookies during execution.
* Supports Apollo cache control for whole-query caching and integration with CDNs.
* Supports enterprise-scale traffic through integrated caching layers and efficient execution.
* Production teams have **tools and hooks for confidently running and monitoring their graph** in production.
* Graph and request lifecycles are well-documented and include detailed observability hooks for teams to set up monitoring.
* Apollo Server includes built-in support for Apollo Studio.
* A new request pipeline gives teams more control over request lifecycles, including validation, parsing, and error handling.

## How we get there

Apollo Server 3 will be a rewrite-in-place of the Apollo Server project while we continue to support and maintain Apollo Server 2.x. As soon as the new architectural core is ready for use, even before being feature-complete (e.g., without support for WebSockets or subscriptions), we will begin a pre-release cycle and encourage the community to begin adopting the new package. **Many features might not land in the initial 3.0 release, but rather in a follow-up, minor version.**.

The work to accomplish these goals is grouped into the following work:

* **Improved packaging and patterns help teams structure their graph correctly at all sizes:**
* Finish support for schema modules that each define portions of a complete graph:
* Use federation directives within local schema modules and support a single entity fetch method (Merging `__resolveObject` and `__resolveReference` into a single `loadEntity` API).
* Support static validation for local services (this unifies the "service" concepts from federation with the "modules" concepts from monolithic services).
* Remain backward compatible for teams that use `typeDefs` and `resolvers` to construct their schema.
* Support schema directives for modifying execution:
* Support the `@cacheControl` directive for both federated and non-federated graphs.
* Finish the `DataSource` API to support batching and caching:
* Include tracing integration to show batched and cached work being performed during requests.
* Directly integrate with the new `loadEntity` API mentioned above.
* Simplified packaging for easier use:
* Two packages (down from the current [38 packages](https://github.com/apollographql/apollo-server/tree/fef7a13b81a46dd3a05cc65409ddba6688fc281d/packages)): `@apollo/server` and `@apollo/graphql`.
* Discontinuation of support for older versions of Node.js, supporting only Node.js v10 and later.
* Removal of bolted-on subscription support and default inclusion of upload and subscription as a separate entry point.
* Completely rearchitected documentation site:
* Includes a rebuilt getting-started experience to help product engineers be productive on day one.
* Explains the architecture of Apollo Server and how its components work together.
* Showcases how to build a data graph using core features like `Entity`s and `DataSource`s.
* Provides improved guidelines for running in production.
* **A new transport abstraction and a corresponding HTTP implementation:**
* A new generic transport interface that can use an `AsyncIterator` to return "chunked" results to a client. The server should support multiple transports.
* Apollo Server will ship with an `http` transport by default, which uses `http.createServer` and its corresponding `IncomingMessage` and `ServerResponse` interfaces.
* It should properly support headers, status codes, and response streaming.
* The documentation will include examples for integrating with common Node.js HTTP frameworks (Express, Koa, Hapi, etc.) so teams can essentially copy and paste Apollo Server functionality into their existing server.
* A default `ApolloServer` setup will be provided for teams that don’t require a full-fledged Node.js framework.
* **A new `RequestPipeline` for more control and observability into what is happening during execution:**
* A core `GraphQLService` API which isolates the GraphQL needs from needs of the transport. It is comprised up of a well documented and reasoned request pipeline and coupled with enhanced execution to take advantage of new module patterns:
* Observability hooks to listen to key graph events:
* **Graph-level**: ready, shutdown, schema change, service list change, errors, etc.
* **Transport-level**: start, complete, error
* **Execution-level**: parse, validate, execute, error
* Control hooks to allow for custom behavior within the core request pipeline:
* **Graph-level**: build schema, update schema, shutdown, etc.
* **Transport-level**: transform request, transform response
* **Execution-level**: parse, validate, execute

## Future work

* **First-class support for subscriptions, `@defer`, and `@stream`:**
* Subscriptions
* Implement a WebSocket transport using the new transport interface described above.
* Support subscriptions in tracing data sent to Apollo Studio.
* Query planner support.
* `@defer` and `@stream`
* Support response streams in the HTTP transport.
* Extend execution to allow for "chunked" responses to be sent to clients.
* Support tracing of "chunked" execution in trace reporting.
* Add support to Apollo Client for handling "chunked" responses.
* Add Query planner support.
* **Global graph directives for advanced production needs**
* This is a small set of Apollo-specific directives to help teams reliably scale their graph.
* Includes an `@auth` directive (to be defined).
* Includes an `@experimental` directive to denote that fields are not part of the "stable" graph, but can be used by certain teams to experiment.
* Invalidation of whole-query cache through cache tags with CDN integration.
* Building a "graph" caching layer for the gateway:
* Will use the `EntityCache` from Apollo Client or some version of it designed for the graph level.
* Will fulfill the need for "partial query caching" across service and module boundaries.

## Tech debt paid down

This section isn’t critical for understanding the work to be done for Apollo Server 3.0, but is helpful to understand more of the implications of the work being done to make it happen.

* Removal of all of the `apollo-server-<integration>` packages in favor of the default HTTP transport, along with copy-paste snippets in the documentation for other common patterns to deliver production-ready, out-of-the-box experiences.
* Removal of `graphql-tools` in favor of `@apollo/graphql` with additional modules that are currently spread out among numerous repositories and packages.
* Removal of `subscription-transport-ws` in favor of a built-in solution that takes full advantage of the main request pipeline.
* Simplification of the development experience for core team and contributors (e.g., a better test suite, easier publishing, easier community contribution).
* Unification of a number of hanging APIs and packages (`apollo-server-errors`, `graphql-extensions`, `apollo-datasource`, `apollo-env`, etc.).
* Discontinuation of support (and associated polyfills) for end-of-life versions of Node.js (Node.js 6 and 8) from our support matrix.
(This file most recently described a proposed roadmap for Apollo Server 3. With
the release of Apollo Server 3, it was no longer up to date. We do not currently
have a written roadmap but are in the process of creating one now.)
32 changes: 0 additions & 32 deletions __mocks__/date.ts

This file was deleted.

1 change: 1 addition & 0 deletions docs/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
2 changes: 1 addition & 1 deletion docs/.nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14
16
4 changes: 0 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ The **deployed** version of the documentation for this repository is available a

* https://www.apollographql.com/docs/apollo-server/

## Documentation for the documentation

This `README.md` is intentionally short since the [documentation for the documentation](https://docs-docs.netlify.com/docs/docs/) provides details for the documentation framework _itself_. Additional information should generally be added to that documentation rather than here in this `README.md`, in order to provide a centralized resource that benefits all documentation deployments.

## Running locally

For more information, consult the documentation for the documentation, referenced above.
Expand Down
Loading