Skip to content
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

Release 2.15.0 #1971

Merged
merged 65 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a93240a
Add watchOS platform support to Core and Logs targets
jfiser-paylocity Jun 21, 2024
9b48804
Resolve minimum watchOS version in DeviceProtocol
jfiser-paylocity Jun 21, 2024
47591ce
Require minimum watchOS version due to missing ApplicationNotifications
jfiser-paylocity Jun 21, 2024
560b424
Use dd accessor on watch
jfiser-paylocity Jun 26, 2024
d47fcfa
Use process background task on watch
jfiser-paylocity Jun 26, 2024
a9549d1
Replace personal file header with the prefefined one
jfiser-paylocity Jun 27, 2024
843c36d
Merge branch 'DataDog:develop' into develop
jfiser-paylocity Jul 1, 2024
d0df86e
Add new files in the project
jfiser-paylocity Jul 1, 2024
d9749fd
Enable smoke tests for watchOS platform
jfiser-paylocity Jul 1, 2024
a9bed81
Merge pull request #1942 from DataDog/release/2.14.0
maxep Jul 4, 2024
51e5a58
Update CHANGELOG.md
maxep Jul 4, 2024
72c95e5
Merge pull request #1944 from DataDog/maxep/fix-changelog
maxep Jul 4, 2024
a0b3240
Merge pull request #1918 from jfiser-paylocity/develop
ncreated Jul 8, 2024
f0cd12e
Add smoke spm build for `DatadogTrace`
ncreated Jul 8, 2024
fef24e0
Update CHANGELOG.md
ncreated Jul 8, 2024
0730813
Merge pull request #1952 from DataDog/hotfix/2.14.1
ncreated Jul 10, 2024
0595d7d
RUM-4079 Migrate release pipeline to GitLab
ncreated Jul 4, 2024
7ea60ea
RUM-4079 Prettier
ncreated Jul 5, 2024
d25442a
RUM-4079 Cleanup
ncreated Jul 5, 2024
3a05078
RUM-4079 Clean repo artifact using `git clean -fxd`
ncreated Jul 9, 2024
41ddd33
chore: make testing distributed header injection easier in Example app
ganeshnj Jul 10, 2024
2f9a7df
Merge pull request #1945 from DataDog/ncreated/RUM-4079/migrate-relea…
ncreated Jul 10, 2024
85dd33c
RUM-4079 Migrate SRSnapshoTests to GitLab
ncreated Jul 9, 2024
ffd0140
RUM-4079 Prettier
ncreated Jul 9, 2024
d849bd7
RUM-4079 Disintegrate SR Snapshot Tests in Bitrise
ncreated Jul 9, 2024
736aeb0
RUM-4079 Disintegrate `tools/ci/choose_workflows` automation
ncreated Jul 9, 2024
69e2532
RUM-4079 Refine `make sr-snapshot-tests-open`
ncreated Jul 9, 2024
e0bcff3
remove tvOS target
ganeshnj Jul 10, 2024
dcc3628
Merge branch 'develop' into jfiser-paylocity/enable-watchos-build
ncreated Jul 10, 2024
10c4f61
RUM-4079 Fix make command name
ncreated Jul 11, 2024
4d67a53
Remove DeviceProtocol
maxep Jul 11, 2024
eaafb61
Merge pull request #1946 from DataDog/jfiser-paylocity/enable-watchos…
ncreated Jul 12, 2024
6f1b3c6
RUM-5084 feat: add ability to clear data in feature data storage
ganeshnj Jul 3, 2024
216873d
Merge pull request #1940 from DataDog/ganeshnj/feat/clear-feature-sto…
ganeshnj Jul 15, 2024
8bd398c
Merge pull request #1953 from DataDog/ncreated/RUM-4079/migrate-sr-sn…
ncreated Jul 16, 2024
e2aa865
RUM-4079 chore: Migrate E2E Tests app workflow to GitLab
ncreated Jul 11, 2024
56d50a1
Merge pull request #1957 from DataDog/ncreated/RUM-4079/migrate-e2e-s…
ncreated Jul 16, 2024
d80d1cf
Merge pull request #1954 from DataDog/ganeshnj/chore/dist-trace-manua…
ganeshnj Jul 17, 2024
d03a5bf
RUM-5248 feat: send memory warning as RUM error
ganeshnj Jul 17, 2024
791fde9
RUM-1000 chore: use throwing API to create the file
ganeshnj Jul 17, 2024
201b402
RUM-4079 Migrate dogfooding automation to GitLab
ncreated Jul 18, 2024
7c0dd17
update changelog and regen models
ganeshnj Jul 18, 2024
360e232
Merge pull request #1960 from DataDog/ganeshnj/chore/improve-tel
ganeshnj Jul 18, 2024
10ee5b8
Merge pull request #1955 from DataDog/ganeshnj/feat/memory-warning-er…
ganeshnj Jul 18, 2024
3fe3330
RUM-5344 Provide GITHUB_TOKEN for Carthage on CI
ncreated Jul 19, 2024
fb91ae7
RUM-5344 Fix Ci trigger map
ncreated Jul 19, 2024
17b5be0
RUM-4079 CR feedback
ncreated Jul 19, 2024
783407b
RUM-4709 feat: decorate network span kind as `client`
ganeshnj Jul 19, 2024
c8529ba
fix test case
ganeshnj Jul 19, 2024
3a29fdf
Merge pull request #1961 from DataDog/ncreated/RUM-4079/migrate-dogfo…
ncreated Jul 19, 2024
bcee4ee
RUM-4079 Do not block pipeline with manual dogfooding jobs
ncreated Jul 22, 2024
05e1e8e
Merge pull request #1965 from DataDog/ncreated/RUM-4079/do-not-block-…
ncreated Jul 22, 2024
b58fd25
Merge pull request #1963 from DataDog/ganeshnj/feat/client-span
ganeshnj Jul 22, 2024
5fcfdd1
fix: do not send context updates on context read
ganeshnj Jul 24, 2024
97d8b1e
Merge pull request #1968 from DataDog/ganeshnj/fix/excessive-context-…
ganeshnj Jul 24, 2024
c19beab
Make recorder identifier explicit
maciejburda Jul 24, 2024
09a4a8d
Add test
maciejburda Jul 24, 2024
b207518
Update CHANGELOG
maciejburda Jul 25, 2024
a4c8504
Update CHANGELOG.md
ncreated Jul 25, 2024
1214685
Merge pull request #1967 from DataDog/maciey/fix-sr-tabbar-recorder
maciejburda Jul 25, 2024
24bed73
Merge branch 'develop' into ncreated/add-changelog-entry-for-1968
ncreated Jul 25, 2024
56c6da6
Merge pull request #1969 from DataDog/ncreated/add-changelog-entry-fo…
ncreated Jul 25, 2024
0c36248
Merge pull request #1962 from DataDog/ncreated/RUM-5344/avoid-rate-li…
ncreated Jul 25, 2024
328891f
Bumped version to 2.15.0
ncreated Jul 25, 2024
15e3ada
Update CHANGELOG.md for 2.15.0 release
ncreated Jul 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,3 @@ A brief description of implementation details of this PR.
- [ ] Feature or bugfix MUST have appropriate tests (unit, integration)
- [ ] Make sure each commit and the PR mention the Issue number or JIRA reference
- [ ] Add CHANGELOG entry for user facing changes

### Custom CI job configuration (optional)
- [ ] Run unit tests for Session Replay
9 changes: 6 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ Carthage/Build
Carthage/Checkouts

xcuserdata/
instrumented-tests/DatadogSDKTesting.*
instrumented-tests/LICENSE

*.local.xcconfig
E2ETests/code-signing
tools/dogfooding/repos

# Ignore files for Python tools:
.idea
Expand All @@ -20,3 +19,7 @@ __pycache__
*.swp
.venv
.vscode
*.pytest_cache

# CI job artifacts
artifacts/
262 changes: 231 additions & 31 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,21 @@ stages:
- test
- ui-test
- smoke-test
- e2e-test
- dogfood
- release-build
- release-publish

variables:
MAIN_BRANCH: "master"
DEVELOP_BRANCH: "develop"
# Prefilled variables for running a pipeline manually:
# Ref.: https://docs.gitlab.com/ee/ci/pipelines/index.html#prefill-variables-in-manual-pipelines
RELEASE_GIT_TAG:
description: "The Git tag for the release pipeline. If set, release pipeline will be triggered for the given tag."
RELEASE_DRY_RUN:
value: "1"
description: "Controls the dry run mode for the release pipeline. If set to '1', the pipeline will execute all steps but will not publish artifacts. If set to '0', the pipeline will run fully."

default:
tags:
Expand All @@ -18,36 +29,42 @@ default:
# │ Utility jobs: │
# └───────────────┘

# Trigger jobs on 'develop' and 'master' branches
.run:when-develop-or-master:
rules:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH || $CI_COMMIT_BRANCH == $MAIN_BRANCH'
when: always
# Utility jobs define rules for including or excluding dependent jobs from the pipeline.
#
# Ref.: https://docs.gitlab.com/ee/ci/jobs/job_rules.html
# > Rules are evaluated in order until the first match. When a match is found, the job is either included or excluded
# > from the pipeline, depending on the configuration.

# Trigger jobs on SDK code changes, comparing against 'develop' branch
.run:if-sdk-modified:
.test-pipeline-job:
rules:
- changes:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH || $CI_COMMIT_BRANCH == $MAIN_BRANCH' # always on main branches
- if: '$CI_COMMIT_BRANCH' # when on other branch with following changes compared to develop
changes:
paths:
- "Datadog*/**/*"
- "IntegrationTests/**/*"
- "SmokeTests/**/*"
- "TestUtilities/**/*"
- "*" # match any file in the root directory
compare_to: 'develop' # cannot use variable due to: https://gitlab.com/gitlab-org/gitlab/-/issues/369916
compare_to: 'develop' # cannot use $DEVELOP_BRANCH var due to: https://gitlab.com/gitlab-org/gitlab/-/issues/369916

# Trigger jobs on changes in `tools/*`, comparing against 'develop' branch
.run:if-tools-modified:
rules:
- changes:
paths:
- "tools/**/*"
- "Makefile"
- ".gitlab-ci.yml"
compare_to: 'develop'
.release-pipeline-job:
rules:
- if: '$CI_COMMIT_TAG || $RELEASE_GIT_TAG'

.release-pipeline-delayed-job:
rules:
- if: '$CI_COMMIT_TAG || $RELEASE_GIT_TAG'
when: delayed
start_in: 20 minutes

ENV check:
stage: pre
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
script:
- ./tools/runner-setup.sh --datadog-ci # temporary, waiting for AMI
- make env-check

# ┌──────────────────────────┐
Expand All @@ -57,8 +74,7 @@ ENV check:
Lint:
stage: lint
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
- !reference [.test-pipeline-job, rules]
script:
- make clean repo-setup ENV=ci
- make lint license-check
Expand All @@ -67,8 +83,8 @@ Lint:
Unit Tests (iOS):
stage: test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
OS: "17.4"
Expand All @@ -82,8 +98,8 @@ Unit Tests (iOS):
Unit Tests (tvOS):
stage: test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
OS: "17.4"
Expand All @@ -97,8 +113,8 @@ Unit Tests (tvOS):
UI Tests:
stage: ui-test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-sdk-modified, rules]
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
OS: "17.4"
Expand All @@ -116,17 +132,46 @@ UI Tests:
- make clean repo-setup ENV=ci
- make ui-test TEST_PLAN="$TEST_PLAN" OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

SR Snapshot Tests:
stage: ui-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.4.0"
OS: "17.5"
PLATFORM: "iOS Simulator"
DEVICE: "iPhone 15"
ARTIFACTS_PATH: "artifacts"
artifacts:
paths:
- artifacts
expire_in: 1 week
when: on_failure
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --os "$OS" --ssh # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make sr-snapshots-pull sr-snapshot-test OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE" ARTIFACTS_PATH="$ARTIFACTS_PATH"

Tools Tests:
stage: test
rules:
- !reference [.run:when-develop-or-master, rules]
- !reference [.run:if-tools-modified, rules]
rules:
- if: '$CI_COMMIT_BRANCH' # when on branch with following changes compared to develop
changes:
paths:
- "tools/**/*"
- "Makefile"
- ".gitlab-ci.yml"
compare_to: 'develop'
script:
- make clean repo-setup ENV=ci
- make tools-test

Smoke Tests (iOS):
stage: smoke-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
tags:
- macos:ventura
- specific:true
Expand All @@ -136,13 +181,16 @@ Smoke Tests (iOS):
PLATFORM: "iOS Simulator"
DEVICE: "iPhone 15 Pro"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "$OS" # temporary, waiting for AMI
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "$OS" --ssh # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-ios
- make smoke-test-ios-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Smoke Tests (tvOS):
stage: smoke-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
tags:
- macos:ventura
- specific:true
Expand All @@ -152,13 +200,16 @@ Smoke Tests (tvOS):
PLATFORM: "tvOS Simulator"
DEVICE: "Apple TV"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "$OS" # temporary, waiting for AMI
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "$OS" --ssh # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-tvos
- make smoke-test-tvos-all OS="$OS" PLATFORM="$PLATFORM" DEVICE="$DEVICE"

Smoke Tests (visionOS):
stage: smoke-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
tags:
- macos:ventura
- specific:true
Expand All @@ -172,6 +223,9 @@ Smoke Tests (visionOS):

Smoke Tests (macOS):
stage: smoke-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
tags:
- macos:ventura
- specific:true
Expand All @@ -181,3 +235,149 @@ Smoke Tests (macOS):
- ./tools/runner-setup.sh --xcode "$XCODE" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-macos

Smoke Tests (watchOS):
stage: smoke-test
rules:
- !reference [.test-pipeline-job, rules]
- !reference [.release-pipeline-job, rules]
tags:
- macos:ventura
- specific:true
variables:
XCODE: "15.2.0"
OS: "10.2"
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --watchOS --os "$OS" # temporary, waiting for AMI
- make clean repo-setup ENV=ci
- make spm-build-watchos

# ┌──────────────────────┐
# │ E2E Test app upload: │
# └──────────────────────┘

E2E Test (upload to s8s):
stage: e2e-test
rules:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
variables:
XCODE: "15.3.0"
OS: "17.4"
artifacts:
paths:
- artifacts
expire_in: 2 weeks
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --os "$OS" --datadog-ci # temporary, waiting for AMI
- make clean
- export DRY_RUN=${DRY_RUN:-0} # default to 0 if not specified
- make e2e-build-upload ARTIFACTS_PATH="artifacts/e2e"

# ┌─────────────────┐
# │ SDK dogfooding: │
# └─────────────────┘

Dogfood (Shopist):
stage: dogfood
rules:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
when: manual
allow_failure: true
script:
- ./tools/runner-setup.sh --ssh # temporary, waiting for AMI
- DRY_RUN=0 make dogfood-shopist

Dogfood (Datadog app):
stage: dogfood
rules:
- if: '$CI_COMMIT_BRANCH == $DEVELOP_BRANCH'
when: manual
allow_failure: true
script:
- ./tools/runner-setup.sh --ssh # temporary, waiting for AMI
- DRY_RUN=0 make dogfood-datadog-app

# ┌──────────────┐
# │ SDK release: │
# └──────────────┘

.release-before-script: &export_MAKE_release_params
- export GIT_TAG=${RELEASE_GIT_TAG:-$CI_COMMIT_TAG} # CI_COMMIT_TAG if set, otherwise default to RELEASE_GIT_TAG
- if [ -z "$GIT_TAG" ]; then echo "GIT_TAG is not set"; exit 1; fi # sanity check
- export ARTIFACTS_PATH="artifacts/$GIT_TAG"
- export DRY_RUN=${CI_COMMIT_TAG:+0} # 0 if CI_COMMIT_TAG is set
- export DRY_RUN=${DRY_RUN:-$RELEASE_DRY_RUN} # otherwise default to RELEASE_DRY_RUN

Build Artifacts:
stage: release-build
rules:
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
artifacts:
paths:
- artifacts
expire_in: 4 weeks
before_script:
- *export_MAKE_release_params
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "17.4" --ssh # temporary, waiting for AMI
- make env-check
- make clean
- make release-build release-validate

Publish GH Asset:
stage: release-publish
rules:
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
before_script:
- *export_MAKE_release_params
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "17.4" # temporary, waiting for AMI
- make env-check
- make clean
- make release-publish-github

Publish CP podspecs (internal):
stage: release-publish
rules:
- !reference [.release-pipeline-job, rules]
variables:
XCODE: "15.3.0"
before_script:
- *export_MAKE_release_params
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "17.4" # temporary, waiting for AMI
- make env-check
- make clean
- make release-publish-internal-podspecs

Publish CP podspecs (dependent):
stage: release-publish
rules:
- !reference [.release-pipeline-delayed-job, rules]
variables:
XCODE: "15.3.0"
before_script:
- *export_MAKE_release_params
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "17.4" # temporary, waiting for AMI
- make env-check
- make clean
- make release-publish-dependent-podspecs

Publish CP podspecs (legacy):
stage: release-publish
rules:
- !reference [.release-pipeline-delayed-job, rules]
variables:
XCODE: "15.3.0"
before_script:
- *export_MAKE_release_params
script:
- ./tools/runner-setup.sh --xcode "$XCODE" --iOS --tvOS --os "17.4" # temporary, waiting for AMI
- make env-check
- make clean
- make release-publish-legacy-podspecs
Loading