docker-swarm 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/docs/config/config.md +140 -0
- data/lib/docker_swarm/concerns/updatable.rb +2 -1
- data/lib/docker_swarm/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c4fccd3ff16c561cf1f8563cf2dd518c69fd1a7fc46e9d74b7da804244dd1c4d
|
|
4
|
+
data.tar.gz: c71beba1337b83edde6eb18f424954e2563c35172e195615ed86b2b40153abe5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9165d28e2a0def50e674578600642dbaf3aca92b586bb5697590828a3081476139013922f45471dd84d45c376b997bd74bf78e3064d12ab14e3fd9bd046d2743
|
|
7
|
+
data.tar.gz: c2deb17e70f07a51b8e29ac69b9923706e8a57124fd3ddb4d36a30dded13de1fa4024d1a8c9dc1470cb984dd24da5a2a04cb7c6601a4022bcdecb84557516b79
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.7.1] — 2026-05-29
|
|
6
|
+
|
|
7
|
+
### Correcciones
|
|
8
|
+
- `Updatable#update`: captura `Version.Index` **antes** de `assign_attributes` para evitar que un payload con versión desactualizada pise el índice real del nodo y provoque `update out of sequence` en Docker — @Pablo
|
|
9
|
+
|
|
5
10
|
## [0.7.0] — 2026-05-21
|
|
6
11
|
|
|
7
12
|
### Breaking changes
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Inventario de Configuración — docker-swarm
|
|
2
|
+
|
|
3
|
+
> meta: artefacto · generado manual · anclado a `b3549e7` · cobertura: archivos de configuración versionados del repo (excluye `lib/`, `spec/`, `skill/`, `docs/`)
|
|
4
|
+
|
|
5
|
+
## 1. Resumen
|
|
6
|
+
|
|
7
|
+
Lista de archivos de configuración del repo, qué controlan, quién los consume y dónde tocar para cambiar comportamiento. Agrupados por dominio: **gema**, **Ruby/lint**, **CI/CD**, **dependencias automatizadas**, **agentes/skills**, **entorno local**.
|
|
8
|
+
|
|
9
|
+
## 2. Gema
|
|
10
|
+
|
|
11
|
+
### `docker-swarm.gemspec`
|
|
12
|
+
|
|
13
|
+
Especificación de la gema (nombre, versión, autoría, deps runtime, ficheros incluidos, metadatos RubyGems). Versión leída desde `lib/docker_swarm/version.rb`.
|
|
14
|
+
|
|
15
|
+
- Ruby mínimo: `>= 3.2.0`
|
|
16
|
+
- Runtime deps: `activesupport >= 6.0`, `activemodel >= 6.0`, `excon >= 0.80`
|
|
17
|
+
- Dev deps: `rake ~> 13.0`, `rspec ~> 3.0`
|
|
18
|
+
- Files glob: `{lib,exe,skill,docs}/**/*` + `README.md`, `CHANGELOG.md`, `LICENSE`
|
|
19
|
+
- MFA RubyGems: requerido (`rubygems_mfa_required = true`)
|
|
20
|
+
- Cambio típico: bumpear versión → editar `lib/docker_swarm/version.rb` (no acá).
|
|
21
|
+
|
|
22
|
+
### `Gemfile`
|
|
23
|
+
|
|
24
|
+
Sólo declara `gemspec` + grupos `:development, :test` y `:test`. Runtime deps viven en el gemspec.
|
|
25
|
+
|
|
26
|
+
- `:development, :test`: `rspec`, `pry`, `rubocop-rails-omakase`
|
|
27
|
+
- `:test`: `activemodel`, `activesupport`, `excon` (re-declaradas para resolver en test sin runtime gemspec)
|
|
28
|
+
|
|
29
|
+
### `Gemfile.lock`
|
|
30
|
+
|
|
31
|
+
Lock generado por Bundler. Versionado. No editar a mano.
|
|
32
|
+
|
|
33
|
+
## 3. Ruby / Lint
|
|
34
|
+
|
|
35
|
+
### `.rubocop.yml`
|
|
36
|
+
|
|
37
|
+
Base: `rubocop-rails-omakase`.
|
|
38
|
+
|
|
39
|
+
- `TargetRubyVersion: 3.2`
|
|
40
|
+
- Exclude: `bin/**/*`, `vendor/**/*`, `spec/fixtures/**/*`, `Gemfile`, `Gemfile.lock`, `docker-swarm.gemspec`
|
|
41
|
+
- `Style/Documentation`: deshabilitado (ruido masivo; habilitar cuando YARD esté completo)
|
|
42
|
+
- `Naming/MethodName`: excluido en `lib/docker_swarm/base.rb` y `lib/docker_swarm/models/**/*` (justificación: PascalCase fiel a Docker API)
|
|
43
|
+
|
|
44
|
+
Sin `.ruby-version` en el repo. Ruby de runtime se infiere del gemspec (`>= 3.2.0`) y CI fija `3.4.4`.
|
|
45
|
+
|
|
46
|
+
## 4. CI/CD
|
|
47
|
+
|
|
48
|
+
### `.github/workflows/main.yml`
|
|
49
|
+
|
|
50
|
+
Workflow `Ruby` — corre en `push` a `main` y en cada `pull_request`.
|
|
51
|
+
|
|
52
|
+
- Runner: `ubuntu-latest`
|
|
53
|
+
- Matrix Ruby: `['3.4.4']`
|
|
54
|
+
- Steps: checkout (`actions/checkout@v6`, `persist-credentials: false`) → `ruby/setup-ruby@v1` con `bundler-cache: true` → `bundle exec rspec --tag ~type:integration` → `bundle exec rubocop`
|
|
55
|
+
- Tests de integración (`type:integration`) excluidos en CI — requieren Docker Engine real, correr local.
|
|
56
|
+
|
|
57
|
+
### `.github/workflows/release.yml`
|
|
58
|
+
|
|
59
|
+
Workflow `Publish to RubyGems` — corre en push de tag `v*`.
|
|
60
|
+
|
|
61
|
+
- Runner: `ubuntu-latest`
|
|
62
|
+
- Permisos: `contents: read`, `packages: write`
|
|
63
|
+
- Steps: checkout → setup Ruby 3.4.4 → `gem build *.gemspec` → `gem push *.gem`
|
|
64
|
+
- Secret requerido: `RUBYGEMS_API_KEY`
|
|
65
|
+
- Trigger manual: pushear tag `v<version>` (ver `/gem-release`).
|
|
66
|
+
|
|
67
|
+
## 5. Dependencias automatizadas
|
|
68
|
+
|
|
69
|
+
### `.github/dependabot.yml`
|
|
70
|
+
|
|
71
|
+
Dos ecosistemas:
|
|
72
|
+
|
|
73
|
+
- `bundler` (`/`): semanal, máx 10 PRs abiertos. Grupo `development-dependencies` agrupa `rubocop*`, `rspec*`, `pry*` en un sólo PR.
|
|
74
|
+
- `github-actions` (`/`): mensual.
|
|
75
|
+
|
|
76
|
+
## 6. Agentes / Skills
|
|
77
|
+
|
|
78
|
+
### `skills.yml`
|
|
79
|
+
|
|
80
|
+
Declara MCPs y skills externas a sincronizar.
|
|
81
|
+
|
|
82
|
+
- MCPs: `github`, `clickup`
|
|
83
|
+
- Skills (todas `repo: sequre/ai_knowledge` excepto donde se indique): `yard`, `quality-code`, `gem-release`, `dev-structure`, `dev-compose`, `dev-enrich`, `skill-feedback`, `agent-issue`, `dev-flow`, `matrix-element`, `documentation-writer` (`repo: github/awesome-copilot`, `path: skills/documentation-writer`)
|
|
84
|
+
- `matrix-element` consume env `MATRIX_AUTH_TOKEN` + homeserver `https://matrix.cloud.wispro.co` + room `agents`.
|
|
85
|
+
|
|
86
|
+
### `skills.lock`
|
|
87
|
+
|
|
88
|
+
Lock de skills sincronizadas (`synced_at: 2026-04-07`). Todas con `scope: local` y path en `.agents/skills/`. Regenerable con `ruby .agents/skills/skill-manager/scripts/sync.rb`.
|
|
89
|
+
|
|
90
|
+
### `.claude/settings.local.json`
|
|
91
|
+
|
|
92
|
+
Permisos locales de Claude Code (no versionar credenciales acá). Allow:
|
|
93
|
+
|
|
94
|
+
- `Bash(find /Users/gabriel/src/gems/docker-swarm/spec/integration -type f -name "*_spec.rb" -exec wc -l {} \\;)`
|
|
95
|
+
- `Bash(grep "^[[:space:]]*class " /Users/gabriel/src/gems/docker-swarm/lib/docker_swarm/**/*.rb)`
|
|
96
|
+
- `Bash(git rm *)`
|
|
97
|
+
- `Bash(bundle exec *)`
|
|
98
|
+
|
|
99
|
+
### `.claude/commands/*.md`
|
|
100
|
+
|
|
101
|
+
Slash commands del proyecto. Cuatro archivos: `api.md`, `errors.md`, `orm.md`, `test.md`. Invocables como `/api`, `/errors`, `/orm`, `/test` desde Claude Code.
|
|
102
|
+
|
|
103
|
+
## 7. Entorno local
|
|
104
|
+
|
|
105
|
+
### `.env`
|
|
106
|
+
|
|
107
|
+
**No versionado** (`.gitignore`). Variables ClickUp para reporting de agentes:
|
|
108
|
+
|
|
109
|
+
- `AI_REPORTS_SPACE_ID`, `AI_REPORTS_BUG_REPORTS_LIST_ID`, `AI_REPORTS_IMPROVEMENTS_LIST_ID`
|
|
110
|
+
- `AGENT_REVIEW_SAPCE_ID` (sic, typo), `AGENT_LIST_ID`, `AGENT_ACTION_PLAN_LIST_ID`
|
|
111
|
+
|
|
112
|
+
### `.gitignore`
|
|
113
|
+
|
|
114
|
+
Ignora: `.agents/` (skills sincronizadas, regenerables) y `.env` (variables de entorno).
|
|
115
|
+
|
|
116
|
+
## 8. Tabla resumen
|
|
117
|
+
|
|
118
|
+
| Archivo | Dominio | Consumidor | Versionado |
|
|
119
|
+
|---|---|---|---|
|
|
120
|
+
| `docker-swarm.gemspec` | Gema | Bundler / RubyGems | sí |
|
|
121
|
+
| `Gemfile` | Gema | Bundler | sí |
|
|
122
|
+
| `Gemfile.lock` | Gema | Bundler | sí |
|
|
123
|
+
| `.rubocop.yml` | Lint | RuboCop | sí |
|
|
124
|
+
| `.github/workflows/main.yml` | CI | GitHub Actions | sí |
|
|
125
|
+
| `.github/workflows/release.yml` | CD | GitHub Actions | sí |
|
|
126
|
+
| `.github/dependabot.yml` | Deps auto | GitHub Dependabot | sí |
|
|
127
|
+
| `skills.yml` | Skills | `skill-manager` | sí |
|
|
128
|
+
| `skills.lock` | Skills | `skill-manager` | sí |
|
|
129
|
+
| `.claude/settings.local.json` | Agente | Claude Code | sí |
|
|
130
|
+
| `.claude/commands/*.md` | Agente | Claude Code | sí |
|
|
131
|
+
| `.env` | Entorno | runtime local | **no** |
|
|
132
|
+
| `.gitignore` | VCS | git | sí |
|
|
133
|
+
|
|
134
|
+
## 9. Secrets / credenciales
|
|
135
|
+
|
|
136
|
+
- GitHub Actions: `RUBYGEMS_API_KEY` (release.yml)
|
|
137
|
+
- Local `.env`: IDs ClickUp (no secretos pero específicos del workspace)
|
|
138
|
+
- Skills `matrix-element`: `MATRIX_AUTH_TOKEN`
|
|
139
|
+
|
|
140
|
+
Ninguna credencial hardcodeada en archivos versionados.
|
|
@@ -6,13 +6,14 @@ module DockerSwarm
|
|
|
6
6
|
extend ActiveSupport::Concern
|
|
7
7
|
|
|
8
8
|
def update(new_attributes = {})
|
|
9
|
+
current_version = self.Version&.dig("Index")
|
|
9
10
|
assign_attributes(new_attributes) if new_attributes.present?
|
|
10
11
|
return false unless valid?
|
|
11
12
|
|
|
12
13
|
Api.request(
|
|
13
14
|
action: self.class.routes[:update],
|
|
14
15
|
arguments: { id: self.ID },
|
|
15
|
-
query_params: { version:
|
|
16
|
+
query_params: { version: current_version },
|
|
16
17
|
payload: payload_for_docker
|
|
17
18
|
)
|
|
18
19
|
|
data/lib/docker_swarm/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: docker-swarm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gabriel
|
|
@@ -91,6 +91,7 @@ files:
|
|
|
91
91
|
- LICENSE
|
|
92
92
|
- README.md
|
|
93
93
|
- docs/behavior/behavior.md
|
|
94
|
+
- docs/config/config.md
|
|
94
95
|
- docs/glossary/glossary.md
|
|
95
96
|
- lib/docker-swarm.rb
|
|
96
97
|
- lib/docker_swarm.rb
|
|
@@ -127,9 +128,9 @@ licenses:
|
|
|
127
128
|
metadata:
|
|
128
129
|
homepage_uri: https://github.com/gedera/docker-swarm
|
|
129
130
|
source_code_uri: https://github.com/gedera/docker-swarm
|
|
130
|
-
changelog_uri: https://github.com/gedera/docker-swarm/blob/v0.7.
|
|
131
|
+
changelog_uri: https://github.com/gedera/docker-swarm/blob/v0.7.1/CHANGELOG.md
|
|
131
132
|
bug_tracker_uri: https://github.com/gedera/docker-swarm/issues
|
|
132
|
-
documentation_uri: https://github.com/gedera/docker-swarm/blob/v0.7.
|
|
133
|
+
documentation_uri: https://github.com/gedera/docker-swarm/blob/v0.7.1/skill/SKILL.md
|
|
133
134
|
rubygems_mfa_required: 'true'
|
|
134
135
|
rdoc_options: []
|
|
135
136
|
require_paths:
|