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

Upgrade api to Python 3.12 #465

Open
8 tasks
sastels opened this issue Nov 25, 2024 · 4 comments
Open
8 tasks

Upgrade api to Python 3.12 #465

sastels opened this issue Nov 25, 2024 · 4 comments
Assignees
Labels
Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt

Comments

@sastels
Copy link

sastels commented Nov 25, 2024

Description

As a software developer working on GCNotify stack,
I want the Python stack to be upgraded at latest supported version,
So that I can leverage the latest features of the language and better/safer code.

As a system ops working on GCNotify stack,
I want the Python stack to be upgraded at latest supported version,
So that I can leverage the latest performance improvement
And process notifications faster.

WHY are we building?

To get latest performance improvements, features and security updates of the Python language/runtime.

WHAT are we building?

Upgrade the stack to the latest possible version of Python. A few considerations:

  • It is possible that we cannot upgrade to the latest of the latest (3.12 at the time of this writing for the stable version), as this might be blocked by a dependency library that did not release a version supporting the latest. For example, we might have to upgrade from version 3.10 to version 3.11, and wait a bit longer to migrate to version 3.12.
  • The lambdas might have additional considerations that might limit the possible maximum Python version we can use, such as supported runtime and also monitoring libraries that need to support that environment (such as New Relic). Consider doing this work in Upgrade lambda and New Relic to latest supported version #354 .

VALUE created by our solution

Better performance, security and reliability.

Acceptance Criteria

  • Api running on Python 3.12.
  • test locally
  • test on dev (k8s and lambda)
  • document in tricks and tips how we can deploy branches to dev
  • Run rollercoaster tests
  • Run load test, compare to current 5500 emails / min peak

QA Steps

  • Run smoke tests
  • bug bash on staging
@sastels sastels added Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt labels Nov 25, 2024
@sastels sastels self-assigned this Nov 25, 2024
@sastels sastels changed the title Copy of Upgrade document-download-api to Python 3.12 Upgrade api to Python 3.12 Nov 25, 2024
@sastels
Copy link
Author

sastels commented Nov 26, 2024

Upgraded to 3.12.7.
cds-snc/notification-api#2362

@sastels
Copy link
Author

sastels commented Nov 27, 2024

A couple annual limits tests now failing :/

@sastels
Copy link
Author

sastels commented Nov 27, 2024

figured them out! There was a redis call in utils that now fails if there is no annual limit data in redis for a service, which happens in the test.

@sastels
Copy link
Author

sastels commented Nov 28, 2024

Working locally (devcontainer) with other apps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Reliability Task related to reliability. Security | Sécurité Tech Debt An issue targeting an identified technical debt
Projects
None yet
Development

No branches or pull requests

1 participant