You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: Enhance version constraint PRD with multi-environment and version list concerns
Add comprehensive problem statements addressing real-world challenges:
- Multi-environment version drift (CI, local, containers)
- Silent feature unavailability in older versions
- Experimentation friction without proper warnings
Add new configuration examples:
- Multi-environment consistency enforcement
- Experimentation mode with warnings for unsupported versions
Add Phase 3 proposal for constraint-aware version listing:
- Optional --constraint-aware flag for atmos version list
- Filters releases based on version.constraint.require
- Three design options with recommendation for flag-based approach
- Future enhancement: warnings for versions outside constraints
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
Copy file name to clipboardExpand all lines: docs/prd/version-constraint.md
+164-1Lines changed: 164 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,9 @@ This configuration enables checking for newer versions of Atmos available on Git
27
27
3. **Team consistency** - No way to ensure all team members use compatible Atmos versions
28
28
4. **Feature gating** - Cannot specify version ranges for configurations using version-specific features
29
29
5. **Migration clarity** - No clear signal when upgrading is required vs. recommended
30
+
6. **Multi-environment version drift** - Different environments (CI, local, containers) often run mismatched Atmos versions, leading to inconsistent behavior
31
+
7. **Silent feature unavailability** - Newer features may not exist in older versions, causing confusing errors without clear version context
32
+
8. **Experimentation friction** - No way to warn users about unsupported versions while still allowing experimentation with newer releases
30
33
31
34
## Proposed Solution
32
35
@@ -174,7 +177,42 @@ version:
174
177
Questions? Contact #infrastructure-support
175
178
```
176
179
177
-
### Example 7: Combined with Version Checking
180
+
### Example 7: Multi-Environment Consistency
181
+
```yaml
182
+
# Ensure all environments (CI, local, containers) use compatible versions
183
+
version:
184
+
constraint:
185
+
require: ">=2.5.0, <3.0.0"
186
+
enforcement: "fatal"
187
+
message: |
188
+
Version mismatch detected across environments.
189
+
190
+
This configuration requires Atmos 2.x to ensure consistent behavior
191
+
across CI pipelines, local development, and container deployments.
192
+
193
+
Check your environment:
194
+
- CI: Update .github/workflows or .gitlab-ci.yml
195
+
- Local: brew upgrade atmos
196
+
- Docker: Update Dockerfile base image
197
+
```
198
+
199
+
### Example 8: Experimentation Mode (Warn on Unsupported)
200
+
```yaml
201
+
# Allow experimentation with newer versions but warn if not officially supported
202
+
version:
203
+
constraint:
204
+
require: ">=2.5.0, <2.8.0"
205
+
enforcement: "warn"
206
+
message: |
207
+
You are using Atmos 2.8.0+ which is newer than our tested version range.
208
+
209
+
This configuration is validated against Atmos 2.5.0-2.7.x.
210
+
Newer versions may work but are not officially supported.
211
+
212
+
Proceed at your own risk. Report issues to #infrastructure.
213
+
```
214
+
215
+
### Example 9: Combined with Version Checking
178
216
```yaml
179
217
version:
180
218
# Check for new Atmos releases periodically
@@ -497,6 +535,131 @@ ATMOS_VERSION_ENFORCEMENT=silent atmos terraform plan
497
535
1.**`website/docs/cli/configuration.mdx`** - Add version constraint documentation
498
536
2.**`website/docs/cli/versioning.mdx`** - Update with constraint examples
499
537
538
+
### Phase 3: Constraint-Aware Version Listing (Optional Enhancement)
539
+
540
+
Add constraint-aware filtering to `atmos version list` command to help users find compatible versions.
541
+
542
+
**Problem:** When users run `atmos version list`, they see all available versions including those that don't satisfy their configuration's constraints. This can be confusing when trying to upgrade to a compatible version.
543
+
544
+
**Solution:** Add optional `--constraint-aware` flag to `atmos version list` that filters results based on `version.constraint.require` from `atmos.yaml`.
545
+
546
+
**Implementation:**
547
+
548
+
1.**`cmd/version/list.go`** - Add new flag and filtering logic
0 commit comments