Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
12144ab
feat: Normalize VCS provider names for cleaner display
runningcode Sep 18, 2025
38b17d5
fix: Use to_owned() instead of to_string() for str slices
runningcode Sep 18, 2025
c183381
test: Update VCS provider test expectations for normalized names
runningcode Sep 18, 2025
c36a45f
refactor: Only normalize provider names in get_provider_from_remote
runningcode Sep 19, 2025
ce1bf3c
style: Format code with cargo fmt
runningcode Sep 19, 2025
cd97c5d
feat: Fix hostname parsing and add comprehensive tests
runningcode Sep 19, 2025
ca149da
Simplify extract_provider_name with rsplit iterator
runningcode Sep 19, 2025
5f34156
Update src/utils/vcs.rs
runningcode Sep 19, 2025
4737dbb
Update src/utils/vcs.rs
runningcode Sep 19, 2025
702f95d
Update src/utils/vcs.rs
runningcode Sep 19, 2025
fa0522d
ci(release): `npm install` in `test_node.yml` on release (#2768)
szokeasaurusrex Sep 18, 2025
4188d8c
release: 2.54.0
getsentry-bot Sep 18, 2025
571ada9
meta: Update CHANGELOG.md
szokeasaurusrex Sep 18, 2025
96ec728
build(npm): Pin latest optional deps in `package-lock.json` (#2772)
szokeasaurusrex Sep 18, 2025
8e5d60a
ci: `--ignore-scripts` on post-release `npm install` (#2773)
szokeasaurusrex Sep 18, 2025
e5eeb8b
fix(releases): handle partial SHAs correctly in commit resolution (#2…
srest2021 Sep 18, 2025
45790c9
fix: Safer asset catalog reader for liquid glass (#2771)
noahsmartin Sep 19, 2025
fbcc493
feat: Improve upload error message to show cause (#2765)
runningcode Sep 19, 2025
0e78d99
Fix clippy warning: use to_owned() instead of to_string()
runningcode Sep 19, 2025
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
1 change: 1 addition & 0 deletions .craft.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
minVersion: 0.23.1
changelogPolicy: auto
postReleaseCommand: bash scripts/post-release.sh
targets:
- name: gcs
bucket: sentry-sdk-assets
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
test_node:
name: Test Node
uses: ./.github/workflows/test_node.yml
with:
triggered-by-release: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'release/') }}

test_swift:
name: Test Swift
Expand Down
33 changes: 25 additions & 8 deletions .github/workflows/test_node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ name: Test Node

on:
workflow_call:
inputs:
triggered-by-release:
type: boolean
description: Whether the workflow was triggered by a release
default: false
outputs:
matrix-result:
description: 'Matrix job result'
Expand All @@ -19,10 +24,16 @@ jobs:
with:
node-version-file: package.json

# We need to skip the fallback download because downloading will fail on release branches because the new version isn't available yet.
# We have to use npm here because yarn fails on the non-existing existing optionalDependency version:
# https://github.com/yarnpkg/berry/issues/2425#issuecomment-1627807326
- run: SENTRYCLI_SKIP_DOWNLOAD=1 npm ci
- name: Install dependencies via npm ci
if: ${{ !inputs.triggered-by-release }}
run: npm ci

# For pushes to the release branch, we need to install the dependencies via `npm install`
# because the `package-lock.json` is not updated with the new versions of the optional
# dependencies yet. We also must skip the fallback download via --ignore-scripts.
- name: Install dependencies via npm install (for pushes to release branch)
if: ${{ inputs.triggered-by-release }}
run: npm install --omit=optional --ignore-scripts

- run: npm run check:types

Expand All @@ -43,10 +54,16 @@ jobs:
with:
node-version: ${{ matrix.node-version }}

# We need to skip the fallback download because downloading will fail on release branches because the new version isn't available yet.
# We have to use npm here because yarn fails on the non-existing existing optionalDependency version:
# https://github.com/yarnpkg/berry/issues/2425#issuecomment-1627807326
- run: SENTRYCLI_SKIP_DOWNLOAD=1 npm ci
- name: Install dependencies via npm ci
if: ${{ !inputs.triggered-by-release }}
run: npm ci

# For pushes to the release branch, we need to install the dependencies via `npm install`
# because the `package-lock.json` is not updated with the new versions of the optional
# dependencies yet. We also must skip the fallback download via --ignore-scripts.
- name: Install dependencies via npm install (for pushes to release branch)
if: ${{ inputs.triggered-by-release }}
run: npm install --omit=optional --ignore-scripts

# older node versions need an older nft
- run: SENTRYCLI_SKIP_DOWNLOAD=1 npm install @vercel/nft@0.22.1
Expand Down
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

"You know what they say. Fool me once, strike one, but fool me twice... strike three." — Michael Scott

## 2.54.0

### Various fixes & improvements

- Fix: symlinks in normalized upload (#2744) by @noahsmartin
- feat(vcs): Prefer upstream remote over origin for base repo name (#2737) by @runningcode
- feat(build): Add auto-detection of base_repo_name from git remote (#2735) by @runningcode
- feat(build): Add auto-detection of PR number from GitHub Actions (#2722) by @runningcode
- feat(build): Auto-detect base_ref from git merge-base (#2720) by @runningcode
- feat(logs): support log streaming (#2666) by @vgrozdanic

## 2.53.0

### Various fixes & improvements
Expand All @@ -22,7 +33,7 @@ Please note, the `build` commands are still experimental, and are therefore subj

## 2.53.0-alpha

This release reintroduces the `build` (previously named `mobile-app`) commands.
This release reintroduces the `build` (previously named `mobile-app`) commands.

### Various fixes & improvements

Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
authors = ["Armin Ronacher <armin.ronacher@active-4.com>"]
build = "build.rs"
name = "sentry-cli"
version = "2.53.0"
version = "2.54.0"
edition = "2021"
rust-version = "1.86"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ enum AssetUtil {
key.perform(Selector(("keyList"))),
to: UnsafeMutableRawPointer.self
)
let rendition = createRendition(from: structuredThemeStore, keyList)
guard let rendition = createRendition(from: structuredThemeStore, keyList) else {
continue
}

let data = rendition.value(forKey: "_srcData") as! Data
let length = UInt(data.count)
Expand Down Expand Up @@ -198,13 +200,13 @@ enum AssetUtil {
}

private static func createRendition(from themeStore: NSObject, _ keyList: UnsafeMutableRawPointer)
-> NSObject
-> NSObject?
{
let renditionWithKeySelector = Selector(("renditionWithKey:"))
let renditionWithKeyMethod = themeStore.method(for: renditionWithKeySelector)!
let renditionWithKeyImp = unsafeBitCast(renditionWithKeyMethod, to: objectiveCMethodImp.self)
return renditionWithKeyImp(themeStore, renditionWithKeySelector, keyList)!.takeUnretainedValue()
as! NSObject
return renditionWithKeyImp(themeStore, renditionWithKeySelector, keyList)?.takeUnretainedValue()
as? NSObject
}

private static func handleReferenceKey(
Expand All @@ -222,7 +224,9 @@ enum AssetUtil {
referenceKey.perform(Selector(("keyList"))),
to: UnsafeMutableRawPointer.self
)
let referenceRendition = createRendition(from: themeStore, referenceKeyList)
guard let referenceRendition = createRendition(from: themeStore, referenceKeyList) else {
return false
}

if let result = referenceRendition.perform(Selector(("unslicedImage"))) {
let image = result.takeUnretainedValue() as! CGImage
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/darwin/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-darwin",
"version": "2.53.0",
"version": "2.54.0",
"description": "The darwin distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/linux-arm/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-linux-arm",
"version": "2.53.0",
"version": "2.54.0",
"description": "The linux arm distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/linux-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-linux-arm64",
"version": "2.53.0",
"version": "2.54.0",
"description": "The linux arm64 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/linux-i686/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-linux-i686",
"version": "2.53.0",
"version": "2.54.0",
"description": "The linux x86 and ia32 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/linux-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-linux-x64",
"version": "2.53.0",
"version": "2.54.0",
"description": "The linux x64 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/win32-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-win32-arm64",
"version": "2.53.0",
"version": "2.54.0",
"description": "The windows arm64 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/win32-i686/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-win32-i686",
"version": "2.53.0",
"version": "2.54.0",
"description": "The windows x86 and ia32 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
2 changes: 1 addition & 1 deletion npm-binary-distributions/win32-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli-win32-x64",
"version": "2.53.0",
"version": "2.54.0",
"description": "The windows x64 distribution of the Sentry CLI binary.",
"repository": "https://github.com/getsentry/sentry-cli",
"license": "BSD-3-Clause",
Expand Down
50 changes: 25 additions & 25 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sentry/cli",
"version": "2.53.0",
"version": "2.54.0",
"description": "A command line utility to work with Sentry. https://docs.sentry.io/hosted/learn/cli/",
"repository": "git://github.com/getsentry/sentry-cli.git",
"homepage": "https://docs.sentry.io/hosted/learn/cli/",
Expand Down Expand Up @@ -32,14 +32,14 @@
"typescript": "~5.8.3"
},
"optionalDependencies": {
"@sentry/cli-darwin": "2.53.0",
"@sentry/cli-linux-arm": "2.53.0",
"@sentry/cli-linux-arm64": "2.53.0",
"@sentry/cli-linux-i686": "2.53.0",
"@sentry/cli-linux-x64": "2.53.0",
"@sentry/cli-win32-i686": "2.53.0",
"@sentry/cli-win32-x64": "2.53.0",
"@sentry/cli-win32-arm64": "2.53.0"
"@sentry/cli-darwin": "2.54.0",
"@sentry/cli-linux-arm": "2.54.0",
"@sentry/cli-linux-arm64": "2.54.0",
"@sentry/cli-linux-i686": "2.54.0",
"@sentry/cli-linux-x64": "2.54.0",
"@sentry/cli-win32-i686": "2.54.0",
"@sentry/cli-win32-x64": "2.54.0",
"@sentry/cli-win32-arm64": "2.54.0"
},
"scripts": {
"postinstall": "node ./scripts/install.js",
Expand Down
22 changes: 22 additions & 0 deletions scripts/post-release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

# This script is run by Craft after a release is created.
# We currently use it to bump the platform-specific optional dependencies to their new versions
# in the package-lock.json, immediately after a release is created. This is needed for CI to
# pass after the release is created.c

set -eux
OLD_VERSION="${1}"
NEW_VERSION="${2}"

git checkout master

# We need to update the package-lock.json to include the new version of the optional dependencies.
npm install --package-lock-only --ignore-scripts

git add package-lock.json

# Only commit if there are changes
git diff --staged --quiet || git commit -m "build(npm): 🤖 Bump optional dependencies to ${NEW_VERSION}"
git pull --rebase
git push
3 changes: 2 additions & 1 deletion src/commands/build/upload.rs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,8 @@ pub fn execute(matches: &ArgMatches) -> Result<()> {
}
);
for (path, reason) in errored_paths_and_reasons {
warn!(" - {} ({})", path.display(), reason);
warn!(" - {}", path.display());
warn!(" Error: {reason:#}");
}
}

Expand Down
Loading