Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
47
CLAUDE.md
Normal file
47
CLAUDE.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
Nix flake providing custom packages not available in nixpkgs. Tracks `nixos-unstable`. Uses `config.allowUnfree = true`.
|
||||
|
||||
## Build Commands
|
||||
|
||||
```bash
|
||||
# Build a specific package
|
||||
nix build .#packages.x86_64-linux.<package-name>
|
||||
|
||||
# Build all packages (x86_64-linux)
|
||||
./scripts/build-all.sh
|
||||
|
||||
# Validate flake
|
||||
nix flake check
|
||||
|
||||
# Update flake inputs
|
||||
nix flake update
|
||||
```
|
||||
|
||||
## Structure
|
||||
|
||||
- `flake.nix` — Defines all packages and per-package overlays. Packages are registered in `packages` and exposed via `overlays`.
|
||||
- `pkgs/<name>/default.nix` — Individual package definitions, called via `pkgs.callPackage` (or `pkgs.qt6Packages.callPackage` for Qt packages).
|
||||
- `scripts/` — Helper scripts (`build-all.sh`, `update-pob.sh`).
|
||||
|
||||
## Adding a New Package
|
||||
|
||||
1. Create `pkgs/<name>/default.nix` with the package derivation.
|
||||
2. Add the package to `packages` in `flake.nix` via `callPackage`.
|
||||
3. Add a per-package overlay in `flake.nix` `overlays` and include it in the `default` overlay if appropriate.
|
||||
|
||||
## Packaging Patterns Used
|
||||
|
||||
- **AppImage**: `appimageTools.wrapType2` (see `poe-sidekick`)
|
||||
- **Electron/Yarn**: `yarnConfigHook` + `yarnBuildHook` + `fetchYarnDeps` (see `awakened-poe-trade`)
|
||||
- **Qt6/Meson**: `qt6Packages.callPackage` + `wrapQtAppsHook` (see `path-of-building-*`)
|
||||
- **Rust/Cargo**: `rustPlatform.buildRustPackage` + `useFetchCargoVendor` (see `noita-entangled-worlds`)
|
||||
- **Binary/.NET**: `fetchurl` + `makeWrapper` with `makeLibraryPath` (see `vintagestory`)
|
||||
|
||||
## Commit Style
|
||||
|
||||
Imperative, prefixed with package name when relevant: `poe-sidekick: add package`, `Bump entangled worlds`.
|
||||
Reference in New Issue
Block a user