Blocking message stream on handling forwarded Request

I am checking the message handling code and have noticed the following. Currently, we don't distinguish whether an incoming connections originates from a client or from another replica: both message streams are eventually handled by the function constructed in makeMessageStreamHandler. This function will try to deliver any message produced by the supplied incomingMessageHandler as a reply to the handled incoming message. In case of Request message, it will return a non-nil replyChan and send there a Reply message once it is generated.
This works fine when a replica receives a Request message form a client, since the client will wait for the Reply message on the reply channel. Now we have added request forwarding, a replica might receive Request messages forwarded by other replicas, as well. In that case, it will also try supplying the Reply message back. However, replicas do not expect any message in reply, so it will block on trying to send the Reply message.
@Naoya-Horiguchi When you tested request forwarding, have you experienced any anomaly that would confirm the described problem? I am currently working on changing the message exchange scheme for some other reason. Once I finish, I hope, this issue will be solved, as well. As a quick kludge, we could modify startPeerConnection to receive and discard messages from the channel returned by peerConnector.

This works fine when a replica receives a Request message form a client, since the client will wait for the Reply message on the reply channel. Now we have added request forwarding, a replica might receive Request messages forwarded by other replicas, as well. In that case, it will also try supplying the Reply message back. However, replicas do not expect any message in reply, so it will block on trying to send the Reply message.
@Naoya-Horiguchi When you tested request forwarding, have you experienced any anomaly that would confirm the described problem?

I haven't before but I tested again today, and as you described, the primary peer that received a forwarded Request no longer sends REPLY message even in responding to a Request from client. What I observed was that the primary replica never prints out log "Generated <REPLY ...>" after processing forwarded Request.

I am currently working on changing the message exchange scheme for some other reason. Once I finish, I hope, this issue will be solved, as well. As a quick kludge, we could modify startPeerConnection to receive and discard messages from the channel returned by peerConnector.

Thanks for the comment, I tried the quick fix (with below diff) but it seems this doesn't work.
@@ -285,9 +285,17 @@ func startPeerConnection(connect peerConnector, supply messageSupplier) error {
        // communication, thus return value is ignored. Each replica
        // will establish connections to other peers the same way, so
        // they all will be eventually fully connected.
-       if _, err := connect(out); err != nil {
+       in, err := connect(out)
+       if err != nil {
                return err
        }
+       go func() {
+               for {
+                       select {
+                       case _ = <-in:
+                       }
+               }
+       }()

        go supply(out)

It's expected that this code allows peers forwarding the request to receive the reply from the primary peer which processed the forwarded request. But it seems that the primary peer didn't generate Reply or send it to anyone, so this code might work to solve the problem. I guess that the problem is in the logic of how the primary peer handles forwarded message.
I'll to dig this more.

the primary peer that received a forwarded Request no longer sends REPLY message even in responding to a Request from client. What I observed was that the primary replica never prints out log "Generated <REPLY ...>" after processing forwarded Request.

Does it print enough corresponding "Received <COMMIT ...>" and "Handled <COMMIT ...>" messages?

the primary peer that received a forwarded Request no longer sends REPLY message even in responding to a Request from client. What I observed was that the primary replica never prints out log "Generated <REPLY ...>" after processing forwarded Request.

Does it print enough corresponding "Received <COMMIT ...>" and "Handled <COMMIT ...>" messages?

Neither of the massages is printed.
Lists of logs of primary peer and backup peer are shown below. In this configuration (N=3, and peer 0 is the primary,) the cluster processed 3 requests:

the first request messages are sent to all peers,
the second request messages are sent to peer 1 and 2 (so request forwarding happens,)
the third request messages are sent to all peers.

So the logs with "cv=3" should be what we are interested in now.
primary peer
[minbft] 12:28:37.330 makeMessageStreamHandler.func1 ▶ DEBU 001 Replica 0: Received <REQUEST client=0 seq=1588076917328232472 operation="c0r0">
[minbft] 12:28:37.330 makeGeneratedMessageConsumer.func1 ▶ DEBU 002 Replica 0: Generated <PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>
[minbft] 12:28:37.330 handleGeneratedPeerMessages ▶ DEBU 003 Replica 0: Handled <PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>
[minbft] 12:28:37.851 makeMessageStreamHandler.func1 ▶ DEBU 004 Replica 0: Received <COMMIT cv=1 replica=2 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
[minbft] 12:28:37.852 makeMessageStreamHandler.func1 ▶ DEBU 005 Replica 0: Handled <COMMIT cv=1 replica=2 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
2020/04/28 12:28:37 Received block[1]: c0r0
[minbft] 12:28:37.852 makeGeneratedMessageConsumer.func1 ▶ DEBU 006 Replica 0: Generated <REPLY replica=0 seq=1588076917328232472 result="{\"Height\":1,\"PrevBlockHash\":null,\"Payload\":\"YzByMA==\"}">
[minbft] 12:28:37.852 makeMessageStreamHandler.func1 ▶ DEBU 007 Replica 0: Received <COMMIT cv=1 replica=1 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
[minbft] 12:28:37.853 makeMessageStreamHandler.func1 ▶ DEBU 008 Replica 0: Handled <COMMIT cv=1 replica=1 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
2020/04/28 12:28:37 Error receiving from server stream: rpc error: code = Canceled desc = context canceled
[minbft] 12:28:38.873 makeMessageStreamHandler.func1 ▶ DEBU 009 Replica 0: Received <REQUEST client=0 seq=1588076917871033762 operation="c0r1">
[minbft] 12:28:38.873 makeGeneratedMessageConsumer.func1 ▶ DEBU 00a Replica 0: Generated <PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>
[minbft] 12:28:38.873 handleGeneratedPeerMessages ▶ DEBU 00b Replica 0: Handled <PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>
[minbft] 12:28:38.877 makeMessageStreamHandler.func1 ▶ DEBU 00c Replica 0: Received <REQUEST client=0 seq=1588076917871033762 operation="c0r1">
2020/04/28 12:28:38 Error receiving from server stream: rpc error: code = Canceled desc = context canceled
[minbft] 12:28:38.896 makeMessageStreamHandler.func1 ▶ DEBU 00d Replica 0: Received <REQUEST client=0 seq=1588076918894168966 operation="c0r2">
[minbft] 12:28:38.896 makeGeneratedMessageConsumer.func1 ▶ DEBU 00e Replica 0: Generated <PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>
[minbft] 12:28:38.896 handleGeneratedPeerMessages ▶ DEBU 00f Replica 0: Handled <PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>
2020/04/28 12:28:38 Error receiving from server stream: rpc error: code = Canceled desc = context canceled

backup peer
[minbft] 12:28:37.331 makeMessageStreamHandler.func1 ▶ DEBU 001 Replica 1: Received <REQUEST client=0 seq=1588076917328232472 operation="c0r0">
[minbft] 12:28:37.847 makeMessageStreamHandler.func1 ▶ DEBU 002 Replica 1: Received <PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>
[minbft] 12:28:37.848 makeGeneratedMessageConsumer.func1 ▶ DEBU 003 Replica 1: Generated <COMMIT cv=1 replica=1 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
[minbft] 12:28:37.848 makeMessageStreamHandler.func1 ▶ DEBU 004 Replica 1: Handled <PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>
[minbft] 12:28:37.848 handleGeneratedPeerMessages ▶ DEBU 005 Replica 1: Handled <COMMIT cv=1 replica=1 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
2020/04/28 12:28:37 Received block[1]: c0r0
[minbft] 12:28:37.848 makeGeneratedMessageConsumer.func1 ▶ DEBU 006 Replica 1: Generated <REPLY replica=1 seq=1588076917328232472 result="{\"Height\":1,\"PrevBlockHash\":null,\"Payload\":\"YzByMA==\"}">
[minbft] 12:28:37.850 makeMessageStreamHandler.func1 ▶ DEBU 007 Replica 1: Received <COMMIT cv=1 replica=2 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
[minbft] 12:28:37.850 makeMessageStreamHandler.func1 ▶ DEBU 008 Replica 1: Handled <COMMIT cv=1 replica=2 prepare=<PREPARE cv=1 replica=0 view=0 client=0 seq=1588076917328232472>>
2020/04/28 12:28:37 Error receiving from server stream: rpc error: code = Canceled desc = context canceled
[minbft] 12:28:37.873 makeMessageStreamHandler.func1 ▶ DEBU 009 Replica 1: Received <REQUEST client=0 seq=1588076917871033762 operation="c0r1">
[minbft] 12:28:38.873 makePrepareTimerStarter.func1.1 ▶ INFO 00a Replica 1: Prepare timer expired: client=0 seq=1588076917871033762 view=0
[minbft] 12:28:38.874 makeMessageStreamHandler.func1 ▶ DEBU 00b Replica 1: Received <COMMIT cv=2 replica=2 prepare=<PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>>
[minbft] 12:28:38.875 makeGeneratedMessageConsumer.func1 ▶ DEBU 00c Replica 1: Generated <COMMIT cv=2 replica=1 prepare=<PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>>
[minbft] 12:28:38.875 makeMessageStreamHandler.func1 ▶ DEBU 00d Replica 1: Handled <COMMIT cv=2 replica=2 prepare=<PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>>
[minbft] 12:28:38.875 handleGeneratedPeerMessages ▶ DEBU 00e Replica 1: Handled <COMMIT cv=2 replica=1 prepare=<PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>>
2020/04/28 12:28:38 Received block[2]: c0r1
[minbft] 12:28:38.875 makeGeneratedMessageConsumer.func1 ▶ DEBU 00f Replica 1: Generated <REPLY replica=1 seq=1588076917871033762 result="{\"Height\":2,\"PrevBlockHash\":\"1IHbQT2av2WvmpLmmA0C9MgbWtn72NOVS9hK+atUUTo=\",\"Payload\":\"YzByMQ==\"}">
[minbft] 12:28:38.875 makeMessageStreamHandler.func1 ▶ DEBU 010 Replica 1: Received <PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>
[minbft] 12:28:38.876 makeMessageStreamHandler.func1 ▶ INFO 011 Replica 1: Dropped <PREPARE cv=2 replica=0 view=0 client=0 seq=1588076917871033762>
2020/04/28 12:28:38 Error receiving from server stream: rpc error: code = Canceled desc = context canceled
[minbft] 12:28:38.895 makeMessageStreamHandler.func1 ▶ DEBU 012 Replica 1: Received <REQUEST client=0 seq=1588076918894168966 operation="c0r2">
[minbft] 12:28:38.898 makeMessageStreamHandler.func1 ▶ DEBU 013 Replica 1: Received <COMMIT cv=3 replica=2 prepare=<PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>>
[minbft] 12:28:38.898 makeGeneratedMessageConsumer.func1 ▶ DEBU 014 Replica 1: Generated <COMMIT cv=3 replica=1 prepare=<PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>>
[minbft] 12:28:38.898 makeMessageStreamHandler.func1 ▶ DEBU 015 Replica 1: Handled <COMMIT cv=3 replica=2 prepare=<PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>>
[minbft] 12:28:38.898 makeMessageStreamHandler.func1 ▶ DEBU 016 Replica 1: Received <PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>
[minbft] 12:28:38.899 makeMessageStreamHandler.func1 ▶ INFO 017 Replica 1: Dropped <PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>
[minbft] 12:28:38.899 handleGeneratedPeerMessages ▶ DEBU 018 Replica 1: Handled <COMMIT cv=3 replica=1 prepare=<PREPARE cv=3 replica=0 view=0 client=0 seq=1588076918894168966>>
2020/04/28 12:28:38 Received block[3]: c0r2
[minbft] 12:28:38.899 makeGeneratedMessageConsumer.func1 ▶ DEBU 019 Replica 1: Generated <REPLY replica=1 seq=1588076918894168966 result="{\"Height\":3,\"PrevBlockHash\":\"KK6OcXuCIlYXFAVMvtm+/kAPMfXPZH778YgKhIAIeUg=\",\"Payload\":\"YzByMg==\"}">
2020/04/28 12:28:38 Error receiving from server stream: rpc error: code = Canceled desc = context canceled
2020/04/28 12:28:39 Error receiving from replica 0: rpc error: code = Unavailable desc = transport is closing
2020/04/28 12:28:39 Error receiving from server stream: rpc error: code = Canceled desc = context canceled

So the primary does not produce Reply messages because it stops receiving Commit message after it has received the forwarded Request...

I wondered how the primary peer printed the error log "Error receiving from server stream: rpc error: code = Canceled desc = context canceled", and found that It was printed by goroutine in (*replyState)#ReplyChannel() called from requestReplier. The root cause of this is that the primary peer receives 2 forwarded REQUESTs with the same sequence number, and the second one is not handled properly. We have duplicate checking mechanism captureSeq() and if it detects REQUEST with already captured seq, requestProcessor returns new=false and err=nil. These return values are propagated to messageStreamHandler. But curiously, messageStreamHandler does not drop the second REQUEST even if new is false, because handle() returns non-nil replyChan.
Reordering return checks like below solves this specific issue of channel blocking:
                        if replyChan, new, err := handle(msg, false); err != nil {
                                logger.Warningf("Failed to handle %s: %s", msgStr, err)
+                       } else if !new {
+                               logger.Infof("Dropped %s", msgStr)
                        } else if replyChan != nil {
                                m, more := <-replyChan
                                if !more {
                                        continue
                                }
                                replyBytes, err := m.MarshalBinary()
                                if err != nil {
                                        panic(err)
                                }
                                reply <- replyBytes
-                       } else if !new {
-                               logger.Infof("Dropped %s", msgStr)
                        } else {
                                logger.Debugf("Handled %s", msgStr)
                        }

, but that might have some unexpected impact on the other handling path for messages.PeerMessage. We have similar duplicate checking captureUI for messages.PeerMessage, so I feel that checking !new first makes sense. Can I have your ideas on this point?

... messageStreamHandler does not drop the second REQUEST even if new is false, because handle() returns non-nil replyChan

This is because we need to send a REPLY message to the client even if the corresponding REQUEST message has been processed before. Imagine the replica receives and processes the REQUEST message embedded into a PREPARE message before receiving it directly from the client. Nevertheless, the client might still need to receive the REPLY message to collect a sufficient quorum. This is one reason why REPLY messages are always sent to the client in response.

We have similar duplicate checking captureUI for messages.PeerMessage

captureUI in makeUIMessageProcessor will only return new == false if the message was already processed. Subsequent message processing stages rely that such messages are processed only once.

@Naoya-Horiguchi Could you please check if #175 helps to resolve this issue?

@Naoya-Horiguchi Could you please check if #175 helps to resolve this issue?

Sorry for the late response, I confirmed that #175 fixes this issue.

... messageStreamHandler does not drop the second REQUEST even if new is false, because handle() returns non-nil replyChan

This is because we need to send a REPLY message to the client even if the corresponding REQUEST message has been processed before. Imagine the replica receives and processes the REQUEST message embedded into a PREPARE message before receiving it directly from the client. Nevertheless, the client might still need to receive the REPLY message to collect a sufficient quorum. This is one reason why REPLY messages are always sent to the client in response.

I agree that a client should always receive REPLY for a REQUEST whichever paths the replicas accept it from (directly from the client, REQUEST embedded in PREPARE, or forwarded REQUEST). But "exactly one" REPLY or "at least one" REPLY(s) should be clear because client applications have to decide how to handle duplicated REPLYs. As long as I reviewed #175, "exactly one" REPLY is intended (because 2nd forwarded REQUEST is dropped with that change) and I think that's a good choice.
BTW, our sample client might want to check duplication of REPLY messages.

@Naoya-Horiguchi Could you please check if #175 helps to resolve this issue?

Sorry for the late response, I confirmed that #175 fixes this issue.

Great news! I know you had holidays in Japan. Thanks for making the checks :slightly_smiling_face:

BTW, our sample client might want to check duplication of REPLY messages.

I believe it already does the check here. Admittedly, the design of the client package differs from the core package because it was implemented earlier. We might like to adjust it later to match the newer approach implemented in core...


🧑💻: Build Discussion Forums and Community Features

:red_circle: Title :Build Discussion Forums and Community Features
:red_circle: Enhancement Aim :Allow users to discuss, ask questions, and share their interpretations of Chanakya's teachings.
:red_circle: Changes :
Add Discussion Forums and Community Features
Screenshots 📷

N/A

:white_check_mark: To be Mentioned while taking the issue :

Full name : Anshika Pal
What is your participant role? (Mention the Open Source Program name. Eg. GSOC, GSSOC, SSOC, JWOC, etc.)
GSSOC

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@Avdhesh-Varshney kindly assign this issue to me.it would be really kind of you!
thank you!

How can you resolve this issue?

It is just an enhancement that I will add to site. There will be one section of discussion forum where people can share their teachings and learnings. Others can view it and can get inspired. It will be like a community for all like minded peoples.


multiple select option validation doesn't work

I used following code:
<select name="permissions[]" v-model="singleItem.permissions" class="form-control show-tick ddbox"  v-validate="'required'" :multiple="true" data-live-search="true" data-size="5" data-actions-box="true">
<option v-for="(item, index) in permissionsArray" :value="item.value" :selected="checkExist(item.value,splitString(singleItem.permissions))">@{{ item.text }}</option>
</select>
@{{errors.first('permissions[]')}}

everything is good and validation works when I remove   :multiple="true"  but when  :multiple="true" is used validation doesn't work !!!
and  error message  shows : 'field is required' in any case both select multiple items or none of them select !
may you help me?

I tried this in an example here:
https://jsfiddle.net/yx1agwm3/
It works fine with the latest release: 2.1.0-beta.9 can you try it or reproduce the issue in a live example?

thanks @logaretm
your example helped me more and I used 'min:1' instead of 'length:2' so it works very well.


#292: Added option to dump test results to a custom file and enable C…

…I workflow to summarize ttrt run and perf test results
This PR gives users the ability to dump test results into a json file and allows CI to upload the tests results to summarize for ttrt run and ttrt perf tests.

converting to draft while I fix some CI upload issues


Power Toys UI crashes any time trying to open Settings

Microsoft PowerToys version
0.76.2
Installation method
GitHub
Running as admin
No
Area(s) with issue?
Settings
Steps to reproduce
Power Toys dumps both trying to open Settings (double click on traybar icon) or the Shortcuts popup (single click on traybar icon)
✔ Expected Behavior
I`d expect to see the Settings interface
❌ Actual Behavior
Opens a white rectangle for a while, than the process crashes.
PowerToys.Settings.exe.16588.dmp
PowerToys.Settings.exe.5716.dmp
PowerToys.Settings.exe.10128.dmp
PowerToys.Settings.exe.11892.dmp
[PowerToys.Settings.exe.1369
PowerToysReport_2023-12-14-08-57-38.zip
2.dmp](https://github.com/microsoft/PowerToys/files/13670389/PowerToys.Settings.exe.13692.dmp)
Other Software
No response

The symptoms described above are identical to the ones I am seeing in my issue.

/dup https://github.com/microsoft/PowerToys/issues/27037


[question] Optional import

Hi,
I have a wasm import like this that does not get exported, if it's not used:
proc clear_screen*(dest: uint8, color: Color){.importc, cdecl.}

If I do this in the host:
let env = loadWasmEnv(data, hostProcs = [
  wasmHostProc("*", "clear_screen", "v(ii)", null0ImportClearBackground)
])

It will error if it's not imported from the wasm, and it doesn't seem to add the import it if I don't use it, which I verified by looking at the wast.
I am making a game-engine, so not all functions are necessarily used in every game.
I guess I can solve this 2 ways:

somehow force it to import it in the wasm, even though I don't use it.
be more tolerant in the host of missing imports

I am fine with either solution, but I do kinda like the second a bit better. How do I do this?

Sorry for the noise, solved it like this:
proc cartLoad*(data:sink string): void =
  var env = m3_NewEnvironment()
  var runtime = env.m3_NewRuntime(uint16.high.uint32, nil)
  var module: PModule

  checkWasmRes m3_ParseModule(env, module.addr, cast[ptr uint8](data[0].addr), uint32 data.len)
  checkWasmRes m3_LoadModule(runtime, module)
  checkWasmRes m3LinkWasi(module)

  # imports may not be exposed
  try:
    checkWasmRes m3_LinkRawFunction(module, "*", "null0_log", "v(i)", null0ImportLog)
  except WasmError:
    discard

  checkWasmRes m3_CompileModule(module)


FeedBuilder add extension to each file

Similar to Click Once we can add extension to each file eg. deploy for security reasons

Thanks!

What does this do and what is it good for?

By default IIS blocks access to .config files and this for a very good reason. A hosting provider's may block to download another files like .exe,dll. etc. My approach is add extension eg. deploy to each published file on the web server. Local update get the original extension of file, eg feed
localPath="Caliburn.Micro.Platform.dll" updateTo="Caliburn.Micro.Platform.dll.deploy"


Unable to use JSX directly in setup()

The createElement function has been added to the v2.2.0 release, which is great! 🎉
But the babel-sugar-inject-h plugin attempts to automatically inject h from this.$createElement, but there is no this in setup(), so JSX cannot be used directly.

Could you open an issue there instead please?

In order to be compatible with the old code, I may have to use this plugin. 😅
https://github.com/vuejs/vue-function-api/blob/a7413ec53021887c90f777c29a88e5c04cff8329/src/install.ts#L45-L52
Can we import createElement here and build a { $createElement: createElement } object to bind it to this? This may cause this in setup() to be not the expected undefined, but it will save a lot of trouble.
Now only need:
import { createComponent } from 'vue-function-api';

// No longer need to manually import `createElement as h`
// import { createComponent, createElement as h } from 'vue-function-api';

export default createComponent({
  setup(initialProps) {
    // babel plugin will auto-inject h
    // const h = this.$createElement;
    return (props) =>
{props.msg}
;
  },
});

Is there any good solution?
Please reopen this issue. 🙏

I would say that the fix is skipping the plugin at https://github.com/vuejs/jsx/blob/dev/packages/babel-sugar-inject-h/src/index.js#L60-L62 if we are in a setup function but I'm not sure. You could give it a try and directly create a PR to the plugin 🙂
We cannot add that hack as the lib must stay in sync with the RFC.

h won't be inserted if you use an arrow function, so you can do
`jsx
import {
createComponent,
createElement
} from 'vue-function-api'
export default createComponent({
setup: props => {
const h = createElement
return () => {
  return (

card

  )
}

}
`

Hum... I also considered this, but this plugin should eventually solve this problem.
If the plugin imports createElement from vue-function-api to auto-inject h is it appropriate? Will the createElement function be exposed directly in future Vue?

@PatrykWalach As long as JSX is used in the function, h will be injected automatically. When I manually define const h = createElement there will be duplicate 'h` identifier exceptions

You won't get any errors using method above.
link
And exposing createElement is part of rfc#28 which changes the arguments of render function

@PatrykWalach Thank you! I didn't see it clearly before. 😂


Consider advertising compatibility with older Stash releases

We're currently using Stash 3.5.x (yes, my license has expired and I'm too cheap/lazy to upgrade), and I wanted to report that this plugin works fine with it. However, the plugin manager reports it as "incompatible".
Would you please consider changing the minimum required version down to 3.5? Thanks.

schedule for 1.5

implemented in 1.5


CMake missing in docker image

Trying out the Docker image for the first time and noticing there is no cmake binary in the image. When we rebuild and repost, it may be nice to have it included.
My test project that I've been using on OSX was a simple CMake project (as is typical these days, I think) and I had to dig through it to find the compiler commands to test the docker container version.

Hmmm, yes - that was a deliberate choice at the time, in an effort to keep the image size as small as possible and act as a base image (expecting people to install, for example, whatever version of CMake they need, along with any other dev tools and dependencies). Even though it's straightforward to do this, I do appreciate what you say - CMake is pretty standard these days, and it's fairly small, so it could be a helpful addition. I'm unsure where to draw the line on this one!

Ah, I think that that is a good idea!
Forgive me, as my Docker knowledge is basically 0. Is this what you meant by this section of the README?
FROM realtimesanitizer/radsan-clang:latest
RUN apt-get update && apt-get install -y git cmake vim

I think this can likely be closed, I like the idea of keeping the image as small as humanly possible. Thanks for the help/explanation

No probs! Yes, that correct - that's what I mean by that Dockerfile snippet in the README 👍


[OPS-4836] enable travis

Add travis support to basedir.  Since Travis ships a ZTS enabled php, we need to remove that and build our own non-ZTS version since we do not support ZTS at this time.
Also this specifically changes configure to check for ZTS and fail if detected.

👍


[YouTube Playlists] Unable to download full playlist - error "list" is not a recognized command Windows 10

Hey everyone,
Tried to download a YouTube playlist of around 250 videos and it always only downloads the first one:

youtube-dl --yes-playlist https://www.youtube.com/watch?v=gI3Zn9-tuq8&list=PLC2tuhuSqVt2uAiAZLBE0pD2tQiabZ-5j
[youtube] gI3Zn9-tuq8: Downloading webpage
[youtube] gI3Zn9-tuq8: Downloading video info webpage
[youtube] gI3Zn9-tuq8: Extracting video information
[download] Post Malone - Rockstar ft. 21 Savage (Crankdat Remix)-gI3Zn9-tuq8.mp4 has already been downloaded
[download] 100% of 58.90MiB
'list' is not recognized as an internal or external command,
operable program or batch file.

Any recommendations?

[X] I've verified and I assure that I'm running youtube-dl 2018.01.27

Before submitting an issue make sure you have:

[X] At least skimmed through the README, most notably the FAQ and BUGS sections
[X] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[X] Bug report (encountered problems with youtube-dl)

youtube-dl -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2018.01.27
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.15063
[debug] exe versions: none
[debug] Proxy map: {}
Usage: youtube-dl [OPTIONS] URL [URL...]
youtube-dl: error: You must provide at least one URL.
Type youtube-dl --help to see a list of all options.

https://github.com/rg3/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command


[3.x] Add ability to pick random value from array

Backport of https://github.com/godotengine/godot/pull/67444.

The best would even be to have used git cherry-pick -x 9f4dbf415da6d150788915cb35a9c3dc7f04c547 to do a proper cherry-pick commit of #67444, keeping @nonunknown as the author. There would be a few conflicts to resolve as done in this PR, which can be amended into the cherry-pick commit. Then you can also give yourself some credit for the backporting work by adding Co-authored-by: Your name <your email> at the end of the backported commit's message.

alright I squashed the commits, I tried doing the cherry pick to have @nonunknown as the author but it wouldn't stay when I would squash again.

Thanks! Yeah doing a cherry-pick after the fact in the branch where you already have the backport would be tricky. I went ahead and applied some Git magic to restore the author/date from the original PR, and added you as co-author :)

Thanks! And congrats for your first merged Godot contribution :tada:

Sweet! 😁

This is nice. Thanks! Lots of code with the pattern array[randi() % array.size()] will get replaced by this.

@BleedingXiko @akien @Calinou Can we have the same for dicts too? Or is it too much asking?

Sorry @akien, I meant @akien-mga. Mea culpa.

@oeleo1 Dictionaries have a less clear use-case, since they are a collection of key-value pairs, not an indexed list of values. It probably needs a new proposal, or at least a PR implementing it to start a new discussion.
Also, please don't leave multiple comments in the row, this creates multiple notification for maintainers and anyone else subscribed to this repository. Use the edit button instead.

Thanks for your response. I see your point, but in my mind, and in practical terms, the use case is clear had the method been called get_random instead of pick_random. It's a shortcut of the pattern array/dict.get(randi() % array/dict.size()).
Consequently, for dictionaries, this method would be a shortcut of the dict[randi() % dict.keys().size()]. This is obviously an optimization we have lived without for years, but since the pick_random` for arrays has made it to the core, it is appreciated, and deemed quite useful. Experience shows that the same pattern for dicts is a common use case.

It probably needs a new proposal, or at least a PR implementing it to start a new discussion.

Agreed, but we focus on game making and deliberately refrain from entering the PR business, so all I can offer is an opinion from our experience at face value. Up to the dev team / volunteers to pick up on that or not. We won't complain either way as it's not our territory :-)


System Ram Problem on Google Colab

Describe the bug
I use a lot of class images for my models which isn't usually a problem. Lately while caching latents, colab increasingly runs out of system ram (12.7 on free colab) after 1600 ish class images cached. This is making it incredibly hard to start a training session with 80% of attempts now failing.
Reproduction
I have no reproducible code, with only a system crash when reaching max system ram
Logs
No response
System Info
ShavamShriro diffusers, google colab

The system ram leak seems to have been resolved. Its now stabilizing at 8.5gb during caching of latents.


fix UG errors

Fix errors in UG

Pull Request Test Coverage Report for Build 701

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.69%

Totals

Change from base Build 698:
0.0%

Covered Lines:
2371

Relevant Lines:
2558

💛  - Coveralls


Create a navbar-12

One need to make this component using HTML and Tailwind CSS. I would suggest to use Tailwind Playgrounds to make things faster and quicker.
Here is a reference to the component.

After building the component please raise a PR with a screenshot of the component and add the component in Navbar/navbar-12.html.
If you need to use any icon please use it from Hero Icons
Good luck.

Assign to me


(Docs) Minor consistency fix in index.txt

Hello,
I noticed a small consistency issue in index.txt
I removed periods in two section headers

@timgraham Absolutely. Fixed!


note about valid datatype in JWT

This [page] (https://www.krakend.io/docs/authorization/jwt-validation/) doesn't say anything about jwt token types, it might be worth adding an indication that all types other than strings cause a validation error

Thanks @nedopolz ,
The current page outlines the dataypes of fields. Let us know if you expect something different.


chore(CODEOWNERS): add Rick Rackow

In order to up the capacity for maintaining the extensions, add @rira12621 as codeowner

/lgtm


Fix for "Running cargo update without a Cargo.lock ignores arguments" #6872

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Closes #6872.

Oops sorry I missed this! Could this perhaps be structured a way internally that doesn't involve recursing and redoing a lot of work? Perhaps the branch could simply return an empty resolve as the previous resolve since one technically doesn't exist?

I can see how to remove the recursion and skip saving and reloading Cargo.lock.
The current code queries previous_resolve (loaded from the Cargo.lock), looking for the dependencies' PackageId to do the update. I'll try and work out another way to query this, it looks like PackageRegistry might work.

This updated code avoids recursion and an unnecessary save and load of the lock file.
The second new PackageRegistry is required to avoid a failed assertion assert!(!self.patches_locked) in PackageRegistry::lock_patches.
To avoid using a first resolve_with_previous at all, I'm looking to use PackageRegistry::query (provides a set of Summary structs) to replace Resolve::query (returns a single PackageId struct) in the update logic. I'm not sure how I'd go about finding a unique PackageId from this set. I can filter by the version string provided to update on the command line, but it's not clear to me that will provide a unique answer.

Hm so if you update this branch to simply return an empty Resolve (aka Resolve::default(), adding that if it doesn't already exist), I think that would also pass tests and exhibit the desired behavior?

There is no Resolve::default()currently, and if I wrote a trivial one with e.g. an empty .graph field, then Resolve::query() would just query the empty graph and return nothing, hence in cargo update we wouldn't find any of the dependencies we were trying to update.

Oh I think I see. I thought that the --precise information was carried through some other side channel that didn't require the previous resolve, but I see now how it needs the previous resolve. This feels pretty bad but that's not your fault at all, it's largely just how badly designed the method of passing --precise down is! (blame me for that)
In light of that this looks good to me!
@bors: r+

:pushpin: Commit 36160ed44497c57dadd76e900587d5d50cafd8b5 has been approved by alexcrichton

:hourglass: Testing commit 36160ed44497c57dadd76e900587d5d50cafd8b5 with merge 1b4fab32635536daed8102649aae728340525958...

:sunny: Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 1b4fab32635536daed8102649aae728340525958 to master...


FZ editor: allow standalone debugging

Currently, in order to start the FZ editor in the debugger as a standalone app, you have to set the command line arguments in the project properties.
65537 <- HMONITOR monitor
0_0_2560_1400 <- area for editor position (screen minus taskbar) DPI scaled
2560_1440 <- zone work area NOT DPI scaled
C:\Users\%uusername%\AppData\Local\Temp\xbko.1 <- system generated tmp file
C:\Users\%uusername%\AppData\Local\Temp\xbko.2 <- system generated tmp file
C:\Users\%uusername%\AppData\Local\Temp\xbko.0 <- system generated tmp file

We should add the ability to start it standalone, in debug mode, without having to pass the arguments.

Upon a quick reflection, why. Is the launching via VS with those Parameters set not enough?

If you launch PT in the debugger, then when the FZ editor start, you have to manually attach the debugger.
But this is not the scenario we want to improve. The scenario is to set the FZ editor as the startup project and launch it directly without having to start PT first.
In that scenario you have to manually add the parameters in the project properties. And change them for every monitor you are testing on. Is very annoying and a waste of time..
The proposal is to add a DEBUG only check and if the input arguments are missing, generate them on the fly.

Gotcha. Agreed

We can remove from the input arguments the Monitor handle since it's not used in the editor.

For the editor v2, the position argument should be optional, since it will have visibility of all monitors regardless on which monitor it will startup.
The working are of the each monitor will also be obtained by the editor and not passed as an input argument.
Some of this changes can be made already.

https://github.com/microsoft/PowerToys/pull/4022 is a first step in the right direction, more changes are needed to complete this task, since the editor still requires some parameters from the FZ engine.

We just released 0.20 and this should be resolved there.  Please try it out.


Creating table in Azurite with Azure Storage Explorer

Hi
I am getting the following error when trying to create a Table Storage in Azurite using the Azure Storage Explorer

@RashdaM Since you're using https with Azurite please either:

Try using system proxy (can be found under Settings (gear on the left hand side -> application -> proxy)
Following what this user did: https://github.com/microsoft/AzureStorageExplorer/issues/2598#issuecomment-616765993
Switch to using Azurite with http

Closing due to lack of response. If you are still encountering this problem we recommend opening a support ticket via the Azure Portal. Alternatively you can open a new issue here. Thanks.


[Errno 32] Broken pipe received when trying to load game via netdimm_send

I have the following setup that is tested with the older Python 2 script:
A Sega Naomi (4.02 firmware) connected to a MacBook Pro with Catalina running Python 2.7 (for the older script) and Python 3.6.8 via a cross over cable.
I ran the following command to attempt to send a game to the Sega Naomi:
netboot iandurnford$ python3 -m scripts.netdimm_send <IP_ADDRESS> powerstone2.bin
This is what is displayed in the terminal window after running the command above:
sending...
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/scripts/netdimm_send.py", line 90, in
sys.exit(main())
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/scripts/netdimm_send.py", line 81, in main
netdimm.send(data, key)
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/netboot/netboot.py", line 61, in send
self.__upload_file(data, key, progress_callback or (lambda _cur, _tot: None))
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/netboot/netboot.py", line 161, in __upload_file
self.__upload(addr, current, 0)
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/netboot/netboot.py", line 132, in __upload
self.__write(struct.pack("<IIIH", 0x04800000 | (len(data) + 0xA) | (mark << 16), 0, addr, 0) + data)
File "/Users/iandurnford/Documents/Old Hard drive Backup/Projects/Sega Naomi/Modern_NetBoot/netboot/netboot/netboot.py", line 96, in __write
self.sock.send(data)
BrokenPipeError: [Errno 32] Broken pipe
Ians-MacBook-Pro:netboot iandurnford$

Bizarre, it seems to at least get past the bit where it resets the netdimm to say "Now loading..." and send the key. Does it print out a percentage at all or does it fail right away?

I didn't see this before I opened a new issue, but this is the same problem I'm having.

Try yanking the timeouts.
index 9cf0e6d..0dd1264 100644
--- a/netdimm/netdimm.py
+++ b/netdimm/netdimm.py
@@ -280,9 +280,7 @@ class NetDimm:
         # - pre-type3 triforces jumpered to satellite mode.
         try:
             self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-            self.sock.settimeout(1)
             self.sock.connect((self.ip, 10703))
-            self.sock.settimeout(10)
         except Exception as e:
             raise NetDimmException("Could not connect to NetDimm") from e


Set SECRET_KEY with setup-server.sh

setup-server.sh should take care of setting SECRET_KEY if the user doesn't want to modify the .env file.
This flow should be implemented in 2 ways (if the .env file does not contain the SECRET_KEY of you-should-set-a-secret-key)

setup-server will set it if it's not already in the current environment when you run the setup script.
If it is in the current environment, setup-server will copy that into the .env file

Also, this should promote a 0.5.2 release along with #100

This won't be making it into 0.5.2 primarily because it's not a bugfix. I might be yoloing the versioning right now, but I'm generally trying to keep the patch version reserved for bugfixes. This will definitely be in v0.6.0 though.

Makes sense to not include it into 0.5.2 if you are using patch versions just for bug fixes. This will constrain automating the 0.5.x version without adding a SECRET_KEY which will be introduced in a version relatively soon. I'll probably just cherry-pick this commit into my automation.

You could add it to the .env programmatically without the setup-server so that you're not cherry picking commits. After setup-server.sh finishes running, echo "SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" >> .env


Add mangling to reduce website size

Use a custom (*) mangler (that I built for this purpose) to reduce website size. The mangler will look at all the classes (given a base expression) in the HTML, CSS, and JS of the project and, based on how often they appear, replace them by shorter strings. Given that some classes appear over 1500 time (once per brand), this has quite some effect on the size of the website. It will do the same for CSS variables, HTML data attributes and HTML ids; but the gains for these are less.

*: I've looked into using existing ones for Webpack, e.g. mangle-css-class-webpack-plugin, but they don't play nicely with the pug+HtmlWebpackPlugin setup. Additionally, it doesn't have all the features I would like to have

As of 9e97a679e15caeb55592b55cb2c6f7fb95b8a508 the gains of this PR are as per the table below. Not amazing, but not bad either 🙂

File
Size (in KB), no mangling
Size (in KB), with mangling
Size reduction

index.html
3558
3246
-8.79%

app.css
14
12
-11.15%

script.js
5
5
-5.66%

combined
3567
3263
-8.80%

Exact values
index.html
before: 3.643.338 bytes
after:  3.323.026 bytes
gain:   -8.79%
app.css
before: 13.830 bytes
after:  12.288 bytes
gain:   -11.15%
script.js
before: 4.626 bytes
after:  4.364 bytes
gain:   -5.66%
combined
before: 3.661.794
after:  3.339.678
gain:   -8.80%

As of 9e97a679e15caeb55592b55cb2c6f7fb95b8a508 the gains of this PR are as per the table below. Not amazing, but not bad either 🙂

File
Size (in KB), no mangling
Size (in KB), with mangling
Size reduction

index.html
3558
3246
-8.79%

app.css
14
12
-11.15%

script.js
5
5
-5.66%

combined
3567
3263
-8.80%

Exact values
index.html
before: 3.643.338 bytes
after:  3.323.026 bytes
gain:   -8.79%
app.css
before: 13.830 bytes
after:  12.288 bytes
gain:   -11.15%
script.js
before: 4.626 bytes
after:  4.364 bytes
gain:   -5.66%
combined
before: 3.661.794
after:  3.339.678
gain:   -8.80%

As of 7f093e97d82701017575cf9914705c338ad1957e the gains of this PR are as per the table below. Still not amazing, but not bad either 🙂 This includes CSS class mangling, CSS variable mangling, ID mangling, and HTML attribute mangling.

File
Size (in KB), no mangling
Size (in KB), with mangling
Size reduction

index.html
3558
3225
-9.37%

app.css
14
9
-35.61%

script.js
5
5
-6.40%

combined
3567
3016
-9.46%

Exact values
index.html
before: 3.643.338 bytes
after:  3.302.124 bytes
gain:   -9.37%
app.css
before: 13.830 bytes
after:  8,905 bytes
gain:   -35.61%
script.js
before: 4.626 bytes
after:  4,330 bytes
gain:   -6.40%
combined
before: 3.661.794
after:  3.315.359
gain:   -9.46%

As of 7f093e97d82701017575cf9914705c338ad1957e the gains of this PR are as per the table below. Still not amazing, but not bad either 🙂 This includes CSS class mangling, CSS variable mangling, ID mangling, and HTML attribute mangling.

File
Size (in KB), no mangling
Size (in KB), with mangling
Size reduction

index.html
3558
3225
-9.37%

app.css
14
9
-35.61%

script.js
5
5
-6.40%

combined
3567
3016
-9.46%

Exact values
index.html
before: 3.643.338 bytes
after:  3.302.124 bytes
gain:   -9.37%
app.css
before: 13.830 bytes
after:  8,905 bytes
gain:   -35.61%
script.js
before: 4.626 bytes
after:  4,330 bytes
gain:   -6.40%
combined
before: 3.661.794
after:  3.315.359
gain:   -9.46%

Quick update on this one, the WebMangler I build for this purpose can now automatically calculate the gains we get from using it. E.g. you can find them for 68e6e20af2014e1feeb4edad004e52233da69ecb in the Build website job log.

I'm investigating some performances issues caused by our need to mangling over 1700 ids :detective: (hence the failed/cancelled CI build)

This is definitely not yet ready to merge, feel free to close this if you prefer

As long as you close it when you know you are no longer going to work on it, I'm ok.


Crashes on larger projects

Probably too many DOM nodes to start with, memory issue later.
Need to take a different approach to the virtual filesystem if we want to support much larger projects.

fso.js ?

It seems deprecated. IndexedDB will probably work here.


Chat: remove eid field

eid field does not need to be displayed on the Chat archive page.

Done!

@dah36  - is this what you wanted?

@steveswinsburg Let's cancel this one. David and I are looking at the HTML layout of all the tools most holistically and will submit a different ticket.


Nerfed uses wrong limits

"nerfeder"==a&&(b.total_he=9999e5,b.zone=300)
Should be 9999e4 instead.

No, 9999e5 is correct. 9999e4 would be for Nerfed. This is Nerfeder.


Add u prefix in the format statement to avoid encoding error

Description
Fix encoding error issue
Motivation and Context
The stdout and stderr is an unicode object after decoded in the _clean_output_file function
And if we have some character not in ascii range, the python format function will return an error.
Have you tested this? If so, how?
It works fine in my production environment. python 2.7

Can you illustrate the error by adding a test-case?

Cool. Once you get the tests to pass we'll merge this! :)


Multiline text and newlines not properly handled in bash cells - we also don't have a way to redirect output to a file.

Suppose we have a cell with
echo "Add support for configuring and using Ollama models with Foyle:
- Add 'AgentConfig' struct to 'config' package with a 'Model' field for specifying the model to use for completions
- Set default configuration for the 'AgentConfig' model to 'openai.GPT3Dot5Turbo0125'
- Update 'agent' package to handle missing AgentConfig in configuration and log an error
- Update 'oai' package to handle missing OpenAI configuration and custom BaseURL, and log BaseURL usage
- Add 'DefaultModel' constant for Ollama model name to 'const.go' in 'config' package
- Add a manual test for Ollama usage with 'Test_Ollama' in 'client_test.go' with a check for 'GITHUB_ACTIONS' environment variable
- Add documentation for using Ollama with Foyle in 'docs/content/en/docs/ollama/_index.md'
- Include steps for configuring Foyle to use Ollama's baseURL and model in the documentation" > message.txt

On the command line this executes just fine. But in our bash cells it exits with code 1 and

Won't Fix.
The path forward is RunMe.


Build: Check the top-level render call using

The logging output on build is giving me:
`=> Exporting Routes...
Warning: Each child in an array or iterator should have a unique "key" prop.
Check the top-level render call using . See https://fb.me/react-warning-keys for more information.
in link
in HeadWithMeta
in html
in HtmlWithMeta
in CustomHtml
Warning: Each child in an array or iterator should have a unique "key" prop.
Check the top-level render call using . See https://fb.me/react-warning-keys for more information.
in script
in BodyWithMeta
in html
in HtmlWithMeta
in CustomHtml`
I am building a fresh install of styled components template, CLI v5.3.4.

This is fixed in the beta that is currently out :) Thanks!
On Mon, Mar 5, 2018 at 10:59 AM Pamela Hicks<EMAIL_ADDRESS>wrote:

The logging output on build is giving me:
`=> Exporting Routes...
Warning: Each child in an array or iterator should have a unique "key"
prop.
Check the top-level render call using . See
https://fb.me/react-warning-keys for more information.
in link
in HeadWithMeta
in html
in HtmlWithMeta
in CustomHtml
Warning: Each child in an array or iterator should have a unique "key"
prop.
Check the top-level render call using . See
https://fb.me/react-warning-keys for more information.
in script
in BodyWithMeta
in html
in HtmlWithMeta
in CustomHtml`
I am building a fresh install of styled components template, CLI v5.3.4.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/430, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCXJAAtFHfU8i2ImZSQ_Ydm38L20aks5tbXz1gaJpZM4Scuwt
.

btw, what's the root cause?

The root cause was that react-static was rendering an array programmatically (for example [1, 2, 3].map(() => <SomeComponent />)), but forgot to include the key= property. The link in the original error message explains what this property does and why it's important.


Cast other data types to string when highlighting

This PR fixes 'undefined is not a function' error, when you try to pass number through "highlight" filter, like here:

I looked for possibly related issues and I found these: #517 and #555

Possible duplicate of #1008

Yup, it appears to be a duplicate. The only difference is that mine PR provides unit tests. Anyway, why don't you merge any of them to actually close the issue?

Anyway, why don't you merge any of them to actually close the issue?

Because when I wrote this I was just trying to help the maintainers out by identifying duplicates with a view to tidying up the repository...
Now I have access to the repository with a view to refactoring it (see #1096 / #1108) and I'll add this there (#1134).

Ahh I see! I assumed that this project was dead, but it definitely needed guys like you :+1:

#1402 merged so closing this.


Source without bundler?

We don't use any bundlers, do you a version without bundlers? Thanks.

Hi @craigg75,
Normally if use use the UMD build it should work just fine.
<script src="./vue-tour.umd.min.js"></script>
<link rel="stylesheet" href="./vue-tour.css">

https://github.com/pulsardev/vue-tour/tree/master/dist


Adding Pinocchio support

Dear friends from the AMI team,
It would be graceful if we could also support Pinocchio into this nice and simple Python library.
What are your thoughts on this?
Best,
Justin
CC: @ManifoldFR @stephane-caron @jorisv @lmontaut

Hello @jcarpent, thanks for the interest in this library! What do you have in mind for "Pinocchio support", for example, how do you imagine that the example snippet in https://github.com/ami-iit/blend-my-bot?tab=readme-ov-file#-usage would change for Pinocchio support?


exp/hubble: write entries to elasticsearch

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.
[x] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[x] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[x] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

What
This PR writes entries to Elasticsearch, rather than stdout, and changes the ingestion system pipeline processor and command-line flags as needed.
Why
We want to upload ledger entries as documents to Elasticsearch, to test the service's utility for our purposes. That will help us decide the analytics stack for the project.
Known limitations
N/A - straightforward addition of a dependency.

@debnil please add tests for step 1 and step 2 of the processor in the next PR.


Lock request: X-WOPI-Lock might not be returned with 409

docs/rest/src/files/Lock.rst tells:

X-WOPI-Lock – A string value identifying the current lock on the file. This header must always be included when responding to the request with 409 Conflict.

However, this contradicts [MS-WOPI] v20190618 <IP_ADDRESS>.14, which tells:

X-WOPI-Lock ...  This header SHOULD be included when responding with the 409 status code if a different shared lock exists on the file.

(emphasis mine in both quotes)
And actually, if a LOCK request is sent to a checked-out file on a SharePoint server, the response 409 includes X-WOPI-LockFailureReason: ExistingCheckout, X-WOPI-LockedByOtherInterface: true, but no X-WOPI-Lock.

The documentation contained here is intended for those who are implementing integration with Office on the web. It doesn’t have anything to do with SharePoint.
WOPI hosts integrating with Office on the web must always include a lock header on responses.

Wow. Fantastic. "The documentation here contradicts the published protocol standard, and contradicts the "reference" implementation of the host by MS (which is intended for integration with OWA/Office on the web). WOPI hosts other than MS must follow the rules other than MS."

@mikekaganski That is not what I said. Please don’t put words in my mouth.
Can you please clarify what you’re referring to when you write “reference server?”
Also, if I understand correctly, a host that always returns a X-WOPI-Lock header on a 409 response is valid per the SHOULD RFC wording in MS-WOPI. However, it’s possible that I am misunderstanding. If so please clarify the contradictions.
Finally, this documentation is also not related to Office Online Server, the on-premise version of Office for the web. It is very specific in its purpose: to guide WOPI implementations for integration with Office for the web and Office mobile as part of the Cloud Storage Partner Program.

SHOULD, per RFC 2119, as well as "RECOMMENDED", means "that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course".
But the protocol specification mentioned initially not only uses this word, that is not the same as "must always"; it goes on, and tells when exactly the header SHOULD appear: it only is RECOMMENDED if a different shared lock exists on the file. What does that mean in practice? There may be valid cases when there is a conflict that prevents the Lock request, but where there is no different shared lock exist that may be returned here. I realize that Office on the web is a bit different, but that doesn't change anything in my example: SharePoint provides a WOPI host implementation, and it shows a valid sample of that situation. Another host - e.g. targeting Office on the web - might also have a similar situation.
Additionally, creating a documentation on a protocol that has its standard, which (the documentation) differs from the standard in details, in fact creates a competing version of the protocol; creates uncertainty in the ecosystem that uses that protocol. That is not good, and has precedents in the history, that made some bad results e.g. for HTML for a long time. The difference must be either put into the standard (of course, it needs some reason for that), or be fixed (made to follow the standard).


Add release-doc branch to write build files with github actions

What is proposed?
A separate branch to write all the build files, so
that we focus mainly on the juicy part of the code.
This include adding code from the main (systemds) repo
https://github.com/marketplace/actions/checkout#checkout-multiple-repos-nested
Some sample:
https://github.com/j143/www
TL;DR:
The build files being written to gh-pages branch.

https://github.com/j143/remote-handbook/tree/push-action/_action
https://docs.github.com/en/developers/overview/managing-deploy-keys#server-to-server-tokens
https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions


Node JS Interace For Kaluma CLI

I would like to start an effort to build a node interface for Kaluma CLI. I am thinking about working on a pull request, feel free to add any ideas to how to achieve this.
What is a node JS interface?
A node interface allows you to bypass the usual cli tool and automate it with a script. Examples include:

Webpack Node Interface
ESBuild

Why?
Basically, rather than using the typical cli tool, one could write a script that would do everything. For example, My current workflow involves bundling with esbuild and then using kaluma to do things like load the main file, making sure everything is working / connected, etc. Automating this would be quite interesting and useful.
What does this mean for the CLI?
Nothing much! Just a way to interact with it from a node script. Having both the cli and the interface would allow for a great workflow & productivity.

Currently I'm using with scripts in package.json but I think it's a necessary feature.   It would be good to discuss the rough interface definition.

Kaluma is already a nodejs module.
CLI is just exposed via commander.
You can use kaluma directly without cli, check https://github.com/kaluma-project/kaluma-cli/blob/master/bin/kaluma.js


Unable to WiFi provision - WiFi not showing  (MEGH-1691)

Hi Team,
I'm new to the AWS EduKit. I've been following this tutorial:
https://edukit.workshop.aws/en/getting-started/run-rainmaker.html
Everything goes smooth, until I download the ESP Rainmaker phone app, register an account and try to scan the QR code. The QR code is proper.
The QR scanner picks up the code but displays an error : "PROV_xxxxxx device not found"
The device does not broadcast any WiFi signal, however does broadcast a bluetooth signal "PROV_xxxxxx" which my phones bluetooth scan picks up but the ESP Rainmaker apps, BLE provisioning scan does not pick up at all.
No WiFi connection named(PROV_xxxxxx) is picked up from the device by my phones WiFi scan.
I feel like there may be something wrong with the hardware or the ESP app. I simply can't register the device with the ESP RM app this way.
I think my issue may be different from other issues which report WiFi provisioning. I don't get any errors during build, and the QR code is picked up fine, just the provisioning via ESP app is failing, otherwise the tutorial works fine.
Here's the output returned when uploading the code, you'll notice the alternate URL for getting QR code below too:

[0;32mI (777) boot: Loaded app from partition at offset 0x20000␛[0m
␛[0;32mI (843) boot: Set actual ota_seq=1 in otadata[0]␛[0m
␛[0;32mI (843) boot: Disabling RNG early entropy source...␛[0m
␛[0;32mI (844) psram: This chip is ESP32-D0WD␛[0m
␛[0;32mI (848) spiram: Found 64MBit SPI RAM device␛[0m
␛[0;32mI (852) spiram: SPI RAM mode: flash 80m sram 80m␛[0m
␛[0;32mI (857) spiram: PSRAM initialized, cache is in low/high (2-core) mode.␛[0m
␛[0;32mI (864) cpu_start: Pro cpu up.␛[0m
␛[0;32mI (868) cpu_start: Application information:␛[0m
␛[0;32mI (873) cpu_start: Project name:     AWS_IoT_EduKit-Getting_Started␛[0m
␛[0;32mI (880) cpu_start: App version:      d5b92ef␛[0m
␛[0;32mI (885) cpu_start: Compile time:     Jan  8 2021 14:32:23␛[0m
␛[0;32mI (891) cpu_start: ELF file SHA256:  e4cb324775ef3c5f...␛[0m
␛[0;32mI (897) cpu_start: ESP-IDF:          3.40100.200827␛[0m
␛[0;32mI (903) cpu_start: Starting app cpu, entry point is 0x400830b0␛[0m
␛[0;32mI (0) cpu_start: App cpu up.␛[0m
␛[0;32mI (1406) spiram: SPI SRAM memory test OK␛[0m
␛[0;32mI (1406) heap_init: Initializing. RAM available for dynamic allocation:␛[0m
␛[0;32mI (1407) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM␛[0m
␛[0;32mI (1413) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM␛[0m
␛[0;32mI (1419) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM␛[0m
␛[0;32mI (1425) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM␛[0m
␛[0;32mI (1431) heap_init: At 3FFD32A0 len 0000CD60 (51 KiB): DRAM␛[0m
␛[0;32mI (1438) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM␛[0m
␛[0;32mI (1444) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM␛[0m
␛[0;32mI (1450) heap_init: At 4009E608 len 000019F8 (6 KiB): IRAM␛[0m
␛[0;32mI (1457) cpu_start: Pro cpu start user code␛[0m
␛[0;32mI (1462) spiram: Adding pool of 4096K of external SPI memory to heap allocator␛[0m
␛[0;32mI (1482) spi_flash: detected chip: generic␛[0m
␛[0;32mI (1482) spi_flash: flash io: qio␛[0m
␛[0;32mI (1482) cpu_start: Starting scheduler on PRO CPU.␛[0m
␛[0;32mI (0) cpu_start: Starting scheduler on APP CPU.␛[0m
␛[0;32mI (1491) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations␛[0m
␛[0;32mI (1521) gpio: GPIO[39]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 1| Intr:3 ␛[0m
␛[0;32mI (1721) ILI9341: Initialization.␛[0m
␛[0;32mI (1921) ILI9341: Display orientation: LANDSCAPE␛[0m
␛[0;32mI (1921) ILI9341: 0x36 command value: 0x08␛[0m
I (1981) wifi:wifi driver task: 3ffd61b4, prio:23, stack:6656, core=0
␛[0;32mI (1981) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
␛[0;32mI (1981) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
I (2001) wifi:wifi firmware version: 3ea4c76
I (2001) wifi:config NVS flash: enabled
I (2001) wifi:config nano formating: disabled
I (2001) wifi:Init dynamic tx buffer num: 32
I (2011) wifi:Init data frame dynamic rx buffer num: 16
I (2011) wifi:Init management frame dynamic rx buffer num: 16
I (2021) wifi:Init management short buffer num: 32
I (2021) wifi:Init static tx buffer num: 8
I (2031) wifi:Init static rx buffer size: 1600
I (2031) wifi:Init static rx buffer num: 4
I (2041) wifi:Init dynamic rx buffer num: 16
␛[0;32mI (2051) esp_claim: Initialising Assisted Claiming. This may take time.␛[0m
␛[0;32mI (2331) esp_claim: Private key already exists. No need to re-initialise it.␛[0m
␛[0;32mI (2411) esp_rmaker_node: Node ID ----- B8F009C5B61C␛[0m
␛[0;32mI (2411) display: configuring the house␛[0m
␛[0;32mI (2411) display: house configured␛[0m
␛[0;32mI (2421) display: lights off␛[0m
␛[0;32mI (3821) display: configuring the temperature␛[0m
␛[0;32mI (3821) display: temperature configured␛[0m
␛[0;32mI (3901) display: configuring the fan␛[0m
␛[0;32mI (3901) display: configured fan_object␛[0m
␛[0;32mI (3901) display: configured fan_strength_slider␛[0m
␛[0;32mI (3901) display: configured fan_sw1␛[0m
␛[0;32mI (3911) display: fan configured␛[0m
␛[0;32mI (3911) esp_rmaker_time_sync: Initializing SNTP. Using the SNTP server: pool.ntp.org␛[0m
␛[0;32mI (3921) esp_rmaker_core: Starting RainMaker Core Task␛[0m
␛[0;32mI (3931) esp_claim: Waiting for assisted claim to finish.␛[0m
␛[0;32mI (3931) wifi_prov_scheme_ble: BT memory released␛[0m
␛[0;32mI (3941) app_wifi: Starting provisioning␛[0m
␛[0;32mI (4071) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0␛[0m
I (4071) wifi:mode : sta (b8:f0:09:c5:b6:1c)
␛[0;32mI (4071) BTDM_INIT: BT controller compile version [219866f]␛[0m
␛[0;32mI (4071) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
␛[0;32mI (4251) protocomm_nimble: BLE Host Task Started␛[0m
␛[0;32mI (4251) wifi_prov_mgr: Provisioning started with service name : PROV_160c3c ␛[0m
␛[0;32mI (4251) app_wifi: Provisioning started␛[0m
␛[0;32mI (4261) app_wifi: Scan this QR code from the phone app for Provisioning.␛[0m
GAP procedure initiated: advertise; disc_mode=2 adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=256 adv_itvl_max=256

█▀▀▀▀▀█ ▀▀▀█▄█   ▀▄▄▀▀  █ █▀▀▀▀▀█
█ ███ █  ▀▄█ █▄ ▀▄█ ▀█▀▀  █ ███ █
█ ▀▀▀ █  ▄▀█▀▄▀ ▀█▄▀██▄▄▀ █ ▀▀▀ █
▀▀▀▀▀▀▀ █▄▀ █▄█▄█ █ █ █ █ ▀▀▀▀▀▀▀
▀█ ▀█ ▀  ▀▄ ▀▄ ▄▀▀▀█  ▀▄▄ ▀▄▄ ▄▄▀
█ ▀ ▀ ▀▀█▀  ▀▀▀▀▄▄  ▄  ▀ █  ▄█▄█▀
▄▄▀▄  ▀▀███ ▄▄██▄ ▄▀▄    ▄▀█ ▀▄▄▀
▀███▀▀▀▄█▄█ ▄ ▄█▄▀▀█▄ ▀▄▀▄▄█  ▄
█▄ █▄ ▀█▄▀ █▀▀ █▀▄▀▄▀ ▄█  ███▄ ██
▀█ ▄▄▀▀▄ █▄▀▄███▀▄▀█ ▀█ █▀▀ ▀▄▄▀
▄ ▀ ▄▀▀▄█ ▀▀▄▄█▄▀▀█▄█▄█▀▀█ ▀▄ ▄▀
█ ██  ▀▀▀███▄  ▀█▄█▄▀▀█▀█ ▄█ ▀▄▄█
▀▀▀▀ ▀▀▀█▄▄▀▀▄▄██▄█▀█ ▀██▀▀▀█▄▄▀
█▀▀▀▀▀█  ▀██▀▀▀██ ▄▀▄ █▄█ ▀ █ ▄ ▄
█ ███ █ █▄ ▄█▀▀█▀▄█▄▄ ▀██▀▀▀▀▄▄▀▀
█ ▀▀▀ █ ▄▄▀▀ ▄█▀█ █▀ ▀▀███▄▀█ █▄█
▀▀▀▀▀▀▀ ▀ ▀▀  ▀▀ ▀     ▀▀▀▀▀▀
␛[0;32mI (4461) app_wifi: If QR code is not visible, copy paste the below URL in a browser.
https://rainmaker.espressif.com/qrcode.html?data={"ver":"v1","name":"PROV_160c3c","pop":"5c7007c4","transport":"ble"}
␛[0m
␛[0;32mI (4481) app_wifi: Provisioning Started. Name : PROV_160c3c, POP : 5c7007c4␛[0m
␛[0;32mI (63821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":37.25987}}␛[0m
␛[0;32mI (123821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.68064}}␛[0m
␛[0;32mI (183821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.37782}}␛[0m
␛[0;32mI (243821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":35.71349}}␛[0m
␛[0;32mI (303821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.31116}}␛[0m
␛[0;32mI (363821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.10451}}␛[0m
␛[0;32mI (423821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":37.63218}}␛[0m
␛[0;32mI (483821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":39.31074}}␛[0m
␛[0;32mI (543821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":40.48790}}␛[0m
␛[0;32mI (603821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":41.08063}}␛[0m
␛[0;32mI (663821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":42.05543}}␛[0m
␛[0;32mI (723821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":42.60798}}␛[0m

@moosakhalid , one small question, what is your phone side OS? If it is Android, we had fixed some BLE provisioning related issues in version 2.2.2. Can you check what your version is?
Moreover, can you enable additional debugging logs on the firmware side from here and retry?
idf.py menuconfig -> Component config -> Log output -> Default log verbosity -> Debug

@moosakhalid , one small question, what is your phone side OS? If it is Android, we had fixed some BLE provisioning related issues in version 2.2.2. Can you check what your version is?
Moreover, can you enable additional debugging logs on the firmware side from here and retry?
idf.py menuconfig -> Component config -> Log output -> Default log verbosity -> Debug

@moosakhalid , one small question, what is your phone side OS? If it is Android, we had fixed some BLE provisioning related issues in version 2.2.2. Can you check what your version is?
Moreover, can you enable additional debugging logs on the firmware side from here and retry?
idf.py menuconfig -> Component config -> Log output -> Default log verbosity -> Debug

Hi @shahpiyushv !
Thanks for your response. My Phone's Android version is 10 with kernel 4.14. 117-perf+.
I'm actually flashing the firmware onto the device using PlatformIO extension on Visual Studio Code, so I don't have much idea about using CLI commands for enabling debugging. Also I can't find any idf.py file in the project, perhaps I'm missing it.
Are there any helpful instructions on enabling debugging on firmware side? The PlatformIO UI on VSCode has a "Verbose upload" button but it's output is way too verbose and only shows C compiler linking and build output.
I hope I'm not confusing you too much here.

@moosakhalid , one small question, what is your phone side OS? If it is Android, we had fixed some BLE provisioning related issues in version 2.2.2. Can you check what your version is?
Moreover, can you enable additional debugging logs on the firmware side from here and retry?
idf.py menuconfig -> Component config -> Log output -> Default log verbosity -> Debug

Hi @shahpiyushv !
Thanks for your response. My Phone's Android version is 10 with kernel 4.14. 117-perf+.
I'm actually flashing the firmware onto the device using PlatformIO extension on Visual Studio Code, so I don't have much idea about using CLI commands for enabling debugging. Also I can't find any idf.py file in the project, perhaps I'm missing it.
Are there any helpful instructions on enabling debugging on firmware side? The PlatformIO UI on VSCode has a "Verbose upload" button but it's output is way too verbose and only shows C compiler linking and build output.
I hope I'm not confusing you too much here.

@moosakhalid , I have not use the VS code + PlatformIO based development setup, but can you check the documentation for menuconfig here. That should give you similar options like I have mentioned above.

@moosakhalid , I have not use the VS code + PlatformIO based development setup, but can you check the documentation for menuconfig here. That should give you similar options like I have mentioned above.

Hi guys, not sure but I have a similar issue for WiFi provisioning from my angle.
Sorry if is not true space but my story was like that;
I could not find my saved qr code so i deleted the node from ios(v12.5.3) app and respawned my esp with factory reset for new qr code.
I've been working on analog calibrations with Rainmaker for a while. Everything was going on the way till I changed my city also my WiFi network then I needed to reset my network details. Tried to provision with both of BLE and Softapp but ios app returns no-response. Camera cant detect the qr code(screen freezing) Softapp is not working on my ios. Connect button led me to the settings for giving rights for wifi&ble connections to rainmaker but I already give all of permissions to rainmaker🤔
in the end what is the trick of provisioning on when WiFi changes?
Thank you,

I fixed my provisioning with BLE provision but i wonder why qr code could not worked after factory reset. Is it an ios app side issue maybe like ios version? Because esp idf monitor did not show any warnings or errors while i tried to provision with qr code.


Independent wasmer bindings

This PR depends on #109
The purpose of this PR is to streamline the wasmer bindings, this includes:

merging wasmer_api.dart into runtime.dart (and adjusting the python macro)
removing all unrelated import dependencies from the wasmer bindings through some minor DI.
inlining the template files into the python macro to simplify things.

@liamappelbe I've decided to submit this PR to present to you why it would be beneficial for us to get rid of the singleton, as this wouldn't really be possible because we'd still have to somehow depend on wasm_locator (inside of runtime.dart) as long as we need a singleton.

@liamappelbe I do intend for this to land (it's not just an example, perhaps I was a little unclear about that).

The DI changes are fine. Not sure why you want to merge all those files though.
The runtime/wasmer_api split is for readability. I find it easier to work with multiple small files than one big file, as long as the division is sensible. Here the split is that wasmer_api contains things that directly mirror (or thinly wrap) elements of the Wasmer C API, whereas runtime adds Dart specific logic (eg memory management) that makes the Wasmer C API more ergonomic.
I also like having the templates as standalone files, because it makes it easier to see where the generated files came from.

If you add me as a reviewer, it's more likely I'll see the PR and do a proper code review.

If you add me as a reviewer

I don't think github allows me to do that. Probably because I don't have the permissions to do that.

Not sure why you want to merge all those files though.

In general, people tend to create files based on what they think should belong in a new file, which is highly subjective. I have a very objective rule for what should not belong in a new file: anything that can be contracted without affecting the underlying dependency graph.
Consider the dependency graphs that I posted in a previous PR. This PR brings us here: link
And this is where we are right now: link
Notice how currently module depends on wasmer_api. That dependency is transitive because module also depends on runtime which also depends on wasmer_api. That means that we can contract the edge between runtime<->wasmer_api without changing the underlying dependency graph. Files that can be contracted should in my opinion be contracted and in my experience, this does help immensely with maintainability as it makes navigating a codebase much easier because we can rely on certain invariants to hold.

Here the split is that wasmer_api contains things that directly mirror (or thinly wrap) elements of the Wasmer C API,

But that's not the case today, because bindings are being generated not just into wasmer_api but also into runtime. To fully implement that idea we'd have to move all the pure Wasmer related bindings into its own file and make sure that we don't have module depend on the pure Wasmer bindings (i.e. don't have a transitive dependency there as we have today.). (I'm not against that, but since we don't plan to expose the pure wasmer C bindings, I don't see that as absolutely necessary)
The contraction argument applies to python as well.
Also, here are all the questions that I asked myself about the template files that get automatically answered by inlining them into the python file:

What are those template files?
Why do they have this file ending? Do I need to learn a new language?
Does somebody else depend on them?
Who do I break if I edit them (should I rather just not edit them...)?

I hope you can see how the answers to these questions are not obvious to new maintainers. We can answer them implicitly, and therefore reduce complexity, by inlining the templates into the python file.


Publish docker image to GitHub registry

After #12 is done, publish the Docker images to the GitHub registry for GA.

Well, the whole point of official releases is that they are official. You won't have the permissions. Maybe even I don't have the permissions and need to contact somebody from Apache INFRA to get it done. Releases are a big affair and they involved voting on the mailing list and people checking hashsums are correct, etc.
See for example: https://lists.apache.org/thread/l5kwwyhd3d3lp6clh2q5v1s6kjsv6t32


UX with To-From dates is confusing

When viewing a before and after situation the user is presented with two sets of start dates and end dates on each side of the draggable-line.  It's confusing because you think there would be a start date on the left, and an end date on the right.

Upon further review, I think it could be fixed by saying "Start Date Range for Satellite Photos" or "End Date Range for Satellite Photos". Or something else like that.


Error: non-mandatory-script-verify-flag (Invalid Schnorr signature)

Hello friends, I am a btc newbie. I encountered an error when trying the following code. The code ran successfully and output transaction hex, but it could not be broadcast. RPC returned the error "Error: non-mandatory-script-verify-flag (Invalid Schnorr signature)". Please tell me where to deal with it. Wrong, thank you very much.
utxo:
[     {         "txid": "e370ae1434f407cb59503c68f772d4ca7d169f03bc0d321c7d70cb312605e7b2",         "vout": 1,         "satoshis": 2479076,         "scriptPk": "512001ff544b7cfad5e31b733318d0abae1ddff822d0361fff7d158e7d09b9fc96a6",         "addressType": 2,         "inscriptions": [],         "atomicals": [],         "runes": [],         "pubkey": "",         "height": 34628     } ]
code:
`package main
import (
"fmt"
"math/big"
"github.com/mrtnetwork/bitcoin/address"
"github.com/mrtnetwork/bitcoin/constant"
"github.com/mrtnetwork/bitcoin/keypair"
"github.com/mrtnetwork/bitcoin/scripts"

"github.com/mrtnetwork/bitcoin/provider"

)
func main() {
privateKey, _ := keypair.NewECPrivateFromWIF("Kxga7RudkXw2qKmCiwz5LRHFc5X6fTHxrGrva5JtqVj1b8xit9Ax")
fromAddr := privateKey.GetPublic().ToTaprootAddress()
fmt.Println(fromAddr.Show(address.Mainnet))

sigTxin1 := scripts.NewTxInput("e370ae1434f407cb59503c68f772d4ca7d169f03bc0d321c7d70cb312605e7b2", 1)

addr, _ := address.P2TRAddressFromAddress("bc1phqf7m34k289742ujrh709470hpdf9m6vzqrwrydu6974cm95355qneqt0w")
txout := scripts.NewTxOutput(
	big.NewInt(2478441),
	addr.ToScriptPubKey(),
)

tx := scripts.NewBtcTransaction(
	[]*scripts.TxInput{sigTxin1},
	[]*scripts.TxOutput{txout},
	true,
)

digest := tx.GetTransactionTaprootDigest(0, []*scripts.Script{fromAddr.ToScriptPubKey()}, []*big.Int{big.NewInt(2479076)}, 0, scripts.NewScript(), constant.TAPROOT_SIGHASH_ALL)
fmt.Printf("Transaction: %s\n", digest)

sig := privateKey.SignTaprootTransaction(digest, constant.TAPROOT_SIGHASH_ALL, []interface{}{}, true)

witness := scripts.NewTxWitnessInput(sig)
tx.Witnesses = append(tx.Witnesses, witness)

tx.TxId()

tx.GetVSize()

hashtx := tx.Serialize()
fmt.Printf("Transaction: %s\n", hashtx)

}`

Also, I don’t see how to set the handling fee. Please let me know. Thank you very much.


Test getting started guide with ARM && AMD

Previously, all Heroku runners used AMD (x86) CPU architecture. We added the ability to build and run on an ARM machine (aarch64, like an M3 Mac), but building binaries for ARM required a beta GitHub Action (GHA) runner. The GHA runner beta required extra invocations to setup tools on the machine (such as installing docker).
The GHA ARM runners are now out of beta. This PR adds a test that exercises the ARM codepath on CI in addition to the existing AMD codepath.
GUS-W-15805220

For example, if the Ruby CNB implementation forgot to check context.target during the build, and hardcoded an AMD64 path for some binary - the build could still succeed, but the app image then fail to run at runtime?

The ruby binary is exercised several times in the buildpack on this app via commands. The commands gem install bundler, gem list and bundle exec rake assets:precompile all invoke the Ruby interpreter. They will fail if they're the wrong version or the wrong architecture as bundler ensures the Ruby version matches the Gemfile.lock.
I don't think we need the added complexity of adding an extra dimension to the matrix. Or rather, I'm wary of it.

Makes sense - happy to land this for now - though longer term I still think there is some benefit of testing a subset of the libcnb-test integration tests on multiple builder image/arch variants :-)


Be able to EDIT current config files

Im unable to find where the config files are! I misstyped one char and i have to make it all again, because removing config files option deletes ALL hosts! This is insane...

seconded.  not being able to edit the config file is irritating.  every time the password changes I have to create a whole new connection.

seconded.  not being able to edit the config file is irritating.  every time the password changes I have to create a whole new connection.


Status bar is white in list view

The status bar is white in the list view where it should be blue.
This is a regression error I assume was introduced by updating the support libraries. Should be a relatively easy fix.


Select option when changes on the input equals to one of the options

I managed to write the code to solve the issue reported here: https://github.com/pawelczak/EasyAutocomplete/issues/170
It works and the autocomplete plugin works but the tests are failing now :( Could you please take a look?
I want to record a video tutorial explaining how to use this plugin with Laravel, I hope to do it tomorrow and I'd like to have this change tagged is possible.

@sileence Hey, I'm checking your code. I see the problem, I'll fix it today, so it will be working by the end of the day.

Hi, has this problem been fixed ? I've tried your dist but it doesn't select the matching option when the input equals one of them.. is there  something i've to specify when loading the $("  ").easyAutocomplete(config); ?


Standardize chapter-related folder names in /src

TL;DR
Folder names for chapters should use actual names related to their subject's, like: getting-started, components, applications and advanced-concepts.
Folders in question are in /src: https://github.com/NethermindEth/StarknetByExample/tree/main/src
Context
Three out of four chapters use chXX format for their folder names and then there is one src/components folder:

To make matters a bit more confusing, the correct order of the chapters is: ch00 > components > ch01 > ch02.
The folder names should be updated in the following way:

ch00 -> getting-started
ch01 -> applications
ch02 -> advanced-concepts

@misicnenad I'll like to work on this

@raizo07 just create a draft PR and link this issue, I'll review

@raizo07 just create a draft PR and link this issue, I'll review

Alright, I will.

Thanks @raizo07, left a comment for you in the PR

Thanks @raizo07, left a comment for you in the PR

Alright I'll check it out.

Completed in #216


Cpuidle additions

Pushed a new version reworded without "state" and with a note about the power property probably being garbage.


Adding a warning to README about encryption/DRM

It seems like there is a lot of churn/discussion about issue #627, when there is no potential legal solution.  Adding a note to the README to hopeful reduce fatigue on @r0oth3x49.
Feel free to change the text as needed - I just typed up something quickly.  :)

actually thanks for this


⚠ Bofrost.de has degraded performance

In c7cd427, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1116 ms

Resolved: Bofrost.de performance has improved in 4c70f25 after 306 days, 19 hours, 5 minutes.


chore(deps): update module k8s.io/apimachinery to v0.31.0

This PR contains the following updates:

Package
Type
Update
Change

k8s.io/apimachinery
require
minor
v0.30.3 -> v0.31.0

Release Notes

kubernetes/apimachinery (k8s.io/apimachinery)
v0.31.0
Compare Source

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

ℹ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

3 additional dependencies were updated

Details:

Package
Change

google.golang.org/protobuf
v1.34.1 -> v1.34.2

k8s.io/klog/v2
v2.120.1 -> v2.130.1

k8s.io/utils
v0.0.0-20230726121419-3b25d923346b -> v0.0.0-20240711033017-18e509b52bc8

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 63.209%

Totals

Change from base Build<PHONE_NUMBER>0:
0.2%

Covered Lines:
1237

Relevant Lines:
1957

💛  - Coveralls


Support Consumer Retry Backoff

Overview
Consumers now have a list of go nanos that sets a retry schedule and the Nak has an optional struct that can set a per message arbitrary delay.
At present setting a 10 item backoff list requires the consumer is configured for at least 11 tries, which may or may not be desirable behavior - PR comments suggested not.
https://github.com/nats-io/nats-server/pull/2812
Clients and Tools

[x] Schemas @ripienaar
[ ] CLI @ripienaar
[ ] Terraform @ripienaar
[ ] Github Actions @ripienaar
[ ] Go @wallyqs
[ ] Java @scottf
[x] JavaScript @aricart
[ ] .Net @ColinSullivan1 @scottf
[ ] C @kozlovic
[ ] Python @wallyqs
[ ] Ruby @wallyqs
[ ] Rust @matthiashanel @derekcollison

Other Tasks

[ ] docs.nats.io updated
[ ] Update ADR to Implemented
[ ] Update client features spreadsheet

Client authors please update with your progress. If you open issues in your own repositories as a result of this request, please link them to this one by pasting the issue URL in a comment or main issue description.

JavaScript client will adopt the nak(delay) option, and at a later time introduce the backoff list

JavaScript client now supports backoff


Support for Path type

How should we support pathlib.Path objects? Should we stringify them and treat them as files?
Examples
encode_path_option_1(Path("/path/to/file")) == "/path/to/file"

encode_path_option_2(Path("/path/to/file")) == {"__snappiershot_path__": "Path", "value": "/path/to/file"}

encode_path_option_3(Path("/path/to/file")) == {"__snappiershot_path__": "Path", "parts": ["/", "path", "to", "file"]}

encode_path_option_3(Path("/path/to/file")) == {"__snappiershot_path__": "Path", "contents": "contents of file", "exists": True, "parts": ["/", "path", "to", "file"]}

Some comments:

Option 1: I appreciate the simplicity but it does not allow us to properly differentiate str-paths from Path-paths, so I think we have to nix it on those grounds, unfortunately
Option 2: i like the simplicity
Option 3: I dislike the long form (more complex) but it is nicer for diff-ing and may be safer for OS-agnostic operations (more comments below)
Option 3 (aka option 4): I definitely don't think we should do this. if we're snapshotting the path, we shoudl snapshot the path; the path is the name of the file, the path is not the file. https://en.wikipedia.org/wiki/Haddocks'_Eyes

Also, we should consider OS-specific pathing or, ideally, avoid it altogether (i.e. Path vs the derived PosixPath and WindowsPath). Some discussion here: https://realpython.com/python-pathlib/#paths-as-proper-objects. Seems like the string-conversion will depend upon the system/OS where the code was executed which could be an issue. Option 3 (the first) could be more robust to this. I'll play/read around some

I agree with everything you said, it sounds like Option 3 it is!

When attempting to instantiate a pathlib.WindowsPath object on a Mac, pathlib throws NotImplementedError: cannot instantiate 'WindowsPath' on your system.

Is it possible that a Windows user will snapshot a PosixPath, or a Posix user will snapshot a WindowsPath?
Is there a good way for us to test this in an OS-agnostic way?


UTF8 processing: performance improvements, validation, and other useful APIs

This PR introduces a workhorse routine for validating UTF-8 strings without performing a proper to-UTF16 conversion. It is intended to be used as the backend to UTF-8 validation routines, including routines that perform substitution of invalid sequences to convert an ill-formed UTF-8 string into a well-formed UTF-8 string. There are friendly APIs on the Utf8Utility type that allow inspecting the UTF-8 string. These APIs are intended to be compatible with System.Text.Encoding.UTF8 in that they agree on the length of bad sequences, etc.
There is a sister workhorse "convert UTF-8 to UTF-16" routine, but it's not part of this PR since I'm still adding unit tests for it.
The unit tests for the workhorse routine perform some limited self-fuzzing. Additionally, the unit test project introduces the NativeMemory type (for unit test use only), which grabs memory pages directly from the kernel's page allocator and bookends the returned range with poison pages, where accessing these pages will immediately AV the process. This type helps detect buffer overruns in code that works directly with memory buffers in an unsafe fashion.
Finally, this API introduces substantial performance improvements over the existing "how many UTF-16 / UTF-32 code units would there be if I were to convert this UTF-8 string to one of those representations?" framework API System.Text.Encoding.UTF8Encoding.GetChars. I've copied the performance improvement table below.
Perf results
1,000,000 iterations on each lipsum
Testbed: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 3408 Mhz, 8 Core(s), 8 Logical Processor(s), Win10 RS3 amd64fre
English (ASCII)

System.Text.Encoding.UTF8: 0.286 sec
Utf8Util.GetCharCount: 0.077 sec

73% reduction in runtime
Hebrew (primarily 2-byte)

System.Text.Encoding.UTF8: 5.22 sec
Utf8Util.GetCharCount: 1.81 sec

65% reduction in runtime
Cyrillic (primarily 2-byte)

System.Text.Encoding.UTF8: 5.20 sec
Utf8Util.GetCharCount: 1.78 sec

65% reduction in runtime
Japanese (primarily 3-byte)

System.Text.Encoding.UTF8: 3.06 sec
Utf8Util.GetCharCount: 1.08 sec

65% reduction in runtime
Chinese (primarily 3-byte)

System.Text.Encoding.UTF8: 6.30 sec
Utf8Util.GetCharCount: 2.25 sec

65% reduction in runtime
The corpus that was used for testing can be found at https://github.com/GrabYourPitchforks/fast-utf8/blob/master/FastUtf8Tester/Lipsum.cs. That same directory contains the test program and full results.

@GrabYourPitchforks,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

I've copied the performance improvement table below.

Can you please check-in the performance tests to this repo (preferably as part of this PR) so that we can run them using xunit.performance and our perf harness?

@ahsonkhan I just added the perf tests and sample texts. These are different than the sample texts I had been using, so the numbers will be somewhat off.

@GrabYourPitchforks  +++10 I would love this to become the start of more fuzzing ability for .net as it's something I have been wanting to get around to for a while...

Since the bulk of the logic isn't changing and we're discussing utility methods / renamings, I'm going to merge what I have now so that people can immediately start playing with it. Will send a new PR with additional performance improvements and changes.


Msal Js Supports Proof Of Possesion

Developers can create Pop Tokens from Msal Js
WIP PR: https://github.com/AzureAD/microsoft-authentication-library-for-js/pull/812

Closing, as we are punting on this for the moment.


Set HEAD correctly

For the SSR, we sometimes return a head depending if the Svelte component has something like:
<svelte:head>
  <title>Some title</title>
</svelte:head>

Ideally we include this in the root head somehow on first page render, I haven't found a way to do this from the live_component.
Currently this just does not work and we don't include the head, we only include the styling.

Sort of fixed, for now we set the head script in the body, which seems to work but it's not ideal as on first page load it might take some time before it's loaded in. But it will do for now.


Allow for dataclasses as params / zn.outs

Allow for dataclasses as params / zn.outs

do #152 first

Dataclasses are supported as zn.Method so they could also be supported as zn.params.


simplify style adaptation

Hello, could you outsource the attributes of the DateSpinner and TimeSpinner in Styles.

Hi, I'm not sure what your problem is, as you can already configure the attributes using the flags xml attribute. That one is also accessible in your styles, just use
<style name="CustomStyle">
   <item name="flags">more_time|month</item>
</style>

for instance and then apply that style to the ReminderDatePicker or spinner in the xml layout file. See here for more help.

Hi, I mean the Style of the controls like layout_width, layout_height, font size ...
I want to customize the appereance of the DateSpinner and TimeSpinner.

OK now I get it... I'll have a look at it, probably have to change the way
the Spinners are initialized in ReminderDatePicker as we can't set styles
programmatically.
Am 01.06.2015 06:41 schrieb "adrianpop1990"<EMAIL_ADDRESS>
Hi, I mean the Style of the controls like layout_width, layout_height,
font size ...
I want to customize the appereance of the DateSpinner and TimeSpinner.
—
Reply to this email directly or view it on GitHub
https://github.com/SimplicityApks/ReminderDatePicker/issues/22#issuecomment-107303189
.

Well this is harder than I thought... I tried initializing the Spinners in the ReminderDatePicker's init() method, and that worked fine at first but broke restoring the Spinner selection and items after rotation (and also setting layout_height and layout_width wasn't possible).
I am now looking into themes, there must be a more direct way to pass a style to all DateSpinner and TimeSpinner views in the activity (like it is done with android:buttonStyle in an app theme).
But I think that it might be easier for you if you'd just copy the ReminderDatePicker class and replace R.layout.reminder_date_picker with your custom xml layout file using the styles. I have to think about that, it may be useful to have a separate xml attribute, let's say spinnerLayout, which you can pass to the ReminderDatePicker in xml.

I think I have the solution for this problem. I'll send you a pull Request at the weekend.
Thank you for your efforts to find a solution.

ok lol well I just decided to implement the custom layout file (that way you can also insert a divider view in the middle) and that works fine. Only thing is, you need to copy & paste the reminder_date_picker layout file and apply the spinner styles there. If you're ok with that, we'll take my implementation so you don't need to work on it yourself. Otherwise I'm excited for your solution, we'll see which is nicer ;)

Challenge accepted :-)
I have a similar solution for this.

Congrats, you won! :+1: That is definitely nicer than everything I had in mind ;). Good idea with overriding the styles, I didn't know that's possible.


pod update not updating to latest swift 4.2 changes

the 'pod update' command does not update the pod to your latest changes in the master branch for swift 4.2

I can see a commit 2 days ago apparently incorporated the changes for xcode-10 but the issue is still there. Is there something specific we need to do to get the library working with the new version of xcode.


li.clearing-featured-img not responsive

Using both clearing-thumbs & clearing-feature classes as per F5 docs example all elements keep their responsive width except for the li.clearing-featured-img. The result is not to have a responsive layout.
I tried to use small-block-grid-1 responsive is back but I miss clearing-featured-img effect.
Maybe the display:block rule (.clearing-feature li.clearing-featured-img - line 3135) is not the proper option.
Thx,
Giorgos

Ok, closing here. We're updating a lot of our JS for the next version so we'll keep this in mind. Thanks!


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:16: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:21: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:37: missing_dev_url: The recipe is missing a dev_url
ERROR: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:37: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:37: missing_license_family: The recipe is missing the about/license_family key.
WARNING: /tmp/abs_cc4l4grout/clone/recipe/meta.yaml:37: missing_description: The recipe is missing a description
Errors were found


Flatten DREAM data JSON files

The idea is for the JSON files to include array of {schema} (e.g. Tag, Organization) or {schema}CreateRequest objects (e.g. Grant, Challenge). This approach will simplify the validation of the JSON data and seeding the database.
For example, the challenge objects listed in challenges.json have their property organizerIds set to an array of PersonCreateRequest objects. However, this approach clashes with the ROCC schemas that says that organizerIds should be set to an array of string (Person ID). Here the proposed solution is to update the process that generates the JSON files to do the following:

Create a file persons.json that includes the list of Person object to create. For each Person object, set Person.id to a randomly generated id that follow the expected schemas of Person.id.
Update the Challenge objects so that Challenge.organizerIds include the correct Person IDs.

Extending this approach to all the properties of all the schemas when needed, the resulting JSON files will be compliant with the ROCC schemas.
The script that seeds the data base will then be responsible to replacing "temporary IDs" by "real ID" once the objects have been created. Temporary IDs must only be generated for objects that have their IDs generated by the API service (Grants, Challenges, Persons, etc.).

Moved to https://github.com/Sage-Bionetworks/rocc-app/issues/84