Skip to content

chore: com.decentraland.pulse.transport to fix missing csproj .meta warning - #9669

Merged
dalkia merged 6 commits into
devfrom
fix/bump-pulse-transport-csproj-meta
Aug 11, 2026
Merged

chore: com.decentraland.pulse.transport to fix missing csproj .meta warning#9669
dalkia merged 6 commits into
devfrom
fix/bump-pulse-transport-csproj-meta

Conversation

@dalkia

@dalkia dalkia commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Problem

On every Unity import we get:

Asset Packages/com.decentraland.pulse.transport/DCLPulse.Transport.Shared.csproj has no meta file, but it's in an immutable folder. The asset will be ignored.

com.decentraland.pulse.transport is a Git UPM dependency pointing at decentraland/Pulse (src/DCLPulse.Transport.Shared). That folder ships a .csproj (so it can also build standalone with dotnet build) but the csproj had no .meta. Because packages resolve into an immutable cache, Unity can't generate one and warns + ignores the file. Nothing in this repo can fix it — the meta has to live in the Pulse package.

Change

Bump the com.decentraland.pulse.transport pin (in manifest.json and packages-lock.json) to the Pulse commit that adds DCLPulse.Transport.Shared.csproj.meta.

⚠️ Blocked on decentraland/Pulse#36

Draft until that PR merges. It currently pins to the fix branch commit (6d882c7) so CI can resolve the package; re-pin to the squash-merge commit on main before marking ready / merging, so the pin references a commit that lives permanently on main.

🤖 Generated with Claude Code

Pins com.decentraland.pulse.transport to the Pulse commit that adds the
missing DCLPulse.Transport.Shared.csproj.meta, silencing Unity's
per-import warning:

  Asset Packages/com.decentraland.pulse.transport/DCLPulse.Transport.Shared.csproj
  has no meta file, but it's in an immutable folder. The asset will be ignored.

Depends on decentraland/Pulse#36. Re-pin to the squash-merge commit
before merging this PR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

🚦 CI Status

Build

Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below.

Name Link
Commit c2f5488
Logs https://github.com/decentraland/unity-explorer/actions/runs/31500034240
Download Windows https://github.com/decentraland/unity-explorer/suites/85442853965/artifacts/9107562605
Download Windows S3 https://explorer-artifacts.decentraland.org/@dcl/unity-explorer/branch/fix/bump-pulse-transport-csproj-meta/pr-24831-c2f5488/Decentraland_windows64.zip
Download Mac https://github.com/decentraland/unity-explorer/suites/85442853965/artifacts/9107439234
Download Mac S3 https://explorer-artifacts.decentraland.org/@dcl/unity-explorer/branch/fix/bump-pulse-transport-csproj-meta/pr-24831-c2f5488/Decentraland_macos.zip
Built on 2026-08-11T15:30:56Z

Lint

No C# files changed — lint ratchet skipped.

Tests

All Unity tests passed ✅

TESTS SUITE Result Passed Failed Skipped
EditMode ✅ Passed 24607 0 13
PlayMode ✅ Passed 236 0 5

@dalkia dalkia changed the title Bump com.decentraland.pulse.transport to fix missing csproj .meta warning chore: com.decentraland.pulse.transport to fix missing csproj .meta warning Aug 10, 2026
dalkia added 2 commits August 10, 2026 14:09
Signed-off-by: Juan Ignacio Molteni <juanignaciomolteni@gmail.com>
Signed-off-by: Juan Ignacio Molteni <juanignaciomolteni@gmail.com>
@dalkia dalkia self-assigned this Aug 10, 2026
@dalkia
dalkia marked this pull request as ready for review August 10, 2026 17:57
@dalkia
dalkia requested review from a team as code owners August 10, 2026 17:57
@github-actions
github-actions Bot requested a review from DafGreco August 10, 2026 17:57
@decentraland-bot
decentraland-bot self-requested a review August 10, 2026 17:57
@claude

This comment has been minimized.

@decentraland-bot decentraland-bot left a comment

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.

Review — chore: com.decentraland.pulse.transport to fix missing csproj .meta warning

STEP 2 — Root-cause check ✅

Problem: Every Unity import warns that DCLPulse.Transport.Shared.csproj has no .meta in the immutable package cache.

Does the diff fix the cause? Yes. The warning originates from the upstream decentraland/Pulse package shipping a .csproj without a corresponding .meta. The fix correctly lives upstream — Pulse#36 adds the missing .meta file, and this PR bumps the pin to that merge commit. This is the right approach; there is nothing unity-explorer can do locally to suppress the warning.

STEP 3 — Design & integration ✅

N/A — no new code, systems, components, or logic. This is a pure dependency pin bump.

STEP 4 — Member audit ✅

N/A — no code members added or changed.

STEP 5 — Line-level review ✅

Verified:

  • ✅ Commit hash efe92879d9c6765421841fa67cf994500772fc6b is consistent across manifest.json (version URL) and packages-lock.json (version URL + hash field)
  • ✅ The pinned commit IS the squash-merge commit of Pulse#36 on main (not a branch commit) — confirmed via gh api repos/decentraland/Pulse/compare/main...efe928... returning status: identical
  • ✅ Upstream commit only adds src/DCLPulse.Transport.Shared/DCLPulse.Transport.Shared.csproj.meta (7 lines, DefaultImporter) — no behavioral changes to the package
  • ✅ No secrets, credentials, or security concerns
  • ✅ No other dependencies changed

No findings.

STEP 6 — Complexity: SIMPLE

2 files changed, 4 lines modified (2 additions, 2 deletions per file). Pure commit-hash bump in JSON config files — no C# code, no ECS, no runtime logic.

STEP 7 — QA: YES

While the change is cosmetic (suppresses a warning), it alters a resolved runtime package version. Smoke-testing that the Explorer still loads correctly after the dependency bump is prudent.

STEP 8 — Non-blocking warnings

None. Main scene not modified.

Security review

No security concerns. The change only updates a Git commit hash reference to a merged, publicly-visible commit on the main branch of decentraland/Pulse. No new code paths, no auth changes, no secret exposure.


REVIEW_RESULT: PASS ✅
COMPLEXITY: SIMPLE
COMPLEXITY_REASON: Pure dependency pin bump in manifest/lock JSON files; no code changes
QA_REQUIRED: YES


Reviewed by Jarvis 🤖 · Requested by decentraland-bot via GitHub

@github-actions github-actions Bot left a comment

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.

Auto-approved based on Jarvis review — simple fix/chore with no blocking issues. QA approval is still required.

@dalkia
dalkia enabled auto-merge (squash) August 11, 2026 11:47
@claude

This comment has been minimized.

@claude

claude Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Claude finished @dalkia's task in 1m 7s —— View job


Security-focused dependency review (re-run after second dev merge)

  • Read current PR diff vs origin/dev
  • Identify what the new push changed
  • Re-assess dependency changes (pin style, provenance, lockfile hygiene)
  • Check for workflow/prompt files in the reviewable delta
  • Post verdict

What this push changed

The synchronize is c2f54887a — a second Merge branch 'dev' into fix/bump-pulse-transport-csproj-meta, not a dependency edit.

$ git show --stat c2f54887a
 .github/workflows/test.yml            | 50 ++++++++++++++++++
 scripts/ci/test-stale-log-watchdog.sh | 98 +++++++++++++++++++++++++++++++++++

That's already-merged dev work (#9645, the hung-Unity-test watchdog) arriving through the merge — not a change this PR introduces. The reviewable delta confirms it:

$ git diff --name-only origin/dev...HEAD
Explorer/Packages/manifest.json
Explorer/Packages/packages-lock.json

Two files, 3 additions / 3 deletions, byte-identical to the two prior passes. No re-pin, no second dependency, no drift.

Step 1 — Dependency changes [PR]

Item Old New
com.decentraland.pulse.transport …Pulse.git?path=src/DCLPulse.Transport.Shared#536d308a96cd5dce1011b012e7d0b39c27b01993 …#efe92879d9c6765421841fa67cf994500772fc6b
  • source — git UPM, https://github.com/decentraland/Pulse.git, subpath src/DCLPulse.Transport.Shared (first-party decentraland org, HTTPS)
  • type — source code (C#: ENet P/Invoke bindings, PacketMode / DisconnectReason / ENetChannel enums, Pulse protobufs) [Inference — docs/pulse.md:106,247]
  • scope — runtime, ships in the desktop client, gated behind FeatureId.Pulse (FeaturesRegistry.cs:72)

Lockfile hygiene — correct. version (Explorer/Packages/packages-lock.json:104) and hash (:108) carry the same SHA; dependencies: {} (:107) unchanged — no new transitive deps. A repo-wide grep for the old SHA (536d308) returns nothing, so there is no stale reference left behind anywhere under Explorer/.

Step W — N/A. Zero workflow or prompt files in the PR delta (the test.yml change lives on dev, on both sides of the three-dot diff). W.1–W.10 do not apply. No new binaries (pre-computed binary list for this PR: none), no .asmdef, no editor/build scripts.

Step 1.5 — Registry metadata

[UNKNOWN] — not applicable. Git-sourced first-party package with no public registry listing, and this job has no network egress.

Step 2 — Assessment

A. Provenance / pinning — good [PR]. Full 40-char commit SHA on a decentraland-org repo over HTTPS — the strongest pin form available for a git UPM dep, consistent with neighbouring entries (com.decentraland.livekit-sdk, com.decentraland.rpc-csharp). No floating refs introduced. Pre-existing unpinned entries in manifest.json (com.atteneder.gltfast, com.cysharp.unitask, com.decentraland.renum, the unity-explorer-packages group) are untouched and out of scope.

B. Runtime capability — unchanged in kind. Network-facing by design (backs the ENet reliable-UDP transport; Runtime/ENet.cs is a [DllImport] P/Invoke wrapper). Proportionate and not new to this PR. The native .so/.dylib/.dll slices live in this repo (Explorer/Assets/Plugins/ENet/runtimes/, unchanged), not in the package — this bump adds no new native binary.

C. Shipping impact. All three desktop targets; inert unless Pulse is flag-enabled (PulseContainer swaps in IPulseMultiplayerService.Dummy when off).

D/E. No transitive changes [PR]. Advisories/maintenance [UNKNOWN] — first-party repo, no registry.

Upstream verification — carried over

Both items needing network egress were verified in the Jarvis review at 2026-08-10T17:59:33Z; attributing them there since I still have no egress this run:

  1. efe9287 reachable from Pulse:main?gh api repos/decentraland/Pulse/compare/main...efe928… returned status: identical — the pin is the squash-merge commit of Pulse#36 on main, not a branch commit. This was the finding with real teeth (a branch-only SHA can be GC'd on branch deletion and retroactively break every future resolve); it's closed.
  2. Bump contains only the .meta? ✅ The upstream commit adds only src/DCLPulse.Transport.Shared/DCLPulse.Transport.Shared.csproj.meta (7 lines, DefaultImporter). No change to the P/Invoke surface or the shared DisconnectReason/PacketMode enums that ENetTransport casts raw wire bytes into.

Housekeeping (non-blocking)

  • PR body is still stale — third run flagging this. It says "It currently pins to the fix branch commit (6d882c7)" and still carries the ⚠️ Blocked on Add missing .meta for DCLPulse.Transport.Shared.csproj Pulse#36 / Draft banner, while HEAD pins efe9287 (the merged main commit) and the PR is ready. The merge commit will permanently record this description. Fix this →
  • CI at review time: Validate PR Title, Performance Test Merge Block, Require Jarvis Review, Jarvis Review Request ✅ · Unity Test, Unity Cloud Build, Dependency Security Review in progress · Unity Performance Test skipped · Enforce QA and DEV Approvals ❌ — an approval gate (QA approval outstanding), not a build failure. Unity Cloud Build going green is the practical proof that the new pin resolves, imports cleanly, and the original .csproj has no meta file warning is gone.

Summary table

Dependency Version Source Type Scope Risk Evidence confidence
com.decentraland.pulse.transport efe9287 (was 536d308) git — decentraland/Pulse, SHA-pinned source (C#, P/Invoke bindings + protobuf) runtime, desktop, feature-flag gated LOW HIGH — pin style, lockfile consistency, and absence of stale SHAs verified from the tree; upstream reachability and one-file content verified in the prior network-enabled review

No HIGH or MEDIUM risk items. First-party, SHA-pinned to a commit confirmed on main, no new transitive deps, no new binary, correct lockfile hygiene, upstream content confirmed to be a single 7-line .meta addition. The only open item is the stale PR description — documentation, not a security concern.

DEPENDENCY_REVIEW: PASS

--- · fix/bump-pulse-transport-csproj-meta

@dalkia
dalkia disabled auto-merge August 11, 2026 14:55
@dalkia
dalkia merged commit 18e08a3 into dev Aug 11, 2026
21 of 26 checks passed
@dalkia
dalkia deleted the fix/bump-pulse-transport-csproj-meta branch August 11, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants