Order retries / circuit breaker in the order they're configured

If retry policy is configured first, retry first then break, else visa versa.

See also #96

Thinking about this issue some more, I'm not sure that having a circuit breaker before a retry makes sense. Anyone have thoughts on this?

I'm not sure that having a circuit breaker before a retry makes sense.

Isn't that the current behavior?

The current behavior is a blend of retry and circuit breaker handling, which I don't think is ideal. I'd like to separate them more clearly so that only one occurs at a time, and so they can be composed in some order.

Trying out an implementation... will post a PR for review if it looks good.

See #153 for a discussion topic related to this issue.

I'm back to this PR and hope to push something to look at soon.
The current Failsafe implementation assumes a specific ordering of policies, which is simple, in a way. Arbitrarily composing synchronous policy executions is straightforward, but composing asynchronous executions is a bit of a challenge. Since async callbacks have no context, we need to re-create the context in which the async execution began, by moving through the composed policies back to the location where the async execution came from before we can continue.

Since async callbacks have no context, we need to re-create the context in which the async execution began, by moving through the composed policies back to the location where the async execution came from before we can continue.

What kind of context are we talking about exactly?

What kind of context are we talking about exactly?

The thread/execution context. Composing policies is in theory like composing functions. Given some callable, we can think of the policies composing around it like:
fallback(retryPolicy(circuitBreaker(callable)))

If the callable is synchronous, this composition is simple and works as expected. If it's asynchronous, the callable is executed on a separate thread, and when it's done we're no longer nested within the other policies. So we have to re-create that nesting before we can handle the callable's result.
The way we do this is treating the composition like a chain. To first execute the callable we work our way along the chain and call the callable on a separate thread:
fallback -> retryPolicy -> circuitBreaker -> callable.callAsync

Since the result of the callable comes to us on a separate thread without any context, we re-create the context by working our way back down the chain to where we triggered the async call, then we can handle the result synchronously as we normally would:
fallback -> retryPolicy -> circuitBreaker.handleResult(result)
fallback -> retryPolicy.handleResult(result)
fallback.handleResult(result)

This isn't the best explanation, but hope it conveys the idea.

Got it.

Composing policies is in theory like composing functions.

That actually pretty much what I'm doing in riptide. We have a Plugin interface that allows to decorate executions (which are basically just callables). I'm using failsafe for retries and circuit breaker, see riptide-failsafe.
Other plugins provide other functionalities that you also described here or elsewhere:

timeouts (not per execution, but applied to the outer most decorated function covering any kind of retires/circuit breaker/delay/etc.)
backup requests, can be thought of as early retries
metrics, effectively measuring duration of executions
transient fault detection, basically error handling that can then be used to control retries (using retryOn)

Fixed by 5d919d5fe5725040b4117c85fba2bc4a4dacdbc9


Stuck in a loop

Claude-dev is getting stuck in a loop where it will do the first few responses correctly - including waiting for user to approve the next step.  Then it will start making api calls without user input, then will start repeating the last call over and over until the limit is reached.  The message box is unavailable so I can't ctrl-c to stop and just have to wait until the limit is reached.  When the limit is reached the only option is to reset the counter and continue, which just keeps looping on the same request.  The only real option is to wait until the limit is reached and then start a new task which looses all my work.  This has happened using Anthropic Sonet 3.5 and Open Router with deepseek.
I know there has been a recent update, so is this a bug?  or should I just remove claude-dev and reinstall?

This is also my experience as of a couple of hours ago. Do you get an error message? Mine is as follows:
"Claude tried to use write_to_file for 'FILEPATH\FILENAME' without value for required parameter 'content'. This is likely due to output token limits. Retrying..."
but where FILEPATH\FILENAME is the path and filename that it's trying to edit. Much looping. I'm using Amazon Bedrock anthropic.claude-3-5-sonnet-20240620-v1:0 . Max tokens on this model is only 200k, so I'm wondering if there's a mismatch. I understand it could be related to overuse but I can't find mention of the error anywhere else.

This has been doing this for quite a while even in older versions.

This especially happens when using open router and deepseek

I continue to struggle with this as well. It's not just large files, I've had it happen on very small files unfortunately.

I think this issue is a duplicate of https://github.com/saoudrizwan/claude-dev/issues/127. It occurs when the model generates output larger than the output token limit. You could try adding the following to the custom instructions in the claud-dev settings:
- If error "Error: Missing value for required parameter 'content'" is seen, output a diff of required code changes instead of using the write_to_file tool.

Seems like a bug as it's something that could be detected and mitigated by asking Claude for a smaller output. Someone else also made a pull request which is relevant: https://github.com/saoudrizwan/claude-dev/pull/158.

You could try adding the following to the custom instructions in the claud-dev settings:
- If error "Error: Missing value for required parameter 'content'" is seen, output a diff of required code changes instead of using the write_to_file tool.

I tried this and some other variants of an instruction, but unfortunately it didn't help.

Same issue here...hope you can fix this, please. Thanks.

I never saw the 'Claude tried to use write_to_file_for_path' error, all I saw was an api request repeating over and over.  Tried again and here is the detail:
{
"model": "deepseek/deepseek-coder",
"max_tokens": 4096,
"system": "(see SYSTEM_PROMPT in src/ClaudeDev.ts)",
"messages": [
{
"conversation_history": "..."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "If you have completed the user's task, use the attempt_completion tool. If you require additional information from the user, use the ask_followup_question tool. Otherwise, if you have not completed the task and do not need additional information, then proceed with the next step of the task. (This is an automated message, so do not respond to it conversationally.)"
}
]
}
],
"tools": "(see tools in src/ClaudeDev.ts)",
"tool_choice": "auto"
}

Working on figuring this out, please see my comment here https://github.com/saoudrizwan/claude-dev/issues/127

This is happening to me too.


New nodes should be members, not proxies, on the etcd cluster

When you have a running deis cluster and AWS autoscaling replaces 1 node, etcd will come up as a proxy and not a member on the etcd cluster.
You can promote a proxy to a member but you have to manually do it https://github.com/coreos/etcd/blob/master/Documentation/proxy.md#promote-a-proxy-to-a-member-of-etcd-cluster.
You can also add the node as a member when it boots https://github.com/coreos/etcd/blob/master/Documentation/runtime-configuration.md#add-a-new-member but you have to set ETCD_INITIAL_CLUSTER and ETCD_INITIAL_CLUSTER_STATE instead of using a discovery url.

@crigor the behavior you're seeing is to be expected.  If a host isn't explicitly removed from the etcd cluster, etcd assumes the node is temporarily unreachable due to network issues or reboot and that it's coming back sooner or later.  And if the cluster already had its max number of peers before one machine went offline and was replaced by autoscaling, the new node does indeed become a proxy.
Expected though it may be, there are some things you can do to combat this behavior.  There are instructions here on how to have Deis automatically remove a node's membership in the ceph and etcd clusters before reboot, shutdown, or halt events.
Alternatively (advanced) you can isolate etcd to a small, fixed number of nodes as described here and here.  When doing this, the intent would be to treat the etcd nodes as "pets" instead of "cattle" and invest in their long-term health instead of allowing them to be replaced by the sort of scaling events that may impact all your other ("cattle") nodes.

There are instructions here on how to have Deis automatically remove a node's membership in the ceph and etcd clusters before reboot, shutdown, or halt events.

We may want to start enabling the graceful removal script by default -- I think it's still billed as "experimental", but it seems to be increasingly important for real clusters. /cc @iancoffey

If we can get #4554 merged, we will be closer for to having graceful etcd and ceph removal ready for prime time.
Regarding the main issue - short of adding something to mechanize the node addition via the etcd membership API (like we did in Deis Pro), there isnt really a solution that wont involve manual etcd wrangling.

Regarding the main issue...

I think the OP's issue doesn't happen if nodes that are leaving the cluster deregister properly.  Do I have that wrong?

But I am +1 on enabling the graceful removal scripts by default.

This is becoming an issue for us as well.  Thanks for linking the etcd docs - I've become pretty good at fixing ceph, but couldn't find any documentation on dealing with the promotion of the etcd peers and was about to open a ticket.
I haven't investigated this fully yet, but I also believe that the AWS ASG attempts to rebalance the nodes across availability zones when you scale up and then down - leading to additional cleanup headaches.
I was running some tests where I detached and terminated a node and was surprised when a second node was shut down and replaced with one in a different AZ without me doing anything.  Ceph was not happy with that as it was in the middle of recovering from the first shutdown.

@jeff-lee isolating etcd and/or the control plane to a small, fixed number of nodes can improve both the etcd and ceph situation.  You can put those things in a separate ASG so that those few, important machines always stick around and don't get killed off by scaling events.

@krancour I spent some time testing that, and deleting the old node from the cluster and from the discovery url before adding a new node did not result in a functional new etcd member. Im going to try it again if I get a sec but that is the current underlying issue, right @crigor ?

@iancoffey I am trying it now as well.

@krancour The issue I was simulating was re-provisioning with a larger instance type so I needed to replace all the nodes.  I had added in the new nodes, but encountered the unexpected re-scaling after I detached and removed the first node.  I'll see if I can replicate this week.

The issue I was simulating was re-provisioning with a larger instance type so I needed to replace all the nodes.

Not to belabor the suggestion of isolating etcd and the control plane, but if you were to do so, you likely can avoid the need to scale those few machines up since they'd be handling a relatively modest workload.  Then you could scale the machines in the data plane (your real workhorses) up, down, out, and in without jeopardizing overall cluster health.  And the latter can be sized differently than the former if you want as well.

@iancoffey @crigor I'll be a monkey's uncle.  I just tested this in vagrant.  I brought up a three node cluster and used etcdctl member remove <id> to remove a node.  I then shut that same node down and promptly replaced it with a new one (with a different IP for good measure).  I fully expected that with room in the cluster for another peer, the new node would become a peer, but @crigor's observation is correct-- it becomes a proxy.

@krancour we had already gone through the process of isolating our application plane ( prior to the introduction of the dataPlane tags ) through the use of tagging.
Unfortunately, when we started adding in monitoring, logging, etc units into the cluster we realized that the initial instance sizing for the controlPlane units was too small.  We also had issues with Docker leaking memory and the builder using 80 GB of disk space so at the end of the day we just decided to resize.

@jeff-lee I just went through what you reported.  I shut down a running etcd peer, as if to scale it up (didn't even terminate it), and the ASG was pretty quick to terminate the stopped instance and fully replace it.  And then, as @crigor noted in the OP, the replacement instance joins the cluster as a proxy (even if I removed the other node properly).  Only manually promoting the proxy to a peer gets me back to where I want things to be.
Do this to all n of n original peers and then one also runs into #4602-- all the peers listed in the document at the discovery URL are stale.  Also, according to this etcd doc, the TTL on entries in the doc at the discovery URL is 7 days... so 7 days after bootstrapping a cluster, the document at the discovery URL will enumerate no peers:

It's also possible that a discovery URL can contain no existing addresses, because they were all removed after 7 days. This represents a dead cluster and the discovery URL won't work any more and should be discarded.

(fwiw, I think it's inaccurate to describe this as a "dead cluster."  The discovery URL may no longer be useful, but I don't think that is any reflection on the cluster's health.)
Etcd is working exactly as it was designed, but it's also clear that discovery URLs aren't indefinitely reliable.  We have previously contemplated not relying on them anymore.  See #4268.  (I think this remains outstanding because of the great difficulty in making this work for all cluster sizes and all cloud providers.)
Re-reading my favorite etcd doc on production cluster architecture, I'm now spotting this bit that I've previously overlooked:

Our Central Services machines will run services that support the rest of the cluster. etcd is configured with static networking and a peers list.

Pretty much what this amounts to is not using ASGs and discovery URLs to manage the isolated etcd peers.  One could create a custom CloudFormation template that creates, individually, 3 or 5 etcd peers with each at a specific IP.  Each would also be configured to know the IPs of its peers.  Such a setup would be very stable.

@krancour Yeah, as I discovered while digging for documentation on how to promote a proxy, it seems that the discovery url was only ever intended to be used for initial bootstrapping.  All subsequent cluster changes are meant to be done through runtime reconfiguration.  See here and here.

Lifetime of a Discovery URL
A discovery URL identifies a unique etcd cluster. Instead of reusing a discovery URL, you should always create discovery URLs for new clusters.
Moreover, discovery URLs should ONLY be used for the initial bootstrapping of a cluster. To change cluster membership after the cluster is already running, see the runtime reconfiguration guide.

Although the idea of the ASG is nice, having that second node disappear moments after ceph has started to recover from the removal of the first node is surprising and painful.

Trying to put some closure on this.  Collectively, I think we have established and agree that etcd is behaving just as intended and as its own documentation describes.  etcd documentation further recommends (and I believe this recommendation ought to be taken seriously) that etcd peers run on a small, fixed number of nodes that use static configuration instead of the etcd discovery service.  A corollary to this is that these few nodes should not be managed in an auto-scaling group.
While Deis' existing provisioning processes do not account for this, etcd and Deis are both sufficiently documented such that anyone wanting to run such a configuration should be able to provision infrastructure to that end, albeit not without some effort.
We're currently investigating options for a more production-grade provisioning process (on AWS only to start), but I do believe the OP's proposal that "New nodes should be members, not proxies, on the etcd cluster," has been adequately dispelled as something we should not do, favoring instead to not autoscale etcd peers.  Based on that I'm going to close this.

@krancour we need to document this if it isn't documented yet. I agree that etcd2 behaves as expected. Before deis 1.9.0, we were using etcd 0.4. New nodes replaced by the autoscaling group joins the cluster as members since etcd 0.4 didn't have proxies then.
With deis 1.9.0 and etcd2, the behavior changed. So with deis 1.9.0 and above, you have to promote proxies to members. Otherwise, when 2 nodes are replaced (on a 3-node cluster), etcd loses its quorum.
Currently, by using autoscaling group on AWS, my assumption (and probably most people too) is etcd can recover on its own. We probably just need to add a warning that it's not the case anymore starting deis 1.9.0.
I agree on using a separate etcd cluster. That increases the minimum number of servers needed but might be the best option in production. This is for a different ticket though.

@crigor that's a good point about this behavior having changed when we jumped to etcd2.  I'll open a separate issue for amending the docs.


Sample transfer-06-consumer-pull-http error running the connectors

Following the sample transfer 06, after building the connector I try to run the commands to start the connectors. After running the commands which I got from the README.md file:
INFO 2023-10-10T07:58:50.1484593 Initialized FS Configuration
SEVERE 2023-10-10T07:58:51.9009282 Error booting runtime: The following injected fields were not provided: Field "transferProcessApiClient" of type [interface org.eclipse.edc.connector.api.client.spi.transferprocess.TransferProcessApiClient] required by org.eclipse.edc.connector.dataplane.framework.DataPlaneFrameworkExtension
org.eclipse.edc.spi.system.injection.EdcInjectionException: The following injected fields were not provided:
Field "transferProcessApiClient" of type [interface org.eclipse.edc.connector.api.client.spi.transferprocess.TransferProcessApiClient] required by org.eclipse.edc.connector.dataplane.framework.DataPlaneFrameworkExtension
at org.eclipse.edc.boot.system.DependencyGraph.of(DependencyGraph.java:102)
at org.eclipse.edc.boot.system.ExtensionLoader.loadServiceExtensions(ExtensionLoader.java:119)
at org.eclipse.edc.boot.system.runtime.BaseRuntime.createExtensions(BaseRuntime.java:151)
at org.eclipse.edc.boot.system.runtime.BaseRuntime.boot(BaseRuntime.java:201)
at org.eclipse.edc.boot.system.runtime.BaseRuntime.boot(BaseRuntime.java:84)
at org.eclipse.edc.boot.system.runtime.BaseRuntime.main(BaseRuntime.java:72)
This is the command I used to run the provider connector: java -Dedc.keystore=transfer/transfer-06-consumer-pull-http/certs/cert.pfx -Dedc.keystore.password=123456 -Dedc.vault=transfer/transfer-06-consumer-pull-http/http-pull-provider/provider-vault.properties -Dedc.fs.config=transfer/transfer-06-consumer-pull-http/http-pull-provider/provider-configuration.properties -jar transfer/transfer-06-consumer-pull-http/http-pull-connector/build/libs/pull-connector.jar
This is the command I used to run the consumer connector:  java -Dedc.keystore=transfer/transfer-06-consumer-pull-http/certs/cert.pfx -Dedc.keystore.password=123456 -Dedc.vault=transfer/transfer-06-consumer-pull-http/http-pull-consumer/consumer-vault.properties -Dedc.fs.config=transfer/transfer-06-consumer-pull-http/http-pull-consumer/consumer-configuration.properties -jar transfer/transfer-06-consumer-pull-http/http-pull-connector/build/libs/pull-connector.jar
Both commands give the same error

You can add the following implementation to build.gradle.kts in sample 6 to run the Connector.
dependencies {     implementation("org.eclipse.edc:control-plane-api-client:0.3.1") }
This is the implementation that is called by the interface that is loaded by Java SPI through the Connector.

just for the record, the solution was applied in https://github.com/eclipse-edc/Samples/pull/129


'google-cloud-storage' distribution was not found and is required by the application

Nuitka version, full Python version and Platform (Windows, OSX, Linux ...)
python -m nuitka --version

(.venv) C:\dq-verse\google-cloud-test>  python -m nuitka --version
<IP_ADDRESS>
Python: 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)]
Executable: C:\dq-verse\google-cloud-test.venv\Scripts\python.exe
OS: Windows
Arch: x86_64

How did you install Nuitka and Python (pip, anaconda, deb, rpm, from source,
what is a virtualenv ...), this is very important usually.

python - from windows installer
nuitka - from pip

Many times when you get an error from Nuitka, your setup may be so special
that even a "hello world" program will not work, please try that and report
it instead.

helloworld program compiles fine.

If possible please supply a Short, Self Contained, Correct, Example
that demonstrates the issue i.e a small piece of code which reproduces
the issue and can be run with out any other (or as few as possible)
external dependencies.

First:
pip install google-cloud-storage
Then this trivial 2 line program compiles fine but fails with an exception when the exe is run
from google.cloud import storage
print("test completed")
Here is the exception:
   (.venv38) C:\dq-verse\google-cloud-test\test.dist>test
   Traceback (most recent call last):
     File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\test.py", line 2, in <module>
    File "<frozen importlib._bootstrap>", line 991, in _find_and_load
    File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
    File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\google\cloud\storage\__init__.py", line 36, in <module google.cloud.storage>
    File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\pkg_resources\__init__.py", line 481, in get_distribution
    File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\pkg_resources\__init__.py", line 357, in get_provider
    File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\pkg_resources\__init__.py", line 900, in require
    File "C:\dq-verse\GOOGLE~1\TEST~1.DIS\pkg_resources\__init__.py", line 786, in resolve
  pkg_resources.DistributionNotFound: The 'google-cloud-storage' distribution was not found and is required by the application

hi
i check it not problem after compilation , use this command for compile:
nuitka --recurse-all --standalone --show-progress t3.py

Thanks for the suggestion!
I tired:
python -m nuitka --recurse-all --standalone --show-progress --mingw64 test.py
and exactly your command:
nuitka --recurse-all --standalone --show-progress test.py
Both ways compile fine but both times when I try to run the test.exe I still get the same exception/traceback as first reported.

I'm seeing the same thing with a different library.
The offending line of code is this: https://github.com/ethereum/eth-utils/blob/386863e6b7d95ac5acb11f6ba81619dc88ed6eb9/eth_utils/init.py#L112
Using the --standalone flag causes the compiled binary to throw the reported exception.

I have actually started to implement this, but it's a duplicate of #779 that is under work, but probably will not be finished for a while.


Fix build error

This PR removes a TOC entry that should no longer exist, addressing the following Snooty error:
ERROR(index.txt:11ish): Could not locate toctree entry install
Build log (fixed) - https://workerpool-boxgs.mongodbstitch.com/pages/job.html?collName=queue&jobId=65e62a8211db7b042769e083
Checklist

[ ] Add tests and ensure they pass
[ ] Add an entry to the CHANGELOG.md file
[ ] Update documentation for new features

Fixed in #2744 (here)


issue #24

removed .gitmodules file. strangely I checked the .gitignore and the file was in the list, as well as the subrepo not being present in the .git/config file. Normally git does not checkout subrepo's unless explicitly told to do so, docker automated builds are deviating from that behavior for some reason.

#24


Properly swallow errors if deleting a remote fails

deleteRemote() intends to return successfully if
the to-be-deleted remote does not exist. In this case, git returns an
exit code of 2, and outputs a message to stderr. Depending on the locale
of the user's system, this error message might be localized.
spawnPromise() and spawnStream() try to set the locale to en_US,
but there are no guarantees that this locale is actually available on
the user's system.
Instead of doing fragile locale-dependent string parsing, simply use the
exit code we get from git in this case and act on that.
Fix the mocks in the tests to behave like the real-world git, and add a
test for the non-English case as well.
Fixes #507

Released in 9.6.0


Is identifier in tasks.json used anymore?

In Wiki: is step 4. needed in Build-an-ActionScript-project-in-Visual-Studio-Code due to it is no more used? As it is no more mentioned in Debug pages to be used for preLaunchTask.

Thanks for pointing that out! I've now removed it.


Invalid Syntax when downloading subtitle files

When downloading subtitles, i've been getting strconv.ParseInt: parsing "numbers here": invalid syntax.
For example, strconv.ParseInt parsing "17.11": invalid syntax

I seem to be having the same issue with specific episodes. This doesn't happen with all episodes in a season.
Here's an example of what it looks like in the CLI:


Championship error

When I try to create a championship I get the error ... the page not work.... http error 500

fixed in #555


(bug) Compare popup doesn't open if Code coverage is switched on

Describe the bug
As I have debugged, "Compare snapshot" button is not clickable (popup doesn't open after click) if you have code coverage switched on. As soon as I'm removing coverage from cypress\support\index.js - comparing is working as expected. So, probably some problems in configuration. At least this is actual for cypress-react-unit-test.
To Reproduce
Steps to reproduce the behavior:

Add code coverage
Run test(with npx cypress open) and let it fail due to image snapshot comparing
Click "Compare snapshot" button in left side bar in UI test runner
Compare popup with images is not opening

Expected behavior
Compare popup with images should opens
Screenshots

Desktop (please complete the following information):

OS:  Windows
Cypress Version 4.7.0
cypress-react-unit-test 4.3.1
cypress-plugin-snapshots: 1.4.3

I have a same problem, but in my case "compare snapshot" doesn't work when in a config (cypress.json) I set env.cypress-plugin-snapshots.autoCleanUp to true.

Most probably that this issue is only for Windows users. @SchDen  Can you confirm ?

@taninnazar oh, sorry, I forgot to write about my OS. I work on Ubuntu 18

For me it doesn't open in any case. Anyway I know what the issue is, will open a PR soon with fix.

Here is a patch until this gets merged and released:
diff --git a/node_modules/cypress-plugin-snapshots/assets/script.js b/node_modules/cypress-plugin-snapshots/assets/script.js
index 35c9537..792dd2a 100644
--- a/node_modules/cypress-plugin-snapshots/assets/script.js
+++ b/node_modules/cypress-plugin-snapshots/assets/script.js
@@ -11,30 +11,10 @@ function closeSnapshotModal() {
       : JSON.stringify(subject, undefined, 2);
   }

-  // Bug: `cy.readFile` only works first time, as a fix I wrap it in a cached `Cypress.Promise`.
-  // @TODO: file a bug report about this.
-  function readFile(fullPath, encoding = 'base64', options = { log: false, timeout: 2000 }) {
-    if (!Cypress.__readFileCache__) Cypress.__readFileCache__ = {};
-    if (!Cypress.__readFileCache__[encoding]) {
-      Cypress.__readFileCache__[encoding] = {};
-    }
-
-    const cache = Cypress.__readFileCache__[encoding];
-    if (!cache[fullPath]) {
-      cache[fullPath] = cy.readFile(fullPath, encoding, options).then(result => {
-        cache[fullPath] = Cypress.Promise.resolve(result);
-        return result;
-      });
-    }
-
-    return cache[fullPath];
-  }
-
   function getImageDataUri(url) {
-    return readFile(url, 'base64')
-      .then((image) => {
-        return `data:image/png;base64,${image}`;
-      });
+    return Cypress.backend('read:file', url, {encoding: 'base64'}).then(result => {
+      return `data:image/png;base64,${result.contents}`;
+    });
   }

   function formatPreview(title, content) {
@@ -146,7 +126,7 @@ function closeSnapshotModal() {
           window.saveSnapshot(data);
           closeSnapshotModal();
         });
-      });
+      }).catch(console.error);
     }

     return false;


tfp.sts.AutoregressiveStateSpaceModel noise mean should be settable

System information

TensorFlow version (you are using): 2.0
Are you willing to contribute it (Yes/No): No

Describe the feature and the current behavior/state.
in tfp.sts.AutoregressiveStateSpaceModel you cant currently set the mean of the normally distributed noise. this would be nice to add as some auto-regressive models may add a constant term at each time step. the math would then be :
level[t+1] = (sum(coefficients * levels[t:t-order:-1]) +
              Normal(level_mean, level_scale))

Will this change the current api? How?
this would require an additional parameter
Who will benefit with this feature?
people who want to do auto-regressive models with a constant term
Any Other info.

@jrm346,
Sorry for the delayed response. Can you please let us know if this is the functionality that you are looking for?
Thanks!


On Windows search for libsass.so instead of libsass.dll

On Windows search for libsass.so instead of libsass.dll
I have installed new gem sassc version 2.1.0
and new gem sass-rails version 5.1.0
Window version 10
and try to migrate db (rake db:migration) and have error:
LoadError: Could not open library 'C:/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/gems/sassc-2.1.0/lib/sassc/libsass.so' : The operation completed successfully.
uri:classloader:/jruby/kernel/kernel.rb:13:in `require_relative'
uri:classloader:/jruby/kernel/kernel.rb:13:in `require_relative'
>Bundler.require(*Rails.groups)

in the searched folder have file libsass.dll just need to search for it on Windows
hope on quick solution, thanks!

Can you please open an issue on sassc-rails? This repository is just a wrapper for it. Thank you

https://github.com/sass/sassc-rails/issues/134


Last added history entry is removed automatically after refresh

Describe the bug
Entries are added to history[] but after refresh, the last added entry were automatically removed.
To Reproduce
Steps to reproduce the behavior:

Send a mock request
History entry will be added to history section
Refresh the page
Last added history entry automatically removed
Further refresh won't remove entries though

Expected behavior
History shouldn't be removed
Additional context
Add any other context about the problem here.

@izerozlu could you please double check #59 because I think this PR introduced this error.

@liyasthomas Will check as soon as possible.

#67 fixes this hence closing

@all-contributors please add @izerozlu for code


Taxes - Tax value is blank when returning online after editing it offline

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.56-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:
Precondition:

User is admin of Collect workspace

Go to staging.new.expensify.com
Go to Profile > Workspaces > Collect workspace
Go to Taxes
Go offline
Add a tax rate
Click on the tax rate
Edit both tax name and rate
Go online
Click on the tax rate

Expected Result:
The edited tax value in Step 7 will be saved
Actual Result:
The tax value is blank when returning online after editing it offline
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/e81e40f4-13e3-4668-b322-c6c22d557bf6
View all open jobs on GitHub

@AndrewGable  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #wave-control

Yes, we updated the param name in the API and it'll be updated in App in this PR cc @kosmydel

Added this issue to the list of fixed issues of https://github.com/Expensify/App/pull/38733

It seems like we'll handle payment for this one in https://github.com/Expensify/App/issues/38499. So I think we're good to close here


Add a "key" field to messages

Currently we have a lot of cases were messages are separated into key and value (e.g. after reading from kafka) or where a key has to be generated from a payload (routing, redis, kafka, etc.).
Along with that comes the need to modify keys separately that lead to different approaches and config + code bloat.
By adding keys to messages we will reduce processing overhead and can built much more streamlined pipelines that are easier to understand and debug.

Add a "key" to the Message struct ([]byte)
Consumers reading from key/value stores should set the key
Producers requiring a key should take the key field into account (can be empty)
Modulators for keys must be possible (ideally by defining an ApplyTo field or sth. similar)
Implement a "Copy" formatter that allows copying data between key and value fields

After an internal discussion we agreed on changing this from a dedicated field to a metadata collection. Changed requirements:

Add a "metadata" field to the message struct (map[string][]byte)
Consumers can decided where to put the key by config value (default "key")
Producers can read a required key from metadata by config value
Formatters may store snippets in metadata fields
Formatters may read/write metadata fields by config value (default: read/write payload)
Filters may read from metadata fields
Routers may react on metadata fields

This task is done for now. Open features will handles by new subtasks.


Add .getId() method

Similar to farmOS/farmOS.py#42.
This is by no means a blocker, since it's not really necessary for anything on the FK Roadmap (farmOS/farmOS-client#373), and it can always be added at any time down the road w/o being a breaking change, but it's such low hanging fruit and a significant optimization it's worth considering.

I may wait on this a little longer. I guess I'm just reluctant to add another method like this, expanding the API surface.
As an alternative, I wonder if it might make better sense to add an id parameter to the fetch options, which takes a single UUID. I don't know if that is any better, honestly, but it at least feels more aligned with the current API design.

As an alternative, I wonder if it might make better sense to add an id parameter to the fetch options, which takes a single UUID. I don't know if that is any better, honestly, but it at least feels more aligned with the current API design.

I would really recommend against this. The response type is different when you GET a single id as a path argument. From the original farmOS.py issue:

Another reason to move the ID to a separate method is because the response of a single resource is different than the response of multiple resources. Fetching a single resource, such as /api/log/observation/f1790e98-8762-4c16-bb93-ef53f0f77dfe returns a single object in the response data property. Fetching a collection of resources returns an array in the data property.

I would really recommend against this. The response type is different when you GET a single id as a path argument

Ohhhh, yes, thank you! I was struggling to remember our conversation around this, and yes, I definitely don't want to do this.
Ok, I think I will punt on this though for now, at least until there is a clear need for such a method. I'd be inclined to implement it in the standalone export of the client, but removing it via adapter, so it is not present on the main farmOS instance.


Upgrade guide v0 to v1

@henryrecker-pingidentity Need a review for whether this guide contains all the breaking changes we intend to make:

Removal of fields (both deprecated and not deprecated)
Removal of resources, data-sources (both deprecated and not deprecated)
Changes to any data types leading to customers having to change their HCL (these need state upgraders)
Renaming fields leading to customers having to change their HCL (these need state upgraders)

Also need to check whether I've added something that is deprecated that we intend to keep in the provider because of backward compatibility with previous PF versions

@henryrecker-pingidentity Need a review for whether this guide contains all the breaking changes we intend to make:

Removal of fields (both deprecated and not deprecated)
Removal of resources, data-sources (both deprecated and not deprecated)
Changes to any data types leading to customers having to change their HCL (these need state upgraders)
Renaming fields leading to customers having to change their HCL (these need state upgraders)

Also need to check whether I've added something that is deprecated that we intend to keep in the provider because of backward compatibility with previous PF versions

A few attributes have slightly different underscore naming in idp_sp_connection vs sp_idp_connection, so I plan to change those for 1.0, so that will need to be added here when it is done.
I'm not aware of anything marked as deprecated that we intend to keep in 1.0, or of any changes to data types.


Adjust TestConvolution2DFunction::test_double_backward fp16 tolerance

Closes #8116
Before the patch
8 Failures 2000 runs
After the patch
0 Failures 2000 runs

Jenkins, teset this please

Jenkins, test this please

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

@mergify[bot] This pull-request is marked as to-be-backported, but the corresponding backport PR could not be found. Could you check?


Video keeps playing when searching

The Issue
If you play a video and then perform a search, it keeps playing. Not sure if this is the same scenario as https://github.com/lbryio/lbry-android/issues/452
System Configuration

Device:
Android version:

Anything Else

Screenshots

Internal Use
Acceptance Criteria

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of the user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

fix broader picture in picture issue #120

Fixed.


Add initial structural files

Modeled after current SMQTK-* package tooling.

Addressing the restructure part of #1


Add: bench command

Hello, can we add bench command?
I tested it and use to compile armv7/aarch on CI and then just run binaries on self-hosted.
https://github.com/RaulTrombin/actions-rust-cross/tree/add_bench
 - name: Cross-compile benchmark
        uses: RaulTrombin/actions-rust-cross@add_bench
        with:
          command: bench
          target: ${{ matrix.TARGET }}
          args: "--no-run"

Sure, that makes sense. Do you want to turn your fork into a PR?

Done in v0.0.17. Thanks for the PR!

Thanks @autarch


publish() method in collector.py could propagate the timestamp argument

Hi Folks,
Right now, we can not publish timestamp data from our collector although we have the data. I propose to add the timestamp argument to the argument list of publish() and default it to None, e.g.:
change from:
def publish(self, name, value, raw_value=None, precision=0,
metric_type='GAUGE', instance=None):
to:
def publish(self, name, value, raw_value=None, precision=0,
metric_type='GAUGE', instance=None, timestamp=none):
and then calling Metric()
from:
Create Metric
    try:
        metric = Metric(path, value, raw_value=raw_value, timestamp=None,
                        precision=precision, host=self.get_hostname(),
                        metric_type=metric_type, ttl=ttl)

to
Create Metric
    try:
        metric = Metric(path, value, raw_value=raw_value, timestamp=timestamp,
                        precision=precision, host=self.get_hostname(),
                        metric_type=metric_type, ttl=ttl)

This would allow a collector to call publish() and pass the timestamp information.
Does this make sense?
Many thanks in advance
Michael

This repo has moved to https://github.com/python-diamond/Diamond
Please open a new ticket there if this issue is not resolved with the current code there.
Thanks!


On duplicate Source ID, make ALL dups have a number index, e.g. srcId.N

Does this description reflect Martin's actual actions?
Doc says: For example, points table will be available at /points, unless there is another source with the same name, or if the table has multiple geometry columns, in which case it will be available at /points.1, /points.2, etc.
I start a Martin server with test postgis database and fetch the catalog API:
[
{"id":"table_source_multiple_geom","content_type":"application/x-protobuf","description":"public.table_source_multiple_geom.geom1"},
{"id":"table_source_multiple_geom.1","content_type":"application/x-protobuf","description":"public.table_source_multiple_geom.geom2"}
]

It's not table.1 and table.2 but table and table.1

Yeah. I haven't dug into the code about this part. If I give it a try, may I get your guide? @nyurik

Sure, but this is not trivial task (but not too difficult either). Current process:

All configuration sub-systems call resolve() to convert a name into an ID:
https://github.com/maplibre/martin/blob/2df254af4dc7932ff319c65aa190e0f0b2ffdc20/src/source.rs#L75
https://github.com/maplibre/martin/blob/2df254af4dc7932ff319c65aa190e0f0b2ffdc20/src/pg/configurator.rs#L218-L221
Each source configurator adds that new ID together with the source object to some internal hashmap.
Eventually all configurations are joined together in the main resolver:
https://github.com/maplibre/martin/blob/2df254af4dc7932ff319c65aa190e0f0b2ffdc20/src/config.rs#L76

So to modify this, you would need to do the following:

modify IdResolver:

add a vector of strings to the IdResolver struct, e.g. dup_names: Vec<String>
if name already exists, start index from 2 instead of 1 https://github.com/maplibre/martin/blob/2df254af4dc7932ff319c65aa190e0f0b2ffdc20/src/source.rs#L101
move index = index.checked_add(1).unwrap(); line to the end of the loop after the match statement
if name already exists, but the index is equal to 2 (i.e. there is only one entry in the hashmap, and we are currently adding a 2nd duplicate entry) -- append name.clone() to the self.dup_names
introduce a new function to join name with a number, e.g. pub fn make_id(name: &str, index: i32) -> String { format!("{name}.{index}") } -- and use this function instead of the write!(&mut new_name, "{name}.{index}").

modify Config::resolve in https://github.com/maplibre/martin/blob/2df254af4dc7932ff319c65aa190e0f0b2ffdc20/src/config.rs#L76

At the very end, after joining, but before the Ok(result) (will need a temp variable to store the joined results), iterate over all idr.dup_names, and remove those names from the joined results, and re-add them under new name by calling make_id(name, 1).

This should pretty much solve the issue, except for one thing -- the internal metadata that gets generated by each source would also need to be updated somehow, e.g. by adding a new source trait method like update_metadata or init_metadata?  Basically you would need to delay the tilejson creation until after the ID is known

Could we update get table source sql first and then call resolve like this resolve(points.1,schema.points.geom1) @nyurik

@sharkAndshark I'm not sure what you mean. The name -> id conversion happens the same way for SQL tables, SQL functions, mbtiles, and pmtiles sources.  There is no need to touch the .sql files at all here

Yeah.You are right.I was thinking group and rename it source.1 source.2 before calling resolve when it's Pg tables.But it not resolved problems this way.

I'm not too certain this problem is worth the effort at this point. Other issues might be more urgent, like making it very simple to set up all the static resources -- e.g. bring up martin + style + fonts + maplibre lib in one go, or at least document a way to do that easily with other tools, ...

If Martin could transform and caching fonts between Woff,ttf,sdf.That would be cool.Like there is a ttf in Martin,and client can request pbf(Martin transform them internally).But let's talk about them in another issue/discussion.


Explain Pipeline failed and catch DB::Exception "Table xx.xx doesn't exist  SQLSTATE: 42P01"

Bug Report
Explain Pipeline failed and catch DB::Exception "Table xx.xx_44561... doesn't exist SQLSTATE: 42P01."
Briefly describe the bug
Hi, All.
There are three servers and two default-workers in my ByConity cluster.
I create a CnchMergeTree table and insert some values.
The explain sql query shows the Query Plan, and it can return the currect result.
But the explain pipepline sql query failed and catch DB::Exception "Table xx.xx_44561... doesn't exist SQLSTATE: 42P01."
How to Reproduce
Step1:  create tabe.
CREATE TABLE test.t1
(`id` UInt32,
`pt_d` Date DEFAULT today())
ENGINE = CnchMergeTree()
PARTITION BY pt_d
Order by id

Step2: insert values
insert into test.t1 select (rand() % 1000), today() from numbers(50);

Step3: query explain sql
 explain select count(id), pt_d from test.t1 group by pt_d;

it returns the right result.
Step4: query explain pipeline sql
explain pipeline  select count(id), pt_d from test.t1 group by pt_d;

It execute failed and the error message is:
DB::Exception: Table test.t1_4456... doesn't exist SQLSTATE: 42P01.

Version
0.2.0
Does any one face the same problem?

@zhaojintaozhao I tried this set of queries on the latest version of ByConity and it executes successfully. I recommend updating your version to the latest version and giving it a try.

@zhaojintaozhao I tried this set of queries on the latest version of ByConity and it executes successfully. I recommend updating your version to the latest version and giving it a try.

The latest version -- it means 0.2.2?

@vivek-debug The latest version -- it means 0.2.2?
yes


Fix broken 39 spectra links

There are 30 spectra which are giving 404 errors.
tests/scheduled_checks.py found 39 broken spectra urls: ['https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/2MASS1503%2B2525_SL.txt', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U40068_0534-0631.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20989_n3.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20989_n4.fits', 'https://bdnyc.s3.amazonaws.com/IRS/2MASS+J22541892%2B3123498.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21010.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20976.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/u12003.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U40106_0406-3812.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21011.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21018.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U51060_1302%2B5650_notell.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20993_2315%2B0617.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21001.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21009.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U50933_1118-0856_K10.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U40005_2249%2B0044.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20909.fits', 'https://s3.amazonaws.com/bdnyc/RCspec (CTIO 4m)/L1_OPT_2MASS_J10595138-2113082_Cruz2003.txt', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21005.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20990.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20994.fits', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/vB10_SL.txt', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U11993.fits', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/2MASS1615%2B3558_SL.txt', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/2MASS1658%2B7027_SL.txt', 'https://bdnyc.s3.amazonaws.com/XShooter/J11123099-7653342.txt', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/2MASS0036%2B1821_SL.txt', 'https://bdnyc.s3.amazonaws.com/IRS/0000%252B2554_IRS_spectrum.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U40021_roque25_davy.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20907.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U40018_ppl1_davy.fits', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/2MASS0746%2B2000AB_SL.txt', 'https://s3.amazonaws.com/bdnyc/IRS/IRS_DimSuns_S12/BRI0021-0214_SL.txt', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20979.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U20906.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21002.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U21004.fits', 'https://s3.amazonaws.com/bdnyc/optical_spectra/U50174_1331-0116_Hawley02.fits'],

Next stey: See if any of these files exist in the shared BDNYC_spectra folder.

I uploaded all of the "Found" sources and I also found all of the optical_spectra/ ones in "Not Found".   I think that leaves only 4 left. Will double check with the scheduled_checks script.

Here are the 4 left which need deeper investigation:

'https://bdnyc.s3.amazonaws.com/IRS/0000%252B2554_IRS_spectrum.fits'
'https://s3.amazonaws.com/bdnyc/RCspec (CTIO 4m)/L1_OPT_2MASS_J10595138-2113082_Cruz2003.txt',
'https://bdnyc.s3.amazonaws.com/XShooter/J11123099-7653342.txt',
'https://bdnyc.s3.amazonaws.com/IRS/2MASS+J22541892%2B3123498.fits'


Impl std::error::Error for JoinError

This is important to run try_join! with JoinHandle.

Thank you very much :) I will publish a new version very soon

한국인이셨군요 :)

이제야 봤네요, 만나서 반갑습니다 :)


Fix alignment of the subtitle icon to RTL in course outline module

https://openedx.atlassian.net/browse/MA-832

:+1:


IL Linker does not remove unused classes / methods

It is stated here that

The linker removes code in your application and dependent libraries that are not reached by any code paths

I am following these instructions. Before publishing the app I add unused class to the project:
echo internal class UnusedClass { private class UnusedNestedClass { private void UnusedMethod() { System.Console.WriteLine("This method is never called.");}}}> UnusedClass.cs

To make sure the linker processes the main assembly add these lines to the testapp.csproj file:
<PropertyGroup>
    <ExtraLinkerArgs>-c link -u link -t -l none -b true --skip-unresolved true --verbose</ExtraLinkerArgs>
</PropertyGroup>

My publish command:
dotnet publish -c release -r win-x64 -o out /p:ShowLinkerSizeComparison=true

After publishing decompile out/testapp.dll (I use ILSpy).
Expected: UnusedClass is removed.
Actual: UnusedClass is still there.
dotnet --version: 2.1.300-preview2-008533
IL Linker from this package

Issue moved to dotnet/coreclr #18449 via ZenHub


add motorbundle class

sets the top level hints to be the names of the children that are motors.

The PR for this issue (#441) has prompted some discussion and seems to have broken EPICS installation in a subtle way, so I'm punting this to the next release.


Undefined symbol generic_category_instance in boost-system x64-osx

I am receiving this error linking against boost system 1.68.0 installed through vcpkg. I've tried re-installing with VCPKG_CXX_FLAGS set to "-std=c++17" or "-std=c++14" (seeing if the fix here works). I'm not sure what I can do to resolve this, any help?
Undefined symbols for architecture x86_64:
  "boost::system::detail::generic_category_instance", referenced from:
      boost::system::generic_category()

Closing this because the problem goes away with the new version of boost (per https://github.com/boostorg/system/issues/28).


change encode method's argument to OutputStream to make it more generic

and do casting to BerByteArrayOutputStream for issue #2

@sfeuerhahn, did you have a chance to look into this PR?

@sfeuerhahn, finally found a space to revise, could you please review again? thanks

@sfeuerhahn , when do you think we can review and possibly merge the PR?
Regards

thanks onders, I have merged it into the develop branch instead of master.

@sfeuerhahn , thanks


GRPC

Some GRPC request handler would be much appreciated :)

You mean something like Roadrunner?

Roadrunner is a server (among all http), Slim can be easily hooked up, and it works fine, cause receives http request shaped properly to be handled.
On the other hand Roadrunner serves also GRPC requests, and Slim has nothing to deal with it yet.
There is something like Sprial framework (dedicated to Roadrunner), its a pitty, that is actually kind of fork of Symfony, which is ready to serve both grpc and websockets connections, even mettrics. Slim's simplicity makes it possible to do it all either with a  bit of a good will of Slim dev team.
GRPC in Slim looks for me like something worth to be considered, for the future, considering Slim's long time releases - which is good by the way.
We, as a team, have almost finished a platform (modular monolith microservices), highly resources and transfer intensive, everything based on Roadrunner/Slim and all works as expected, but in a year or two we will find ourselves on the edge of http capabilities, so GRPC looks to be a natural choice. Possible lack of Slim just breaks my hart.


ARROW-11259: [Python][Dataset] Allow creating nested field ref

9799

 Quality gate: Failed
5 Issues

 5 Code issues

Details


Update dgst.pod

Kindly take a look if everything is alright.
Removed Use the B<pkeyutl> command instead for this. from lines 97-98
Fixes #11633
CLA: trivial

Checklist

[x ] documentation is added or updated

Thanks @rajatdiptabiswas for looking into this.
I agree that the change qualifies as trivial for CLA purposes.
This is now approved, and after a 24h grace time period in which other reviewers can give feedback and discuss, if nothing prevents it, the PR will be merged.
I don't expect objections, so I will risk saying this already:
Congrats on your first successful contribution to OpenSSL.
Even if this can be classified "trivial" from a code-change point of view, it is nonetheless a great contribution to the quality of the project.
We always warmly welcome community contributions, even if sometimes development cycles might be a bit frenetic and it might happen that OpenSSL committers need more time than ideal to review, discuss and approve external PRs.
Although  technically not required for this PR, it might be a good idea to submit a Contributor License Agreement (CLA) so that all will be already cleared up for your future contributions to the project.
We often flag issues (and sometime PRs) with good first issue or help wanted labels to try and stimulate community engagement.
Of course nothing prevents you from proposing new issues and new PRs based on your discoveries, needs and interests.
I personally always invite external contributions to the documentation (typos, clarifications, updates, or issues like the one fixed here) as often external users have the best vantage point to increase the quality of our documentation: this is because OpenSSL contributors often are too familiar with the gory details of OpenSSL internals, and might miss that docs that look totally fine assuming that familiarity are often difficult to digest for external developers.
Thanks again for your efforts!

Thank you so much for such a heartwarming message @romen!
I am so glad to have worked on this issue for openssl.
I don't have access to a printer right now and hence I couldn't sign the CLA. I shall do it whenever I get the chance.
I'll be looking forward to making more contributions in the future!
Thank you so much for everything.

Does this also need to be applied to the master branch? It is only labelled for 1.1.1.

@vdukhovni and @romen confirm master please?

No this is 1.1.1 only, in master pkeyutl supports ed25519/448 through -rawin

No this is 1.1.1 only (as the relevant issue), in master pkeyutl supports ed25519/448 through -rawin

I documented on the mailing list how to sign files with Ed25519/448 with master.
Here is the relevant extract:
λ /tmp/test25519/ ### Ensure OpenSSL dev build is in use for this shell
λ /tmp/test25519/ which openssl ; openssl version
/opt/openssl-master/bin/openssl
OpenSSL 3.0.0-dev xx XXX xxxx (Library: OpenSSL 3.0.0-dev xx XXX xxxx)
λ /tmp/test25519/ ### Generate Ed25519 private key
λ /tmp/test25519/ openssl genpkey -algorithm Ed25519 -out priv.pem
λ /tmp/test25519/ ### Extract pub key from private key
λ /tmp/test25519/ openssl pkey -in priv.pem -pubout -out pub.pem
λ /tmp/test25519/ ###
λ /tmp/test25519/ ### Up to this point all the commands were compatible
λ /tmp/test25519/ ### with OpenSSL 1.1.1 releases, the next one is the
λ /tmp/test25519/ ### one that requires OpenSSL 3.0.0-dev as `pkeyutl`
λ /tmp/test25519/ ### now has support for `-rawin` which is required
λ /tmp/test25519/ ### for signing/veryfing files with Ed25519 keys.
λ /tmp/test25519/ ###
λ /tmp/test25519/ ### Generate a signature `sig.dat` for the file
λ /tmp/test25519/ ### `/bin/ls` using `priv.key` private Ed25519 key;
λ /tmp/test25519/ openssl pkeyutl -sign -inkey priv.pem -out sig.dat \
    -rawin -in /bin/ls
λ /tmp/test25519/ ### Verify the file `/bin/ls` against a signature
λ /tmp/test25519/ ### `sig.dat` under the public Ed25519 key `pub.pem`.
λ /tmp/test25519/ ### Success is expected.
λ /tmp/test25519/ openssl pkeyutl -verify -pubin -inkey pub.pem \
    -rawin -in /bin/ls -sigfile sig.dat
Signature Verified Successfully
λ /tmp/test25519/ ### Verify the file `/bin/echo` against a signature
λ /tmp/test25519/ ### `sig.dat` under the public Ed25519 key `pub.pem`.
λ /tmp/test25519/ ### Failure is expected.
λ /tmp/test25519/ openssl pkeyutl -verify -pubin -inkey pub.pem \
    -rawin -in /bin/echo -sigfile sig.dat
Signature Verification Failure

I also updated issue #6988 with this information, and added the following note about documentation in master:

The updated documentation is in this template file and should soon be available also at https://www.openssl.org/docs/manmaster/man1/openssl-pkeyutl.html

Publication of the updated documentation is depending on fixing https://github.com/openssl/tools/issues/66 for which the PR awaiting OMC approval is at https://github.com/openssl/web/pull/175 (ping @mattcaswell and/or @paulidale to have a look at it).

Sidenote for @rajatdiptabiswas :
I noticed you opened your PR using rajatdiptabiswas:OpenSSL_1_1_1-stable as the source branch: there is nothing wrong with it, I just thought that for your future contributions it might be beneficial to mention that kind of git workflow that I (and other OpenSSL developers) normally use.
The TL;DR version is: create a separate feature branch to work on fixes, so that you can have individual branches for concurrent PRs, while keeping your OpenSSL_1_1_1-stable and master in sync with upstream.
As an example, if we wanted to add the fabulous foo feature to master, I would create a branch like this:
λ ~/repos/openssl/ master # I renamed my remotes to avoid confusion
λ ~/repos/openssl/ master git remote -v
myGitHub	git@github.com:romen/openssl.git (fetch)
myGitHub	git@github.com:romen/openssl.git (push)
upstream	git@github.com:openssl/openssl.git (fetch)
upstream	git@github.com:openssl/openssl.git (push)
λ ~/repos/openssl/ master # Let's make sure we got the latest changes from
λ ~/repos/openssl/ master # upstream.
λ ~/repos/openssl/ master #
λ ~/repos/openssl/ master # If your local `master` branch is set to track
λ ~/repos/openssl/ master # `upstream/master`, you can of course use
λ ~/repos/openssl/ master # `git pull` instead, to also update the checked
λ ~/repos/openssl/ master # out work tree of your local repository.
λ ~/repos/openssl/ master git fetch upstream
λ ~/repos/openssl/ master # Let's create a feature branch for a new feature
λ ~/repos/openssl/ master git checkout -b add_fabulous_foo upstream/master
Branch 'add_fabulous_foo' set up to track remote branch 'master' from 'upstream'.
Switched to a new branch 'add_fabulous_foo'
λ ~/repos/openssl/ add_fabulous_foo # Change stuff and commit it
λ ~/repos/openssl/ add_fabulous_foo vim CHANGES.md
λ ~/repos/openssl/ add_fabulous_foo* git add CHANGES.md
λ ~/repos/openssl/ add_fabulous_foo* git commit -m "Add CHANGES note about fabulous foo"
[add_fabulous_foo d69d27c599] Add CHANGES note about fabulous foo
 1 file changed, 4 insertions(+)
λ ~/repos/openssl/ add_fabulous_foo # Push the feature branch to my github fork
λ ~/repos/openssl/ add_fabulous_foo # from which I can then open a PR.
λ ~/repos/openssl/ add_fabulous_foo git push myGitHub
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 381 bytes | 381.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote:
remote: Create a pull request for 'add_fabulous_foo' on GitHub by visiting:
remote:      https://github.com/romen/openssl/pull/new/add_fabulous_foo
remote:
To github.com:romen/openssl.git
 * [new branch]            add_fabulous_foo -> add_fabulous_foo

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Thanks @romen for all the information.
I'll need to look into a few of the things you mentioned. git worktree seems amazing!
Furthermore, you've explained your workflow in a really detailed way. I loved it.
Thanks once again!

Perhaps @romen document should end up in the HACKING document (which maybe gets converted to markdown?)

Perhaps @romen document should end up in the HACKING document (which maybe gets converted to markdown?)

I think @mspncp was already working on something, better written and with more git insights and links to documentation. The stuff above is just a quickly written thing that pales in comparison with what he was planning.
There was discussion about moving this kind of hacking tips into the github wiki of the project, but I bet other things had to take priority!

Yeah, mspncp:git :: levitt::perl :: appro:perlasm :)

Well, @richsalz lately I have seen PRs where you contended @levitte his perl throne 😂

"If nominated I will not run.  If elected I will not serve."

@rajatdiptabiswas I was merging this and I noticed that you did not use your full name in the author field of the commit.
Would it be ok with you if I were to manually change this to Rajat Dipta Biswas <sameemailasbefore>?

You probably know this, but you can change your author string either globally for all your local git repos:
git config --global user.name "Dr. Henry Jekyll"
git config --global user.email<EMAIL_ADDRESS>
or locally for some specific repository (local trumps global):
git config user.name "Dr. Henry Jekyll"
git config user.email<EMAIL_ADDRESS>

Would it be ok with you if I were to manually change this to Rajat Dipta Biswas <sameemailasbefore>?

Sure. Go ahead!

Merged to 1.1.1 with 1632a6854cc594901018f9490426b26e893aae43
Thanks again @rajatdiptabiswas and congratulations on your first successfully merged PR!
I look forward to your future involvement in the project!
Thanks to all the reviewers as well!


Improving buzzwords

Throwing out quantum part. I think it does not add anything to it and sounds more like pseudo science buzzword. I do not think this is realistic threat model, but you should really define better than what means this quantum part if you really want this.
Changed "mesh network" to "overlay mesh network" because here you are not building a physical network (like with wireless links). Or you could use "mesh network topology" instead as well.

Ah, sadly no more time. I was just passing by.


service account

Is it possible to log with a service account instead of a user account?

I believe so, if that service account has a password.


[Java] JDK 22 Support

Describe the enhancement requested
Verify JDK 22 and enable it in CI jobs.
Component(s)
Java

We need to wait for the Eclipse Temurin 22 release and then for the maven/temurin docker release before we can add to CI.

I can take a look at this.

Here is the link to the maven docker registry: https://hub.docker.com/_/maven
It will probably take a week or two before the container is available.

take

For tracking purposes https://github.com/adoptium/temurin/issues/35

Hey @vibhatha , I went ahead and created the PR!

Issue resolved by pull request 41038
https://github.com/apache/arrow/pull/41038

Hey @vibhatha , I went ahead and created the PR!

Thanks Dane, it could have taken me a little longer. Apologies I couldn't review this PR before it got merged. I reviewed it later, looks good to me.


Refactor jupyterhub and add Makefile, gitignore

What is this PR for:
Refactors the jupyterhub module part out of the modules/ directory. This way, user can separately install jupyterhub if they already have a cluster running. Added instructions in the README.
Also added a Makefile that can be used but I would still consider it WIP.
Added a gitignore file to ignore the terraform state files.

I will go through the jupyter yaml and set some of the values to the <user-input-here> style.


Fail CI if cargo lockfile is not up-to-date

This should fail the CI if the Cargo.lock is not up-to-date.
This means the CI run for this should now fail, I will rebase this PR after #15 is merged to make CI green then.

Awesome, CI fails as expected :tada:

And now after the rebase it succeeds as expected :tada:
I am satisfied! :laughing:


Visual Studio .NET 2015 can't open migrated project

I've an ASP.NET Core project and I've successfully migrated it using "dotnet migrate". The problem is VS.NET 2015 can't open it. I'm trying to add it to an existing project but getting this error:
The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBUild 2003 format, please add xmlsn="http://schemas.microsoft.com/developer/msbuild2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.
I've checked the MSBuild repository but there aren't any installers, only source code.
What should I do?
I'm using VS.NET 2015 Update 3
dotnet --info:

.NET Command Line Tools (1.0.0-rc4-004771)

Product Information:
 Version:            1.0.0-rc4-004771
 Commit SHA-1 hash:  d881d45b75

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\1.0.0-rc4-004771

You can only open migrated projects in Visual Studio 2017. You can download a free version here: https://www.visualstudio.com/vs/visual-studio-2017-rc/.

@davkean : Does this mean that VS.NET 2015 won't be supported? Will VS.NET 2017+ be required for the new format?

Yes, that is correct.


Analyzer Feedback from IntelliJ - Nested List

When I write nested list like List<List<String>> nested;, the analyzer seems stop responding. The List word get red underlined saying "List isn't a type", and dart app shows high power usage on Task Manager. It seems doing infinite loop, my CPU fan goes buzzing.
Am I the only one who has this?
I can't write any nested list.
Version information

IDEA AI-201.87<IP_ADDRESS>58069
2.10.2
AI-201.87<IP_ADDRESS>58069, JRE 1.8.0_242-release-1644-b01x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 1920x1080

@mu10 That is pretty wild behavior. Thanks for the report. Does this happen even in an otherwise empty file?

I saw another report recently that was similar. IIRC it was about code completing in a case like A<B<^>>. It's possible that they might have a common root cause. I haven't looked into the other issue, so I have no additional information.

Finally got respond.

@mu10 That is pretty wild behavior. Thanks for the report. Does this happen even in an otherwise empty file?

Yes, it happens even on a new Flutter project. Every time I wrote nested list, lint just stop working (I still can write, but all text are white -the first List word are red underlined) and then cpu buzzing, and I have to close it.
Anyway, I've been working with Android Studio for years, but this thing makes me have to try VSCode. The performance for Flutter project in it is staggering, it's way way way feels better and faster. Somehow this misfortune makes me really happy, I highly recommended doing Flutter project on VSCode. Though, I still wants this get fixed.

Looks like https://github.com/dart-lang/sdk/issues/43572 as well.

#43572 has been closed; I'm closing this for now; please let us know if this is encountered again.


Fix Hashids version in class comment. Small fixes in indentation.

Small fixes in indentation and typos. No code changed.

This change is

Added a fix for issue #20. https://github.com/jiecao-fm/hashids-java/pull/27/files#diff-30525bb2f8114cac47f123e1b34b5e32R299
Added a guard against hashBreakdown, the same way the javascript implementation.

:+1:

Comments from Reviewable

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


npm install failling on create next app and has something to do with bcrypt

So, I tried to do the first command on the guide that creates the project and although the directory was created it gives this error when it tries to do npm install
npm install
npm ERR! code 7
npm ERR! path /home/xaxa/code/nextjs-dashboard/node_modules/bcrypt
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build
my node version: v18.18.0
my npm version: 9.8.1

Hey @ti-deart, this error means npm is encountering problems while trying to install bcrypt. It may be a compatibility issue with bcrypt and your environment. You can try uninstalling bcrypt and using bcryptjs instead.
For bugs or issues, please also see the bcrypt repo: https://github.com/kelektiv/node.bcrypt.js


Problem flashing system image to i9100

Hello,
I run into issue with flashing system image (to the FACTORYFS partition) generated in postmarketOS project -> https://github.com/postmarketOS/pmbootstrap/issues/422
Can I please ask you if you could help me identify where the problem could be?
I will be happy to provide any information or test anything necessary.
Thank you

Please provide some information - Heimdall version, command line output, your OS etx.

@Benjamin-Dobell Hello,
I am running up-to-date amd64 Debian GNU/Linux

# heimdall flash --FACTORYFS samsung-i9100.img --verbose
Heimdall v1.4.1

Copyright (c) 2010-2014 Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

interface[0].altsetting[0]: num endpoints = 1
   Class.SubClass.Protocol: 02.02.01
       endpoint[0].address: 83
           max packet size: 0010
          polling interval: 09

interface[1].altsetting[0]: num endpoints = 2
   Class.SubClass.Protocol: 0A.00.00
       endpoint[0].address: 81
           max packet size: 0200
          polling interval: 00
       endpoint[1].address: 02
           max packet size: 0200
          polling interval: 00
Claiming interface...
Setting up interface...

Initialising protocol...
Protocol initialisation successful.

Beginning session...

Some devices may take up to 2 minutes to respond.
Please be patient!

Session begun.

Downloading device's PIT file...
PIT file download successful.

Uploading FACTORYFS
0%
1%

2%

3%

4%

5%

6%

7%

8%

9%
ERROR: Failed to unpack received packet.

ERROR: Failed to confirm end of file transfer sequence!
ERROR: FACTORYFS upload failed!

Ending session...
Rebooting device...
Releasing device interface...

I would like to ask if there is a possibility that there is some problem with the .img file itself and the device rejects it. As suggested in the comment https://github.com/Benjamin-Dobell/Heimdall/issues/191#issuecomment-317183924

Closing this as there exists working description how to install on i9100 in wiki - https://wiki.postmarketos.org/wiki/Samsung_Galaxy_SII_(samsung-i9100)#Step_by_step_guide_for_Flashing_to_device_memory

Sorry, I accidentally closed this instead of https://github.com/postmarketOS/pmbootstrap/issues/422

I mean i can flash the kernel with heimdal but i can't flash the data img with heimdal.


Test Section.isNumbered to ensure expected behaviour

Kind of change

[ ] Bug fix
[ ] New non-breaking feature
[ ] New breaking feature
[x] Documentation update
[ ] Build improvement

Description
What is the goal of this pull request?
Mainly provide some closure to issue #1122.
How does it achieve that?
Test Section.isNumbered to ensure expected behavior

Core 'numbered' property is not always boolean. In those cases, the boolean can be coerced from non-null value.
See https://github.com/asciidoctor/asciidoctorj/issues/1122
Minor improvements to RubyObjectWrapper.

Are there any alternative ways to implement this?
We could make further tests and check if the property has the ':chapter' object. But the current implementation already meets the tests, so I see no point in complicating it.
Also, it does not tests doctype manpage and inline since in those the sections are not taken into consideration or cannot be numbered (manpage).
For reference, I left a comment pointing to the issue in the code.
Are there any implications of this pull request? Anything a user must know?
Includes a couple of minor improvements to RubyObjectWrapper but all the tests pass :ok:
Issue
If this PR fixes an open issue, please add a line of the form:
Closes #1122
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc
I don't think is worth mentioning.

Thank you!


Build a minimal PyPI based Docker image for workqueue

Impact of the new feature
Overhaul the Dockerfile for Workqueue to be as small as possible. Container will use PyPI packages instead of the current RPM based deployment method.
Is your feature request related to a problem? Please describe.
Workqueue container is currently very large, which is not ideal for k8s.
Describe the solution you'd like
Build a minimal Docker image using Workqueue from PyPI
Describe alternatives you've considered
NA
Additional context
NA

I provided initial Dockerfile to build docker image and it was successfully build, see details in https://github.com/dmwm/WMCore/issues/11310. The individual dockerfiles can be found over here https://github.com/dmwm/CMSKubernetes/tree/master/docker/pypi
The workqueue Dockerfile and run.sh are avaiable.

The new pypi based image is available:

docker files: https://github.com/dmwm/CMSKubernetes/tree/master/docker/pypi
docker images: https://registry.cern.ch/harbor/projects/1771/repositories/workqueue

@amaltaro , should we close the ticket?

yes, let's close this ticket.


[defect] codegen emitter hang when handle customized scalar type

When define a scalar type scalar uuid extends Azure.Core.uuid,  codegen emitter hang.

resolved after migrate tcgc.


Problem with backlinks in compiling wiki

I get the following stacktrace when running lettersmith_site lettersmith.yaml (generated via lettersmith_scaffold . --type wiki)
I'm running Python 3.5.2 on Ubuntu 16.04
Traceback (most recent call last):
  File "/usr/local/bin/lettersmith_site", line 9, in <module>
    load_entry_point('lettersmith', 'console_scripts', 'lettersmith_site')()
  File "/var/www/html/lettersmith_py/lettersmith/bin/site.py", line 155, in main
    stats = Docs.write(docs, output_path=output_path)
  File "/var/www/html/lettersmith_py/lettersmith/docs.py", line 23, in write
    for doc in docs:
  File "/var/www/html/lettersmith_py/lettersmith/bin/site.py", line 153, in <genexpr>
    docs = (render_jinja(doc) for doc in docs)
  File "/var/www/html/lettersmith_py/lettersmith/jinjatools.py", line 134, in render_doc
    rendered = template.render({"doc": doc})
  File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.5/dist-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "theme/wiki/single.html", line 1, in top-level template code
    {% extends "_layout.html" %}
  File "theme/wiki/_layout.html", line 1, in top-level template code
    {% extends "_base.html" %}
  File "theme/wiki/_base.html", line 25, in top-level template code
    {% block body %}{% endblock %}
  File "theme/wiki/_layout.html", line 6, in block "body"
    {% block main %}
  File "theme/wiki/single.html", line 11, in block "main"
    {% if index.backlink[doc.id_path] | len %}
  File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 411, in getitem
    return obj[argument]
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'backlink'

Thanks! The structure of indexes recently changed, and I missed updating the theme to reflect that. Fixed!


added capping also has various bug fixes

does not seem there is any significant change to performance

@eriktaubeneck, @benjaminsavage  I added code for capping to both versions of the code.  Plus some other fixes from last week to be merged.

Also there is a strange bug I haven't been able to find yet in ipae2e.mpc that when you run it on ipatestinput2.py  it works when the input has size less than or equal to 2^6 but not for 2^7 or larger (gives all zeros).  I'm not sure why yet.  vectorized.mpc handles this test case for any input size as you'd expect.  Maybe you can keep an eye out for what might be causing as you review.

@bmcase, this should not be opened against the other repo, probably manually given the complexity of the move.


Cache describegraph RPC response

Cache is cleared upon node and channel update events, similar to the queryRoutes cache in the router.
Address issue #1232
When debuglevel is set to debug, LND prints the following message when the describegraph request is served from cache:
2018-06-12 11:56:14.972 [DBG] RPCS: [describegraph] cached response returned.
The following tests where performed on simnet, by running lncli describegraphchecking that response is as expected and the same before/after cache and examining the debug printing on the lnd server.

Single node:
Charlie not connected to any node:
First describegraph not cached.
Second describegraph cached.

Two nodes connected by a channel
Alice and Bob are peers and have a channel between them:
First describegraph not cached.
Second describegraph cached.

Node and Channel change
Charlie is peered with Bob. Charlie learns the network from Bob. Cache@Charlie is reset correctly. Cache@Bob is not reset, as peer relations do not change the graph.

Alternatively, we can just compare the count of vertexes+edges, though it wouldn't be as precise. It'd be much, much easier to implement though!

Hi Olaoluwa,
I implemented the cache according to your guidelines in the issue
https://github.com/lightningnetwork/lnd/issues/1232 . My understanding was
to use the same approach and triggers for invalidation as the queryRoutes
cache.
The cache holds the RPC response, i.e. after marshalling, but before the
gRPC serialization.
The cache is held in the channeldb package (and not in the rpcserver.go
file for example) to avoid circular package dependency, as the invalidation
is called from the router.
I'll need further guidelines to fix or redo the cache per your change
request.
What is cached: Should the response after gRPC serialization be cached? If
yes, does LND have other requests cached in this way? This would help speed
the implementation.
What invalidates the cache: Assuming we use the sha2 approach, is the sha2
calculated upon each RPC request, and then compared to the sha2 of the
cached response? If yes, per my understanding, there is no need to
invalidate the cache from the router, am I correct?
Comparing number of vertexes + edges would not provide a reliable
invalidation trigger in my opinion.
I think what wasn't clear is what part of the process we want to speed up;
Is it the gRPC serialization? Is it the process of running on all vertexes
and edges upon each request?
Best,
Ron
On Tue, Jun 12, 2018 at 8:33 PM, Olaoluwa Osuntokun <
<EMAIL_ADDRESS>wrote:

Alternatively, we can just compare the count of vertexes+edges, though it
wouldn't be as precise. It'd be much, much easier to implement though!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lightningnetwork/lnd/pull/1377#issuecomment-396776583,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABdHuldAiCO0sHairx2H_pYwglDpUD50ks5t8F3ngaJpZM4UkZsY
.

Why was the PR closed? It's still eligible for inclusion!

What is cached: Should the response after gRPC serialization be cached? If
yes, does LND have other requests cached in this way? This would help speed
the implementation.

So we want to cache the gRPC protos response itself. We generate a ton of garbage atm when we map the router response to the proto response. Most of the garbage is due to hex encoding of channel points, and node pubkeys.

What invalidates the cache

I think the simplest method would be invalidating the cache each time a new block is mined. Only when channels are opened or closed due we need to update the cache, thus we can safely trigger on a a new block (compare height+hash).

I think what wasn't clear is what part of the process we want to speed up;

The main goal is to reduce the number of garbage generated via repeated calls of the RPC, it leads to memory bloat as is.


webpack-index-html-plugin not processed stylesheet

webpack-index-html-plugin don't process stylesheet link via any loaders.

    <link href="../style/index.css" type="text/css" rel="stylesheet">

Hi from HTML bundle!!!

webpack config:
const path = require('path');
const WebpackIndexHTMLPlugin = require('@open-wc/webpack-index-html-plugin');

const devMode = process.env.NODE_ENV !== 'production';

module.exports = {
    mode: devMode ? "development" : "production",
    devServer: {
        contentBase: path.join(__dirname, './dist'),
        compress: true,
        port: 9000
    },
    entry: path.resolve(__dirname, './src/views/index.html'),

    output: {
        filename: '[name].[chunkhash].js',
        chunkFilename: '[name].[chunkhash].js',
        path: path.resolve(__dirname, 'dist'),
    },
    module:{
        rules:[
            {
                test: /\.css$/,
                use: [
                    "css-loader",
                ]
            },
        ]
    },//module

    plugins: [new WebpackIndexHTMLPlugin({
        minify:false,
    })],
};

This isn't a goal for webpack-index-html-plugin to support, I recommend using webpack-html-plugin for that.

Wait a minute, html as entry point it's not only js script links, it also, style, image, etc. And without this features loader not usable at all.
Also, webpack-html-plugin is not a entry point!
We need more complex solution from webpack-index-html-plugin .

To elaborate more on this topic, I agree that webpack-html-plugin doesn't support using html as entrypoint. That's why we created webpack-index-html-plugin.
The scope of the  open-wc project has been growing quite a bit lately, and we need to start choosing what we do and don't want to support. Because we generally recommend using rollup, most of our energy is spent there. We are currently creating a new html plugin for rollup which is more modular.
We will be reducing our support for webpack to a minimum, just what's needed to work with web components. For HTML we will change webpack-index-html-plugin to only handle using a HTML file as input. For outputting HTML we will recommend using webpack-html-plugin.
For now I'll close this issue, as there is nothing actionable for us right now.


Empty transient tables

I'm noticing some undesirable behavior for the incremental population of the transient tables.
Let's assume fct_dbt__test_executions doesn't get populated on a dbt run dbt_artifacts run, but gets created as a table with 0 records. Any subsequent run with how the incremental filter is setup like below is blocked from populating the table (which can easily happen if we only do model runs, without tests):
where artifact_generated_at > (select max(artifact_generated_at) from {{ this }})

The above will always be false since a null will be returned from the transient table. A fix may be as simple as adding another condition to is_incremental like below:
    {% if is_incremental() and var_row_count > 0 %}
    -- this filter will only be applied on an incremental run
    where artifact_generated_at > (select max(artifact_generated_at) from {{ this }})
    {% endif %}

Where var_row_count is just a count of {{ this }}. Might be overthinking this.. but it's strange when the incrementally populated table is empty while the view counterpart returns the current test executions.
Any suggestions or insights?

We are seeing the same issue and just arrived at this root cause today. We were thinking along the same lines of adjusting the incremental condition. Has that worked for y'all?

@davidshapir I haven't had a chance to test this but am hoping to later this week - will let you know!

@timothyjang123 - thanks! Going to give it a go now in our project and can post back here as well. Certainly a bit mind numbing to see our views populate while the tables do not.

@timothyjang123 - I'm @davidshapir's coworker.  I'm curious if making the template dynamic with var_row_count might suffer from the "parse time" vs "run time" issue explained in this dbt article.  I was wondering if this could be done in SQL with something like:
where artifact_generated_at > (select max(artifact_generated_at, '1970-01-01 00:00:00 +0000') from {{ this }})

Note: this code is 100% untested, but I will try to look into this today.  :)

Hmm I think I see what you're saying - I haven't seen that article before and I'd have to test out the differences between dbt compile/run to see how the issue would work with the change mentioned. From what I read, I think it might have unexpected behavior (strange logs) but during execution it could work as expected - partly because the dependent view is just a saved query so it wouldn't have that same ref() issue mentioned in the article.
where artifact_generated_at > (select ifnull(max(artifact_generated_at), '1970-01-01 00:00:00 +0000') from {{ this }})
Regardless, I think the above is more precise for what we're trying to do - thanks @tommyh! FYI, I modified the above a bit for my own use in Snowflake.

@timothyjang123 - the edgecase to test with var_row_count approach would be: when the fct_dbt__test_executions does have rows in it, is the var_row_count variable greater than 0?  Because, if I'm reading that blog article correctly which I totally might not be, then var_row_count will be 0 during "parse" time when the model gets compiled.
ifnull - yes, that looks great!


Add app-protocol for all services

Resolves #427

@johgoe if you have time, please take a look at this PR!


Update assumes "set to None"

@louis030195
Whenever you update assistant all fields not passed are set to None or empty arrays (defaults).
assistant = openai.beta.assistants.create(
    instructions="You are a weather bot. Use the provided functions to answer questions.",
    model="gpt-3.5-turbo-1106",
    name="Weather Bot",
    metadata={
        "asd": "1",
    }
)
new_metadata = {**assistant.metadata, "sad": "123"}
updated_assistant = openai.beta.assistants.update(assistant_id=assistant.id,model="gpt-3.5-turbo-1106", metadata=new_metadata)

openai.beta.assistants.retrieve(assistant_id=assistant.id)

notice how instructions is now set to None
Assistant(id='a1f35333-95e6-4632-91cb-8a777e4f2920', created_at=1704597945, description=None, file_ids=[], instructions=None, metadata={'sad': '123', 'asd': '1'}, model='gpt-3.5-turbo-1106', name=None, object='', tools=[])

I tried to resolve it but I'm a newbie on Rust, here is what I tried:
https://chat.openai.com/share/64fe31d2-6078-4759-9982-be3924e50bba

thanks for noticing this!
indeed the problem is that if props are none it will none them in the db, here's how i prompted a solution:

let row = sqlx::query!(
    r#"
    UPDATE assistants
    SET instructions = COALESCE($2, instructions),
        name = COALESCE($3, name),
        tools = COALESCE($4, tools),
        model = COALESCE($5, model),
        file_ids = COALESCE($7, file_ids)
    WHERE id::text = $1 AND user_id::text = $6
    RETURNING *
    "#,
    assistant_id,
    assistant.inner.instructions,
    assistant.inner.name,
    &tools_json,
    assistant.inner.model,
    assistant.user_id,
    &assistant.inner.file_ids,
)

should work i guess?
would love a PR!
with a unit test that do:

create assistant with instructions etc
update assistant with just metadata for example and check if the properties are gone or not


Unable to download YouTube IDs, possibly other errors

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2019.12.25
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--get-id', u'--ignore-errors', u'--skip-download', u'--playlist-reverse', u'--verbose', u'https://www.youtube.com/user/DSPGaming/videos']
[debug] Encodings: locale UTF-8, fs UTF-8, out None, pref UTF-8
[debug] youtube-dl version 2019.12.25
[debug] Python version 2.7.17 (CPython) - Linux-5.0.0-37-generic-x86_64-with-LinuxMint-19.3-tricia
[debug] exe versions: ffmpeg 3.4.6, ffprobe 3.4.6
[debug] Proxy map: {}
ERROR: Unable to download JSON metadata: [Errno 104] Connection reset by peer (caused by error(104, 'Connection reset by peer')); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 627, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2237, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python2.7/dist-packages/youtube_dl/utils.py", line 2728, in https_open
    req, **kwargs)
  File "/usr/lib/python2.7/urllib2.py", line 1201, in do_open
    r = h.getresponse(buffering=True)
  File "/usr/lib/python2.7/httplib.py", line 1148, in getresponse
    response.begin()
  File "/usr/lib/python2.7/httplib.py", line 448, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python2.7/httplib.py", line 404, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "/usr/lib/python2.7/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
  File "/usr/lib/python2.7/ssl.py", line 754, in recv
    return self.read(buflen)
  File "/usr/lib/python2.7/ssl.py", line 641, in read
    v = self._sslobj.read(len)

Description

I'm receiving this error when attempting to download the IDs from a YouTube channel. Unable to download JSON metadata: [Errno 104] Connection reset by peer (caused by error(104, 'Connection reset by peer')). See the verbose log for more info. Using the latest version of youtube-dl.

Network issue on your side.

Well, I'm having no network issues using youtube-dl on my Android phone with Termux. Nor am I having issues using the internet with anything else. So I think that's an over-simplistic diagnosis.


Ubuntu on Windows (Httpie plugins not working)

I have installed ubuntu on windows and using "ConEmu" to run my httpie commands
When i use basic authentication command which is inbuilt with httpie, it works just fine
When i try working with any of the plugins for authentication like jwt or oauth, none of the plugins work in my local. it complains about below issue. I have installed the plugin properly
qNBueDAR1k2CIDqdoJEkOmyujI19CIcV1FL029voA" http://localhost:8080/hello -h
usage: http [--json] [--form] [--pretty {all,colors,format,none}]
[--style STYLE] [--print WHAT] [--headers] [--body] [--verbose]
[--all] [--history-print WHAT] [--stream] [--output FILE]
[--download] [--continue]
[--session SESSION_NAME_OR_PATH | --session-read-only SESSION_NAME_OR_PATH]
[--auth USER[:PASS]] [--auth-type {basic,digest}]
[--proxy PROTOCOL:PROXY_URL] [--follow]
[--max-redirects MAX_REDIRECTS] [--timeout SECONDS]
[--check-status] [--verify VERIFY]
[--ssl {ssl2.3,tls1,tls1.1,tls1.2}] [--cert CERT]
[--cert-key CERT_KEY] [--ignore-stdin] [--help] [--version]
[--traceback] [--default-scheme DEFAULT_SCHEME] [--debug]
[METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]]
http: error: argument --auth-type/-A: invalid choice: 'jwt' (choose from 'basic', 'digest')

I resolved this issue. I needed to use Python version 3 and command like "sudo pip3 install -U httpie-jwt-auth"
Earlier i was using python 2.6 i think.


Fix static timing condition for seq group comp.

The first group to be executed would generate a guard condition
one[go] = fsm.out <= n ? 1'd1;

If it takes n cycle. This is clearly wrong. This commit makes it generate fsm.out < n.

looks good to me! but I'm wondering why this wasn't causing any correctness problems. we should add a test case that checks for this

Turns out that #264 was also caused by this. I might have misdiagnosed the problem in that issue. Thanks to @EclecticGriffin for asking the right question about a weird signal that caused us to find this problem.

Merge when green.


663 calculate diff between two graphs and draw the graph

#663 Creates a new city that reads 2 GXL files, calculates the difference and visualizes the graph. It also annotates the nodes with beams based on whether they have been added, deleted, or changed. Furthermore, it calculates the difference between the metrics and incorporates them as a new metric in the corresponding node.

Please dont mind the request. I missclicked it by accident


Poor support for extra headers in API calls

There is no first-class support for including custom headers in API calls (e.g. see C# impl customHeaders param).  While this can be worked around for some APIs by calling preparer/sender/responder explicitly there is no way to do this for LRO polling operations as we don't expose a preparer for the LRO poll request.  Unclear how important this is as nobody has complained about it but it does mean that we can't implement all of the Autorest tests for the generator.

Using a custom RequestInspector works better than preparer/sender/responder
	client.RequestInspector = func(p autorest.Preparer) autorest.Preparer {
		return autorest.PreparerFunc(func(r *http.Request) (*http.Request, error) {
			r, err := p.Prepare(r)
			if err != nil {
				return r, err
			}
			r.Header.Add("customHeader", "value")
			return r, nil
		})
	}

This issue should have been resolved, closing


Query string URL paths ignored

Describe the bug
I'm trying to crawl an old WordPress site where every page/post is reference via query param.  I tried disabling dynamicSampling and even manually specifying the URLs but they don't come up in the report.
  urls: [
    '/',
    '/?page_id=1193',
    '/?page_id=43',
    '/?page_id=856',
  ],

=> Unlighthouse has finished scanning .... 1 routes in 15s.
Reproduction
No response
System / Nuxt Info
No response

I can confirm this ?unintended? functionality. We have pages that load different assets and content based on the ?id=num values. It is important to be able to use query strings with the ever growing nature if single page reactive sites.

Hi, thanks for the ping on this issue, i've pushed up a fix in v0.14.0.


feat: add governance service to sdk

:tada: This PR is included in version 1.19.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: