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

[FEATURE] Test the entire application functionality after Flask upgradation #67

Closed
5 tasks done
Sachinbisht27 opened this issue Jan 2, 2024 · 3 comments
Closed
5 tasks done
Assignees
Labels
enhancement New feature or request

Comments

@Sachinbisht27
Copy link
Member

Sachinbisht27 commented Jan 2, 2024

Is your feature request related to a problem? Please describe.
We are upgrading the Flask package from Flask 1.2.2 to Flask 3.0.0. So, we need to do proper testing for all the functionalities thoroughly in the entire application.

Describe the solution you'd like

  • Test all the functionalities thoroughly to make sure everything is running fine after upgradation.
  • Fix if anything breaks.
  • Test on both locally and staging.

Describe alternatives you've considered
NA

Additional context

  • The upgraded package versions and dependencies should work fine.
  • All the functionalities in the entire application should work fine.

Acceptance Criteria
Add acceptance criteria here.

Documentation
Add whatever documentation will be required here.

@Sachinbisht27 Sachinbisht27 added the enhancement New feature or request label Jan 2, 2024
@Sachinbisht27 Sachinbisht27 self-assigned this Jan 12, 2024
@Sachinbisht27
Copy link
Member Author

Sachinbisht27 commented Jan 15, 2024

Found the following issues while testing the entire Flask upgrade on a staging server

  • The Google Cloud function was failing as soon as we deployed things on staging
    • The root cause -
      • The version of functions-framework. This dependency was not upgraded as we were using a default version GCP cloud function version if we did not explicitly add it. Earlier, the application was not installing it explicitly and hence was trying to run on older version and broke.
      • The earlier version was functions-framework==2.1.2 and the new setup required functions-framework==3.5.0.
      • On debugging - earlier, we were not installing this dependency in the server, GCP was using the default version (2.1.2). After the Flask upgrade, we have to install this dependency explicitly.

Closing the issue as completed and released on production.

@Satendra-SR
Copy link
Member

Satendra-SR commented Jun 4, 2024

Details on over-effort spending in this issue:

In this issue, we encountered with following technical challenges, which we didn't expect earlier and came while deploying on staging and running the integrated testing.

  1. Tested the end-to-end functionality on local and staging (overall testing before releasing to production) - 4 hours
  2. Flask dependency for Cloud function - 6 hours
    • As we were not explicitly installing functions-framework earlier, GCP was using a default version, which was supporting the earlier Flask version on the GCP cloud function.
    • Had to debug and deploy multiple times to find the root cause
    • Fixed and deployed on staging for the final round of testing.
    • Release 12 Jan 2024 v2 #72
  3. Faced issues while deploying this on production - had to revert changes, made some fixes and redeploy it on production - Attaching the Pull request for the same - Release 12th Jan 2024 - 3 hours

Summary:

  • The main cause of missing estimates here is technical challenges and unexpected scenarios while deploying and testing changes in staging and production environments.

@Satendra-SR
Copy link
Member

Satendra-SR commented Jun 5, 2024

Explanation in extra hours -

  1. We estimated it as 4 hours as it was a regular testing activity and we have done it in the past as well. To start testing, we deployed the changes on staging. During the deployment, we faced an unexpected issue in the deployment process and the build was failing. This became a bottleneck for testing.
  2. We spend some time to debug the issue and understand the root cauase. I figured it was becuase of a package at GCP end. This was not possible to anticipate in our local testing as it was GCP specific issue.
  3. I made the fixes for this issue. The debugging and fixing took additional 6 hours. The solution trail through PR in the Github was added on the same day.
  4. We then started the testing, and as estimated, we were able to finish it within 4 hours.
  5. For the production release, we didn't expected any additional effort as it is automated process. However we encountered some new errors during production release that didn't seems relate to the previous errors.
  6. We took 3 hours to rectify the issue. It was a data caching issue specific to production environment configurations. This couldnot have been caught on staging or on local environment. The trail of the fixes were added in the Github pull requests.
  7. Here also, we were tracking these hours regularly on the same day in ColoredCow timesheet but missed updating it in GitHub. I verified the same dates entry in the CC timesheet via Google sheet history.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants