Skip to content

Use pin_run_as_build variants #56

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

Merged

Conversation

jakirkham
Copy link
Member

@jakirkham jakirkham commented Apr 28, 2018

Tries to use the variant pinning strategy described in the docs. Not sure if this is the best way to do this. Also unsure as to whether it can be simplified/relaxed further. Feedback welcome.

Checklist

  • Used a fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy
  • Ensured the license file is being packaged.

Closes #62

ref: #54

cc @isuruf @msarahan

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@jakirkham
Copy link
Member Author

@conda-forge-admin, please re-render.

recipe/meta.yaml Outdated
- libtiff 4.0.*
- jsoncpp # [unix]
- expat
- zlib {{ zlib }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't {{ zlib }} here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do I know which cases to use {{ pkg }} versus not using them? If I drop the {{ pkg }} syntax, is it equivalent to having it because of the changes in PR ( conda-forge/conda-forge-pinning-feedstock#46 ). Sorry still trying to wrap my head around the features in conda-build 3 related to pinning.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I drop the {{ pkg }} syntax, is it equivalent to having it because of the changes in PR ( conda-forge/conda-forge-pinning-feedstock#46 ).

Yes

@jakirkham jakirkham force-pushed the use_pin_run_as_build branch from d63e7ff to 675105c Compare April 28, 2018 23:03
@jakirkham
Copy link
Member Author

@conda-forge-admin, please re-render.

@jakirkham
Copy link
Member Author

jakirkham commented Apr 29, 2018

Appears the pinnings may not be tight enough in some cases. Here's a loading error with freetype and libpng.

Traceback (most recent call last):
  File "/Users/distiller/miniconda3/conda-bld/vtk_1524956796987/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.5/site-packages/vtk/vtkRenderingFreeType.py", line 5, in <module>
    from .vtkRenderingFreeTypePython import *
ImportError: dlopen(/Users/distiller/miniconda3/conda-bld/vtk_1524956796987/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.5/site-packages/vtk/vtkRenderingFreeTypePython.so, 2): Library not loaded: @rpath/libpng16.16.dylib
  Referenced from: /Users/distiller/miniconda3/conda-bld/vtk_1524956796987/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/libfreetype.6.dylib
  Reason: Incompatible library version: libfreetype.6.dylib requires version 51.0.0 or later, but libpng16.16.dylib provides version 49.0.0

Edit: ...or at least some rebuilding needs to occur with the newer versions in our pinning file.

@isuruf
Copy link
Member

isuruf commented Apr 29, 2018

It's because libpng pinning was wrong in freetype. This is fixed with conda-forge/conda-forge-pinning-feedstock#52

@looooo
Copy link
Contributor

looooo commented May 9, 2018

@isuruf @jakirkham if this is fixed now, can you rerender?

@looooo looooo mentioned this pull request May 9, 2018
@jakirkham
Copy link
Member Author

It’s not yet fixed. We are discussing in PR ( conda-forge/conda-forge-pinning-feedstock#52 ).

@jakirkham jakirkham mentioned this pull request May 12, 2018
5 tasks
@jakirkham jakirkham force-pushed the use_pin_run_as_build branch from f87f5cb to 158e968 Compare May 13, 2018 08:29
@jakirkham
Copy link
Member Author

@conda-forge-admin, please re-render.

@jakirkham
Copy link
Member Author

Will give this another go this evening given new pinnings are out.

jakirkham added 4 commits May 24, 2018 22:37
Instead of relying on the `toolchain` (directly) or `vc` features
(directly), use the `compiler` in the `build` section to enforce
compiler and runtime match up. Also split out the `host` dependencies
from the `build` dependencies.
These are already pinned automatically by `conda-build` due to the
variant files provided with their pinnings. So we don't need to manually
set the pinning requirements ourselves. Hence they are dropped for
simplicity.
Re-render now that the new compiler syntax is in use. Pinnings are now
set based on `conda-forge-pinning`.
Needed for updated pinnings.
@jakirkham jakirkham force-pushed the use_pin_run_as_build branch from ff46191 to 34b9119 Compare May 25, 2018 02:40
jakirkham added 2 commits May 24, 2018 22:45
As much of the stack is still using `hdf5` version `1.10.1`, pin `vtk`
to that specific version of `hdf5` even though the pinnings now use
`hdf5` version `1.10.2`. Ultimately this should be reverted once the
rest of stack (specifically `libnetcdf` is rebuilt with `hdf5` version
`1.10.2`). This should provide us a way forward rebuilding `vtk` with
newer pinnings in the interim.
As `hdf5` has been pinned manually to `1.10.1` (temporarily), re-render
to remove this pinning from the variant file.
- zlib 1.2.11
- freetype 2.8.1
- zlib
- freetype
- hdf5 1.10.1
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently libnetcdf is using hdf5 version 1.10.1. So we are unable to use 1.10.2 here yet. Have manually pinned this until libnetcdf is rebuilt.

xref: conda-forge/libnetcdf-feedstock#45

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so whats the reason for pinning 1.10.2 in conda-forge-pinnings if it introduce that much trouble?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to update. We just haven't rebuilt everything yet.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ultimately this could be said of any time we update pinnings actually. Nothing will be using them yet and if a lot of packages are dependent on it, there will be work to upgrade them. That work is significantly less given our new tooling, but it still needs to be done.

@jakirkham
Copy link
Member Author

jakirkham commented May 25, 2018

Ran into issue ( conda-forge/conda-smithy#775 ). Submitted PR ( conda-forge/conda-smithy#785 ) to fix it. This seems to work based on local testing.

Edit: Fix included in conda-smithy version 3.1.5.

In order to fix an issue with `yum_requirements.txt` not being used in
the re-rendering on Linux, update to the latest `conda-smithy` release
and re-render. Should fix a recent failure seen on CIs due to the
absence of these requirements from `yum`.
@jakirkham
Copy link
Member Author

jakirkham commented May 25, 2018

So this looks ok thus far, but it will take a while to build. We can let it build through. Though given the length of the build, we might need to do the merge Friday evening (assuming all goes well 🍀) to avoid swamping CIs during the day.

@jakirkham jakirkham changed the title WIP: Use pin_run_as_build variants Use pin_run_as_build variants May 25, 2018
@jakirkham jakirkham merged commit 3df9781 into conda-forge:master May 26, 2018
@jakirkham jakirkham deleted the use_pin_run_as_build branch May 26, 2018 03:40
@jakirkham
Copy link
Member Author

All packages are now deployed. 🎉 Enjoy. 😄

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

Successfully merging this pull request may close these issues.

align to conda-forge pinnings
4 participants