Skip to content
Merged
Show file tree
Hide file tree
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ The commands above exercise the complete Base project loop:
health for read-only CI pipelines, including Ubuntu/Linux checks.
- `basectl repo check .` validates the standard repository baseline files.
- `basectl workspace status --manifest workspace.yaml.example` shows a
workspace-level view of the expected `base`, `base-demo`, and
`base-bash-libs` peer repositories.
workspace-level view of the expected `base`, `base-demo`, optional
`base-platform-tools`, and optional `base-bash-libs` peer repositories.
- `basectl run base-demo --list` shows the manifest-declared project commands.
- `basectl run base-demo hello` runs the `hello` command from the project root.
- `basectl run base-demo env` shows Base runtime metadata such as `BASE_OS`,
Expand Down
3 changes: 3 additions & 0 deletions demo/demo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@ discovery_step() {
if [[ -f "$BASE_DEMO_ROOT/workspace.yaml.example" ]]; then
output="$(capture_command "$BASE_DEMO_BASECTL" workspace status --workspace "$BASE_DEMO_WORKSPACE" --manifest "$BASE_DEMO_ROOT/workspace.yaml.example")"
printf '%s\n' "$output"
if [[ "$output" == *"base-platform-tools"* ]]; then
printf "\nbase-platform-tools is an optional Base companion; when present, Base adds its bin/ directory after Base's own bin/.\n"
fi
require_contains "workspace status" "$output" "$BASE_DEMO_PROJECT"
else
run_observed_command "$BASE_DEMO_BASECTL" workspace status --workspace "$BASE_DEMO_WORKSPACE"
Expand Down
2 changes: 2 additions & 0 deletions tests/demo_test.bats
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ case "$*" in
printf 'WORKSPACE base-demo-reference\n'
printf 'base present healthy\n'
printf 'base-demo present healthy\n'
printf 'base-platform-tools optional missing\n'
printf 'base-bash-libs optional missing\n'
;;
setup\ base-demo\ --manifest\ *\ --dry-run\ --no-notify)
Expand Down Expand Up @@ -246,6 +247,7 @@ EOF
[[ "$output" == *"base-demo Walkthrough"* ]]
[[ "$output" == *"Workspace Discovery"* ]]
[[ "$output" == *"base-demo-reference"* ]]
[[ "$output" == *"base-platform-tools is an optional Base companion"* ]]
[[ "$output" == *"Setup Contract"* ]]
[[ "$output" == *"bats-core"* ]]
[[ "$output" == *"required_ports:"* ]]
Expand Down
25 changes: 25 additions & 0 deletions tests/validate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,31 @@ grep -Fq 'github.com/basefoundry/base' demo/demo.sh || {
exit 1
}

grep -Fq 'base-platform-tools' workspace.yaml.example || {
printf 'workspace.yaml.example does not list base-platform-tools.\n' >&2
exit 1
}

grep -Fq 'https://github.com/basefoundry/base-platform-tools.git' workspace.yaml.example || {
printf 'workspace.yaml.example does not list the base-platform-tools GitHub URL.\n' >&2
exit 1
}

grep -A4 'name: base-platform-tools' workspace.yaml.example | grep -Fq 'required: false' || {
printf 'workspace.yaml.example does not mark base-platform-tools as optional.\n' >&2
exit 1
}

grep -Fq 'base-platform-tools is an optional Base companion' demo/demo.sh || {
printf 'demo/demo.sh does not explain the optional base-platform-tools companion.\n' >&2
exit 1
}

grep -Fq 'base-platform-tools' README.md || {
printf 'README.md does not document optional base-platform-tools workspace status.\n' >&2
exit 1
}

grep -Fq 'basectl activate base-demo # macOS only' README.md || {
printf 'README.md does not annotate activate as macOS-only in Quick Start.\n' >&2
exit 1
Expand Down
5 changes: 5 additions & 0 deletions workspace.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ repos:
default_branch: main
required: true

- name: base-platform-tools
url: https://github.com/basefoundry/base-platform-tools.git
default_branch: main
required: false

- name: base-demo
url: https://github.com/basefoundry/base-demo.git
default_branch: main
Expand Down
Loading