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

Python 3 #48

Closed
philfreo opened this issue Jun 24, 2021 · 2 comments
Closed

Python 3 #48

philfreo opened this issue Jun 24, 2021 · 2 comments
Assignees

Comments

@philfreo
Copy link
Member

philfreo commented Jun 24, 2021

Plan of Attack to get to Python 3.6

  1. Prep
    1. Consider some adhoc linting rules to help with the migration until we can use LintLizard with Py3
    2. Build and run tests in py2 and py3 images
    3. Review https://making.close.com/posts/python-3
    4. Consider if there are any additional metrics that could be added that would help identify issues during the conversion to py3
    5. Consider areas of the codebase not being used and determine if we should remove or guard them. Examples: email sending, contact sync, etc.
    6. Finish work needed to switch from the Vagrant dev environment to Docker. At a minimum update Readme with steps to get it started.
  2. Upgrade dependencies to versions tested on at least PY3.6.
    1. High risk dependencies should be done by themselves. Low risk dependencies can be deployed in small batches.
    2. Remove unused dependencies
    3. Move to pypi/upstream versions
    4. Refactor requirements files
      1. Move requirements_lint.txt to requirements/lint.txt
      2. Split requirements_frozen.txt to requirements/prod.txt and requirements/tests.txt
      3. If needed there can also be a requirements/dev.txt for development environment dependencies
  3. Futurize - If possible each of these are done on sections of the codebase and deployed to limit number of changes
    1. Stage 1 futurize -w -n -1 -a -p -u "$@``"
    2. Stage 2 futurize -w -n -2 "$@``"
  4. Post Py3
    1. Add LintLizard
    2. Remove future dependency
    3. Finish upgrading dependencies if needed
    4. Work on Py3.8 compatibility
@philfreo
Copy link
Member Author

Is this all done / should we close?

@squeaky-pl
Copy link
Contributor

Closing. Formatters / static analysis has now separate issue.

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

No branches or pull requests

2 participants