Skip to content

Add kalign and kalign-python#32505

Merged
bgruening merged 5 commits into
conda-forge:mainfrom
sdvillal:add-kalign
May 9, 2026
Merged

Add kalign and kalign-python#32505
bgruening merged 5 commits into
conda-forge:mainfrom
sdvillal:add-kalign

Conversation

@sdvillal
Copy link
Copy Markdown
Contributor

@sdvillal sdvillal commented Mar 7, 2026

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

kalign conda-forge recipe proposal; big thanks to the authors of the original bioconda recipe.

This one would:

  • migrate to conda-forge
  • move to the new recipe format and rattler-build
  • bump to newer version
  • consolidate name to "kalign"
  • but also add an output "kalign3" for backwards compatibility with bioconda users
  • report new Apache licensing
  • add an output for kalign-python

From this comment:

We have in bioconda a package called kalign2 and kalign3. This might cause confusion to users I think. Is it the same tool?

Good question @bgruening. Yes, it is the same tool: kalign3 is "kalign version 3".

The plan was to get first this working and then figure if:

  1. publishing to conda-forge and stop updating the bioconda package
  2. or porting back to bioconda's kalign3 recipe (plus creating a new recipe or output kalign-python)
  3. or creating a new package kalign-python in conda-forge (which would not collide with anything in bioconda and enable our downstream packaging needs), and let the bioconda kalign3 package continue as is

Context

We are hoping to publish soon an openfold3 package targeting conda-forge (as we hope for openfold-3 to also become an easier building block for other programs), which will require good CUDA/GPU support and cross-platform abilities in the building infrastructure (e.g., for getting bot migrations, for building and testing CUDA extensions).

kalign has now python bindings, also published as wheels (see 1, 2). It also changed its license from GPL to Apache, so that it could play well with openfold3.

Channel: Bioconda or conda-forge?

For me, it is much preferred to port to conda-forge and not maintain anymore kalign3 in bioconda, hopefully bringing any interested active bioconda maintainers along. The upcoming version of openfold3 depends on kalign-python, so if we only have it in bioconda, it will be a blocker (the only one remaining at the moment).

People looking for the new version in the conda ecosystem will for sure be able to use the conda-forge package, and we could add a synonymous output "kalign3" to the recipe, making transition seamless (since anyway people using bioconda should also be using conda-forge).

Name: "kalign3" or "kalign"

I believe renaming to kalign is the better way, as it is:

As written before, we could still keep a synonymous package "kalign3" to not break any user's workflow.

@sdvillal sdvillal marked this pull request as draft March 7, 2026 21:14
@conda-forge-admin
Copy link
Copy Markdown
Contributor

conda-forge-admin commented Mar 7, 2026

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

I wanted to let you know that I linted all conda-recipes in your PR (recipes/kalign/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/kalign/recipe.yaml:

  • ❌ pin_compatible should be used instead of pin_subpackage for ${{ because it is not a known output of this recipe: ['kalign', 'kalign-python'].
  • ❌ pin_compatible should be used instead of pin_subpackage for ${{ because it is not a known output of this recipe: ['kalign', 'kalign-python'].

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 7, 2026

Hi! This is the staged-recipes linter and your PR looks excellent but I have some suggestions.

File-specific lints and/or hints:

  • recipes/kalign/recipe.yaml:
    • hints:
      • It looks like you are submitting a multi-output recipe. In these cases, the correct name for the feedstock is ambiguous, and our infrastructure defaults to the top-level package.name field. Please add a feedstock-name entry in the extra section.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 7, 2026

Hi! This is the staged-recipes linter and your PR looks excellent! 🚀

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

@conda-forge-admin
Copy link
Copy Markdown
Contributor

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

I wanted to let you know that I linted all conda-recipes in your PR (recipes/kalign/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/kalign/recipe.yaml:

  • ❌ pin_subpackage should be used instead of pin_compatible for kalign because it is one of the known outputs of this recipe: ['kalign', 'kalign-python'].

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

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

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

I do have some suggestions for making it better though...

For recipes/kalign/recipe.yaml:

  • ℹ️ No valid build backend found for Python recipe for package `` using pip. Python recipes using `pip` need to explicitly specify a build backend in the `host` section. If your recipe has built with only `pip` in the `host` section in the past, you likely should add `setuptools` to the `host` section of your recipe.

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

@bgruening
Copy link
Copy Markdown
Contributor

We have in bioconda a package called kalign2 and kalign3. This might cause confusion to users I think. Is it the same tool?

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

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented Mar 8, 2026

We have in bioconda a package called kalign2 and kalign3. This might cause confusion to users I think. Is it the same tool?

Good question @bgruening. Yes, it is the same tool: kalign3 is "kalign version 3".

See answer in PR description.

@bgruening
Copy link
Copy Markdown
Contributor

@sdvillal have you seen my comment above?

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented Mar 8, 2026

@sdvillal have you seen my comment above?

Could you please read my answer in the PR description and tell me what do you think?

Without migrating this one package to conda-forge we will not be able to have conda-forge packages for openfold-3 (and other related ML models).

But if we decide to keep it in bioconda, happy if the work in this PR maybe helps bringing the new features there.

@bgruening
Copy link
Copy Markdown
Contributor

I will ping a few people and ask. Naming it kalign and kalign-python seems good to me, as long as we deprecate the kalign3 package on Bioconda.

@sdvillal
Copy link
Copy Markdown
Contributor Author

That would be much appreciated. My plan was to figure bioconda's package contributors by looking at git history, which likely is not the best way to go.

Once we decide, let's ping kalign's author to see if he also would like to become a maintainer and to suggest adding the conda package to the docs.

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented Mar 15, 2026

@bgruening should I try helping contacting the bioconda maintainers? I do not know how to find the right list of people, as bioconda recipes are not organized in repos. Should I just open an issue there and ping recent committers?

This is blocking using kalign-python in conda environments in osx due to this problem with the wheels (see also this).

This is also blocking openfold-3 having a working conda environment and package creation after the recent 0.4 release.

For reference, this is the autobump PR in bioconda.

@sdvillal sdvillal marked this pull request as ready for review March 15, 2026 06:33
Consistent use of quotes
@sdvillal
Copy link
Copy Markdown
Contributor Author

@bgruening it is not clear to me who is actively maintaining kalign3 in bioconda. The automated PR fails and has not received any attention so far.

What is the mechanism to deprecate a package in bioconda? I would just open an issue in the recipes repo.

As a note, the only package that depends on kalign3 is kcalign. Migration would mean swapping kalign3 to kalign in its recipe.

Really appreciate your help :-)

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

I do have some suggestions for making it better though...

For recipes/kalign/recipe.yaml:

  • ℹ️ It looks like the '???' output doesn't have any tests.

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

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

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented Apr 3, 2026

@conda-forge/help-c-cpp @conda-forge/help-python ready to review

If/when merged:

  • Open a PR in bioconda deleting old kalign3 recipe to complete migration to CF
  • Close the failing and unatended autobump PR in bioconda
  • Enable arm targets
  • Try to bring more maintainers

@github-actions
Copy link
Copy Markdown
Contributor

Hi! This is the staged-recipes linter and I found some lint.

File-specific lints and/or hints:

  • recipes/kalign/recipe.yaml:
    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: Emrys-Merlin. Please ask them to comment on this PR if they are.

@sdvillal
Copy link
Copy Markdown
Contributor Author

@Emrys-Merlin can you please confirm your availability as maintainer?

@Emrys-Merlin
Copy link
Copy Markdown

Yes, I'd be happy to contribute as a maintainer here.

@github-actions
Copy link
Copy Markdown
Contributor

Hi! This is the staged-recipes linter and your PR looks excellent! 🚀

@traversaro
Copy link
Copy Markdown
Contributor

fyi @conda-forge/bioconda-recipes is the plan proposed in this PR ok for you?

@sdvillal
Copy link
Copy Markdown
Contributor Author

fyi @conda-forge/bioconda-recipes is the plan proposed in this PR ok for you?

@traversaro thanks for giving it a look

@conda-forge/bioconda-recipes hearing your feedback would be great 👍

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented Apr 21, 2026

@traversaro it feels bioconda maintainers do not have bandwidth, fully understandable.

To unblock other dependent work, an option would be to finish and merge this and then opening a PR in bioconda to deprecate the kalign3 recipe there. I think we might get more space for discussion if needed this way.

This might already be right as per this comment from @bgruening

I will ping a few people and ask. Naming it kalign and kalign-python seems good to me, as long as we deprecate the kalign3 package on Bioconda.

I think the reasoning for migration is sound, the new kalign-python output important, and I believe we are managing to have 100% seamless transition also for bioconda dependants (only one package) and final users.

Alternatively, we could open a new PR only with kalign-python, which does not exist yet in bioconda - likely suboptimal.

Sorry for asking for non-technical advice.

@sdvillal
Copy link
Copy Markdown
Contributor Author

This patch might be needed when we enable arm builds

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented May 7, 2026

@traversaro @conda-forge/bioconda-recipes it would be really useful if we could unblock this recipe, any help is highly appreciated

@traversaro
Copy link
Copy Markdown
Contributor

Sorry, if @conda-forge/bioconda-recipes people are not responsive I am not sure how to proceed. You may try to escalate this to @conda-forge/core, but I am not sure if any of core members have a better solution.

Copy link
Copy Markdown
Contributor

@bgruening bgruening left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@bgruening
Copy link
Copy Markdown
Contributor

Thanks, this looks good to me. Sorry, I needed to filter conda-forge email notifications, they are just too much.

@traversaro
Copy link
Copy Markdown
Contributor

Thank a lot @bgruening !

@sdvillal
Copy link
Copy Markdown
Contributor Author

sdvillal commented May 7, 2026

Thank you both! Exciting :-)

@bgruening bgruening merged commit 302117b into conda-forge:main May 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants