Repository navigation
Sigil warns for iOS-only / Android-only tags; Anchored on Android whitelist (MOB-194, MOB-365) - #205
Merged
Merged
Conversation
… whitelist (MOB-194, MOB-365) The whitelist check tested the union of priv/tags/ios.txt and android.txt, so its per-platform branches never fired. Classify a tag by manifest membership instead: both -> silent, one -> warns naming the platform, neither -> not in the whitelist. extra_tags and plugin tags stay silent. Anchored was the only tag on one manifest: the Android bridge renders it since mob_new 0.5.0 (MobBridge.kt.eex "anchored" -> MobAnchored), so it joins android.txt.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes MOB-194 and MOB-365.
MOB-194.
Mob.Sigilchecked a tag against the union ofpriv/tags/ios.txtandpriv/tags/android.txt, and only entered its iOS-only / Android-only branches when the tag was absent from that union, so they could never fire.tag_warning/2now classifies by membership:~MOB: <Tag> is iOS-only — not supported on Android~MOB: <Tag> is Android-only — not supported on iOS~MOB: <Tag> is not in the Mob tag whitelist — pass-through as :tagTags declared through
config :mob, :extra_tagsor a plugin manifest stay silent, including a declared tag that only one core manifest lists (documented in the moduledoc).MOB-365.
Anchoredadded topriv/tags/android.txt. mob_new's Android bridge renders it (MobBridge.kt.eex:4339"anchored" -> MobAnchored(node, m),MobAnchoredat :4374; since mob_new 0.5.0, MOB-189).Single-platform audit. Comparing the two manifests on origin/master,
Anchoredwas the only tag on one and not the other, and it was a missing entry, not a real gap. With it added the two sets are identical, so the new warning fires for no packaged tag today. There are no real gaps to list.Tests (
test/mob/sigil_test.exs):tag_warning/2with synthetic manifests: both → nil, iOS-only, Android-only, unknown.~MOB(<Anchored />)(and Canvas/Icon/NativeView) through the real sigil emits no~MOB:warning. Checked: withAnchoredremoved from android.txt this fails with<Anchored> is iOS-only.:extra_tagsand plugin-manifest tests still pass.Known limit: since the packaged manifests are now identical, the single-platform branches are reached only through
tag_warning/2, not through the sigil. A comment inresolve_type/2says not to pre-filter on membership.Review: reviewer subagent (Codex rate-limited until 12:17 PM today): MERGE, two nitpicks (moduledoc precedence sentence, guard comment), both fixed in b785c09.