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
22 changes: 9 additions & 13 deletions .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
(metadata
(name "a2ml-ecosystem")
(version "0.1.0")
(updated "2026-06-27")
(updated "2026-09-09")
(authority "coordination-hub")
(semantic-authority "satellite"))

Expand All @@ -19,24 +19,20 @@

(membership
(implementations
(member "a2ml-rs" (group "implementations") (path "members/implementations/a2ml-rs") (branch "main") (repo "hyperpolymath/a2ml-rs"))
(member "a2ml_ex" (group "implementations") (path "members/implementations/a2ml_ex") (branch "main") (repo "hyperpolymath/a2ml_ex"))
(member "a2ml_gleam" (group "implementations") (path "members/implementations/a2ml_gleam") (branch "main") (repo "hyperpolymath/a2ml_gleam"))
(member "a2ml-deno" (group "implementations") (path "members/implementations/a2ml-deno") (branch "main") (repo "hyperpolymath/a2ml-deno"))
(member "a2ml-haskell" (group "implementations") (path "members/implementations/a2ml-haskell") (branch "main") (repo "hyperpolymath/a2ml-haskell")))
(member "a2ml-rs" (group "implementations") (path "rs") (branch "main") (repo "hyperpolymath/a2ml-rs"))
(member "a2ml_ex" (group "implementations") (path "ex") (branch "main") (repo "hyperpolymath/a2ml_ex"))
(member "a2ml_gleam" (group "implementations") (path "gleam") (branch "main") (repo "hyperpolymath/a2ml_gleam"))
(member "a2ml-deno" (group "implementations") (path "deno") (branch "main") (repo "hyperpolymath/a2ml-deno"))
(member "a2ml-haskell" (group "implementations") (path "haskell") (branch "main") (repo "hyperpolymath/a2ml-haskell")))

(tooling
(member "tree-sitter-a2ml" (group "tooling") (path "members/tooling/tree-sitter-a2ml") (branch "main") (repo "hyperpolymath/tree-sitter-a2ml"))
(member "vscode-a2ml" (group "tooling") (path "members/tooling/vscode-a2ml") (branch "main") (repo "hyperpolymath/vscode-a2ml"))
(member "pandoc-a2ml" (group "tooling") (path "members/tooling/pandoc-a2ml") (branch "main") (repo "hyperpolymath/pandoc-a2ml"))
(member "a2mliser" (group "tooling") (path "members/tooling/a2mliser") (branch "main") (repo "hyperpolymath/a2mliser")))
(member "vscode-a2ml" (group "tooling") (path "members/tooling/vscode-a2ml") (branch "main") (repo "hyperpolymath/vscode-a2ml")))

(ci
(member "a2ml-validate-action" (group "ci") (path "members/ci/a2ml-validate-action") (branch "main") (repo "hyperpolymath/a2ml-validate-action"))
(member "a2ml-pre-commit" (group "ci") (path "members/ci/a2ml-pre-commit") (branch "main") (repo "hyperpolymath/a2ml-pre-commit")))
(member "a2ml-validate-action" (group "ci") (path "validate-action") (branch "main") (repo "hyperpolymath/a2ml-validate-action")))

(examples
(member "a2ml-showcase" (group "examples") (path "members/examples/a2ml-showcase") (branch "main") (repo "hyperpolymath/a2ml-showcase"))))
(member "a2ml-showcase" (group "examples") (path "showcase") (branch "main") (repo "hyperpolymath/a2ml-showcase"))))

(related
(related "contractiles-a2-lab" (relationship "private-lab-cross-reference") (repo "hyperpolymath/contractiles-a2-lab") (member false))))
1 change: 0 additions & 1 deletion members/ci/a2ml-pre-commit
Submodule a2ml-pre-commit deleted from 030863
1 change: 0 additions & 1 deletion members/tooling/pandoc-a2ml
Submodule pandoc-a2ml deleted from 4d0213
1 change: 0 additions & 1 deletion members/tooling/tree-sitter-a2ml
Submodule tree-sitter-a2ml deleted from 628b14
58 changes: 25 additions & 33 deletions scripts/check-membership.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,47 +14,39 @@ fail() {
check_member() {
local group="$1"
local name="$2"
local url="https://github.com/hyperpolymath/${name}.git"
local path="members/${group}/${name}"
local module="submodule.${path}"
local actual_url
local actual_branch
local mode
local path="$3"

if ! grep -Fq "(member \"${name}\" (group \"${group}\")" .machine_readable/6a2/ECOSYSTEM.a2ml; then
fail ".machine_readable/6a2/ECOSYSTEM.a2ml missing ${group}/${name}"
if ! grep -Fq "(member \"${name}\" (group \"${group}\") (path \"${path}\")" .machine_readable/6a2/ECOSYSTEM.a2ml; then
fail ".machine_readable/6a2/ECOSYSTEM.a2ml missing ${group}/${name} at ${path}"
fi

actual_url="$(git config -f .gitmodules --get "${module}.url" || true)"
if [[ "${actual_url}" != "${url}" ]]; then
fail ".gitmodules ${path} url is '${actual_url}', expected '${url}'"
if [[ ! -d "${path}" ]]; then
fail "${group}/${name} vendored directory '${path}' is missing"
return
fi

actual_branch="$(git config -f .gitmodules --get "${module}.branch" || true)"
if [[ "${actual_branch}" != "main" ]]; then
fail ".gitmodules ${path} branch is '${actual_branch}', expected 'main'"
fi

mode="$(git ls-files -s "${path}" | awk '{print $1}')"
if [[ "${mode}" != "160000" ]]; then
fail "${path} is not a pinned submodule gitlink"
if ! git ls-files "${path}/" | grep -q .; then
fail "${group}/${name} vendored directory '${path}' has no tracked files"
fi
}

check_member implementations a2ml-rs
check_member implementations a2ml_ex
check_member implementations a2ml_gleam
check_member implementations a2ml-deno
check_member implementations a2ml-haskell
check_member tooling tree-sitter-a2ml
check_member tooling vscode-a2ml
check_member tooling pandoc-a2ml
check_member tooling a2mliser
check_member ci a2ml-validate-action
check_member ci a2ml-pre-commit
check_member examples a2ml-showcase

if grep -R "contractiles-a2-lab" .gitmodules members >/dev/null 2>&1; then
check_member implementations a2ml-rs rs
check_member implementations a2ml_ex ex
check_member implementations a2ml_gleam gleam
check_member implementations a2ml-deno deno
check_member implementations a2ml-haskell haskell
check_member tooling vscode-a2ml members/tooling/vscode-a2ml
check_member ci a2ml-validate-action validate-action
check_member examples a2ml-showcase showcase

# Members were consolidated into this monorepo by aa4b836. A surviving gitlink
# without a matching .gitmodules entry breaks actions/checkout cleanup and can
# never be initialized, so fail with the exact stale paths if one reappears.
while IFS= read -r gitlink; do
[[ -n "${gitlink}" ]] && fail "orphan submodule gitlink remains at ${gitlink}"
done < <(git ls-files -s | awk '$1 == "160000" { print $4 }')

if grep -R "contractiles-a2-lab" members >/dev/null 2>&1; then
fail "contractiles-a2-lab must not be a member submodule"
fi

Expand Down
Loading