Skip to content

Conversation

@Flamefire
Copy link
Contributor

It does not make sense for extensions to inherit source(-likes), patches or checksums from the parent easyconfig.

Especially the sources won't be used anyway, so reset those to the defaults to avoid confusion.
self.src is set by using ext['src'] set by collect_exts_file_info possibly based on options['sources']

I found this while handling the case where crates for a Cargo extension were found which is an error: They would be unused.
However they were not set for the extension but in the parent easyconfig.

More general: Most easyconfig parameters should not be inherited for extensions.
Do we actually want to inherit any parameters at all? If so which? Should we just annotate those and reset or remove the rest?

It does not make sense for extensions to inherit source(-likes), patches
or checksums from the parent easyconfig.
Especially the `sources` won't be used anyway, so reset those to the
defaults to avoid confusion.
@Flamefire
Copy link
Contributor Author

bitsandbytes-0.46.1-foss-2024a.eb fails to install the Python extension package because skipsteps is inherited and honored by PythonPackage

Hence we should reset that too.

I found only 5 ECs that could be affected by this and all look OK:

  • bitsandbytes-0.46.1-foss-2024a.eb
  • MUSCLE3-0.7.0-foss-2022b.eb
  • MUSCLE3-0.8.0-foss-2023b.eb
  • alleleCount-4.2.1-GCC-11.3.0.eb
  • alleleCount-4.3.0-GCC-12.2.0.eb

@boegel
Copy link
Member

boegel commented Jan 14, 2026

Not letting extensions inheriting sources, patches, checksums, skipsteps makes sense to me, I don't see a good use case for that...

More general: Most easyconfig parameters should not be inherited for extensions. Do we actually want to inherit any parameters at all? If so which? Should we just annotate those and reset or remove the rest?

That may be hard to change at this point.

There definitely are a bunch of easyconfigs that rely on this long-standing behavior, so changing this now would at the very least need to be done carefully, for example by deprecating first, and produce hard errors in EasyBuild 6.0.

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

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

lgtm

@boegel boegel merged commit b2f85db into easybuilders:develop Jan 14, 2026
40 checks passed
@Flamefire Flamefire deleted the non-inherit-ext branch January 14, 2026 15:02
@Flamefire
Copy link
Contributor Author

so changing this now would at the very least need to be done carefully, for example by deprecating first, and produce hard errors in EasyBuild 6.0.

How could we deprecate this? I don't see any way to know when something relies on having the value inherited.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants