Inicialización del módulo Go y cambio de version de go a la 1.26

This commit is contained in:
Carlos Sandoval
2026-09-02 18:59:01 +00:00
parent 3b75a6c5f4
commit c1a060312f
9 changed files with 542 additions and 14 deletions
@@ -28,7 +28,7 @@ El repositorio está vacío: el proyecto `outline-mcp` se construye desde cero.
### D1: SDK de MCP — `github.com/mark3labs/mcp-go`
- **Elección**: usar `mcp-go` (paquetes `mcp` y `server`) con su `server.NewMCPServer` y transporte `ServeStdio`.
- **Elección**: usar `mcp-go` v1.0.0 (paquetes `mcp` y `server`) con su `server.NewMCPServer` y transporte `ServeStdio`.
- **Alternativa**: implementar el protocolo JSON-RPC manualmente. Se descarta por coste y riesgo; el SDK ya resuelve handshake, esquemas de herramientas y serialización.
- **Nota**: `mcp-go` permite declarar esquemas de entrada tipados (`mcp.WithString(...)`, `mcp.Required()`) que se traducen a JSON Schema para el cliente.
@@ -58,12 +58,12 @@ El repositorio está vacío: el proyecto `outline-mcp` se construye desde cero.
### D6: Pipeline de release
- **Elección**: workflow en `.gitea/workflows/release.yml` con `on: push: tags: ['v*']`, runner `ubuntu-latest`, setup de Go 1.22 (action `actions/setup-go@v5`, compatible con Gitea Actions), bucle de build sobre las 3 plataformas con `CGO_ENABLED=0` y `ldflags` inyectando `main.Version` (desde `github.ref_name`), `main.GiteaURL`, `main.RepoOwner`, `main.RepoName` (desde `github.server_url` y el contexto del repo). Publicación con la acción `akkuman/gitea-release-action` o el CLI `tea release create` como fallback.
- **Elección**: workflow en `.gitea/workflows/release.yml` con `on: push: tags: ['v*']`, runner `ubuntu-latest`, setup de Go 1.26 (action `actions/setup-go@v5`, compatible con Gitea Actions), bucle de build sobre las 3 plataformas con `CGO_ENABLED=0` y `ldflags` inyectando `main.Version` (desde `github.ref_name`), `main.GiteaURL`, `main.RepoOwner`, `main.RepoName` (desde `github.server_url` y el contexto del repo). Publicación con la acción `akkuman/gitea-release-action` o el CLI `tea release create` como fallback.
- **Alternativa**: generar los binarios en Docker dentro del pipeline. Se descarta: el runner de Gitea ya provee el toolchain vía setup-go y es más rápido.
### D7: Devcontainer
- **Elección**: imagen `mcr.microsoft.com/devcontainers/go:1-1.22-bookworm` con:
- **Elección**: imagen `mcr.microsoft.com/devcontainers/go:1-trixie` (Go 1.26) con:
- Features: `ghcr.io/devcontainers/features/golang:1` no es necesaria (la imagen ya incluye Go); se añade la feature `docker-in-docker` opcional no requerida — se omite para minimizar superficie.
- `postCreateCommand`: instalación de `golangci-lint` vía script oficial y `go mod download` si existe `go.mod`.
- Extensiones: `golang.go` (Go oficial, incluye gopls), `eamodio.gitlens`.