Skip to content
This repository has been archived by the owner on Sep 14, 2020. It is now read-only.

Ensure predictable mypy's type-checking rules in CI/CD #265

Merged
merged 2 commits into from Dec 11, 2019

Conversation

nolar
Copy link
Contributor

@nolar nolar commented Dec 7, 2019

The type-checking rules should be predictable over time.

Issue : originally detected in #262, originally introduced in #200

Description

mypy

New mypy releases sometimes break the CI/CD builds when no significant code changes are introduced to the codebase. The CI/CD builds are expected to succeed as before.

Just happened in #262 — a documentation/CRD change, that got asyncio.wait() type-checks in kopf.reactor.running broken. A broken build: https://travis-ci.org/zalando-incubator/kopf/builds/620169471

Caused by a regression in mypy==0.750 with type inference (python/mypy#8051). The fix is going to be released 1 month after the regression was introduced: 21.11.2019 .. 16.12.2019. We cannot afford to wait 1 month with a broken CI/CD pipeline.

Previously, there were similar sudden changes in mypy with new rules in a new mypy release: e.g. #208.

It is expected that such backward-incompatible changes or regressions will be introduced in the future too — due to active development of mypy. So, since now, we keep the version pinned, and upgrade it explicitly as a separate PR (manual or maybe automatic) — possibly with relevant code changes to satisfy new type-checking rules.

urllib3

The urllib3 version ceiling was introduced in May 2019 in a256445 — due to setuptools/pkg_resources version conflicts and inability to run the CI/CD scripts. This ceiling was applied only to our own CI/CD. The apps were free to handle these issues their own way.

The issue seems to be fixed in psf/requests#5067 in April 2019.

Types of Changes

  • Configuration change

@nolar nolar added the automation CI/CD: testing, linting, releasing automatically label Dec 7, 2019
@zincr
Copy link

zincr bot commented Dec 7, 2019

🤖 zincr found 0 problems , 1 warning

ℹ️ Dependency Licensing
✅ Large Commits
✅ Approvals
✅ Specification

Details on how to resolve are provided below


Dependency Licensing

All dependencies specified in package manager files must be reviewed, banned dependency licenses will block the merge, all new dependencies introduced in this pull request will give a warning, but not block the merge

Please ensure that only dependencies with licenses compatible with the license of this project is included in the pull request.

  • ℹ️ Could not process requirements.txt for new dependencies
     

@zincr
Copy link

zincr bot commented Dec 7, 2019

🤖 zincr found 1 problem , 1 warning

❌ Approvals
ℹ️ Dependency Licensing
✅ Large Commits
✅ Specification

Details on how to resolve are provided below


Approvals

All proposed changes must be reviewed by project maintainers before they can be merged

Not enough people have approved this pull request - please ensure that 1 additional user, who have not contributed to this pull request approve the changes.

  • ✅ Approved by PR author @nolar
  • ❌ 1 additional approval needed
     

Dependency Licensing

All dependencies specified in package manager files must be reviewed, banned dependency licenses will block the merge, all new dependencies introduced in this pull request will give a warning, but not block the merge

Please ensure that only dependencies with licenses compatible with the license of this project is included in the pull request.

  • ℹ️ Could not process requirements.txt for new dependencies
     

@nolar nolar merged commit d67d6df into zalando-incubator:master Dec 11, 2019
@nolar nolar deleted the pin-ci-cd-libraries branch December 11, 2019 16:33
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
automation CI/CD: testing, linting, releasing automatically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants