mirror of
https://github.com/go-micro/go-micro.git
synced 2026-04-30 19:15:24 +02:00
1bb25d6e7f
* feat: add agent platform showcase and blog post Add a complete platform example (Users, Posts, Comments, Mail) that mirrors micro/blog, demonstrating how existing microservices become AI-accessible through MCP with zero code changes. Includes blog post "Your Microservices Are Already an AI Platform" walking through real agent workflows: signup, content creation, commenting, tagging, and cross-service messaging. https://claude.ai/code/session_01GkduEhcrqcG45rdfYh8dAc * refactor: rename handler types to drop redundant Service suffix UserService → Users, PostService → Posts, CommentService → Comments, MailService → Mail. Matches micro/blog naming convention. https://claude.ai/code/session_01GkduEhcrqcG45rdfYh8dAc * refactor: consolidate top-level directories, reduce framework bloat Move internal/non-public packages behind internal/ or into their parent packages where they belong: - deploy/ → gateway/mcp/deploy/ (Helm charts belong with the gateway) - profile/ → service/profile/ (preset plugin profiles are a service concern) - scripts/ → internal/scripts/ (install script is not public API) - test/ → internal/test/ (test harness is not public API) - util/ → internal/util/ (internal helpers shouldn't be imported externally) Also fixes CLAUDE.md merge conflict markers and updates project structure documentation. All import paths updated. Build and tests pass. https://claude.ai/code/session_01GkduEhcrqcG45rdfYh8dAc * refactor: redesign model package to match framework conventions Rename model.Database interface to model.Model (consistent with client.Client, server.Server, store.Store). Remove generics in favor of interface{}-based API with reflection. Key changes: - model.Model interface: Register once, CRUD infers table from type - DefaultModel + NewModel() + package-level convenience functions - Schema registered via Register(&User{}), no per-call schema passing - Memory implementation as default (in model package, like store) - memory/sqlite/postgres backends updated for new interface - protoc-gen-micro generates RegisterXModel() instead of generic factory - All docs, blog, and README updated https://claude.ai/code/session_01GkduEhcrqcG45rdfYh8dAc --------- Co-authored-by: Claude <noreply@anthropic.com>
76 lines
1.7 KiB
Bash
Executable File
76 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install script for micro CLI
|
|
# Usage: curl -fsSL https://go-micro.dev/install.sh | sh
|
|
|
|
set -e
|
|
|
|
VERSION="${MICRO_VERSION:-latest}"
|
|
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
ARCH=$(uname -m)
|
|
|
|
# Normalize architecture
|
|
case $ARCH in
|
|
x86_64|amd64) ARCH="amd64" ;;
|
|
aarch64|arm64) ARCH="arm64" ;;
|
|
armv7l) ARCH="arm" ;;
|
|
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
|
|
esac
|
|
|
|
# Normalize OS
|
|
case $OS in
|
|
darwin) OS="darwin" ;;
|
|
linux) OS="linux" ;;
|
|
*) echo "Unsupported OS: $OS"; exit 1 ;;
|
|
esac
|
|
|
|
# Determine install directory
|
|
if [ "$EUID" -eq 0 ] || [ "$(id -u)" -eq 0 ]; then
|
|
INSTALL_DIR="/usr/local/bin"
|
|
else
|
|
INSTALL_DIR="$HOME/.local/bin"
|
|
mkdir -p "$INSTALL_DIR"
|
|
fi
|
|
|
|
echo "Installing micro ${VERSION} for ${OS}/${ARCH}..."
|
|
|
|
# Download URL
|
|
if [ "$VERSION" = "latest" ]; then
|
|
URL="https://github.com/micro/go-micro/releases/latest/download/micro-${OS}-${ARCH}"
|
|
else
|
|
URL="https://github.com/micro/go-micro/releases/download/${VERSION}/micro-${OS}-${ARCH}"
|
|
fi
|
|
|
|
# Download
|
|
TMP_FILE=$(mktemp)
|
|
if command -v curl &> /dev/null; then
|
|
curl -fsSL "$URL" -o "$TMP_FILE"
|
|
elif command -v wget &> /dev/null; then
|
|
wget -q "$URL" -O "$TMP_FILE"
|
|
else
|
|
echo "Error: curl or wget required"
|
|
exit 1
|
|
fi
|
|
|
|
# Install
|
|
chmod +x "$TMP_FILE"
|
|
mv "$TMP_FILE" "$INSTALL_DIR/micro"
|
|
|
|
echo ""
|
|
echo "✓ Installed micro to $INSTALL_DIR/micro"
|
|
echo ""
|
|
|
|
# Verify
|
|
if command -v micro &> /dev/null; then
|
|
micro --version
|
|
else
|
|
echo "Note: Add $INSTALL_DIR to your PATH:"
|
|
echo " export PATH=\"\$PATH:$INSTALL_DIR\""
|
|
fi
|
|
|
|
echo ""
|
|
echo "Get started:"
|
|
echo " micro new myservice # Create a new service"
|
|
echo " micro run # Run locally"
|
|
echo " micro deploy # Deploy to server"
|
|
echo ""
|