Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/app.yaml b/app.yaml
index d7b8416..56c9847 100644
--- a/app.yaml
+++ b/app.yaml
@@ -1,11 +1,11 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2019 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
-runtime: python27
-api_version: 1
-threadsafe: yes
+runtime: python39
+app_engine_apis: true
+
+entrypoint: gunicorn -b :$PORT --timeout 60 --workers 1 --threads 1 main:app
 
 default_expiration: "10d"
 
@@ -17,9 +17,14 @@
   max_instances: 1
   max_concurrent_requests: 80
 
+env_variables:
+  # https://cloud.google.com/appengine/docs/standard/python3/services/access#compatibility
+  MEMCACHE_USE_CROSS_COMPATIBLE_PROTOCOL: "True"
+  NDB_USE_CROSS_COMPATIBLE_PICKLE_PROTOCOL: "True"
+
 handlers:
 - url: /_ah/api/.*
-  script: monorailapp.endpoints
+  script: main.app
 
 - url: /robots.txt
   static_files: static/robots.txt
@@ -48,15 +53,15 @@
   static_dir: static
 
 - url: /_ah/mail/.+
-  script: monorailapp.app
+  script: main.app
   login: admin
 
 - url: /_ah/warmup
-  script: monorailapp.app
+  script: main.app
   login: admin
 
 - url: /.*
-  script: monorailapp.app
+  script: main.app
   secure: always
 
 # From api service:
@@ -82,26 +87,5 @@
 - mail_bounce
 - warmup
 
-libraries:
-- name: endpoints
-  version: "1.0"
-- name: grpcio
-  version: "1.0.0"
-- name: markupsafe
-  version: "0.23"
-- name: MySQLdb
-  version: "latest"
-- name: ssl # needed for google.auth.transport and GAE_USE_SOCKETS_HTTPLIB
-  version: "2.7.11"
-
 includes:
 - gae_ts_mon
-
-skip_files:
-- ^(.*/)?#.*#$
-- ^(.*/)?.*~$
-- ^(.*/)?.*\.py[co]$
-- ^(.*/)?.*/RCS/.*$
-- ^(.*/)?\..*$
-- node_modules/
-- venv/