Slack custom icon no longer automatically set starting in v5.6

Bug description:

After upgrading to version 5.6 and up, my Slack service icons show the generic Slack logo instead of the custom icon per Slack instance.
Steps to reproduce:

Install Ferdi 5.6 or up.
Add Slack services (mine are houstonpm.slack.com, perlfoundation.slack.com, bbeditbeta.slack.com, slackbits.slack.com, and dzonecore.slack.com).
Note that on connecting to services the icon remains as the generic Slack icon.

Expected behavior

Slack service icon changes to the icon customized for each instance
Screenshots

Environment:

Operating System: macOS Catalina 10.15.7

Ferdi Version: 5.6.2

Server: Ferdi

Debug information:

{"host":{"platform":"darwin","release":"19.6.0","screens":[{"id":458678941,"bounds":{"x":0,"y":0,"width":2560,"height":1440},"workArea":{"x":0,"y":0,"width":2560,"height":1440},"accelerometerSupport":"unknown","monochrome":false,"colorDepth":24,"colorSpace":"{primaries:SMPTEST432_1, transfer:0.0777*x + 0.0000 if x < 0.0450 else (0.9495*x + 0.0495)**2.3955 + 0.0003, matrix:RGB, range:FULL}","depthPerComponent":8,"size":{"width":2560,"height":1440},"displayFrequency":59,"workAreaSize":{"width":2560,"height":1440},"scaleFactor":2,"rotation":0,"internal":false,"touchSupport":"unknown"},{"id":69733382,"bounds":{"x":2560,"y":206,"width":1680,"height":1050},"workArea":{"x":2560,"y":206,"width":1680,"height":1050},"accelerometerSupport":"unknown","monochrome":false,"colorDepth":30,"colorSpace":"{primaries:BT709, transfer:IEC61966_2_1_HDR, matrix:RGB, range:FULL}","depthPerComponent":10,"size":{"width":1680,"height":1050},"displayFrequency":60,"workAreaSize":{"width":1680,"height":1050},"scaleFactor":2,"rotation":0,"internal":true,"touchSupport":"unknown"}]},"ferdi":{"version":"5.6.2","electron":"13.3.0","installedRecipes":[{"id":"bitbucket","version":"1.0.1"},{"id":"discord","version":"1.4.0"},{"id":"enterprise-owa","version":"1.1.1"},{"id":"facebook","version":"1.0.2"},{"id":"github","version":"2.2.0"},{"id":"gmail","version":"1.3.9"},{"id":"googlecalendar","version":"1.0.7"},{"id":"googledrive","version":"1.0.7"},{"id":"googlemeet","version":"2.0.2"},{"id":"hangoutschat","version":"1.4.2"},{"id":"iCloud","version":"1.1.0"},{"id":"instagram","version":"2.0.1"},{"id":"irccloud","version":"1.1.0"},{"id":"jira","version":"1.3.1"},{"id":"linkedin","version":"1.2.1"},{"id":"messenger","version":"1.3.2"},{"id":"msteams","version":"3.1.4"},{"id":"mstodo","version":"1.1.0"},{"id":"office365-owa","version":"1.4.5"},{"id":"proton-mail","version":"1.3.0"},{"id":"reddit","version":"1.0.1"},{"id":"skype","version":"2.1.1"},{"id":"slack","version":"1.3.0"},{"id":"steamchat","version":"1.1.4"},{"id":"tweetdeck","version":"1.2.0"},{"id":"whatsapp","version":"3.3.2"},{}],"devRecipes":[],"services":[{"id":"97f43393-e3fd-4e48-aad7-76737fed23c5","recipe":"office365-owa","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"f0a9782d-31c9-448b-9579-482c10acee07","recipe":"mstodo","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"95337226-fa71-4931-a86a-d269866261c8","recipe":"msteams","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"cd70a79c-4c08-4bc6-a4dd-2ea8e56cb505","recipe":"jira","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":true},{"id":"e62a16fa-78e4-4198-b502-0b9c9e07cda1","recipe":"iCloud","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":true},{"id":"e96d25be-c64b-4b3f-97e5-67b5d0add0b9","recipe":"proton-mail","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"5e46edad-e39a-46db-8080-39817174e354","recipe":"messenger","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"84816beb-5768-4351-8bd0-bf767e191d26","recipe":"whatsapp","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"a0aaf78a-ed68-443b-aab4-3d0c90ca584e","recipe":"tweetdeck","isAttached":false,"isActive":false,"isEnabled":true,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"4430fb7b-180c-4d44-be08-604f7c06d2cd","recipe":"irccloud","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"f98a7d29-121d-4bec-a4b8-c5f6ed2be799","recipe":"discord","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"585d3ccb-5c82-45ce-aa28-d615a4a97d59","recipe":"linkedin","isAttached":false,"isActive":false,"isEnabled":true,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"159f6e07-9db6-403e-af63-bd25c381adca","recipe":"slack","isAttached":true,"isActive":true,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"f5fdf287-a4a5-48c5-a53f-ceee7539d1b8","recipe":"slack","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"6d2bb51f-5b12-4ba9-97cd-fa19a32bf005","recipe":"slack","isAttached":false,"isActive":false,"isEnabled":true,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"781fa883-27d5-426c-bcd9-53a5cebe419b","recipe":"slack","isAttached":false,"isActive":false,"isEnabled":true,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"e79a1cc5-216a-4d92-aaa6-d93b4518a22f","recipe":"slack","isAttached":true,"isActive":false,"isEnabled":true,"isHibernating":false,"hasCrashed":false,"isDarkModeEnabled":false},{"id":"24bbf512-0ca2-461a-9523-4862cd2605d8","recipe":"github","isAttached":false,"isActive":false,"isEnabled":false,"isHibernating":true,"hasCrashed":false,"isDarkModeEnabled":false}],"messages":[{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `actions.service` of type `Object` supplied to `_class2`, expected instance of `_class`.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `actions.settings` of type `Object` supplied to `_class2`, expected instance of `_class`.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"getInfo"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"features"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","request":{"result":null,"wasExecuted":true,"method":"all"},"error":{},"response":{},"server":"https://api.getferdi.com"},{"type":"error","info":["error","Warning: You cannot PUSH the same path using hash history"]},{"type":"log","info":["log","New email received",{"icon":"data:image/gif;base64,R0lGODlhyADIAMQAAOTl9K6y28nM5/n5/Jqf0qes1+vs9tfY7fLy+bW53tDS6t7f8aGl1by/4cLG5P///5OYzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA2MzRCN0Y5MTYyODExRTY5OUMxRjBFRjQyNEUwMzAzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA2MzRCN0ZBMTYyODExRTY5OUMxRjBFRjQyNEUwMzAzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDYzNEI3RjcxNjI4MTFFNjk5QzFGMEVGNDI0RTAzMDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDYzNEI3RjgxNjI4MTFFNjk5QzFGMEVGNDI0RTAzMDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAAyADIAAAF/yAkjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsOjBQHHAQXEOgkKBg/Q0dAGCgnLMgEHA9Lc3AMHAdcsAQDd5uYA4eImBArn7+YKBOsjBQjw+NwIyusB2/kAoQ1QtyxBwIPRrBEr8A9hwAH8ghG45xDhgHnBFiA0AADAs4MLghkEeCABRhEEEv8cCKjQF0V4BxioYLASH4JfDfANdOEPXwNfH89BhMEQnoFeBeANjVH0XcRc7t61jDHynAJeL7sBsFHu3E1dSd8RnBEA3lNbDt4dvRG0mwNdNc29vZH23AFdXc2NpVH23NZcebvtJfvuL67A3AZjK4xXLI6+6BqfUxwDslbJeh8zBuz4hmVuhm8hlnZAgOnTqFOrPh33MueKsF0fjk07Wmhbo2sjvF0rt+6AvGn5/p0v+KzhxOEZl9U6ecC7uQg0dJ7v4q6m1JWexVWgbXZuBrZH1/id24KTugTIFNFgOvUBP0UwEIAXfj3vxMOPaL88VtfzKDWn2wEYEUBef7DkhQD/Qe39Zp8IAbyE4CuI0ScffhutB4EAoGEWjQEaRlXRVRfKJpo5D0LQ00E7seceNBO6MhyAEBgYEI02+uVhNwuOkMCL0gzQUoTK7WiOhTWKyI08I3CIT4ytIPdhRAUEBgCVGJqI20NziVCAaU85AGRkr92IHgk5AmekTuqRMN+Ym80GmwEHHJBlcWuWp2VveuJZZp86/gnonsINGueJhpIpZ6IdQsVoNyTiMtGj0SBwpi0EIKPpppx26umnl9Ij6qiklmrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvtE7XYZqvtttx26+234IYr7riqhAAAOw==","body":"From: Twitter - Reserve your spot for tomorrow's #TwitterAdTalk"}]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `actions.ui` of type `Object` supplied to `_class`, expected instance of `_class`.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `actions.app` of type `Object` supplied to `_class2`, expected instance of `_class`.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `actions.service` of type `Object` supplied to `_class`, expected instance of `_class`.\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]},{"type":"error","info":["error","Warning: Failed prop type: Invalid prop `router` of type `Object` supplied to `_class2`, expected instance of `RouterStore`.\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in div (created by _class2)\n    in CSSTransitionGroupChild (created by TransitionGroup)\n    in span (created by TransitionGroup)\n    in TransitionGroup (created by CSSTransitionGroup)\n    in CSSTransitionGroup (created by Appear)\n    in Appear (created by _class2)\n    in _class2 (created by _class)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions (created by RouterContext)\n    in div (created by _class2)\n    in div (created by _class2)\n    in div (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in _class2 (created by Jss(_class2))\n    in Jss(_class2) (created by _class2)\n    in ThemeProvider (created by _class2)\n    in _class2 (created by inject-_class2-with-stores-actions)\n    in inject-_class2-with-stores-actions (created by RouterContext)\n    in RouterContext (created by Router)\n    in Router (created by _class)\n    in _class (created by inject-_class-with-stores-actions)\n    in inject-_class-with-stores-actions\n    in IntlProvider (created by _class)\n    in _class (created by inject-_class-with-stores)\n    in inject-_class-with-stores\n    in Provider"]}],"workspaces":[{"id":"4a747c81-ab61-45b2-9fd4-5e8c7dc23b00","services":["585d3ccb-5c82-45ce-aa28-d615a4a97d59"]},{"id":"e7d6e404-d65c-4c5f-bcad-1b65808805c8","services":["e96d25be-c64b-4b3f-97e5-67b5d0add0b9","4430fb7b-180c-4d44-be08-604f7c06d2cd","a0aaf78a-ed68-443b-aab4-3d0c90ca584e","f98a7d29-121d-4bec-a4b8-c5f6ed2be799","84816beb-5768-4351-8bd0-bf767e191d26","24bbf512-0ca2-461a-9523-4862cd2605d8"]},{"id":"790e0596-8609-49d2-8881-5d44a8291798","services":["a0aaf78a-ed68-443b-aab4-3d0c90ca584e","585d3ccb-5c82-45ce-aa28-d615a4a97d59"]}],"windowSettings":{"width":1707,"height":1063,"x":185,"y":230,"isMaximized":true,"isFullScreen":true,"displayBounds":{"x":2560,"y":206,"width":1680,"height":1050}},"settings":{"autoLaunchInBackground":false,"runInBackground":true,"reloadAfterResume":true,"enableSystemTray":true,"startMinimized":true,"confirmOnQuit":true,"minimizeToSystemTray":false,"closeToSystemTray":false,"privateNotifications":false,"clipboardNotifications":true,"notifyTaskBarOnMessage":true,"showDisabledServices":false,"showMessageBadgeWhenMuted":true,"showDragArea":false,"enableSpellchecking":true,"spellcheckerLanguage":"en-us","darkMode":true,"locale":"en-US","fallbackLocale":"en-US","beta":false,"isAppMuted":false,"enableGPUAcceleration":true,"server":"https://api.getferdi.com","predefinedTodoServer":"https://app.franztodos.com","autohideMenuBar":false,"lockingFeatureEnabled":false,"locked":false,"lockedPassword":"******","useTouchIdToUnlock":true,"scheduledDNDEnabled":true,"scheduledDNDStart":"23:00","scheduledDNDEnd":"08:00","hibernateOnStartup":true,"hibernationStrategy":300,"wakeUpStrategy":300,"inactivityLock":0,"automaticUpdates":true,"showServiceNavigationBar":false,"universalDarkMode":true,"userAgentPref":"","adaptableDarkMode":true,"accentColor":"#7266F0","serviceRibbonWidth":45,"iconSize":30,"sentry":true,"nightly":false,"navigationBarBehaviour":"never","searchEngine":"duckDuckGo","useVerticalStyle":false,"alwaysShowWorkspaces":false,"liftSingleInstanceLock":false,"serviceLimit":5,"hibernate":true,"todoServer":"isUsingCustomTodoService","customTodoServer":""},"features":{"isServiceProxyEnabled":true,"isWorkspaceEnabled":true,"isTodosEnabled":true,"isSettingsWSEnabled":false},"user":"82c1cf9d-ab58-4da2-b55e-aaa41d2142d8"}}

Can confirm this on Ubuntu.

Me too on macos

Hmm strange, when I try to debug this locally in dev, the custom icons load fine.
@vraravam any idea what could have broken this?

no idea. I tried to switch back to the older version of Ferdi (cleaning the slack recipe in the profile as well), but no luck in identifying the root cause.

Similar issue on macOS

This should be fixed by https://github.com/getferdi/ferdi/pull/1964

When this fix is planned to be released ? In version 5.6.2 ?

It should be in the latest nightly: https://github.com/getferdi/nightlies/releases

@kris7t I confirm it works with nightly 5.6.3-nightly.10 You need to force reload to get icons. Thanks :)


How to run it?

I can't run your program beside having all the needed dependencies.
If I just try ./bin/autopass I get:
Traceback (most recent call last):
    2: from ./bin/autopass:5:in `<main>'
    1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- autopass/config (LoadError)

I should update the readme. You will have to install the "bundler" gem and install autopass by running bundle install && bundle exec rake install in the project root.
Am 14. Oktober 2018 10:03:37 MESZ schrieb LouisDB<EMAIL_ADDRESS>
I can't run your program beside having all the needed dependencies.
If I just try ./bin/autopass I get:
Traceback (most recent call last):
   2: from ./bin/autopass:5:in `<main>'

1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in
require' /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in require': cannot load such file -- autopass/config (LoadError)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jreinert/autopass/issues/33

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

I had to install the ruby-devel package (voidlinux) to run bundle install successfully.
However the second command is not working:
$ bundle exec rake install --trace
** Invoke install (first_time)
** Invoke build (first_time)
** Execute build
autopass 1.0.0 built to pkg/autopass-1.0.0.gem.
** Execute install
rake aborted!
Couldn't install gem, run `gem install /home/louis/.bin/autopass/pkg/autopass-1.0.0.gem' for more detailed output
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/gem_helper.rb:89:in `install_gem'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/gem_helper.rb:46:in `block in install'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `block in execute'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `each'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `execute'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:213:in `block in invoke_with_call_chain'
/usr/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:193:in `invoke_with_call_chain'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:182:in `invoke'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:160:in `invoke_task'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `each'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `block in top_level'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:125:in `run_with_threads'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:110:in `top_level'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:83:in `block in run'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:186:in `standard_exception_handling'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:80:in `run'
/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
/usr/bin/rake:23:in `load'
/usr/bin/rake:23:in `<top (required)>'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli/exec.rb:74:in `load'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli/exec.rb:74:in `kernel_load'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli/exec.rb:28:in `run'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli.rb:424:in `exec'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli.rb:27:in `dispatch'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/cli.rb:18:in `start'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/exe/bundle:30:in `block in <top (required)>'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/usr/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/exe/bundle:22:in `<top (required)>'
/usr/bin/bundle:23:in `load'
/usr/bin/bundle:23:in `<main>'
Tasks: TOP => install

Closing this. Opened #35 instead.


error_on_line_overflow does not diagnose function attributes inside macros

macro_rules! foo {
    ($id:ident) => {
        macro_rules! bar {
            ($id2:tt) => {
                #[cfg(any(target_feature = $id2, target_feature = $id2, target_feature = $id2, target_feature = $id2, target_feature = $id2))]
                fn $id() {}
            };
        }
    };
}

fn main() {}

rustfmt, as expected, does not format this code (its inside a macro), but with error_on_line_overflow = true in the rustfmt.toml I'd expect cargo fmt -- --check to diagnose that the line where the #[cfg(...)] macro is located is too long, yet no diagnostic is emitted.

I could not reproduce this locally with rustfmt 0.99.6-nightly (750b2526 2018-10-18). Would you tell us the repository you were working on and the version of rustfmt you used?

@topecongiro packed_simd using the preview, there are many lines (hundreds) starting with #[cfg_attr(not(target_arch = "wasm32"), test)] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]  that go over the line limit, but I couldn't get rustfmt to error on those.

@gnzlbg Thank you!
When error_on_line_overflow is set to true, rustfmt reports any line that exceeds max width except comment and string literal. Looks like the logic is too pessimistic, and the string literals in #[cfg_attr(not(target_arch = "wasm32"), test)] #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] ("wasm32") is preventing the error report.

Ah damn, trying to find a MWE, the one I came up with does not use any string literals =/

@topecongiro so it appears that error_on_line_overflow also fails in many more cases.
packed_simd contains a script in ci/max_line_width.sh that checks the max line width for all .rs files and fails on a line if the line does not contain http (links cannot be split across line). It appears that all matches found by this script are errors, which finds many (the script currently fails on the first match, but you might want to disable that).


Fix issue in variable docs

A couple of doc error in programmers_guide/variables.md
This fix fixes #12444.
Signed-off-by: Yong Tang<EMAIL_ADDRESS>

Can one of the admins verify this patch?


public.Docker NPM error

When building the public.Dockerfile you get the following error/warning
npm: not found ERROR:root:npm must be available amundsen docker image
I reverted to python-3.7 none slim image and used curl to install npm
I am not sure if I am making a mistake or if this is something that can be ignored.

which docker file? If it is FE, I think it should install npm by default through https://github.com/amundsen-io/amundsenfrontendlibrary/blob/master/public.Dockerfile#L1

That’s the one,
However it doesn’t install NPM after it starts uses the python image.
Regards,
Kashif

On 16 Mar 2021, at 04:25, Tao Feng @.***> wrote:

which docker file? If it is FE, I think it should install npm by default through https://github.com/amundsen-io/amundsenfrontendlibrary/blob/master/public.Dockerfile#L1
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Can you repro this in the monorepo? I haven't seen this lately


Add ReactiveControllerbase

I gave it a thought after a while, I think if we use a common base interface we won't force users to implement each method of a reactive controller
it gives the flexibility for the users to create controllers like the ones that subscribe to a global store (or even event listeners like the mouse controller)
type MyHalfController(host: ReactiveHost) as this =
  do
    let mutable value = 0
    let mutable sub = None
    host.AddController(this)

  [<DefaultValue>]
  val Value: int
    with get() = value

  interface ReactiveHostConnected with
    member _.hostConnected() =
      sub <-
          GlobalStore.Subscribe(fun v ->
            value <- v
            host.requestUpdate()
          )

  interface ReactiveHostDisconnected with
    member _.hostDisconnected() =
      Option.iter (fun s -> s.Dispose()) sub

I'm targeting your controllers branch because I'm not sure if this is a good enough change and if you want to add more to the other branch before merging the PR

Thanks again @AngelMunoz and sorry for taking so long to reply. Too focused now in preparing things for Snake Island alpha release 😅 I'm ok with you merging the PRs if I take too long to reply 👍 I can also send you an invitation for the Lit Nuget packages so you can push new releases if necessary. This is your Nuget alias right? https://www.nuget.org/profiles/Tunaxor

No worries, I'm sure Snake Island is just around the corner and deserves all the attention it can get
and sure that's my NuGet alias!


bug(MatSlider): ERROR TypeError: Cannot read properties of undefined (reading '_hostElement')

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
<mat-slider min="1" max="5" step="0.5" value="1.5"></mat-slider>

Using this MatSlider component will print the following error in the console

Reproduction
StackBlitz link: https://material-14.angular.cn/guide/getting-started
Steps to reproduce:

Following the official example, the console reports this error after MatSlider is displayed on the page

Expected Behavior
No error
Actual Behavior
error
Environment

Angular: 18.2.4
CDK/Material: 18.2.4
Browser(s): Chrome 128.0.6613.84
Operating System (e.g. Windows, macOS, Ubuntu): Linux Deepin v23

You're looking at the docs for a much older version than the one you're running. The correct docs are at https://material.angular.io/components/slider/overview. That being said, the error message we log can be improved. I've sent a fix for the error message at #29745.

You're looking at the docs for a much older version than the one you're running. The correct docs are at https://material.angular.io/components/slider/overview. That being said, the error message we log can be improved. I've sent a fix for the error message at #29745.

Thank you！


there is gap on the top of controller

I have read the guidelines for contributing and I understand

[ ] My issue is happening in the latest version of SideMenu (older versions are no longer maintained).
[ ] My issue was not solved in the README.
[ ] My issue can not be answered on stackoverflow.com.
[ ] My issue is not a request for new functionality that I am unwilling to build and contribute with a pull request.
[ ] My issue is reproducible in the demo project.

Describe the bug
there is a gap on the top of controller
To Reproduce
Steps to reproduce the behavior:

Go to 'example'
Click on 'Right Menu'
Click on any menu item
See error

Expected behavior
there is gap on top
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

This is iOS13 default functionality. Please read up on the latest documentation from Apple.


Cite some documents that recommend doing this

It's probably best covered by NIST SP 800-218 but https://www.nist.gov/itl/ssd/software-quality-group/samate/samate-tool-survey also mentions "Compiler, error checking" & "Compiler, safety enforcing"


Unexpectedly type promoted by InferSchema for sparse column in large CSV file

In a large CSV file, the InferSchema will promote the type of sparse columns to StringType unexpectedly.
The more sparse the column and the more larger the CSV file it is, the more possible the column will be promoted to StringType, even it is of Int or Long or Double.
root cause
    val rootTypes: Array[DataType] = tokenRdd.aggregate(startType)(inferRowType, mergeRowTypes)

  private[csv] def mergeRowTypes(
      first: Array[DataType],
      second: Array[DataType]): Array[DataType] = {
    first.zipAll(second, NullType, NullType).map { case ((a, b)) =>
      val tpe = findTightestCommonType(a, b).getOrElse(StringType)
      tpe match {
        case _: NullType => StringType
        case other => other
      }
    }
  }

In InferSchema.scala, tokenRdd is applied to inferRowType and then combined by mergeRowTypes.
If a column is sparse, its type will be marked NullType in several partitions.
If once two partitions containing the NullType are passed to mergeRowTypes, it will be promoted to StringType, and no way back.
possible solution
    val rootTypes: Array[DataType] = tokenRdd.aggregate(startType)(inferRowType, mergeRowTypes)
    rootTypes.transform{
      case _: NullType => StringType
      case other => other
    }

  private[csv] def mergeRowTypes(
      first: Array[DataType],
      second: Array[DataType]): Array[DataType] = {
    first.zipAll(second, NullType, NullType).map { case ((a, b)) =>
        findTightestCommonType(a, b).getOrElse(NullType)
    }
  }

This solution delays the transformation from NullType to StringType to avoid promoting the type to StringType accidentally during the combination of partitions for the sparse columns.

Thanks @ImNotMyself for filing this. Would you like to submit your change as a pull request with a test?


Added missing var definition

Fix for https://github.com/xdan/datetimepicker/pull/457
query.datetimepicker.js:1876 Uncaught ReferenceError: throttle is not defined

How to solve the problem is that the throttle is not defined?


Example for reverse proxy

When using asp.net core with a reverse proxy and path prefixing (like Traefik) you need to update the config to look like this:
app.UseSwagger(c =>
{
	c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.BasePath = "/prefix");
});
app.UseSwaggerUI(c =>
{
	// no forward / to use relative path
	c.SwaggerEndpoint("v1/swagger.json", "My API V1");
});

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 14fce65f-1337-58cb-2193-8d8e0e62792d
Version Independent ID: 59222460-a971-e76e-4fe9-23d4d7d768ee
Content: Get started with Swashbuckle and ASP.NET Core
Content Source: aspnetcore/tutorials/getting-started-with-swashbuckle.md
Product: aspnet-core
GitHub Login: @zuckerthoben
Microsoft Alias: scaddie

Doing this will produce a working SwaggerUI, but the link to the swagger.json file will be broken. Changing the swagger endpoint to "../prefix/v1/swagger.json" fixes it.

pregress example worked for me.

Moved to #16195


Manually adjust armor values for creatures

I noticed that the armor value on creature sheets always displays "0", even when adding armour items to them. Would be nice if you could manually change the armor values instead of having to add the armor when rolling for damage taken. Maybe there is a reason for the way it is now, but it's just a suggestion.

I've tested it and it's working as intended. Armors need to be added to a creature or any actors and the equipped button needs to be clicked. The Armour value is a calculated value based on all equipped items with an armor value.

Alright. I must've forgotten to equip the armour then. However, it feels a bit weird to add physical armour to things that are not humanoids. I'm not a Foundry expert, but it should be possible to create an armour asset i.e. "thick hide" and add it to a beast or something?

Yes, creature in MB have armor like "Thick hide A1". You can create and assign items to actors using the "add item" button on their sheet, or with the "create item" button in the items tab of foundry sidebar if you want to reused them.


TypeError  unsupported operand type(s) for +: 'frozenset' and 'list'

Is there an existing issue for this?

[X] I have searched the existing Issues

Current Behavior

TypeError
       at /admin/blog/blogpost/add/
unsupported operand type(s) for +: 'frozenset' and 'list'

Request Method:
POST

http://unixhideout.solutions:8000/admin/blog/blogpost/add/

4.2.1

TypeError

unsupported operand type(s) for +: 'frozenset' and 'list'

/home/mike/mezzanine/lib/python3.11/site-packages/mezzanine/utils/html.py, line 113, in escape

django.contrib.admin.options.add_view

/home/mike/mezzanine/bin/python

3.11.3

['/home/mike/mezzanine/mezzanine_project',  '/usr/lib/python311.zip',  '/usr/lib/python3.11',  '/usr/lib/python3.11/lib-dynload',  '/home/mike/mezzanine/lib/python3.11/site-packages']

Mon, 29 May 2023 03:14:08 +0000

Expected Behavior
It should post my content. This is a default install. Im learning, but i dont think ive done anything wrong (yet.) As soon as i go add a page or content i get the above error. Thanks for any help.
Steps To Reproduce
create a page or blog post
Environment
- Operating System:
- Python version:
- Django version:
- Database engine and version:
- Mezzanine version:

Anything else?
No response

I see now that its old code that I am using (pip install mezzanine) I know this because the home page links are all broken and i see you just commited a fix for that a few months ago. where are the instructions to install this using git clone yourrepo as the code?

Duplicate of https://github.com/stephenmcd/mezzanine/issues/2054
The workaround is to set bleach<6 in your requirements.txt
The pull request https://github.com/stephenmcd/mezzanine/pull/2059 has not yet been merged, but you could always fork the repo and apply it yourself if you really want to use bleach 6.0

Thank you so much I am excited there is a fix and i will have a site soon. But can you be more specific and explain what I now need to do like im ten?

specifically, I am trying to figure it out on my own, but where is requirements.txt, and what command do i have to run to update (downgrade) the package bleach?

explain what I now need to do like im ten?

Likely the fastest/easiest solution for you would be to run pip install "Bleach<6".
The above advice is predicated on several assumptions about how you have things set up and how you have installed Mezzanine. If you are using a virtual environment, type which pip to be sure you are running the pip command associated with said environment.
Like everything in Python/Django/Mezzanine:

There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
.

Thanks a lot my friend for your work contributions and help. I should figure it out now.


Create edu.txt

@ValidateDev I am sorry, but I see no point to add this domain to the repository because there is no mail server capable to receive messages for this domain:
$ host edu.skolamoa.se
Host edu.skolamoa.se not found: 3(NXDOMAIN)
$ host -t mx edu.skolamoa.se
Host edu.skolamoa.se not found: 3(NXDOMAIN)

I close this request without merging. Please reopen and update if you actually wish to add another domain or I am mistaken.


[SPARK-6568] spark-shell.cmd --jars option does not accept the jar that has space in its path

escape spaces in the arguments.

Test build #29664 has started for   PR 5347 at commit 9180aaf.

This PR requires #5227 merged. (https://issues.apache.org/jira/browse/SPARK-6435)

Test build #29664 has finished for   PR 5347 at commit 9180aaf.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.
This patch does not change any dependencies.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/29664/
Test FAILed.

Sorry that I accidentally merged this PR instead of another one. I reverted the commit. So please reopen this PR and continue the discussion.

OK, but is it available to reopen the merged pull request? I can't find the reopen button.
If we can't reopen it, I'll send another PR.

New version https://github.com/apache/spark/pull/5447 is sent.


Add a 'PIHOLE_ROOT' variable for an easier configuration

Hi there yubiuser!
For an easier configuration I added this PIHOLE_ROOT variable some time ago. Maybe it is worth to add to the script?
Thank you for this cool tool,
Greg

Thanks for your submission. I was actually thinking about doing something similar, but was always to lazy ;-)

Thanks for your submission. I was actually thinking about doing something similar, but was always to lazy ;-)

If you have something in mind - please write to the issues or whatever you prefer =D
I'd like to contribute but I'm not sure which way you want the things to go.
Have a nice day!

I'm not sure which way you want the things to go

I also don't know. The tool involved organically - started as something I made for myself and later decided to publish. For me it already fulfills all my needs, everything more is just fun :-)
I'm currently working on CNAME integration.
You could pick up one of the following things if you like:

Further improve speed of the database handling (not sure if improvement is possible, large database handling on slow cpus does take time). The slow steps are

Select all domains from pihole-ftl.db that that are also found in gravity.db
Get the total number of blocked domains from pihole-ftl.db
Get the total number of hits from pihole-ftl.db

format sql output with awk (adjust width of columns)


IE problem

Hello,
I am using vue-form and I am having problems with IE. It's working as expected on Chrome, Safari and Firefox.

I already have the <!DOCTYPE html> and <meta http-equiv="X-UA-Compatible" content="IE=edge"> on my HTML file, I tried to add a querySelectorAll Polyfill but the problem wasn't fixed.
Do you have any suggestions?

What version of Vue, vue-form and IE?
Does this work for you?
https://github.com/fergaldoyle/vue-form/blob/master/example/bootstrap.html

@fergaldoyle I updated Vue to 2.3.3 and vue-form to 4.1.1 and the problem was fixed. Thanks. 👍
Just for reference, I was using Vue 2.2.4 and vue-form 4.0.1 on IE11.


Equivalent objects with NaN values are treated as not equal

Node version: 15.14.0
deep-equal version: 2.0.5
Test:
❯ node
Welcome to Node.js v15.14.0.
Type ".help" for more information.
> const deepEqual = require('deep-equal');
undefined
> deepEqual({ a: 123, b: NaN }, { a: 123, b: NaN })
false
>

I was expecting deep-equal to return true.
Node's assert.deepEqual says the above objects are equal:
> const assert = require('assert');
undefined
> assert.deepEqual({ a: 123, b: NaN }, { a: 123, b: NaN })
undefined

And this NaN unit test seems to assert that it returns true (?)
Is returning false the expected behavior?

It depends on which node version you're checking. In node < 14, that assert example throws.
It would be a breaking change for deep-equal to make the same change; I noted this in 93679546.
In other words, in v3, this will change, but for now it's stuck with the node < 14 semantics.

@ljharb Ah, ok. Thanks!
Enabling the strict option makes it work like Node 14's assert.deepEqual for NaN values, so I'll just run it with that option.

Right, it’s only loose equality where this applies.


mutt: avoid host contamination when looking for maildir

The configure script will look in hard coded locations for the
maildir, all of which are locations on the host. Rather then allow
this to happen we will pass the expected maildir.
This also fixes a build issue if none of the hardcoded paths exist on
the builder. Preventing the build error:
configure: error: "Could not determine where new mail is stored."

Signed-off-by: Mark Asselstine<EMAIL_ADDRESS>

Added a second commit which puts us inline with the new location of this repo.


Update Installation Instructions to Archive Approach

Currently, when Tethys Platform is installed, it uses Git to pull the latest version on the Master branch. In this task, we'll change the installation procedure to instead download an archive from Git and unpack it to the appropriate location. This will allow us to control the versions of software better and the user won't have the git repository installed on their system.

Here is a command that will download and untar into the correct location automatically:
wget https://github.com/CI-WATER/tethys/archive/1.1.0.tar.gz -O - | tar -zx -C /usr/lib/tethys/src --strip-components 1

Add a Tip after the repository has been pulled that instructs how to pull different versions.


Checking which View is active

Hi, in samples, there is DetailActivity which hosts both ProfileView and ProductView, so how to check which one is active and visible ?

Both are loaded as a child of the placeholder, first ProfileView using ProfileRoute and when user clicked nextButton, loads the route: ProductViewRoute to put ProductView as a child of placeholder; in all cases is it required that the placeholder extends any ViewGroup

So back to the question, do we check which one is visible? like checking if placeholder contains child ProductView etc .. ?

You can use the sdk for this, something like: viewGroup.getChildAt(..) instanceOf SomeView


CapacitorSQLPlugin: Protocol message contained in invalid tag (zero) #363

Hi,
This problem occurs when I run the app on a physical device (Android 12).
Searching in the web I found someone with the same problem.
Note: I solved this by setting the property " android:allowBackup="false"" in AndroidManifest.xml
To Reproduce
here is the configuration file of capacitor:
export const config: CapacitorConfig = {   appId: 'test.sqlite'   appName: 'sqlite',   webDir: 'www',   bundledWebRuntime: true,   plugins: {     CapacitorSQLite: {       androidIsEncryption: true,     },   }, };
Additional context
So if in the configurations capacitor androidIsEncryption has true value,
when the application is built the AndroidManifest is generated with the property "android:allowBackup="true" by default,
this configuration cause the error reported, to work around I had to set the android:allowBackup="false" property.

@mannysangra look at the Android Quirks in the last release of the plugin. You will see what you need to do. If this does not solve the issue tell me

Yes resolved


After updating kotlin version to 1.8.0 project doesn't compile

After updating the Kotlin version to 1.8.0, the project doesn't compile
Description
RNTwilioVerifyModule  'when' expression must be exhaustive
Steps to Reproduce

Update the Kotlin version in the project
Compile the project

Expected Behavior
You need to add an else statement
info: https://stackoverflow.com/questions/72379996/how-to-fix-non-exhaustive-when-statements-on-sealed-class-interface-in-kotli
Versions

buildToolsVersion = "31.0.0"
minSdkVersion = 24
compileSdkVersion = 33
targetSdkVersion = 33
kotlin_version = "1.8.0"
React native version 0.71

@redbluenat A fix for this was released in the 0.4.0 version

@redbluenat was this confirmed to be working? We have the same issue @yafuquen
RN 0.70
        supportLibVersion = "33.0.0"
        buildToolsVersion = "33.0.0"
        minSdkVersion = 23
        compileSdkVersion = 33
        targetSdkVersion = 33
        kotlinVersion = '1.8.0'

package: "@twilio/twilio-verify-for-react-native": "https://github.com/twilio/twilio-verify-for-react-native.git",
error:

e: file:///Users/../node_modules/@twilio/twilio-verify-for-react-native/android/src/main/java/com/twilio/verify/reactnative/RNTwilioVerifyModule.kt:90:5 'when' expression must be exhaustive, add necessary 'null' branch or 'else' branch instead
e: file:///Users/../node_modules/@twilio/twilio-verify-for-react-native/android/src/main/java/com/twilio/verify/reactnative/RNTwilioVerifyModule.kt:141:5 'when' expression must be exhaustive, add necessary 'null' branch or 'else' branch instead

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':twilio_twilio-verify-for-react-native:compileDebugKotlin'.

@kg-currenxie You can check the else branch added to the reported when with issues:
https://github.com/twilio/twilio-verify-for-react-native/blob/main/android/src/main/java/com/twilio/verify/reactnative/RNTwilioVerifyModule.kt#L90
https://github.com/twilio/twilio-verify-for-react-native/blob/main/android/src/main/java/com/twilio/verify/reactnative/RNTwilioVerifyModule.kt#L141
Could you please check you are using the 0.4.0 version?

@yafuquen works now!

"@twilio/twilio-verify-for-react-native": "https://github.com/twilio/twilio-verify-for-react-native.git"

i thought this would always update to the latest, but it didn't 😓 my bad, it was locked to 0.3.0


Need help to preprocess wikisql dataset to SemQL format?

HI ,
I am trying to convert wikisql dataset to SemQL format to test IRNET on other data sets. And test other models on the SEMQL representation of nl and sql query to justify if intermediate format can actually help.
Has anyone tried converting other datasets to SEMQL format to test IRNet on other datasets?
If not, can the authors please suggest how can i do so apart from manually mapping the json differences and try to convert to semql ?
Any help is appreciated.
Thanks and Best Regards
Anshu

Please refer this https://github.com/taoyds/spider/blob/master/preprocess/parse_sql_one.py .
Follow the instruction mentioned their.You get idea how to do this.

HI @jaydeepb-ddit , Thanks. But my question is more related to semantics part(semQL) that gets generated after preprocessing the queries. For example, in spider after preprocessing to semql, we get a kew value pair of type :
"names": ["*", "department id", "name", "creation", "ranking", "budget in billions", "num employees", "head id", "name", "born state", "age", "department id", "head id", "temporary acting"]
since in wikisql, the column name is not meaningful, what do i identify as the names field for a corresponding wikisql query? Some fields are meaningful but others are not so much like names :

HI @jaydeepb-ddit , Thanks. But my question is more related to semantics part(semQL) that gets generated after preprocessing the queries. For example, in spider after preprocessing to semql, we get a kew value pair of type :
"names": ["*", "department id", "name", "creation", "ranking", "budget in billions", "num employees", "head id", "name", "born state", "age", "department id", "head id", "temporary acting"]
since in wikisql, the column name is not meaningful, what do i identify as the names field for a corresponding wikisql query? Some fields are meaningful but others are not so much like names :

The empty fields are the onse which are present and common for both wikisql and spider

Query  for wiki sql and spider -
wikisql -tokenized_train.jsonl
json-----------
{"phase":1,"question":"Tell me what the notes are for South Australia ","sql":{"sel":5,"conds":[[3,0,"SOUTH AUSTRALIA"]],"agg":0},"table_id":"1-1000181-1","tokenized_query":["SELECT","notes","FROM","table_","WHERE","current","slogan","EQL","south","australia"],"query":"SELECT notes FROM table_ WHERE current slogan EQL south australia","tokenized_question":["tell","me","what","the","notes","are","for","south","australia"]}
tables.jsonl------------
{"caption":null,"header":["State/territory","Text/background colour","Format","Current slogan","Current series","Notes"],"id":"1-1000181-1","name":"table_1000181_1","page_id":null,"page_title":null,"rows":[["Australian Capital Territory","blue/white","Yaa\u00b7nna","ACT \u00b7 CELEBRATION OF A CENTURY 2013","YIL\u00b700A","Slogan screenprinted on plate"],["New South Wales","black/yellow","aa\u00b7nn\u00b7aa","NEW SOUTH WALES","BX\u00b799\u00b7HI","No slogan on current series"],["New South Wales","black/white","aaa\u00b7nna","NSW","CPX\u00b712A","Optional white slimline series"],["Northern Territory","ochre/white","Ca\u00b7nn\u00b7aa","NT \u00b7 OUTBACK AUSTRALIA","CB\u00b706\u00b7ZZ","New series began in June 2011"],["Queensland","maroon/white","nnn\u00b7aaa","QUEENSLAND \u00b7 SUNSHINE STATE","999\u00b7TLG","Slogan embossed on plate"],["South Australia","black/white","Snnn\u00b7aaa","SOUTH AUSTRALIA","S000\u00b7AZD","No slogan on current series"],["Victoria","blue/white","aaa\u00b7nnn","VICTORIA - THE PLACE TO BE","ZZZ\u00b7562","Current series will be exhausted this year"]],"section_title":null,"types":["text","text","text","text","text","text"],"tokenized_header":[["state/territory"],["text/background","colour"],["format"],["current","slogan"],["current","series"],["notes"]]}
Missing fields in wikisql : select,col_set, db_id , names, keys, table_names : single table id, sql (fields are different)
spider initial train_spider_processed -------------
{"db_id": "department_management", "query": "SELECT count() FROM head WHERE age  >  56", "query_toks": ["SELECT", "count", "(", "", ")", "FROM", "head", "WHERE", "age", ">", "56"], "query_toks_no_value": ["select", "count", "(", "", ")", "from", "head", "where", "age", ">", "value"], "question": "How many heads of the departments are older than 56 ?", "question_toks": ["how", "many", "head", "of", "department", "are", "older", "than", "56", "?"], "sql": {"except": null, "from": {"conds": [], "table_units": [["table_unit", 1]]}, "groupBy": [], "having": [], "intersect": null, "limit": null, "orderBy": [], "select": [false, [[3, [0, [0, 0, false], null]]]], "union": null, "where": [[false, 3, [0, [0, 10, false], null], 56.0, null]]}, "names": ["", "department id", "name", "creation", "ranking", "budget in billions", "num employees", "head id", "name", "born state", "age", "department id", "head id", "temporary acting"], "table_names": ["department", "head", "management"], "col_set": ["*", "department id", "name", "creation", "ranking", "budget in billions", "num employees", "head id", "born state", "age", "temporary acting"], "col_table": [-1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2], "keys": {"12": 7, "7": 7, "11": 11, "1": 1}, "origin_question_toks": ["How", "many", "heads", "of", "the", "departments", "are", "older", "than", "56", "?"], "question_arg": [["how"], ["many"], ["head"], ["of"], ["department"], ["are"], ["older"], ["than"], ["56"], ["?"]], "question_arg_type": [["NONE"], ["NONE"], ["table"], ["NONE"], ["table"], ["NONE"], ["MORE"], ["NONE"], ["value"], ["NONE"]], "nltk_pos": [["how", "WRB"], ["many", "JJ"], ["head", "NN"], ["of", "IN"], ["department", "NN"], ["are", "VBP"], ["older", "JJR"], ["than", "IN"], ["56", "CD"], ["?", "."]]}


updates(static templates): update guidelines

Description
update static template guidelines. move images to a new directory
Why
add new templates
Issue
NA
Checklist
Please delete options that are not relevant.

[x] I have followed the contributing guidelines
[x] I have performed a self-review of my own code
[x] I have successfully tested my changes locally

@manojava-gk thanks! with my comment here I meant to establish the static folder under the docs folder on root level so /docs. Could please adjust the PR accordingly?
Out of curiosity, why did close the PR #169 and open this new one?

The moment someone commits in the upstream, my local struggles to sync(no push no pull). I'm not sure about the reason though, I keep on create new PRs whenever there is a commit available in the upstream.

@manojava-gk  can we get a bit more specific in the section "#### New Page creation" I wonder if a new developer would now really know what to do. Does it maybe make sense to refer to folders or files where changes need to get applied? What do you think?


WIP towards upgrading S3 orb too [as well as caching more deps]

Doesn't work yet. Not sure why the orb claims auth is required but circleci config validate says
it's unexpected

I don't think this is worth keeping. I didn't spend time working out what the rest of the orb update entails, and lots of the other overlapping config has changed since.


Add docker to list of ignored binaries

and one more :)

Thanks, Viliam!

:rocket: This pull request is included in v2.40.0. See Release 2.40.0 for release notes.


Update DG

Codecov Report

Merging #167 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #167   +/-   ##
=========================================
  Coverage     62.89%   62.89%
  Complexity      449      449
=========================================
  Files            89       89
  Lines          1512     1512
  Branches        143      143
=========================================
  Hits            951      951
  Misses          512      512
  Partials         49       49

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1d58d72...db3af17. Read the comment docs.


[Autocomplete] Selection value by Shift + Home/End

In autocomplete with the opened list, when you try to select a value by shift + home or shift + end, the handler selects an item in the list but should select a value in the input.
https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html
According to WAI-ARIA spec, the home/end keys should move focus to the start/end of the input area, which implies shift + home/end should select a value inside of the input.
With closed List everything’s fine.
A similar issue is https://github.com/mui-org/material-ui/issues/15597, but there is about tabs between composite widgets.

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When you press shift + home/end the focus jumps inside of the list.
Expected Behavior 🤔
When you press shift + home/end you focus a value inside of input.
Steps to Reproduce 🕹
https://codesandbox.io/s/autocomplete-wai-aria-selection-uyuif
Steps:

Open the list by the arrow button
Write The
Press Shift + End

Context 🔦
By writing a value user wants to select whole value to clear or copy.
Your Environment 🌎

Tech
Version

Material-UI
v4.9.14

OS
Windows

Keyboard
Extended Keyboard

Duplicate of #19500

handleHomeEndKeys={false} but we only encourage it for search input like type UX.


Hi

This code was almost outdated and i fixed most of it can i be a contributor?

@PHV08 hello, of course you can. feel free to open a pull request including with your changes.

I made a lot of modifications/changes i cannot just create pull request. Invite me to your server so that i can show the changes

done


Bug Link on pkgdown site

I missed last week's meeting (and unfortunately will miss this week's meet as well) and perhaps it was already discussed.
The new bug link on the site is very cute! But there is a link right below it for the same thing. In the spirit on minimalist design, should we remove the second link?

If no qualms about this request from anyone in @pharmaverse/admiral , @sophie-gem could you take this please?

I would not remove the link.
If we have both the text link and the icon, it is easier to find for the users.

We should keep the bug.


Update _index.md

Updated links

Summary

Ticket Link

Hello @Sayanta66,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Thank you for your PR! These changes have been submitted in https://github.com/mattermost/mattermost-developer-documentation/pull/878/files and so I am closing this PR.


what does lines.length > self.stat.size means ?

In src/index.js，I found this section in function do_while_loop:
if (lines.length > self.stat.size) {
	lines = lines.substring(lines.length - self.stat.size);
}

In my view, the file's size would never less than the line's length, when is this condition  established?

That is a weird section, and I wish I had added a comment when I added it. I remember hitting this when first creating the library but I am not sure if it is still a valid case. Ill try to add a test for it later

Got it

Hello @yeongjet, Thank you for pointing this out. It turns out this case only applied in a very early version of the library when it had a bug that would go  into negative indexes. I will remove the check in a future version.


enso-project is not opening properly

Discord username
No response
What type of issue is this?
Permanent – Occurring repeatably
Is this issue blocking you from using Enso?

[ ] Yes, I can't use Enso because of this issue.

Is this a regression?

[X] Yes, previous version of Enso did not have this issue.

What issue are you facing?
When trying to open .enso-project the project is unpacked to ~/enso directory, appears on the project list but doesn't run automatically. Happens on MacOS and Windows.
Expected behaviour
The project should be run automatically.
How we can reproduce it?
No response
Screenshots or screencasts
No response
Logs
No response
Enso Version
nightly 05.07
Browser or standalone distribution
Standalone distribution (local project)
Browser Version or standalone distribution
standalone
Operating System
MacOS
Operating System Version
No response
Hardware you are using
No response

@sylwiabr do you have a sample .enso-project you tried?

@mwu-tow I don't see mentioning of opening .enso-projects in PR description https://github.com/enso-org/enso/pull/6077, did it even work before?

@vitvakatu

@mwu-tow I don't see mentioning of opening .enso-projects in PR description https://github.com/enso-org/enso/pull/6077, did it even work before?

IIRC it should have been working.
I can investigate/fix this.


Verify contents of the file attributes dictionary

NSString values replaced with String values
API return type changed to [String : Any]
NSFileOwnerAccountName and NSFileGroupOwnerAccountID values are not verified since they are optional.
NSFileImmutable and NSFileAppendOnly values are not verified since they are used on iOS and OS X

Thanks!

I will create a fixing PR.I've got both El Capitan and Linux.

I've pushed a PR #58 with a fix and comments for reference.


Datalab: remove --allow-unauthenticated

Removed --allow-unauthenticated (workaround for expired gpg key), because the expired gpg key problem is fixed.

@googlebot I signed it!

/gcbrun


How do I change ports?

Hi. Thanks for your work. I would want something like #6. Run it locally and use my own global reverse-proxy to make it available from the outside. I would also like to change ports in the configuration since I have other service on the server that uses the required ports.
Any tips would be appreciated. I'm a small bit more advanced than a newbie.

You can use the ports option of docker compose.
First, run the ./configure-instance.sh script as documented at docs.piped.video.
Then, add the following to pipedfrontend in the docker-compose.yml
ports:
    - "<IP_ADDRESS>:8888:8080"

so that it looks like
pipedfrontend:
  image: ...
  ports:
    - "<IP_ADDRESS>:8888:80"
piped-proxy:
...

where 8888 is the port that you want to use for the frontend in this example.
For the pipedbackend, you can do the same with
ports:
    - "<IP_ADDRESS>:8888:8080"

and for the piped-proxy with
For the pipedbackend, you can do the same with
ports:
    - "<IP_ADDRESS>:8888:8080"

(again, replace 8888 with the port that you want to use).


Issue285enh semver

fixes #285 with additional pre-release example.
r? @budziq @ludwigpacifici
This is not compiling.  I am stuck on the separate function.  Do you see what might be the issue?  When I run the code in the block comment, it works properly.

Hello @anna-liao
I am a bit confused. Can you tell me what's the relation between this PR and  PR #371? I was expecting to do everything in #371. Let me know if I missed something.

@budziq wow, thanks for the tips for fixing my code!  There's no way I'd figure that out on my own.  Ok, I'm closing this PR and moving back to the original PR.


Very minor README issue

This is a very minor issue. I just wanted to point out that the README says:
To run the pretrained model on the provided elephant.jpg image...
But elephant.jpg isn't actually included anywhere in the repo.
Thanks!

Sorry about that - should be fixed now.

I believe that this should be closed.

Thanks!


WCAG issues with our table view of the repeating group

Description of the bug
This issue is about how the repeating group behaves in the version described here: https://docs.altinn.studio/app/development/ux/fields/grouping/repeating/table/#showing-components-directly-in-the-table

When you use the repeating group as a table. (The version where the user can fill out fields within the table) there are no indicator telling the user what fields are required

When there is a an error on one of the rows the whole background of the row is colored red. This is used normaly to indicate that there are an error inside the row on a normal repeating group, but it does not work well in this version. We should remove the background color when is in this version. The wcag issue is that the contrast is low on the error message.

Example:

Steps To Reproduce

Go to an app with a repeating group in table mode that contains required fields
Try to go the page beyond the group
Look at the errors in the table and try to find the indicator telling the user that it is required

Additional Information
No response

Related grid issue: https://altinn.slack.com/archives/C02FK32KVKJ/p1701164474563379

Looks like this is solved?

 Looks like this is solved?

I get alerts for this as i made the issue back in the days 👴 And i cant help, get involvled!
I would double check the contrast on delete button if you havent already. I find it a little hard to read. I remember we talked about removing the background color all together as it is a little excessive compared to other error messages. Would also mitigate contrast issues.

If we are strictly talking about repeating groups with components directly in the rows then I tried fixing it a little while ago, and looks like this now:

However, I may have just found a bug with it, it seems to highlight the background again if there are errors on the repeating group component itself (in this case, minCount), this should not cause rows to get highlighted...


Allow multiline for regex.  Trigger is regex.  Add description.

All regex matching uses DOTALL and IGNORECASE.
The trigger phrase has been updated to be a regex.  If it had special characters, they have been quoted.
Add the description to the cause and env variables

Fixes #151 and #105

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Multiple versions of the doc

Hello,
If I'm correct, there is only 1 version of the documentation on Read the Docs: latest which usually corresponds to the content of the master branch on GitHub at the time of compilation./
I think it would be nice to be able to access several versions of the documentation (1 for each release of interproscan). For instance, as we install interproscan on our machines, so we sometimes need to access the documentation of previous versions.
This is relatively easy to do with Read the Docs (IIRC).

yes,there is currently only 1 version.  we will workout to have multiple versions

yes,there is currently only 1 version.  we will workout to have multiple versions

Good news. IIRC, this page should help you.

Good news. IIRC, this page should help you.

this is now implemented

Good news, thanks !


docker-compose-CeleryExecutor not loading plugins from ./plugins

NM. I had confused plugins and DAGS.

NM.


Add a feature request template

Since the project is in its initial development phase, it would be good to have a feature-request template while proposing any new or additional features.
I am working on this and will soon generate a PR for the same

you should get assigned first!

you should get assigned first!

Sorry! I'll take care of it from next time.


File and highlight switch for cc command

This pull requests adds the following functionalities:

Toggle syntax highlighting
Toggle file output

These are implemented using a switch, namely -f to toggle the file output, and -h to toggle highlighting. When given, they will turn on their respective effect. A demonstration with my selfhosted instance is attached as screenshot.

Thanks to @Pedro-Pessoa with cleaning up my messy beginner code and as usual, additional feedback is appreciated!

👍

Im not the biggest fan of misusing the .go extension but what can you do.


MaskAttentionLoss in DiceCEEdgeLoss doesn't handle images without any edges

Describe the bug
Training models that use DiceCEEdgeLoss results in NaN loss on images that only contain one semantic class. The edge_target becomes a tensor filled with zeros because there are no edges in the image:
https://github.com/Deci-AI/super-gradients/blob/aa2745450e4c2617847874eb7f54bcab4ebb8f10/src/super_gradients/training/losses/dice_ce_edge_loss.py#L101-L103
Then, when computing the MaskAttentionLoss, mask_loss is a tensor filled with zeros, gets reassigned to an empty tensor, and, finally, computing the mean of an empty tensor results in NaN.
https://github.com/Deci-AI/super-gradients/blob/aa2745450e4c2617847874eb7f54bcab4ebb8f10/src/super_gradients/training/losses/mask_loss.py#L45-L47
To Reproduce
I've written a new test in tests/unit_tests/mask_loss_test.py that reproduces the problem.
def test_with_cross_entropy_loss_maskless(self):
    """
    Test case with mask filled with zeros, corresponding to a scenario without
    attention. It's expected that the mask doesn't contribute to the loss.

    This scenario may happen when using edge masks on an image without
    edges - there's only one semantic region in the whole image.

    Shapes: predict [BxCxHxW], target [BxHxW], mask [Bx1xHxW]
    """
    predict = torch.randn(self.batch, self.num_classes, self.img_size, self.img_size)
    target = self._get_default_target_tensor()
    # Create a mask filled with zeros to disable the attention component
    mask = self._get_default_mask_tensor() * 0.0

    loss_weigths = [1.0, 0.5]
    ce_crit = nn.CrossEntropyLoss(reduction="none")
    mask_ce_crit = MaskAttentionLoss(criterion=ce_crit, loss_weights=loss_weigths)

    # expected result - no contribution from mask
    ce_loss = ce_crit(predict, target)
    expected_loss = ce_loss.mean() * loss_weigths[0]

    # mask ce loss result
    loss = mask_ce_crit(predict, target, mask)

    self._assertion_torch_values(expected_loss, loss)

Running this test results in:
AssertionError: False is not true : Unequal torch tensors: excepted: 1.7192925214767456, found: nan

Expected behavior
A mask filed with zeros should "disable" attention. Thus, the mask should not contribute to the loss.
Environment:

3.0.7

Additional context
Can be fixed by checking if mask_loss is NaN and setting it to 0 instead. Like this:
mask_loss = mask_loss if not mask_loss.isnan() else mask_loss.new_tensor(0.0)

@davidtvs thanks for reporting this bug, great catch!
Thanks for setting up the unit test for this use case, one thing I would comment on, is instead of checking whether the reduced mask_loss is nan, which can results from other unexpected reasons, it's better IMO to check before reduction whether the  tensor is an empty tensor which indicate directly that the mask is empty.
mask_loss = mask_loss[mask == 1]  # consider only mask samples for mask loss computing

        if mask_loss.numel() == 0:
            mask_loss = torch.tensor(0.)

We highly encourage new contributors, feel free to open a PR if you find the time to do so. If not we'll push the fix ASAP.

This issue is fixed in master branch and will be available in the next version release. https://github.com/Deci-AI/super-gradients/pull/982
Thanks again @davidtvs for reporting the issue.


Better error handling when authentication fails

Not all failures to authenticate are "wrong username or password" errors. See e.g. #1990
If the server sends an alert text (IMAP) display that to the user.

For 'too many simultaneous connections' it would be nice to list what connections are in use.


mdbm_check core dumps with a fragment of mdbm

If I pass a fragment of mdbm to mdbm_check, then it core dumps.
How to reproduce the issue:
# 0. set LD_LIBRARY_PATH
$ export LD_LIBRARY_PATH=$PWD/src/lib/object

# 1. create test.mdbm
$ src/tools/object/mdbm_create test.mdbm

# 2. save its first 1000bytes to head.mdbm
$ head -c 1000 test.mdbm  > head.mdbm

# 3. execute mdbm_check with head.mdbm
$ src/tools/object/mdbm_check head.mdbm
zsh: bus error (core dumped)  src/tools/object/mdbm_check head.mdbm

gdb
$ gdb src/tools/object/mdbm_check core
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from src/tools/object/mdbm_check...done.
[New LWP 7790]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `src/tools/object/mdbm_check head.mdbm'.
Program terminated with signal SIGBUS, Bus error.
#0  check_db_chunks (verbose=1, db=0x19f4060) at mdbm.c:758
758	        if (MDBM_PAGE_PTR(db,pg+page->p_num_pages)->p_prev_num_pages != page->p_num_pages) {
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named 'libstdcxx'
(gdb) set pagination off
(gdb) bt full
#0  check_db_chunks (verbose=1, db=0x19f4060) at mdbm.c:758
        pg = 0
        cur_free = 0
        nerr = 0
        h = 0x7fcfd76ca010
        nchunks = 1
#1  check_db (db=db@entry=0x19f4060, level=level@entry=3, maxlevel=maxlevel@entry=10, verbose=verbose@entry=1) at mdbm.c:1212
        nerr = 0
#2  0x00007fcfd706e83c in mdbm_check (db=db@entry=0x19f4060, level=level@entry=3, verbose=verbose@entry=1) at mdbm.c:7353
No locals.
#3  0x000000000040114b in main (argc=<optimized out>, argv=<optimized out>) at mdbm_check.c:191
        db = 0x19f4060
        ret = 0
        opt = <optimized out>
        opt_version = <optimized out>
        opt_nonversion = 0
        opt_verify_version = 0
        pno = -1
        fn = 0x7ffdc5e3aa9f "head.mdbm"
        oflags = 131072
        verbose = 1
        dbcheck = 3
        lock = 1
        winsize = 0

I know head.mdbm is invalid, but I think mdbm_check should not core dump.

Hi Shoichi-
You're right, it shouldn't core dump. And this has been discussed a bit in the past.
However, there is a trade-off between speed/complexity/maintainability and safety.
MDBM was designed with raw speed in mind, so it uses lots of raw offsets and
pointers. Fixing the particular one you're hitting here is trivial, but there will be
lots of others if you truncate at a different place, or mess with the DB in other
ways.
If we add lots of boundary checking, then we slow down lots of MDBM operations.
Because this kind of corruption occurs very rarely in practice (assuming folks are
careful with the code that uses MDBM, e.g.: proper locking, unit-tests, and valgrind),
then this extra checking doesn't usually help much. It's primarily only an issue when
machines shutdown uncleanly (power failure, kernel panic, etc.).
Another alternative is to make custom versions of lots of MDBM internal functions,
just for mdbm_check, which perform the extra checking. However, we don't really want
to keep 2 versions of many functions (and macros), as they tend to drift and cause
long term maintenance problems. So, this probably involves conditional compilation,
and maybe a "debug" version of the library. A debug version could be useful for other
things.
Because this is a fairly extensive task with limited gains, someone else would have to
champion it. If you're interested, let me know, and we can figure out the best approach.
Thanks!
.timrc


update workflow badge

The metal engine is not supported on Linux. So the build will fail.
A target-specific dependency list in Cargo.toml is on the way: https://github.com/rust-lang/cargo/issues/1197


Topic title in unread posts list links directly to first unread post

Meaning?

for example, if I click on the topic title, it should go to the last page at the very bottom of the last post? Is that correct?

Yes, that's correct. I've seen this feature on some other forum software and liked it very much.

I make this for you ;)

the solution I proposed works in viewforum but not yet in search

No problem, take your time.


DNS01 challenge use the wrong zone through route53

What version of Traefik are you using (traefik version)?

Docker stack swarm:
version: "3"
services:
  traefik:
    image: cyrilpeponnet/traefik:latest
    deploy:
      update_config:
        parallelism: 1
        delay: 10s
      mode: global
      placement:
        constraints: [node.role == manager]
    environment:
      - "AWS_ACCESS_KEY_ID=BLA"
      - "AWS_SECRET_ACCESS_KEY=BLABLA"
      - "AWS_REGION=us-west-2"
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    networks:
      - backend
      - consul-net
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: |-
      -c /dev/null
      --web
      --consul
      --consul.endpoint=consul-cluster:8500
      --consul.watch=true
      --docker
      --docker.swarmmode
      --docker.domain=traefik
      --docker.watch
      --debug

  consul-cluster:
    image: consul:latest
    deploy:
      update_config:
        parallelism: 1
        delay: 10s
      mode: global
      placement:
        constraints: [node.role == manager]
    ports:
      - 8500:8500
    networks:
      - consul-net
    environment:
      - 'CONSUL_BIND_INTERFACE=eth2'
    command: agent -server -datacenter traefik -ui -retry-join=tasks.consul-cluster -retry-join=tasks.consul-cluster -bootstrap-expect=2 -client=<IP_ADDRESS>

volumes:
  consul-data:

networks:
  backend:
      driver: overlay
  consul-net:
      driver: overlay

toml config stored to kv with storeconfig
defaultEntryPoints = ["http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
      [[entryPoints.https.tls.certificates]]
      CertFile = """-----BEGIN CERTIFICATE-----
MIIF...buw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIHP...iW3Zt8=
-----END CERTIFICATE-----"""
      KeyFile = """-----BEGIN RSA PRIVATE KEY-----
MII...zob==
-----END RSA PRIVATE KEY-----"""

[consul]
  endpoint = "consul-cluster:8500"

[acme]
email =<EMAIL_ADDRESS>storage = "traefik/acme/account"
entryPoint = "https"
dnsProvider = "route53"
acmeLogging = true
OnHostRule = true
caServer = "https://acme-staging.api.letsencrypt.org/directory"

What did you do?
Spawned a container with a task like :
  webssl:
    image: nginx
    deploy:
      replicas: 1
      labels:
        - "traefik.frontend.rule=Host:testssl.subdomain.domain.tld"
        - "traefik.domain=subdomain.domain.tld"
        - "traefik.port=80"
        - "traefik.frontend.entryPoints=https"
    networks:
      - traefik_backend

networks:
  traefik_backend:
    external:
      name: proxy_backend

What did you expect to see?
Creation of TXT record to subdomain.domain.tld zone id under route53.
What did you see instead?
Creation of TXT record to domain.tld zone id under route53 (which is not allowed and not correct).
time="2017-02-24T21:49:42Z" level=debug msg="Loading ACME certificates [testssl.subdomain.domain.tld]..."
legolog: 2017/02/24 21:49:42 [INFO][testssl.subdomain.domain.tld] acme: Obtaining bundled SAN certificate
legolog: 2017/02/24 21:49:43 [INFO][testssl.subdomain.domain.tld] acme: Could not find solver for: tls-sni-01
legolog: 2017/02/24 21:49:43 [INFO][testssl.subdomain.domain.tld] acme: Could not find solver for: http-01
legolog: 2017/02/24 21:49:43 [INFO][testssl.subdomain.domain.tld] acme: Trying to solve DNS-01
time="2017-02-24T21:49:44Z" level=error msg="map[testssl.subdomain.domain.tld:Error presenting token: Failed to change Route 53 record set: AccessDenied: User: arn:aws:iam::012343919338:user/myuser is
not authorized to perform: route53:ChangeResourceRecordSets on resource: arn:aws:route53:::hostedzone/ZXXXXXXXXI9VJ\n\tstatus code: 403, request id: 276d8738-fadb-11e6-950b-93d0b3ec9d51]"
time="2017-02-24T21:49:44Z" level=error msg="Error getting ACME certificates [testssl.subdomain.domain.tld] : Cannot obtain certificates map[testssl.subdomain.domain.tld:Error presenting token: Failed to change
Route 53 record set: AccessDenied: User: arn:aws:iam::012343919338:user/myuser is not authorized to perform: route53:ChangeResourceRecordSets on resource: arn:aws:route53:::hostedzone/ZXXXXXXXXI9VJ\n\t
status code: 403, request id: 276d8738-fadb-11e6-950b-93d0b3ec9d51]+v"

Actually it may be a limitation from lego itself.

@CyrilPeponnet Did you open a issue on lego itself or what now? This is affecting us too, because we create subzones to delegate permissions.


Feature request: publish/unpublish date

Archetype is great, it has replaced the tedious work of creating new "pages" every time you wanted a data entry added.
However one of the percs with the "old" system was that the editor could easily set a start and stop publish date for temp campaigns.
Right now it's pretty easy to implement your own date fields and check those, however it would be nice if there was a UI hint, or even better if it was automatically enabled/disabled.
I guess a UI hint should be fairly easy if I write my own view that checks if current date is within a date span.

@seanhak What a fantastic idea. I love it.
@kgiszewski whatcha think? I'm up for implementing it - tho' a UI prototype should probably be the first thing on the list.

Sounds like a plan. I'm curious how the UI/implementation would look so let's start there.

Here's a suggestion. On second thought, the wording in the labels etc. should probably not be as much about "expiry" but more about "unpublishing".
I considered hiding the setting somewhere fancy... but the way I see it, support for fieldset expiry will be explicitly enabled in the archetype config when it's applicable. In other words - if it's enabled, it's supposed to be used actively by the content editors, so the best choice is probably to make it very visible.

Nice work @kjac !
I think start date is also pretty important. Let's say the client has a new product on a sunday, and wants to schedule a carousel item for sunday night.
I would also prefer to differentiate from other properties. maybe a fieldset or panel.
I don't have a big insight in to the inner workings, so alot of my suggestions might be unrealistic or very big hit on performance.
If we have a clock icon that toggles start/stop publish "mode"(fields), that could be used to to notify user that this item is pending, or unpublished, without opening each fieldset and check.
Or, if a fieldset has been unpublished(disabled) just return it to idle/normal state, ie.
set is disabled, and dates cleared. clock icon "normal state".

Let's see then... how about this?

Publish and unpublish dates at the bottom under the punctuated line which separates them from the rest of the fieldset properties.
Add a clock icon to the title bar when the fieldset is pending either publish or unpublish (current date/time is before publish or unpublish).
The fieldset is automatically disabled when the unpublish date is exceeded.
No matter the publish settings, the users can always explicitly disable the fieldset.

Looks good. I think this should be something that is turned off/on in the configuration per entire Archetype maybe. By default it is disabled.
Curious on the mechanism to publish/unpublish. Simply return on published fieldsets

I was originally editing this on my phone and accidentally closed it with half of a comment :(

@kgiszewski shouldn't you be enjoying yourself at uWest instead of slaving over PRs? :smile:
I agree on your thoughts. Specially that this feature should explicitly be turned on per Archetype configuration.
With regards to handling un/publishing, I think it'll be as simple as weeding out the fieldsets that should not be published at the time of rendering - exactly like we do with the disabled fieldsets. I'm gonna mull it over a bit, but maybe it would actually make sense to hook this feature into the disabled fieldsets feature, thus letting a fieldset appear as disabled from a code perspective if it's not yet published.
I'm gonna try to find some time tomorrow to prototype a little.

@kjac, conference is over, can't sleep but putting out other fires :) I'll let you do your thing here.

@kgiszewski OK... the prototype works quite well (backoffice only), but I've realized a few things making it.
First thing: Since the publishing implicitly affects the enabled state of a fieldset, we need to be able to distinguish between explicitly disabled fieldsets and fieldsets that have been disabled by their publish settings. I suggest letting the power-icon light up when the fieldset is explicitly disabled. This would also benefit Archetype configs without publishing. See screenshot below.
Second thing: The users need to be able to see which fieldsets have been or will be affected by their publish settings (i.e. not yet released, about to expire or already expired) - preferably at a glance. The best solution I've come up with is letting the clock icon be visible for all fieldsets regardless of their publish state, and make it light up when the fieldsets are affected by their publish settings. The screenshot below shows the different cases:

Case 1: The fieldset will expire in the future - the clock icon lights up
Case 2: The fieldset is explicitly disabled - the power icon lights up and the title is dimmed
Case 3: The fieldset is expired - the clock icon lights up and and the title is dimmed
Case 4: The fieldset has no publish settings configured - the clock icon is dimmed
Case 5: The fieldset is not yet released - the clock icon lights up and and the title is dimmed
Case 6: The fieldset is released and has no expiry - the clock icon is dimmed

Thoughts?

First off, great work! Your screenshot is super helpful and may need to go into the docs. My only concern is the large number of combinations that might make editors get confused.
I'm not suggesting I have a way to make things clearer, but allow me to spitball a bit.
Perhaps the clock icon could have subtle clues that indicate things such as having a release date or expiry date.
Where I'm going with this is if I have only 1 or 2 fieldsets configured, will I know at a glance what is configured without looking at the fieldset opened?
Maybe I will after using it for a bit.
I'm in Las Vegas for a few more days so I'll try to be more helpful next week.

Vegas, baby!
Have fun. There's no rush with this. We'll pick it up when you're back home
again.
On Mar 6, 2016 5:07 PM, "Kevin Giszewski"<EMAIL_ADDRESS>wrote:

First off, great work! Your screenshot is super helpful and may need to go
into the docs. My only concern is the large number of combinations that
might make editors get confused.
I'm not suggesting I have a way to make things clearer, but allow me to
spitball a bit.
Perhaps the clock icon could have subtle clues that indicate things such
as having a release date or expiry date.
Where I'm going with this is if I have only 1 or 2 fieldsets configured,
will I know at a glance what is configured without looking at the fieldset
opened?
Maybe I will after using it for a bit.
I'm in Las Vegas for a few more days so I'll try to be more helpful next
week.
—
Reply to this email directly or view it on GitHub
https://github.com/imulus/Archetype/issues/334#issuecomment-192921453.

@kjac Great work!
So here is my thoughts.
What if the clock icon replaces the normal enable/disable button?
It would implicate that the clock and on/off is the same, just with a timer.
And maybe more clear for user.
Also it would prevent weird cases such as the user enables a set that isn't
supposed to be enabled due to time.(?)
(Icon suggestions: http://uxrepo.com/static/icon-sets/google-material/svg/android-timer.svg, http://www.moulinex.ca/wp-content/uploads/2013/10/icon-power-timer.png)
I still believe a different UI for the date fields would make it clearer to the user that
these are: 1, optional. 2, these are not data entry, these are functional entries.
An inline toggle to show these fields may also emphasize that this is an option to enable a feature.
This is especially true if a field set already contains 1 or more "normal" date pickers. But might make it too complicated/confusing with too many "do's" for user.
Thanks again for taking your time looking in to this, this feature will be used a lot by us (and many others I think),
We are already using a poor mans version of this, with date fields and handling in template.

@seanhak good input.
We can't replace the power icon, that'd leave the editors without an option to explicitly disable the fieldset (since the power icon is the only way of doing so).
As for icons we're pretty much stuck with the icons offered by Umbraco - those available when creating new content types. There are a few clock/time icons there, I just picked the one that I liked the best :)
Personally I'm not a big fan of hiding things from the editors behind a toggle. But that's just me. The publish/unpublish date pickers could easily be put behind a "Fieldset settings" toggle in the bottom of the fieldset. Design suggestions are welcome.

Can we replace the power icon dynamically when a timer is set?
So if a date/time exists, either expiry or release, the power icon changes to a clock.
When it expires, the clock becomes the normal power button.
Still just spitballing.

Sure we can, but as I pointed out earlier, this will deprive the editors of
the possibility to disable the fieldsets explicitly when a timer is in
effect.
I'll post an updated screenshot of the prototype soon, I think the solution
may be as simple as to not show the clock icon as active when the timer is
in effect. I'll get back to you soon :-)
On Mar 10, 2016 5:33 PM, "Kevin Giszewski"<EMAIL_ADDRESS>wrote:

Can we replace the power icon dynamically when a timer is set?
So if a date/time exists, either expiry or release, the power icon changes
to a clock.
When it expires, the clock becomes the normal power button.
Still just spitballing.
—
Reply to this email directly or view it on GitHub
https://github.com/imulus/Archetype/issues/334#issuecomment-194939995.

Ok no worries. I'm pushing a release today so we have plenty of time to debate.

Aaaaaalright y'all might just have a point :)

Replacing the power icon with the clock icon makes sense, because now they have the same meaning - namely "this fieldset is disabled because of me".
For this to work, the archetype config might be required to have enabled both "publishing" and "disabling".

I've added an expandable "Settings" section per fieldset with a gray background to make it easier to distinguish the fieldset settings from the fieldset content.

Also notice that if a fieldset is both disabled and unpublished, only the power icon will be visible as the disabled state takes precedence.

Comments? Thoughts?

@kjac Looking real good.
Question (possibly already addressed earlier): Can we toggle on the the publishing bit? Meaning, you only get the publishing bits if you opt-in in the config.
You may have already answered this so apologies ahead of time.

No reason to apologize. Yes publishing (and all derived effects thereof) is
optional by configuration, default disabled.
I'll post a PR soon :-)
On Mar 21, 2016 7:57 PM, "Kevin Giszewski"<EMAIL_ADDRESS>wrote:

@kjac https://github.com/kjac Looking real good.
Question (possibly already addressed earlier): Can we toggle on the the
publishing bit? Meaning, you only get the publishing bits if you opt-in in
the config.
You may have already answered this so apologies ahead of time.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/imulus/Archetype/issues/334#issuecomment-199424742

Reviewing #340 soon regarding this.


Origin?

In my syslog server I see a header called "Origin". It seems to be the hostname normally when testing but when using SyslogNet this is blank. Which property is related to "Origin"? Thanks!

It is hostname, but you are probably using RFC5424 (which is the default) instead of RFC3164. try sending you messages using SyslogRfc3164MessageSerializer.


Any timeline on when the doc for Multi subscriptions (reuse existing subscriptions) & Multi subscriptions (creating new subscriptions with EA/MCA) be available?

Any timeline on when the doc for Multi subscriptions (reuse existing subscriptions) & Multi subscriptions (creating new subscriptions with EA/MCA) be available?
Link to doc

Good evening @arnaudlh
What would be required to finish up the documentation for pre-created multiple subscriptions? Currently we are using the TF Azure/caf-enterprise-scale/azurerm module as-is. We tried to get the generated text to work with multiple subscriptions, however was unable to. If you could provide guidance, I would be happy to give this PR a try.
Looking forward to your reply.


tpm2-tss is unable to access the tabrmd loader

Describe the bug
tpm2-tss is unable to resolve the tabrmd loader located in the tpm2-abrmd package throwing this error when TPM2TOOLS_TCTI=tabrmd:bus_name=com.intel.tss2.Tabrmd
ERROR:tcti:src/tss2-tcti/tctildr.c:416:Tss2_TctiLdr_Initialize_Ex() Failed to instantiate TCTI
ERROR: Could not load tcti, got: "tabrmd:bus_name=com.intel.tss2.Tabrmd"

Steps To Reproduce
Steps to reproduce the behavior:

Enable the abrmd daemon and set the tcti environment interface to tabrmd

{
  security.tpm2 = {
    enable = true;
    abrmd.enable = true;
    tctiEnvironment = {
      enable = true;
      interface = "tabrmd";
    };
  };
}

Use tool or package using the tpm2-tss library

Expected behavior
It resolves the loader dynamically and works.
Additional context
I have narrowed down the cause to this commit https://github.com/NixOS/nixpkgs/commit/eea5575bd364d6327f46e02d0301e62a68d3ca5a making the dynamic loader only resolve locally from the library output. Reverting this in an overlay seems to have fixed the issue, but I am unsure if this would cause regressions as I am unsure why the dynamic loading got patched in the first place.
Notify maintainers
@delroth @baloo
Metadata
mats@sauron ~/ $ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.13.7-zen1, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210707_02dd6bb`
 - channels(root): `"nixos-21.11pre303315.16105403bdd"`
 - channels(mats): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

I patched the tpm2-tss because when using tpm2 as a library, the modules would not be added up in the dlopen load path which would break modules loading.

This was a bit more tricky than I expected, while other python packages gets the dlopen library name patched with the exact path this is not possible in this case due to tpm2-tss doing the loading as far I understand.
Unless I remember wrong I think it might be possible to dlopen with the exact path in python before calling tpm2-tss init and ld might be able to resolve the already library loaded library, but I might remember wrong.
But this would also be undesirable since you cannot dynamically resolve loaders this way I assume.

Ha!
So the issue would be that tabmd tries to look up libtss2-tcti-tabrmd and this is provided by tpm2-abrmd. I completely missed that.


Fails with Images with more than 5MB with Dedicated Worker

magick-wasm version
0.0.28
Description
When trying to adjust the quality of any image with more than 4-5mb, it fails.
Output of Successful Image processing (below 4-5mb size)

Output of Failed Image processing (more than 4-5mb size)

here is very basic code from Dedicated Worker
wk.onmessage = async function(event){
    const response = await fetch(event.data.source);
    const buffer = await response.arrayBuffer();
    const data = new Uint8Array(buffer);
    entireMagickLibrary.ImageMagick.read(data, image => {
        image.quality = 5;
        image.write(entireMagickLibrary.MagickFormat.Jpeg, data => {
            wk.postMessage(data);
        });
    });
};
wk.postMessage({ init: true });

Rest of the code is similar to this https://github.com/dlemstra/magick-wasm/discussions/112
I tried setting image quality between 5-80 but it always fail if image size is larger than 4-5mb
Steps to Reproduce

Following this disucssion to create dedicated worker, browser based only https://github.com/dlemstra/magick-wasm/discussions/112

Adjust Image Quality and it fails where image size is larger than 4-5mb

Images
No response

The size of the input image is not relevant. I suspect this happens when the width/height of the image is large. And because of that you seem to be running out of memory at some point. Because wasm is 32-bit you will run out of memory much fast than on a 64-bit platform. In the future there will probably be support for 64-bit web assembly but until then you will have a memory limit.

There are no options? There is a memory limit and you are running into that limit.

Did you try to use IndexDB storage processed images?
I have processed more than 200 images. That is OK.
This is my repo.


Fix runtime v2 option handling

This allows opts to handle the runtime better than requiring the client to pass the runtime information.

Codecov Report

Merging #3072 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3072   +/-   ##
=======================================
  Coverage   43.46%   43.46%
=======================================
  Files         103      103
  Lines       11033    11033
=======================================
  Hits         4795     4795
  Misses       5503     5503
  Partials      735      735

Flag
Coverage Δ

#linux
47.48% <ø> (ø)
:arrow_up:

#windows
40.28% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bfbd1d0...aaae811. Read the comment docs.


added notify per user

added notify per user so wont get notified for every user when notification are enabled

added notify per user so wont get notified for every user when notification are enabled