@@ -195,9 +195,14 @@ publish-crates-dry: test banner
195195 @printf " $( CYAN) $( BOLD) ║ Pre-Publish Verification ║$( RESET) \n"
196196 @printf " $( CYAN) $( BOLD) ╚══════════════════════════════════════════════════════════╝$( RESET) \n\n"
197197 @printf " $( GREEN) $( CHECK) All tests passed$( RESET) \n"
198- @printf " $( ARROW) Publishing order: $( GRAY) core → macros → scoring → config → solver → facade → cli$( RESET) \n\n"
199- @printf " $( GRAY) Note: cargo publish --dry-run cannot validate unpublished workspace inter-dependencies.$( RESET) \n"
200- @printf " $( GRAY) Tests passing indicates crates are ready. Use 'make publish-crates' to publish.$( RESET) \n\n"
198+ @printf " $( ARROW) Publishing order: $( GRAY) core → macros → scoring → config → solver → cvrp → console → facade → cli$( RESET) \n\n"
199+ @printf " $( PROGRESS) Running cargo publish --dry-run for standalone crates...\n"
200+ @cargo publish --dry-run -p solverforge-core > /dev/null && printf " $( GREEN) $( CHECK) solverforge-core dry-run passed$( RESET) \n" || exit 1
201+ @cargo publish --dry-run -p solverforge-macros > /dev/null && printf " $( GREEN) $( CHECK) solverforge-macros dry-run passed$( RESET) \n" || exit 1
202+ @cargo publish --dry-run -p solverforge-console > /dev/null && printf " $( GREEN) $( CHECK) solverforge-console dry-run passed$( RESET) \n" || exit 1
203+ @cargo publish --dry-run -p solverforge-cli > /dev/null && printf " $( GREEN) $( CHECK) solverforge-cli dry-run passed$( RESET) \n" || exit 1
204+ @printf " $( GRAY) Dependent crates still need staggered dry-runs once their exact-version dependencies are visible on crates.io.$( RESET) \n"
205+ @printf " $( GRAY) Run cargo publish --dry-run for scoring, config, solver, cvrp, and facade immediately before each upload.$( RESET) \n\n"
201206
202207publish-crates : banner
203208 @printf " $( CYAN) $( BOLD) ╔══════════════════════════════════════════════════════════╗$( RESET) \n"
@@ -207,25 +212,31 @@ publish-crates: banner
207212 @printf " $( YELLOW) Press Ctrl+C to abort, or Enter to continue...$( RESET) \n"
208213 @read dummy
209214 @printf " \n$( PROGRESS) Publishing crates in dependency order...\n\n"
210- @printf " $( ARROW) [1/7 ] Publishing solverforge-core...\n"
215+ @printf " $( ARROW) [1/9 ] Publishing solverforge-core...\n"
211216 @cargo publish -p solverforge-core && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
212217 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
213- @printf " $( ARROW) [2/7 ] Publishing solverforge-macros...\n"
218+ @printf " $( ARROW) [2/9 ] Publishing solverforge-macros...\n"
214219 @cargo publish -p solverforge-macros && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
215220 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
216- @printf " $( ARROW) [3/7 ] Publishing solverforge-scoring...\n"
221+ @printf " $( ARROW) [3/9 ] Publishing solverforge-scoring...\n"
217222 @cargo publish -p solverforge-scoring && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
218223 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
219- @printf " $( ARROW) [4/7 ] Publishing solverforge-config...\n"
224+ @printf " $( ARROW) [4/9 ] Publishing solverforge-config...\n"
220225 @cargo publish -p solverforge-config && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
221226 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
222- @printf " $( ARROW) [5/7 ] Publishing solverforge-solver...\n"
227+ @printf " $( ARROW) [5/9 ] Publishing solverforge-solver...\n"
223228 @cargo publish -p solverforge-solver && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
224229 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
225- @printf " $( ARROW) [6/7] Publishing solverforge (facade)...\n"
230+ @printf " $( ARROW) [6/9] Publishing solverforge-cvrp...\n"
231+ @cargo publish -p solverforge-cvrp && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
232+ @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
233+ @printf " $( ARROW) [7/9] Publishing solverforge-console...\n"
234+ @cargo publish -p solverforge-console && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
235+ @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
236+ @printf " $( ARROW) [8/9] Publishing solverforge (facade)...\n"
226237 @cargo publish -p solverforge && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
227238 @printf " $( GRAY) Waiting 45s for crates.io index...$( RESET) \n" && sleep 45
228- @printf " $( ARROW) [7/7 ] Publishing solverforge-cli...\n"
239+ @printf " $( ARROW) [9/9 ] Publishing solverforge-cli...\n"
229240 @cargo publish -p solverforge-cli && printf " $( GREEN) $( CHECK) Published$( RESET) \n" || exit 1
230241 @printf " \n$( GREEN) $( BOLD) ╔══════════════════════════════════════════════════════════╗$( RESET) \n"
231242 @printf " $( GREEN) $( BOLD) ║ $( CHECK) All crates published successfully! ║$( RESET) \n"
@@ -286,7 +297,7 @@ help: banner
286297 @/bin/echo -e " "
287298 @/bin/echo -e " $( CYAN) $( BOLD) Publishing:$( RESET) "
288299 @/bin/echo -e " $( GREEN) make publish-crates-dry$( RESET) - Dry-run publish to crates.io"
289- @/bin/echo -e " $( GREEN) make publish-crates$( RESET) - $( RED) $( BOLD) Publish to crates.io (all 8 crates)$( RESET) "
300+ @/bin/echo -e " $( GREEN) make publish-crates$( RESET) - $( RED) $( BOLD) Publish to crates.io (all 9 publishable crates)$( RESET) "
290301 @/bin/echo -e " "
291302 @/bin/echo -e " $( CYAN) $( BOLD) CLI:$( RESET) "
292303 @/bin/echo -e " $( GREEN) make install-cli$( RESET) - Install solverforge CLI binary"
0 commit comments