1+ #! /usr/bin/env bash
2+ set -e
3+
4+ echo " Publishing packages in dependency order..."
5+
6+ # First, publish packages/codama/* (lowest level dependencies)
7+ echo " Publishing codama packages..."
8+ for dir in packages/codama/* ; do
9+ if [ -d " $dir " ] && [ -f " $dir /package.json" ]; then
10+ if ! grep -q ' "private": true' " $dir /package.json" ; then
11+ echo " Publishing $( basename " $dir " ) ..."
12+ (cd " $dir " && bun publish --access public) || echo " Failed to publish $( basename " $dir " ) , continuing..."
13+ fi
14+ fi
15+ done
16+
17+ # Then, publish packages/clients/* (depends on codama)
18+ echo " Publishing client packages..."
19+ for dir in packages/clients/* ; do
20+ if [ -d " $dir " ] && [ -f " $dir /package.json" ]; then
21+ if ! grep -q ' "private": true' " $dir /package.json" ; then
22+ echo " Publishing $( basename " $dir " ) ..."
23+ (cd " $dir " && bun publish --access public) || echo " Failed to publish $( basename " $dir " ) , continuing..."
24+ fi
25+ fi
26+ done
27+
28+ # Finally, publish packages/* (top level, may depend on clients)
29+ echo " Publishing top-level packages..."
30+ for dir in packages/* ; do
31+ # Skip subdirectories we already processed
32+ if [ " $dir " != " packages/codama" ] && [ " $dir " != " packages/clients" ]; then
33+ if [ -d " $dir " ] && [ -f " $dir /package.json" ]; then
34+ if ! grep -q ' "private": true' " $dir /package.json" ; then
35+ echo " Publishing $( basename " $dir " ) ..."
36+ (cd " $dir " && bun publish --access public) || echo " Failed to publish $( basename " $dir " ) , continuing..."
37+ fi
38+ fi
39+ fi
40+ done
41+
42+ # Tag the release in git
43+ echo " Creating git tags..."
44+ changeset tag
45+
46+ echo " Publishing complete!"
0 commit comments