Skip to content

Mark conda-skeleton as pending deprecation - #6023

Open
jsmolic wants to merge 5 commits into
conda:mainfrom
jsmolic:deprecate-skeleton
Open

Mark conda-skeleton as pending deprecation#6023
jsmolic wants to merge 5 commits into
conda:mainfrom
jsmolic:deprecate-skeleton

Conversation

@jsmolic

@jsmolic jsmolic commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

conda skeleton has not been updated in recent years and does not work reliably anymore due to bugs in the codebase (e.g. #1, #2, #3, #4) Additionally, more modern and faster alternatives such as grayskull and rattler-build generate-recipe are available.

This PR marks conda skeleton as pending deprecation. conda build will still provide skeleton command until 27.9 release, when it is scheduled to be removed. Users are encouraged to use grayskull instead of conda skeleton.

Changes in the PR:

  • Mark conda-skeleton and all related modules as pending deprecation
  • Update the code in few places to use inspect.signature which works better with the decorators.
  • Update the test suite to expect the deprecation warning

Description

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

@github-project-automation github-project-automation Bot moved this to 🆕 New in 🔎 Review Jun 24, 2026
@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label Jun 24, 2026
@jsmolic jsmolic moved this from Sorting ⚙️ to In Progress 🏗️ in conda Roadmap and Sprint Planning Jun 24, 2026
@jsmolic jsmolic self-assigned this Jun 24, 2026
@jsmolic jsmolic linked an issue Jun 24, 2026 that may be closed by this pull request
@codspeed-hq

codspeed-hq Bot commented Jun 24, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 5 untouched benchmarks


Comparing jsmolic:deprecate-skeleton (b9adb27) with main (ea47346)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (1be6657) during the generation of this report, so ea47346 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@jsmolic
jsmolic force-pushed the deprecate-skeleton branch 3 times, most recently from 71c0af4 to 87a4c97 Compare June 25, 2026 12:03
@jsmolic
jsmolic force-pushed the deprecate-skeleton branch from 87a4c97 to dd19e91 Compare June 25, 2026 12:04
@jsmolic
jsmolic force-pushed the deprecate-skeleton branch from dd19e91 to 8645d18 Compare June 25, 2026 12:05
@jsmolic
jsmolic marked this pull request as ready for review June 25, 2026 13:18
@jsmolic
jsmolic requested a review from a team as a code owner June 25, 2026 13:18
@jsmolic jsmolic moved this from In Progress 🏗️ to In review 🔍 in conda Roadmap and Sprint Planning Jun 25, 2026

@danyeaw danyeaw 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.

Hey @jsmolic, thanks for working on this, this looks really good! I noticed that if users do call skeleton from the CLI they will get multiple layers of deprecations:

  1. CLI module
  2. api.skeletonize
  3. Each API backend

What if we:

  1. Remove @deprecated from each skeletonize function
  2. Add deprecated.module(...) at the top of each skeleton backend file
  3. Keep one CLI-level decorator on main_skeleton.execute

I think that is the pattern that #4251 used.

Also, should we add a warning on the skeleton tutorial and command docs that it is pending deprecation and shouldn't be used for new conda recipes?

)


@deprecated("27.3", "27.9", addendum="Use `grayskull` instead.")

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.

Since grayskull only provides PyPI and CRAN support, maybe we should soften the wording for the other backends?

@isuruf isuruf left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Conda skeleton is the most complete CRAN recipe generator there is. I'm against deprecating this feature.

@github-project-automation github-project-automation Bot moved this from 🆕 New to 🏗️ In Progress in 🔎 Review Jun 26, 2026
@danyeaw danyeaw moved this from In review 🔍 to On Hold 🛑 in conda Roadmap and Sprint Planning Jun 26, 2026
@jezdez

jezdez commented Jun 29, 2026

Copy link
Copy Markdown
Member

@isuruf Would you be interested in maintaining it (e.g. outside of conda-build)? Do you know who would? Would porting it to grayskull be an enabler or create stop energy?

@wolfv

wolfv commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

@isuruf any pointers as to what is missing from rattler-build generate-recipe cran foobar? We'd be happy to implement the missing features!!

@isuruf

isuruf commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

@wolfv, look at https://github.com/conda-forge/r-gmp-feedstock/blob/main/recipe/meta.yaml for example and compare that with the recipe you get from rattler-build. Deps are wrong. License files is missing. cross-r-base is missing. R_ARGS env variable passing to R CMD is missing. rpaths are missing.

@isuruf

isuruf commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

@isuruf Would you be interested in maintaining it (e.g. outside of conda-build)? Do you know who would? Would porting it to grayskull be an enabler or create stop energy?

Porting it to grayskull would be ideal. Might be a good GSoC project.

@dbast

dbast commented Jun 29, 2026

Copy link
Copy Markdown
Member

If somebody ports the R skeleton part, also this cleanup / skeleton-post-process code could be incorporated https://github.com/bgruening/conda_r_skeleton_helper

@jaimergp

Copy link
Copy Markdown
Member

Conda skeleton is the most complete CRAN recipe generator there is.

That doesn't mean is fully functional though. R maintainers often comment on needing https://github.com/bgruening/conda_r_skeleton_helper on top (references: #general > R staged recipes reviews @ 💬, https://github.com/conda-forge/staged-recipes/blob/cedb79676c03427ee863d404581eed31d9710685/.github/ISSUE_TEMPLATE/package-request.yml?plain=1#L19, https://github.com/conda-forge/conda-forge.github.io/blob/67fc9430a8c64445244769e0ee8efbd9d46c3ac4/docs/maintainer/adding_pkgs.mdx?plain=1#L49-L51).

Even if this feature is deprecated, an older conda-build version can be installed (e.g. pixi exec --with conda-build=3.27 conda skeleton cran ...) since this is mostly used as a CLI.

@jaimergp

Copy link
Copy Markdown
Member

@pb01ka, I think you were also looking into this at some point, weren't you?

@pb01ka

pb01ka commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

@pb01ka, I think you were also looking into this at some point, weren't you?

AFAICT, I wasn't specifically looking into this topic (i.e., Mark conda-skeleton as pending deprecation). I did my research on the broader topic of comparing different tools for R recipe generation. The issue is open at prefix-dev/rattler-build#2563

Refer the first point,

Also the response received at prefix-dev/rattler-build#2563 (comment), prefix-dev/rattler-build#2563 (comment) and prefix-dev/rattler-build#2563 (comment). Quoting one specific response,

Yes, that's a misinterpretation. 99.9% of R packages are in CRAN so R packages in github is a niche problem. conda skeleton cran is still the best way to generate R recipes.

@isuruf

isuruf commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

That doesn't mean is fully functional though. R maintainers often comment on needing https://github.com/bgruening/conda_r_skeleton_helper on top

Sure, but we can't do that for rattler-build or grayskull.

@isuruf

isuruf commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Refer the first point,
conda skeleton cran - broken in all recent conda-build releases

As I said in the other issue, this is a non-issue (at least for 99.9% of cases). Please stop spreading FUD.

@pb01ka

pb01ka commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

As I said in the other issue, this is a non-issue (at least for 99.9% of cases). Please stop spreading FUD.

Yes. I have linked your responses as well in my comment above. The issue description in rattler-build also quotes your correction.

Please let me know if I missed anything.

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

Labels

cla-signed [bot] added once the contributor has signed the CLA

Projects

Status: On Hold 🛑
Status: 🏗️ In Progress

Development

Successfully merging this pull request may close these issues.

Grayskull to replace conda-skeleton?

9 participants