conda-forge / conda-forge.github.io

The conda-forge website.
https://conda-forge.org
BSD 3-Clause "New" or "Revised" License
132 stars 279 forks source link

Gallery of toy recipes that implement "known conda-build patterns" #1908

Open jaimergp opened 1 year ago

jaimergp commented 1 year ago

Where should the content be added?

This could be worth its own section

What should be added?

The idea is to have a set of recipes that implement known patterns that might be not obvious. One can always use the new search Github feature to look for similar examples, but they are often too complex (several patterns at once) to infer the known bits quickly.

Having single-pattern recipes (even if they do not really build real packages) could be a useful resource for users learning how to create recipes for conda-forge.

Additional information

Inspired by conversation in this Matrix thread.

gschramm commented 1 year ago

A few things that come to my mind are:

carterbox commented 1 year ago

Related: https://github.com/conda-forge/staged-recipes/pull/19000#issuecomment-1235979325

I think we should lean towards a gallery of live recipes as much as possible instead of toy examples because there is less maintenance work and they would be kept up to date with current migrations and practices. It might be difficult to find live examples of specific patterns in isolation, but I'm sure they exist... somewhere in the catalogue 😉.

carterbox commented 1 year ago

I've reviewed a lot of simple CXX package recipes for @traversaro. Maybe he could link one simple compiled and one simple header-only example here to start our list.

https://github.com/conda-forge/tomopy-feedstock is an example of a feedstock which ships "a python/c package using ctypes" to which I would be willing to add explanatory markup.

traversaro commented 1 year ago

I've reviewed a lot of simple CXX package recipes for @traversaro. Maybe he could link one simple compiled and one simple header-only example here to start our list.

Sure (and thanks for all the reviews)!

dhirschfeld commented 1 year ago
hmaarrfk commented 1 year ago
ocefpaf commented 1 year ago
jaimergp commented 1 year ago
  • It would be nice to add some of the "semi-arch" ones that use the OS virtual packages.
bollwyvl commented 6 months ago

Violently agreeing with https://github.com/conda-forge/conda-forge.github.io/issues/1908#issuecomment-1452425042: a curated "showcase" would likely be more useful over time, as it would not go out-of-date.

I imagine this as a single-file-PR docs build with a relatively flat folder structure.

pick your tool poison, please avoid nodejs. I'll assume sphinx with myst-parser.

conda-forge-showcase/
  README.md
  CONTRIBUTING.md
  .readthedocs.yaml
  environment.yml
  showcase.schema.yaml
  feestock.md.j2
  docs/
    conf.py
    index.md
    feedstocks/
      a-feedstock/
        showcase.yaml
      z-feedstock/
        showcase.yaml

Either in-line in the build, or as a preflight step:

Gin up a showcase.schema.json (probably just written in YAML/TOML, no pydantic thanks) which provides a curated vocabulary of concepts which are not structurally derived.

For example:

notable_prs:
  123:
    description: adds noarch
    tags: [add-noarch]