argocd: doesnt pull image metadata from dockerhub private registries

Describe the bug
/ $ argocd-image-updater test gouthamappsmith/tests-argocd:release --update-strategy latest
DEBU[0000] Creating in-cluster Kubernetes client
INFO[0000] retrieving information about image            image_alias= image_digest= image_name=gouthamappsmith/tests-argocd image_tag=release registry_url=
INFO[0000] Fetching available tags and metadata from registry  application=test image_alias= image_digest= image_name=gouthamappsmith/tests-argocd image_tag=release registry_url=
FATA[0001] could not get tags: errors:
denied: requested access to the resource is denied
unauthorized: authentication required  application=test image_alias= image_digest= image_name=gouthamappsmith/tests-argocd image_tag=release registry_url=

My registries configmap look as follows
apiVersion: v1
data:
  registries.conf: |
    registries:
    - name: Docker Hub
      api_url: none
      credentials: pullsecret:argocd/appsmith
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"ConfigMap","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"argocd-image-updater-config","app.kubernetes.io/part-of":"argocd-image-updater"},"name":"argocd-image-updater-config","namespace":"argocd"}}
  creationTimestamp: "2024-01-01T07:26:36Z"
  labels:
    app.kubernetes.io/name: argocd-image-updater-config
    app.kubernetes.io/part-of: argocd-image-updater
  name: argocd-image-updater-config
  namespace: argocd
  resourceVersion: "225812617"
  uid: a27b5695-06eb-424e-bbe7-60db4b32d2f6

Same creds work when i do a docker login
(base) ➜  Pictures docker login --username xxxxx --password xxxxxxx
WARNING! Using --password via the CLI is insecure. Use --password-stdin.

Login Succeeded
(base) ➜  Pictures docker pull index.docker.io/gouthamappsmith/test-argocd:release
release: Pulling from gouthamappsmith/test-argocd
c926b61bad3b: Downloading [=========================>                         ]   1.71MB/3.402MB
e5820a814e8c: Downloading [=====>                                             ]  1.453MB/13.14MB
7b4bda58fd3f: Downloading [=>                                                 ]  947.1kB/46.85MB

I created the secret as follows
kubectl create -n argocd secret docker-registry appsmith --docker-username=xxxx --docker-password=xxx
and it is working in the same cluster as imagePullSecrets. Also, occasionally i see Too many pull Requests despite providing my credentials and authenticating myself
Am i missing anything? anyhelp would be off great use Thankyou
Version
/ $ argocd-image-updater version
argocd-image-updater: v0.12.0+aee153d
  BuildDate: 2022-03-14T12:45:27Z
  GitCommit: aee153dabeb8b592e4d091c933ae4f77181db653
  GoVersion: go1.17.8
  GoCompiler: gc
  Platform: linux/amd64

I tried the following and it worked.
Create a secret using dockerhub PAT using the following link
cat docker-secret.yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: dockerhub
  namespace: argocd
type: Opaque
stringData:
  token: gouthamappsmith:xxxxxxxxxx

argocd-image-updater.yaml as the following
---
image:
  tag: "latest"

metrics:
  enabled: true

config:
  registries:
    - name: Docker Hub
      credentials: secret:argocd/dockerhub#token
      api_url: https://registry-1.docker.io
      ping: yes
      default: true

Installed argcd-image-updater using the following
helm upgrade -i updater -n argocd argo/argocd-image-updater -f argocd-image-updater.yaml

However, upon deploying i see these logs
time="2024-01-02T08:54:12Z" level=info msg="Successfully updated the live application spec" application=appsmith
time="2024-01-02T08:54:12Z" level=info msg="Processing results: applications=1 images_considered=2 images_skipped=0 images_updated=2 errors=0"

But, I don't see the image not getting updated. Anything i am missing ? I deliberately , didn't go with git commits ?

Just wanted to add some traffic to this, we have a similar situation.
We use Azure Container Registry, and when I tried to configure a registry-wide pull secret, it wouldn't auth (but I could curl the same /tag/list endpoint with the same creds).
When I set each image in the image list to use the same pull secret individually, it works.
So I think there's a disconnect somewhere between the registry-wide config (which uses https://????.azurecr.io for it's api url), and the image list which omits the https when defining images.
I'm guessing when it goes to compare to decide if it needs to use that specific registry, it doesn't consider it a match? Just a stab in the dark.


Error Response Handling with Base Code in Auth Service

Describe the bug
There is Problem in Error Handling Middleware and Base Code of Auth Service. Register Route is returning empty json data
Screenshots

To Reproduce
Steps to reproduce the behavior:

Post Sample json data to /api/sign-up Route.

Expected behavior

It should return the JWT Token as of now in Json response.
On Occurring any Server Side Error, return the error in response with proper Error Handling.

Additional context

In Future, we will parse the token in Cookies.
Also add Refresh and Access Token

Instructions
Stay you can start working on it by taking latest pull from main branch

[ ] Please read the contributors guidelines Contributing Guidelines.
[ ] Please follow the code of conduct Code Of Conduct
[ ] Don't Forget to join onboarding group for knowledge flow and direct conversation and support from admins
[ ] Link Curious Developers Community - Curious Connect
[ ] Please attach the screenshots and video of the development work once it is done
[ ] Contributions more than 3 will be awarded a certificate of appreciation from curious ecosystem
[ ] please mail to<EMAIL_ADDRESS>for claiming certificate and please attach your issue number

Respect Co Developers And Please Reach-out to admins if any issues in the onboarding group

Can you please assign this issue to me

@mehtakevan you can start working on it.

@mehtakevan Also you can refer to this article as well for best Error Handling practices in Express https://dev.to/qbentil/how-to-write-custom-error-handler-middleware-in-expressjs-using-javascript-29j1

I want to work on this

@Akki019 you can start working on this
Instructions
You can start working on it by taking latest pull from main branch

[ ] Please raise pull request to main
[ ] Please read the contributors guidelines Contributing Guidelines.
[ ] Please follow the code of conduct Code Of Conduct
[ ] Don't Forget to join onboarding group for knowledge flow and direct conversation and support from admins
[ ] Link Curious Developers Community - Curious Connect
[ ] Please attach the screenshots and video of the development work once it is done
[ ] Contributions more than 3 will be awarded a certificate of appreciation from curious ecosystem
[ ] please mail to<EMAIL_ADDRESS>for claiming certificate and please attach your issue number

if any help required reach-out to admins or mentors in the onboarding group default meeting link and approach to admins - GOOGLE MEET Issue Discussion Google Meet
Respect Co Developers And Please Reach-out to admins if any issues


New Delphix Write User

GitHub repositories
https://github.com/jenkinsci/delphix-plugin
GitHub users to have permission
@pankaj-delphix
Justification
Member of Delphix's DevOps team

Added!

thanks!


Check whether leapp can control the boot process

Case RE-514: Currently, the script assumes that leapp will have sufficient control over the boot process via GRUB2 configuration. This can result in upgrades making it all the way to leapp only to discover that leapp cannot boot into the custom environment leapp uses to carry out the upgrade, leading to a system that largely cannot be restored into a fully functional state.
It is possible to check that changes made to the bootloader are reflected in the behavior of the boot process, but this requires doing work prior to any major changes to the system. Stage 1 is an ideal time for this, but also stage 1 was not designed to result in a reboot, unlike every other stage. To make this work, the bootstraping of the elevate-cpanel service has been moved to a pre-stage, and the start and continuation entry points have been changed not to call stage 1 directly. This allows the stage 1 subroutine to return a signal to reboot like all the other stages, though it also results in some cosmetic and (hopefully) minor changes to user-facing behavior, some of which can be mitigated.
In particular, the check being done is to use the grubby utility to add and later remove a kernel argument in the default boot entry. The argument is designed to be exceedingly unlikely to ever be something that the kernel or PID 1 would recognize, and thus they ignore it; the script then checks for the argument via /proc/cmdline at the very start of stage 2. If found, the rest of stage 2 proceeds as normal; if not, the entire ELevate process is reset as if --start had never been passed to the script, and a custom failure notification is emitted.
Changelog: Check whether leapp can control the boot process before
significant and irreversable changes are applied to the system.
By submitting pull requests to this repo, I agree to the Contributor License Agreement which can be found at: https://github.com/cpanel/elevate/blob/main/docs/cPanel-CLA.pdf

Overall considering the scope of the change I'd normally say "I'm surprised this did not cause tests to fail," but I know well the state of the t/ dir. This is however the perfect time to add tests for the updated/added functionality. I leave it to your discretion as to whether you have time for that or not, but strongly recommend it.

There are basically no tests for the high-level logic and control flow of the script, and it's not exactly written in a way that is conducive to making that happen. Tests for the Grub2 component should be reasonable, though.

Added test looks good to me, probably time to take another look @cPholloway


External buffer is being used for constant pointer targets

This keeps code from working on Electron. Also creates unnecessary relocations.

External buffers are now substituted with regular buffers. Need to update documentation to reflect that fact.


Remove Unused JAR Launcher Prefix to Fix Issue with Signing

Pull Request Description

A fix that seems necessary for https://github.com/enso-org/ide/pull/1366
The prefix was needed to launch runner.jar directly (by typing ./runner.jar), it was setting up the reference to the runtime. It is not really needed because we have the launch scripts for debugging and for the users, the recommended way it to just use the official laumcher.
It seems that the prefix was causing some issues with how the JAR archive was handled during signing, making it not runnable at all after being signed, so removing this unnecessary prefix was the simplest fix for the issue.
Important Notes

Checklist
Please include the following checklist in your PR:

[x] The documentation has been updated if necessary.
[x] All code conforms to the Scala, Java, and Rust style guides.
[x] All documentation and configuration conforms to the markdown and YAML style guides.
[x] All code has been tested where possible.

I assume there are no other JARs that have this issue?

No, this only applied to the runner which had the special prefix for launching it. Other JARs that we produce are not meant for running, so this does not apply.
I don't know about GraalVM JARs but that is not something we control so it has to be handled by the signing code (which currently resides in IDE), but since the test run on MacOS was working, I'd guess that it works fine. Also I think some time ago @MichaelMauderer was mentioning that zip was unable to unpack only this runner.jar, due to the prefix, so I assume it worked for others.

Excellent!


Spending process: Cosigning server + Coordinator communication, and Unvault + Spend broadcast

This implements the spending process on top of #125 .
We add a spend_transactions table to the database in order to keep track of PSBTs. A bridge spend_inputs table is added as well to join with the Unvault transaction in the presigned_transactions table.
This allows to offer to the caller a way to:

Create a Spend transaction (previous work, already in master)
Store or update a Spend transaction (updatespendtx)
Delete a stored Spend transaction (delspendtx)
List the stored Spend transaction along with the vault deposit outpoints they ultimately spend (listspendtxs)
Trigger the Spending Process by
5.a Checking all managers signed
5.b Requesting the signatures from the cosigning servers
5.c Announcing the Spend transaction to the Coordinator
5.d Broadcasting the Unvault transaction(s)
5.e Later broadcasting the Spend transaction

We also integrate the Cosigning Server in the functional test framework: https://github.com/revault/cosignerd .
It's still a bit rough on the edges, and notably does not include proper state tracking but i wanted to get this out and get to the state tracking after having fixed the DB.
 It'll come post fixing the database

Added a drive-by (hopefully) fix for the second item of #118

The last commit was added as a prep work of a more extensive blackbox test of the Spend process, which will finally not happen in this PR. Leaving it though as it's tightly related to the Spend process.

We should not be able to delete a Spend marked as broadcast = 1

Edouard feedback: updatespendtx should not take outpoints

Removed the outpoints from updatespendtx arguments
Updated the tests doc
Added some wannabe-edgecase-testing test cases, new suggestions of not a scenario not currently covered very welcome!

Made the test_large_spends test case sign-and-wait in parallel. Resulted in a factor 2 speedup:
diff --git a/tests/test_misc.py b/tests/test_misc.py
index cfad5ea..a9a7d64 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -1142,7 +1142,7 @@ def test_spends_conflicting(revault_network, bitcoind):
 # FIXME: exchange of signatures with the cosigning server gets too large too quickly
 # See https://github.com/revault/practical-revault/issues/81
 @pytest.mark.skipif(not POSTGRES_IS_SETUP, reason="Needs Postgres for servers db")
-def test_large_spends(revault_network, bitcoind):
+def test_large_spends(revault_network, bitcoind, executor):
     CSV = 2016  # 2 weeks :tm:
     revault_network.deploy(9, 4, csv=CSV)
     man = revault_network.man_wallets[0]
@@ -1150,11 +1150,23 @@ def test_large_spends(revault_network, bitcoind):
     deposits = []
     deriv_indexes = []
     total_amount = 0
+    revtx_futures = []
     for _ in range(15):
         amount = random.randint(5, 5000) / 100
         vault = revault_network.fund(amount)
-        revault_network.secure_vault(vault)
-        revault_network.activate_vault(vault)
+        revtx_futures.append(
+            (vault, executor.submit(revault_network.secure_vault, vault))
+        )
+
+    unvaulttx_futures = []
+    for (vault, fut) in revtx_futures:
+        fut.result(TIMEOUT)
+        unvaulttx_futures.append(
+            (vault, executor.submit(revault_network.activate_vault, vault))
+        )
+
+    for (vault, fut) in unvaulttx_futures:
+        fut.result(TIMEOUT)
         deposits.append(f"{vault['txid']}:{vault['vout']}")
         deriv_indexes.append(vault["derivation_index"])
         total_amount += vault["amount"]

Ok, pushed a hopefully final version, thanks everyone for bearing with me and my hacks

Removed the concurrency too and opened https://github.com/revault/revaultd/issues/135


chunjun可以保持数据执行的时序吗

Search before asking

[X] I had searched in the issues and found no similar question.

[X] I had googled my question but i didn't get any help.

[X] I had read the documentation: ChunJun doc but it didn't help me.

Description
hello, 可以帮忙解答一下这个问题吗。
比如一条记录在源库前后有两个update操作，然后写入到目的库的时候前的update先执行，后的update后执行。chunjun有机制来保持这个时序吗？
Code of Conduct

[X] I agree to follow this project's Code of Conduct

可以的，实时采集插件，如binlog，logminer都是保证采集数据的顺序性。

好的，感谢您的回复，然后想再问一下mysql-source, mongodb-source, es7-source这些是实时采集插件吗，还有写入插件能保证顺序性吗？


BEEFY: add on-chain mechanism to initialize/reset beefy pallet and client (voter)

BEEFY will be deployed on running chains so relying on GenesisConfig is not enough.
Currently, to initialize it, sudo/governance needs to do multiple synchronized setStorage** calls (setting pallet genesis block and setting initial authority_set_id to GENESIS_AUTHORITY_SET_ID).
This approach doesn't allow us to set a genesis further in the future than current session because the authority-set-id is incremented every session and the client expects active.id() == GENESIS_AUTHORITY_SET_ID for the pallet genesis block; and is somewhat error-prone.
Solution(s)

Relax requirement that initial authority_set_id needs to be GENESIS_AUTHORITY_SET_ID. (easy)
Add explicit reset/init mechanism to pallet-beefy so that it only starts tracking and rotating authority-sets after pallet genesis block. (more involved)

CC @andresilva

I think we should go with 1st option.
BEEFY consensus can be restarted by resetting "genesisBlock" in pallet-beefy, but we don't want to also reset authority set IDs so that they are uniquely identified across the entire chain history regardless of how many times BEEFY consensus has been reset/restarted.
Ergo the client should also accept initial authority_set_id != 0.


Add CPU metrics

This PR adds two new default metrics:

cpu_total{} - total cpu time elapsed since boot
cpu_thread{kind, thread_name, thread_pid, file_name} - cpu time elapsed since tarantool start

This enables you to make such queries:
sum by (instance, file_name, thread_name, kind) (idelta(tnt_cpu_thread[$__interval])
    / on (instance) group_left idelta(tnt_cpu_total[$__interval]) * tnt_cpu_count)

@oleggator new files must be added to rpmspec https://github.com/tarantool/metrics/blob/master/rpm/tarantool-metrics.spec

please introduce relevant test suite
I recommend referring to https://github.com/giampaolo/psutil or https://github.com/shirou/gopsutil to review their testing strategy

I added unit tests for psutils_linux module


Ts/1925 funman workflow

Initial funman exploration. Sorry for the massive PR
A few things will be done in future PRs such as:
-Poller to follow regular format for getStatus #2196
-cleanup of UI #1925
-Storing this in TDS as object #1890
-Update renderer to display false boxes for current and future timesteps to more accurately display to the user #1923

back end 👍

Okay, I will make my PR to fix most of the front-end issues


Update GS CCLA Schedule A with new description

Update GS CCLA Schedule A with new description provide by @pierredebelen

Do we really need this? We did not in the past.
Meaning, if the contribution of the code happens with a ID that is covered under schedule B (eg Pierre or James), then we have not required modifications of the schedule A.
Schedule A is used for “first time code contribution” from a firm firm for which the CCLA is not on file.
Unless @swinslow has a different interpretation or you folks discuss this already, I vote to close this one.

moving this to the internal FINOS team priorities board


Fix relative path resolution on Windows

What kind of changes does this PR include?

Changes to Starlight code

Description

Closes #331
Fixes relative path resolution on Windows by relying on Vite to resolve /./foo or /../foo as if they were relative to the project root.

size-limit report 📦

Path
Size

/index.html
13.15 KB (0%)

/_astro/*.js
16.21 KB (0%)

/_astro/*.css
8.53 KB (0%)


question on permissions

With today's update, the scanners at IoD threw a warning:
! repo/app.simple.peri_152.apk declares sensitive permission(s): android.permission.MANAGE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
! repo/app.simple.peri_152.apk contains signature block blobs: 0x504b4453 (DEPENDENCY_INFO_BLOCK; GOOGLE)

As for MANAGE_EXTERNAL_STORAGE I found #42 – I guess READ_EXTERNAL_STORAGE is related to that?
Concerning DEPENDENCY_INFO_BLOCK, that can easily be avoided with a minor addition to your build.gradle:
android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains. More details can be found e.g. here: Ramping up security: additional APK checks are in place with the IzzyOnDroid repo.
Thanks in advance!

Yeah, the permissions are solely used for accessing the current wallpaper of the device, more reference can be found here. It's weird how it works, granting whole file system access just for getting the wallpaper from the system.
As for dependency block, I didn't know about that, I'll disable it.

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue, https://app.mediafire.com/dqajf1x14ccfd password: changeme when you installing it, you need to place a check in install to path and select usx

I had already fixed it...

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

It's weird how it works

That's a problem with several permissions (think e.g. of location permissions if you need bluetooth). And indeed, granting MANAGE_EXTERNAL_STORAGE just to access the current wallpaper seems quite excessive. There are exclusive permissions to SET_WALLPAPER* – so one can only wonder why there's no GET_WALLPAPER*…

As for dependency block, I didn't know about that, I'll disable it.

Thanks a lot! I've meanwhile added both permissions to the green list (already in effect).


Issue: Round Corners

It does not work well with pages with round corners. Otherwise works well.

Hello!
Thanks for the report :)
Unfortunately, I'm very swamped at the moment, so patches will be very slowly released.
I'm working on fixing this issue. It would be very helpful if you could provide some sample data (no pressure if you can't). It would speed this process up greatly.

Hey there,
Upon closer inspection, I've decided to close this as wontfix as I can't reproduce this issue.
If you could send an image containing a document with rounded corners that fails at detection, then I'll be happy to reopen this issue.
Also, I do have to weigh the benefits of detecting this over sacrificing accuracy of regular detection.

Sorry I have been extremely busy lately. This eBay listing shows some good examples of the cards I have.
https://www.ebay.com/itm/224056497141


fix: call async_register from thread

Fixed bug in 2024.5: [homeassistant.helpers.frame] Detected that custom integration 'multiroom-mqtt-mediaplayer' calls async_register from a thread at custom_components/multiroom-mqtt-mediaplayer/init.py, line 55: hass.services.async_register(, please report it to the author of the 'multiroom-mqtt-mediaplayer' custom integration

@jonaseickhoff Could you give this a look?


Tool calls not working as expected when are called in parallel

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangGraph/LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangGraph/LangChain rather than my code.
[X] I am sure this is better as an issue rather than a GitHub discussion, since this is a LangGraph bug and not a design question.

Example Code
## tool fucntion
def publish_final_answer(
        final_answer: str,
        index: int,
    ):

        print("\n\t\tMy index is", index, "\n")

        is_final_answer = True
        try:
            response = json.loads(final_answer, strict=False)
        except Exception as e:
            response = f"Tool Error: Final answer is not a valid JSON: {e}"
            is_final_answer = False

        tool_response = {
            "message": response,
            "is_final_answer": is_final_answer,
            TRACE_ID: index,
        }

        print("Tool response:", tool_response)

        return json.dumps(tool_response)

Error Message and Stack Trace (if applicable)
No response
Description

This is my graph, I am executing in parallel two agents (sql_ret_0 and sql_ret_1), each calls a tool inside ToolNode sql_ret_tools_0 and sql_ret_tools_1 respectively, to identify each instance of my agent I use a idx (0/1), so when I call a tool I pass the index  to the tool, and this is working correctly since the tool calls look like this:
INFO:root:Tools calls: [{'name': 'publish_final_answer', 'args': {'index': 0, 'final_answer': ''}, 'id': '071ca8f1-8ae0-43ae-8e01-9e018995df33', 'type': 'tool_call'}]
INFO:root:Tools calls: [{'name': 'publish_final_answer', 'args': {'index': 1, 'final_answer': ''}, 'id': 'f36a865c-94c5-4141-8a3b-bbfefe8c7b76', 'type': 'tool_call'}]
But the tools is being called twice only from the second node (sql_ret_1) because I added a print inside the tool to print the index and it shows twice the same

                My index is 1

Tool response: {'message': {'answer': "I'm here to help"}, 'is_final_answer': True, 'trace_id': 1}

                My index is 1

Tool response: {'message': {'answer': "I'm here to help"}, 'is_final_answer': True, 'trace_id': 1}

The graph seeem to be built correctly as you can see from the diagram, also it works perfectly when I instantiate only one node sql_ret.
System Info
langchain==0.3.1
langchain-anthropic==0.2.1
langchain-core==0.3.21
langchain-openai==0.2.1
langchain-text-splitters==0.3.0
platform mac
python version 3.11

Could you provide some sample code?

@gbaian10 sorry for the delay, here I uploaded a working minimal example, so you can test it yourself. Note that I use an abstraction over LangGraph but that shouldnt be a problem

import operator
from typing import Annotated, TypedDict

from langgraph.graph import END, START, StateGraph

class State(TypedDict):
    aggregate: Annotated[list, operator.add]

class ReturnNodeValue:
    def __init__(self, node_secret: str) -> None:
        self._value = node_secret

    def __call__(self, state: State) -> State:
        print(f"Adding {self._value} to {state['aggregate']}")
        return {"aggregate": [self._value]}

builder = StateGraph(State)
for s in "abcdef":
    builder.add_node(s, ReturnNodeValue(f"I'm {s.upper()}"))

builder.add_edge(START, "a")
builder.add_edge("a", "b")
builder.add_edge("a", "c")
builder.add_edge("b", "d")
builder.add_edge("c", "e")
builder.add_edge(["d", "e"], "f")
builder.add_edge("f", END)

graph = builder.compile()
graph.get_graph().draw_mermaid_png(output_file_path="example.png")

graph.invoke({"aggregate": []})

Output:
Adding I'm A to []
Adding I'm B to ["I'm A"]
Adding I'm C to ["I'm A"]
Adding I'm D to ["I'm A", "I'm B", "I'm C"]
Adding I'm E to ["I'm A", "I'm B", "I'm C"]
Adding I'm F to ["I'm A", "I'm B", "I'm C", "I'm D", "I'm E"]

You can refer to this example: when you reach D or E, both B and C are already completed.
And C is stored as the last message in your state's messages.
Here, D is equivalent to your tool (which uses ToolNode)
And ToolNode always takes the last AIMessage.
In the example above, this means both D and E will only read C, and no one reads B.
idx=0 corresponds to B (the second to last), and idx=1 corresponds to C (the last).
This is why you see two 1, because they both only read the last one.

@gbaian10 I see, then,  is it not possible to achieve my workflow?

@gbaian10 I dont see blue in the picture 😁, but my tools are intended to iterate n times with the main node (where the llm is called), I am not sure if your approach covers it. What do you think?

@gbaian10 I dont see blue in the picture 😁, but my tools are intended to iterate n times with the main node (where the llm is called), I am not sure if your approach covers it. What do you think?

Red 😅
I'm not quite sure about your situation.
If it's just a simple iterative process, perhaps parallel execution isn't necessary?

@gbaian10 Each sql_ret_idx agent, needs to iterate using tools to generate an answer, once each node has a answer ready, I use a decision_maker node to select the most accurate. That's why I have two paths (red/green) at the same time


deploy for testing to ms azure pipelines

these have macos, linux and win in one service, and have a generous free tier for FOSS, so that might be interesting for cross-platform testing.
Or maybe, just leave that to r-hub as per #71

yeah, R-hub, otherwise this is just crazy duplication.


[usage-asking] How to graceful shutdown tcpx server ?

Use it like:
srv := tcpx.NewTcpX(nil)
srv.BeforeExit(job1, job2, job3 ...)
srv.ListenAndServe("tcp", ":8080")

Here is part of source code:
func (tcpx TcpX) BeforeExit(f ...func()) {
	go func() {
		defer func() {
			if e := recover(); e != nil {
				fmt.Println(fmt.Sprintf("panic from %v", e))
			}
		}()
		ch := make(chan os.Signal)
		signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT)
		fmt.Println("receive signal:", <-ch)
		fmt.Println("prepare to stop server")
		for _, handler := range f {
			handler()
		}
		os.Exit(0)
	}()
}

It will catch syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT these signal and do all jobs you design as 'func()'.
Does this fit your requirement?

I hope the listener and connection normal close, not os.exit(0)

It'hard.Because there is not a specific pause point for ListenAndServe() to insert a context whatever it's about tcp, udp, or kcp.It means you can't run server in another goroutine and control it by the context.
Mayby you can design a  middleware and using a value to control server' context Abort, it will look like:
var access bool

func main()
    srv := tcpx.NewTcpX(nil)
    srv.AddHandler(1, setAccess)
    srv.Use("server-access",Access)
    // srv.AddHandler()
    srv.ListenAndServe("tcp", ":8080")
}

func Access(c *tcpx.Context){
    if !access {
        c.Abort()
        return
    }
}

func setAccess(c *tcpx.Context) {
      access = !access
}

close conn maybe use ClientPool:
`type ClientPool struct {
Clients map[string]*Context
m       *sync.RWMutex
}

func (cp *ClientPool) Close()  {
cp.m.Lock()
defer cp.m.Unlock()
for _,c := range cp.Clients{
c.CloseConn()
}
}`

close listener accept maybe like this:
`type TcpX struct {
listener *net.TCPListener
pool        *ClientPool
...
}

func (this *TcpX) Close()  {
if this.pool != nil{
this.pool.Close()
}
if this.listener != nil{
this.listener.Close()
}
}`
test example:
`listener,err := net.Listen("tcp","<IP_ADDRESS>:8888")
if err != nil{
fmt.Println("listen failed, ",err.Error())
}
go func() {
for {
_,err := listener.Accept()
if err != nil{
fmt.Println("accept failed, " + err.Error())
return
}
}
}()
time.Sleep(5 * time.Second)

err = listener.Close()
if err != nil{
	fmt.Println("listener close failed, ",err.Error())
}`

I seldom meet this situation. When I want to realize that stoping part of server makes no effects to another part, I ussually consider it in these layers:

Tear apart tcp server and http server into two progresses.Each process can restart/close as I wish and no effect to another. If there is nessasary interactions, I will start a grpc server in tcp part as grpc server side and http part as grpc client side.
If http part and tcp part share two many codes and I don't want to use grpc.  But I will not design it as you like via close listener, close pool connection.
Why?
Because listener can Close but cannot Restart, as long as you make it graceful to stop tcp server, you can no longer graceful restart it.You still have to restart the whole process.
I will design it as I've said,

add a mux handler to stop server access
close all connection but listener still accepts connection, connection will stop by access handler

or I can ignore step 2, I even don't have to close all connection as long as you set heartbeat-mode on.
Because all server handlers deny requests, heartbeat will also deny , after interval receiving no heartbeat pack, connection auto-close.

Just shut down the TCP service, simple things don't get complicated, don't grpc, don't http, why can't listen restart?
`type TcpX struct {
listener *net.TCPListener
pool        *ClientPool
...
}
func (this *TcpX) Start() (err error) {
this.listener,err = net.ListenTCP("tcp","<IP_ADDRESS>:8888")
...
}
func (this *TcpX) Close()  {
if this.listener != nil{
this.listener.Close()
this.listener = nil
}
}
func (this *TcpX) Restart()  {
this.Close()
this.Start()
}`
Most TCP/HTTP services support shutting down services, such as xtcp, gotcp, beego and so on. Why don't you support it?

Done.
Example refers to https://github.com/fwhezfwhez/tcpx/tree/master/examples/modules/graceful.
Have fun!

tks.


Add supplementary small group bases for some common fields

Description
This is related to https://github.com/arkworks-rs/algebra/pull/547.
The idea is that for some TurboPlonk implementations, we use the small base not just when we run out of 2-arity, but we use it when constructing the larger domain (e.g., 6x larger). It is preferred to use 6x (by using a 3) rather than 8x.
This is used in the Noah library as a performance improvement.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (master)
[x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] Re-reviewed Files changed in the Github PR explorer

N/A:

[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md

Should we add a CHANGELOG entry for this?

Depends on https://github.com/arkworks-rs/algebra/pull/547.

Needs to debug and fix the one related to secp256k1.

Depends on https://github.com/arkworks-rs/algebra/pull/550

I think it is ready to merge. I will appreciate a cut of the alpha version. Is the next cut already scheduled? (I dare not to cut a release since the last time I did that was two years ago I think)


percentage based default for boundingRect() is problematic

The node’s size plus some additional margin around it to account for drawing effects (for example shadows) or node’s parts outside the size rectangle (for example port points).
The default implementation returns QSize + 20 percent of width and heights at each side of the rectangle.

For resizable nodes, this percentage ends up being pretty significant in terms of hit box detection for selecting nodes. In the stated example of the types of effects or node parts, namely shadows, a fixed padding would probably be more appropriate as drop shadows shouldn't be changing the amount of offset when a node scales. There also doesn't seem to be an easy way to override this especially when using the DataFlow* classes. I would be happy to provide a PR but wanted to discuss first.

You are right, the default values might be sub-optimal because I did not delelop any large realistic application based on this framework.
I think the best work-around would be making the code extensible.
Perhaps something similar to cusom "node painter" or "connection painter" in BasicGraphicsScene could be a solution.
I.e. we could have a pair of functions nodeGeometry() and setNodeGeometry(unique_ptr<AbstractNodeGeometry> && g)
What do you think?
Best,
Dimitry


Implement Doubly Linked List in Java

This pull request introduces a complete implementation of a Doubly Linked List in Java. The implementation includes methods for inserting nodes, deleting nodes, and displaying the list in both forward and backward directions.
Key Features:

Node Class: Represents each node with references to both the next and previous nodes.
Insert Method: Adds a new node at the end of the list.
Delete Method: Removes a node based on its value, with appropriate linking of neighboring nodes.
Display Methods: Traverses the list to print the values from head to tail and tail to head.

Usage:
The Main class demonstrates how to create a doubly linked list, perform insertions and deletions, and display the list.
Please review the changes and let me know if any modifications or enhancements are required.

This pull request introduces a complete implementation of a Doubly Linked List in Java. The implementation includes methods for inserting nodes, deleting nodes, and displaying the list in both forward and backward directions.
Key Features:

Node Class: Represents each node with references to both the next and previous nodes.
Insert Method: Adds a new node at the end of the list.
Delete Method: Removes a node based on its value, with appropriate linking of neighboring nodes.
Display Methods: Traverses the list to print the values from head to tail and tail to head.

Usage:
The Main class demonstrates how to create a doubly linked list, perform insertions and deletions, and display the list.
Please review the changes and let me know if any modifications or enhancements are required.

@monurajputrko please add problem statement in code file.

This pull request introduces a complete implementation of a Doubly Linked List in Java. The implementation includes methods for inserting nodes, deleting nodes, and displaying the list in both forward and backward directions.
Key Features:

Node Class: Represents each node with references to both the next and previous nodes.
Insert Method: Adds a new node at the end of the list.
Delete Method: Removes a node based on its value, with appropriate linking of neighboring nodes.
Display Methods: Traverses the list to print the values from head to tail and tail to head.

Usage:
The Main class demonstrates how to create a doubly linked list, perform insertions and deletions, and display the list.
Please review the changes and let me know if any modifications or enhancements are required.

@monurajputrko please add problem statement in code file.

@monurajputrko pls do it.


types-ddd-cli

Types-ddd cli
Build a cli to auto generate domain files
Requires npm and nodejs installed
Example how it will works
A cli to works with types-ddd lib. A domain driven design library.
Initial resources

[x] value-object
[x] entity
[x] aggregate
[x] mapper
[x] domain-event

Summary

-g: generate
-n: name
-t: type
-p: path

Installation
	$ npm i types-ddd-cli -g

Help
	$ types-ddd --help

OR
	$ types-ddd help

Generate
	$ types-ddd create value-object --name example --path ./src/domain/

OR
	$ types-ddd create value-object --name example

https://github.com/4lessandrodev/types-ddd-cli

Published beta version for tests
https://www.npmjs.com/package/types-ddd-cli

New Version with full resourcers


Upgrade improvements and refactor shutdown process

Manually call xdg-open instead of using shell.openItem(), which doesn't reliably work from the main process
If there's a connection error or timeout when asking the daemon to close, fall back on trying to force kill any copies of the daemon that are running

Outstanding issues before ready to merge:

Finish testing
Try on Windows (all of the known issues have to do with the logic of killing the daemon and restarting, so there shouldn't be anything huge that comes up here)

Will need to have Jack help get a dev install going on a Windows VM. Haven't done that since we switched to Electron

xdg-open doesn't work reliably if you're not the same user as the package manager. shell.openItem() would have the same problem as it ultimately just calls xdg-open. We should probably at least detect this scenario and do something different, e.g. reveal the file instead of open it, and display a notice that you'll have to click the file to start the upgrade.

This is an independent thing and isn't blocking merge.

merged


Loops

@felixble ,
I can't seem figure out how to do something like

    {{each row}}

                   {{variable 1}}

                  {{variable 2}}

                  {{variable 3}}

   {{/each}}

inside an email.  I'm probably missing something obvious..

@KhalilHTM You can use loops just as you are used to in blaze templates. Simply write:
{{#each row}}
    Hello {{variable 1}}<br>
{{/each}}

I just added a simple test case to demonstrate the usage. Have a look at: https://github.com/felixble/meteor-server-templates/blob/master/server-templates-tests.js#L43.
I will close this issue. If you have any further questions feel free to write a comment.

Thank you very much, you've made a great package and it has helped me tremendously!


Add offsetGridLines option to Line charts

PR for issue #1014.

Note 1: You must not change the Chart.js. It's the dist file. (change Chart.Core.js, for #1024)
Only the files in the src folder should be modified.
Note 2: You've included the #1024 right here.
Files of PR's context is great.
@etimberg @fulldecent @nnnick @tannerlinsley @derekperkins @jakesyl

Sorry about that ! Closing this one and opening #1025

Recommending we can merge this now


First draft of final report description.

@mplefort @ghadamf Hey guys, can you quickly read this final report description and let me know if I've missed anything or if anything needs to be changed. I'd like to post this today.
Thanks,
Jason

Ok, Matt was fine with this. I'm merging.


Translate i18n/zh/docusaurus-plugin-content-docs/current/service-account-integration.md

Fix: #543

There're several more docs without Chinese version, you can contribute more if you have interesting.


Ability to change display role

Hello,
Would it be possible to choose a role that is shown when you reply instead of the highest role? This would be easier if you have different roles and want to reply anoymous with a higher role.

This has been added in the new bot update! You may use the !rolecommand. 💯


upgraded node to v8.14.0

Current version of Node v6.9.0 LTS expires 2019 March and we need to upgrade it. Upgrading to latest version 10.13.0 is having an issue with gcp node dependency. Hence upgrading it to the intemediate LTS 8.14.0

Dev Pipeline 353 - success


Add timeout to CI golangci-lint (#99)

CI Linting job fails intermittently due to timeout.
Increase the timeout to 3m. The timeout issue and suggested
solution can be found at
https://github.com/golangci/golangci-lint-action/issues/297
Also update the golangci-lint version to 1.42 since
golangci-lint starts to build docker image with go1.17 with
version 1.42.1.
Signed-off-by: Jack Ding<EMAIL_ADDRESS>Co-authored-by: Jack Ding<EMAIL_ADDRESS>

Closing this PR


Update run.sh

The activate line should be '. activate carnd-term1' to match the Miniconda environment.

https://github.com/udacity/CarND-Term1-Starter-Kit/blob/master/Dockerfile#L32 changes the name. I agree though the naming should be consistent.

Changes were made in #41. Needed to update the name in the Dockerfile(s) as well. Thanks for the suggestion.


Dart should support anonymous pipes

Dart should support anonymous pipes (e.g. as returned by the pipe system call).
Requested by @robert-ancell in #47310.

How does this look as an API?
/// An `AnonymousPipe` holds two [RandomAccessFile]s that each allow unidirectional data flow
/// i.e. data written to [writePipe] can be read from [readPipe]. Creating an [AnonymousPipe] is
/// possible on Windows but, since there is no way to transmit it to another process, probably not
/// useful.
///
/// Either the [readPipe] or [writePipe] can be transmitted to a another process and used for interprocess
/// communication.
///
/// For example:
///
/// ```dart
/// import 'dart:async';
/// import 'dart:io';
///
/// void main() async {
///   final address =
///      InternetAddress('$tempDirPath/sock', type: InternetAddressType.unix);
///   final socket = await RawSocket.connect(address, 0);
///.  final pipe = await AnonymousPipe.create();
///
///   await socket.sendMessage(<SocketControlMessage>[
///        SocketControlMessage.fromHandles(
///            <ResourceHandle>[ResourceHandle.fromFile(pipe.readPipe)])
///      ], 'Hi'.codeUnits);
///   await pipe.write.writeString("Message");
/// }
/// ```
abstract class AnonymousPipe {
  RandomAccessFile get readPipe;
  RandomAccessFile get writePipe;

  static Future<AnonymousPipe> create();
  static AnonymousPipe createSync();
}

I'd actual prefer to not create a new class for this. Does anyone have an alternative API suggestion?

Wait for records and use ({RandomAccessFile in, RandomAccessFile out})? :wink:
For naming, why is it Anonymous? Do we expect a NamedPipe too?
The Pipe on the getters also seem unnecessary.
Consider:
abstract class Pipe {
  RandomAccessFile get out;
  RandomAccessFile get in;
  external factory Pipe.createSync();
  externals static Pipe create();
}

Is RandomAccessFile the best abstraction? It seems to assume being backed by a single file system file, since you can ask for the length. I guess that can be simulated by providing "bytes written/received so far".
What happens if you read from the write pipe, or write to the read pipe?
Do you need the distinction between a synchronous and an asynchronous write?
Even more alternatively, could it be a single RandomAccessFile, where reading and writing acts like the different ends of the same pipe.
If you want to give the file to someone else who should only read or write, you can wrap it in a "read-only"/"write-only" wrapper first.
Also consider a (Sink<Uint8List>, Stream<Uint8List>) pair instead. That way the two ends are limited to the in or out behaviors  You can build abstractions on top of the Sink, and the Stream is directly supported by the languge, but you lose the ability to do synchronous read operations.

@lrhn
Thanks for the feedback!

Wait for records and use ({RandomAccessFile in, RandomAccessFile out})? 😉

I was thinking about it 😆

Is RandomAccessFile the best abstraction? It seems to assume being backed by a single file system file, since you can ask for the length.

I'm not sure what will happen on Windows but on Unix, it should return the number of bytes left to be read.

I guess that can be simulated by providing "bytes written/received so far". What happens if you read from the write pipe,
or write to the read pipe?

You get FileSystemException: writeFrom failed, path = '' (OS Error: Bad file descriptor, errno = 9) but that is consistent with doing something like:
f = await File('something').open(); // read is the default mode
await f.writeString('Hi'); // Same exception as above.

Do you need the distinction between a synchronous and an asynchronous write?

You mean for the create methods? We have that for File so I thought that I'd be consistent.

Even more alternatively, could it be a single RandomAccessFile, where reading and writing acts like the different ends of the same pipe. If you want to give the file to someone else who should only read or write, you can wrap it in a "read-only"/"write-only" wrapper first.

Also consider a (Sink<Uint8List>, Stream<Uint8List>) pair instead. That way the two ends are limited to the in or out behaviors You can build abstractions on top of the Sink, and the Stream is directly supported by the languge, but you lose the ability to do synchronous read operations.

I'd rather not introduce a new Sink subclass and a new Stream subclass.

In the example above socket.sendMessage is used to communicate one end of the pipe to another process, but this does not work on Windows, what would be the option on Windows ?

Yeah, I don't think that being able to create pipes would be useful on Windows.

Also @rmacnak-google points out that anonymous pipes created on Windows do not support non blocking IO (this maybe an issue for dart:io)

Isn't dart:io file io synchronous at the system call level?

@aam, @rmacnak-google seem to also prefer the Stream<Uint8List>, Sink<Uint8List> pair approach. I think that would end up looking like this:
abstract class ReadPipe implements Stream<Uint8List> {
  Future<int> unreadBytes(); // The number of unread bytes.
}

abstract class WritePipe implements Sink<Uint8List> {
}

abstract class Pipe {
  ReadPipe get read;  // Can't just be a Stream<Uint8List> because that won't work with ResourceHandle
  WritePipe get write; // Can't just be a Sink<Uint8List> because that won't work with ResourceHandle
  external factory Pipe.createSync();
  externals static Pipe create();
}

// ResourceHandle needs two new methods to extract file descriptors from read/write pipes:
ResourceHandle.fromReadPipe(ReadPipe pipe);
ResourceHandle.fromWritePipe(WritePipe pipe);

IMO: This seems pretty heavy - we need two need classes and two new methods in ResourceHandle.
But I'm happy to go with that if it is more idiomatic.

Some of the proposed API is using the term 'pipe' for the pipe ends - this will be confusing. I suggest something like:
abstract class Pipe {
   RandomAccessFile inEnd;
   RandomAccessFile outEnd;
}

or
abstract class Pipe {
   PipeInput input;
   PipeOutput output;
}

@robert-ancell Ack. We won't do that.
@aam @rmacnak-google @lrhn :  I implemented the proposal where the read end of the pipe is a Stream. The issue is that the Stream will be exhausted when there is no more data to read. That doesn't match my expectations on how people typically use pipes i.e. pipes are infinite streams and there should be a way to wait until new data appears.
The exact interface looked like:
abstract class ReadPipe implements Stream<List<int>> {
//  Future<int> unreadBytes(); // The number of unread bytes.
}

abstract class WritePipe implements IOSink {
}

abstract class Pipe {
  ReadPipe get read;
  WritePipe get write;

  static Future<Pipe> create() {
  	return _Pipe._create();
  }
}

My test code was:
void main() async {
  final pipe = await Pipe.create();
  await pipe.read.listen((event) {
    print(event);
  }).asFuture();  // onDone is triggered immediately because no data was written to the pipe.
}

RandomAccessFile does not have this problem because you can just keep calling a read method until data arrives.
So should I switch back to read and write being RandomAccessFile instances.

Fixed in 2ead86ab9dcbfe9217af01670c7d93ede73381c9


Reset child items only in case of FAILED status

Please make sure that we are keeping logic for restarting after one of the parents get failed.
For example: A, B, and C are running. C gets TIME_OUT, A gets FAILED. what happen to C?


Code workflow

This pipeline configuration builds the application and produces a build for the Release configuration.

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


Transaction does not close properly when failing on commit

Setup
Versions

Rust: latest stable
Diesel: master
Database: postgres
Operating System linux

Feature Flags

diesel: postgres

Problem Description
Connection gets released to the connection pool with transaction not being closed.
Then triggering "AlreadyInTransaction: Cannot perform this operation while a transaction is open" errors.
What are you trying to accomplish?
Serializable transaction fails on transaction commit:
https://github.com/diesel-rs/diesel/blob/5369a7a3d13b1323fcac9acf9d13256f19a970a0/diesel/src/pg/transaction.rs#L276
"DatabaseError: could not serialize access due to read/write dependencies among transactions"
Connection is released to the pool (r2d2) and should be usable again.
What is the expected output?
Next requests successfully start their own transaction.
What is the actual output?
AlreadyInTransaction: Cannot perform this operation while a transaction is open
Related issues
https://github.com/diesel-rs/diesel/issues/2123
In my case, transactions are not nested but I suspect this is the same issue.
Solving
I suspect catching the DatabaseError on commit_transaction and calling rollback_transaction would solve this issue.
Checklist

[X] I have already looked over the issue tracker for similar issues.
[X] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)

I think explicitly handling different error cases there should be the right solution. I would propose the following way forward:
Check the result of commit_transaction explicitly there, if it returns an Err(AlreadyInTransaction) try running abort_transaction the current running transaction. Now this can fail or succeed. In the failure case I would return the error of abort_transaction, in the success case the error from the original commit_transaction call to communicate that the transaction failed. Additionally we should document this behaviour in the API docs.
Beside of that I would assume that as similar thing can happen here, so we should make the same change there?
As I'm currently do not have endless time to work on diesel, it would be great to get a PR for this.

Perfect! I will try to open a PR for this.
Just to make sure we're aligned though:

Check the result of commit_transaction explicitly there, if it returns an Err(AlreadyInTransaction) try running abort_transaction the current running transaction.

The error we would catch here is instead any DatabaseError: the error that triggers when the transaction fails would usually be the serialization failure, which is not an AlreadyInTransaction error.
The AlreadyInTransaction error triggers when trying to open a new transaction when that connection with a non-closed transaction is released to the pool and reused.

Oh, yes that makes sense. Matching on Err(DatabaseError(SerializationFailure)) is the right way.

Matching on Err(DatabaseError(SerializationFailure)) is the right way.

I don't think there is a SerializationFailure subtype for DatabaseError, is there ? Also, I'm not sure if a SerializationFailure there is the only DatabaseError reason for which the transaction would fail, but if not, I would beleive the desirable behaviour would still be to rollback the transaction before releasing it to the pool.
Given all that, wouldn't it be better to just match on any DatabaseError there ?

Ok, so from looking at the variants of DatabaseError again: ReadOnlyTransaction and SerializationFailure are cases that can explicitly happen while committing a transaction. I do not think that the other variants are relevant here, as the first two are catched by the transaction itself, while UnableToSendCommand will likely fail any query. Beside of that I think it could be reasonable to have a wild card match for the other cases there, if someone can come up with an case that's not ReadOnlyTransaction or SerializationFailure. (I just want to be sure that we don't try things on a connection that is broken by some other cause, like random network problems)

Beside of that I think it could be reasonable to have a wild card match for the other cases there, if someone can come up with an case that's not ReadOnlyTransaction or SerializationFailure.

I agree :)
DatabaseError(__Unknown, "current transaction is aborted, commands ignored until end of transaction block") after a recover of an error for instance.

I just want to be sure that we don't try things on a connection that is broken by some other cause, like random network problems

That is surely a desirable behaviour, though I imagined they were all outside of DatabaseError. But yes UnableToSendCommand can be excluded as well.
So do we agree we want to:
match transaction_manager.commit_transaction(self.connection) {
    Err(DatabaseError(UnableToSendCommand, _)) => {}
    Err(DatabaseError(_, _)) => { /*try rollback*/ }
    _ => {}
}

I do not think that the other variants are relevant here, as the first two are catched by the transaction itself

If I understand correctly you mean that UniqueViolation or ForeignKeyViolation could only trigger in previous queries, not on commit. If that behaviour were to change though (like, for some database system it would trigger on commit if another transaction that has this effect was committed in the meantime), wouldn't the desirable behaviour still be to rollback before releasing the connection ? I would think so, hence no need to exclude them from the rollback.

I agree :)
DatabaseError(__Unknown, "current transaction is aborted, commands ignored until end of transaction block") after a recover of an error for instance.

I would prefer returning the original error, returned from the database stating why it's not possible to complete the transaction.

If I understand correctly you mean that UniqueViolation or ForeignKeyViolation could only trigger in previous queries, not on commit. If that behaviour were to change though (like, for some database system it would trigger on commit if another transaction that removes a line with a FKey we linked to was committed between when we added our own line and when we committed), wouldn't the desirable behaviour still be to rollback before releasing the connection ? I would think so, hence no need to exclude them from the rollback.

I think DatabaseError is more or less a direct mapping from the SQLSTATE codes returned by the database. After looking at the corresponding wikipedia page it seems like only codes starting with 25xxx are relevant here. Therefore I would prefer keeping the match there as small as possible to not cover other error cases, espessially not UniqueViolation or ForeignKeyViolation, because if they turn up the database is either not following the standard (which likely causes problems in other shared parts of diesel and should have a separate impl somewhere else) or something is completely broken (which we want to know). If it turns out later that we've missed some important case we can add it later anyway.

Alright, does this implementation look good to you ? :)


Fix missing include completions.

Current project's include directories usually appear in generated compile_commands.json as -I. These headers' use_angle_brackets_ are inferred as <. The original filter makes it impossible to complete them with ".
PS: the design choice of fuzzy matcher makes includesrc/timer.h score higher than includetimer.h for text inctimer but I prefer the latter one.

PS: the design choice of fuzzy matcher makes includesrc/timer.h score higher than includetimer.h for text inctimer but I prefer the latter one.

Yea, this seems like a bad choice with the fuzzy matcher, I wonder if we should use the same algo as fzf. Want to file a bug?

There is a regression that now #include " will suggest STL headers ("any" ...)

any.h -> includeany.h also has a negative impact on the scoring of the fuzzy matcher. The string concatenation of "include" is really bad, it should at least be changed to "include " but no concatenation would be better.
The B?DFL apparently has different opinion so I cannot help this project.
a in includeany.h is a Tail position while a in include any.h is a Head position.

@MaskRay A PR would be appreciated.
@scturtle why did you add the include to the filter text?

"include" is included to make "#inc" pop up completions(#389).

B(?)FDL, you are welcome to pull my commit and play with it, merge it with or without your scrubbing. I don't have the extra energy to create a PR. If I didn't make so much advertisement for the project (Melpa,Arch Linux/FreeBSD packages,spacemacs,LanguageClient-neovim,.......), I would fork and rename for sure.


Set tenantAwareUsername for carbon context from scim component

Here [1] the consumerName set from the authorizationHeader where the authorizationHeader expected to have the full username with tenant domain.
https://github.com/cdwijayarathna/carbon-identity/blob/732ef05adc8aab784a4a5389d64902a9bf390dd6/components/scim/org.wso2.carbon.identity.scim.provider/src/main/java/org/wso2/carbon/identity/scim/provider/impl/SCIMUserManager.java#L137


LICENSE: Remove year from copyright

Good to do anywhere you have the right to change the copyright line.


Ensure complete code coverage

Our current test suite seems to be a bit inadequate. Thanks to Jeff's recent patch to Julia, running julia --code-coverage test/runtests.jl shows how much of our codebase is either not touched at all by our test suite or is touched in a way that the code coverage tool can't detect.

More specific issues can be opened to add coverage to specific parts of the codebase.


[WebAPI] Web Share, Fx 71 tasks

Trello
https://trello.com/c/1oaEikAt/218-web-share-api-fx-71
Acceptance criteria

[x] DOM implementation of Web Share API (very small API, Navigator.share() already documented, won't be available in Fx until Fenix comes out, maybe nothing to do now?)

Actions for Web Share, for now:

Tidied up https://wiki.developer.mozilla.org/en-US/docs/Web/API/Navigator/share
Tidied up https://wiki.developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare
Created an example, and added it to GitHub and to the first page above:https://mdn.github.io/dom-examples/web-share/
Did some testing and confirmed the current browser support status and being pretty much right.
Corrected the spec URLs recorded in MDN: https://github.com/mdn/kumascript/pull/1282

That's it for now; will update the BCD when  https://bugzilla.mozilla.org/show_bug.cgi?id=1402369 lands.

The docs are great. Just a heads up the canShare() might change (it's marked as "experimental" on MDN already, so no big deal).

@marcoscaceres cool, thanks mate! Yeah, we'll update that if needed.


Mixpanel.h can not be found

Integration Method: SPM
Xcode Version: 14.0
Library Version: 4.2.0
Platform: iOS
Language: Objective-C
Description: 'Mixpanel/Mixpanel.h' file not found
Expected Behavior:

I just managed to get it working with @import Mixpanel;
I strong recommend to update the documentation. I spent a lot of time googling around and trying a number of different things like framework search path etc.


I wish /docs/samples/ didn't have a broken Petstore link

I wish /docs/samples/ didn't have a broken Petstore link

For the record, the broken link in question is located here:  https://github.com/kubernetes/kubernetes.github.io/blob/master/_data/samples.yml#L79
The actual link should be to examples/k8petstore. At least, that's what it is in the kubernetes/kubernetes project. Not sure which one we should change (k8spetstore makes more sense to me).


command line log-out

make a command line to log out certain columns over files, then loged files should have new name

On PR #140


Add Exponential Backoff and Auto Retry in Fetch Page Content When Crawling

As a result of this PR https://github.com/astronomer/ask-astro/pull/269 and this issue here https://github.com/astronomer/ask-astro/issues/262. It was previously resolved with adding a fixed wait time, but was not the ideal approach!

#293 resolves this issue


openshift-tuned scalability issues

In trying to reach cluster limits openshift-tuned had low level failures causing failure looping. These failures caused the Lists to fire many times per second further causing etcd to lock.
A few fixes need to be implemented:

Aggressive timed back-off
Use of informers for any List and Watch calls

https://github.com/openshift/openshift-tuned/pull/30

This has been addressed by:
https://github.com/openshift/openshift-tuned/pull/34
https://github.com/openshift/cluster-node-tuning-operator/pull/96
https://github.com/openshift/openshift-tuned/pull/35
https://github.com/openshift/cluster-node-tuning-operator/pull/98


Force closed channel accidentally abandoned - Trying to recover stuck funds with chantools sweeptimelockmanual

Hi everyone,
So my situation is the following:
I force-closed a channel on my side because my peer node has been offline for more than a few weeks. The force closed tx was confirmed and during the period waiting for the timelock to finish, I accidentally used the cmd abandonchannel with this channel funding txid. So I assume the data of this channel got erased from my node, and now that the timelock period has finished, it isn't sweeping back the locked fund back to my node's wallet.
After doing a bit a research and asking some questions in relevant group, I was recommended to use chantools to try to recover the funds, and it seems that sweeptimelockmanual is the correct command I should use.
I think I do have all the necessary data to sweep back successfully but I must be doing something wrong since I always get the following error with the sweeptimelockmanual: 'target script not derived'
So after extracting the channel data from my channel.backup, I got the following data mentionning the revocation base point for this channel:
RevocationBasePoint: (dump.KeyDescriptor) {
 Path: (string) (len=19) "m/1017'/0'/1'/0/665",
 PubKey: (string) (len=5) "<nil>"
},

RevocationBasePoint: (dump.KeyDescriptor) {
 Path: (string) (len=17) "m/1017'/0'/0'/0/0",
 PubKey: (string) (len=66) "REVOCATION_BASE_POINT_PUBKEY"
},

I used the following cmd then input my 24 words mnemonic:
chantools sweeptimelockmanual --sweepaddr MY_ADDRESS --timelockaddr LOCKED_FUND_ADDRESS --remoterevbasepoint REVOCATION_BASE_POINT_PUBKEY --feerate 15 --maxnumchanstotal 1200
I keep getting 'target script not derived' error message, is there something i am doing wrong, another thing I should try to recover the funds? I can provide more information by private message if necessary.
Thank you very much for your help.

The channel was active for 6 months but it wasn't very active in term of forwards/payments. I will try by adding a large number to --maxnumchanupdates to see if that works. Since my local key index for the revocation base point is 665, is there a manual way to directly test that key instead of looping through the 664 keys preceding it?

Unfortunately there is no way to directly jump to that key, no. I should probably add that.
It's interesting that channels apparently can get a lot of updates (assuming fee updates) even if no payments go through. I recently just had a similar issue where the --maxnumchanupdates had to be set to 37k, even though not a single payment went through the channel.
Closing the issue as this is just a question of what parameters to use. Feel free to re-open if you're unsuccessful.

Unfortunately there is no easy way to find out the actual number of updates if you don't have any information about the channel in the channel.db file anymore.

Hi @guggero, just to let you know that I have successfully swept the locked fund. You were right, my --maxnumchanupdates was too low!
Thank you for your help again and for providing such an amazing tool!


Increase CLI version

Coverage increased (+0.01%) to 64.088% when pulling dcb016ef78ab171d040597a0c18cdac7eeb28d56 on cli into 08652dbbf80b5ffd2cd35602484e3b57ce3ac210 on master.


update documentation

Added documentation for missing parameter stream_type on getAuthenticatedUserFollowedStreams api call to match docs on https://github.com/justintv/Twitch-API/blob/master/v3_resources/users.md#get-streamsfollowed
👀  @manumiranda

Thank you very much for your PR! I can't believe I didn't see that typo before...


Improve logging in test_wal_restore.py

Capture the output of the restore_from_wal.sh in a log file
Capture log of the restored Postgres server.
Kill "restored" Postgres server on test failure

The test is failing on my laptop, and I'm trying to figure out why. I made these logging improvements to help with debugging. It seems that the Postgres server cannot replay the restored WAL for some reason:
2022-04-19 14:45:02.502 EEST [56616] LOG:  starting PostgreSQL 14.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2022-04-19 14:45:02.503 EEST [56616] LOG:  listening on IPv6 address "::1", port 15005
2022-04-19 14:45:02.503 EEST [56616] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 15005
2022-04-19 14:45:02.511 EEST [56616] LOG:  listening on Unix socket "/tmp/.s.PGSQL.15005"
2022-04-19 14:45:02.521 EEST [56617] LOG:  database system was interrupted; last known up at 2022-04-19 14:45:02 EEST
2022-04-19 14:45:03.221 EEST [56617] LOG:  database system was not properly shut down; automatic recovery in progress
2022-04-19 14:45:03.228 EEST [56617] LOG:  invalid record length at 0/1698CB8: wanted 24, got 0
2022-04-19 14:45:03.228 EEST [56617] LOG:  redo is not required
2022-04-19 14:45:03.264 EEST [56616] LOG:  database system is ready to accept connections
2022-04-19 14:45:03.370 EEST [56624] ERROR:  relation "t" does not exist at character 22
2022-04-19 14:45:03.370 EEST [56624] STATEMENT:  select count(*) from t

I don't know why yet - any hints are welcome - but I think these improvements to the test will be helpful in any case.

The test is failing on my laptop

https://github.com/neondatabase/neon/pull/1544 fixes that.


Make test files use Option.builder instead of deprecated OptionBuilder.

OptionBuilder is marked deprecated now.
We could keep OptionBuilderTest for testing OptionBuilder, while other testcases should use Option.builder instead of deprecated OptionBuilder.

Coverage decreased (-1.3%) to 95.033% when pulling 648c6622648037c90c8122fbf9ec45b527feadc9 on PeterAlfredLee:RmDeprecatedBuilderInTest into d7368336eb76071a5ae5378293f5fe96073affdd on apache:master.

@PeterAlfredLee
Please rebase on master.

Keep in mind that we still need to test both current and deprecated code to avoid regressions .

Closing, no feedback, no action needed IMO.


Make Jason PM org owner for Release Post

I proposed to @christinaforney that I own this and she agreed, so going forward I'll take over the review for Product and loop her in if needed.

FYI @rebeccadee @abschu @iskyOS


fix(actionbutton): update action button color tokens

Description
This PR updates the Action Button component to use the new color alias tokens. The following changes were made:

Selected (not emphasized) background color updated to new color alias tokens
Selected (not emphasized) content color updated to gray-50. That is what is in the XD file and it was incorrectly using spectrum-white
Added Quiet styling for Express that existed in the XD file but not in the CSS
Moved color styling that applies to both Spectrum and Express into index.css and out of spectrum.css for organization purposes
Added mods for variants such as selected
Added additional Action Button stories to make sure all states and variants were accounted for
Found a random issue with Checkbox where the selected Checkbox suddenly was not rendering due to some styles not be specific enough. I don't know why it's only compiling them in a different order in this PR, but I made a small update to ensure it overrides the default styles.

To-do list

[ ] If my change impacts other components, I have tested to make sure they don't break.
[x] If my change impacts documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have tested these changes in Windows High Contrast mode.
[x] I have updated any relevant storybook stories and templates.
[ ] If my change(s) include visual change(s), a designer has reviewed and approved those changes.

[x] This pull request is ready to merge.

@mlogsdon18 Just one Chromatic catch here...which I think is actually correct. I'm not sure why it's catching this now, but the updated version matches what we have on the docs site.

@pfulton I don't know why that's getting flagged now but I took a look and approved it!


Multiple arity in sx prop

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
I would like to use the multiple arity way also in the sx prop so that I don't need to import spacing from theme.
Examples 🌈
https://mui.com/material-ui/customization/spacing/#multiple-arity offers to use multiple arguments just like in CSS:
-padding: `${theme.spacing(1)} ${theme.spacing(2)}`, // '8px 16px'
+padding: theme.spacing(1, 2), // '8px 16px'

now the SX prop has spacing baked in so that one can quickly use
      <Box
        sx={{
          py: 1,
          px: 2,
        }}
      >

which is great!
there is even on-the-fly breakpoint support, so when I pass an array or object it does that for me as well :+1:
Now it would be cool if there is also the possibility to use the shorthand notation from the very top in sx.
      <Box
        sx={{
          p: {1,2,3,4} // for illustration purposes only ;-) not suggested syntax
        }}
      >

which should yield:
padding: 8px 16px 24px 32px;

Motivation 🔦
I would like to have the best of two worlds, using a shorthand spacing notation without the need of importing it every time.

Lovely 😍


Aligning airlock processor unittests to use pytest

Resolves #3026
What is being addressed
Aligning the Airlock processor tests to use the pytest (same as all other tests)
How is this addressed

Updated the tests and used pytest assert where needed
Update CHANGELOG.md if needed

/test

/test-extended

/test-force-approve


Account creation using NEP-2 #60

The Account creation methods were inspired by this comment at #80. The issue is not finished yet, because it needs more testing and I was not sure if the modifications I did were good or not. Just to clarify as to why they were made, ECPoint does a lot of calculations so I assumed checking whether it's necessary to create them from zero is necessary or not would consume less time and memory.

@ixje

Thinking about it again, maybe using the following interface for the methods that create an Account could be better?
class Account:

    def __init__(self, password: Optional[str] = None,
                 private_key: Optional[bytes] = None,
                 watch_only: bool = False,
                 address: Optional[str] = None
                 ):
        # Verifies what kind of Account it is

        self.address = address
        self.public_key = public_key
        self.encrypted_key = encrypted_key

    @classmethod
    def from_password(cls, password: str) -> Account:
        return cls(password=password)

    @classmethod
    def from_encrypted_key(cls, nep2_key: str, password: str) -> Account:
        return cls(password=password, private_key=private_key_from_nep2(nep2_key, password))

    @classmethod
    def from_private_key(cls, private_key: bytes, password: str) -> Account:
        return cls(password=password, private_key=private_key)

    @classmethod
    def from_script_hash(cls, script_hash: types.UInt160) -> Account:
            return cls(watch_only=True, address=script_hash_to_address(script_hash))

    @classmethod
    def from_address(cls, address: str) -> Account:
        return cls(watch_only=True, address=address)

Thinking about it again, maybe using the following interface for the methods that create an Account could be better?
class Account:

    def __init__(self, password: Optional[str] = None,
                 private_key: Optional[bytes] = None,
                 watch_only: bool = False,
                 address: Optional[str] = None
                 ):
        # Verifies what kind of Account it is

        self.address = address
        self.public_key = public_key
        self.encrypted_key = encrypted_key

    @classmethod
    def from_password(cls, password: str) -> Account:
        return cls(password=password)

    @classmethod
    def from_encrypted_key(cls, nep2_key: str, password: str) -> Account:
        return cls(password=password, private_key=private_key_from_nep2(nep2_key, password))

    @classmethod
    def from_private_key(cls, private_key: bytes, password: str) -> Account:
        return cls(password=password, private_key=private_key)

    @classmethod
    def from_script_hash(cls, script_hash: types.UInt160) -> Account:
            return cls(watch_only=True, address=script_hash_to_address(script_hash))

    @classmethod
    def from_address(cls, address: str) -> Account:
        return cls(watch_only=True, address=address)

Personally I don't think it's clear from the names from_script_hash/from_address that you'll get a watch_only Account, hence why I chose for the watch_only and watch_only_from_address names. Yes it breaks the from_xxx and I'm open if we can find better names that are self-explanatory.
As for the initialiser, I think we should make password a mandatory argument and then we can drop the from_password classmethod. To solve for watch-only addresses not requiring a password, the initialiser can internally check if watch_only == True and then don't create an encrypted key. The watch-only methods can have dummy values for the password. With that you'll have standard account creation with a password through Account(pw), and some alternative constructors as class methods.

I'm going to hold off on merging this into development because I want to release RC2 first. What I can do is create a feature-wallet branch so that this PR and the wallet one can be merged and build on top of if that helps?

Sounds good, I already have another issue that I can make a PR of when this branch is created.


Add mean_squared_error for chainerX

Add mean_squared_error function for chainerX

Now I think I implemented all change. Could you review this PR?

Jenkins, test this please

Jenkins CI test (for commit 2d60bc22df2a82e00f9fe4caf48f04a6e50a7552, target branch master) succeeded!


Private repositories

Is there a way to fetch templates from a private repo? Is it possible to do so from a batch process? I saw #2 mentioned this, but it looks like that ticket was closed without being implemented.

Degit appears to fetch via https, so I tried this workaround:
git config --global credential.helper store
echo<EMAIL_ADDRESS>> ~/.git-credentials
npx ghat user/repo/file.yaml

(I also tried with --mode=git.)
With this config, ghat didn't prompt for credentials. The output I received was:
(node:8523) UnhandledPromiseRejectionWarning: Error: could not download https://github.com/user/repo/archive/deadbeefdeadbeef.tar.gz
    at Degit._cloneWithTar (/root/.npm/_npx/8523/lib/node_modules/ghat/dist/index.js:15361:10)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Degit.clone (/root/.npm/_npx/8523/lib/node_modules/ghat/dist/index.js:15157:4)
    at async ghat (/root/.npm/_npx/8523/lib/node_modules/ghat/dist/index.js:190:2)
    at async /root/.npm/_npx/8523/lib/node_modules/ghat/dist/index.js:31:4
(Use `node --trace-warnings ...` to show where the warning was created)
(node:8523) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:8523) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I think this means that ghat ignores the unknown --mode flag, and degit isn't able to clone the private repo via HTTPS, even though it receives credentials from Git.

Not sure if this is useful, but it looks like degit has a fork that's more actively maintained: Rich-Harris/degit#258.


Some icons don't have the right Outlined version

Bug type
Other
Component name
Icons
What happened?
There seem to be an issue with the icons. I needed Outlined.Error and Outlined.Warning and both show the filled version. These must not be the only 2 that are affected. I've gone back a couple of commits on the file and found out that this has been an issue for a while now.
Thanks,
Sam
Expected behavior
Icons.Material.Outlined.Warning should show the right icon
Reproduction link
https://try.mudblazor.com/snippet/wOGcapYeKrgflwXt
Reproduction steps

Open the provided repro link
See that both the filled and outlined versions of error and warning are filled

Relevant log output
No response
Version (bug)
6.0.9
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

This is not a MudBlazor related problem. Some material icons does not have an outlined version. You can check on the official Google's page.
For the outlined warning icon use: Icons.Material.Outlined.ReportProblem
For the outlined error icon use: Icons.Material.Outlined.ErrorOutline


API for importing native buffers as buffer objects

First PR of https://github.com/google/filament/issues/7319. To be followed by another 2 PRs for Metal and for OpenGL backends. I have a working solution for these 2 backends but I wanted to keep the changelist small so I opened this PR that doesn't contain any implementation.

Preview for a possible Metal implementaiton: https://github.com/shapr3d/filament/compare/import_native_buffers...shapr3d:filament:import_native_buffers_mtl


CIV-5665 Failure when adding documents to parent case issue fixed

Before creating a pull request make sure that:

[ x] commit messages are meaningful and follow good commit message guidelines
[ x] README and other documentation has been updated / added (if needed)
[ x] tests have been updated / new tests has been added (if needed)

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-5665
Change description
Judge makes decision process is getting failed when adding documents to the parent case

when general application has 2 documents in which 1 document already exists in parent case and again trying to add 2 documents then the process is getting aborted in the middle of camunda process

Does this PR introduce a breaking change? (check one with "x")
[x ] Yes
[ ] No

@deepthidoppalapudihmcts could you add the ticket id in your commit message please?

Ticket id is added in the pull request description and yes going forward if i made any commits will add


Occasional Invalid JSON From Ctags

I'm seeing occasional errors when indexing git repos. I switched the debug flag in ctags/json.go, and saw the following:
2021/04/08 03:18:38 post "{\"command\":\"generate-tags\",\"filename\":\"flang/test/Preprocessing/pp003.F\",\"size\":338}\n"
2021/04/08 03:18:38 * function-like macros
      integer function IFLM(x)
        integer :: x
        IFLM = x
      end function IFLM
      program main
#define IFLM(x) ((x)+111)
      integer :: res
      res = IFLM(666)
      if (res .eq. 777) then
        print *, 'pp003.F pass'
      else
        print *, 'pp003.F FAIL: ', res
      end if
      end

2021/04/08 03:18:38 read "{\"_type\": \"tag\", \"name\": \"main\", \"path\": \"flang/test/Preprocessing/pp003.F\", \"pattern\": \"/^      program main$/\", \"language\": \"Fortran\", \"line\": 6, \"kind\": \"program\", \"roles\": \"def\"}"
2021/04/08 03:18:38 read "{\"_type\": \"tag\", \"name\": \"res\", \"path\": \"flang/test/Preprocessing/pp003.F\", \"pattern\": \"/^      integer :: res$/\", \"language\": \"Fortran\", \"line\": 8, \"kind\": \"variable\", \"roles\": \"def\", \"scope\": \"main\", \"scopeKind\": \"program\"}"
2021/04/08 03:18:38 read "path\": \"flang/test/Preprocessing/pp003.F\", \"pattern\": \"/^      integer :: res$/\", \"language\": \"Fortran\", \"line\": 8, \"kind\": \"variable\", \"roles\": \"def\", \"scope\": \"main\", \"scopeKind\": \"program\"}"

As you can see, the third line read is not valid JSON. In fact it appears to be a partial repeat of the second line.
If I run ctags manually, I don't see the same issue:
$ /usr/local/bin/universal-ctags --_interactive=sandbox --fields=*
{"_type": "program", "name": "Universal Ctags", "version": "5.9.0"}
{"command":"generate-tags","filename":"flang/test/Preprocessing/pp003.F","size":338}
* function-like macros
      integer function IFLM(x)
        integer :: x
        IFLM = x
      end function IFLM
      program main
#define IFLM(x) ((x)+111)
      integer :: res
      res = IFLM(666)
      if (res .eq. 777) then
        print *, 'pp003.F pass'
      else
        print *, 'pp003.F FAIL: ', res
      end if
      end
{"_type": "tag", "name": "IFLM", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      integer function IFLM(/", "language": "Fortran", "line": 2, "kind": "function", "roles": "def"}
{"_type": "tag", "name": "main", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      program main$/", "language": "Fortran", "line": 6, "kind": "program", "roles": "def"}
{"_type": "tag", "name": "res", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      integer :: res$/", "language": "Fortran", "line": 8, "kind": "variable", "roles": "def", "scope": "main", "scopeKind": "program"}
{"_type": "completed", "command": "generate-tags"}

Note that the output from zoekt is also missing the first tag.  Any idea what the issue is?

Can you confirm that you see a test failure with https://gerrit-review.googlesource.com/c/zoekt/+/302663 ?
Download with
git fetch https://gerrit.googlesource.com/zoekt refs/changes/63/302663/1 && git checkout FETCH_HEAD

it works for me.

I can try. How do I run tests? I'm not familiar with Go.
One thing to note though is that I expect this simple test will work also.  The repositories which fail are all on the large side: 4196 files (128M); 92K files (660M); 531K files (4042M).
Maybe have your test pipe the same file over and over until it gets to 100MB of source (or more) piped into Ctags?  Interestingly it seemed to be consistently failing at the same place.

I added some quick counters:

2021/04/08 16:50:05 Failure after writing 214372473 file bytes
2021/04/08 16:50:05 Failure after writing 217115443 bytes
2021/04/08 16:50:05 Failure after reading 133479912 bytes
2021/04/08 16:50:05 Failure after exchanging 350595355 bytes

The first number is the sum of the req.Sizes, the second is the total amount of data written to the Ctags pipe, the third is the total amount of data read from the Ctags pipe, and the fourth is the sum of the second and third.

If I run your test, I only see the entries for main and res, not IFLM which I also get when I run Ctags directly.  Any idea why?

$ go test -v -run TestFortran
=== RUN   TestFortran
2021/04/08 17:38:20 read "{\"_type\": \"program\", \"name\": \"Universal Ctags\", \"version\": \"5.9.0\"}"
2021/04/08 17:38:20 post "{\"command\":\"generate-tags\",\"filename\":\"func.f\",\"size\":338}\n"
2021/04/08 17:38:20  * function-like macros
      integer function IFLM(x)
        integer :: x
        IFLM = x
      end function IFLM
      program main
#define IFLM(x) ((x)+111)
      integer :: res
      res = IFLM(666)
      if (res .eq. 777) then
        print *, 'pp003.F pass'
      else
        print *, 'pp003.F FAIL: ', res
      end if
      end
2021/04/08 17:38:20 read "{\"_type\": \"tag\", \"name\": \"main\", \"path\": \"func.f\", \"pattern\": \"/^      program main$/\", \"language\": \"Fortran\", \"line\": 6, \"kind\": \"program\", \"roles\": \"def\"}"
2021/04/08 17:38:20 read "{\"_type\": \"tag\", \"name\": \"res\", \"path\": \"func.f\", \"pattern\": \"/^      integer :: res$/\", \"language\": \"Fortran\", \"line\": 8, \"kind\": \"variable\", \"roles\": \"def\", \"scope\": \"main\", \"scopeKind\": \"program\"}"
2021/04/08 17:38:20 read "{\"_type\": \"completed\", \"command\": \"generate-tags\"}"
--- PASS: TestFortran (0.00s)
PASS
ok  	github.com/google/zoekt/ctags	0.005s

$ echo "{\"command\":\"generate-tags\",\"filename\":\"flang/test/Preprocessing/pp003.F\",\"size\":338}
* function-like macros
      integer function IFLM(x)
        integer :: x
        IFLM = x
      end function IFLM
      program main
#define IFLM(x) ((x)+111)
      integer :: res
      res = IFLM(666)
      if (res .eq. 777) then
        print *, 'pp003.F pass'
      else
        print *, 'pp003.F FAIL: ', res
      end if
      end" | universal-ctags --_interactive=sandbox --fields="*"
{"_type": "program", "name": "Universal Ctags", "version": "5.9.0"}
{"_type": "tag", "name": "IFLM", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      integer function IFLM(/", "language": "Fortran", "line": 2, "kind": "function", "roles": "def"}
{"_type": "tag", "name": "main", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      program main$/", "language": "Fortran", "line": 6, "kind": "program", "roles": "def"}
{"_type": "tag", "name": "res", "path": "flang/test/Preprocessing/pp003.F", "pattern": "/^      integer :: res$/", "language": "Fortran", "line": 8, "kind": "variable", "roles": "def", "scope": "main", "scopeKind": "program"}
{"_type": "completed", "command": "generate-tags"}


Crashlytics correct Info.plist path for Carthage instructions

fix #5472
Use brackets instead of parens for consistency

Also updating for the devsite docs


Reading and removing object from memory

Hi,
There are 2 issues that i wanted to ask.

When i am writing to HTreeMap which is connected to a memory direct DB, i want to be able to read the object from the memory and not from the disk, but when i do that i only get the key of the object without its value (the value is null).
Another thing is that i want to remove an object from the memory permanently in one atomic action. I don't want to remove the object from the memory and then remove it from the disk.

Here is an example code for what i want to happen:
    //creating a DB, and two maps, one on disk and one in memory
    DB db = DBMaker.memoryDirectDB()
            .transactionDisable()
            .make();

    HTreeMap onDisk = db.hashMapCreate("onDisk")
            .keySerializer(Serializer.INTEGER)
            .valueSerializer(Serializer.STRING)
            .make();

    HTreeMap inMemory = db.hashMapCreate("inMemory")
            .expireOverflow(onDisk, false)
            .expireStoreSize(0.1)
            .make()

     inMemory.put(1, "one"); //writing an object to memory
     Object object = inMemory.get(1); // object should be "one" but it's null
     inMemory.remove(1);
     object = onDisk.get(1); // object should be null and not "one"

Can you help me with that?
Thanks

expiration is approximate, so single entry might get removed, but once you have thousands it will stay.

store statistics do not work currently and expireStoreSize(0.1) is broken.

I deprecated the expireStoreSize option. Either I fix it in near future, or it will be removed.

Hi,
How do you suggest to use mapdb for memory to file overflow use case?
Thanks,
Kobi

There is maximal map size
limit

OK so if the memory space is full objects will overflow to file?
Another issue we see is after writing an object and reading it the value is null.
DB db = DBMaker.memoryDirectDB()
.transactionDisable()
.make();
HTreeMap onDisk = db.hashMapCreate("onDisk")
        .keySerializer(Serializer.INTEGER)
        .valueSerializer(Serializer.STRING)
        .make();

HTreeMap inMemory = db.hashMapCreate("inMemory")
        .expireOverflow(onDisk, false)
        .executorEnable()
        .make()

 inMemory.put(1, "one"); //writing an object to memory
 Object object = inMemory.get(1); // value should be "one" but it's null

I just fixed the free space reporting, there is a chance it might work in latest commit. Will have look at this tomorrow.

There is beta4 which should have this fixed. Please checkout this example and try it: https://github.com/jankotek/mapdb/blob/master/src/test/java/examples/CacheOffHeapAdvanced.java
Also the expiration is aproximate, you should give it at least gigabyte with 1M+ records to get good results


added solo1 thermostat

@hallard user_config_override.h ?

@hallard user_config_override.h or/and env entry ? Done

yes coming in another PR (should be ok now) because 2 branches, 2 PR, if you know magic how to do in one PR I take it :-)


Use new images after EOL

EL 7 and Debian 10 are EOL next week, use a newer disk image for the presubmit

/lgtm


Add Haret

in same bucket as etcd, consul
https://github.com/vmware/haret

Hi @monadic thanks for the request and we'll be including Haret under Service Discovering, in our new release coming soon!

Thanks @monadic, closing as this update was included in the most recent version https://github.com/cncf/landscape#current-version


[Bug Report]:

The Long Dark Version
v2.39 149246S
Mod Version
v1.4.3
Describe the Issue
Unable to place a rock cache anywhere. Changing "Allowed Indoors" or any other setting does not change this behavior.
Steps to Reproduce
Attempt to place a rock cache indoors or outdoors.
Log Output
[Il2CppInterop] During invoking native->managed trampoline
System.MissingMethodException: Method not found: 'Boolean Il2Cpp.PlayerManager.StartPlaceMesh(UnityEngine.GameObject, Single, Il2Cpp.PlaceMeshFlags)'.
at UniversalTweaks.TweaksRockCache.RockCachePlacementIndoors.Prefix()
at DMD<Il2Cpp.Panel_Actions::OnPlaceRockCache>(Panel_Actions this)
at (il2cpp -> managed) OnPlaceRockCache(IntPtr , Il2CppMethodInfo* )

User ID-10T  error. Issue was fixed in v1.4.4.


Duplicate and triplicate event listeners

Expected behaviour
One set of event listeners for an element.
Actual behaviour
I'm seeing duplicate and triplicate event listeners for the same element.
Steps to reproduce
Create a simple audio element and player plyr, like at https://codepen.io/pen?template=rKLywR
Now run this in the console:
player.eventListeners.forEach((item) => {console.log(item.type + " " + item.element);})
I get 108 listeners, the CodePen gives 184.
You'll see duplicate types, like timeupdate [object HTMLAudioElement] twice or seeking [object HTMLAudioElement] three times.
Environment

Browser: any
Version: latest
Operating System: Win
Version: 7, 10

Console errors (if any)
Link to where the bug is happening

I just stumbled across the same issue today - it's made worse if you programatically set the source after the player instance has been created
https://github.com/sampotts/plyr/issues/2753


[Android] 0.16.0 release is broken

I tried to upgrade 2 of my projects to 0.16.0, but I'm getting this error in both. I tried clearing the pacakger cache, and deleting node-modules.
Missing Native module issue?

cc @mkonicek

Upgrading the library to 0.16.1 seems to fix the issue. Sorry for the trouble.