Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[v2] Consolidate runtime discovery, acquisition, and embedding

未关闭
#2,524 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
github, go, python, rust

调研方向

首先审查 #1934,并确定 #2395、#2463 和 #2505 已经覆盖的内容,以及被引用的 commit 05dd60e。跟踪受影响 SDK 中 runtime 获取、打包和嵌入的路径,并确定所需的 github/copilot-cli release assets。完成意味着:在不重复已完成工作的情况下,实现文档化的 artifact contract,以及平台、offline、override、checksum 和 cache 行为。

由索引模型根据 Issue 内容生成。

描述

sdk-v2

Summary

Complete a coherent model for locating, acquiring, packaging, and embedding the Copilot runtime across all SDKs.

These items are planned work carried forward from #1934. Existing work may satisfy part of the required outcome; verify and build on it rather than reopening completed implementation. Do not omit remaining work without concrete new evidence and maintainer agreement.

Why this work exists

The original Rust build.rs was forked between in-process and out-of-process modes for backward compatibility. In-process operation needed the .node native binary, which was available from @github/copilot on npm but was not included in the GitHub CLI release. Depending on npm for that binary was not considered viable long term.

Rust and Go also used build-time flags to choose whether the in-process binary was embedded because it duplicated the Copilot SEA executable already embedded in the application bundle.

Python independently performed executable resolution through PATH (introduced by commit 05dd60e), which could select an arbitrary system installation rather than the runtime expected by the SDK.

Required outcomes

  • Python does not implicitly select an executable through PATH; it uses the SDK-managed runtime or an explicitly configured path.
  • The underlying runtime build and publishing process publishes the required raw native binaries as separate GitHub Release assets.
  • SDKs acquire pinned, checksum-verified runtime artifacts from github/copilot-cli GitHub Releases rather than depending on @github/copilot npm artifacts.
  • Obsolete Rust and Go compile-time choices for embedding the in-process native library versus the executable runtime are removed.
  • Packaging converges on a minimal bootstrap executable plus the required native dynamic library without duplicating the full SEA/native runtime payload.
  • All supported platforms, offline/development scenarios, explicit overrides, checksums, and cache replacement behavior are covered.

Implementation preparation

  • Determine exactly which outcomes #2395, #2463, and #2505 already satisfy.
  • Complete rather than duplicate applicable in-progress work.
  • Identify and link any missing release assets or changes required from github/copilot-cli.
  • If a remaining change is compatible with v1, it may land there as groundwork while remaining part of this tracked outcome.
  • Preserve backward compatibility where it does not conflict with the intended v2 cleanup, and document any runtime-version requirements.

Historical context

  • #1934
  • Commit 05dd60e
  • #2395
  • #2463
  • #2505

Completion

Deliver the required outcomes across affected SDKs with a documented artifact contract and platform coverage. Any outcome considered obsolete or infeasible requires concrete evidence and explicit maintainer agreement before it is removed from scope.

主要语言
Java
星标
10.5k
派生
1.5k
平均合并
1 天 9 小时
30 天内合并 PR
130

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/copilot-sdk 的其他 Issue

查看 github/copilot-sdk 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。