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

WIP: Action for dev env setup test #1019

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

neiljp
Copy link
Collaborator

@neiljp neiljp commented May 1, 2021

I just threw this together based on an extension of the pytest matrix, to see if we can test installing the build environment using the methods we currently suggest, ie. pip, pipenv, make.

This was inspired by the discussion at #zulip-terminal>Dev Setup Installation.

This raises a number of points:

  • current pip has a clever back-tracking dependency resolver - but so much that it checks ~30 versions of coverage!
  • pipenv fails to resolve the conflict with the latest versions of autopep8 and flake8 matching our pinned versions, though one is possible via pip
  • pipenv fails differently on macos?
  • unsurprisingly make is both simple and works - it uses the pip approach underneath
  • pypy cannot be used as a standard dev environment, as it lacks support for mypy via typed-ast

We can add something like this as an on-demand action (workflow_dispatch) to avoid running on every push and failing CI, or perhaps also on push to main branches once this workflow is passing?

Issues to consider arising from this:

  • How best to handle these dev dependencies? (or others generally?)
  • Add a note that pypy cannot be used for development as per above reason
  • Is all the pip backtracking something we can simplify? (maybe just with better versions/dependency options?)
  • Do we really want to keep pipenv?

I'd prefer if the matrix used in this could be reused, but this needs to be in a separate file if running via workflow_dispatch and not on push?

@neiljp neiljp added the area: infrastructure Project infrastructure label May 1, 2021
@zulipbot zulipbot added the size: M [Automatic label added by zulipbot] label May 1, 2021
@neiljp
Copy link
Collaborator Author

neiljp commented May 1, 2021

@neiljp neiljp force-pushed the 2021-04-30-action-dev-env-setup-test branch from e93e291 to 2f7a9d5 Compare May 3, 2021 16:50
@zulipbot zulipbot added size: L [Automatic label added by zulipbot] and removed size: M [Automatic label added by zulipbot] labels May 3, 2021
@neiljp neiljp force-pushed the 2021-04-30-action-dev-env-setup-test branch from 2f7a9d5 to e50d57c Compare May 3, 2021 17:09
@neiljp neiljp force-pushed the 2021-04-30-action-dev-env-setup-test branch from e50d57c to 2e924a2 Compare May 3, 2021 17:28
@zulipbot zulipbot added size: M [Automatic label added by zulipbot] and removed size: L [Automatic label added by zulipbot] labels May 3, 2021
@neiljp
Copy link
Collaborator Author

neiljp commented May 3, 2021

Following the merge of commits to bump the versions of pytest+plugins (including a rather outdated pytest-cov) and flake8, this PR is closer to passing more cleanly to ensure a dev setup works on different platforms:

  • no pip coverage backtracking (pytest-cov upgrade related?)
  • no pip flake8/autopep8 backtracking (new flake8 version)
  • pipenv now passes with Linux python 3.7+, but still fails on 3.6 and macos

Latest action results are available here: https://github.com/neiljp/zulip-terminal/actions/runs/807568894

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: infrastructure Project infrastructure size: M [Automatic label added by zulipbot]
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants