UCI apply/rollback workflow

Switch to rpcd based uci apply/rollback workflow which helps to avoid soft-
bricking devices by requiring an explicit confirmation call after config
apply.
When a user now clicks "Save & Apply", LuCI first issues a call to uci apply
which commits and reloads configuration, then goes into a polling countdown
mode where it repeatedly attempts to call uci confirm.
If the committed configuration is sane, the confirm call will go through and
cancel rpcd's pending rollback timer.
If the configuration change leads to a loss of connectivity (e.g. due to bad
firewall rules or similar), the rollback mechanism will kick in after the
timeout and revert configuration files and pending changes to the pre-apply
state.
In order to cover such rare cases where a lost of connectivity is expected
and desired, the user is offered an "unchecked" apply option after timing
out, which allows committing and applying the changes anyway, without the
extra safety checks.
As a consequence of this change, the luci-reload mechanism is now completely
unsused since rpcd uses ubus config reload signals to reload affected
services, which means that only procd-enabled services will receive proper
reload treatment with the new workflow.
Since this change is rather invasive and only tested with Firefox and my APU so far, I'd like to have some more testing coverage before merging it. Cc @hnyman @dibdot

You can find a video illustrating the change at http://luci.subsignal.org/~jow/apply.mp4 - it shows different cases of the new mechanism:

changing the SSID so that the client looses connection (note how the signal indicator in the upper right corner changes halfway during the timeout and how it pops back once the rollback starts)
reverting changes from the uci changelog menu
changing a simply setting which does not cause connectivity problems

Well, I compiled a new master build r6763-746c590882 with these patches and got mixed results. It is not perfect, yet. Needs finetuning before committing

Change SQM download speed limit

works ok, if you press Save&Apply
works ok, if you press Save, then Save&Apply
fails if you press Save and then visit "Unasved changes" page via the link. From that Unsaved page both Apply and Save&Apply fail always

I tried changing wired LAN IP to <IP_ADDRESS> which should break connectivity and trigger fallback, right?
Results were strange:

after a long timeout it first gave error "Apply request failed with status" but the was no further explanation visible
however, despite that message the config did change to <IP_ADDRESS> and the router was then reachable via SSH console, but not any more from the <IP_ADDRESS>.

(Note: I am using 150% display scaling in Widnows + 120% in Firefox, so that may impact on visibility of some items, but usually there has been no problem with LuCI.)

Thanks for testing!

fails if you press Save and then visit "Unsaved changes" page via the link. From that Unsaved page both Apply and Save&Apply will always fail

This was due to me forgetting to include a modified template in the commit, I ameded it

after a long timeout it first gave error "Apply request failed with status" but the was no further explanation visible

Did you build include the updated xhr.js from master and did you clear your browser cache before? Can you repeat the test with a browser debug panel open to see what requests are happening exactly? Also, did you PC automatically reconnect (received new DHCP) while you performed the test?

Your template addition fixed both cases. (And I also cleared the browser cache just in case.)
In any case, now there is the countdown indicator 27...0 sec, then the rollback counter and then the config returned back to normal. Both a normal change and the connectivity-braking change worked as expected.
One thing: the text "Dismiss" on the button is not intuitive. I got it wrong first.
"Dismiss" just dismisses the warning screen but leaves the pending changes intact, right? The "Revert" button is below there at the normal place, but maybe that should be added to the Dismiss - Force apply row, too.
As the user has three options, right?

Force apply
Dismiss (and continue editing the config changes for the next try)
Revert

I would like to invent a better word for that "Dismiss" but did not yet figure it out.
Ps. I am just wondering if that browser cache clearing will be needed in future when going back and forth between master and 17.01. If really so, that will hurt people updating from 17.01 to master (or 18.05) after this change.

Maybe it should be “Close | Revert | Apply unchecked” instead?
As for the browser cache issue - normally we append a cache busting string (...?v=git.18...) to each css and js url, so that shouldn’t be a problem for clean builds

There might also be some longer explanation of the three choices on the warning textbox.
The choices will not be quite that obvious to the casual user. (as even I understood Dismiss wrongly at first).
Proposal addition:

The device could not be reached within %d seconds after applying the pending changes, which caused the configuration to be rolled back for safety reasons. If you believe that the configuration changes are correct nonetheless, perform an unchecked configuration apply. Alternatively, you can dismiss this warning and edit changes before applying again, or you can revert the changes.

I amended the commit to include your suggested changes.

Looks nice and clear.

@jow- just tested your revised change on a quite slow travel router this morning with latest LuCI Master (git-18.116.27617-aa6c971) . In general it works quite fine - just two nitpicks:

the usual "Save & Apply" workflow always ends with the visible message "There are no changes to apply" which is quite confusing, at least for me.
it's still possible to delete your LAN interface ... without rollback ;-)

Just a first impression, will do more testing during this weekend. Thanks!

@dibot - thanks for giving it a try!

Does the “No changes to apply” message always occur or only if you hit “Save and apply” without doing actual changes?

It is true that one still can delete interfaces and networks, I will rework those overview pages to be real cbi maps later, so that they benefit from the same mechanisms

the message always occur, e.g. whenever I change the design or ntp server settings etc.

I noticed the same. The message briefly flashes visible and then quickly disappears.

Allright, will try to reproduce

Does that flashing happen before the countdown? Any chance that you can watch the request flow in the debug console while this happens?

It happens right at the end of the workflow, just before the page toggles from appyl-mode to the normal settings page.
Easy example:

toggle a collectd plugin enabled/disabled (I used Uptime for testing)
press "Save&Apply"
First comes text for 1 sec: "Starting configuration apply..."
Then for 1 sec: "There are no change to apply"
Then the process completes

Countdown was not visible at all.
If I press "Save" and then go to the "Unsaved changes" page, and "Save & Apply", I get the countdown and "...has been applied".

Additional note:
the same 1 sec: "Starting configuration apply..." & 1 sec: "There are no changes to apply" comes, if you select "Revert" on the "Unchanged changes"  screen.

Hmm thats odd. A 204 return value to the apply_rollback request can only happen when there are no uncomitted changes in the per session save directory... Can you run ubus monitor while running the Save & Apply? Also, if you run just Save, is there a /var/run/rpcd/uci-* directory containing the changes?
Seems there is some race condition of some sort

The setting in /etc/config/luci_statistics actual does change, so the transaction is completed. I checked the file before and after.
After Save, there is the file in /var/run/rpcd/uci-*
And it disappears after Apply&Save.
To me it looks like the transaction completed almost immediately, maybe before the wait-polling mechanism kicks in? So there are no changes any more.
New example:
ubus log: https://pastebin.com/CaxDcGMB

Thanks for the input @hnyman - I was able to reproduce it on a completely fresh build. It turned out to be a missing change to cbi.lua in the rollback commit:
diff --git a/modules/luci-base/luasrc/cbi.lua b/modules/luci-base/luasrc/cbi.lua
index b16c91ea2..5ec7b468a 100644
--- a/modules/luci-base/luasrc/cbi.lua
+++ b/modules/luci-base/luasrc/cbi.lua
@@ -395,8 +395,10 @@ function Map.parse(self, readinput, ...)
                self:_run_hooks("on_after_save")
                if (not self.proceed and self.flow.autoapply) or luci.http.formvalue("cbi.apply") then
                        self:_run_hooks("on_before_commit")
-                       for i, config in ipairs(self.parsechain) do
-                               self.uci:commit(config)
+                       if self.apply_on_parse then
+                               for i, config in ipairs(self.parsechain) do
+                                       self.uci:commit(config)
+                               end
                        end
                        self:_run_hooks("on_commit", "on_after_commit", "on_before_apply")
                        if self.apply_on_parse then

I amended the commit accordingly.

hmmm....
was that right?
It seems to break the whole thing. Now the countdown starts, but never notices success, then it goes to rollback, and never stops waiting for the rollback completion.

If it works ok for @dibdot then it is likely ok. I will re-compile the whole stuff and reflash. (Earlier I just recompiled luci-base and installed that.)

Sorry, but recompiling and flashing did not help.
Interestingly, Firefox 60.0b16 gets stuck in the loop, while IE11 gives an error in debugger:
Firefox:

IE:

Interesting - can you check if the following diff fixes the IE problem?
diff --git a/modules/luci-base/htdocs/luci-static/resources/xhr.js b/modules/luci-base/htdocs/luci-static/resources/xhr.js
index 91dcf3fef..de4476cdd 100644
--- a/modules/luci-base/htdocs/luci-static/resources/xhr.js
+++ b/modules/luci-base/htdocs/luci-static/resources/xhr.js
@@ -54,11 +54,11 @@ XHR = function()
                        else
                                url += '?' + code;

+               xhr.open('GET', url, true);
+
                if (!isNaN(timeout))
                        xhr.timeout = timeout;

-               xhr.open('GET', url, true);
-
                xhr.onreadystatechange = function()
                {
                        if (xhr.readyState == 4) {
@@ -92,10 +92,11 @@ XHR = function()
                                callback(xhr);
                }

+               xhr.open('POST', url, true);
+
                if (!isNaN(timeout))
                        xhr.timeout = timeout;

-               xhr.open('POST', url, true);
                xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                xhr.send(code);
        }

Yes, that fixed IE11 (see below), but no impact on Firefox 60

Hmm.
Tested with Chrome and it works (with the IE-triggered change).
Tested with Firefox in safe mode without plugins, and it works.
Apparently it is an effect from a Firefox plugin/extension :-(
I don't even have that many plugins in use (adblock plus, ghostery, zoompageWE)

So far the latest changes (1491ddd and 5cc8f8a) have worked ok in my primary router (even with the Firefox plugins). Strange, as my other router had the same changes edited by hand and has given varying results with Firefox as I told above.
Will test again after recompiling the whole firmware also for that.

Strange.
The primary router at <IP_ADDRESS> is ok with these changes, while the other router at <IP_ADDRESS> (connected via the main one at .1) gives timeouts. Same Firefox, same plugins. Also IE11 seems to occasionally give timeout with .2

More oddities from my side: Tested this morning with latest patchset, connected directly via ethernet cable). Started with a fresh wireless config (rm /etc/config/wireless, wifi config), enter LuCI wireless tab, change the SSID and hit "Save & Apply"  - changes will only be saved but not applied.

That's always reproducible.
If I click "Save & Apply" again changes will be applied ... or I'll get a loop, but that's not always reproducible.

Firefox 59.0.2/Linux without any plugins

Thanks for the feedback - will try some more test on a TP-Link today.

Now it seems to pick the config changes ok. I could not manage to get it to fail. The simple config change also always got confirmed quickly, so the changed timing has improved communication.
But negatively, it is now possible to make a soft-brick change that does not get rolled back:
I tried setting IP to <IP_ADDRESS> and that change went through. Browser got waiting for rollback, but that never materialised. I finally SSHed in and changed IP from .4 back to .2

I re-compiled whole firmwares for both ar71xx and ipq806x and this time the LuCI rollback worked as expected, valid changes went through quickly and invalid ones saw rollback as expected.
(but the wireshark log I sent earlier shows that sometimes apparently the rollback may be left undone. No idea why that happened then, but the same change now did rolled properly back.)

Great to hear. Try increasing the 2000ms grace wait interval until the rollback confirm kicks in to something like 5000ms, maybe the confirm happens too early now, before the services even got restarted.
Regards,
Jo

A configurable timeout (even if not exposed in LuCI) would be helpful for a handful of situations.
As a specific example, most of my APs only have connectivity over tunnels on top of 802.11s. Most have several virtual APs/devices on both bands. As a result, it can take 10-20 seconds from a configuration change before all the APs/devices are created and come up, then the mesh needs to connect, then the tunnels, before connectivity is reestablished to the device.

A configurable timeout (even if not exposed in LuCI) would be helpful for a handful of situations

Add the following to /etc/config/luci:
config internal apply
    option timeout 60  # in seconds

Looks like a regression: the applied config changes do not cause a process restart at least for some apps, so the new config is not actually applied. At least SQM and luci-statistics seems affected.
I just tested and

with plain r6755 (without LuCI rollback) both SQM and luci_statistics config changes kicked off a process restart
with r6787+rollback the process restart does not happen

@dibdot  @jow-
I think that luci-app-adblock misbehaves with the newest rollback code:

There is just "Save & apply" button, but that just saves.
That button saves the config change and triggers adblock reload, but does not actually do the Apply action before triggering reload. Changes remain saved and are visible on the Unsaved changes page, where they can be then applied.

I gusss that this might be due to the adblock-app specific reload-override?
https://github.com/openwrt/luci/blob/master/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua#L28
function m.on_after_commit(self)
	luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1")
	luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
end

Removing that redirect seems to trigger the new apply process. Maybe the redirect in that function is too early and the current rollback code (with apply) gets never activated.
There might be other apps with similar redirects, some of which might be needed.

Hello!
Sorry for double-post, but i think here is the right place:
Wanted to try out this failsafe mechanism but could not get it to work.
Do you need to activate any special options in menuconfig?
(i only activated luci)
patch went through without errors…
Robert

Do you need to activate any special options in menuconfig?

No special actions needed.
Apply the three patches (the three commits here) and fully recompile and install LuCI (at least luci-base and luci-mod-admin-full). After installing them, you should reboot the router and probably also clear the browser cache.

On 1 May 2018, at 20:50, Hannu Nyman<EMAIL_ADDRESS>wrote:Do you need to activate any special options in menuconfig?
No special actions needed.
Apply the three patches (the three commits here) and fully recompile and install LuCI (at least luci-base and luci-mod-admin-full). After installing them, you should reboot the router and probably also clear the browser cache.I applied this patch: https://patch-diff.githubusercontent.com/raw/openwrt/luci/pull/1769.patchThe wrong one?robert

Looks right in principle, as it has all three commits in a row. But check that they all get applied properly. (I am more used to download the individual commits as patches. I have never tried that combined patch of a pull request)

On 1 May 2018, at 21:05, Hannu Nyman<EMAIL_ADDRESS>wrote:
Looks right in principle, as it has all three commits in a row. But check that they all get applied properly. (I am more used to download the individual commits as patches. I have never tried that combined patch of a pull request)

I’m sure that the patches did not raise any errors yesterday.
I just removed the whole lede directory, and started from scratch but now not all hunk’s succeeded.
Could it be the changed source because of 2 pull-requests in the last 24h?
Robert

Looks like a regression: the applied config changes do not cause a process restart at least for some apps, so the new config is not actually applied. At least SQM and luci-statistics seem affected.

Yes, both packages need their init scripts converted to procd ones in order to work with the new apply mechanism.

I gusss that this might be due to the adblock-app specific reload-override?
https://github.com/openwrt/luci/blob/master/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua#L28

Yes, that code needs to be replaced with a simple m.redirect = luci.dispatcher.build_url("admin", "services", "adblock")

Rebased the series on top of LuCI master and introduced an ucitrack service which takes care of handling non-procd services.

It's a while back i build openwrt...

Double checked everything:

removed privious checkout
switched from "https://git.lede-project.org/source.git" to "https://github.com/openwrt/openwrt.git"
"patch --verbose" reported all hunks successful (attached)
examine samples of files if the patch is really there
renamed the xxx-sysupgrade.bin file to avoid flashing the wrong file

No success!
Any suggestions?
Robert
patch_output.txt

@rwalli - what is the problem?

Luci behaves like normal.

@jow-
Thanks for fixing sqm and statistics. They now work ok.
Other apps with redirects naturally still misbehave, like @dibdot 's adblock.
Regarding the regression I mentioned earlier, that IP change to <IP_ADDRESS> did not rollback properly:

I tried setting IP to <IP_ADDRESS> and that change went through. Browser got waiting for rollback, but that never materialised. I finally SSHed in and changed IP from .4 back to .2

Try increasing the 2000ms grace wait interval until the rollback confirm kicks in to something like 5000ms, maybe the confirm happens too early now, before the services even got restarted.

Your suggestion to change the 2000 ms initial wait time was right. I increased it to 4000 ms and this time the rollback worked as expected. (with current 2000 ms the current code fails to notice the need for the rollback)
root@OpenWrt:~# diff -u /rom/usr/lib/lua/luci/view/cbi/apply_widget.htm /usr/lib/lua/luci/view/cbi/apply_widget.htm
--- /rom/usr/lib/lua/luci/view/cbi/apply_widget.htm
+++ /usr/lib/lua/luci/view/cbi/apply_widget.htm
@@ -133,7 +133,7 @@
                                var deadline = Date.now() + uci_apply_timeout * 1000;
                                window.setTimeout(function() {
                                        uci_confirm(checked, deadline);
-                               }, 2000);
+                               }, 4000);
                        }
                        else if (checked && r.status === 204) {
                                stat.innerHTML = '<%:There are no changes to apply.%>';

@hnyman @jow I will fix adblock & travelmate in the next few days, still I haven't fully understand the new redirect behaviour ... currently I'm unable to force a page reload (that's what I have done before with the http.redirect stuff).
@jow- latest patchset works fine for me, only a visual glitch:
before workflow (section alignment is OK)

after workflow (section alignment is "collapsed")

I will fix adblock & travelmate in the next few days, still I haven't fully understand the new redirect behaviour ... currently I'm unable to force a page reload (that's what I have done before with the http.redirect stuff).

Best is to simply set m.redirect = desired_target_url that should take care of redirecting after apply.

latest patchset works fine for me, only a visual glitch:
Yeah, thats a bug with the material theme, it has quite some issues I plan to address later.

Other apps with redirects naturally still misbehave, like @dibdot 's adblock.
Even after installing and starting the new /etc/init.d/ucitrack init?

At least with the old redirect line, adblock jumps over the rollback screen, I think.
I changed the redirect line along your suggestion, but there are still somehow double items in log.  (I left the reload command into on_after_commit ). Something for dibdot to ponder...
Wed May  2 21:54:57 2018 user.info adblock-[3.5.1]: start adblock processing (reload)
Wed May  2 21:55:00 2018 daemon.info dnsmasq[3286]: read /etc/hosts - 4 addresses
...
Wed May  2 21:55:00 2018 daemon.info dnsmasq[3286]: using nameserver 2001:14b8:1000::2#53
Wed May  2 21:55:00 2018 daemon.info dnsmasq[3286]: using 5146 more local addresses
Wed May  2 21:55:00 2018 user.info adblock-[3.5.1]: blocklist with overall 5147 domains loaded successfully (Netgear Nighthawk X4S R7800, OpenWrt SNAPSHOT r6807-58f7b5b96c)
Wed May  2 21:55:00 2018 user.info adblock-[3.5.1]: start adblock processing (reload)
Wed May  2 21:55:04 2018 user.info adblock-[3.5.1]: blocklist with overall 5147 domains loaded successfully (Netgear Nighthawk X4S R7800, OpenWrt SNAPSHOT r6807-58f7b5b96c)

@jow-

Best is to simply set m.redirect = desired_target_url that should take care of redirecting after apply.

That does not work for me. Whenever I add the m.redirect, the rendered page get a (unwanted) "Back to Overview" control but no reload/redirect after "Save & Apply", e.g.:

@dibdot - travelmate uses SimpleForm instances, those do not use the rollback at all.

Hello!
I guess the patching worked properly.
(have reviewed many patched files on the device)
But I'v tried only firewall rules because @jow- mentioned in the first post.
Luci behaved here as normal and locked me out without rollback warning or log entries.
Today i tried to change ip-address and the rollback warning worked.
When deleting the LAN-Interface, the device locked me out before i could click on the "Save & Apply" button.
Robert

@rwalli - deleting the lan interface not rolling back is expected for now, the delete still action bypasses the normal mechanisms and need to be ported over after this PR has been merged.
As for the firewall lockout still happening; might be caused by conntrack not getting flushed, will check it later.

@hnyman - patchset rebased, squashed and updated. All timings are now configurable in /etc/config/luci:
config internal 'apply'
	option rollback '30'
	option holdoff '4'
	option timeout '3'
	option display '1.5'

As for the firewall lockout still happening; might be caused by conntrack not getting flushed
seems to be right, when i log in with ssh the connection does not disconnect.

@jow-
I am still puzzled with the SQM behaviour. Even with the newest rollback code, after a clean boot, the changes are applied ok to /etc/config/sqm but that does not trigger reloading the service on the router. But if I restart SQM once from console, then the same kind changes made in LuCI start triggering the service reload.
Not quite sure how to debug that. procd problem? or something to do with the init script?

@hnyman - this indeed looks like some bug in the sqm / procd ballpark, I'll look into that separately from this issue.

@jow-
Regarding SQM and rollback: I think that it is somehow still related to this rollback code, as the same SQM and procd version behave differently with/without rollback code.
without LuCI rollback code

build r6835-e495a05069, making SQM config changes in LuCI after boot--> triggers SQM restart

with LuCI rollback code

build r6808-3a456683e5 (yesterday), making SQM config changes in LuCI after boot--> no  SQM restart
build r6808-3a456683e5 (yesterday), making SQM config changes in LuCI after SQM has been once restarted in console  --> triggers SQM restart

Yeah, could be. Old behaviour triggered an explicit /etc/init.d/sqm reload through luci-reload (ucitrack), current code relies on ubus call service event '{ "type": "config.change", "data": { "package": "sqm" } } to trigger service restart.

The bug is in the procd sqm init script. Due to redeclaration of boot() which directly invokes sqm instead of using the normal service start up procedure, no sqm service is registered with procd.

Interesting.
I just wonder if there are other apps with similar fault in init script.
"boot" being not enough and only "start" making the service registration is news to me (and apparently also for you), so it it is quite possible that there are other similar ones.  At  quick scan in the packages feed, I spotted one possibility: "acme" uses procd and has non-standard boot function.

Yeah, quite likely.

@jow-
Shouldn't the xhr IE11 fix be merged separately, before the 18.06 branching?
I get the same "InvalidStateError" in IE11 debugger for a clean LuCI.
I think that the fix has nothing to do with the rollback stuff. The earlier XHR change has already been committed and that is just a fix for that.

I agree, fix committed separately.

Is there a way to register the service with procd without calling the start function? I merged the change to sqm-scripts, but for ACME it's not actually a good idea to run the same command at boot...

Is there a way to register the service with procd without calling the start function? I merged the change to sqm-scripts, but for ACME it's not actually a good idea to run the same command at boot...

@tohojo - I've been thinking about this too and couldn't come to a satisfactory solution... in general the cleanest way for now seems to be to handle the "am I starting at boot?" case in the application itself and to communicate the on-boot state out of band, e.g. via a stamp file.
Something like this:
diff --git a/net/acme/files/acme.init b/net/acme/files/acme.init
index 6de12b7d..a3d686dc 100644
--- a/net/acme/files/acme.init
+++ b/net/acme/files/acme.init
@@ -25,7 +25,8 @@ stop_service() {
 }

 boot() {
-    $SCRIPT check_cron
+    touch "/var/run/acme_boot"
+    start
 }

 service_triggers()
diff --git a/net/acme/files/run.sh b/net/acme/files/run.sh
index a3a89ab9..368de26d 100644
--- a/net/acme/files/run.sh
+++ b/net/acme/files/run.sh
@@ -234,6 +234,7 @@ load_vars()

 check_cron
 [ -n "$CHECK_CRON" ] && exit 0
+[ -e "/var/run/acme_boot" ] && rm -f "/var/run/acme_boot" && exit 0

 config_load acme
 config_foreach load_vars acme

It is not the most elegant solution; I suppose the best would be if procd could expose the state via an environment variable or something, but so far we do not have such a facility.

In adblock I'm using this modified boot function:
boot()
{
    adb_boot=1
    rc_procd start_service
}
[...]
start_service()
{
    if [ $("${adb_init}" enabled; printf "%u" ${?}) -eq 0 ]
    then
        if [ -n "${adb_boot}" ]
        then
            local trigger="$(uci_get adblock global adb_trigger)"
            if [ "${trigger}" != "timed" ]
            then
                return 0
            fi
        fi
[...]

This means usually only the trigger will be initialized on boot - works quite fine.

@jow- @dibdot - luci-app-unbound has the same save-apply regression side effects.

@EricLuehrsen see #1783, should work, but untested.

@hnyman @jow- all workflow related changes in unbound, travelmate & adblock are successfully re-tested with new & current workflow and applied to master.

@jow-
are you going to merge this into master now that 18.06 has been branched off?
I feel that it works ok for most parts, and wider testing/feedback is needed for finding out the remaining problems.

@jow-
I have same problem and It was working with previous versions of LuCI:
In my cbi I have an on_after_commit() which calls a script via sys.call() to convert cbi config file to json. At the time the script gets called , it seems before commit it called.
on_after_apply() not at calling..
Do you have any solution/workaround to handle the new behaviour of LuCI?
Thanks in advance

How to close the rollback function simply, click a button or edit a config e.g.
And, I think it's Inconvenient，suggest to close it forever.


additions/changes to MF slim

Add to MF slim
molecular sequestering activity (GO:0140313) | ...
 small molecule sensor activity (GO:0140299) | ...
 cargo receptor activity (GO:0038024)
These  are new term immediately under the root node, added during MF refactoring. Numbers will increase
swap
translation regulator activity, RNA binding (GO:0008135)
for
translation regulator activity, (GO:0045182)

these changes will not affect the quilt figure

I've made those changes.  They'll be on japonicusdb.org in a few hours and will be on pombase.org on Tuesday morning.

Also chromatin remodelling should be replaced by GO:0006325 chromatin organization (chromatin remodelling will be axed soon)
(this should have been a BP slim change, not a quilt change)

Also chromatin remodelling should be replaced by GO:0006325 chromatin organization

GO:0006325 chromatin organization is already there?

sorry ! all good.

I was confused becuse this fig has "rem modelling"
https://user-images.githubusercontent.com/90474/132119957-accb7307-63ec-44f6-96e6-d0bcbcb7a9fa.png
but I think we swapped last week


Add specifiable complete arguments at global activation/registration

Makes it possible to remove defaults using global activation and no just with registration. Also enables generically customizing complete arguments. Feedback is given when non-default arguments are specified when globally activating.
The --no-defaults option is kept for backward compatibility and ease of use.
Changes are best seen running activate-global-python-argcomplete --dest=- with various options and looking at the last line in the ouput, the call to complete. e.g:

activate-global-python-argcomplete --dest=-
↳ complete -o nospace -o default -o bashdefault -D -F _python_argcomplete_global
activate-global-python-argcomplete --dest=- --no-defaults
↳ complete -o nospace -o bashdefault -D -F _python_argcomplete_global
activate-global-python-argcomplete --dest=- --complete-arguments --o nospace
↳ complete -o nospace -D -F _python_argcomplete_global
activate-global-python-argcomplete --dest=- --complete-arguments
↳ complete -D -F _python_argcomplete_global

In summary, the call to complete in python-argcomplete.sh is removed, and appended to the file with appropriate arguments after the file is copied. The same options are added to register-python-argcomplete for consistency.
Note: the difference remains that by default the register script passes neither -D nor -o bashdefault to complete, whereas the activate script does pass them.

Thank you for your contribution. This makes sense, but I prefer that the file argcomplete/bash_completion.d/python-argcomplete.sh remain ready to be copied or sourced manually, so if you don't mind, please change the PR to add the original complete call back in, and to have scripts/activate-global-python-argcomplete replace the line instead of adding it.

The commit was rebased to copy argcomplete/bash_completion.d/python-argcomplete.sh and replace the call to complete afterwards as you suggested.

Didn't know about fileinput. Cool!


Add tests for the manage commands

While they're not primary work flow, there's quite a lot of functionality in the manage commands that could be, and it would be useful to add some tests to ensure that they don't degrade over time.
Specifically, as functionality in the add snapshot and add draft tools grows, it's important to make sure we don't regress other functionality.

In the process of testing a tool like add snapshot, it might makes most sense to generate the images used for testing in the tests as we don't want to cause people to have to download more code than required. This might be useful if we go down this route: https://gist.github.com/ax3l/5781ce80b19d7df3f549


Structish classes should define eql?

as per Ruby docs, mostly this is just an alias of #==

PR #73 needed for test suite to pass


[FEA] Optimize torch_gather_like operator used in top-k extraction

🚀 Feature request

Motivation

Create a vectorized version of  torch_gather_like function implemented here. This function is used to gather top-k indices from each row of one-hot vector of labels.

Your contribution
Maybe later check if we could come up with a more efficient implementation of gather_torch_like which does not using TensorArray, but rather uses only tf.gather_nd() with a 2D index (rows, cols), like the one I implemented here here.
Not a priority for now, but maybe it might improve the metrics performance
Originally posted by @gabrielspmoreira in https://github.com/NVIDIA-Merlin/models/pull/189#discussion_r813052963

For context, this is the expected output of  all_indices defined in torch_gather_like function where for each example in the batch (size of 16 in this example), we are building the 2-d indices that allow us to retrieve the one-hot value related to the top-k (k=5 in this example) positions.


Update a blog link to get info about the laptops/ devices/ gadgets discounts for students

I would like to suggest adding this link to get info about the laptops/ tablets/ gadgets discounts for students. There are a lot of companies which provide gadgets/electronic devices discounts for students. Unidays has a curated list here. So I would like to share this here but have no idea how to add it in the table format as specified. Hence, I am raising this issue.
https://www.myunidays.com/GB/en-GB/category/all-technology_laptops-and-tablets
Student discounts/ offers for technology gadgets from Lenovo, dell, apple, Samsung, HP, Acer etc are given. Kindly let me know if I can help contribute in any other way! Happy Hacktober! ^^

That's an excellent idea. I'll encourage you to add it. Just go to the database folder and open the database.md file. Follow these MD syntax instructions to understand how MD tables work.
https://github.com/ShreyamMaity/student-offers#instructions-to-contribute-
If you face any issues, feel free to comment here.

Sure, I will add it. The link I shared is working on my end. Could you once check this link and let me know?
https://www.myunidays.com/IN/en-IN/content/about

most probably you're logged in , that's why it's working. And the last link is working fine.


navbar issue fixed and some minor issue fixed

Description
Navar is now showing in every page. Changes some minor UI in People, DSA secttion
Closes #70

Summary by CodeRabbit

New Features

Introduced smooth scrolling across the app.

Enhancements

Integrated Header, Footer, and CookieConsent components for a more cohesive layout.
Improved direct rendering of specific sections on the home page for better organization.
Switched ProjectsSection to use a Card component for streamlined project display.
Updated internal navigation links for better usability.

Bug Fixes

Adjusted background colors for consistency across various sections.

Refactor

Simplified header and mobile navigation components by removing unnecessary props and improving link handling.

Style

Updated CSS class names for better readability and maintainability.

Thank you for this PR @devvsakib
Conceptually i like the idea of the scroll, but I want to put another newsletter form at the end and see if it converts (now it's converting very well since is the only CTA)
If  I see a massive drop in the subs we might get back

okay @FrancescoXX


sunspot dependency?

Perhaps I was on an earlier version, but this dependency on sunspot_rails seems new. Is it necessary? It seems like a bad idea to take such a strong opinion about the search tool someone should use. Or should it just be a development dependency, for the dummy app?

Hi @dickeyxxx
I haven't started yet, I am overflowed with several projects.
Do you want to take a look at it?

Yeah go ahead and assign me to it

I can't assign it right now to you. I don't have the rights to add external people to ging projects.
As we are at weekend I will send the request now, but probably it won't be processed until monday morning.
Sorry :S

oh no worries, I don't really need it

Tanks @dickeyxxx!
I will close this issue, as it is complete, and open another one to make mailboxer sunspot and sphinx compatible depending on wich gem is present.


when method use AHash on more than 40000 pictures, program running exception

when method use AHash on more than 40000 pictures, program running exception

@GITnewfish can't see the error on the screenshot.. could you paste the stack trace instead?


prisma2 dev error with existing mysql database

I'm getting an error when running prisma2 dev when an existing database connected, I did report the error: report id 795.
Steps:

prisma2 init
Languages for starter kits: Blank project
Select the database you want to use: MySQL
Prisma Framework tools: Photon and Lift
Select the programming language you want to use: TypeScript
Start with a runnable demo script or just the Prisma schema: Demo script
cd prisma2
prisma2 dev

Error:
Error in migration engine: [2019-12-06T12:17:50Z INFO  quaint] Starting a mysql pool with 9 connections.
thread 'tokio-runtime-worker-0' panicked at 'Error parsing the migration steps: Error("unknown field `name`, expected `model`", line: 1, column: 76)', src/libcore/result.rs:1165:5

I could provide the mysql database schema, when needed.

Can you try to migrate this schema to a fresh database once? Also, are upgrading from an older version of prisma2 preview?
I am unable to reproduce this, I was able to migrate this schema:

I did upgrade to version<EMAIL_ADDRESS>binary version: bb7e89676c242c7fa4355fd09aa65ad2739c73cf.
But when I try it again I'm getting the following error:

⠏ Introspecting MySQL schema  with 34 tables.
ERROR  Introspection failed:
Schema parsing
error: Error validating model "pages": Invalid ID field. ID field must be one of: Int @id or Int @id @default(Integer) for Int fields or String @id or String @id @default(cuid()|uuid()|String) for String fields..
-->  schema.prisma:168
|
167 |   level           Int              @default(1)
168 |   page_id         pages_language   @id @relation("pages_page_idTopages_language", references: [page_id])
169 |   position        Int
|

I'm trying to introspect an existing database with existing data.
Could this be a problem with my database or the existing data within it? But the mysql database is working fine with an existing website.

This actually "just" is a limitation of the database tables we support - your @id is on a column/field that is also a foreign key. Right now we just do not support this,but of course are working on fixing it.
Can you maybe share your MySQL schema with us? (It not publicly, feel free to send it to us via the instructions in https://github.com/prisma/prisma2/issues/757 - just mention that it is for issue 1060 - we can also do a NDA if that should be necessary of course.)

@janpio I just shared the sql schema with you via<EMAIL_ADDRESS>I hope you can use it to improve the prisma2 project. Keep up the good work!

Thanks, got the email and will use the schema to reproduce it and actually add your schema to our internal testing.

@timonschenzel Thanks, this schema is now available in our testing sql (public, as you suggested that this is not private)

Can you please confirm the bug @pantharshit00? Thanks.

@timonschenzel This error happens when there is a breaking change in the migration engine (lift). Did you already have data in this database? (maybe you reused a DB name that already existed?)


Update flake8 link to use github

Latest style checks are failing during flake8 setup since gitlab seemingly isn't allowing anonymous checkouts and requires username.

Codecov Report

Merging #915 (84b5313) into main (5440eff) will decrease coverage by 0.27%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #915      +/-   ##
==========================================
- Coverage   75.48%   75.20%   -0.28%
==========================================
  Files          73       73
  Lines        3985     3985
  Branches      713      713
==========================================
- Hits         3008     2997      -11
- Misses        819      823       +4
- Partials      158      165       +7

Impacted Files
Coverage Δ

dask_sql/physical/rex/core/literal.py
58.09% <0.00%> (-2.86%)
:arrow_down:

dask_sql/physical/rel/custom/export_model.py
88.88% <0.00%> (-2.78%)
:arrow_down:

dask_sql/physical/rel/logical/window.py
95.37% <0.00%> (-1.74%)
:arrow_down:

dask_sql/_version.py
32.76% <0.00%> (-1.13%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Training epoch

I'm a little confused about training logic。Is the code below only used to control training one epoch?
# line 65-71 of sr.py
if opt['phase'] == 'train':
        while current_step < n_iter:
            current_epoch += 1
            for _, train_data in enumerate(train_loader):
                current_step += 1
                if current_step > n_iter:
                    break

Thanks for your attention.
The training just end with limit iteration that corresponding with dataloader batch size, and epoch only records how many times the dataset has been trained.

Got it!
Thanks for your reply~


Bias toward model b

I thought i would make a separate issue for this to keep things organized. So i figured some stuff out. In the original code, the authors apply the permutation after making the final permutation. Here is what I changed in my fork:

This does give a different model thats not biased. However, the resultant image is blue. I have no idea why.

So this is progress. But i think the reason its not working is because i skipped some big layers, so I will try experimenting and seeing if I can get this to work.

Just realized

im still getting blue images, so it seems that applying the permutation in this manner gives a different result

@vaguenebula I also apply the permutation after the weight matching. The code after final_permutation in my code is basically manually applying the apply permutation function. I used the function before nbut changed it manually to see of there was anything up with the function itself. What exactly are you saving in torch.save ? updated_params ?

@vaguenebula I also apply the permutation after the weight matching. The code after final_permutation in my code is basically manually applying the apply permutation function. I used the function before nbut changed it manually to see of there was anything up with the function itself. What exactly are you saving in torch.save ? updated_params ?

For some reason, its giving me a good result. i will submit pull request so you can experiment with the code

@vaguenebula I also apply the permutation after the weight matching. The code after final_permutation in my code is basically manually applying the apply permutation function. I used the function before nbut changed it manually to see of there was anything up with the function itself. What exactly are you saving in torch.save ? updated_params ?

i fixed the blue image now. .its a mix of two models

@vaguenebula I also apply the permutation after the weight matching. The code after final_permutation in my code is basically manually applying the apply permutation function. I used the function before nbut changed it manually to see of there was anything up with the function itself. What exactly are you saving in torch.save ? updated_params ?

it might just be the wrong implementation of the method somehow. im not sure

wait whhhatt im getting model a back now


motor tools not working with A1

hi, my A1 motor has stopped working and I am trying to debug it using the motor tools
i connected a 10mb usb to rs485 adapter and ran sudo ./swboot /dev/ttyUSB0 (I checked the device name)
the motor doesn't appear in the list. i get the following output:
Total 0 motors
does the motor tools work with A1? is there any other tool? I would really appreciate your help since I can't use my motor and the A1 robot right now.

Hello! According to the document, the motor tools only support the Go-M8010-6 motor.


Update guidance as a result of WCAG 2.2 development work

What
Following updates to Design System elements which were identified in desk research, we have uncovered further updates to guidance required to meet WCAG 2.2.
Why
These changes will align our elements with new criteria in WCAG 2.2.
Epic lead
TBC
Who needs to work on this
Content Designer, Developer
Who needs to review this
Developer, Accessibility Specialist
## Done when
- [ ] https://github.com/alphagov/govuk-design-system/issues/2664
- [ ] https://github.com/alphagov/govuk-design-system/issues/3008
- [ ] https://github.com/alphagov/govuk-design-system/issues/2866
- [ ] https://github.com/alphagov/govuk-design-system/issues/2867
- [ ] https://github.com/alphagov/govuk-design-system/issues/2868

Speaking with @CharlotteDowns and @calvin-lau-sig7 we've merged this epic with https://github.com/alphagov/govuk-design-system/issues/2729. I'll close this epic.


conway: add new certificates

superseded by https://github.com/vacuumlabs/ledger-app-cardano-shelley/pull/206


Pywal inaccessible from terminal

In what was likely a futile attempt to get Python 3.6 working with pip, I used the following workaround in my .bashrc: alias "pip3.6"="python3.6  -m pip $1". Now, when I run pip list, pip3 list and pip3.6 list, I get three different outputs. pywal is only present on the last of those, naturally, and is located at ~/.local/lib/python3.6/site-packages/pywal.
Adding this directory to my $PATH hasn't changed anything, and installing from source doesn't magically take it to some different directory. When searching for pywal's install location, that directory was the only thing that turned up, but I still feel like I'm missing something.

Fixed it myself. Try this, and then install from pip as you'd expect.


Fix Subtle shift when hovering on "Create new file" button

When hovering over the "Create new file" button in the repo root there
is a subtle shift in the UI due to a hidden button. This PR fixes that
issue.
Fixes #693

Can you fix the conflicts?

I will get them fixed this weekend! I apologize... Life got a little crazy the
past week. :)
On 2017-10-31, Federico Brigante wrote:

Can you fix the conflicts?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/sindresorhus/refined-github/pull/754#issuecomment-340754235

--
Aaron Crowder, Sr. Software Dev
p:<PHONE_NUMBER>
w: http://crowdersoup.com
t: https://twitter.com/crowdersoup

Great! Can you also remove the old CSS-based version?

Thanks @CrowderSoup!


Update directv.com_us.channels.xml

EpixWest.us, EpixEast.us, Epix2West.us, Epix2East.us, must be removed in favor of Epix.us, Epix2.us, and there are no separate broadcasts.

Epix.us, Epix2.us, and there are no separate broadcasts.

They do broadcast different content


-format info: not printing to stdout

The command convert rose: -format 'sdf %f dfg' info: won't print anything to stdout. Not using -format prints: convert rose: info:  or convert rose: -print 'foo' info:
It does work if printing to a file convert rose: -format 'sdf %f dfg' info:foo.txt
I think it might be related to this issue: https://github.com/kripken/emscripten/issues/7360
I think -format will copy bytes to stdout (not using printf or fprintf) so I guess it can be related to that.
Supposedly using emscripten setting EXIT_RUNTIME=1 could help here (https://github.com/kripken/emscripten/blob/941bbc6b9b35d3124f17d2503d7a32cc81032dac/src/settings.js#L71) - but I tried and there is no stdout at all so I'm not sure.
I'll keep investigating. This is a test that reproduces the issue: https://github.com/KnicKnic/WASM-ImageMagick/blob/c8d5815d1e9c120f70cce27cd1dadfcdb1758d32/spec/callSpec.ts#L27  (skipped with xit()`

Solved by https://github.com/KnicKnic/WASM-ImageMagick/pull/28


cpp: Adds a member predicate to get a FunctionAccess from a Function

The class Function was missing a member predicate to get a FunctionAccess. This commit fixes that.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Popover craziness when resizing window

Chrome for Mac. Taken from the docs.
Open the popovers. Resize. Boom.

Hello,
I have disabled the responsive design from the mobile version, it takes the behavior of ipad screen .The problem is that all my tooltip appears in the wrong place . Can someone help me to fix the problem?

@zizounet Please file a new issue for your problem. Note however, that we are unable to provide support for modified versions of Bootstrap.


Download martong/access_private in base_env

move to https://github.com/UnitTestBot/UTBotCpp/pull/9


SW-2361 Allow super admins to move planting sites

To support a workflow where a Terraformation employee creates a new planting site
using a shapefile, verifies it in the web app, then transfers it to the correct
organization, update the admin UI to allow moving planting sites to new
organizations.
This requires the ability to select a planting site in the admin UI; previously
it was only possible to create new sites, not view them.

Current dependencies on/for this PR:

main

PR #825   👈

This comment was auto-generated by Graphite.


Bindings issues

I am struggling to get bindings to work.
I have a simple main method, as follows:
public static void main(String[] args) {
final JsonNodeFactory jsonNodeFactory = JsonNodeFactory.instance;
    try {
        Expression expression = Expression.jsonata("$notification.foo");

        List<Binding> bindings = new ArrayList<>();
        ObjectNode bindingsJsonNode = jsonNodeFactory.objectNode();
        bindingsJsonNode.put("foo", "bar");
        bindings.add(new Binding("notification", bindingsJsonNode));

        ObjectNode inputJsonNode = jsonNodeFactory.objectNode();
        inputJsonNode.put("bar", "baz");

        JsonNode result = expression.evaluate(inputJsonNode, bindings);

        System.out.println("RESULT: " + result.toPrettyString());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

When I run this, I am getting an NPE on the sysout line because the result is null.
My understanding of bindings is that the code above should make a $notification variable available when evaluating the JSONata expression and that its values should be:
{
"foo": "bar"
}
Therefore, the expression $notification.foo should return a value of bar when it is evaluated.
An example from try.jsonata.org: https://try.jsonata.org/-x7JJtty8

A more simple way is to just add variables to the expression before evaluating it like is done in the AgnosticTests:
Expressions e = Expressions.parse(testCase.getExpr());
                    // introduce bindings if available
String key = "";
ObjectNode bindings = testCase.getBindings();
                    for (Iterator<String> it = bindings.fieldNames(); it.hasNext();) {
                        key = it.next();
JsonNode value = bindings.get(key);
                        e.getEnvironment().setVariable("$" + key, value);
}
JsonNode actualResult = e.evaluate(testCase.getDataset());

so this just takes an object and each key becomes a variable name and its value is the variable's value...
However, I've cleaned up the Bindings object to take arrays and objects in addition to simple value settings.

I'll seek to migrate the methods in Expression into Expressions so there is one stop shopping and we can eventually get rid of Expression

Fixes released as part of version 2.4.0 today


cargo build doesn't produce cargo tarpaulin extension

Hello lovely tarpaulin maintainers, I've just started using Rust for production purposes, which makes me run into things I haven't used before. tarpaulin does exactly what I would like from it (except maybe for covering macro expanded stuff, but I can see that this is hard). I ran into creating a Dockerfile that uses tarpauling for enforcing test coverage.
I'm not sure if there's an easy fix for this issue, or even whether this is the right place for it.
Describe the bug
cargo build --release does not appear to install the cargo tarpaulin extension. This isn't quite what I expected. I need to run cargo install cargo-tarpaulin even though I have listed cargo-tarpaulin under [dev-dependencies] in Cargo.toml. But cargo install cargo-tarpaulin isn't quite reproducible unless I specify which version
To Reproduce
mkdir -p /tmp/proj1 && cd $_
cargo new --lib my_project
cd my_project
cargo add --dev cargo-tarpaulin

mkdir -p /tmp/proj2/my_project && cd $_
# Simulate docker `COPY Cargo.toml Cargo.lock ./`
cp /tmp/proj1/my_project/Cargo.* .
mkdir src
touch src/lib.rs
cargo build --release
cargo tarpaulin

output:
error: no such command: `tarpaulin`

Expected behavior
cargo running tarpaulin: it's specified in the dev-dependencies

Aha so cargo add --dev cargo-tarpaulin would just add tarpaulin as a library it won't add the dependency, you need to do cargo install tarpaulin for that.
As to why tarpaulin has a library interface - it was initially so I could embed parts of it into other sandbox programs to test/experiment on things, but it does have at least one user who has it as part of a service and didn't want to exec another process

So there's no "easy" way around this, I gather? I'd probably have to do something like
cargo install cargo-tarpaulin --version=$(grep cargo-tarpaulin Cargo.toml | cut -d '"' -f 2)

Is this correct?

Do you actually need tarpaulin as a library? If not I'd just do cargo install cargo-tarpaulin --version=$VERSION and avoid the grep stuff.  But yeah that's correct

Thank you!!!


Gridly Settings Update on Demand

I added the following to better support responsive layouts. Users can now update settings (base/gutter/columns) at any time (in my case, I use it for reducing/adding columns on window resize). Previously, these settings were ignored past initialization.
Here is a Gist exemplifying its usage:
https://gist.github.com/alliecurry/b0f36c131de9a685e043

Awesome! Thanks for the pull request.

Released v1.2.9 with this functionality.


Display description text for custom field

Element templates can define a custom description field. We should display that description to the user in the properties panel.
Gets addressed with https://github.com/bpmn-io/bpmn-js-properties-panel/issues/190.
Tasks

[x] display description text for all custom fields
[x] link URLs (markdown syntax, i.e. [text](url))

Via SUPPORT-2488.

Shipped with Camunda Modeler v1.3.


Interactive API documentation consistency improvements

I have identified the following possible instances of inconsistencies between Open API specification and Documentation:

🟩Found in Open API specification, 🟥Not found in Documentation

[ ] GET /v1/graph/{graph_id}/vertex
[ ] PUT /v1/graph/{graph_id}/vertex
[ ] POST /v1/graph/{graph_id}/vertex
[ ] DELETE /v1/graph/{graph_id}/vertex
[ ] GET /v1/graph/{graph_id}/edge
[ ] PUT /v1/graph/{graph_id}/edge
[ ] POST /v1/graph/{graph_id}/edge
[ ] DELETE /v1/graph/{graph_id}/edge
[ ] POST /v1/graph/{graph_id}/query

🟥Not found in Open API specification, 🟩Found in Documentation

[ ] GET /v1/node/status

🟩Found in Open API specification, 🟩Found in Documentation, 🟥Have Inconsistencies

Inconsistency type
Open API specification  DELETE /v1/graph/{graph_id}
Documentation  DELETE /v1/graph/{graph}

Path parameter name mismatch
graph_id
graph

Inconsistency type
Open API specification  GET /v1/graph/{graph_id}/schema
Documentation  GET /v1/graph/{graph}/schema

Path parameter name mismatch
graph_id
graph

Inconsistency type
Open API specification  POST /v1/graph/{graph_id}/dataloading
Documentation  POST /v1/graph/{graph}/dataloading

Path parameter name mismatch
graph_id
graph

Inconsistency type
Open API specification  GET /v1/graph/{graph_id}/procedure
Documentation  GET /v1/graph/{graph}/procedure

Path parameter name mismatch
graph_id
graph

Inconsistency type
Open API specification  POST /v1/graph/{graph_id}/procedure
Documentation  POST /v1/graph/{graph}/procedure

Path parameter name mismatch
graph_id
graph

Inconsistency type
Open API specification  GET /v1/graph/{graph_id}/procedure/{procedure_id}
Documentation  GET /v1/graph/{graph}/procedure/{proc_name}

Path parameter name mismatch
graph_id
graph

Path parameter name mismatch
procedure_id
proc_name

Inconsistency type
Open API specification  PUT /v1/graph/{graph_id}/procedure/{procedure_id}
Documentation  PUT /v1/graph/{graph}/procedure/{proc_name}

Path parameter name mismatch
graph_id
graph

Path parameter name mismatch
procedure_id
proc_name

Inconsistency type
Open API specification  DELETE /v1/graph/{graph_id}/procedure/{procedure_id}
Documentation  DELETE /v1/graph/{graph}/procedure/{proc_name}

Path parameter name mismatch
graph_id
graph

Path parameter name mismatch
procedure_id
proc_name

Inconsistency type
Open API specification  POST /v1/service/stop
Documentation  GET /v1/service/stop

Method mismatch
POST
GET

About
This is part of a research project that aims to detect API documentation inconsistencies in GitHub repositories automatically. I am evaluating the validity of the approach by identifying such inconsistencies in real-world repositories.
Hopefully, this is a step towards easier maintenance of API documentation. If you find this helpful, please consider updating the documentation to keep it in sync with the source code. I am also happy to assist with it, if appropriate. If this has not been useful, consider updating this issue with an explanation, so I can improve my approach. Thank you!

hi @alexvuka1, thanks for reporting!
We plan to evolve the interface for clients (SDK/Restful/Python) from gRPC to Restful APIs.
Currently we are developing the OpenAPI related functions actively, hence you may find the docs missing.
Please stay tuned, and we will keep you updated when the OpenAPI is beta available. /cc @lidongze0629
Thank you again!

Hi @yecol, that's good to know. Would it be useful to get reports such as the one in the description during the development of the REST API? For example, to track the progress of the documentation process. The aim of the project is to be used iteratively during development (as a GitHub action), so it would be interesting to hear your opinion on this. Thanks!


feat(PaginatedMessage): add support for all select menus

Closes #533
Adds support for UserSelectMenu, RoleSelectMenu, MentionableSelectMenu, and ChannelSelectMenu as action types.

@sapphiredev pack


Escape special characters in chart StrVal

Hi. I'm using 2.1.0.pre and noticed that my pie charts wouldn't render properly (OpenOffice 4.0.1, for what it's worth) if one of the category labels happened to have an "&" in it. I unzipped the file to verify that they were escaped in the spreadsheet XML but not in the chart XML. Here's a PR to escape special characters for chart string values that fixes the issue for me.

Hi @clarkcutler,
Thanks for the great PR, I'm merging it right now.


Scroll to top when switching between pages

Fix #116

Codecov Report

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

@@          Coverage Diff          @@
##           master   #125   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          21     21
  Lines         238    238
  Branches       66     66
=====================================
  Hits          238    238

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 b93ae2f...ef6e63f. Read the comment docs.


[BUG] Missing activity

The Spotify friend activity feature keeps disappearing after a prolonged period of time and i have to manually switch it on and off again.

The fix is now published to the Chrome Web Store. Please update to version 1.0.14.

still not working, are you sure its fixed?
i tried both versions from github and chrome web store

still not working, are you sure its fixed? i tried both versions from github and chrome web store

Is the friend activity panel completely gone? Or can you see it and its just empty?

completely gone

completely gone

Thank you for the screenshot, it made me realize I did not account for the user's selected language for the fix in v1.0.14.
I pushed a new fix here and submitted it for review to the Chrome Web Store.
The Chrome Web Store review process takes some time - while waiting for the new version to publish, you can follow the steps here to install v1.0.15 manually.

The fix is now published to the Chrome Web Store. Please ensure you're running version 1.0.16.


Docs:  Create an issue for each libp2p Berlin poster -> docs task

This is a meta issue.  It describes a set of issues that need to be created.
All of the posters from Berlin are here:
https://drive.google.com/drive/u/0/folders/1te63vJYCmm7jito2c8-N4PYKWUYDf9Bq
For each one that is relevant to libp2p, we should create an issue linking to it and requesting that someone create a docs PR covering the topic in writing.
(Per discussion with @Mr0grog in Berlin.)

For the IPFS ones, I’m going to add the issues to https://github.com/ipfs/docs and recommend writing docs in the concepts directory; what’s the most relevant place here? https://github.com/libp2p/docs doesn’t really seem to have a place for them (or anything), but is that still where these belong?

My gut feeling is we should put the content in https://github.com/libp2p/specs …however, there is a case to made that implementation details like those posters do not belong in the specs repo.

OK, how about one of these two:

Add an concepts directory (to clearly differentiate from specs and spec-style content) to https://github.com/libp2p/specs and add the issues to that repo. Issues will suggest writing a doc in the concepts directory.

Add a concepts directory to https://github.com/libp2p/docs and add the issues to that repo. Issues will suggest writing a doc in the concepts directory.

I’d lean towards (2), since it sounds like this is about content that will eventually be destined for the docs site anyway. It’s fine that it’ll move around, but at least it’ll be in the right repo to start with. (The main counter-argument I can think of is that this stuff won’t be as discoverable right now.)

I added the ones that I thought were IPFS-specific to the IPFS docs repo. I think these ones are more Libp2p-focused, but let me know if you think some should be lifted up to IPFS:

[ ] DHT (Kademlia)
[ ] Floodsub
[ ] IPRS (I put IPNS with IPFS, but I’m thinking this more generalized version belongs with Libp2p. Not totally sure.)
[ ] Rendezvous
[ ] Routing
[ ] SecIO

I would suggest going with @Mr0grog's option 2 as there is a significant benefit to keeping a similar structure to the ipfs/docs, which is that a lot of developers that come to libp2p are going to go looking for existing examples of how things are implemented using libp2p, which ipfs is a prime example but also the opposite is true for devs playing around with ipfs and then wanting to dig into the networking stack. I think this would help reduce overhead, similar to the standard readme format.

Yes, thumbs up on option 2 and retaining a parallel structure to IPFS.
Also:

IPRS (I put IPNS with IPFS, but I’m thinking this more generalized version belongs with Libp2p. Not totally sure.)

I think it's probably the right choice for IPNS, yes.  From an engineering standpoint, IPNS is a very thin wrapper around the DHT, which is libp2p.  But from a user perspective, it's exposed as an IPFS concept so it makes sense.

I’ve created issues for all of these and linked them in https://github.com/libp2p/libp2p/issues/40#issuecomment-407920002. The libp2p/docs repo now also has a concepts folder with a readme that explains what they should cover.
Closing this issue as completed.


Usage of same setting average_scheduled_poll_interval

Hi,
We have recently updated to version 1.3.0 and we have a large increase in the CPU usage on our production platform.
We have sidekiq setting average_scheduled_poll_interval set to 5 seconds because we want to be able to delay a job with this granularity.
But it seems that Sidekiq-cron is using exactly the same setting to know how often it should check for cron jobs to execute and we do have a lot of cron jobs.
As cron-job are per minutes, why do Sidekiq-cron uses the same setting ? Why not having define another setting ?
Waiting for the answer I will change our setting to 20s but could you explain the reason ?
Thank you

The current Poller class inherits from the Sidekiq class:
https://github.com/ondrejbartas/sidekiq-cron/blob/30d712ac9c943fa3164c880957fd978fbc4b0f19/lib/sidekiq/cron/poller.rb#L11
https://github.com/ondrejbartas/sidekiq-cron/blob/30d712ac9c943fa3164c880957fd978fbc4b0f19/lib/sidekiq/cron/poller.rb#L37
So I think it makes sense to inherit the same Sidekiq setting by default, but it also seems reasonable to introduce a new custom option in this direction:
def poll_interval_average
  _this_new_option_ || Sidekiq.options[:average_scheduled_poll_interval] || POLL_INTERVAL
end

Thanks for your point
I was having the same idea of adding an extra optional setting to allow to override this.


System.IO.DirectoryNotFoundException... What?

Does this make any sense to you? System.IO.DirectoryNotFoundException, huh?
Exception Type: System.IO.DirectoryNotFoundException
Message: The system cannot find the path specified. (Exception from HRESULT: 0x80070003)

The exception occurred at Microsoft.Win32.TaskScheduler.V2Interop.ITaskFolder.RegisterTaskDefinition(String Path, ITaskDefinition pDefinition, Int32 flags, Object UserId, Object password, TaskLogonType LogonType, Object sddl)
   at Microsoft.Win32.TaskScheduler.TaskFolder.RegisterTaskDefinition(String Path, TaskDefinition definition, TaskCreation createType, String UserId, String password, TaskLogonType LogonType, String sddl) in C:\Users\dahall\Documents\Visual Studio 2010\Projects\TaskService\TaskFolder.cs:line 430
   at Microsoft.Win32.TaskScheduler.TaskFolder.RegisterTaskDefinition(String Path, TaskDefinition definition) in C:\Users\dahall\Documents\Visual Studio 2010\Projects\TaskService\TaskFolder.cs:line 373

And yes, I make sure that my task folder exists before going ahead and attempting to make my task.
The code that I'm using is this...
Function doesTaskFolderExist() As Boolean
  Try
    Return TaskScheduler.TaskService.Instance.RootFolder.SubFolders.Exists("myTaskFolder")
  Catch ex As Exception
    Return False
  End Try
End Function

If doesTaskFolderExist() = False Then
  taskService.RootFolder.CreateFolder("my folder")
End If

taskService.RootFolder.SubFolders("myTaskFolder").RegisterTaskDefinition("myTask", newTask)

Originally posted: 2016-08-30T14:41:43

The error is coming from the RegisterTaskDefinition native method. It likely has something to do with the settings for newTask.
To make the syntax simpler, try:
Dim tf = If(ts.GetFolder("X"), ts.RootFolder.CreateFolder("X"))
tf.RegisterTaskDefinition("myTask", newTask)
Originally posted: 2016-08-30T15:56:28

Trying to find out why the code works on some machines and other it doesn't is turning into a real pain in the rear end.
Here's my code that I'm using. Like I said, it works on most machines with no issues but others... oops, something went wrong.
Dim taskService As New TaskService()
Dim newTask As TaskDefinition = taskService.NewTask
Dim logonTriggerDefinition As LogonTrigger = New LogonTrigger

newTask.Triggers.Add(logonTriggerDefinition)
newTask.RegistrationInfo.Description = "My Task"
newTask.Principal.RunLevel = TaskRunLevel.Highest
newTask.Principal.LogonType = TaskLogonType.InteractiveToken

Dim exePathInfo As New IO.FileInfo(Application.ExecutablePath)
newTask.Actions.Add(New ExecAction(exePathInfo.FullName, "", exePathInfo.DirectoryName))
exePathInfo = Nothing

With newTask.Settings
    .Compatibility = TaskCompatibility.V2
    .AllowDemandStart = True
    .DisallowStartIfOnBatteries = False
    .RunOnlyIfIdle = False
    .StopIfGoingOnBatteries = False
    .AllowHardTerminate = False
    .ExecutionTimeLimit = Nothing
End With

Try
    newTask.Validate(True)
Catch ex As InvalidOperationException
    newTask.Dispose()
    taskService.Dispose()

    Functions.eventLogFunctions.writeToSystemEventLog("There was an error while validating the task definition settings.", EventLogEntryType.Error)
    Functions.eventLogFunctions.writeCrashToEventLog(ex)

    MsgBox("There was an error while validating the task definition settings. Please see the Application Event Log for more details.", MsgBoxStyle.Critical, Me.Text)
    Exit Sub
End Try

Dim taskFolderObject As TaskFolder = If(taskService.GetFolder("myTaskFolder"), taskService.RootFolder.CreateFolder("myTaskFolder"))
taskFolderObject.RegisterTaskDefinition("My Task", newTask)

newTask.Dispose()
taskService.Dispose()

Originally posted: 2016-08-30T16:21:50

Does this happen on systems that are Windows XP only or also on new versions of Windows? Windows XP does not support folders.
Also, LogonTriggers are tricky. If specified that way you have, without any UserId parameter, then it applies to all logons of all users on the system and must be registered with an account that has the rights on the system to specify that. Check the Documentation tab and look for security for more details.
Originally posted: 2016-09-17T13:27:05


Update README.md

The command should be "sudo update-grub"

I can't believe I missed this for a whole month, thank you!


Add search util

hi stela

Add some examples on the docstring, especially at the search function with multiple example. I would also prefer *Filter have an alias without the Filter suffix


Rename README.md to README.mD

It looks like you're trying to change the casing in a folder or file name. This isn’t allowed. Either revert to the original casing or completely change the file name to enable sign-off.

@adunndevster : Thanks for your contribution! The author, @, has been notified to review your proposed change.

#sign-off

It looks like you're trying to change the casing in a folder or file name. This isn’t allowed. Either revert to the original casing or completely change the file name to enable sign-off.

#sign-off

@adunndevster: I'm sorry - only the author of this article, @, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@adunndevster : Thanks for your contribution! The author, @, has been notified to review your proposed change.


About ErrSessionDescriptionConflictingIceUfrag

Hi,
I have go server and when I connect from my browser use javascript, everything will be ok.
But when I create a client on python to handle some AI process from webrtc (https://github.com/aiortc/aiortc), in SDP have two different a=ice-ufrag: lines when create buffer have video and datachannel. I got an error SetRemoteDescription called with multiple conflicting ice-ufrag values. Can you show me the reason of this error? When I use python as a server, it's ok with two different lines a=ice-ufrag:
Thanks,

Hey @kiepluhanh97
pion/webrtc requires that the remote Peer supports bundling. aiortc does support it, so I am not sure what the issue is.
One alternative would be to use two PeerConnections. We are not planning on supporting non-bundle in the short term though.
Thanks for using Pion, and happy to answer any other questions.

Hi Sean, thanks for all the great work that you are doing.
I'm running into this exact same issue when using aiortc. I'd appreciate your input for solutions, as this is the only WebRTC library in Python.
The error is defined under errors.go.
// ErrSessionDescriptionConflictingIceUfrag  indicates SetRemoteDescription was called with a SessionDescription that
// contains multiple conflicting ice-ufrag values
ErrSessionDescriptionConflictingIceUfrag = errors.New(
    "SetRemoteDescription called with multiple conflicting ice-ufrag values"
)

It's triggered when setting the remote description,under sdp.go.
for _, m := range remoteUfrags {
  if m != remoteUfrags[0] {
      return "", "", nil, ErrSessionDescriptionConflictingIceUfrag
  }
}

Below I attached a SDP example that triggers this error (with some obfuscations), with space/indentation readability. aiortc uses the BUNDLE expression in the SDP, but doesn't offer direct control over the values of what ice-ufrag and ice-pwd are. As @kiepluhanh97 mentions, when using the Javascript APIs directly, the ice-ufrag and ice-pwd are consistent across tracks, and everything works fine. In the SDP example below, the error gets triggered.
With this context, and knowledge of the current state of the framework, is the only alternative to use one PeerConnection per track?
v=0
o=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>
s=-
t=0 0

a=group:BUNDLE 0 1
a=msid-semantic:WMS *

m=audio 61547 UDP/TLS/RTP/SAVPF 96 0 8
  c=IN IP6 2a02:a03f:63c3:ab01:8dd:b522:c44e:4c4a
  a=sendrecv
  a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
  a=extmap:2 urn:ietf:params:rtp-hdrext:ssrc-audio-level
  a=mid:0
  a=msid:cb8e4359-9b62-4c55-9e67-c6aafa14cb5e 073e433b-4499-4470-87b9-c823855577b4
  a=rtcp:9 IN IP4 <IP_ADDRESS>
  a=rtcp-mux
  a=ssrc:2665274437 cname:2492e33b-7366-49f3-8761-5f1fa9c2c67c
  a=rtpmap:96 opus/48000/2
  a=rtpmap:0 PCMU/8000
  a=rtpmap:8 PCMA/8000
  a=candidate:3d9fb1c05760a5aec3bb63582c0ee75f 1 udp<PHONE_NUMBER> 2a02:a03f:63c3:ab01:8dd:b522:c44e:4c4a 61547 typ host
  a=candidate:b3f8102527b52eb84bbce9e970243c72 1 udp<PHONE_NUMBER> 2a02:a03f:63c3:ab01:19ae:93db:2f2:7c29 50461 typ host
  a=candidate:7b995085fe42009d6857ed9f99301acb 1 udp<PHONE_NUMBER> 192.168.XXX.XX 61487 typ host
  a=candidate:e5bcfe9c71647ac306da9adfe5d02ca8 1 udp<PHONE_NUMBER> 192.168.XX.XXX 60962 typ host
  a=candidate:70277552984fbd952854c62500e75a48 1 udp<PHONE_NUMBER> fd82:6bd2:bee9:8cd7:892:8881:c79a:3fa9 61877 typ host
  a=candidate:bf46076bc5b044080f7d76470e336d40 1 udp 16777215 <IP_ADDRESS> 59791 typ relay raddr <IP_ADDRESS> rport 63566
  a=end-of-candidates

a=ice-ufrag:SOc1
a=ice-pwd:3G6gWKQO58pVo3tdBZnxgN
a=fingerprint:sha-256 3E:EE:9E:55:XX:CF:9C:9F:04:68:EB:XX:09:B7:DF:28:69:XX:58:80:8C:42:A1:1E:1C:XX:7A:C8:ED:37:D5:XX
a=setup:actpass

m=application 51010 DTLS/SCTP 5000
  c=IN IP6 2a02:a03f:63c3:ab01:8dd:b522:c44e:4c4a
  a=mid:1
  a=sctpmap:5000 webrtc-datachannel 65535
  a=max-message-size:65536
  a=candidate:3d9fb1c05760a5aec3bb63582c0ee75f 1 udp<PHONE_NUMBER> 2a02:a03f:63c3:ab01:8dd:b522:c44e:4c4a 51010 typ host
  a=candidate:b3f8102527b52eb84bbce9e970243c72 1 udp<PHONE_NUMBER> 2a02:a03f:63c3:ab01:19ae:93db:2f2:7c29 57433 typ host
  a=candidate:7b995085fe42009d6857ed9f99301acb 1 udp<PHONE_NUMBER> 192.168.XXX.XX 64485 typ host
  a=candidate:e5bcfe9c71647ac306da9adfe5d02ca8 1 udp<PHONE_NUMBER> 192.168.XX.XX 53464 typ host
  a=candidate:70277552984fbd952854c62500e75a48 1 udp<PHONE_NUMBER> fd82:6bd2:bee9:8cd7:892:8881:c79a:3fa9 57665 typ host
  a=candidate:bf46076bc5b044080f7d76470e336d40 1 udp 16777215 216.XX.XXX.XX 37545 typ relay raddr <IP_ADDRESS> rport 54827
  a=end-of-candidates

  a=ice-ufrag:1drh
  a=ice-pwd:u6bgmyXf3HzFaNq7blYQZ3
  a=fingerprint:sha-256 3E:EE:9E:55:D0:XX:9C:9F:04:68:EB:0D:09:B7:DF:XX:69:78:58:80:8C:42:A1:1E:1C:XX:7A:C8:ED:37:D5:XX
  a=setup:actpass


Project Status

Hey! I've found this project and was amazed by finally founding a vector library that understands SIMD properly. However, I noticed that the last commit added was about 2 years ago and that there is quite a bunch of commits hanging on the developing branch.
Therefore, I ask, was the project closed? was it moved to a different place/name?
If it was indeed closed, why?
Finally, is it ready for production use? was it used on a real application with success?
Thank you :)

Unfortunately, I simply haven't been interested in working on it. This is still its home, and I may return to it some day, but I don't have any plans to right now.
I don't personally know of any production users.


【OSCP】拆分学习主动数据重构攻击 FSHA 算法实现，及其对应的 DP 防御方法

Type of change

[ ] Add new papers (Please tell us why you think this paper is awesome!)
[ ] Fix the category of an existing paper/papers (Please tell us the reasons)
[ ] Add a new tool/primitive/application with a new markdown page (Thank you! Also, please tell us more about this awesome thing!)

Description

Please include a summary of the change and the relevant motivation.
Fix #767

need review

remove stale tag

remove stale tag


Enable posting comments by student on submitted tasks

Until now only coaches could send comments (on submitted tasks) and only after that the student could reply to these comments.
cc @mintaka

And also, sometimes we need put comment to task, where student even don´t send solution.
For example in case when we talk about that task with this student elsewere and want to send her sample solution.
So student or coach should comment any time.
If there is no "version 1" than attach it to "version 0" for example.


selenium-server-standalone: fix useChrome = false

Motivation for this change
Previously when useChrome was set to false the command would be something like
makeWrapper [...] \
  --add-flags "-cp [...]" \
  --add-flags  \
  --add-flags "org.openqa.grid.selenium.GridLauncherV3"

The problem was that only the arguments to --add-flags was optional while for this to be parsed correctly the flag and argument has to be optional.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Build with chromeSupport = false, works fine and the wrapper looks correctly (didn't try though).


px-page-size-change-intent event is not triggered when page size is getting changed

Code is here https://codepen.io/anon/pen/MOodyv?editors=1011
I added a listener that listens on event px-page-size-change-intent, when changed the page size by selecting different option after "Rows per page", the listener is not triggered, however, px-page-change-intent is triggered when clicking different page.
I already set data-remote in px-data-table, not sure if there's anything missed.

@evandana any chance you've seen this? Could just be that the selected-changed listener should be on the px-dropdown instead of the px-pagination component?

Sounds likely. I'll try to look at it this sprint once we release.
On Tue, Nov 14, 2017 at 12:22 PM Randy Askin<EMAIL_ADDRESS>wrote:

@evandana https://github.com/evandana any chance you've seen this?
Could just be that the selected-changed listener should be on the
px-dropdown instead of the px-pagination component?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PredixDev/px-data-table/issues/179#issuecomment-344332671,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0WTBbxt-uCsvxuXMpO8ZN5mT9vs9kIks5s2cxmgaJpZM4QdTyu
.

Hey i have somewhat related problem, property 'pageSize' doesn't reflect the option selected from 'pageSizeOptions' property instead its always set to 10, i am not setting data-remote property is this supposed to work the way it is always stuck to 10?

Hello!  I am also hitting the issue precisely as @haoruiqian described.  Any update?

Merged PR in v5.1.13.


chore(ast): remove get_object_identifier and get_object_identifier_mut

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5357  👈
#5356
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Dunqing and the rest of your teammates on  Graphite


Overriding dataTaskWithRequest:completionHandler:

Hey guys,
I am trying to override dataTaskWithRequest:completionHandler:. I am following your instructions found in the documentation for AFHTTPSessionManager where it is stated:

To change the behavior of all data task operation construction, which is also used in the GET / POST / et al. convenience methods, override dataTaskWithRequest:completionHandler:.

My class subclasses AFHTTPSessionManager and in the implementation I have the dataTaskWithRequest:completionHandler: method. In its implementation I call [super  dataTaskWithRequest:completionHandler:].
Anyway, the problem is that dataTaskWithRequest:completionHandler: is never called...
Could you please check whether this is a bug? If not, please provide me some instructions.
Cheers!

@sasojadrovski I was having the same issue today migrating our project to 3.x... I don't think it is an actual bug, but a problem with the documentation not being up-to-date.
In the latest AFNetworking version, all the GET, POST, etc. convenience methods don't go through dataTaskWithRequest:completionHandler: anymore. Instead, they go through the new dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:. That is the reason why your subclass's overwrite was not being called.
In order to fix it, you just need to change the implementation of your AFHTTPSessionManager subclass to overwrite dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler: instead and everything should just work as usual.
I have already opened PR #3476 to fix the documentation, so no one else falls into the same problem 😉


Assistance in implementing littleFS on TI C2000 with SYS/BIOS?

Hi There,
Apologies if this is not the appropriate channel. If there is a better way to have this discussion please advise.
We are looking for some freelance/consulting support to get littlefs up and running on our embedded target. It's a little tricky as a "byte" on our target is 16bits instead of 8bits, we're trying to work around it but are a bit resource strapped.
Any help at all is appreciated. Willing to pay competitive freelance rates for advice, consulting or freelance implementation.
Thanks,
Kenneth Miller
Erdos Miller
<EMAIL_ADDRESS>

TI C2000 MCUs have its quirks where sizeof(byte) == sizeof(short).
On my free time, I've done some port of XCP (address granularity of WORD) and CANopenNode to C2000 (SM320F28335-HT) with SysBIOS (6.83) and source code are publicly available in github.  I'm currently looking into porting littleFS to C2000.  I think that this is very feasible.
I think that we are working on the same industry.  So, I can't do freelance.  I'm open to discussions as long as it is done in open discussion board/forum.
cheers
Sicris

After spending two weekends, I'm able to run LFS on my C2000 microcontroller.  This can be found in littlefs port, branch: c2000_port.  All code changes are wrapped in  #if LFS_TI_C2000.  This is  a quite messy workaround and I can't think of a more elegant approach.
I've also added an example project.  In this project,  I'm using TMS320F28335 with SPI FRAM (FM25W256).
I've only tested some basic functions (i.e. format, mount, creating file, write to file, read to file, etc).  This is not extensively tested.  I'm hoping that someone in the opn-source community will take interest and can help do some test.
@ken-at-em, if you have time, please take a look of the port.  Please play around with it and let me know for any issues with this port.
cheers
Sicris

aerdos/littlefs_c2800: LittleFS port to the C2800 architecturegithub.comThere is also this one15 apr. 2023 kl. 12:13 skrev Sicris Rey Embay @.***>:
After spending two weekends, I'm able to run LFS on my C2000 microcontroller.  This can be found in littlefs port, branch: c2000_port.  All code changes are wrapped in  #if LFS_TI_C2000.  This is  a quite messy workaround and I can't think of a more elegant approach.
I've also added an example project.  In this project,  I'm using TMS320F28335 with SPI FRAM (FM25W256).
I've only tested some basic functions (i.e. format, mount, creating file, write to file, read to file, etc).  This is not extensively tested.  I'm hoping that someone in the opn-source community will take interest and can help do some test.
@ken-at-em, if you have time, please take a look of the port.  Please play around with it and let me know for any issues with this port.
cheers
Sicris
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

@vonj Thanks for sharing another c2800 port project.  Link to project pointed by vonj (aerdos/littlefs).   I've checked out the said c2800 port.  It looks like much porting effort is still needed as many LittleFS featues are not working on this port.

Got some weekend spare time.  I've added YMODEM to littlefs_c2000.  This is to test file transfers between MCU and host PC... also, a good addtional test of LittleFS C2000 port.


[TN] Update quantifiers

PR types

PR changes

Describe

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Code reordering: input type number arrows

Requirement
Arrows in style of input type=number on the "Reorder" step of the subsets form have to be invisible for users. (list.jsx, line 48:  <input type='number' name='rank').
Arrows  - small buttons 'up' and 'down' is shown when the input has forcus on.
Solution
Correct the CSS style for input type=number fields.
Do not change the input type to text -- we don't want to loose build-in validation and restrictions.
Describe alternatives you've considered
Make the arrows work for user - move the item up or down in the list.
Screenshots

Could you elaborate on what this issue is about?

Done.

@grenben
I still can see the arrows in version v0.2.4 :(
I move the issue to backlog for now and prioritize it down.

https://stackoverflow.com/questions/26024771/styling-a-input-type-number/26024834#26024834


ACT-661 Re-implement Stakeholders using Vue: Create modal

Is your feature request related to a problem? Please describe.
This is not related to a problem.
Jira ticket: ACT-661
Acceptance Criteria
GIVEN
I am a logged in user

WHEN
- I go to the Components > Stakeholder page
- I click on the '+ Stakeholder' button

THEN
- I will see a modal window to add a new Stakeholder

Additional context
Currently the feature is generated with Django templates using JQuery and this ticket is to render it using Vue.
Example PR as reference for changing Levels and Indicator Type to Vue: https://github.com/hikaya-io/activity/pull/239

@chelliah this is another priority one. The thing about these are that we have the Save & New button that might make these create modals slightly more tricky. See this PR as a reference #345 https://github.com/hikaya-io/activity/pull/345


[ADDITION] AmazingCo

Category
Other
Software to be added
AmazingCo
Supporting Material
URL: https://www.amazingco.me
Description: AmazingCo is an experiences and activities creator, helping people all around the world enjoy better real-world experiences.
Size:
HQ: Melbourne
LinkedIn: https://www.linkedin.com/company/amazingco/
See Record on Airtable:
https://airtable.com/app0Ox7pXdrBUIn23/tblYbuZoILuVA0X3L/rec9v3eGQqJQlxlVD

Need help finding alternatives / competitors


Add class to parse translation files formatted in JSON

https://jira.dev.bbc.co.uk/browse/CONNPOL-3644

This makes a new translation class available that can read the translations from JSON files instead of YAML files. As it's expected that currently all alephant projects are using YAML files, so JSON translations have to be explicitly added to renderers, e.g.
require 'alephant/renderer/i18n/json'
module DataRenderer
  module Views
    class MyRenderer < Alephant::Renderer::Views::Html
      def translator
        Alephant::Renderer::I18n::Json.new(
          locale,
          template_name,
          translations_path)
      end
    end
  end
end

Once this method is in place, the renderer can use t() as normal.

👍

👍


Add rdbms to default install & fix version no.

This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines

[x] The PR has modified HISTORY.rst with an appropriate description of the change (see Modifying change log).

Command Guidelines

[n/a] Each command and parameter has a meaningful description.
[n/a] Each new command has a test.

(see Authoring Command Modules)

Codecov Report

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

@@           Coverage Diff           @@
##           master    #3246   +/-   ##
=======================================
  Coverage   70.27%   70.27%
=======================================
  Files         391      391
  Lines       25067    25067
  Branches     3811     3811
=======================================
  Hits        17616    17616
+ Misses       6345     6342    -3
- Partials     1106     1109    +3

Impacted Files
Coverage Δ

...-cli-role/azure/cli/command_modules/role/custom.py
35.74% <0%> (ø)
:arrow_up:

...dback/azure/cli/command_modules/feedback/custom.py
34.69% <0%> (ø)
:arrow_up:

src/azure-cli-core/azure/cli/core/util.py
68.61% <0%> (ø)
: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 c88ef10...d45658d. Read the comment docs.


graphql.AssertException: interfaceType can't be null

The following schema fails to compile with the following reason: "graphql.AssertException: interfaceType can't be null".
Removing inheriting Node2 from Widget2 stops the error, but I don't understand what's wrong.
class Query {
	@GraphQLDescription("Fetches an object given its ID")
	suspend fun node(
		@GraphQLContext context: Context,
		@GraphQLDescription("The ID of an object") id: String
	): Node2? = ...

	@GraphQLDescription("That's you")
	suspend fun viewer(
		@GraphQLContext context: Context
	): User2? = ...

}

@GraphQLDescription("An object with an ID")
interface Node2 {

	@GraphQLID
	@GraphQLDescription("The ID of an object")
	val id: String
}

class User2
private constructor(...)
	: Node2 {
	@GraphQLID
	override val id: String ...
	val username get() = data.username

	inner class User_WidgetsConnection
	internal constructor(first: Int, after: String?) {
		inner class User_WidgetsEdge
		internal constructor(
			val node: Widget2?,
			val cursor: String
		)
		suspend fun edges(@GraphQLContext context: Context) = ...
		suspend fun pageInfo(@GraphQLContext context: Context) = ...
		suspend fun totalCount(@GraphQLContext context: Context) = ...
	}
	fun widgetsConnection(first: Int, after: String?): User_WidgetsConnection = User_WidgetsConnection(first, after)

}
class Widget2 private constructor(...): Node2 {

	@GraphQLID
	@GraphQLDescription("The ID of an object")
	override val id: String = ...

	override suspend fun user(@GraphQLContext context: Context): User? = ... //<--- I think this is causing the error.
}

Update:
I think it's a bug. The following pattern would cause this error:
interface A { ... }
class B: A { fun getC(): C { ... } }
class C: A { fun getB(): B { ... } }

I believe a cyclical B -> C -> B where both B and C are members of A would cause this issue.
graphql.AssertException: interfaceType can't be null
This is pretty common when implementing Relay specification compliant schemas, because almost everything must implement a "Node" interface. Has anyone successfully created a Relay-compliant schema?


Add PostmarkAdapter to README and description

I created an adapter for Postmark which I've been using on production for a couple of weeks without a problem.
I decided to extract the adapter into it's own project so that others using Postmark can benefit from API only features such as templates. This change adds a reference to the adapter in the README and in the project's description.

Nice work, and thanks for the PR! Having extra adapters is always helpful


Problem creating relation

When I try to create a relation from event -> place this happens and there is no relation created – even though I selected the db Database-entry:
/Users/oldfiche/Desktop/Bildschirmfoto 2020-02-06 um 15.08.43.png/Users/oldfiche/Desktop/Bildschirmfoto 2020-02-06 um 15.08.20.png

/Users/oldfiche/Desktop/Bildschirmfoto 2020-02-06 um 15.08.20.png

Ok, for some reason I can't paste the images here. So a description:
It says: "Invalid Value: Burgtheater+%28Gebäude, use either URLs or select a value"
and to be clear, I used the db-entry!


Richtext control, can not undo ordered lists

Category
[ ] Enhancement
[X] Bug
[ ] Question
Version
Please specify what version of the library you are using: [  3.6.0       ]
Expected / Desired Behavior / Question
When using the RichText Component, when selecting a ordered (numbered) list, and then clicking the ordered list control, we expect the numbered list to be unmade. (this works for unordered lists)
Observed Behavior
When selecting a numbered list in a richtext component, and then clicking the numbered list control, the numbered list is unaffected.
Steps to Reproduce
Using the richtext control. Add some lines and then make them into a ordered list by selecting the text and clicking the ordered list option. Click the same option again to "unmake" the list. Note that nothing happens.
Do the same thing with a unordered list and note that the unordered list is "unmade" correctly

Hi @tobysroof  many thanks for reporting the issue. Would you be interested in trying to fix it and submit a pull request?

Hi @joelfmrodrigues!
I think I found the reason for this bug, I can create a PR for it
could you assign this issue to me?

Hi @Ateina,
Sure, it's all yours!

@michaelmaillot Thank you!

Linked PR has been merged, the fix should be available in the next beta release.


HIVE-25054: (2.3) Upgrade jodd-core dependency to get rid of CVE-2018-21234

What changes were proposed in this pull request?

Backport HIVE-25054 to branch-2.3, to address CVE-2018-21234.
Why are the changes needed?

jodd CVE is listed in https://issues.apache.org/jira/browse/SPARK-44757 in first place, with score 9.8.
Although I prefer to get rid of such dependency by https://github.com/apache/hive/pull/4888, as it is objected by the Hive community (please let me know if we can do it in branch-2.3)
Does this PR introduce any user-facing change?

No.
Is the change a dependency upgrade?

Yes, the upgraded jar has zero-deps, but itself name changed
How was this patch tested?

Pass GA.

cc @sunchao @luciferyang @wangyum

Although I prefer to get rid of such dependency by https://github.com/apache/hive/pull/4888, but it is objected by the Hive community (please let me know if we can do it in branch-2.3)

the reason for my preference of copying rather than upgrading jodd is, that new jodd changed the calculation to use Java 8 Time API, I'm not sure if this will bring behavior change or not.

Close and in favor https://github.com/apache/hive/pull/5151