-
Notifications
You must be signed in to change notification settings - Fork 14
refactor(parametric): implement version-aware RC capability definitions #6100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
| '>=2.7.0': | ||
| - APM_TRACING_MULTICONFIG | ||
| - APM_TRACING_ENABLE_LIVE_DEBUGGING |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@DataDog/dd-trace-go-guild I tried my best to verify this, but please review 😃
|
|
060022c to
7c4e3d7
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: b89f284 | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
7c4e3d7 to
ed97aac
Compare
Replace static capability dictionary with version-aware YAML configuration to eliminate chicken-and-egg problems when adding new capabilities. Changes: - Add capabilities.yml defining base and version-specific capabilities per language using SemVer ranges - Remove hardcoded DEFAULT_SUPPORTED_CAPABILITIES_BY_LANG dictionary - Remove @bug and @missing_feature decorators from capability test - Remove dynamic Node.js capability detection workaround Benefits: - Pre-release versions can report new capabilities without breaking tests - Declarative configuration easier to maintain than code + decorators - Eliminates need for workarounds when adding capabilities to tracers - Clear documentation of when each capability was introduced Fixes the chicken-and-egg situation where: 1. System-tests must pass on main before tracer PR lands 2. System-tests must pass on tracer PR with new capabilities 3. Exact release version unknown at merge time
cbeauchesne
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small RC, then all good.
b67fd08 to
f1f84e0
Compare

Motivation
The
test_default_capability_completenesstest had a chicken-and-egg problem: when adding new Remote Config (RC) capabilities to tracers, we needed workarounds like@bug,@missing_featuredecorators, and dynamic detection logic (e.g., for Node.js). This made the test brittle and difficult to maintain.The core issue: System-tests must pass on
mainbefore a tracer PR lands, but also pass on the tracer PR with new capabilities, when the exact release version is unknown at merge time.Changes
Replace static capability dictionary with version-aware YAML configuration to eliminate chicken-and-egg problems when adding new capabilities.
Added
tests/parametric/capabilities.yml- Defines base and version-specific Remote Config capabilities per language using SemVer rangestests/parametric/capabilities_schema.json- JSON schema for validatingcapabilities.ymlstructuretests/test_the_test/test_capabilities.py- Automated validation tests forcapabilities.yml(runs in CI on every PR)_load_capabilities_yaml()andget_expected_capabilities_for_version()intest_dynamic_configuration.pyRemoved
DEFAULT_SUPPORTED_CAPABILITIES_BY_LANGdictionary@bugand@missing_featuredecorators from capability testBenefits
Note for Reviewers
Pre-release vs Release Behavior:
6.0.0-pre,2.7.0-dev): Tests allow extra capabilities not listed incapabilities.yml. This solves the chicken-and-egg problem during development.5.72.0,2.7.0): Tests fail if capabilities don't match exactly. This ensures you don't forget to updatecapabilities.ymlwhen preparing a release.This means: merge tracer PRs with new capabilities first, then update
capabilities.ymlin system-tests before the official release.Workflow
🚀 Once your PR is reviewed and the CI green, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
tests/ormanifests/is modified ? I have the approval from R&P teambuild-XXX-imagelabel is present