Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ BuildGraph achieves this by:
## Installation

```bash
go install github.com/bubunyo/buildgraph/cmd@latest
go install github.com/bubunyo/buildgraph@latest
```

Or build from source:

```bash
git clone https://github.com/bubunyo/buildgraph
cd buildgraph
go build -o buildgraph ./cmd
go build -o buildgraph .
```

**Requires Go 1.24+**
Expand Down Expand Up @@ -83,11 +83,14 @@ buildgraph generate --output /tmp/baseline.json
Compares the current call graph against the stored baseline and outputs which services are affected.

```bash
# JSON output (default)
# Human-readable (default)
buildgraph analyze

# Human-readable
buildgraph analyze --format text
# JSON output
buildgraph analyze --format json

# Graphviz DOT — pipe into dot to render
buildgraph analyze --format dot | dot -Tsvg -o impact.svg

# Write to file
buildgraph analyze --format json --output impact.json
Expand All @@ -112,9 +115,6 @@ buildgraph analyze --no-cache
}
],
"impact": {
"affected_functions": {
"services/service-a": ["github.com/your-org/repo/services/service-a.main"]
},
"services_to_build": ["service-a"]
}
}
Expand Down Expand Up @@ -229,7 +229,7 @@ See [`bubunyo/buildgraph-action`](https://github.com/bubunyo/buildgraph-action)

### How the baseline is persisted

The baseline artifact is uploaded at the end of each successful run and downloaded at the start of the next. Each branch gets its own artifact (`buildgraph-baseline`) so feature branches don't interfere with each other. On the very first run no artifact exists yet — BuildGraph treats all functions as new and returns all services in `services_to_build`, so a cold start is always safe.
The baseline artifact is uploaded at the end of each successful run and downloaded at the start of the next. Each branch gets its own artifact (e.g. `buildgraph-baseline-main`, `buildgraph-baseline-feature-foo`) so branches don't interfere with each other. On the very first run no artifact exists yet — BuildGraph treats all functions as new and returns all services in `services_to_build`, so a cold start is always safe.

Copilot AI Mar 8, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section now states that each branch gets its own baseline artifact (e.g. buildgraph-baseline-main). That naming scheme conflicts with the repository’s other documentation/spec, which still references a single buildgraph-baseline artifact name in the CI examples (see SPEC.md around the GitHub Actions example). Please align the docs (either make the README wording more generic/configurable, or update the other docs/examples) to avoid confusing users about the expected artifact name(s).

Suggested change
The baseline artifact is uploaded at the end of each successful run and downloaded at the start of the next. Each branch gets its own artifact (e.g. `buildgraph-baseline-main`, `buildgraph-baseline-feature-foo`) so branches don't interfere with each other. On the very first run no artifact exists yet — BuildGraph treats all functions as new and returns all services in `services_to_build`, so a cold start is always safe.
The baseline artifact is uploaded at the end of each successful run and downloaded at the start of the next. The exact artifact name and how it is scoped (single shared artifact vs. per-branch artifacts) are controlled by your CI workflow configuration, so that branches can be isolated if desired. On the very first run no artifact exists yet — BuildGraph treats all functions as new and returns all services in `services_to_build`, so a cold start is always safe.

Copilot uses AI. Check for mistakes.

## How it works

Expand Down
Loading