@@ -11,29 +11,22 @@ NC='\033[0m' # No Color
1111
1212echo -e " ${BLUE} 📦 Publishing development packages...${NC} "
1313
14- # Extract branch name
15- if [ -n " $GITHUB_REF " ]; then
16- BRANCH_NAME=" ${GITHUB_REF# refs/ heads/ } "
14+ SHORT_HASH=$( git rev-parse --short=8 HEAD)
15+
16+ # Check if VERSION_SUFFIX is provided (manual workflow)
17+ if [ -n " $VERSION_SUFFIX " ]; then
18+ echo -e " ${BLUE} Using manual version suffix:${NC} $VERSION_SUFFIX "
19+ DEV_TAG=" dev-${VERSION_SUFFIX} "
20+ # Generate 6-character hash from git commit
21+ VERSION_ID=" ${VERSION_SUFFIX} .${SHORT_HASH} "
1722else
18- BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD)
23+ # Auto mode: use only short hash
24+ DEV_TAG=" dev"
25+ VERSION_ID=" ${SHORT_HASH} "
1926fi
2027
21- # Sanitize branch name for npm version (replace / with -)
22- SAFE_BRANCH_NAME=$( echo " $BRANCH_NAME " | sed ' s/\//-/g' )
23-
24- # Get timestamp
25- TIMESTAMP=$( date +%Y%m%d)
26-
27- # Build number from GitHub or git commit
28- if [ -n " $GITHUB_RUN_NUMBER " ]; then
29- BUILD_NUMBER=" $( git rev-parse --short HEAD) .$GITHUB_RUN_NUMBER "
30- else
31- BUILD_NUMBER=$( git rev-parse --short HEAD)
32- fi
33-
34- echo -e " ${BLUE} Branch:${NC} $SAFE_BRANCH_NAME "
35- echo -e " ${BLUE} Timestamp:${NC} $TIMESTAMP "
36- echo -e " ${BLUE} Build:${NC} $BUILD_NUMBER "
28+ echo -e " ${BLUE} Tag:${NC} $DEV_TAG "
29+ echo -e " ${BLUE} Version ID:${NC} $VERSION_ID "
3730echo " "
3831
3932# Array to track published packages
@@ -60,13 +53,13 @@ update_package_version() {
6053 const newPatch = parseInt('${CURRENT_VERSION} '.split('-')[0]) + 1;
6154 \`\$ {major}.\$ {minor}.\$ {newPatch}\` ;
6255 " )
63- echo -e " ${BLUE} First dev publish - bumping minor version${NC} "
56+ echo -e " ${BLUE} dev publish - bumping minor version${NC} "
6457 else
6558 # Subsequent dev publish: strip existing -dev.* suffix to prevent duplication
6659 BASE_VERSION=" ${CURRENT_VERSION%% -dev.* } "
6760 fi
6861
69- DEV_VERSION=" ${BASE_VERSION} -dev.${SAFE_BRANCH_NAME} . ${TIMESTAMP} . ${BUILD_NUMBER }"
62+ DEV_VERSION=" ${BASE_VERSION} -dev.${VERSION_ID } "
7063
7164 echo -e " ${GREEN} Updating ${PACKAGE_NAME} :${NC} ${CURRENT_VERSION} → ${DEV_VERSION} "
7265
@@ -80,17 +73,42 @@ update_package_version() {
8073 fi
8174}
8275
76+ # Packages to exclude from publishing
77+ EXCLUDED_PACKAGES=(" pre" " test-utils" )
78+
79+ # Function to check if package should be excluded
80+ is_excluded () {
81+ local package_name=" $1 "
82+ for excluded in " ${EXCLUDED_PACKAGES[@]} " ; do
83+ if [ " $package_name " = " $excluded " ]; then
84+ return 0 # true, is excluded
85+ fi
86+ done
87+ return 1 # false, not excluded
88+ }
89+
8390# Update all publishable packages
8491echo -e " ${BLUE} Updating package versions...${NC} "
8592for package_dir in packages/* /; do
93+ package_name=$( basename " $package_dir " )
94+ if is_excluded " $package_name " ; then
95+ echo -e " ${BLUE} Skipping excluded package:${NC} $package_name "
96+ continue
97+ fi
8698 update_package_version " $package_dir "
8799done
88100
89101echo " "
90- echo -e " ${BLUE} Publishing packages with 'dev' tag...${NC} "
102+ echo -e " ${BLUE} Publishing packages with '${DEV_TAG} ' tag...${NC} "
103+
104+ # Build filter to exclude specific packages
105+ FILTER_ARGS=" "
106+ for excluded in " ${EXCLUDED_PACKAGES[@]} " ; do
107+ FILTER_ARGS=" $FILTER_ARGS --filter '!@nucypher/${excluded} '"
108+ done
91109
92- # Publish all packages with dev tag
93- pnpm -r --filter ' ./packages/**' publish --tag dev --access public --no-git-checks
110+ # Publish all packages except excluded ones with the appropriate dev tag
111+ eval " pnpm -r --filter './packages/**' $FILTER_ARGS publish --tag ${DEV_TAG} --access public --no-git-checks"
94112
95113echo " "
96114echo -e " ${BLUE} Restoring original package.json versions...${NC} "
0 commit comments