From 771233040faee270bbbb9acaf64f3e0da88b10f7 Mon Sep 17 00:00:00 2001 From: hensm Date: Wed, 12 Dec 2018 20:27:30 +0000 Subject: [PATCH] Add semver compatibility checking --- ext/src/_locales/en/messages.json | 6 +++ ext/src/lib/getBridgeInfo.js | 36 +++++++++++------ ext/src/options/assets/icons8-cancel-120.png | Bin 3137 -> 1831 bytes ext/src/options/assets/icons8-ok-120.png | Bin 2911 -> 1801 bytes ext/src/options/assets/icons8-warn-120.png | Bin 0 -> 1662 bytes ext/src/options/index.jsx | 39 ++++++++++++++----- ext/src/options/styles/index.css | 8 ---- 7 files changed, 59 insertions(+), 30 deletions(-) create mode 100644 ext/src/options/assets/icons8-warn-120.png diff --git a/ext/src/_locales/en/messages.json b/ext/src/_locales/en/messages.json index e300ace..c6ff262 100755 --- a/ext/src/_locales/en/messages.json +++ b/ext/src/_locales/en/messages.json @@ -24,6 +24,9 @@ , "optionsBridgeFoundStatusText": { "message": "Bridge found" } + , "optionsBridgeIssueStatusText": { + "message": "Bridge issue" + } , "optionsBridgeNotFoundStatusText": { "message": "Bridge not found. Try downloading and installing the latest version." } @@ -45,6 +48,9 @@ , "optionsBridgeCompatible": { "message": "COMPATIBLE" } + , "optionsBridgeMaybeCompatible": { + "message": "MAYBE COMPATIBLE" + } , "optionsBridgeIncompatible": { "message": "INCOMPATIBLE" } diff --git a/ext/src/lib/getBridgeInfo.js b/ext/src/lib/getBridgeInfo.js index 56b9043..a7434c3 100644 --- a/ext/src/lib/getBridgeInfo.js +++ b/ext/src/lib/getBridgeInfo.js @@ -14,24 +14,36 @@ export default async function getBridgeInfo () { } /** - * Compare installed bridge version to the version the - * extension was built alongside and is known to be - * compatible with. - * - * TODO: Determine compatibility with semver and enforce/notify - * user. + * If the target version is above 0.x.x range, API is stable + * and versions with minor or patch level changes should be + * compatible. */ - if (applicationVersion !== APPLICATION_VERSION) { + const isVersionCompatible = + semver.eq(applicationVersion, APPLICATION_VERSION) + || semver.diff(applicationVersion, APPLICATION_VERSION) !== "major" + && semver.major(APPLICATION_VERSION) !== 0; + + const isVersionExact = semver.eq(applicationVersion, APPLICATION_VERSION); + const isVersionOlder = semver.lt(applicationVersion, APPLICATION_VERSION); + const isVersionNewer = semver.gt(applicationVersion, APPLICATION_VERSION); + + // Print compatibility info to console + if (!isVersionCompatible) { console.error(`Expecting ${APPLICATION_NAME} v${APPLICATION_VERSION}, found v${applicationVersion}.` - , semver.lt(applicationVersion, APPLICATION_VERSION) + , isVersionOlder ? "Try updating the native app to the latest version." : "Try updating the extension to the latest version"); } return { - version: applicationVersion - , isVersionCompatible: applicationVersion === APPLICATION_VERSION - , isVersionOlder: semver.lt(applicationVersion, APPLICATION_VERSION) - , isVersionNewer: semver.gt(applicationVersion, APPLICATION_VERSION) + name: APPLICATION_NAME + , version: applicationVersion + , expectedVersion: APPLICATION_VERSION + + // Version info + , isVersionExact + , isVersionCompatible + , isVersionOlder + , isVersionNewer }; } diff --git a/ext/src/options/assets/icons8-cancel-120.png b/ext/src/options/assets/icons8-cancel-120.png index 5f9750bf69ab0d8b856dee72c00b37669849ba91..2ea85bde51d768372440784854a09ab1d869ed8f 100644 GIT binary patch literal 1831 zcmY+E2{=@17{@;;YHZ!H4b5eYB}>T~ZWznhH6mINiZaopjH|`^*j1XcW#1!pBO%5T z)eT8w9cD6F5>qlnjY#UAvDJN^@0|00f8YQ8zvn#XIVb)A&O!ht2?GEKSXp8npzB4> zv6UM-3)Z!a0KheIz}C?WDu1r8CScS7G^s#k5XcP!)EGc^0LgA34iOsI3Bfl2-3d@V zK#B^G13-}u6d>3OWT*f|1AjuA3ef#PW&ofd-4D*h7*@8#;O6|!bq_x~?s<0)31D_zj^ zU!L`@-$y{ZYo7JpU;f{FH#94;YY=+V`2h~NgMe!j_vS4;yj!=y`1l0`g|`0z7Zwo} zM@S;2q*1c+3d$gpR9VvLMUux1uk);6~L?d%;6IyxOXeAL;+^_ZKx#|clb zliqkAzYF0Jk`+DZP8|pGtCl!{esrC;vWgX>EJa{<7m0rL(KM zr?-#VKR}}oGTsagkBq(@8=qjl|2V~(p7}I4|8-&U+tT;t9}axqN&(nxXN5I(#1FAD z7WX;YBU*)C+iGiKORGu@l${fjt5lR(4#^po*JOO69(7A)^c{G%lsj+gzvopDB`7sB zCueE-#n{CerXI6)CPb&jmFz#>P7PE188bH-GjADy65A1H{(6UMvfn2?!Bh|Gi^9SS$#?BXReI(k%7#q6_;!hY<=iPB8^{dxJK76fpJ&4G!B{EplE^sY8)%*&z zR&-mJV}VI@Pyn(@I}|&b)!G~m?TUF^n6fgd9imHzwoXYw6|*pP0_NfD0eKQWK0s zcH19k48;x|MCsHNk%%M)Tgtwui8rK-q}~!tpj~cjMR@-3rd_@X7~v8)tT2L1K>NWw z=Gnn#c_dl8PU+A2slGIBB87(5M!FrRcu^1&=jiY+TqU(5VtuL}@)O6iURrnYY7y-u zNi%NF7UQ{MgxK9>KSgseL3$(0Svs>7?1c1TFL!(fhWy~YI+F{+Dn@dc8_cIC1#88N zUU;bn5GVB_4%AWW6vA4|-K$*=&k)94NTatJ?BAWQ*SK$>!wvKwuxf0)vSW7&p{yRA z*Nk>mG<_m&6f-5DZF7DU343h1@Yui=-^i9o!l<5+N$bxa+1_?@_q1uEJgj(JC_BBE zrO50E$sG!Z>s2Nl2{wI_YaDGm{&YJ`p`)g;}=`9#}`rvoD+0SbEaXH){+AQH@{T?Dp%;-2Si^bU`OdCZ=|h4cG~u$7g@mT0u*IkbCJvW; zDgGr}ZWJf4GdH!zzu9b#q2wh*YDnUqf4jTEO!T-?23$+?~gu;lWpu4^=q~`HF%*>VMySfJ-x@%JB z?Raqx_fh)uEPvs!V@J-OxJ?nE3Bpu@PVdPYG29u@<9#=-y{E2&IA~eOeaW+!9M7(T zha{Z-R2|kR@ib7vUwNj2Tn?wvifK~be_5X z+HGZLmeSN)uBYLt(uXAAw30^Vf?;(<9O2nz#wg)#B+7UAm+r`1aqnBLeC(ZgzJ`KQSseQ zPxu9*iq&|vG-V$M3zudpM_T=OVG)_~(ObQQ?c1@q7+Vh9G5Sk3o|H1qx9`LAMHq8$ Vj8vDiI~Mv60xL5dw#>vM;y?U?CWZh2 literal 3137 zcmV-H48HS;P)rIk>n7PUeG%B2;hgi8o9#3pS+ASi8w?cK(^ zaZN;tfZWJB_Ih_tAJ*F>Zk(OVnTzfDo+4$=`G3!+bI$C{xj;ljL_|bHL_|bHL_|bH zL_|bHL_|b{w@ACamBT=bdX3Un!W&fR!K#y%AIv=n&{o)V$R~>NCCd`@@71oFOr5 z77 zfk%!}_xmNhKN55@Cle~cJtVFZ)MNS|nEXLO2Ka6(+1G;3rA#OU_flUE#$&*mpmWj0 zD+=}PR`&fn=tKe+oTA|tg**<-3OW~^2pm>$R}0w}0?s2Cc5&|XvzYc9g}N=M9Q;6# zr;c&_o+W%V7)<;C810h(2wW6I`~cXgQ0s%}vV9laO~d5|@)A(zckF;UWWd^HvVZk6 zsNrX@6b&~U$X2GFT!1ny{W6dDU1^2swA0hIx5p5 zcrOcT3YdE+%|(uIPfw1z^L0%B(b7d1Paajh94;NZTqHwcRvxwhOT7&*@5E8pjE%pW`q{M@JAkB@ z(G{#|CHtz=@-Dk*xx-y~3lUHco^CBrBiSQySWW4JhF9!7om_y$^dA<~4?K)Linw~% zax8cc^Xu?o9`gunAMgJ>mb^0#tIxd9tnfDv;+}$_*6yZ$w$t*C1;>f4$A{@R)fB4E z^#5ha3f|Qi)`DCpQsu|Ov)WqZW~YT63s&IMeCF7)N>?k`+HA{L=UcDeJtn4~g4GIV<(y+*^0Di!Ne;hU00Bq$-1ZneI?f$*QdSRYM~td#tc*va zxo!oPjC09*Lzq`v8Q=G^;Oqj$*Fi3^o3SR$7)G7laoBbXt|`5_32*|tTvDLe+0DFj zDqT4`CSM7hW?HIr<;g9#BDa_1oC3wp0ObN0CT6qkLUs!XRknlZM;04YcUX~J>aKIw zaf)Q=%5&^`E8TJ_#_(2<#jaA;fI@jMn9zLpwI?}-aRbOZz}t4@8dP_LLGCEF@4W-T zDkOrTBssn*Mf1!`S1zRQ=m;a%jZnDJirf^#&KNv@rkN!>$Gq&&jBonN5 z#E{iazMD3ZJrYA!hg|Yh7A#$P23I+eTV^4BM@y2`4xO24#1Fx8%zhcq*)_t*IxBCe zDp7jlRlFW}UqfEH@k6lMZ@-ME>>9#cW#tXk9_H7L&IUar?F<|mp|A?rr6og6h=Y4? zTd+c)M#gBh_@)j_Pw_)*nqU% zGTvZ)CPtd3xh91-fp(zXr0}K{$tPxpIGN++3AXROgYUr-0>O^uma!>$a7`E_D-7=i z4`S}c!4Ga-D0nxHSo-9*oBG)%h0UBQw@kZ9;WaC(1{QH3H-uWJd2+p7%xdVfTgbNH z(eZAN-Ex}PW_4<7nx?t67@dqi9}D23S`15L@?!cAkC0mtU`zgoZ}XyoAok+emSf0H zx7-0NvQY0LlR}5R?iwxoXV}5%{wIzED|pLEITvipF|@|Yw)i&Xma!!{$B^%m#ZST2 z7~3fw_vQyZaadUXeFZ~!KJZ4 z`LZ?rcd0z5yjuhRP9@>UL-# z1D!nVVQc^txH{Lt)ijmT*}jb*2&%Lqb2@QmAfBK{wRe6^L#^KR;JEm%QSibM~gS+g{0NGHj*x;|IY5of-418X%br$T;)amlaP)i+10uptWL(0 zqwNHWMff^!z>E4P8UKl4e9a5F;Nh9RZDa>bjH`f(D-NbGhfIu>3+eN0wTP#OHn-8& z4dyz0_-;G_8B(Yl+vw}@GKlA=a<|amrBHVh;9Tkuq6F^p@?hvPzO8ESp>ds{o&jq8 ziWyRd6tba}%!_^m^L5*TUKU&l=3f8{^PMIoN5HtTg}zR|0{Xr$MGuW%64YiOY#XY1 z&3+T(n$mNLe|SCykENB&2Vhd{rGo0fZr4q+}A?( z5eeuaGw`j0(llOcqMiW07<4Y0`54SQTj<{sWD>r2(PL>QvpL650(c0>2c3@whJlB2 z3^fKV7edg2Po|ed6Yy(bWze}ePjtgp& zi9Fdtc5_fq$5siw;FHOam^F;LNnj($WkAfQ&;?+-z|+<6f|cd0VPQfEKA8`hH*Jvk zg+*8Ss?!nu-`nK_w}zw3rW^ zUD{_^&E&*p=AVOn4(e#>-wc4H6{M>$Q!ykxky>d)L_|bHL_|bHL_|bHL_|bHL_|bH bM3DR!R+%T7V7{Xx0OCGeFe> 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 Zb?ZE2WYZ&ZF2G+9INCWAAMQUM^DkP!6086K literal 0 HcmV?d00001 diff --git a/ext/src/options/index.jsx b/ext/src/options/index.jsx index 3b9a096..2307225 100644 --- a/ext/src/options/index.jsx +++ b/ext/src/options/index.jsx @@ -180,18 +180,29 @@ class App extends Component { ? "bridge__info--found" : "bridge__info--not-found"}`; + const [ statusIcon, statusText ] = do { + if (!bridgeInfo) { + [ "assets/icons8-cancel-120.png" + , _("optionsBridgeNotFoundStatusText") ] + } else { + if (bridgeInfo.isVersionExact) { + [ "assets/icons8-ok-120.png" + , _("optionsBridgeFoundStatusText") ] + } else { + [ "assets/icons8-warn-120.png" + , _("optionsBridgeIssueStatusText") ] + } + } + }; +
+ src={ statusIcon } />

- { bridgeInfo - ? _("optionsBridgeFoundStatusText") - : _("optionsBridgeNotFoundStatusText") } + { statusText }

@@ -203,14 +214,22 @@ class App extends Component { { _("optionsBridgeStatsExpectedVersion") } - { APPLICATION_VERSION } + { bridgeInfo.expectedVersion } { _("optionsBridgeStatsCompatibility") } - { bridgeInfo.isVersionCompatible - ? _("optionsBridgeCompatible") - : _("optionsBridgeIncompatible") } + { do { + if (bridgeInfo.isVersionCompatible) { + if (bridgeInfo.isVersionExact) { + _("optionsBridgeCompatible") + } else { + _("optionsBridgeMaybeCompatible") + } + } else { + _("optionsBridgeIncompatible") + } + }} diff --git a/ext/src/options/styles/index.css b/ext/src/options/styles/index.css index 302ee5b..156d0bd 100644 --- a/ext/src/options/styles/index.css +++ b/ext/src/options/styles/index.css @@ -50,14 +50,6 @@ width: 100%; } -.bridge__missing { - background-color: #d70022; - border-radius: 5px; - color: white; - padding: 5px; - margin-top: 5px; -} - .bridge__info { display: flex; }