Skip to content

RUM-16661: Add dogfooding branch infrastructure#3519

Draft
hamorillo wants to merge 2 commits into
developfrom
hector.morilloprieto/RUM-16661
Draft

RUM-16661: Add dogfooding branch infrastructure#3519
hamorillo wants to merge 2 commits into
developfrom
hector.morilloprieto/RUM-16661

Conversation

@hamorillo

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds the infrastructure needed to support a long-lived dogfooding branch that publishes x.y.z-dogfooding-SNAPSHOT Maven artifacts for internal dogfooding of in-flight features before they land on develop.

Motivation

The team needs a structured way to dogfood in-flight SDK features in the Datadog Android app and Shopist Android, mirroring what the iOS SDK already does with its dogfooding branch. Previous ad-hoc approaches (e.g. bplasovska/feature/timeseries-dogfooding) were undiscoverable, one-off, and required consumers to update their version string for every feature.

Additional Notes

  • Version.Type.Snapshot is extended from a singleton object to a data class with an optional label — Snapshot("dogfooding")x.y.z-dogfooding-SNAPSHOT, Snapshot()x.y.z-SNAPSHOT (develop behaviour unchanged).
  • All standard CI jobs skip on the dogfooding branch via .except-dogfooding-branch; only the new manual publish:snapshot-dogfooding job runs there.
  • ci/scripts/reset-dogfooding.sh automates resetting the dogfooding branch to develop HEAD and re-applying the version label — run after a feature graduates to develop.
  • No public API surface changes.

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Make sure you discussed the feature or bugfix with the maintaining team in an Issue
  • Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

@codecov-commenter

codecov-commenter commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.19%. Comparing base (e4099f5) to head (6e0c555).
⚠️ Report is 10 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3519      +/-   ##
===========================================
- Coverage    72.34%   72.19%   -0.15%     
===========================================
  Files          965      965              
  Lines        35609    35609              
  Branches      5933     5933              
===========================================
- Hits         25760    25705      -55     
- Misses        8255     8291      +36     
- Partials      1594     1613      +19     

see 37 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hamorillo

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e0c555e70

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


echo "Committing version patch..."
git add "$ANDROID_CONFIG"
git commit -m "Reset dogfooding branch to develop"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Generate policy-compliant reset commits

When this script is used to reset dogfooding, it creates the pushed commit with a non-ticketed title and no explicit signing. The repo instructions in AGENTS.md require all commits to be GPG-signed and titled RUM-XXXXX: <short description>, so in environments without commit.gpgsign=true or with server-side commit-message/signature checks this reset can be rejected or leave policy-violating commits on the long-lived branch. Please sign the commit and use a RUM-ticketed title.

Useful? React with 👍 / 👎.

@hamorillo hamorillo Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About the commit title: RUM-XXXXX: <short description> I think that's acceptable.

require all commits to be GPG-signed

For the moment, we'll use the script locally so the scripts will be signed with the local configuration. We can iterate on this if necessary.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fyi

signing on CI is done like this #3462

in case you decide to do it

@hamorillo hamorillo marked this pull request as ready for review June 9, 2026 08:06
@hamorillo hamorillo requested review from a team as code owners June 9, 2026 08:06
@hamorillo hamorillo marked this pull request as draft June 9, 2026 08:34
test-pyramid:legacy-integration-instrumented-median-api:
extends:
- .base-cache-pull-job
- .except-dogfooding-branch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If most of the jobs are disabled in the dogfooding branch, we could create a dedicated yaml for its CI and route to it like this.

However I'm not sure that we need to skip our usual tests in the dogfooding branch. It is more-or-less the same situation as the develop branch.

paths:
- "**/verification-metadata.xml"

publish:snapshot-dogfooding:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the develop branch we use the publish:release-all job. Why can't we reuse it here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants