门禁不覆盖 feature matrix(no-default-features)→ feature-gating 缺陷合入后才被 CI 检出(#94 实例)

Cerrado
#14 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
65/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust, yaml

Línea de trabajo

Start by reading the gate configuration and command handling for ~/.issue-keeper/config.yaml, then compare the recursive gate with .github/workflows/ci.yml:64-86. Add the bare cargo clippy --lib --no-default-features -- -D warnings check with the paths and timeout described in the issue. Done means the restored #94 lines are caught, normal gates pass, and the added runtime is no more than about two minutes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

场景 gap 单(okguitar 提报)· 优先级 P2 · 依赖:无

基线 HEAD = 16fa769(jeffkit/issue-keeper)

Summary

管线本地门禁(~/.issue-keeper/config.yaml 各仓 gates)只跑 --all-features 组合,不覆盖无默认特性 / 单特性隔离构建;而 recursive 的 CI 有 feature matrix(8 变体:bare + mcp/http/cli/web_fetch/anthropic/skill-hub/web_search)。机制上:feature-gating 编译错误在本地门禁永远是盲区,只能等合入后由 CI 首红暴露。

今日实例(同型第二次):#94(recursive a9e8a6f5)新文件 src/llm/factory.rs 在无 anthropic feature 下 clippy -D warnings 两处报错——use std::time::Duration 未使用(仅 anthropic 臂使用)、thinking_budget 参数未使用(仅转发给 anthropic 臂)。本地门禁(fmt/clippy --all-features/test)全绿放行 → CI run 37319059193 feature matrix 8 变体红 7;值守止血 9a4efb27(cfg 门控)后转绿(run 37322090026 matrix 8/8)。先例:#100 时代 clippy 未入门禁 → CI 拦截,后以"门禁补 clippy"解决——本次是同一"门禁覆盖 ≠ CI 覆盖"类的残留面。

影响

  • main CI 红只能合入后暴露:需值守止血或二次 run,成本高且打断验收节奏;
  • CI 连续红会掩盖后续真实回归(区分红因需人工读日志);
  • 所有 Rust 仓(recursive/agentproc/im-agentproc/ilink-hub)同型档位均可能踩(机制存在但本地从未构建过该组合)。

证据(亲读)

  • ~/.issue-keeper/config.yaml(recursive 档)gates clippy:cargo clippy --workspace --all-targets --all-features -- -D warnings —— 无 --no-default-features;另一 Rust 档(同文件 115 行附近)同型。
  • recursive .github/workflows/ci.yml:64-86:feature matrix 跑 cargo check --lib --no-default-features + cargo clippy --lib --no-default-features [--features X] -- -D warnings(8 变体)。
  • 红 run 日志原文(退出 101,factory.rs:16 unused import + factory.rs:37 unused variable)。

建议

在 recursive 档 gates 增加一条 bare 检查(增量缓存下约 1 分钟,不必跑全 8 变体):

- name: feature-matrix-bare
  command: cargo clippy --lib --no-default-features -- -D warnings
  timeout_secs: 600
  paths: ['src/**', 'Cargo.toml', 'Cargo.lock']

agentproc / im-agentproc / ilink-hub 如果有 no-default-features 构建矩阵(各自 CI 已证有),同型各加一行。

验收

合成提交(如把 #94 的 factory.rs 原始两行还原到分支)跑下发前门禁:bare 检查能报错拦截;同时正常提交门禁全绿不误报、耗时增量 ≤ ~2 分钟。

Lenguaje dominante
Python
Estrellas
0
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de jeffkit/issue-keeper

Todos los issues de jeffkit/issue-keeper

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.