Skip to content

BLIS 2.0 (another attempt)#43

Merged
isuruf merged 15 commits into
conda-forge:mainfrom
mgorny:2.0_hc31c05
Nov 20, 2025
Merged

BLIS 2.0 (another attempt)#43
isuruf merged 15 commits into
conda-forge:mainfrom
mgorny:2.0_hc31c05

Conversation

@mgorny

@mgorny mgorny commented Nov 10, 2025

Copy link
Copy Markdown
Contributor

Checklist

  • Used a personal 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 (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

Closes #35
Closes #42

regro-cf-autotick-bot and others added 2 commits June 26, 2025 06:06
Signed-off-by: Michał Górny <mgorny@quansight.com>
@conda-forge-admin

conda-forge-admin commented Nov 10, 2025

Copy link
Copy Markdown
Contributor

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

I failed to even lint the recipe, probably because of a conda-smithy bug 😢. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory. You can also examine the workflow logs for more detail.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/19273386150. Examine the logs at this URL for more detail.

@mgorny mgorny force-pushed the 2.0_hc31c05 branch 7 times, most recently from a30b16d to ecc65bc Compare November 11, 2025 17:20
@conda-forge-admin

Copy link
Copy Markdown
Contributor

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/recipe.yaml) and found it was in an excellent condition.

@mgorny mgorny force-pushed the 2.0_hc31c05 branch 2 times, most recently from 20d7c62 to a04f849 Compare November 11, 2025 19:22
@mgorny mgorny marked this pull request as ready for review November 11, 2025 19:57
@mgorny

mgorny commented Nov 11, 2025

Copy link
Copy Markdown
Contributor Author

Yay, finally green.

I'm thinking of also building an OpenMP variant per #34, but I'm not sure if it's better to do it on top of this PR, or get the version bump in first.

@h-vetinari h-vetinari left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Congratulations and thanks a lot for getting this back to green. Just a few nits, basically LGTM! :)

Comment thread recipe/recipe.yaml Outdated
Comment on lines +54 to +55
- if not exist %LIBRARY_LIB%\\blis.lib exit 1
- if not exist %LIBRARY_LIB%\\libblis.lib exit 1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
- if not exist %LIBRARY_LIB%\\blis.lib exit 1
- if not exist %LIBRARY_LIB%\\libblis.lib exit 1
# import lib for the DLL
- if not exist %LIBRARY_LIB%\\libblis.lib exit 1
# static library
- if not exist %LIBRARY_LIB%\\blis.lib exit 1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's the other way around. libblis.lib is the static library.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That's horrible naming. We usually have

%LIBRARY_BIN%\foo.dll
%LIBRARY_LIB%\foo.lib

for a DLL + import-lib pair. Not only do the names not match here, but it's actually the static library that takes the "obvious" name?! Since we're at a major version boundary here, can we please come up with some better naming? Preferrably something simple and self-evident like

%LIBRARY_BIN%\blis.dll
%LIBRARY_LIB%\blis.lib
%LIBRARY_LIB%\blis-static.lib

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We usually have

%LIBRARY_BIN%\foo.dll
%LIBRARY_LIB%\foo.lib

Replace foo with blis and that's what we have.

but it's actually the static library that takes the "obvious" name?!

No, the obvious name is blis.lib which is what the import library take.

The naming scheme of vcruntime.lib being import library and libvcruntime.lib being the static library is a windows convention in the OS.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The DLL name does not matter.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for the discussion here! I'd like to have these decisions documented (with their rationale, and their rejected ideas), maybe as an informative CFEP or if we don't feel like having a vote, in the knowledge base. I also believe that decisions about conventions like this tend to be ignored when they are not checked by automation (e.g. some kind of linting rules).

I would also like to remind everyone of being kind to each other and provide constructive feedback even when there's disagreement. Sometimes the tone is unnecessarily aggressive and we are here to add value to the ecosystem.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Do you mean beyond https://conda-forge.org/docs/maintainer/knowledge_base/#install-paths-and-naming-conventions? (though it sounds like that's not an unanimously followed convention)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That's a good summary of what's being used, but I think we can encourage a certain style for new additions. A new contributor wanting to check how to name the libraries should get a clear understanding of what to do:

  • Which library names are ok and should used preferentially?
  • Which library naming conventions should not be used despite being already present?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

There's also the underlying question of how far do we want to go with changing things, that is:

  1. Should we follow upstream conventions, or rename files? Are there specific conditions when we should prefer one over the other (i.e. compatibility concerns)?
  2. Should we actually try to change upstream behavior?
  3. The least problematic part: if upstream doesn't currently support Windows at all, which conventions should we use when submitting patches?

My addition was really "informative" rather than "normative". Perhaps we should indeed try to set a specific standard, but that requires answering these questions, most importantly concerning compatibility. Though I suppose such discussion should take place elsewhere — on the conda-forge.github.io repository first, perhaps?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Comment thread recipe/recipe.yaml Outdated
Comment thread recipe/patches/0001-Blacklist-knl-for-clang-19.patch
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
It no longer does anything.

Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Signed-off-by: Michał Górny <mgorny@quansight.com>
Fixes conda-forge#34

Signed-off-by: Michał Górny <mgorny@quansight.com>
@mgorny

mgorny commented Nov 12, 2025

Copy link
Copy Markdown
Contributor Author

Pending the decision on DLLs, I've added an OpenMP variant :-).

Comment thread recipe/recipe.yaml Outdated
Signed-off-by: Michał Górny <mgorny@quansight.com>
…5.11.17.12.05.48

Other tools:
- conda-build 25.9.0
- rattler-build 0.49.0
- rattler-build-conda-compat 1.4.9
@mgorny

mgorny commented Nov 18, 2025

Copy link
Copy Markdown
Contributor Author

Restored the original library names, and added comments telling which file is which.

@mgorny

mgorny commented Nov 19, 2025

Copy link
Copy Markdown
Contributor Author

@isuruf, is this good to go now? I'd like to start fighting blas-feedstock again.

@isuruf isuruf merged commit 8880baf into conda-forge:main Nov 20, 2025
11 checks passed
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.

6 participants