Skip to content

对 sources dish 贡献者的展示 #384

Open

Description

@ccmywish

出于复用的考虑,许多 dish 直接使用了 sources dish 的源。许多贡献者对 sources dish 进行了维护,然而这些维护者的信息没有得到展示。

比如 PyPI 这个 sources dish 里的维护者信息被掩盖了。

Activity

  1. added theissue type on Aug 22, 2026
  2. added this to the v0.2.8 milestone on Aug 22, 2026
  3. self-assigned this
    on Aug 22, 2026
  4. ccmywish commented on Sep 1, 2026

    @ccmywish
    ContributorAuthor

    如果完全实现 combo 嵌套 + 展示 sources dish,可能会导致不必要的重复,如下例,可见 __internal__sources_only_dish__pypi__ 被多次展示。

    $ ./chsrc ls py
    chsrc: py 由以下4个子菜品组成,可使用 chsrc ls <sub-dish> 分别查看
    
    pip
    食谱创建: 2023-09-03 食谱更新: 2026-08-12
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: Happy Game <happygame1024@gmail.com>
    
        pip 使用其它菜品的源: __internal__sources_only_dish__pypi__
        食谱创建: 2023-09-03 食谱更新: 2026-08-01
        主厨: 曾奥然 <ccmywish@qq.com>, Happy Game <happygame1024@gmail.com>
        调味: 徐永祥 <1926885268@qq.com>, ccy <icuichengyi@gmail.com>, Mikachu2333 <linkchou@yandex.com>, Yangmoooo <yangmoooo@outlook.com>
    
    pdm
    食谱创建: 2024-06-05 食谱更新: 2025-07-11
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: 暂空缺, 欢迎参与贡献
    
        pdm 使用其它菜品的源: __internal__sources_only_dish__pypi__
        食谱创建: 2023-09-03 食谱更新: 2026-08-01
        主厨: 曾奥然 <ccmywish@qq.com>, Happy Game <happygame1024@gmail.com>
        调味: 徐永祥 <1926885268@qq.com>, ccy <icuichengyi@gmail.com>, Mikachu2333 <linkchou@yandex.com>, Yangmoooo <yangmoooo@outlook.com>
    
    poetry
    食谱创建: 2024-08-08 食谱更新: 2025-07-11
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: 暂空缺, 欢迎参与贡献
    
        poetry 使用其它菜品的源: __internal__sources_only_dish__pypi__
        食谱创建: 2023-09-03 食谱更新: 2026-08-01
        主厨: 曾奥然 <ccmywish@qq.com>, Happy Game <happygame1024@gmail.com>
        调味: 徐永祥 <1926885268@qq.com>, ccy <icuichengyi@gmail.com>, Mikachu2333 <linkchou@yandex.com>, Yangmoooo <yangmoooo@outlook.com>
    
    uv
    chsrc: uv 由以下2个子菜品组成,可使用 chsrc ls <sub-dish> 分别查看
    
      uv-pypi-index
      食谱创建: 2024-12-11 食谱更新: 2026-08-19
      主厨: Happy Game <happygame1024@gmail.com>, MingriLingran <i@linran.moe>, Mikachu2333 <linkchou@yandex.com>
      调味: 曾奥然 <ccmywish@qq.com>, ccy <icuichengyi@gmail.com>
    
          uv-pypi-index 使用其它菜品的源: __internal__sources_only_dish__pypi__
          食谱创建: 2023-09-03 食谱更新: 2026-08-01
          主厨: 曾奥然 <ccmywish@qq.com>, Happy Game <happygame1024@gmail.com>
          调味: 徐永祥 <1926885268@qq.com>, ccy <icuichengyi@gmail.com>, Mikachu2333 <linkchou@yandex.com>, Yangmoooo <yangmoooo@outlook.com>
    
      uv-python-build
      食谱创建: 2026-08-02 食谱更新: 2026-08-19
      主厨: Mikachu2333 <linkchou@yandex.com>, 曾奥然 <ccmywish@qq.com>
    调味: 暂空缺, 欢迎参与贡献
  5. ccmywish commented on Sep 1, 2026

    @ccmywish
    ContributorAuthor

    由于 bun 并不属于 js combo,所以我们完全可以让 uv 也不属于 py combo

  6. added a commit that references this issue on Sep 1, 2026
  7. ccmywish commented on Sep 5, 2026

    @ccmywish
    ContributorAuthor

    减少 same source 的尝试方案引入了 chef_all_sub_dishes_use_same_source_from (this, &some_dish); 函数,但是又会遇到新的问题:即,如果一个 dish 本身又是具体 dish,又承担了 sources dish 的责任时,它的维护信息会出现两次:

    $ ./chsrc ls js
    chsrc: js 由以下3个子菜品组成,可使用 chsrc ls <sub-dish> 分别查看
    
    npm
    食谱创建: 2023-08-30 食谱更新: 2026-08-12
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: Mr. Will <mr.will.com@outlook.com>
    
    yarn
    食谱创建: 2023-09-09 食谱更新: 2025-07-11
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: Mr. Will <mr.will.com@outlook.com>
    
    pnpm
    食谱创建: 2024-04-18 食谱更新: 2025-07-11
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: 暂空缺, 欢迎参与贡献
    
    npm (上述所有子菜品借用本菜品源)
    食谱创建: 2023-08-30 食谱更新: 2026-08-12
    主厨: 曾奥然 <ccmywish@qq.com>
    调味: Mr. Will <mr.will.com@outlook.com>
  8. ccmywish commented on Sep 5, 2026

    @ccmywish
    ContributorAuthor

    现在我们尝试引入一种新方案(方案名 GH384-A):

    以下所有的 dish 都指的是在 combo dish 里的 sub dish 为基础来讨论。

    由于每个 dish(下文称之为 self dish),它都可能伴随一个 sources dish,但是对于这个 sources dish,我们可能缩进展示,可能不缩进展示。

    1. 如果这个 dish 的 sources dish

      • 并非之前的 sibling dish
      • 不是之后的 sibling dish
      • 不是之后的 sibling dish 的 sources dish
      • 以及不是嵌套 combo dish 中应用上述规则的 dish

      那就立刻在 self dish 的下方缩进展示。

    2. 否则就在所有 sibling dish 打印完后,并列(不缩进)展示 sources dish

    3. 无论如何,只让一个 dish 的维护信息,打印且仅打印唯一一次

  9. ccmywish commented on Sep 5, 2026

    @ccmywish
    ContributorAuthor

    上述方案 GH384-A 实现非常困难,我们现在引入方案 GH384-B:

    由于 uv 已经从 Python combo 中拆出来,意味着当前没有任何一个 combo 是嵌套的,这是该方案的基础,即后续我们引入新的 combo 时,也不允许再嵌套。要注意的是,嵌套的一些基础代码依旧存在,之后也并不会删除!

    依然利用 all_sub_dishes_use_same_source 字段,但是在 waiter_handle_List_Info() 的时候,我们会额外检测,如果借用的这个 sources dish 本身就是 combo dish 里的 sub dish 之一(对应 JavaScript combo 的 npm 的情况),就不再打印。

  10. added a commit that references this issue on Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions