when update edge vertex, error:AQL: Error message received from cluster node 'PRMR-ce3b3175-19b0-4f7f-a175-563bdec55076': edge attribute missing or invalid (while executing)

LET oldid = (FOR m IN metas FILTER m.key == "lu-8" AND m.value == "" AND m.uid == 0 RETURN m._id)
FOR m IN metas FILTER m.key == "lu" AND m.value == "" AND m.uid == 0
FOR n IN  vol3-reverse-file-metamap FILTER n._from IN oldid
UPDATE n WITH {_from:m._from, vertex:m._key} IN vol3-reverse-file-metamap
//Query: AQL: Error message received from cluster node 'PRMR-ce3b3175-19b0-4f7f-a175-563bdec55076': edge attribute missing or invalid (while executing)

When updating an edge, any data in the _from or _to attributes must be syntactically valid. That means these attributes must be strings consisting of the collection name, a forward slash, plus the document key (e.g. testcollection/testkey1234).
I can't see from the above query what data is contained in m._from when the query is run, but I guess that for a least one document in metas there is either no _from attribute or it does not conform to the above-mentioned requirements.

When updating an edge, any data in the _from or _to attributes must be syntactically valid. That means these attributes must be strings consisting of the collection name, a forward slash, plus the document key (e.g. testcollection/testkey1234).
I can't see from the above query what data is contained in m._from when the query is run, but I guess that for a least one document in metas there is either no _from attribute or it does not conform to the above-mentioned requirements.

the detail is here:
/*  aql: FOR m IN metas` FILTER m.key == "lu-8" AND m.value == "" AND m.uid == 0 RETURN m._id
result:
[
"metas/536205335"
]
aql:FOR m IN metas FILTER m.key == "lu" AND m.value == "" AND m.uid == 0 return m
result:
[
{
"_key": "536201520",
"_id": "metas/536201520",
"_rev": "_ZkxYZI6---",
"black_list": [],
"ctime":<PHONE_NUMBER>,
"key": "lu",
"mode": 2,
"uid": 0,
"value": "",
"white_list": []
}
]
aql: FOR n IN  vol3-reverse-file-metamap FILTER n._from == "metas/536205335" return n  //the IN oldid
result:
[
{
"_key": "536205838",
"_id": "vol3-reverse-file-metamap/536205838",
"_from": "metas/536205335",
"_to": "vol3-files/11110000-0000-0000-0000-000000039233",
"_rev": "_Zk2c3zu---",
"ctime":<PHONE_NUMBER>,
"vertex": "536205335"
}
]
now need update _from -> "metas/536201520" , vertex -> 536201520
*/
`
I will  try to use insert and remove to replace.
LET oldid = (FOR m IN metas FILTER m.key == "lu-8" AND m.value == "" AND m.uid == 0 RETURN m._id)
FOR m IN metas FILTER m.key == "lu" AND m.value == "" AND m.uid == 0
FOR n IN  vol3-reverse-file-metamap FILTER n._from IN oldid
UPDATE n WITH {_from:m._id, vertex:m._key} IN vol3-reverse-file-metamap
query: AQL: Error message received from cluster node 'PRMR-ce3b3175-19b0-4f7f-a175-563bdec55076': must not change the value of a shard key attribute (while executing)
I will try to use insert and remove to replace update,  it return success, like this.
`db._query('LET oldid = (FOR m IN `metas` FILTER m.key == "lu-8" AND m.value == "" AND m.uid == 0 RETURN m._id)
FOR m IN `metas` FILTER m.key == "lu" AND m.value == "" AND m.uid == 0
  FOR n IN  `vol3-reverse-file-metamap` FILTER n._from IN oldid
     INSERT {_from:m._id, _to:n._to, vertex:m._key} INTO `vol3-reverse-file-metamap`
')

db._query('LET oldid = (FOR m IN `metas` FILTER m.key == "lu-8" AND m.value == "" AND m.uid == 0 RETURN m._id)
FOR m IN `metas` FILTER m.key == "lu" AND m.value == "" AND m.uid == 0
  FOR n IN  `vol3-reverse-file-metamap` FILTER n._from IN oldid
     REMOVE n IN `vol3-reverse-file-metamap`')`

I think the problem is that in the original query

FOR m IN metas FILTER m.key == "lu" AND m.value == "" AND m.uid == 0
FOR n IN vol3-reverse-file-metamap FILTER n._from IN oldid
UPDATE n WITH {_from:m._from, vertex:m._key} IN vol3-reverse-file-metamap

you are trying to write the value of m._from into the _from attribute value of the edge collection.
But that particular document does not seem to have a _from attribute:
{
  "_key": "536201520",
  "_id": "metas/536201520",
  "_rev": "_ZkxYZI6---",
  "black_list": [],
  "ctime":<PHONE_NUMBER>,
  "key": "lu",
  "mode": 2,
  "uid": 0,
  "value": "",
  "white_list": []
}

That means the original error seems justified.
Now regarding to the next error:

query: AQL: Error message received from cluster node 'PRMR-ce3b3175-19b0-4f7f-a175-563bdec55076': must not change the value of a shard key attribute (while executing)

I can't see by what attribute(s) the edge collection is sharded, but updating the values of any shard key attribute with a different value is disallowed in ArangoDB. That means either the sharding has to be adjusted or the shard key attributes must not be updated.
Or, as you seem to have tried yourself, removing the existing edges and reinserting them with different shard key values should also work.

I can't see by what attribute(s) the edge collection is sharded, but updating the values of any shard key attribute with a different value is disallowed in ArangoDB. That means either the sharding has to be adjusted or the shard key attributes must not be updated.
Or, as you seem to have tried yourself, removing the existing edges and reinserting them with different shard key values should also work.

thanks

Hi @Thebigwind
I am sending this message to check if we are al set with this ticket - is there anything related you want to discuss ?

Hi @Thebigwind
We haven't heard back from you recently, therefore I am going to close this ticket now
Feel free to reopen it by adding a comment
Best,


Example/API for ReJSON module

Hi,
Is there any class or example code for read/write json data to redis which is stored using ReJSON module. I don't see any command related to ReJSON module in current Redission library.
Ex. Commands:
JSON.GET
JSON.SET
Am I missing the doc or is there work around to read JSON data type from Redis?

Here it is https://github.com/redisson/redisson/wiki/6.-Distributed-objects#615-json-object-holder

You can find JSON commands mapping on this page https://github.com/redisson/redisson/wiki/11.-Redis-commands-mapping


Deleting a highlighted channel from the table removes the channel above it.

Found when editing a Scan Engine Module configuration. When attempting to remove a highlighted channel from the "Scan Engine Settings" table, I deleted the channel in the row above. As there is no "undo" feature, a workaround isn't possible.

@leesecho
After some investigation, this is an issue on the scan engine module, not on the table API (table api is doing what scan engine module's implementation told it to do).  Closing, expect a new issue on the other module.


multiprocessing.Manager() + cd leads to EOFError

Describe the bug
Change of directory + multiprocessing.Manager() entrance results to EOFError with coverage 5.0
To Reproduce

What version of Python are you using?
Python 3.8.0rc1
It also fails on travis with Python 3.6.3

What version of coverage.py are you using?

coverage debug sys
-- sys -------------------------------------------------------
                   version: 5.0
                  coverage: /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python3.8/site-packages/coverage/__init__.py
                    tracer: -none-
                   CTracer: available
      plugins.file_tracers: -none-
       plugins.configurers: -none-
 plugins.context_switchers: -none-
         configs_attempted: .coveragerc
              configs_read: .coveragerc
               config_file: .coveragerc
           config_contents: '[run]\nconcurrency = multiprocessing'
                 data_file: -none-
                    python: 3.8.0rc1 (default, Oct  1 2019, 21:48:24) [GCC 7.4.0]
                  platform: Linux-4.15.0-70-generic-x86_64-with-glibc2.27
            implementation: CPython
                executable: /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/bin/python
              def_encoding: utf-8
               fs_encoding: utf-8
                       pid: 11108
                       cwd: /mnt/md0/Documents/PycharmProjects/remote-runner
                      path: /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/bin
                            /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python38.zip
                            /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python3.8
                            /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python3.8/lib-dynload
                            /usr/lib/python3.8
                            /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python3.8/site-packages
                            /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/lib/python3.8/site-packages/remote_runner-0.2.0-py3.8.egg
               environment: -none-
              command_line: /mnt/md0/Documents/PycharmProjects/remote-runner/venv-3.8/bin/coverage debug sys
           sqlite3_version: 2.6.0
    sqlite3_sqlite_version: 3.22.0

--
What code are you running?

import multiprocessing
import os

if not os.path.exists("./tmp"): os.mkdir("./tmp")
os.chdir("./tmp")

with multiprocessing.Manager() as manager:
    pass

print("ok")

What commands did you run?

python -m coverage run repro.py
Traceback (most recent call last):
  File "repro.py", line 7, in <module>
    with multiprocessing.Manager() as manager:
  File "/usr/lib/python3.8/multiprocessing/context.py", line 57, in Manager
    m.start()
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 583, in start
    self._address = reader.recv()
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 414, in _recv_bytes
    buf = self._recv(4)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 383, in _recv
    raise EOFError
EOFError

python repro.py
ok

Expected behavior
ok message
Additional context
Seems like bug was introduced with 5.0 release

Hmm, something is different for me here on Mac OS.  Under Python 3.8, I see the same behavior either with or without coverage, and with coverage==4.5.4 or coverage==5.0.1. I get a stack trace like this:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/runpy.py", line 262, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/runpy.py", line 95, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/private/tmp/bug890/bug890.py", line 7, in <module>
    with multiprocessing.Manager() as manager:
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/context.py", line 57, in Manager
    m.start()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/managers.py", line 579, in start
    self._process.start()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/context.py", line 283, in _Popen
    return Popen(process_obj)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.
Traceback (most recent call last):
  File "bug890.py", line 7, in <module>
    with multiprocessing.Manager() as manager:
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/context.py", line 57, in Manager
    m.start()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/managers.py", line 583, in start
    self._address = reader.recv()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/connection.py", line 414, in _recv_bytes
    buf = self._recv(4)
  File "/usr/local/pythonz/pythons/CPython-3.8.0rc1/lib/python3.8/multiprocessing/connection.py", line 383, in _recv
    raise EOFError
EOFError

If I change the code to this, it works under either:
import multiprocessing
import os

if not os.path.exists("./tmp"): os.mkdir("./tmp")
os.chdir("./tmp")

if __name__ == "__main__":
    with multiprocessing.Manager() as manager:
        pass

print("ok")

I'm not sure what the code is meant to do, and so which should go in the __main__ clause.

Thanks for spending time on it!
I'm sorry to not emphasize  .coverargerc settings, it's hidden under coverage debug sys:
[run]
concurrency = multiprocessing

Without concurrency setting it doesn't throw.
The bug is 100% reproducible on all OS and python versions I tried. I set up a small repo to demonstrate, please see it's travis build failures.
For some reason windows builds hang forever after first failure command, therefore I cancelled windows jobs after first failure. (I'm not good at windows scripting, please tell how to fix if you know)
Note there are two scripts: bug890.py and bug890_with_main_guard.py. Bug manifests in both.

Here is build of coverage-4.5.4 branch with bug890_with_main_guard.py tests only:
https://travis-ci.com/sizmailov/reproduce-coverage-bug-890/builds/142106771
No failures.

Thanks, the repo helps with the details.

This is now fixed in df82a963. Thanks for the detailed report.

This is now available in coverage 5.0.2


signing&verifying container images based on Kubernetes Secrets

Closes #347

Known issues about the implementation:

We duplicated the Kubernetes Client logics (reducing both responsibilities to a single function?)

It's a bit hard to distinguish namespace/name compared to other providers (adding a new -k8s flag for signing and verifying)

Ref priority refactoring? (File -> KMS -> K8s) - we're checking K8s namespace/name in first-order ever since a file exists in that path

We bring a brand-new loadPublicKey function to cli/keys.go due to import cycle now allowed problem

We haven't been checked the values of the data map of the secret whether is nil or not nil.

Use public key as a file

$ kubectl get secrets my-secret -ojson | jq -r '.data["cosign.pub"]' | base64 -D > /tmp/cosign.pub
$ ./cosign verify -key /tmp/cosign.pub gcr.io/$(gcloud config get-value project)/hello-world:cosign --> #OK

Use public key as a K8s Secret

$ ./cosign verify -key tmp/cosign.pub2 gcr.io/$(gcloud config get-value project)/hello-world:cosign
error: loading public key: checking if secret exists: secrets "cosign.pub2" not found

This looks awesome so far! What do you think about using a "-key k8s://namespace/name" prefix or something like that to help with the signer type selection logic?

This looks awesome so far! What do you think about using a "-key k8s://namespace/name" prefix or something like that to help with the signer type selection logic?

Thank you @dlorenc for giving this idea, we thought that too, to do so we should move this logic to sigstore project as a new provider called k8s maybe, wdyt?
cc: @Dentrax

That sounds great!

Exactly! Should we add a brand-new kubernetes:// provider into kms init() function? By doing so, we are able to clean kubernetes package from cosign into sigstore, I guess. 🤔

I think that would make sense - cosign would still need to keep the key generation code though right?

I think that would make sense - cosign would still need to keep the key generation code, though, right?

The most suitable place for the Kubernetes provider is in the cosign project because of the key generation code. Because we have to generate key pairs before creating the actual Kubernetes secret, thus that logic belongs to cosign. Therefore, we have to keep that Kubernetes provider logic within the cosign project.
WDYT @Dentrax @dlorenc?

Good point. That makes sense to me. We can always move it around later if there's demand for it!

Good point. That makes sense to me. We can always move it around later if there's demand for it!

@dlorenc, I added new changes to add the k8s:// thing and update the description of the PR with some of the working examples screenshots, can you please take a look at it when time permits?
cc: @Dentrax

This is awesome!


Broker can't route self-defined metadata

@{link RoaringBitmapIndexedMap#query(Tags)} can't match self-defined metadata and will direct return empty list.
Routing code below
requester.route("pong")
                .metadata(springRoutingClient.address(builder -> builder.with(SERVICE_NAME, "server").with("counter", COUNTER.get() + "")))
                .data("ping")
                .retrieveMono(String.class);

you want to send a message to yourself?

yes, we may need to send some tags that indicate the type of data, just like customized http header. Is that the right way to do it ?

Tags are not the right place to do that.

Oh, i made a mistakes，i should use custom metadata rather than tags,  like this:
requester.route("resp")
                .address(builder ->
                        builder.with(SERVICE_NAME, "server")
                                .with(ROUTE_ID, "Id{00000000-0000-0000-0000-000000000022}"))
                .metadata("{\"counter\": 1}", MimeTypeUtils.APPLICATION_JSON)
                .data("ping")
                .retrieveMono(String.class)

and it works.
thanks!


Fix statefulset Pod recreate case

When deleting a StatefulSet Pod with 0 second graceful period, the Pod
might be removed from the Kubernetes API very quickly and a new Pod is
created immediately, leading to kubelet processing the deletion of the
previous Pod and the add of the new Pod simultaneously, so CNI cannot
assume PodNamespace+PodName must be unique.
Previously antrea-agent computes the network device name by hashing
PodNamespace and PodName, the CNI DEL of the previous Pod could destroy
the network device of the new Pod if it's executed after the new one's
CNI ADD.
To fix it, antrea-agent must no longer use PodNamespace+PodName as the
identifier of the Pod's network device. This patches uses (sandbox)
container ID as part of the network device name, and uses container ID
as the key when caching interfaceConfig, then multiple Pods that have
the name will be handled individually without interfering with each
other.
To be compatible with network devices created by previous versions, CNI
DEL handler doesn't assume how the network device name is computed and
always look up network config by container ID.
Fixes #785

/test-all

/test-all

/test-all

/test-all

AWESOME ! thanks quan !

is there a docker image pushed somewhere that i can test for this ?

is there a docker image pushed somewhere that i can test for this ?

@jayunit100 Yes, "qtian/antrea-ubuntu:v0.8.0-dev-a7a41c3" has the commit. I'm testing it with both containerd and dockerd. Both have passed several times consistently.
It would be great if you can try it on your cluster in case of any configuration difference that could affect the result.

I have run "certified-conformance" with containerd 3 times and docker 1 time, all of them passed.
@wenyingd helped verify all sig-windows tests passed.

/test-all

/test-networkpolicy

Merging this for 0.7.2 release

@jianjuns related to this https://github.com/kubernetes/kubernetes/issues/62900 ?

@jianjuns related to this kubernetes/kubernetes#62900 ?

Yes I know this issue, but remember we used to have another solution to get Pod UID. Maybe I am wrong.
BTW, my main concern for this change is that going forward many features and more code might need to know about the possibility of multiple Pods using the same name (though seems the code change is simpler than I thought).

BTW, my main concern for this change is that going forward many features and more code might need to know about the possibility of multiple Pods using the same name (though seems the code change is simpler than I thought).

Even if we are able to get Pod UID from CNI requests in future, the fact that multiple Pods using the same name may coexist at some point is still valid and the code must be aware of it.

Even if we are able to get Pod UID from CNI requests in future, the fact that multiple Pods using the same name may coexist at some point is still valid and the code must be aware of it.

I meant if Agent knows about Pod UID, all inputs/code can use Pod UID as the key, and even Controller can add Pod UID to Agent messages. Then most code (except CLI/API) needs not to handle duplicated names.

Even if we are able to get Pod UID from CNI requests in future, the fact that multiple Pods using the same name may coexist at some point is still valid and the code must be aware of it.

I meant if Agent knows about Pod UID, all inputs/code can use Pod UID as the key, and even Controller can add Pod UID to Agent messages. Then most code (except CLI/API) needs not to handle duplicated names.

Agree, but it doesn't affect the change made in this PR: not to compute network interface name from Pod name, not to use Pod name as the primary key of config cache?

Yes. I just meant the part of changing NetworkPolicyController etc. to update for multiple Pods with the same name. Anyway, as do not have a way to know Pod UID from CNI, probably let us keep the current approach.


Option to open browser window immediately #16

Needs to be adapted for successor extension
https://github.com/OttoAllmendinger/gnome-shell-screenshot/issues/33
Tracking issue here https://github.com/OttoAllmendinger/gnome-shell-screenshot/issues/33


Huggingface Transformer Support

Huggingface Transformer Support

https://github.com/huggingface/transformers/pull/34770

Could you provide the compatible transformers dependency version for vptq 0.0.4? When running the code in the Python API Example, I encountered the following error, which seems to be related to the transformers version:

AttributeError: 'LlamaConfig' object has no attribute 'quantization_config'

Could you provide the compatible transformers dependency version for vptq 0.0.4? When running the code in the Python API Example, I encountered the following error, which seems to be related to the transformers version:

AttributeError: 'LlamaConfig' object has no attribute 'quantization_config'

It seems that the issue was caused by my config.json not being updated to the latest version. After I installed the latest version of transformers from https://github.com/VPTQ/transformers/tree/main and synchronized the config.json with the content from Hugging Face, this problem was resolved.

Sorry, we updated our quantization_config field yesterday to integrate with Hugging Face https://github.com/microsoft/VPTQ/commit/139a38038ae44177cbeb92ef5110475c7541e002 and https://github.com/huggingface/transformers/pull/34770. You'll need to reinstall the latest version of VPTQ (pip install vptq -U or compile the latest main branch). Please also ensure that your model's configuration is up to date (e.g., https://huggingface.co/VPTQ-community/Meta-Llama-3.1-8B-Instruct-v12-k65536-4096-woft/commits/main/config.json), If you don't want to redownload the model, you can simply replace the Hugging Face config.json.

Supported by @wejoncy, thanks for his contribution!
https://github.com/huggingface/transformers/commit/4e27a4009d3f9d4e44e9be742e8cd742daf074f4


feat: show VSS state in settings

also adds some missing settings headers on other settings pages, and removes useless probing functions from the UI

That's good.
Because it only works with the Alby account maybe we can mention it there?
Versioned Storage Service (VSS) provides a secure, encrypted server-side storage of essential lightning and onchain data. This service is enabled by your Alby account and provides additional backup security which allows you to recover your lightning data with your recovery phrase alone, without having to close your channels.

@bumi sounds good, thanks! I originally thought it would be good to let non-connected users know what they are missing out on, but I think it would be better to be done somehow in https://github.com/getAlby/hub/issues/782

Lago has a smart way of presenting premium features by showing the benefits

For instance: Show VSS in the list of "Settings" for every LDK node Alby Hub users regardless if they connected an Alby account and explain the benefits on the page. Is that the case here?
Can we replace VSS in the left menu with: "Wallet Recovery" ?


[ADD] KMD - Komodo

Komodo chainparams and derivation path conf based on KMDs registered cointype from BIP44 list of satoshilabs- https://github.com/satoshilabs/slips/blob/master/slip-0044.md

This should be reverted or corrected.  I would assume all addresses this is generating for KMD are invalid.

@ca333 - where did the original address in the test come from? I am also getting a failure for this test the same way @mikeyb gets, so it seems at least the behaviour is consistent.
Please clarify why your original version of the test fails.


What duck typing is and what problems it solves

In mathematics, you have an object called a "set". It has members that are unique and only occur once. Sets can be combined with other sets using Boolean algebra.
A trait is the way Rust encourage to deal with methods that do not belong to a particular type. It is a set of methods, because each method is only defined once in the trait. Traits are different from mathematical sets because it requires a name, and you can not refer to a subset of a trait. Traits are more constrained through usage than mathematical sets.
Duck typing is a way to deal with methods where you need the functionality of mathematical sets for methods. It does not require a name for the sets and algorithms can be written for any set. Traits can be auto implemented on top of duck typing.
Some languages supports duck typing, but in Rust, this must be implemented manually. Piston-Quack is a library to get duck typing to some degree. It does not solve the problem of getting duck typing for all methods, it only solves it for a pattern that fits Get/Set/Action. When this is the case, there are some advantages:

Imported types have the same name as way methods are called
Extra type safety
Traits can be auto implemented on top of it
It requires less naming (as in naming traits that collects some functionality through methods)
It reduces the number of traits in the library
It gives a consistent API across libraries
Improvement to the "quack" library leads to overall improvement across libraries
Renaming causes less breaking changes
Adding new methods is possible without breaking the library interface
It gives you builder methods through by value set or mutable reference set_mut.

There are some cases when the benefits of Piston-Quack is out-weighted by other concerns:

The library is very small and does not have a complex interface
The library does not need to be abstracted over smart pointers
The library requires a complex mix of lifetime and function signatures
The Get/Set/Action pattern does not make sense for the library

Imported types have the same name as way methods are called
When importing a trait, you add methods to an object in the code. There is no easy way to keep track of which methods belongs to which traits:
use Foo;

x.foo(); // does this belongs to `Foo`?

Piston-Quack bridges this gap in the conceptual model:
use Text;

x.set(Text("hello"));

Extra type safety
Assume that you return a number in units. Without wrapping this in a type, there is nothing that prevents you from accidentally use it with the wrong units:
let radius = foo.get_radius();
bar.set_radius(radius); // `bar` might use another unit than `foo`

Pisotn-Quack returns a property, such that the conversion of units is explicit:
let RadiusInMeters(radius) = foo.get();
bar.set(RadiusInKm(radius / 1000.0);

This is true not only for units, but for any different usage. For example, a matrix has different usage as a Transform and ViewTransform, and setting the wrong property might cause bugs that are not easily tracked down. This gives some extra type safety when redesigning or refactoring.

I am very sceptical about this. I don't know if this topic is open for debate. However, I thought that this is the right place to share my concerns and that it's better to do so than to silently stay away. I do care a lot about Rust's gamedev infrastructure and Piston is a huge part of that.
Quite frankly: this is exactly the kind of anti-pattern, that's currently driving me away from using Piston (along with current objects). This criticism cannot be constructive towards quack, as I am essentially saying that properly designed software does not need it at all. So please forgive me, if this sounds a bit negative. Nonetheless, I write this with the intention of being constructive with respect to Piston at large and hoping that you reconsider the usage of this pattern throughout the framework.
The point is, that using accessors is considered an indicator of bad design (I really recommend reading those articles, in case you have never come across this sentiment). Code using the fields of a type (even when it's using highly abstracted accessors) should be implemented in a method instead. And even if you do that using those abstract accessors, exposing the properties in an API supports code that does not. And such code is not particularly reusable any way and thus could as well act on public attributes (which should be an intermediate state, before it is abstracted out).
Now I see that there is sometimes a need to work without abstractions to quickly implement something. This is not inherently wrong, but one should be aware of the fact, that code like that is not highly reusable and should not be depended upon too much or otherwise will become very difficult to maintain. However, abstracting the myriad of ways one could possibly implement accessors in Rust looks like you're going through great lengths to do the wrong thing (accessors) in the right way.

@aepsil0n I'm sorry to tell you this, but you are completely wrong on both accounts. Current objects are not part of the Piston core and not used in any of the other libraries. It is used to help prototyping games and write Processing like libraries. You are also wrong about this library which is about duck typing and not about accessors. Quack lifts this functionality over smart pointers to make generic code work with shared objects, something that is required to use the Window back-end in the game loop and in the application code. If you don't do this, then you lock the API down to a smart pointer that can't be changed later when hundreds of projects depend on it. It also gives builder methods and a reasonable good API design with very little effort, something that matters when you have a lot of libraries. You should also know that the macros inline the method to create no overhead.
Quack has saved us tons of hours already, and Current solves one of the biggest pain points for writing games in Rust. Neither are "pretty" solutions, I completely agree with you on that, but there is no other way until we know another way that takes care of the long list of concerns that matters. The core of Piston is to make it work with as little overhead as possible, and solve the problems that matters for a game engine core, which are problems no other people are working on. The Piston core solves these problems NOW and that is what matters for building other projects on top of it.


PHOENIX-6076 Refactor Phoenix Hive Connectors introduced by PHOENIX-6057

The java part basically looks good.
My problem is that we are building the code in the -common modules, when there is no reason to do that. (This applies both to hive and the rest of the connectors)
The -common modules should really just define the common dependencies, and have compiling/testing disabled.
You can base this on how it's done in Tephra.

I'll wait for the checks to pass before committing

Thank you @stoty for your proper review (as always)! :)


feat(rainbowprint): Introduce colorful log prefixing

Prerequisite checklist

[x] Read the contribution guidelines regarding submitting new changes to the project;
[x] Tested your changes against relevant architectures and platforms;
[x] Ran make fmt on your commit series before opening this PR;
[ ] Updated relevant documentation.

Description of changes
This PR introduces the rainbowprint internal library that can be used to generate ANSI color codes. The library is used for kraft run and kraft log to optionally prefix all the logs with a colorful string, which is useful when looking at a stream generated by multiple unikernels:
kraft run --prefix "soo colorful" unikraft.org/helloworld:latest --plat qemu --arch x86_64

Currently based on top of https://github.com/unikraft/kraftkit/pull/984

Hi @LucaSeri, #984 is now merged 🎉  Could you please rebase?

Thanks @nderjung! This is now ready for any final review :rocket:


Implementation of SOPS for TPLC (PLT-5649 PLT-5647 PLT-7094)

Implements sums-of-products for TPLC.
Thus, it extends, the declarative and the algorithmic typed syntax, as well as the reduction semantics, CK and CEK machine.
I think there are not test cases for typed SOPs. I'm not sure how such test cases should be added (perhaps with NEAT?)

Are there tests covering the new functionality in the formalisation?

No, I added a ticket (PLT-7088) about this.


Over-arching story for user guide's quickstart

The examples should follow an over arching story for easy reading

@potatowagon Can do this ASAP? I just realised that this would be extremely useful for writing the script of the product demo.

ok


Once you enter to see some database raw data, then the navigation is not working anymore

Expected Behavior
After seeing some database raw data I want to be able to navigate to another section of admin panel.
Current Behavior
Once you enter to see some database raw data, then the navigation is not working anymore
Steps to Reproduce
Steps to reproduce the behavior:

Login as admin
Go to /admin/databases
Click to any other section outside the databases one.

Context (Environment)

Default setup
OS: MacOS, Windows 11
Browser: Chrome
Environment: dev

Issue demo
https://github.com/Protofy-xyz/Protofy/assets/57529076/dbf99c36-7594-4b0e-a34b-ba2b8bf88faa

solved in https://github.com/Protofy-xyz/Protofy/commit/a1eb5034cc63b0c24e3729ad2c7bbd8fa8350a98


cant delete a check with out passing either subscribers or standalone

https://github.com/sensu/sensu-chef/blob/develop/resources/check.rb#L30
This file will throw a fatal error if you just are specifying a check to delete without subcribers or standalone..
sensu_check "check_something" do
   action :delete
end

you have to specify subscribers or that the check is standalone to be able to delete it..
error code..
Sensu check check_something: must either define subscribers, or has to be standalone.
I think that to delete the check all you should have to specify is the name?

Hi @joshzitting, thanks for reporting this issue. I've opened #538 to address it.


SOLR-16737 Http2SolrClient needs to inherit all properties when initialized with another http2 client

https://issues.apache.org/jira/browse/SOLR-16737

Description
Copy more properties from the seed client inside the builder itself, at the same time leaving the option to overwrite properties (both before and after the seed is set to avoid any regressions).
This also fixed a regression I identified on https://github.com/apache/solr/pull/1564
Solution
Please provide a short description of the approach taken to implement your solution.
Tests
Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem.
Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[x] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[x] I have run ./gradlew check.
[x] I have added tests for my changes.
[x] I have added documentation for the Reference Guide

thank you @risdenk for the blazing fast review!! waiting on @tflobbe to validate this, as I've discussed the changes with him over slack already (it was in the context of the #1564 regression).

@stillalex can you update the PR title to be a bit more representative of what the change is?

sure @HoustonPutman. description updated, does it look better now?

there seems to be a test failing on this PR, that does not fail on master, but I can't figure out why/how yet
./gradlew :solr:modules:ltr:test --tests "org.apache.solr.ltr.feature.TestExternalFeatures.featureExtraction_valueFeatureRequired_shouldThrowException" -Ptests.jvms=5 "-Ptests.jvmargs=-XX:TieredStopAtLevel=1 -XX:+UseParallelGC -XX:ActiveProcessorCount=1 -XX:ReservedCodeCacheSize=120m" -Ptests.seed=BC33B2384734EA2C -Ptests.file.encoding=US-ASCII

The test failures are not related to this PR.
@HoustonPutman , are you ok with the updated PR title?

@HoustonPutman , are you ok with the updated PR title?

@tflobbe he added a 👍 to my comment, so I would take that as a yes? I fixed the merge conflicts too. we should be good to go here?


Settings editor filtering is broken

Type: Bug

Open settings editor
Type copilot

Bug
No filtering
There's an exception:
  ERR Cannot read properties of undefined (reading 'startLineNumber'): TypeError: Cannot read properties of undefined (reading 'startLineNumber')
    at s.i (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:132569)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:131596
    at Array.map (<anonymous>)
    at s.g (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:131584)
    at s.e (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:130752)
    at new s (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:130647)
    at p (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:130054)
    at s.filterSettings (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1666:1122)
    at h.searchModel (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1656:130213)
    at be.md (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:78249)
    at be.kd (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:77081)
    at be.hd (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:76852)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:76638
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:149:14915
    at async be.dd (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:75179)
    at async be.ad (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2342:74252)

VS Code version: Code - Insiders 1.84.0-insider (Universal) (f1c3b1dcf85e3b6ddb24b7dce0e4b122e8ce6233, 2023-10-17T05:38:23.658Z)
OS version: Darwin arm64 23.0.0
Modes:

System Info

Item
Value

CPUs
Apple M2 Max (12 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
4, 4, 4

Memory (System)
64.00GB (0.09GB free)

Process Argv
--crash-reporter-id 0fffb5da-9cd7-46fd-9e7f-a1564e8c5fda

Screen Reader
no

VM
0%

No issue running from source 5cbc3f8a1dc6abc2cbb49f402520227f2f3fee6f

Does the issue reproduce on the latest version of Insiders and the latest Copilot extensions?
Also, did you have network access?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Feature request - body height attribute to control a scrollable text field

I am using streamlit-text-label to annotate labels on documents. Frequently the body text is multiple pages long, and the users use the browser's scrollbar to navigate, however the Label buttons remain at the top and the Update button at the bottom. When documents are multiple pages long the UI becomes hard to manage.
I looked into StreamLit scrollable containers which is not yet a feature, and I looked at various text and html alternatives, and they do not appear compatible with streamlit-text-label.
A feature request idea is adding a height attribute to make the body text section scrollable.
Here is a mock-up:
selections = label_select(body="lorem ipsum", labels=["Noun", "Verb"], bodyheight=50, scrollable=True)

https://labelstud.io/templates/text_summarization.html#Enhance-this-template
Label Studio has this:

Display long text samples with a scrollbar
If you want to change how Label Studio displays long text samples on the labeling interface, you can use the View tags to wrap labeling tags with CSS styling.
For example, you can constrain the text sample to a specific height, making it easier to keep the text summary that annotators provide visible.

xml
<View style="height: 300px; overflow: auto;">
    <Text name="text" value="$longText" />
</View>

I've just released 0.1.2 with your changes. Glad that you are finding this package useful.


test basic-0 and basic-1 fail

fails with the following errors:
Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.

Translating error Error: failed to send transaction: Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.
    at Connection.sendEncodedTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4518:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Connection.sendRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4479:20)
    at async Object.sendAndConfirmRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:6177:21)
    at async Provider.send (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/provider.js:52:22)
    at async Object.rpc [as initialize] (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/rpc.js:215:31)
    at async Context.<anonymous> (/home/jonch/Desktop/Programming/blockchain/anchor/examples/tutorial/basic-0/tests/basic-0.js:13:5)
    1) Uses the workspace to invoke the initialize instruction

  0 passing (95ms)
  1 failing

  1) basic-0
       Uses the workspace to invoke the initialize instruction:
     Error: Promise rejected with no or falsy reason
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

 basic-1
Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.

    1) Creates and initializes an account in two different transactions
Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.

Translating error Error: failed to send transaction: Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.
    at Connection.sendEncodedTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4518:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Connection.sendRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4479:20)
    at async Object.sendAndConfirmRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:6177:21)
    at async Provider.send (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/provider.js:52:22)
    at async Object.rpc [as initialize] (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/rpc.js:215:31)
    at async Context.<anonymous> (/home/jonch/Desktop/Programming/blockchain/anchor/examples/tutorial/basic-1/tests/basic-1.js:64:5)
    2) Creates and initializes an account in a single atomic transaction
Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.

Translating error Error: failed to send transaction: Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.
    at Connection.sendEncodedTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4518:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Connection.sendRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4479:20)
    at async Object.sendAndConfirmRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:6177:21)
    at async Provider.send (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/provider.js:52:22)
    at async Object.rpc [as initialize] (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/rpc.js:215:31)
    at async Context.<anonymous> (/home/jonch/Desktop/Programming/blockchain/anchor/examples/tutorial/basic-1/tests/basic-1.js:100:5)
    3) Creates and initializes an account in a single atomic transaction (simplified)
    4) Updates a previously created account

  0 passing (164ms)
  4 failing

  1) basic-1
       Creates and initializes an account in two different transactions:
     Error: failed to send transaction: Transaction simulation failed: Attempt to debit an account but found no record of a prior credit.
      at Connection.sendEncodedTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4518:13)
      at processTicksAndRejections (internal/process/task_queues.js:93:5)
      at async Connection.sendRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:4479:20)
      at async Object.sendAndConfirmRawTransaction (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/node_modules/@solana/web3.js/lib/index.cjs.js:6177:21)
      at async Provider.send (/home/jonch/.nvm/versions/node/v14.16.1/lib/node_modules/@project-serum/anchor/dist/cjs/provider.js:52:22)
      at async Context.<anonymous> (tests/basic-1.js:33:5)

  2) basic-1
       Creates and initializes an account in a single atomic transaction:
     Error: Promise rejected with no or falsy reason
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  3) basic-1
       Creates and initializes an account in a single atomic transaction (simplified):
     Error: Promise rejected with no or falsy reason
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  4) basic-1
       Updates a previously created account:
     TypeError: Cannot read property 'publicKey' of undefined
      at Context.<anonymous> (tests/basic-1.js:131:30)
      at processImmediate (internal/timers.js:461:21)

anchor test --skip-local-validator with last version


:seedling: Add tests for non existant pools

What this PR does / why we need it:
There is a missing test on reconciliation for when the pool does not exist. This could lead to panic due to pool being nil and still executing the annotations.HasPaused(pool)
OTOH, with this change we don't execute r.reconcileDelete anymore if the pool does not exists, which may be an error (need to be checked)

Thanks!
/lgtm
/approve


Add console for debug output of smart contract executions

The new and upcoming seal_debug_print call no longer directly prints the debug output to the Substrate console.
Instead it is stored into a buffer which can be retrieved by a dedicated RPC call.
Therefore it will become important for UI tools such as Canvas UI to properly show the debug output after each smart contract execution or chain of smart contract execution in some "console" style output for inspection.
I think for an MVP it is totally fine to style this in the way a console would look to most developers since that is what they probably expect from this output. It may not yet be possible but a future upgrade and extension to this console output is to also include the addresses of the contracts and the call chains i.e. backtrace of all the calls starting from a smart contract invocation from the user.
cc @cmichi , @athei

Please note that this buffer can still be printed to the console:
https://github.com/paritytech/substrate/tree/master/frame/contracts#debugging


Macro use segfault

This code causes a mysterious segfault during compilation:
(import variant)
(import macros)

(using-namespace std.macros
  (def def-ordered-variant (macro intern (name cons)
    (qq def-variant (uq name) cons))))

;; segfault introduced here:
(def-ordered-variant Instr
  ((Doge ((a int)))
   Soge
   (Quoge ((a int) (b int)))))

(def main (fn extern-c
              int
              ((argc int)
               (argv (p (p char))))
  (return 0)))

$ dalec t.dt
zsh: segmentation fault  dalec t.dt
$ uname -a
Darwin fruitbook.local 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:17:10 PDT 2022; root:xnu-8020.140.49~2/RELEASE_X86_64 x86_64
$ dalec --version
0.3 (rev 0e877b75)

Thanks, this was due to missing validation in def-variant.  With that extra validation, the above produces:
test.dt:9:22: error: list required for variant members (see macro at 6:9)
test.dt:6:9: error: macro expansion error (see previous) (see macro at 9:1)

which is due to cons not being unquoted.  Changing it to (uq cons) fixes the problem.


Bolt should exit with code 1 when erroring unless we receive invalid input

Describe the Bug
We currently will always exit with code 2 when Bolt errors, when exit code 2 is intended to be used when the command can't be parsed, or for things like permissions issues rather than errors from Bolt itself. Bolt errors should result in exit code 1.

Closed by #2999


[Bug]: Git setup failed for an app and now is in a dirty state

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Git setup on an app failed to connect but on page refresh shows successful connection but page with JS function set to run on page load returns a 404. Also fails to fetch git status
Steps To Reproduce

Unsure how git setup failed

DURING SETUP FAIL

git_connection_fail_400.zip

PAGE LOAD ERROR

404 for on page load actions.zip
git status failed Remote does not have refsORheadsORmaster available for fetch.zip
git_connection_fail_400.zip
ERROR MESSAGE WHEN TRYING TO COMMIT

Public Sample App
https://release.app.appsmith.com/app/automation-test-cases/page-2-62c6ba550721a64d32ce5ef5/edit/jsObjects/62c6ba550721a64d32ce5f2f?branch=master
Issue video log
No response
Version
Cloud

@ramsaptami  - have you seen this with any other app, just want to see if there's a reliable way to replicate.

@infinitetrooper haven't seen it happen on others
@Parthvi12 have you come across this at any point?

Okay, thanks. Closing as stale. Please reopen if this replicates.


Pagination buttons not highlighted

Just wait for Vuetify release after v0.11.0
https://github.com/vuetifyjs/vuetify/issues/414

Fixed in 2a917f8a1f37cf75980833f6e4ec591a6db86a67


Option to pass in query shape without boolean

TL;DR I would like the option to be able to pass in an object for a query and have all properties on the query whether the value of a property is truthy or not.
I am using yup on a project where I am already defining my schema and I am using the default of the schema for the form state in react and then ultimately for the mutation query.
I don't like having to define the schema in so many different places and in this case the query is the same shape as the mutation. It would be nice to be able to use the default object from yup like I am to define the default form state in react to define the query.
I am willing to do the work and submit a PR for this if it something you can see value in.
Thanks!

Hey @bret-hubbard
Yep happy to accept a PR for this. Maybe we could add an ignoreBooleans option? which stops the library from excluding falsy keys.
Bare in mind that obviously if your data has object keys / values, they would end up as nodes in the resulting query.
Please add tests and run npm test and npm run build before submitting a PR. Cheers! :)


Submit Button Fixed

ISSUE : #744
✅ I have added screenshots and videos to show before and after the working of my code.
✅ I have ensured that the screen size is set to 100% while making the video.
✅ I have synced the latest fork with my local repository and resolved any conflicts.
✅ I have mentioned the issue number which I created before making this PR
✅ I understand that if any the above conditions are not met , my PR will not be MERGED .
✅ I have added a like button in the blog cards. People who like the blog would hit the like button.
Before :

after :

issue number ?

#744

Thank you for your contribution. However, I need to remind you that it is mandatory to follow the contribution guidelines, which clearly state that you must first open an issue and wait for it to be assigned before submitting a pull request. Skipping this step disrupts the workflow and makes it harder to manage contributions effectively.
This time, I will merge the PR as the contribution is valuable, but please do not ignore this process again. Future PRs submitted without following the correct process will be closed without review.


Azure Function Successful Deployment -  Didn't get reflected in the Azure Function APP Console.

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Hi,
I am working with the Azure Function APP for my client deliverables. I have connected my function app to the queue service inorder to queue and messages and then trigger function app.
Function APP Trigger Type : Service Bus Queue Trigger
STACK : Python
VERSION : 3.11.6
MACHINE: Linux
Issue:
When I try to deploy the code from my local VS Code into the Azure Function APP. It got successfully deployed and got the output in my Function APP as well. But it does not get reflected in my Function APP Console.
Deployment in VS Code:

Since it is an Queue Trigger, it does not show the HTTP URL.
Azure Function APP Portal

I have been running the same service bus queue trigger with different function app instance which was created last week, it has been running perfectly, but don't why this function app instance deployment does not reflected in the AZURE PORTAL

/causedByExtension
This is issue tracker fir VS Code editor itself, and this functionality is provided by set of Azure extension(s)

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!

@roblourens and @IllusionMH ,
I have analyzed using the above Help extension from vs code. And I found this bug, what should I need to resolve this?

You should report issue in extension's repo, not this repo

@IllusionMH can you share the link to report


Adjust node details columns height

Description

Adjust node details column height
Decrease node details card width
Merge location and country cards in one card
Decrease node resources chart dimension

Changes

Related Issues

2160

Checklist

[ ] Tests included
[x] Build pass
[x] Documentation
[x] Code format and docstrings
[x] Screenshots/Video attached (needed for UI changes)

fixed on small screens

fixed on small screens

Can we make the width take 1 card only on smaller screens?

@zaelgohary Done


General fix

This pull request includes #229 but also addresses:

the schema is no longer limited to what can be chosen
a working python example is added
a function to get the testdir is added, and we do this so that the python can change directory and we do not need cd $TESTDIR which will have issues depending on the executable chosen.

Please see https://github.com/HPC-buildtest/schemas/pull/19 that is the sibling PR to this one.


Permit RFC1918 PTR requests to be recursed upstream

In order to allow lancache-dns to upstream to other internal DNS servers, it must not create empty RFC1918 zones.

Tested at home with a lancache-dns upsteamed to my router with local ptr records. Can confirm that it doesn't work without the change and does work afterward.


configure tls cert expiration

Implementation of my last comment in this thread: https://github.com/coreos/coreos-kubernetes/issues/621
Happy to change this as that thread forms more of a consensus. I don't feel too strongly about my stance on this interim state.
cc @aaronlevy

I'm starting to think we should just have:
--tls-ca-expiration=X
--tls-cert-expiration=y

Upstream kube-up uses easy-rsa which looks like it defaults to 10years for both (https://github.com/brendandburns/easy-rsa/blob/e11310d2e8dfdf01910185abc944e78053ae2bfe/easyrsa3/easyrsa#L1006-L1007)
I'm perfectly fine just defaulting to that. Or if we want we can still default to 90days/1year.
Then we just log how long we've generated a cert for in the output. e.g. "NOTE: Generated TLS assets will expire in X days".
I don't think adding scary-named fixed duration flags is necessarily. Configurable just makes this more flexible to end user, and we can accomplish this in clearly named flags.
@philips @mike-saparov

cc @gtank

Unless there are any objections, lets move forward with the option to self-select the CA/cert expiration and default to 10years (same as upstream).
If possible, I'd probably prefer that this is consumed from the config file over cli flags. This way we can have comments describing the configurable items - and can reduce flag bloat.

PTAL: We now default to 10 years, warn regardless, and allow the duration to be configured in days

We should allow for for differing expirations between CA and certs.

PTAL: There are two yaml variables for the CA expiration vs cert expiration

@pbx0 can you add the values to the config.yaml with short comment description. Also, might not hurt to update the config tests to check that we're not allowing invalid values.
/cc @colhom given it's kube-aws

Also looks like the config unit tests are failing

@aaronlevy unit tests are probably failing because the default value for the config struct fields aren't set, so I imagine it's defaulting to 0.

PTAL: Unit tests were failing because the signature of NewTLSAssets() had changed. That is no longer the case as I missed some obvious simplifications before. I think I cleaned up things a bit.
The unit tests in pkg/config/tls_config_test.go should already cover this code. Runtime validation occurs in multi-node/aws/pkg/tlsutil/x509.go

LGTM


Tracking Issue: Hipcheck Website MVP

To get to the Minimum Viable Product (MVP) of the Hipcheck website we need:

[x] Navigation
[x] Footer
[x] General site layout
[x] RFDs
[x] Quickstart Guide
[x] Contributing Guide
[x] Install instructions
[x] Homepage
[x] Dark Mode
[x] Complete Guide
[ ] ~#191~
[x] Mobile Styles

The site is ready!


cell font styling is applied to entire sheet

I tried to apply font style to a single cell but the style gets applied to the entire worksheet. eg
worksheet.getCell('A1').font = { color: { argb: '3a80d5' }}
Expected result:
Cell A1 font color should be #3a80d5
Actual result:
All cells in the worksheet have font color #3a80d5
Also I tried to apply this to a column as follows:
worksheet.getColumn('columnId').eachCell((cell, rowNumber) => {
     cell.font = { color: { argb: '3a80d5' }}
})

I expect that all cells in column columnId should have the new font color and all other cells remain with the default black font color. But instead. all cells in the worksheet are styled to have the color #3a80d5.

Can confirm this for setting bold: true. Applied to A1 and the whole sheet is bold.
<EMAIL_ADDRESS>is the last working version. I made a rollback.
I suspect "Merged Always keep first font #854" in release 1.12.2 (https://github.com/exceljs/exceljs#release-history), but just guessing.

I'm facing the same issue with @nfunwigabga  cell font styling is apply for all cells
I'm trying set font for cell A1, something like this
 worksheet.getCell('A1').font = {
          name: 'Comic Sans MS',
          family: 4,
          size: 16,
          underline: true,
          bold: true
        };

But all cells has save font with A1 cell

same here. font on one cell applies to whole sheet.

@nfunwigabga, @cheninformz , We can down version to resolve this issue, the exact version is "exceljs": "1.12.0"
I try it and it's work pretty perfectly

Any updates on this issue?
Pretty annoying as we are setting a different font for certain "header-kind-of" cells to emphasise those cells, but the same font declaration ruins the rest of the document.
1.12.0 works fine, or I could just manually set desired font for each column - but that seems like awfully lot of overhead...

this has been bugging me for a while now,
I had been scratching my head over what I did wrong with my code, turns out it is a problem everybody has been facing.

this has been bugging me for a while now,
I had been scratching my head over what I did wrong with my code, turns out it is a problem everybody has been facing.

Same thing. This completely breaks all styling capabilities

I've run into the same thing and would like the bug fixed, but I worked around this by applying a bold: false style to a cell before I applied the bold style to the header cells:
worksheet.getCell('A2').font = { bold: false }; ... worksheet.getRow(1).font = { bold: true };
I think the first *.font assignment sets the default for the entire workbook.

The same problem has been encountered, and the structure and style are in disorder. I hope it can be repaired as soon as possible.

It looks like the issue is fixed in version 1.14.0

It's definitely fixed for me, I am on 1.15.0.

really?... um.. that's weired..
What I wanna do is exactly same as the writer.
i try to style at A5 but the other cell is styled as well..
:(

Any updates here ?

I think this workaround will be useful: https://github.com/exceljs/exceljs/issues/791#issuecomment-486738382
other similars:
https://github.com/exceljs/exceljs/issues/669
https://github.com/exceljs/exceljs/issues/67
https://github.com/exceljs/exceljs/issues/302
https://github.com/exceljs/exceljs/pull/722
https://github.com/exceljs/exceljs/pull/737

@Siemienik Can you please explain ?

This helped me : https://github.com/exceljs/exceljs/issues/596#issuecomment-434937770

Same issue occurs for me too

worksheet.eachRow({ includeEmpty: true }, (row, rowNumber) => {     row.eachCell(cell => {       cell.font = {         name: 'Arial',         color: { argb: 'FF000000' },       };     });   });

I was experiencing the same bug using version 1.13.0. After moving to version 1.15.0, it works!

i don't know when it was fixed, but i have version 4.3.0 and
output.worksheets[0].getCell('L' + 4) . style . font . color = {argb: "00ffff00"}
still paints all the sheet's cells

not working still

It's fixed in version 4.3.0.

Still exists on version 4.3.0 :(

If you create ExcelJS.Workbook is read a file that already exists. Maby excel row or column used a sytle instance. so, you modify style is global.

Okay I'm on 4.3.0 do u guys have any idea?

Okay for someone who step in to this situation i can fix by using this method
sheet.getCell(F22).value = {
richText: [{ font: { size: 12, color: { argb: "FFFF6600" }, name: "Calibri", scheme: "minor" }, text: Text here }],
};


The demo links offline

The demo links
http://connecttous.co/connecttous/connecttous.html?livedebug=true
seem to be offline

I am making a new version of Coils which uses React and has real time database support so that you can do stuff like (select * from tablename) in your front end react components.... then I will put a new demo up

Bump. The yazz.com link is dead


Find out AGPL licencing implications

In order to assess the implications of Synapse licence change on IM editors, we'd need to get legal advise.
More precisely:

Should Synapse modules be automatically AGPL?
Should bridges be AGPL?
Check licences pricing to avoid open source constraints
...

Hey team! Please add your planning poker estimate with Zenhub @heroinedor @JDixmier

message already posted on our mattermost : https://mattermost.incubateur.net/betagouv/pl/bo78ec6r9fre7kixqp9r1sb8ah

As the implications for EIMIS team and editors are different, we will check with DINUM/ANS legal department the implications for EIMIS.
For editors we will redirect them to their own legal department.


Double-counted tokens?

Second, I'd like to bring up some observations because I'm not sure if they are intended or not.
Assuming the default modalities (text, audio) are selected, as the conversation goes on, for each response, all previous conversation items are counted as both input audio tokens and input text tokens.
Now, we can turn off the user input transcription (off by default), which would take care of the input text tokens coming from the user speech transcription, but we have no way of disabling assistant response transcription. So, we end up being charged for both text and audio tokens.
See below an example of a 30-turn interaction (with input_audio_transcription enabled) (and $10 down the drain 😅)
We paid $0.05 for the just the first question, $0.22 for just the 10th, $0.42 for the 20th, $0.58 for the 30th, etc.
If I so much as sneezed after that, it'd have cost me over half a dollar (~2 min of audio, according to the advertised rate.)
My main question is:
Why do we have to pay for both assistant text and audio tokens by default? Does the model need both? (doesn't seem so)
Now, we technically have the ability to delete conversation items and create new ones, so there are definitely ways to deal with the cost. But, they're cumbersome and full of edge cases due to the realtime nature of it.
If you can't "just make it super cheap so we don't have to care", maybe there is some low hanging fruit?
Can we have some easier control over how much of the conversation we want to keep around?
Can we have a conversation.item.update event so that we don't have to recreate the entire conversation tree when we just want to remove the transcription?
Something else better I'm sure you've already cooked up?
Thank you!
Turn 1
User: (audio) What's the weather in New York?
Assistant: (audio) I don't have access to real-time data, including current weather updates. However, you can check the latest weather in New York by looking it up on a weather website or using a weather app on your phone.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
16
236
8
62
$0.05

Total
16
236
8
62
$0.05

Turn 2
User: (audio) What's the weather in San Francisco?
Assistant: (audio) I don't have access to real-time weather updates. For the current weather in San Francisco, please check a weather website or use a weather app on your phone.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
275
173
80
48
$0.06

Total
291
409
88
110
$0.11

Turn 3
User: (audio) What's the weather in London?
Assistant: (audio) I don't have access to real-time data, including current weather updates. To get the latest weather in London, please check a weather website or use a weather app on your phone.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
465
207
138
54
$0.09

Total
756
616
226
164
$0.20

Turn 4
User: (audio) What's the weather in Toronto?
Assistant: (audio) I can't provide current weather updates. For the latest weather in Toronto, please check a weather website or use a weather app on your phone.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
690
169
202
44
$0.10

Total
1446
785
428
208
$0.31

Turn 5
User: (audio) What's the weather in Istanbul?
Assistant: (audio) I don't have access to real-time information, so I can't provide the current weather in Istanbul. You can check the latest weather there by using a weather website or a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
877
213
256
54
$0.13

Total
2323
998
684
262
$0.44

Turn 6
User: (audio) What's the weather in New York?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in New York, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
1106
163
320
45
$0.15

Total
3429
1161
1004
307
$0.59

Turn 7
User: (audio) What's the weather in San Francisco?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in San Francisco, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
1292
172
375
45
$0.17

Total
4721
1333
1379
352
$0.75

Turn 8
User: (audio) What's the weather in London?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in London, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
1481
163
430
44
$0.18

Total
6202
1496
1809
396
$0.94

Turn 9
User: (audio) What's the weather in Toronto?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in Toronto, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
1662
166
484
44
$0.20

Total
7864
1662
2293
440
$1.14

Turn 10
User: (audio) What's the weather in Istanbul?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in Istanbul, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
1846
172
538
44
$0.22

Total
9710
1834
2831
484
$1.36

Turn 11
User: (audio) What's the weather in New York?
Assistant: (audio) I can't provide real-time weather updates. To find out the current weather in New York, please check a weather website or use a weather app.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
2034
164
592
45
$0.24

Total
11744
1998
3423
529
$1.60

Turn 12
User: (audio) What's the weather in San Francisco?
Assistant: (audio) For the most current weather in San Francisco, please check a reliable weather website or a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
2221
189
647
48
$0.26

Total
13965
2187
4070
577
$1.87

Turn 13
User: (audio) What's the weather in London?
Assistant: (audio) To get the current weather in London, please check a reliable weather website or a weather app on your device for the most up-to-date information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
2427
177
705
45
$0.28

Total
16392
2364
4775
622
$2.15

Turn 14
User: (audio) What's the weather in Toronto?
Assistant: (audio) For the latest weather in Toronto, please check a weather website or a weather app on your phone for real-time updates. They will have the information you need.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
2622
195
760
50
$0.31

Total
19014
2559
5535
672
$2.45

Turn 15
User: (audio) What's the weather in Istanbul?
Assistant: (audio) For the current weather in Istanbul, please refer to a weather website or a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
2835
168
820
44
$0.32

Total
21849
2727
6355
716
$2.78

Turn 16
User: (audio) What's the weather in New York?
Assistant: (audio) To get the current weather in New York, please check a reliable weather website or a weather app on your device. They will have up-to-date information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3019
180
874
47
$0.34

Total
24868
2907
7229
763
$3.12

Turn 17
User: (audio) What's the weather in San Francisco?
Assistant: (audio) To get the current weather in San Francisco, please check a reliable weather website or a weather app on your device for the most up-to-date information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3222
190
931
46
$0.37

Total
28090
3097
8160
809
$3.49

Turn 18
User: (audio) What's the weather in London?
Assistant: (audio) To find out the current weather in London, please check a reliable weather website or use a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3429
175
987
47
$0.38

Total
31519
3272
9147
856
$3.87

Turn 19
User: (audio) What's the weather in Toronto?
Assistant: (audio) For the latest weather in Toronto, please check a weather website or a weather app. They will have up-to-date information on the current conditions.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3622
167
1044
45
$0.40

Total
35141
3439
10191
901
$4.27

Turn 20
User: (audio) What's the weather in Istanbul?
Assistant: (audio) To get the current weather in Istanbul, please check a reliable weather website or a weather app on your device for the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3807
155
1099
42
$0.42

Total
38948
3594
11290
943
$4.69

Turn 21
User: (audio) What's the weather in New York?
Assistant: (audio) To get the current weather in New York, please check a reliable weather website or use a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
3978
179
1151
47
$0.44

Total
42926
3773
12441
990
$5.13

Turn 22
User: (audio) What's the weather in San Francisco?
Assistant: (audio) To find out the current weather in San Francisco, please check a reliable weather website or a weather app on your device. They will have the most up-to-date information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
4180
188
1208
52
$0.46

Total
47106
3961
13649
1042
$5.59

Turn 23
User: (audio) What's the weather in London?
Assistant: (audio) To get the current weather in London, please check a reliable weather website or use a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
4385
176
1270
48
$0.48

Total
51491
4137
14919
1090
$6.07

Turn 24
User: (audio) What's the weather in Toronto?
Assistant: (audio) To find out the current weather in Toronto, please check a reliable weather website or use a weather app on your device for the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
4579
164
1328
44
$0.50

Total
56070
4301
16247
1134
$6.57

Turn 25
User: (audio) What's the weather in Istanbul?
Assistant: (audio) To get the current weather in Istanbul, please check a reliable weather website or a weather app on your device for the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
4761
145
1382
42
$0.51

Total
60831
4446
17629
1176
$7.08

Turn 26
User: (audio) What's the weather in New York?
Assistant: (audio) To find out the current weather in New York, please check a reliable weather website or use a weather app on your device. They will provide the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
4922
178
1434
48
$0.54

Total
65753
4624
19063
1224
$7.62

Turn 27
User: (audio) What's the weather in San Francisco?
Assistant: (audio) For the latest weather in San Francisco, please check a weather website or a weather app on your device. They will have the most current information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
5123
180
1492
45
$0.56

Total
70876
4804
20555
1269
$8.18

Turn 28
User: (audio) What's the weather in London?
Assistant: (audio) To get the current weather in London, please check a reliable weather website or use a weather app on your device for the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
5320
142
1547
43
$0.57

Total
76196
4946
22102
1312
$8.75

Turn 29
User: (audio) What's the weather in Toronto?
Assistant: (audio) To find out the current weather in Toronto, please check a reliable weather website or use a weather app on your device. They will have the latest information.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
5480
176
1600
47
$0.59

Total
81676
5122
23702
1359
$9.34

Turn 30
User: (text) What was the second city I asked about?
Assistant: (audio) The second city you asked about was San Francisco.

Tokens
In Audio
Out Audio
In Text
Out Text
Cost

Current
5656
53
1662
20
$0.58

Total
87332
5175
25364
1379
$9.92

Total Cost: $9.92

I also noted this and conversed with @dnakov over Twitter about it - realtime API costs are much higher than expected and his code saves on it significantly. His repo is here with the "optimizations" to reduce cost:
https://github.com/dnakov/realtime-api-cost

Pushing this upward. I did not do a record on the findings.
However, also realize that if I go to have a chat on Playground for 5 minutes. It cost only around $1. But doing it with the realtime console, it costs $2-4. I am using the same prompt on both versions.
For more information, I am also using the relay.

It's the same, playground or not.

can I ask that how did you get the cost tokens from this api? I wanted to do this but I failed to find a server event that contains the cost.

@spectaclecs take a look at PR #37

#37 needs to be added, it cost me ~$10 for 5 minute conversation lol.  Gotta stick to concurrent processing for now...

Bumping this up!

The increasing costs is just the conversation history that's building up in the thread. OpenAI doesn't know what your scenario is so they don't know how much conversation history to track.  You need at least 2 - 3 turns for features like co-referencing to work. Questions like "how much is that in euros?" wont work because the model won't know what "that" is referring to... Depending on your scenario though you might need 20 turns of conversation history.  The point is OpenAI doesn't know your scenario so they track as many turns as they can fit into the context window which can be expensive.
A feature that lets you configure the number of turns to keep could be handy but you've already shared the code above for how to trim the conversation history yourself.

I don't think that is correct @Stevenic - look at the video demo @dnakov has posted to Twitter showing that it can remember the history even with the optimized/cutdown version:

https://x.com/dnak0v/status/1842685544423182631


Base progress calculations on external file structure

I'd like to propose a feature of comparing the PO files in local directory to POT files in external directory. It could be helpful in calculating the progress in situations where resources with not started translation are missing in the local directory.
Example:
% potodo --base ../cpython/Doc/_build/gettext
# c-api (10.53% done)

- (missing) abstract.pot           0 /   3 (  0.0% translated)
- allocation.po                    2 /   9 ( 22.0% translated)
- apiabiversion.po                 4 /  38 ( 10.0% translated)
- arg.po                          23 / 195 ( 11.0% translated)
- buffer.po                        2 / 105 (  1.0% translated)
- bytes.po                         3 /  60 (  5.0% translated)
- call.po                          1 /  95 (  1.0% translated)

…

# TOTAL (9.45% done)

That definitely could be done. Would you have time to work on it and open a pull request ? I'd review it with pleasure

I have the intention, but I am not sure if I'll find the time for it soon.


build: Port from MANIFEST.in to setuptools_scm

Using setuptools_scm allows us to reliably ensure that all files in
git are in the sdist, which avoids problems caused by occasionally
forgetting to update MANIFEST.in when adding a new directory.
MANIFEST.in still needs to be kept (in a reduced form) because there
are a few files needed by webpack and by kolibri-installer-android which
are only created at dist time, and exist outside setuptools.
References:

https://github.com/pypa/setuptools_scm#readme
https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/
https://github.com/pypa/setuptools_scm/issues/190
https://packaging.python.org/en/latest/guides/using-manifest-in/

Signed-off-by: Philip Withnall<EMAIL_ADDRESS>Fixes https://github.com/endlessm/kolibri-explore-plugin/issues/647

Rebased to fix a merge conflict on __init__.py which happened in the last half hour. That kind of conflict will be eliminated by this branch.

Other changes in this branch (apart from moving to setuptools_scm) are to drop setup.py and change version numbering to be generated from git tags.
My Python packaging knowledge dates from the setup.py era, so I may have not used the best practices with pyproject.toml (though I’ve tried), so nitpicks/feedback/passive aggressive takedowns are welcome.
The diff between the whl generated on master and the one generated on this branch is below (version numbers in it not updated for the latest rebase/version bump on master):
$ diff -ur ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin ./kolibri_explore_plugin-6.20.1.dev*-py3-none-any/kolibri_explore_plugin
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: apps
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: assets
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: buildConfig.js
diff -ur ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/__init__.py ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/__init__.py
--- ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/__init__.py	2023-06-23 12:34:40.000000000 +0100
+++ ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/__init__.py	2023-06-23 14:27:12.000000000 +0100
@@ -1,3 +1 @@
-__version__ = "6.20.0"
-
 default_app_config = "kolibri_explore_plugin.apps_config.ExploreConfig"
diff -ur ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/static/build-info.json ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/static/build-info.json
--- ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/static/build-info.json	2023-06-23 12:35:22.000000000 +0100
+++ ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/static/build-info.json	2023-06-23 14:27:58.000000000 +0100
@@ -1,7 +1,14 @@
 {
-    "commit": "9c64d2a",
-    "date": "Thu Jun 22 22:43:21 2023",
+    "commit": "a8db71e",
+    "date": "Fri Jun 23 14:27:13 2023",
     "version_name": "Ladybird",
     "last_release": "v6.20.0",
     "log": [
+{ "commit": "a8db71e", "subject": "scripts: Fix a small typo in bump_version.py", "author": "Philip Withnall" },
+{ "commit": "c075848", "subject": "docs: Fix a small typo in README.md", "author": "Philip Withnall" },
+{ "commit": "b9f1b24", "subject": "gitignore: Allow collections to be a symlink", "author": "Philip Withnall" },
+{ "commit": "d38143a", "subject": "build: Port from setup.py to pyproject.toml", "author": "Philip Withnall" },
+{ "commit": "e6584ee", "subject": "build: Fix author e-mail address", "author": "Philip Withnall" },
+{ "commit": "f2d92ec", "subject": "build: Generate package version number automatically from git", "author": "Philip Withnall" },
+{ "commit": "a306c19", "subject": "build: Port from MANIFEST.in to setuptools_scm", "author": "Philip Withnall" },
 { "commit": "00e431e", "subject": "footer: Correctly hide store buttons in apps", "author": "Will Thompson" }]}
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: test
diff -ur ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/urls.py ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/urls.py
--- ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/urls.py	2023-06-23 12:34:40.000000000 +0100
+++ ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/urls.py	2023-06-23 14:27:12.000000000 +0100
@@ -2,7 +2,7 @@

 from django.conf.urls import url

-from . import __version__ as VERSION
+from ._version import __version__ as VERSION
 from .views import AppFileView
 from .views import AppMetadataView
 from .views import ExploreView
diff -ur ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/_version.py ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/_version.py
--- ./kolibri_explore_plugin-6.20.0-py2.py3-none-any/kolibri_explore_plugin/_version.py	2023-06-23 12:33:40.000000000 +0100
+++ ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin/_version.py	2023-06-23 14:28:06.000000000 +0100
@@ -1,4 +1,4 @@
 # file generated by setuptools_scm
 # don't change, don't track in version control
-__version__ = version = '6.20.1.dev7+gfea7109.d20230623'
-__version_tuple__ = version_tuple = (6, 20, 1, 'dev7', 'gfea7109.d20230623')
+__version__ = version = '6.20.1.dev9+ga8db71e'
+__version_tuple__ = version_tuple = (6, 20, 1, 'dev9', 'ga8db71e')

Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: apps
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: assets
Only in ./kolibri_explore_plugin-6.20.1.dev9+ga8db71e-py3-none-any/kolibri_explore_plugin: buildConfig.js

These files/directories are now included in the wheel, whereas they weren’t previously. It seems reasonable to include them, since they’re checked in to git.

Well that set of CI results is a complete disaster. More work obviously needed.

Looks like _version.py needs to be generated before yarn build:plugin can run. Looking into it.

Looks like _version.py needs to be generated before yarn build:plugin can run. Looking into it.

I’ve pushed a new yarn build:version target which should hopefully fix this.

I think I might have something close to working here, but I think I want to spend some time tomorrow working out how to rationalise the dependency lists for the project. There’s about 5 different partial dependency lists in different places, and that’s going to lead to confusion.

OK, I’ve tidied up the commits a bit and added some additional commits to consolidate on Pipfile and drop requirements.txt. Ready for review again (it’ll probably need a full re-review since so much has changed). So far, the CI looks happy with things :crossed_fingers:

Looks great after tidy up!
Especially, splitting the dependent packages into dev and runtime parts.

Thanks for the review!
@dbnicholson, do you have any other comments? Otherwise I’ll go ahead and merge and see what breaks

@dbnicholson any chance you could take another look?
@pwithnall said he'll resolve the conflict just before merging (because the conflict will just be re-introduced in the meantime if anyone makes another release, as we just did during the platform team call)

@dbnicholson any chance you could take another look?
@pwithnall said he'll resolve the conflict just before merging (because the conflict will just be re-introduced in the meantime if anyone makes another release, as we just did during the platform team call)

Sorry, this fell off my radar. Reviewing now. And since @pwithnall is done for the week, I can fixup the merge if all looks good.


☀ Enhancement: Mention Python Alias

Summary
The script and documentation should mention that the project assumes that the go to way that user invokes python is by python keyword itself.
This caused an issue for a friend of mine here is the ss -:

Description
He just downloaded python [Windows] and the default way to invoke python in that situation is by py and not python. The project should update the documentation and scripts as well to have some sort of solution.

This issue is no longer valid for more info refer #15 .


rack-mount stls

Dear Jazwa,
Thank you for your great work! Could you include the .stls for the beelink trays you made online?
Kind regards

I've added the config for this here: https://github.com/jazwa/rackstack/blob/main/rack-mount/catalog/beelink-mini-s-tray.scad
So all you should need to do is open the file using OpenSCAD, and then click on generate and save stl.


window.advChannels = "{{adv_channels_adapter}}" Not Working

I use window.advChannels = "{{adv_channels_adapter}}"; to distinguish advertising networks, but after building, window.advChannels = "{{adv_channels_adapter}}"; returns "undefined".
My code:
window.advChannels = "{{adv_channels_adapter}}";
console.log("Current ads chanel window.advChannels "+ window.advChannels);
Result: Current ads chanel window.advChannels undefined (IS,Unity,Mintegral)
I tried the below versions but no fix:
1.3.4 to 1.3.9
Cocos Creator: 3.8.2

It's fixed. 1.3.10


Including Latest CA Certs in Docker Image

When trying to have Ethconnect connect to a remote Geth node secured via HTTPS we noticed we were getting invalid cert errors:
x509: certificate signed by unknown authority

In the process of testing to confirm this fixes this issue.

Codecov Report

Merging #194 (40e4ef0) into main (cea31d7) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #194      +/-   ##
==========================================
- Coverage   97.19%   97.17%   -0.03%
==========================================
  Files          58       58
  Lines        6857     6857
==========================================
- Hits         6665     6663       -2
- Misses        147      148       +1
- Partials       45       46       +1

Impacted Files
Coverage Δ

ethconnect/internal/events/eventstream.go
96.61% <0.00%> (-0.57%)
:arrow_down:

Continue to review full report at Codecov.

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

I tested this, confirming it resolved the issue.

Not sure why coverage is all the sudden failing:
ok  	github.com/hyperledger/firefly-ethconnect/internal/ws	0.063s	coverage: 100.0% of statements
?   	github.com/hyperledger/firefly-ethconnect/mocks/contractregistrymocks	[no test files]
?   	github.com/hyperledger/firefly-ethconnect/mocks/ethmocks	[no test files]
?   	github.com/hyperledger/firefly-ethconnect/mocks/saramamocks	[no test files]
?   	github.com/hyperledger/firefly-ethconnect/pkg/plugins	[no test files]
FAIL

from https://github.com/hyperledger/firefly-ethconnect/runs/4908675424?check_suite_focus=true


Enable HTTPS support per default. Consider disabling plain HTTP

To improve security it would be helpful to enable HTTPS support per default and disable plain unencrypted HTTP altogether.

Please note, that for this to happen in a most secure way we should change the way certificates are generated on a CCU. Currently the certificate (including the private key) are generated online through http://www.homematic.com/sslcert/ssl.php and then downloaded (even through an unencrypted http connection!) to the machine sending the request. Thus, for improving security we should refrain from downloading the certificate+private key in that way but rather using a locale openssl binary to locally generate a key-file and corresponding certificate.

Please note that we should generate self-signed certificates upon first boot of RaspberryMatic via the following openssl command:
openssl req -new -x509 -nodes -keyout /etc/config/server.pem -out /etc/config/server.pem -days 3650 -subj "/C=DE/O=HomeMatic/OU=MEQ1234567/CN=homematic-raspi"