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

homebrew builds don't work properly and don't fail properly #2490

Closed
1 of 5 tasks
beckjake opened this issue May 27, 2020 · 1 comment
Closed
1 of 5 tasks

homebrew builds don't work properly and don't fail properly #2490

beckjake opened this issue May 27, 2020 · 1 comment
Labels
bug Something isn't working

Comments

@beckjake
Copy link
Contributor

beckjake commented May 27, 2020

Describe the bug

During dbt's build process, when it runs homebrew-pypi-poet to look up dependencies, it fails because the version of protobuf that is selected by some google dependencies is unbounded, but the newest couple releases don't have source distributions, only binary wheels (and python3.8 on windows is even missing wheels!).
See protocolbuffers/protobuf#7520 and protocolbuffers/protobuf#7530 for those issues.

It looks to me l like they've switched build systems and really want to deprecate the pure-python protobufs implementation that the src package had. I suspect they're only uploading binary wheels produced by the C++ implementation in an attempt to discourage using the pure-python implementation for speed reasons, but of course I have no proof because their build system provides no public information :)

So, I see a few issues here:

  • obviously we shouldn't use this version of protobuf until it at least supports the platforms we support...
  • the build process should have failed when we generated the formula file, before we tried to build bottles
    • I think the only reason this didn't happen is because I removed the homebrew testing part (because some compiler thing is broken on my machine but only for homebrew)
    • but also homebrew-pypi-poet just emits a warning + garbage data instead of failing, which is annoying!

Steps To Reproduce

  • Run the build-dbt.py script
  • get no errors
  • try to install the generated homebrew package
  • get errors
  • See that the Formula file created has this garbage

Running the poet script locally will produce some warnings to stderr if you have an up-to-date protobuf install, but stdout just gets that.

Expected behavior

I expect to generate a valid formula for homebrew during builds. I also expect to fail loudly if I don't!

Screenshots and log output

If applicable, add screenshots or log output to help explain your problem.

System information

Which database are you using dbt with?
This is more of a dbt package issue, but the cause is isolated to bigquery.

  • postgres
  • redshift
  • bigquery
  • snowflake
  • other (specify: ____________)

The output of dbt --version:

0.17.0rc3

The operating system you're using:
Any (see above about Windows + 3.8 though)

The output of python --version:
Any (see above about Windows + 3.8 though)

Additional context

I see two ways to fix this:

  • lock protobuf to <=3.11.3
  • teach homebrew-pypi-poet about wheels

The protobuf dependency only exists in dbt-bigquery, so we can set this in the bigquery setup.py and that should work. It looks like the highest dependency there is is upon 3.6.0, so maybe we'll have a while before we have to deal with this and google will have functioning protobuf releases by then.

I think we can start by just locking protobuf's version, but we should also look to teaching homebrew-pypi-poet about wheels. And getting further on CI builds so we can turn testing back on!

@beckjake beckjake added bug Something isn't working triage and removed triage labels May 27, 2020
@beckjake beckjake added this to the Octavius Catto milestone May 27, 2020
@beckjake
Copy link
Contributor Author

beckjake commented Jun 2, 2020

I think this is fixed in #2502

@beckjake beckjake closed this as completed Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant