跳到正文
cccskills
免费在 GitHub 公开

validation

Validate a package change before committing. Use after editing any Nix expression — covers the evaluation, build, and format checks, reading common eval and build errors, and the full pre-commit checklist.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs星标 94(GitHub 94 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md2.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Package Validation

All package changes must pass three validation steps:

1. Evaluation Check

Verify Nix expression evaluates correctly:

nix-instantiate -A <package-name>

Expected: /nix/store/abc123...-package-1.0.0.drv

For non-derivations:

nix-instantiate --eval -A <attribute>

2. Build Check

Verify package builds successfully:

nix-build -A <package-name>

Expected: result symlink to /nix/store/xyz789...-package-1.0.0

Inspect results:

ls -la result/
./result/bin/example --version
ldd result/lib/libexample.so

3. Format Check

Ensure code follows formatting standards:

nix fmt <path-to-file>

Format all modified files:

git diff --name-only '*.nix' | xargs -I {} nix fmt {}

Checking Dependencies

Verify dependencies exist before porting:

# Single dependency
nix-instantiate -A zlib

# Multiple dependencies
for dep in acl lzo cmocka zlib zstd; do
  echo -n "$dep: "
  nix-instantiate -A $dep >/dev/null 2>&1 && echo "✓" || echo "✗"
done

DO NOT search top-level.nix with grep. Packages in pkgs/ and pkgs-many/ are auto-registered.

Common Errors

Evaluation Errors

Missing dependency:

error: attribute 'somelib' missing

Port the dependency or add TODO comment.

Syntax error:

error: syntax error, unexpected ')'

Fix the syntax in the Nix expression.

Build Errors

Missing build tool:

error: Program 'pkg-config' not found

Add to nativeBuildInputs.

Missing library:

/nix/store/.../bin/ld: cannot find -lz

Add to buildInputs.

Test failures: Tests are disabled by default. Investigate or keep disabled.

Complete Validation Workflow

# Validate a package
PACKAGE="example"

# 1. Evaluate
nix-instantiate -A $PACKAGE

# 2. Build
nix-build -A $PACKAGE

# 3. Test result
./result/bin/$PACKAGE --version

# 4. Format
nix fmt pkgs/$PACKAGE/default.nix

Validation Checklist

  • nix-instantiate -A <package> succeeds
  • nix-build -A <package> succeeds
  • Built binary/library works
  • All dependencies verified with nix-instantiate
  • nix fmt run on all edited files
  • No meta.maintainers or meta.teams
  • TODO comments for missing dependencies

Advanced Validation

Check closure size:

nix-store -q --tree $(nix-build -A example --no-out-link)

Check runtime dependencies:

nix-store -q --references $(nix-build -A example --no-out-link)

Rebuild from scratch:

nix-build -A example --rebuild

Reproducibility check:

nix-build -A example --check

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Review a package expression for best-practices compliance. Use when reviewing PRs or auditing existing packages — checks meta completeness, build-system idioms (cmakeEntries, mesonEntries, pyproject), dependency placement, and packaging conventions.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

cmake

免费

Package a CMake-based project for corepkgs. Use when a source tree has a CMakeLists.txt — covers the minimal derivation, cmakeEntries, cross-compilation, and diagnosing CMake configure failures.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

Fix all broken package builds in the repository. Runs a full build of ci/packages.nix in the background while iterating on failures in the foreground until everything builds.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

go

免费

Package a Go module for corepkgs. Use when writing or editing a buildGoModule derivation — covers vendorHash, ldflags, subPackages, tags, env.CGO_ENABLED, proxyVendor, shell completions, and pinning a Go version.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

meson

免费

Package a Meson/Ninja project for corepkgs. Use when a source tree has a meson.build — covers mesonFlags, auto features, cross-compilation, and diagnosing Meson setup failures.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

Work with multi-version packages under pkgs-many (guile, go, erlang, perl, openssl, ...). Use when adding or changing a package that ships several versions side by side — covers the default.nix/variants.nix/generic.nix three-file pattern, the packageOlder/packageAtLeast version helpers, and mkVariantPassthru.

中文简介正在准备中。当前显示原文说明。

ekala-project/corepkgs942026年10月26日 更新

查看 ekala-project 的全部技能

报告此技能的问题