Is there anything to be done quickly about mypy is...
# contributing-to-airbyte
c
Is there anything to be done quickly about mypy issues? i’m on master and running into this. It is preventing me from releasing.
Copy code
> Task :airbyte-integrations:connector-templates:singer-source:mypyCheck FAILED
[python] .venv/bin/python -m mypy -m template_singer_source --config-file /Users/charles/code/airbyte/tools/python/.mypy.ini
         airbyte_protocol/__init__.py:27: note: In module imported here,
         template_singer_source/source.py:27: note: ... from here,
         template_singer_source/__init__.py:25: note: ... from here:
         airbyte_protocol/models/__init__.py:2:1: error: Skipping analyzing
         'airbyte_protocol.models.airbyte_message': found module but no type hints or
         library stubs  [import]
             from .airbyte_message import *
             ^
         airbyte_protocol/models/__init__.py:2:1: note: See <https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports>
         Found 1 error in 1 file (checked 1 source file)
u
it seems like an early step creates this diff
u
Copy code
➜  airbyte git:(cgardens/release_v0_2_1) gst
On branch cgardens/release_v0_2_1
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   airbyte-integrations/bases/base-python/airbyte_protocol/models/__init__.py
	deleted:    airbyte-integrations/bases/base-python/airbyte_protocol/models/airbyte_message.py
u
which causes the linter to fail.
u
this is due to an interaction between generation, spotless, and the linter
u
at some point you ran a step that depends on generation but not spotless
u
i’m running the release_version.s script.
u
which just runs
./gradlew clean build
u
i’m not doing anything special.
u
I think spotless should be part of build then
u
it is?
u
must be in the wrong order
u
spotless runs as part of
build
u
hmmm. i think the issue now is that this task isn’t ever completing:
Copy code
<============-> 94% EXECUTING [39s]
> :airbyte-integrations:bases:base-python:generateProtocolClassFiles
u
is that something we’ve run into before?
u
no I don't think so
u
what do you get if you run
u
Copy code
→ ./gradlew clean build --dry-run | grep "spotless\|generate"
:spotlessGroovyGradle SKIPPED
:spotlessGroovyGradleApply SKIPPED
:spotlessJava SKIPPED
:spotlessJavaApply SKIPPED
:airbyte-integrations:bases:base-python:generateProtocolClassFiles SKIPPED
:spotlessPython SKIPPED
:spotlessPythonApply SKIPPED
:spotlessSql SKIPPED
:spotlessSqlApply SKIPPED
:spotlessStyling SKIPPED
:spotlessStylingApply SKIPPED
:spotlessApply SKIPPED
:spotlessGroovyGradleCheck SKIPPED
:spotlessJavaCheck SKIPPED
:spotlessPythonCheck SKIPPED
:spotlessSqlCheck SKIPPED
:spotlessStylingCheck SKIPPED
:spotlessCheck SKIPPED
:airbyte-config:models:generateJsonSchema2Pojo SKIPPED
:airbyte-protocol:models:generateJsonSchema2Pojo SKIPPED
:airbyte-api:generateApiClient SKIPPED
:airbyte-api:generateApiDocs SKIPPED
:airbyte-api:generateApiServer SKIPPED
u
does it show
:airbyte-integrations:bases:base-python:generateProtocolClassFiles
above
spotlessPython
?
u
Copy code
➜  airbyte git:(cgardens/release_v0_2_1) ✗ ./gradlew clean build --dry-run | grep "spotless\|generate"
:spotlessGroovyGradle SKIPPED
:spotlessGroovyGradleApply SKIPPED
:spotlessJava SKIPPED
:spotlessJavaApply SKIPPED
:airbyte-integrations:bases:base-python:generateProtocolClassFiles SKIPPED
:spotlessPython SKIPPED
:spotlessPythonApply SKIPPED
:spotlessSql SKIPPED
:spotlessSqlApply SKIPPED
:spotlessStyling SKIPPED
:spotlessStylingApply SKIPPED
:spotlessApply SKIPPED
:spotlessGroovyGradleCheck SKIPPED
:spotlessJavaCheck SKIPPED
:spotlessPythonCheck SKIPPED
:spotlessSqlCheck SKIPPED
:spotlessStylingCheck SKIPPED
:spotlessCheck SKIPPED
:airbyte-config:models:generateJsonSchema2Pojo SKIPPED
:airbyte-protocol:models:generateJsonSchema2Pojo SKIPPED
:airbyte-api:generateApiClient SKIPPED
:airbyte-api:generateApiDocs SKIPPED
:airbyte-api:generateApiServer SKIPPED
u
hmm
u
generateProtocolClassFiles
should be fast, right?
u
it's not as fast as you'd expect but it should be like 10-15 seconds I think
u
hmmm. i’m giving up after a minute.
u
so that seems like i’m giving it enough time.
u
I think
from .airbyte_message import *
may be a bad thing too (being to vague for mypy) and it's throwing warnings on how the code should be written
u
are you all able to clean build locally on master?
u
can you run it with
--scan
?
u
then we could see a timeline of when things are breaking on your side if it ends in the bad state
u
does scan print anything incrementally?
u
Copy code
➜  airbyte git:(cgardens/release_v0_2_1) ✗ ./gradlew :airbyte-integrations:bases:base-python:generateProtocolClassFiles --scan

> Task :airbyte-integrations:bases:base-python:code-generator:buildImage
Building image using context '/Users/charles/code/airbyte/airbyte-integrations/bases/base-python/code-generator'.
Using images 'airbyte/code-generator:dev'.
Step 1/5 : FROM python:3.7-slim
 ---> 217e85391449
Step 2/5 : RUN pip install datamodel-code-generator==0.5.39
 ---> Using cache
 ---> 2e547409dc5b
Step 3/5 : ENTRYPOINT ["datamodel-codegen"]
 ---> Using cache
 ---> 57c73643c2c6
Step 4/5 : LABEL io.airbyte.version=dev
 ---> Using cache
 ---> 96d999a96a4a
Step 5/5 : LABEL io.airbyte.name=airbyte/code-generator
 ---> Using cache
 ---> 18ec9e472078
Successfully built 18ec9e472078
Successfully tagged airbyte/code-generator:dev
Created image with ID '18ec9e472078'.
<============-> 94% EXECUTING [53s]
> :airbyte-integrations:bases:base-python:generateProtocolClassFiles
u
no it just gives a link at the end
u
so it doesnt help the never completing case
u
maybe show more logs to debug that?
u
if it's workiing I'd prefer to see scan
u
it never completes.
u
scan is a no go.
u
so this just started?
u
weird
u
you don’t have this problem doing a clean build locally?
u
./gradlew clean build
u
nope
u
gets past generation fine
u
Copy code
2020-10-26T15:48:23.083-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:23.083-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:23.084-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:33.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:33.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:33.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:33.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:33.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:33.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:43.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:43.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:43.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:43.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:43.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:43.081-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:53.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:53.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:53.079-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:48:53.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:48:53.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:48:53.080-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:49:03.083-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:49:03.083-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:49:03.083-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2020-10-26T15:49:03.084-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2020-10-26T15:49:03.084-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2020-10-26T15:49:03.084-0700 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
u
🤯
u
is something gradle-related still running in the background?
u
not sure how that happened but you can probably kill it and re-run
u
restarted docker and blew away all gradle things and it doesn’t hang anymore.
u
thanks for your help!
u
if you get stuck in a state where some command is not adding the license correctly to the generated files, please try to recreate with a scan though