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

Use only vcpkg for static windows build #2520

Merged
merged 22 commits into from
May 22, 2023

Conversation

pavelzw
Copy link
Member

@pavelzw pavelzw commented May 7, 2023

I suggest we switch to vcpkg completely for the windows static build process for micromamba. This makes the build pipeline for windows more maintainable since the dependencies in vcpkg are actively maintained not only by mamba-org. Also, fewer weird errors occur when building outside of a conda environment with MSVC.

This also allows us to use windows-latest instead of windows-2019.

The build time for static win-64 sinks from 40min down to 7min or 2min with sccache (as long as the vcpkg dependencies are cached which is now easier outside of a conda env).

@pavelzw pavelzw closed this May 9, 2023
@pavelzw pavelzw reopened this May 9, 2023
@jonashaag
Copy link
Collaborator

Thanks a lot for working on this!

I wonder if there is a way to share the build instructions with the feedstock. Maybe we can use the feedstock bld.bat?

@JohanMabille
Copy link
Member

JohanMabille commented May 15, 2023

This makes the build pipeline for windows more maintainable since the dependencies in vcpkg are actively maintained not only by mamba-org.

The dependencies on conda-forge are not maintained by mamba-org devs only.

Also, fewer weird errors occur when building outside of a conda environment with MSVC.

Which means we would not be able to catch conda build errors before trying to build the feedstock.

I agree that reducing the build time for windows static build is more than required; however we should definitely have an automatic way to test micromamba feedstock at least before releasing. Maybe a pre-release branch with the feedstock build triggered on it would be an acceptable solution.

On the long run, the goal would be to have all the static dependencies correctly packaged on conda-forge so that we can have a full static build without needing vcpkg at all (but that's another story).

@JohanMabille
Copy link
Member

So here is my suggestion: let's merge #2526 to fix the CI, then merge #2512 and other stuff when ready so that we can quickly push out a release.

Then we merge this one and setup the CI so that it is possible to test the feedstock before releasing.

@pavelzw
Copy link
Member Author

pavelzw commented May 17, 2023

Maybe a pre-release branch with the feedstock build triggered on it would be an acceptable solution.

Seems reasonable to me 👍🏻
Unfortunately, I haven't found a way to reliably replicate the conda-forge environment using GitHub Actions or my own Windows machines... The azure runners seem to behave a bit differently than windows-2019 (That's also the reason why the current windows static build on main is not using conda-build but does the steps manually)

@pavelzw
Copy link
Member Author

pavelzw commented May 19, 2023

@JohanMabille should we merge this now then?

@jonashaag jonashaag merged commit 6792f50 into mamba-org:main May 22, 2023
20 checks passed
@pavelzw pavelzw deleted the no-conda-build-windows branch May 22, 2023 12:35
@JohanMabille
Copy link
Member

@pavelzw sorry for this super late answer, your notification was drowned in the mass and the last weeks were quite intense. Happy that this was merge!

@pavelzw
Copy link
Member Author

pavelzw commented May 31, 2023

No worries 👍🏻

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.

None yet

3 participants