Homebrew bottle builder and tap manager for OCaml monorepos
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update bottler docs to use target field instead of package/exe_name

The config parser expects a `target` field (path to dune executable)
but the skill doc and README still referenced the old `package` and
`exe_name` fields, causing confusion when `bottler login` failed with
"Missing member target". Update both files with correct examples.

+29 -15
+29 -15
README.md
··· 41 41 42 42 binaries: 43 43 - name: prune 44 - package: prune 44 + target: prune/bin/main.exe 45 45 description: "Dead code remover for OCaml .mli files" 46 - homepage: https://tangled.org/gazagnaire.org/prune 46 + conflicts_with: 47 + - graphviz 47 48 48 49 - name: merlint 49 - package: merlint 50 + target: merlint/bin/main.exe 50 51 description: "Opinionated OCaml linter powered by Merlin" 51 52 52 53 - name: agent 53 - package: ocaml-agent 54 + target: ocaml-agent/bin/main.exe 54 55 description: "Claude Code container orchestrator" 55 - exe_name: main 56 56 head_deps: 57 57 - name: docker 58 58 type: recommended 59 59 ``` 60 60 61 - ### Optional fields 61 + ### Binary fields 62 + 63 + | Field | Required | Default | Description | 64 + |-------|----------|---------|-------------| 65 + | `name` | yes | — | Homebrew formula name (and installed binary name) | 66 + | `target` | yes | — | Path to dune executable (e.g., `pkg/bin/main.exe`) | 67 + | `description` | yes | — | Short description for the formula | 68 + | `homepage` | no | `""` | Custom homepage URL | 69 + | `head_deps` | no | `[]` | Runtime dependencies for `--HEAD` builds | 70 + | `conflicts_with` | no | `[]` | Homebrew packages that conflict | 71 + 72 + ### Optional config fields 62 73 63 74 | Field | Default | 64 75 |-------|---------| ··· 68 79 | `storage.endpoint` | `https://s3.{region}.scw.cloud` | 69 80 | `storage.rclone_remote` | `scaleway` | 70 81 | `tap.local_path` | `../homebrew-monopam` | 71 - | `binary.homepage` | `https://tangled.org/{handle}/{package}` | 72 - | `binary.exe_name` | Same as binary name | 73 - | `binary.head_deps` | `[]` | 74 82 75 83 ## Usage 76 84 77 85 ```bash 78 86 # Show parsed configuration 79 - bottler config -c homebrew.yml 87 + bottler config 80 88 81 89 # Build bottles for current platform 82 - bottler build -c homebrew.yml 90 + bottler build 83 91 84 92 # Build specific binaries only 85 - bottler build -c homebrew.yml prune merlint 93 + bottler build prune merlint 86 94 87 95 # Upload bottles to S3 88 - bottler upload -c homebrew.yml 96 + bottler upload 89 97 90 98 # Generate formula files 91 - bottler formula -c homebrew.yml 99 + bottler formula 92 100 93 101 # Full release: build + upload + update tap 94 - bottler release -c homebrew.yml 102 + bottler release 103 + 104 + # Set up Scaleway + rclone credentials 105 + bottler login 106 + 107 + # Verify credentials and connectivity 108 + bottler doctor 95 109 ``` 96 110 97 111 ## API