item-value-key vs. item-view-value-key

I made a change so I could show a text in the list and a different in the input after the item had been selected, in ngModelController.$render I changed from itemViewValueKey to itemValueKey, so pretty simple and no hard for other cases.
Would be nice to have an option so I could use different values in a future version.
Thanks for the ion-autocomplete. very nice!

Hi @rodrigobnn,
can you maybe elaborate more on your use case and what exactly you want to achieve? A running example in a codepen would be nice or at least some snippets of the object and how you defined the ion-autocomplete directive such that I am able to help you out.
Thanks and regards,
Guy

Hi @guylabs
What I wanted to achieve is have 3 different values in 3 parts of my code. My object is like this:
{
"id": 1,
"name": "Java",
"path": "/home/Java"
}
I save the whole object in my "ng-model" directive, when I type something to filter the option label should show "/home/Java" but once I click it I want to see in the original input field as the result of my selection "Java". The library uses "item-view-value-key" to define the label in the list and what to show in the input after select. What I suggested is to use the value in "item-value-key" to define what will be showed in the input after select the option with "/home/Java".
<input ion-autocomplete                                 ...                                ng-model="object"                                                       item-value-key="name"                                item-view-value-key="path"                                ...                               />

Hi @rodrigobnn,
ok so you mean that you want to store the value Java but displaying /home/Java in the list when you filter and when you then select the /home/Java item it should show Java again in the input field right?
Well this is not supported currently and I do not see the added value of it. Imagine that the user selects value A and then it converts it to another value when selected. This can confuse the user as the value is not the same as the user selected initially.
I think the problem would be solved on your side when issue #28 is implemented as then you can override the render function and have your custom logic there.
I hope this is ok for you and I try to add this as soon as possible.
Thanks and regards,
Guy

Hi @rodrigobnn,
I will close the issue due to inactivity. Please reopen it if there is still an issue.
Thanks and regards,
Guy


Improve range install reliability

While trying this script, each device would connect and then say "error: device offline" per each attempt to install the script.
sleep 0.1 did the trick and shouldn't greatly impact others.

Interesting, from what I've observed the connect call should block until connected. Then again there are weird differences between versions. Just thinking out loud here but while this may solve it for you, a better solution might be actually testing that the connection succeeded before proceeding if we cannot rely on the call blocking.

To maximize reliability and not be dependent on users identifying if some of them fail, it makes sense to implement a better solution. Just depends on if you want to put in the work to try and improve reliability even further from what this PR does.
If someone is using ADB over WAN or wifi, I wonder if the problem would be more prominent.
All local and wired A95XF1 ATVs.
Server:
Ubuntu 20.04
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5ubuntu2
Installed as /usr/lib/android-sdk/platform-tools/adb


Remove bootstrap from peerDependencies

angular-ui-bootstrapdoesn't really depend on bootstrap so it shouldn't require it.
In our case, we are using bootstrap-sass instead of bootstrap.

This won't take into effect until the next release.
https://github.com/angular-ui/bootstrap-bower/commit/febda42fce40e6692c5186937c5701a2322c083a


BUG :    Firefox v1.27.0 is buggy , popup is not displaying correctly

BUG :    Firefox v1.27.0 is buggy , popup is not displaying correctly
The popup is created but not visible on the screen. It happened already in the past on Firefox and is back again.
It is because the windows size calculation is wrong on the extension while using Firefox so the popup get stuck on the background, but it is impossible to interact with it
On chrome, the window calculation seems correct because I can use the popup

The Temple Wallet extension for Firefox uses default settings to calculate the pop-up window size. If you use custom window size settings, this may cause display issues. Additionally, Firefox may adjust window size parameters based on your operating system or screen resolution.
Could you please provide more details about your device?
•	Operating System (e.g., Windows, macOS)
•	Screen resolution
We also recommend updating your extension to the latest version 1.28.0.

gotcha, it is an issue with multiple screens

I have window 11 OS

screen 1 is my laptop : 2560 x 1600
screen 2 or 3 are external displays : 1920 x 1080

The issue only occurs on external displays, not on the principal screen , my laptop


Comment Modals not being consistent

Plenty of problems with comment modals, should be a comment with an enter button and actual "enter" functionality (i.e can press enter or press the button to confirm). FSA is closest to being correct, but all of them need to be corrected.

FSAs: Need return icon
PDAs: Completely jank
TMs: Reuse modal from transitions (completely jank)

TMs: Caused by this if statement which makes it always return the transition modal
https://github.com/automatarium/automatarium/blob/56feb729b3b8a33f6d48101cc0480f8849322dc9/frontend/src/components/InputDialogs/InputDialogs.js#L198
PDAs: There are if statements (in the else case of the statement linked before)  that check if the project is PDA and then adds PDA's extra lines
Fix looks like checking if (dialog.type === 'comment') before anything else and then returning a comment specific modal

I'll handle it 👍


Any plans to support aspect ratios different from 16:9?

Hi!
Do you plan to support other aspect ratios, like 4:3?
See example - a screenshot with original vimeo video (below) and truncated representation in plyr (above).
Thanks!

Hey - funny you should mention this. It's coming in v3 - which is getting closer every day. I've been spending more and more time on it.
For Vimeo it will be automatic as they expose API methods that mean I can grab the video dimensions and then calculate the ratio to set the frame and inner container to. YouTube I think forces 16:9 but I've added a config option anyway so this can be used if preferred.
I'll let you know when this is ready for testing.

Sounds great! Thank you @sampotts!
One question, how are you grabbing original video dimensions for vimeo?

Using their API methods...

cool, thank you!

Closing this one as I think it's fixed but feel free to re-open if not solved in v3 👍


Version of dependency myst-nb

Is it safe to increment the myst-nb version here to the latest one?

Installing it in development mode uninstalls the latest versions of your other packages as well.

Well just make a PR and see if the docs build on CircleCI 😁

@chrisjsewell cool. just wanted a go from you lol.

closes https://github.com/ExecutableBookProject/jupyter-cache/pull/45

closed in #46


Integration specs and fix n+1 problems Pull request

In this project, We created integration tests for all of the views used in your project. The following are the changes:

The N+1 problem is solved when fetching all posts and their comments for a user.
Used Capybara to write integration tests for each view in your project.

User index page
user show page
User post index page
Post show page

Note to reviewer

The data is generated using the seed.rb file
Kindly run rails db:seed && rails db:migrate for the development
While rails db:seed RAILS_ENV=test and rails db:migrate RAILS_ENV=test to enable you fetch the data.

This screenshots of your app's logs before n+1 problem fix

After n+1 problem fix

Thank you for approving our project! 😊


Raise error when using batches of different sizes with dispatch_batches=True

What does this PR do ?
This PR raise an error when the user tries to use batches of different sizes with dispatch_batches=True. This arg is set to True when using an IterableDataset.
Solves 26548. See this comment for more details.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Add zarr to requirements.txt

Zarr is only included as a testing or bundle dependency with napari. That means most users will not automatically have it installed. Since napari-s3zarr requires zarr, it should be listed here as a requirement.

Thanks!


It's very hard to find doc what I need. Very poor and not-organized document

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: b341204a-75e0-2439-f4fa-b62d2e64fee9
Version Independent ID: 82b48d34-c96d-6508-36fe-7bcb5870b52f
Content: Impersonate another user using the Web API (Microsoft Dataverse) - Power Apps
Content Source: powerapps-docs/developer/data-platform/webapi/impersonate-another-user-web-api.md
Service: powerapps
Sub-service: dataverse-developer
GitHub Login: @divka78
Microsoft Alias: dikamath

Thanks for your comment, @full-devfun. This issue has been assigned to the doc author for review.

@full-devfun
Thanks for your feedback.
Sorry to hear that this content isn't meeting your expectations.
Is your feedback about the Web API content in general or this specific topic?
Can you provide any specific items that you feel would help?

@full-devfun
I haven't heard back from you with any specific, actionable feedback. So closing this.


Initial type stuff

This is super half baked but wanted to get things started.
ExpressionValidator now just checks function names / params as well as illegal subqueries.
ExpressionResolver doesn't always return the right type (all functions are INTEGER for example) so that's TODO. Most of the other validators (like SelectOrValuesValidator just ignored the result of resolving an expression but in the future they will check against those too. (For example an ORDER_BY expression has to either be an int or a column name/alias).
The one test i've added shows whats handled now. Expressions do have a type associated with them, but its not always right.

lgtm i think. there's a lot here but nothing jumps out.


Fix fallthrough to the next plugin when suitable

Fixes #39
This patch disables fallthrough on all internal instances of the Kubernetes plugin and lets Kubernetai handle it instead.
Previously the last Kubernetes plugin instance would try to fallthrough and fail as no Next plugin instance was set.

CicleCI was complaining about missing entries on go.sum, so I executed go mod tidy and committed the changes.

@chrisohaver, the test is failing because there is no go.sum on https://github.com/coredns/ci

Someone already submitted a PR that creates go.sum on the repository, but it hasn't been merged: https://github.com/coredns/ci/pull/139

I've reverted 0bd9a58 as it wasn't needed.

@chrisohaver, I've implemented the tests.

I'm not able to reproduce the error. On my machine, the tests are passing. It looks like the tests on CI are trying to connect to the fake API servers that I've specified

Using the same command as the workflow also doesn't throw any error on my side.

I've rebased my branch and now I'm able to reproduce the problem. There was some dependency upgrade on master that is making the test fail. I'll work on it.

@t0rr3sp3dr0 I suspect it's due to a bug fixed in coredns/coredns#4492, which is not released yet.
I think we can ignore the failure for now.  It should pass once coredns 1.8.4 is released, and we bump the dependency here.


Mopidy-youtube configuration options meaning

Hello natumbri,
can you explain what each configuration options do? The only clear to me is search_results.
threads_max = 16
search_results = 15
playlist_max_videos = 20

If you want mopidy-youtube to autoplay related videos, set autoplay_enabled = true:
autoplay_enabled = true
If autoplay is enabled, other options are:
strict_autoplay = [true/false]
max_autoplay_length = [maximum length of track in seconds or None]
max_degrees_of_separation = [defaults to 3]

Hi @eziosoma - you are quite right; the documentation really does need to provide a bit more explanation.  I'll try to get to that shortly!
threads_max really sets how many parallel downloads of youtube happen at once.
if autoplay is enabled, and a youtube track is played and is the last track in the playlist, it will add another, hopefully related, track to the playlist - so it will continuously play music.  The other options relate to how that works.
As I said, I'll try to get the documentation right shortly, but hopefully that is enough to get you going for now.

Sorry @natumbri  I'm stil a little bit confused.

threads_max really sets how many parallel downloads of youtube happen at once.

Parallel download of what? Do you mean that the videos of youtupe are downloaded in parallel?

max_degrees_of_separation = [defaults to 3]

What are "degrees of separation"

Sorry @natumbri I'm stil a little bit confused.

threads_max really sets how many parallel downloads of youtube happen at once.

Parallel download of what? Do you mean that the videos of youtupe are downloaded in parallel?

The metadata for each video that is returned by a search needs to be retrieved separately, particularly the download link. These can be retrieved in separate threads, in parallel, in the background, so when it comes time to play the track, everything is ready.

max_degrees_of_separation = [defaults to 3]

What are "degrees of separation

This is for the autoplay function. It is a measure of how related the autoplayed tracks are to the original track that triggered autoplay. The higher the number, the further from the original the autoplayed goes.

Many thanks for the clarification Natumbri.
Regarding the degree of separation , is it a function provided by youtube?
I"m curious, how I can find more documentation regarding this subject?
Il Dom 26 Lug 2020, 00:13 natumbri<EMAIL_ADDRESS>ha scritto:

Sorry @natumbri https://github.com/natumbri I'm stil a little bit
confused.
threads_max really sets how many parallel downloads of youtube happen at
once.
Parallel download of what? Do you mean that the videos of youtupe are
downloaded in parallel?
The metadata for each video that is returned by a search needs to be
retrieved separately, particularly the download link. These can be
retrieved in separate threads, in parallel, in the background, so when it
comes time to play the track, everything is ready.
max_degrees_of_separation = [defaults to 3]
What are "degrees of separation
This is for the autoplay function. It is a measure of how related the
autoplayed tracks are to the original track that triggered autoplay. The
higher the number, the further from the original the autoplayed goes.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/natumbri/mopidy-youtube/issues/152#issuecomment-663911297,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7ODRMWIYUGTV6LWATKKMTR5NKHPANCNFSM4PBQLFPQ
.

Have a look at #139 where @Mohawi introduced the feature.
There is a function in the YouTube API that returns related videos - you can check that out on Google's development website - it's pretty well documented.
I've emulated that function for the people who don't enable the API, much in the same way that I've emulated the other API functions that are used.

That leads me to the question, what features do I get by enabling the API? Is it needed at all?

@rohieb I don't use the API.
When Google changes the way the YouTube site presents, the non-API version will stop working and maybe we'll all have to use the API. But, for now, the non-API versions work.
On the YouTube Music branch, the API version returns the number of tracks in an album much more quickly than the non-API version.


Automated Turrets

http://www.freeallegiance.org/forums/index.php?s=&showtopic=26049&view=findpost&p=97675 piqued my thought process.
I'm not familiar with the AI code, but having auto-turrets could be interesting.
I'd recommend making the ship have a "Auto-turret" flag so that only the ships with the flag would try to use the auto-turrets and you wouldn't have stupidly OP'd gunship swarms. Perhaps this could also be tied into the existing "Capship" flag so that only cap ships could have it - But I would prefer to have it as a separate flag for customization's sake. Adding a separate flag would be a core change, but ticket #77 is already going to change the cores.
Update: See also tickets #138, #139
Imported from trac ticket #137,  created by Andon on 07-13-2010 at 20:30, last modified: 02-24-2012 at 01:13

Needs discussion . . . .
Trac comment by fuzzylunkin1 on 07-19-2010 at 07:03


i18n please

The large amount of English is causing a little trouble for the players on my server. Can you consider adding multi-language support?

Hey, i was on vacation this last week an missed your issue - sorry for the delay!
I could add multi-language support for it but can only provide english and german from source. You would need to made a translation for your fav language your self

Thanks, also please write guidelines for writing custom language profiles. :D

Localization support is added now in the latest release 1.6.0. It defaults to english like before, but now you can switch between languages with /bmarker language <key> and you can create your own translations by coping an existing translation, renaming it and changing the values inside!
Currently, not all strings are translatable due to complicated implementation but i hope all needed one are added :)


Undefined method 'split' for Path

This code fails with Crystal 0.28.0 [639e4765f] (2019-04-17)
path = Path.new "/tmp/foo/bar"
Dir.mkdir_p path

Error in r.cr:2: instantiating 'Dir.class#mkdir_p(Path)'

Dir.mkdir_p path
^~~~~~~

in /usr/share/crystal/src/dir.cr:241: instantiating 'mkdir_p(Path, Int32)'

def self.mkdir_p(path, mode = 0o777)
  ^

  in /usr/share/crystal/src/dir.cr:244: undefined method 'split' for Path

components = path.split(File::SEPARATOR)

Dir isn't aware of Path yet. It seems only File is.
I wonder how can this be solved... imagine I want to define an API (a shard) that works with paths. Should I handle String | Path? Anyone will have to handle both of these things all the time? Maybe it's fine...

... Why using Dir in the first place? Keep using the Path object will be real nice, with methods like path.create_dir(all: true), with all to create all subdirectories.

@j8r I mean, it's probably a good idea, but the comment is confusing. It makes it look like path.create_dir is already a thing but it's not. So the only option for OP is to do Dir.mkdir_p(path.to_s)

What I've understood is the issue is mainly of creating a directory from a Path. I think @sudo-nice knows that Dir.mkdir_p works with String (thus with to_s), else he won't bother to do a Path.new from a String before.
I should be more explicit on the comment. about the proposed draft.

@asterite I think creating a Path should be almost transparent (understand: very lightweight), so that all methods that deals with file paths can only take a Path as input. And when you have a String you simply create a Path.new some_str and give it.
So instead of:
input = "foo/bar"
Dir.mkdir_p input

You'd do:
input = "foo/bar"
Dir.mkdir_p Path.new(input)

This way Dir can be properly typed (and can't throw unhelpful error messages like OP' one), and only has to deal with Path.

@bew this is exactly what I don't want, and why I don't like Path.
To create a directory you must Dir.create(Path.new("tmp")) or Path.new("tmp").create_dir which are the opposite of developer friendliness when compared to Dir.create("tmp").
@asterite an alternative is to go with duck typing and have methods taking a path be type-less and have methods explicitly call .to_s.

There is also FileUtils#mkdir and FileUtils#mkdir_p.
We can have:

Dir.create, which calls Crystal::System::Dir.create(path, mode)
Dir.delete, which calls Crystal::System::Dir.delete(path)

Then Path can have dir wrappers around them:

Path#create_dir(recursive: false)
Path#remove_dir(recursive: false)

Other Dir creation/deletion methods in Dir and FileUtils can be deprecated.

@j8r please no, File & Dir interacts with the OS, Path only represents a file path (with extra method to get information on that path, but without interactions with the OS).
Adding OS methods to Path will only make things more complex imo...
@ysbaddaden Re-reading the initial issue about adding Path, I'm ok with accepting Path | String.
The Path object would be "just" a path on steroid where you can get extra information on it, etcc.. But it shouldn't replace a path as a String

@bew Quite true, and Dir.create and FileUtils refactoring are related but another topics.
I think Path#to_s is fine. It doesn't seems to worth it to accept an Union of String | Path, I don't see a strong benefit. Most languages only accepts a String too.
One simple solution: Add String type restriction to each path argument of Dir and File class methods.

I strongly believe that since Crystal has Path, it's plain wrong to keep treating String as Path as well. It's disturbing, trying to sit on two chairs.

I completely agree with @sudo-nice. If there's going to be String options for these File/Dir operations anyway, why even have the Path type in the first place? It seems to me like a perfectly suitable and more semantically-appropriate replacement for String in this case.

Both Path#to_s and Path.new approaches looks pretty wrong to me. I think Path | String is a resonable restriction - you either construct a Path and pass it, or hardcode a string.
Also it is easy to implement for a shard (or stdlib) - just add arg = Path.new(arg) unless arg.is_a? Path inside all methods that work with paths.

@konovod you mean
if arg.is_a? String
  arg = Path.new arg
end

This seems wrong, too.
Adding this piece of code everywhere will over complicate things already simple.
Dir and File are lower level than Path, it would be preferable that they don't depend on this wrapper.
Path knows/calls => Dir/File knows/calls  =>  Crystal::System.
(Path already use Dir.current)
I don't know Java, apparently the Path object has a toFile() method that returns a File object representing the path.
Then, one can delete(), mkdir(), createNewFile().
In Crystal, this can't really be done as-is because, File is an IO.

wrapper

What about making Path into first-class object with heavy surgery:

add String#to_path method
merge all File, Dir, FileUtils methods under Path
deprecate File, Dir, FileUtils

Let's make Dir also work with Path instances. Dir isn't that big and it's not a big change. Then String and Path will work seamlessly.
I understand that having String and Path might be confusing at first. But having both alternatives is really good:

if you need a quick call without constructing a Path, or with a hardcoded value, just pass a String
if your path was constructed via Path and its methods, just pass the resulting Path

That's the idea of having these methods accept String and Path, at least in my mind.

The options as far as I see them are retaining File and Dir methods (FileUtils needs to be gone) and making them accept String | Dir, or moving filesystem-interaction methods to Path. I'm in favor of moving filesystem mutation to Path.
Encouraging the current status quo of paths being a string is dangerous for the Windows port. Paths are very special strings which behave differently on different platforms and generally have a bunch of rules and reasons why they should not be treated as strings. Treating them as strings works fine on UNIX, but unfortunately you have to give up some minor amount of elegance for portability.
If we add Path{"foo", "bar"} == Path.new("foo/bar") or similar, then File.<method>("foo/bar") is the same length as Path{"foo/bar"}.<method>. And we can get rid of the somewhat arbitrary split between File and Dir, and make Dir purely a dirfd(3) wrapper. And it's typed.

Another thing (that I had suggested), this bring possibilities like Path.new("/aaa/bbb/ccc").each_parent &.create_dir to create subdirectories recursively instead of Dir.mkdir_p.

I would like to add, after coding on an heavy Filesystem project, that's super annoying to add everywhere to_s when dealing with path for symlinking/copying/real_path directories and files. Switching between File, Dir, Path and FileUtils, that supports sometimes String | Path or only String, is quite unpractical. I end up using Path#to_s everywhere.
It would be so much easier to have a single unified API - just saying this with my personal experience.
Java has either Path or File, and that's quite nice.


Any plans for smarter bots?

This interesting reddit thread led me here and this repo looks very exciting!
I was just wondering what future direction you're thinking of for this project... Any plans for smarter (harder) bots?

This framework allows people to make custom bots in Rocket League, and the bots are only getting better. The bot tournament last month was awesome, and there's a tournament coming up in February as well.

Best place to keep up is the discord: https://discord.gg/zbaAKPt
I'm working on a bot myself that I am optimistic about but it'll be a while before it is ready.  There is already a bot that is nearly at all-star level.


Ensure workflow reliability by hash-pinning GitHub Actions

When developing CI workflows, it's common to version-pin dependencies (i.e. actions/checkout@v4). But version tags are mutable, so a malicious attacker could overwrite a version tag to point to a malicious or vulnerable commit instead.
Pinning workflow dependencies by hash ensures the dependency is immutable and its behavior is guaranteed.
These hashes can be automatically updated by dependabot. Whenever new versions Actions are released, you'll receive a single PR updating all of their hashes and version comments at once (see this example).
I'll send a PR pinning the Actions and setting up dependabot along with this issue.

Closing this after the discussion in #877.


Multiple parameters with same name

Is your feature request related to a problem? Please describe.
I cannot create a query with multiple parameters of the same name.
Describe the solution you'd like
Retrofit should be able to perform the following request where there are multiple query parameters named id and its count is dynamic:
https://example.com?id=1&id=2&id=3
Describe alternatives you've considered
  @GET('')
  Future<...> getStuff(
    @Query('id') List<int> ids,
  );

Unfortunately, this results in the following URI:
https://example.com?id%5B%5D=1&id%5B%5D=2&id%5B%5D=3
Additional context
I think that this is a common use case which this library should certainly handle.

Does this not depend on the API, from my understanding the API can only accept 1 parameter of the same name

Does this not depend on the API, from my understanding the API can only accept 1 parameter of the same name

Nope, that's not a limitation of HTTP. We can add multiple parameters with the same name.
You can see some discussions about the same here:

https://github.com/square/retrofit/issues/1324
https://stackoverflow.com/questions/24059773/correct-way-to-pass-multiple-values-for-same-parameter-name-in-get-request

But not possible with PHP apparently
Still, learnt something

But not possible with PHP apparently
Still, learnt something

i am have problem
The problem is, send last index the list[1,2,3]
value send 3 not array

It depends on how dio handles this functionality.

It depends on how dio handles this functionality.

Ok. I see there is an open issue on dio repo itself - https://github.com/flutterchina/dio/issues/1189

..


Fix CI/CD workflow that builds and pushes to Dockerhub

Problem description

See: https://github.com/nlpsandbox/nlpsandbox-client/runs/1993788664?check_suite_focus=true#step:7:22
Also see on dockerhub: https://hub.docker.com/r/nlpsandbox/cli/tags?page=1&ordering=last_updated

It appears that when I released 0.4.1, it created docker tag 0, 0.4 and 0.4.1
Expected behavior
Tags should only build that specific version, but it seems to be building multiple.

What is this command for? Is this linked to the CI/CD workflow that build and publish the image to Docker Hub?

@tschaffter Yes, sorry for the lack of description.  I made some edits and added details.

@thomasyu888 Is fixing this ticket required for the launch?

@tschaffter Not required for launch

Version system in place is intentional.


add prefix environment variable and install dgit under that prefix

This patch allows for setting the install prefix with the PREFIX environment variable instead of relying on GOPATH to be set and installing it there. It also uses a DESTDIR environment variable that most linux package managers use to install packages into an intermediate sandbox (and works normally when DESTDIR is not set).
This is a more standard way (beyond go) to install binary packages on unix like system with Makefiles because it allows for building the package as an unprivileged user (where GOPATH is more likely to be set), but installing the package system wide as root (where GOPATH is not likely to be set). This will be more flexible for writing install scripts for other operating systems and distributions.

Though can we keep the go path around under go-install and go-uninstall for ease of use for the non linux pkg manager case?

👍 ...or even make it do the current FIRSTGOPATH install on make install if PREFIX isn't set but GOPATH is.


boostrap.sh --dns-cluster-ip not being picked up by the kubelet

What happened:
When spinning up a new self managed eks node group with the  launch config containing boothstrap.sh configuraiton of --dns-cluster-ip (found here)this does not seem to be passed on to the kubelet
What you expected to happen:
new pods being scheduled in the nodegroup should have dns settings in /etc/resolve.conf that respect --dns-cluster-ip config that was passed to the bootstrap.sh script
How to reproduce it (as minimally and precisely as possible):
spin up a new self managed node group via whichever method you wish with the the launch config below.
i used terraform with eks module, which generated the launch config below.
#!/bin/bash
set -e
B64_CLUSTER_CA=LS0tLS1CRU
API_SERVER_URL=https://4someidgr7.eu-west-1.eks.amazonaws.com
/etc/eks/bootstrap.sh myblue1_26 --kubelet-extra-args '--node-labels=node.kubernetes.io/lifecycle=spot,nodegroup-name=spot-6 --register-with-taints=sbclustering=sbclustering:NoSchedule' --dns-cluster-ip '<IP_ADDRESS>,<IP_ADDRESS>'  --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL

after spinning up new self managed node group, schedule a pod into that group and check the /etc/resolv.conf
Anything else we need to know?:
Environment:

AWS Region: eu-west-1
Instance Type(s):
EKS Platform version  "eks.8"
Kubernetes version : 1.26
AMI Version: amazon-eks-node-1.26-v20231027
Kernel (e.g. uname -a): 5.10.198-187.748.amzn2.x86_64
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-0fe9073bb890001f8"
BUILD_TIME="Thu Nov 16 03:12:15 UTC 2023"
BUILD_KERNEL="5.10.198-187.748.amzn2.x86_64"
ARCH="x86_64"

This is probably caused by passing multiple IP's separated by a comma:
--dns-cluster-ip '<IP_ADDRESS>,<IP_ADDRESS>'

Because of this: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh#L29C9-L29C25
You would end up with a kubelet config file that contains:
"clusterDNS": [
  "<IP_ADDRESS>,<IP_ADDRESS>"
]

You probably have a log line like this from kubelet: https://github.com/kubernetes/kubernetes/blob/1f07da7575452353354a544d22264923bc4236b8/pkg/kubelet/kubelet.go#L494


how to write a multiple asynchronous signature program use eosjs?

When making a trade on line, this trade often requires multiple signatures asynchronously.
I read your eosjs example, but I didn't found any of multiple asynchronous signature example.
I don't know how to write this program ,so give me a example about this topic ,please! Thank you very much!
Let me describe scene of trade:
Sellers sell goods on the market, when the buyer see the goods that he needs, he want to buy it. The market is similar to an online mall, Buyers and sellers can't see each other.
Let me describe this scene in more detail.
Tom want to sell his bicycle on an online mall, Kate want to buy this bicycle at web. but closIng this deal needs Tom's signature and Kate's signature.
Firstly Kate initiated a request that need Tom's signature and Kate's signature, Kate then signed this deal. The website reminds Tom that this deal needs to be signed in 1 hour, Tom signed the deal 10 minutes later. Lastly Tom submitted this trade at web. so deal closed.
Tom selled this bicycle and got 10 dollars, and Kate get the bicycle and payed 10 dollars.
The above scenario has been implemented through the command line now.
here is command:
Firstly,cleos multisig propose Tom '[{"actor":"Kate","permission":"active"},{"actor":"Tom","permission":"active"}]' '[{"actor":"Kate","permission":"active"},{"actor":"Tom","permission":"active"}]' contract_setter trade '{"bicycleId":"1","buyer":"Kate","seller":"Tom"}' Kate -p Kate
Secondly, cleos multisig approve Tom Kate '{"actor":"Kate","permission":"active"}' -p Kate
Thirdly, cleos multisig approve Tom Kate '{"actor":"Tom","permission":"active"}' -p Kate
Lastly, cleos multisig exec Tom Kate Tom

Have you looked at the multi sig contract?

I found some clues in Eosjs's ReadMe, but there are no examples.

Can you give me some suggestion about this?
You don't have to give a complete example, just give the key point.
Help me please.

@chris-allnutt I know how to complete a transaction in command line, but I don't know how to write a program by eosjs.
Can you give me some suggestion？

Multi sig has 3 parts.

Transaction proposed.
Party one approves transaction
Party 2 approves transaction

It's in the main repo under contracts eosio.msig

@chris-allnutt Are you referring to the code(C++) of eos?

Yes.  You would have to look at the c++ contract, we don't provide any type of helper methods for this.

@chris-allnutt I want to know how to develop by eosjs. I know the theory of muti signature asynchronous . But I don't know how to call interface of cleos multisig by eosjs.

@chris-allnutt Can I understand that eosjs calls musisig just like calling the action of a normal contract?
for example:
cleos multisig propose boy.acnt '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' genius.acnt borrow '{"tokenId":"1","borrower":"girl.acnt","lender":"boy.acnt"}' girl.acnt -p girl.acnt
multisig is contract ,propose is an action of contract,  boy.acnt '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' genius.acnt borrow '{"tokenId":"1","borrower":"girl.acnt","lender":"boy.acnt"}' girl.acnt -p girl.acnt is parameter of propose?
It Maybe wrong!
Here is the code.

It means that propose has no parameter. so what is boy.acnt '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' genius.acnt borrow '{"tokenId":"1","borrower":"girl.acnt","lender":"boy.acnt"}' girl.acnt -p girl.acnt?

Cleos has options like: --print-request ..  cleos push action has a --json and --dont-broadcast switch but since your using multisig I think you'll have to just live with --print-request..
Turn that option on and you'll see everything cleos is doing for you and then you'll just need to put the transaction into eosjs..

I did what you said! The following is the details.
Firstly, I typed cleos --print-request multisig propose boy.acnt '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' genius.acnt borrow '{"tokenId":"1","borrower":"girl.acnt","lender":"boy.acnt"}' girl.acnt -p girl.acnt on the commend line terminal.( with --print-request)
Secondly I got the information as bellow.

Thirdly ,I read the eosio.msig.cpp file. Here is part of the content.

According to my understanding, calling msig propose is just calling a action of contract, So I just need to call the pose like calling a normal action.
According to the above picture frame content, the action is propose, the parameter is proposer,proposal_name,requested and trx.
is it right?just like the following picture(javascript)

I want to confirm whether my javascript content is right? give me an answer!
Lastly I want to know the parameter of trx .
As my understanding, the parameter of trx is the /v1/wallet/sign_transaction's parameters , is right?
just as

so the right parameter of trx is
[{     "expiration": "2018-08-06T10:02:39",     "ref_block_num": 45743,     "ref_block_prefix":<PHONE_NUMBER>,     "max_net_usage_words": 0,     "max_cpu_usage_ms": 0,     "delay_sec": 0,     "context_free_actions": [],     "actions": [{         "account": "eosio.msig",         "name": "propose",         "authorization": [{             "actor": "girl.acnt",             "permission": "active"           }         ],         "data": "0000c8131910af630000007922033c3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321f6e695b000000000000000000000100f2440660eda66200000000707a2f3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321801000000000000000000c8131910af630000007922033c3d00"       }     ],     "transaction_extensions": [],     "signatures": [],     "context_free_data": []   },[     "EOS7nLRAheR7tYMiTiCA2ry2vW2Yh4LKoMUsxiE6YcxSCh2nS8tq4"   ],   "313da49a1f6c194fffe8a38122c8952f46f14e5ca5e1b037510004da1bfe1832" ]
so the right program is
eos.contract('eosio.msig').then(account => { 	account.propose({ 	"proposer":"girl.acnt", 	"proposal_name":"boy.acnt", 	"requested":[ 					{ 						"actor":"girl.acnt", 						"permission":"active" 					}, 					{ 						"actor":"boy.acnt", 						"permission":"active" 					} 				], 	"trx":[{ 	    "expiration": "2018-08-06T10:02:39", 	    "ref_block_num": 45743, 	    "ref_block_prefix":<PHONE_NUMBER>, 	    "max_net_usage_words": 0, 	    "max_cpu_usage_ms": 0, 	    "delay_sec": 0, 	    "context_free_actions": [], 	    "actions": [{ 	        "account": "eosio.msig", 	        "name": "propose", 	        "authorization": [{ 	            "actor": "girl.acnt", 	            "permission": "active" 	          } 	        ], 	        "data": "0000c8131910af630000007922033c3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321f6e695b000000000000000000000100f2440660eda66200000000707a2f3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321801000000000000000000c8131910af630000007922033c3d00" 	      } 	    ], 	    "transaction_extensions": [], 	    "signatures": [], 	    "context_free_data": [] 	  },[ 	    "EOS7nLRAheR7tYMiTiCA2ry2vW2Yh4LKoMUsxiE6YcxSCh2nS8tq4" 	  ], 	  "313da49a1f6c194fffe8a38122c8952f46f14e5ca5e1b037510004da1bfe1832" 	],options) })
Is all right?
To me, I need to calculate the parameter of trx.

As my understanding, the content of trx is  /v1/wallet/sign_transaction, when I run javascript program , it means /v1/chain/push_transaction. is it right? @jcalfee
So I just need to calculate ref_block_num、ref_block_prefix、actions.data.
Your suggestion is important to me, thank you very much!

  You can turn off sign: false too, after all it is a proposed transaction so I don't think you'll be signing it up-front.  You may not need /v1/wallet/sign_transaction at all unless you actually want a server to sign something.  Also, to make it easy, try to use forceActionDataHex: false so you can see the "data" as json instead of hex.
The source for parameters is the ABI.  Look at the propose ABI action:
  "actions": [{
      "name": "propose",
      "type": "propose",
      "ricardian_contract": ""
},{

So that leads to the "propose" type (or struct):
https://github.com/EOSIO/eos/blob/v1.1.3/contracts/eosio.msig/eosio.msig.abi#L56-L63
Also, this prints usage and example data in the console.log:
eos.contract('eosio.msig').then(msig => msig.propose())

You can run that command in the console here: https://jcalfee.github.io/eos.html

When I run the program, error occurred!
Details as follow!

"RangeError: Illegal offset: 0 <= 0 (+1) <= 0 action.data transaction.context_free_actions propose.trx action.data transaction.actions", I don't know what cause this error? how to solve it?

How to understand "context_free_actions" and "actions" in "trx" ? What's the difference between "context_free_actions" and "actions"? Should I calculate "transaction_extensions"."data" or just null is ok?

context_free_actions and context_free_actions can be removed or left as empty arrays..

Do you means that "context_free_actions" can be empty arrays and "transaction_extensions" can be empty arrays. Just as follow:
"trx": {
        "expiration": "2018-08-09T10:02:39",
        "ref_block_num": 45743,
        "ref_block_prefix":<PHONE_NUMBER>,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [
            {
                "account": "eosio.msig",
                "name": "propose",
                "authorization": [
                    {
                        "actor": "girl.acnt",
                        "permission": "active"
                    }
                ],
                "data": "0000c8131910af630000007922033c3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321f6e695b000000000000000000000100f2440660eda66200000000707a2f3d020000c8131910af6300000000a8ed32320000007922033c3d00000000a8ed32321801000000000000000000c8131910af630000007922033c3d00"
            }
        ],
        "transaction_extensions": []
    }

Is my understanding right?

I deployed a contract with the account market.acnt,which contains trade action . trade is executed by multiple asynchronous signature.
Here are "proposer":"boy.acnt","proposal_name":"girl.acnt". the parameters of trade is
'{
    "id":"1",
    "tokenId":"4",
    "bidPrice":"10.5000 EOS",
    "seller":"girl.acnt",
    "buyer":"boy.acnt",
    "memo":"I want to buy the bicycle"
}'

Here is the shell command cleos multisig propose girl.acnt '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' '[{"actor":"girl.acnt","permission":"active"},{"actor":"boy.acnt","permission":"active"}]' market.acnt trade '{"id":"1","tokenId":"4","bidPrice":"10.5000 EOS","seller":"girl.acnt","buyer":"boy.acnt","memo":"I want to buy the bicycle"}' boy.acnt 100 -p boy.acnt
I compute the data(bin) by v1/chain/abi_json_to_bin, here is the command:
curl http://<IP_ADDRESS>:8888/v1/chain/abi_json_to_bin -X POST -d '{"code":"market.acnt",  "action":"trade",  "args":{"id": 1,"tokenId": 4,"bidPrice": "10.5000 EOS","seller": "girl.acnt","buyer": "boy.acnt","memo": "I want to buy the bicycle"}}'
and get the data: "01000000000000000400000000000000289a01000000000004454f53000000000000c8131910af630000007922033c3d19492077616e7420746f20627579207468652062696379636c65"
According to the definition of multisig propose abi and your suggestion, I write the program as follow:
eos.contract('eosio.msig').then(account => {
    account.propose({
    "proposer":"boy.acnt",
    "proposal_name":"girl.acnt",
    "requested":[
                    {"actor":"girl.acnt","permission":"active"},
                    {"actor":"boy.acnt","permission":"active"}
                ],
    "trx": {
        "expiration": "2018-08-11T15:28:57",
        "ref_block_num": 0,
        "ref_block_prefix": 0,
        "max_net_usage_words": 0,
        "max_cpu_usage_ms": 0,
        "delay_sec": 0,
        "context_free_actions": [],
        "actions": [
            {
                "account": "market.acnt",
                "name": "trade",
                "authorization": [
                    {
                        "actor": "girl.acnt",
                        "permission": "active"
                    },{
                        "actor": "boy.acnt",
                        "permission": "active"
                    }
                ],
                "data": "01000000000000000400000000000000289a01000000000004454f53000000000000c8131910af630000007922033c3d19492077616e7420746f20627579207468652062696379636c65"
            }
        ],
        "transaction_extensions": []
    }})
})

when I run the program by node.js, I got the error. The error is TypeError: Cannot read property 'abi' of undefined action.data transaction.actions propose.trx action.data transaction.actions. I think the format of propose is right, but node prompts that it cannot be readed by 'abi',why? I cannot understand.
Here is the detail. give me some suggestion,please!

I considered eosio.multisig as an ordinary contract and call propose as calling an ordinary action, so at shell termial, I typed cleos push action eosio.msig propose propose_parameter1.json -p boy.acnt, it runs successfully

I can also review the table data.
This is the content of propose_parameter1.json

I was able to get a proposed transaction accepted on the Jungle net.
One "bug fix" was needed below (see comment).  A default transaction header needed to be added.  Fortunately there is a work-around below.
You should be able to open the web page: https://jcalfee.github.io/eos.html then open the web console and paste the following:
(async function() {

// `forceActionDataHex = false` is better for reading transactions but still fails with `get_required_keys`

createEos(Object.assign({}, {forceActionDataHex: true}, chain.test.alohaeos))

function addKey(seed) {
  const key = ecc.PrivateKey.fromSeed(seed)
  console.log(seed, ecc.privateToPublic(key))
  config.keyProvider.push(key)
}
addKey('testajungle1')
addKey('testajungle2')

const transfer = await eos.transfer('testajungle1', 'testajungle2', '1.0000 JUNGLE', '', {broadcast: false, sign: false})
console.log(transfer.transaction.transaction)

const msig = await eos.contract('eosio.msig')
transfer.transaction.transaction.max_net_usage_words = 0 // bug fix

const randomName = String(Math.round(Math.random() * 100000)).replace(/[0,6-9]/g, '')
const propose = await msig.propose('testajungle2', 'jungle.' + randomName, [{actor: 'testajungle1', permission: 'active'}], transfer.transaction.transaction)
console.info(propose)

})()

When I propose a multi signature action with transfer, it's ok!
eos.contract('eosio.msig').then( msig =>{
	eos.transfer('boy.acnt', 'girl.acnt', '1.0000 EOS', '', {broadcast: false, sign: false}).then( transfer =>{
		transfer.transaction.transaction.max_net_usage_words = 0;
		transfer.transaction.transaction.expiration = new Date(Date.parse(new Date()) + 1000 * 60 * 3);
		console.log(transfer.transaction.transaction);
		msig.propose('boy.acnt','girl.acnt',[{"actor":"boy.acnt","permission":"active"}], transfer.transaction.transaction);
	});
});

But when I propose a multi signature with my own action, it failed!
eos.contract('eosio.msig').then( msig => {
	eos.contract('market.acnt').then(market => {
		market.trade1('4','4','10.5000 EOS','girl.acnt','boy.acnt','hello, selling genius',{authorization:'girl.acnt@active'}).then( trade =>{
			trade.transaction.transaction.max_net_usage_words = 0;
			trade.transaction.transaction.expiration = new Date(Date.parse(new Date()) + 1000 * 60 * 10);
			console.log(trade.transaction.transaction);
			msig.propose('boy.acnt','girl.acnt',[{"actor":"boy.acnt","permission":"active"},{"actor":"girl.acnt","permission":"active"}], trade.transaction.transaction);
		});
	});
});

The following is the details.

Here is my config.
config = {
	chainId:'313da49a1f6c194fffe8a38122c8952f46f14e5ca5e1b037510004da1bfe1832',
	keyProvider:[
				'5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3',
				'5K463ynhZoCDDa4RDcr63cUwWLTnKqmdcoTKTHBjqoKfv4u5V7p',
				'5KcHE3HF4zAecKWFxBiizG3KBPpkBxbbMDAn1HPeHQZecy69bZy'
				],
	httpEndpoint:'http://<IP_ADDRESS>:8888',
	expireInSeconds:60,
	broadcast:true,
	verbose:false,
	sign:true,
	forceActionDataHex: true,
	logger:{},
	network:{api:{}},
	abiCache:{}
}

Why it resports  config.abiCache.abi is not a function  with my own action(trade1) of contract, but everything is ok with transfer of eosio.token?
@jcalfee give me some suggestion, too.

@jcalfee I think config cause the problem.
it's part of the struct.js

it's the cause of why transfer of eosio.token can be executed successfully, but trade1 of market.acnt is executed unsuccessfully
So I need to configure the config.abiCache.abi rightly! but I don't know how to configure it.

@jcalfee Hope you can give me a example. Thank you very much!

@jcalfee I solved this problem. when I have no idea , I find abiCache in issue, Fortunately, I found the solution at https://github.com/EOSIO/eosjs/issues/260. It saids eosjs solve the issue that abiCache doesn't work in version 16.00. So I npm install eosjs again, the program run successfully!

I think you were deleting the abiCache by having too many config options.  You should remove these from your config.  Some are internal and logger is not custom so you don't need it:
logger:{},
	network:{api:{}},
	abiCache:{}

@jcalfee multisig propose cannot add authorization
Here is my eosjs program
eos.contract('eosio.msig').then( msig => {
	eos.contract('market.acnt').then(market => {
		market.trade1('7','4','10.5000 EOS','boy.acnt','girl.acnt','hello, selling ',{broadcast: false, sign: false}).then( trade =>{
			trade.transaction.transaction.max_net_usage_words = 0;
			trade.transaction.transaction.expiration = new Date(Date.parse(new Date()) + 1000 * 60 * 10);
			console.log(trade.transaction.transaction);
			msig.propose('girl.acnt','boy.acnt',[{"actor":"boy.acnt","permission":"active"},{"actor":"girl.acnt","permission":"active"}], trade.transaction.transaction);
		});
	});
});

here is the result.

But when I call my own action with propose, authorization is null, I'm very confused!
Here is my program.
eos.contract('eosio.msig').then( msig => {
	eos.contract('market.acnt').then(market => {
		market.trade1('7','4','10.5000 EOS','boy.acnt','girl.acnt','hello, selling ',{broadcast: false, sign: false}).then( trade =>{
			trade.transaction.transaction.max_net_usage_words = 0;
			trade.transaction.transaction.expiration = new Date(Date.parse(new Date()) + 1000 * 60 * 10);
			console.log(trade.transaction.transaction);
			msig.propose('girl.acnt','boy.acnt',[{"actor":"boy.acnt","permission":"active"},{"actor":"girl.acnt","permission":"active"}], trade.transaction.transaction);
		});
	});
});

Here is the result.

@jcalfee give me some solution.

Add it in the market.trade in the options with sign, and broadcast:
market.trade1('7','4','10.5000 EOS','boy.acnt','girl.acnt','hello, selling ',
  {broadcast: false, sign: false, authorization: {actor: account, permission: 'active'}}).then( trade =>{

approve a proposal:
eos.contract('eosio.msig').then(function (contract) {         contract.approve(proposer, proposalName, {             "actor": accountName,             "permission": "active"         }, {"authorization": accountName + "@active"}).then(function () {             console.log('success');         });     });

When I run this piece of code.
const Eos = require('eosjs');
var eosOnline = Eos({
                httpEndpoint: "http://jungle.iryo.network:8888",
                //httpEndpoint: "http://jungle.cryptolions.io:38888",
                keyProvider: 'key',
                broadcast: false,
                sign: true,
                //verbose: true,
                //debug: true,
            });

eosOnline.contract('eosio.msig').then(msig => console.log(msig));

I get this error
(node:7216) UnhandledPromiseRejectionWarning: Error: [
    "Missing checksum256$ in approve.fields.proposal_hash"
]
    at module.exports (/home/rahil.shaikh/blockchain/eosmultisig/node_modules/eosjs/lib/structs.js:141:11)
    at abi (/home/rahil.shaikh/blockchain/eosmultisig/node_modules/eosjs/lib/abi-cache.js:63:21)
    at /home/rahil.shaikh/blockchain/eosmultisig/node_modules/eosjs/lib/abi-cache.js:46:14
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:7216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejectinga promise which was not handled with .catch(). (rejection id: 1)
(node:7216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I was able to get a proposed transaction accepted on the Jungle net.
One "bug fix" was needed below (see comment). A default transaction header needed to be added. Fortunately there is a work-around below.
You should be able to open the web page: https://jcalfee.github.io/eos.html then open the web console and paste the following:
(async function() {

// `forceActionDataHex = false` is better for reading transactions but still fails with `get_required_keys`

createEos(Object.assign({}, {forceActionDataHex: true}, chain.jungle.costaricaeos))

function addKey(seed) {
  const key = ecc.PrivateKey.fromSeed(seed)
  console.log(seed, ecc.privateToPublic(key))
  config.keyProvider.push(key)
}
addKey('testajungle1')
addKey('testajungle2')

const transfer = await eos.transfer('testajungle1', 'testajungle2', '1.0000 JUNGLE', '', {broadcast: false, sign: false})
transfer.transaction.transaction.max_net_usage_words = 0 // bug fix
console.log(transfer.transaction.transaction)

const msig = await eos.contract('eosio.msig')

const randomName = String(Math.round(Math.random() * 100000)).replace(/[0,6-9]/g, '')
const propose = await msig.propose('testajungle2', 'jungle.' + randomName, [{actor: 'testajungle1', permission: 'active'}], transfer.transaction.transaction)
console.info(propose)

})()

Would you be able to update this example to use eosjs v20.0.0 ?
I am dying to figure this out.

I am also trying to do this using EOSJS V20. Not straight forward.


Blacklist tox 2.4.0 which breaks our tests

Version 2.4.0 of tox was released yesterday and broke environment
substitution (which we use in our tox.ini). 2.4.1 was released today
fixing this problem for us. We just need to blacklist the broken version
to ensure it doesn't break us again.
Connects rcbops/u-suk-dev#512
(cherry picked from commit 0b0948f82603f13c6dbefc82b81289bf127ed40f)

recheck_all

recheck_all

recheck_all

recheck_all

recheck_all

recheck_swift

recheck_ceph

👍


Correct_Password_Wrong_Encoding_Should_Not_Match HMAC-SHA1 and HMAC-256 are broken

In Correct_Password_Wrong_Encoding_Should_Not_Match test cases covering HMAC-SHA1 and HMAC-256 are broken in master

Thanks @fedelippo


Added code to internationalize the package.

So far, the code is only for English-speaking users. I added an internationalization class to enter custom strings where necessary.

I realized I could do it by passing arguments onError and onEmpty.


fix fallback to user-mode shortcut if elevation denied

Replaces exceptions that look like
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\menuinst\menuinst\__init__.py", line 57, in install
    "import menuinst; menuinst.install(%r, %r, %r)" % (path, bool(remove), prefix)])
  File "c:\menuinst\menuinst\win_elevate.py", line 70, in runAsAdmin
    lpParameters=params)
pywintypes.error: (1223, 'ShellExecuteEx', 'The operation was canceled by the user.')

with log messages that look like
WARNING:root:Insufficient permissions to write menu folder.  Falling back to user location

HOWEVER: we don't keep a persistent record of where shortcuts are installed.  This PR handles the single-user with a system-wide install use case well.  It does not handle the multi-user system-wide install case.  In that case, each user can use this to create their shortcuts, but those shortcuts will not be removed if the sysadmin every uninstalls Anaconda/Miniconda.

Current coverage is 0.00% (diff: 0.00%)

Merging #39 into master will not change coverage

@@           master   #39   diff @@
===================================
  Files          10    10
  Lines         915   920     +5
  Methods         0     0
  Messages        0     0
  Branches        0     0
===================================
  Hits            0     0
- Misses        915   920     +5
  Partials        0     0

Powered by Codecov. Last update 1e46dd1...9368465

LGTM.  Thanks!


Immediately-invoked function expressions

I'm sorry if this is a silly question, or the wrong place for such a question, but can I ask:
Why don't your code generators use Immediately-invoked function expressions?
I'm very new to (serious) JavaScript development, so figured I'd throw myself in the deep end and do some Ionic. I've found this generator and like what you're doing with it, but you seem to be adopting standards unfamiliar to what I've been learning, such as IIFEs, Anonymous Functions, and more.
Thank you.

Hey @LimeBlast! This is definitely not a silly question :)
All patterns you describe are recommendations by John Papa, which is a great guy, but we do not agree on all his ideas. There is nothing wrong with it, its just not our 'style'.
This is why we are generating files using our own structure and style. We will maybe change this in the future, but for now its not in our scope.
If you have any other questions, do not hesitate to ask, but maybe the gitter-chat (https://gitter.im/mwaylabs/generator-m-ionic) is a better place.

Thank you very much for your answer. I'll pop along to your gitter and ask the rest of my silly questions there :+1:


Raven.js XHR wrapped state change handlers causing recursive calls (aka Zone.js infinite loops)

It's cumulative issue regarding recent infinite loops reports when using Raven.js with Zone.js.
Ref:

https://github.com/getsentry/raven-js/issues/1062
https://github.com/getsentry/raven-js/issues/1058
https://github.com/getsentry/raven-js/issues/1052
https://github.com/getsentry/raven-js/issues/1027
https://github.com/getsentry/raven-js/issues/1016

Potential ref:

https://github.com/getsentry/raven-js/issues/457
https://github.com/getsentry/raven-js/issues/899

I just verified everything using latest angular-cli and wasn't able to reproduce this issue.
repository: https://github.com/kamilogorek/angular-cli-raven-example

Could it be because you're using zone.js 0.8.14 in your package.json?

@marcelgoya, no, it installs 0.8.18 as it should:

I also though that it may be due to error being thrown from within a template as @joelnotified mentioned here https://github.com/getsentry/raven-js/issues/1058 but I also couldn't reproduce it.
Added this case here: https://github.com/kamilogorek/angular-cli-raven-example/commit/22a572fc2624c1d8dac42747cf32b5fcfbc42b93

hmm, strange! I'm throwing a test error from inside an injectable static class and that's already enough to generate the loop. it's actually a good way to freeze your browser :-)

Btw, I'd suggest you try one of the Ionic starter templates instead of the NG one...

@joelnotified I was able to fix your repro case by removing strict lock from @angular/core and zone.js and using "@angular/core": "^4.2.4" and "zone.js": "^0.8.14" instead (it'll bump them to 4.4.4 and 0.8.18).
@marcelgoya one step at the time :)

@kamilogorek No worries :)

@marcelgoya can you try to use zone.js 0.8.18 and angular/core 4.4.4 in your package.json, remove package-lock.json/yarn.lock and reinstall all node_modules again? (I've seen that you already did that with zone.js, but wanted to double check, as I see they update their changelog to reflect that https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md)

@kamilogorek Sure, I'm gonna try it in a sec

@kamilogorek Just did the upgrade and reinstalled all node modules like you said but the error is still there :(

I have blocked localhost events in sentry and requests get 403 before infinite loop begins. Maybe it is related and can help in reproducing the issue?

I am also getting this bug on the occasional XHR request. Unfortunately, I ended up uninstalling raven-js (it was at 3.18.1).
My dependencies are listed below:
    "dependencies": {
        "@angular/common": "^4.4.3",
        "@angular/compiler": "^4.4.3",
        "@angular/compiler-cli": "^4.4.3",
        "@angular/core": "^4.4.3",
        "@angular/forms": "^4.4.3",
        "@angular/http": "^4.4.3",
        "@angular/platform-browser": "^4.4.3",
        "@angular/platform-browser-dynamic": "^4.4.3",
        "@ionic-native/core": "3.6.1",
        "@ionic-native/device": "^3.7.0",
        "@ionic-native/local-notifications": "3.6.1",
        "@ionic-native/splash-screen": "3.6.1",
        "@ionic-native/status-bar": "3.6.1",
        "@ionic/cloud-angular": "^0.12.0",
        "@ionic/storage": "2.0.1",
        "cordova-android": "^6.2.3",
        "cordova-plugin-console": "1.0.5",
        "cordova-plugin-device": "~1.1.4",
        "cordova-plugin-ionic-webview": "^1.1.9",
        "cordova-plugin-local-notifications": "git+https://github.com/katzer/cordova-plugin-local-notifications.git#x",
        "cordova-plugin-splashscreen": "~4.0.1",
        "cordova-plugin-statusbar": "git+https://github.com/apache/cordova-plugin-statusbar.git",
        "cordova-plugin-whitelist": "1.3.1",
        "cordova-sqlite-storage": "~2.0.0",
        "date-fns": "^1.28.0",
        "ionic-angular": "^3.7.0",
        "ionic-plugin-deploy": "~0.6.6",
        "ionic-plugin-keyboard": "~2.2.1",
        "ionicons": "3.0.0",
        "lodash.pullallby": "^4.7.0",
        "rxjs": "^5.4.3",
        "sw-toolbox": "3.4.0",
        "url-search-params": "^0.9.0",
        "zone.js": "^0.8.18"
    },

It'd be great if someone could help me by providing reproducible code base. I'm not able to break it anymore using @angular/core: 4.4.4 and zone.js: 0.8.18, and it's very hard to track the issue without being able to see it.

I have the same issue. My dependencies are:
"dependencies": {
        "@angular/animations": "4.4.4",
        "@angular/common": "^4.4.4",
        "@angular/compiler": "^4.4.4",
        "@angular/compiler-cli": "^4.4.4",
        "@angular/core": "^4.4.4",
        "@angular/forms": "^4.4.4",
        "@angular/http": "^4.4.4",
        "@angular/platform-browser": "^4.4.4",
        "@angular/platform-browser-dynamic": "^4.4.4",
        "@angular/platform-server": "4.4.4",
        "@ionic-native/core": "^4.3.0",
       ...
        "raven-js": "^3.18.1",
        "rxjs": "^5.4.3",
        "sw-toolbox": "3.6.0",
        "videogular2": "^5.2.0",
        "web-animations-js": "^2.3.1",
        "zone.js": "^0.8.18"
    }

@kamilogorek Does your test repo work with these?

@doender Yes, it works just fine. You can try it yourself using this repo https://github.com/kamilogorek/angular-cli-raven-example and replacing it's dependencies with your list.

Thanks. It seems the issue is only with Ionic then?
If I can find the time next week, I'll try to prepare an Ionic starter template: https://github.com/ionic-team/ionic2-app-base

Same here with latest Ionic 3.7.1 and zone js 0.8.18 : everything looks to work 👍  ! The issue was only with 0.8.17

I'm having the same issue with React. any estimation when will this be fixed or is it better to downgrade?

With React? Could you please open new issue and describe it there?


[cognitive-language] Modernize strings throughout code

Is your feature request related to a problem? Please describe.
Python 2 used unicode strings, but Python 3 can handle unicode by default.
Format methods can be replaced with f-strings.
Describe the solution you'd like
We should remove unicode strings from the code, and replace format methods with f-strings if possible.
Additional context
@kristapratico https://github.com/Azure/azure-sdk-for-python/issues/22057

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'azure-spring:0.16730382,Cosmos:0.14677903,Storage:0.055877768'

Thanks for opening this issue @wonhyeongseo! I understand that you want to work on this so I'm assigning it to you. 😃


[Question] How do I style dataview queries?

This is my site: https://tablondeltablon.netlify.app/bitacora/
I want the queries on all my website to be centered and a bit wider (Half the writing space instead of 1/4), How can I apply this global styling? The method I remember to modifying CSS in the website is obsolete as far as I know, and anyways I only know really basic CSS and HTML, I don't know how to edit queries. if someone knows how to do that, i thank the help nwn

Something I just noticed, there doesn't seem to be a compatibility with admonitions:
this is how the note looks, compared to the website, where all callouts are the same


Does retry mechanism work properly?

Retry mechanism doesn't work properly, in my opinion. Is it intentional behaviour to check exact matching between expected exception and actual exception here , shouldn't it be repeatableException.isAssignableFrom(e.getClass())? Retry works pretty rarely, almost never, I would say. In the case that I've met BulkProcessor doesn't work well.
This line doesn't look right either, throwing Exception is not common and recommended practice, should it be expected to be thrown ever?

Hi, we are currently facing a similar problem. Our connector sometimes fails with a ConnectionException, however, in the error trace, we see that the connector only attempted to process 1 time.
The error trace:
 "trace": "org.apache.kafka.connect.errors.ConnectException: Exiting WorkerSinkTask due to unrecoverable exception.\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:614)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:329)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:834)\nCaused by: org.apache.kafka.connect.errors.ConnectException: Failed to bulk processing after total of 1 attempt(s)\n\tat io.aiven.kafka.connect.opensearch.RetryUtil.callWithRetry(RetryUtil.java:137)\n\tat io.aiven.kafka.connect.opensearch.BulkProcessor$BulkTask.execute(BulkProcessor.java:367)\n\tat io.aiven.kafka.connect.opensearch.BulkProcessor$BulkTask.call(BulkProcessor.java:356)\n\tat io.aiven.kafka.connect.opensearch.BulkProcessor$BulkTask.call(BulkProcessor.java:337)\n\t... 4 more\nCaused by: org.apache.kafka.connect.errors.ConnectException: org.apache.http.ConnectionClosedException: Connection is closed\n\tat io.aiven.kafka.connect.opensearch.BulkProcessor$BulkTask.lambda$execute$0(BulkProcessor.java:399)\n\tat io.aiven.kafka.connect.opensearch.RetryUtil.callWithRetry(RetryUtil.java:119)\n\t... 7 more\nCaused by: org.apache.http.ConnectionClosedException: Connection is closed\n\tat org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:941)\n\tat org.opensearch.client.RestClient.performRequest(RestClient.java:332)\n\tat org.opensearch.client.RestClient.performRequest(RestClient.java:320)\n\tat org.opensearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1911)\n\tat org.opensearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1877)\n\tat org.opensearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1845)\n\tat org.opensearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:364)\n\tat io.aiven.kafka.connect.opensearch.BulkProcessor$BulkTask.lambda$execute$0(BulkProcessor.java:370)\n\t... 8 more\nCaused by: org.apache.http.ConnectionClosedException: Connection is closed\n\tat org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:356)\n\tat org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261)\n\tat org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:87)\n\tat org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:40)\n\tat org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121)\n\tat org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)\n\tat org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)\n\tat org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)\n\tat org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)\n\tat org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)\n\t... 1 more\n"
Our connector config has a max.retries = 5 and a connection.timeout.ms = 5000 however, once the connection fails, it never retries.
Our theory is that this exception is not matching the condition of retry util function.
If this is expected, is there any workaround?

Hi @miguelskeeled,
Our problem is exactly the same, connection errors are not retryable. I don't think that there is some workaround, retry works only if RuntimeException occurs. It looks like a bug to me, unless I'm missing something. Connection error should be the very first candidate for retry, I think.
I don't think checking the exception class is a good approach, some Predicate would work better. But let's wait for the authors' answers, maybe it was done for some reason.

Hi @willyborankin
We've encountered the same issue too. In our case, OpenSearch sometimes returns a 429 Too Many Requests status code which results in an OpenSearchStatusException. As that isn't the RuntimeException class, callWithRetry doesn't retry the request and instead the task is killed. We've also observed it when the connection is closed or the socket times out.
All of these are circumstances under which I would expect a retry to occur.
Is there any update on this issue you can share?

Is there no way this could be released in a 2.0 branch as well, or at least make the 3.0 branch compatible with OS 2?

Is there no way this could be released in a 2.0 branch as well, or at least make the 3.0 branch compatible with OS 2?

it is compatible with OS 2.x. The versioning for the connector not the same as for OS plugins.


Comparing winr to benchmark-driver

Comparison with benchmark-driver
The image below compares the output of winr to benchmark-driver. I'm a little biased, but it looks like the output from winr is not only easier to see, more compact, better looking, and most of all more accurate (look at the difference between the warmup and the actual test results within the benchmark-driver results).

Benchmarking scripts
The two benchmarking scripts are shown below. In this case, benchmark-driver is much more compact. There is some real value in having the benchmark script be directly in Ruby, such as the fact that it's homoiconic (meaning it's written in the language we're using), so there is no need for a parser or another language to use, we can write code in the actual config file directly, etc. However, it's also more verbose.
benchmark-driver
prelude: |-
  $LOAD_PATH.unshift(File.expand_path("lib"))
  require "strscan"
  scanner = StringScanner.new("test string")
benchmark:
  regexp_pattern: |
    scanner.scan(/\w/)
  regexp_literal: |
    scanner.scan(/test/)
  string: |
    scanner.scan("test")

winr
{
  contexts: [
    {
      begin: <<~"|".strip
        require "strscan"
        scanner = StringScanner.new("test string")
      |
    }
  ],
  tasks: [
    {
      name: "regexp_pattern",
      script: 'scanner.scan(/\w/)'
    },
    {
      name: "regexp_literal",
      script: 'scanner.scan(/test/)'
    },
    {
      name: "string",
      script: 'scanner.scan("test")'
    },
  ]
}

Initial YAML support
The YAML format is pretty nice... as a result, I've added initial support for it.
winr
begin: |-
  require "strscan"
  scanner = StringScanner.new("test string")
tasks:
  regexp_pattern: |
    scanner.scan(/\w/)
  regexp_literal: |
    scanner.scan(/test/)
  string: |
    scanner.scan("test")

The config support for YAML is pretty basic right now, but good enough for this example.
Here's the code that was added.
# read the winr script
winr = ARGV.first or abort "missing winr script"
case File.extname(winr)
when ".yaml"
  $config = YAML.load(File.read(winr))
  es = [ {} ]
  cs = [ begin: $config["begin"] ]
  ts = $config["tasks"].map {|k,v| { name: k, script: v } }
when ".rb"
  $config = eval(File.read(winr))
  es = $config.environments || [{}]
  cs = $config.contexts     || [{}]
  ts = $config.tasks        || [{}]
else abort "unknown winr script format '#{winr}'"
end

Adding a quick reference to @kou, since he introduced me to benchmark-driver in the first place. :-)

It may be better that winr also accepts the same format that is used by benchmark-driver. It will help existing benchmark-driver users.

Great idea @kou - I will add a -b command line switch that allows the benchmark-driver files to be used as-is.


fix: bump requests version to avoid import error

:tada: This PR is included in version 3.16.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


snap: Record the snapshot save duration on success rather than only on error

It looks like a bug that the latency is only recorded on error rather than only on success.
If you'd rather record it in both success and failure cases, I'm happy to modify the change.

I think your change is correct. Could you add the prefix snap:  into the commit title? So it could make commit history more readable.

Done

lgtm. defer to @xiang90

LGTM


Multi-Peer Support

Hey There!
I am brand new to WebRTC and trying to wrap my head around all this for a school project,
I was reading the Simple Peer (js) GitHub and there is support for Multiple Peer transfer (so more than 2 peers for example 3 and more).
I was wondering if this flutter package has support for this since I am building a project that requires to send files (Photos and Videos of various sizes) from one device to 2 other (or more) devices.
If it is possible, I would love to contact anyone 1 on 1 about this package to well further understand how WebRTC and this package works as a whole, learning curve for me
Thanks :)

Hi! Not supported so you would need to open many connections for that.
Curious though, whats the use case?

If you have discord you can contact me here @Stxyl
I am happy to talk about the use case from there


Some tweaks for the API discovery section.

Resulting from the review of a68803b in #41, some minor changes:

use example.com instead of myapi.com in the example URIs.
(It was previously changed from myapp.myteam.zalan.do into myapi.com.)
mention that Twintip only understands JSON
the tool is still named "Swagger UI", not "OpenAPI GUI".

I'm not sure if this counts as editorial (mostly) or as guideline-change (mentioning that YAML is not supported by Twintip).

one small comment, otherwise lgtm, :shipit:

👍

@ePaul see https://github.com/zalando-stups/twintip-crawler/issues/8 for TWINTIP YAML support, apparently @fmueller will work on it :smile:

@ePaul @fmueller does this look good to merge in?

@ePaul @fmueller does this look good to merge in?

I'm not sure. Should we wait for Twintip to be adjusted, and/or should I still change the text as proposed?
(Sorry, I was neglecting my API guild obligations a bit in the last days.)

Should we wait for Twintip to be adjusted, and/or should I still change the text as proposed?

@ePaul I think 73d165e looks good. if Twintip gets improved that's awesome, but I'd be happy to have the guidelines updated (looking at it one way, they shouldn't depend on what Twintip does).

I'd wait until Twintip support yaml. I just submitted a PR for this.

Just for reference: twintip-crawler #12.

After today's discussions in the Guild meeting, I undid the restriction to .yaml. The other changes are mainly editorial, I think.

👍
@whiskeysierra @dehora I think we can merge this old PR now. Please have a look and approve it if you don't have any concerns.

👍

Out of date

@ePaul Can you rebase the PR branch pls?

@fmueller @whiskeysierra done.

:+1:

👍

:+1:


Bug: Theme colors, especially font colors and font sizes are incorrect

So far, font sizes have been defined throughout the code in pixel sizes rather than using a Theme definition like heading3 or medium.
Font and image colors still seem to stick to the OS color scheme and display black on dark grey and white on light grey, depending on the selected Theme and the OS setting.
Pages are inconsistent regarding their background color (countdown must remain fixed to black, but should details pages follow the theme background color?)
Appbars might be improved to use the ICCM green color in light and dark theme. ICCM green could be defined in the Theme as a predefined color.

https://stackoverflow.com/questions/60232070/how-to-implement-dark-mode-and-light-mode-in-flutter

https://github.com/flutter/flutter/issues/61452#issuecomment-658219360

This is the intended behavior of RichText. It would be more accurately named something like "RawText", because it is not connected to anything by default, and should only be used when you want to do everything manually.
Text.rich is a reasonable approach for applications to use

https://stackoverflow.com/questions/51379194/richtext-does-not-style-text-as-expected:
class RichWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return RichText(
      text: TextSpan(
        text: 'Hello ',
        style: DefaultTextStyle.of(context).style,
        children: <TextSpan>[
          TextSpan(
              text: 'bold',
              style: TextStyle(fontWeight: FontWeight.bold)),
          TextSpan(text: ' world!'),
        ],
      ),
    );
  }
}

Next step: review font sizes on all pages and use available styles for headings etc.

Next step: Configure style for about page, travel information page and preferences page.

Updated theme usage for menu drawer pages.


Update staked eos coins

currently can't unstake lower then 1 coin on cpu or bandwidth.  so now i have 2 coins stuck. Why can't we set it to 0 to unstake all of your coins?

If you unstake all your coins, you will no longer be able to do anything on the blockchain, which is why nodes are preventing you from doing that.

so you need atleast 2 coins to move other coins around?

The exact number varies depending on network usage, so we can't just give you a number.
1 EOS in both CPU and Bandwidth as of today seems to be enough (which may change).


Big refactoring of the Window and user control interfaces.

Huge performance improvements for big inputs.
The Window and UIControl have been rewritten very much. Rather than each time
rendering the whole user control, we now only have to render the visible part.
(Saving a lot of CPU.)
Because of this, many pieces had to be rewritten:

UIControls work differently. They return a UIContent instance that consist
of a collection of lines.
All processors have been rewritten.
Some bugs have been fixed.

(Merged in other commit.)


Please don't break semantic versioning (& better changelogs/releases?)

Checked other resources

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

Example Code
In a recent langgraph version, do
        graph.add_conditional_edges(
            start_key="foo",
            condition=select_next_node,
            conditional_edge_mapping={

            },
        )

### Error Message and Stack Trace (if applicable)

_No response_

### Description

Hello, due to a combination of

1. Not using releases
2. Using very nondescript commit messages
![image](https://github.com/langchain-ai/langgraph/assets/8631181/217e8ad6-2fc5-444e-928a-e4e61203edc8)
4. Not following semantic versioning (i.e. introducing breaking changes in minor versions)

This library introduces quite a maintenance burden and is hard to keep track of.

### System Info

System Information
------------------
> OS:  Linux
> OS Version:  #1 SMP PREEMPT_DYNAMIC Fri, 17 May 2024 11:49:30 +0000
> Python Version:  3.12.3 (main, Apr 23 2024, 09:16:07) [GCC 13.2.1 20240417]

Package Information
-------------------
> langchain_core: 0.1.52
> langchain: 0.1.20
> langchain_community: 0.0.38
> langsmith: 0.1.63
> langchain_cohere: 0.1.4
> langchain_mongodb: 0.1.5
> langchain_openai: 0.1.6
> langchain_text_splitters: 0.0.2
> langchainhub: 0.1.16
> langgraph: 0.0.30

Packages not installed (Not Necessarily a Problem)
--------------------------------------------------
The following packages were not found:

> langserve

Thanks for the feedback - definitely agree with that. Over the next month we're seeking to mature our release process and move towards proper versioining


Improve the rs-soroban-env README to explain the crates

Improve the rs-soroban-env README to explain the crates and design rationale. As auditors and others look at our repository they can get a high level understanding of what each crate does.

fixed by https://github.com/stellar/rs-soroban-env/pull/1501


Adding support for "protocol relative" / "schemeless" URLs

...or "network-path reference" as it's called by the RFC:
http://tools.ietf.org/html/rfc3986#section-4.2
Here's the related issue: https://github.com/jwage/purl/issues/13

Hi,
It looks like this function was never merged, perhaps because the test never passed.
If I make another pull request with the function named getSchemeless, will it be merged?

@jonathanza Sure!

@jonathanza getSchemeless is available in PHP Domain Parser v1.3.1, which is available in the latest version of purl. I never made it available to purl, however, like a big dummy. You might consider refactoring Purl\Url to implement that method.
It would look something like return $this->getParser()->parseUrl($this->url)->getSchemeless();.


Data schema support

Motivation
Our wasm function requires knowledge of the data schema to parse JSON data.
Goals

Support transfer of the data schema from function-stream host to wasm function

Implementation
We can employ pulsar-client-go to extract the schema in JSON format from the message.
One possible approach is to mount a specific file, say /schema, to the wasm function's wasi. We can then utilize the buffer_reader to write to this file.
When the wasm function wants to access the schema, we could transfer the schema through this file interface.

Done by https://github.com/FunctionStream/function-stream/pull/182


Maybe improve ec perf

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.57%. Comparing base (0b77a8b) to head (1f3e588).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #770      +/-   ##
==========================================
- Coverage   88.57%   88.57%   -0.01%
==========================================
  Files         120      120
  Lines       35393    35392       -1
==========================================
- Hits        31349    31348       -1
  Misses       4044     4044

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Too late to prevent this, BUT I'm afraid "maybe" equates to "does not, but adds risk". Did we measure any improvement?
Where should the check occur, and how impossible is it to not have happened?


Parameter 'read_from' don't used in code

I suggest will add using this parameter or generate correct web URI for CSS and JS files in method  https://github.com/symfony/AsseticBundle/blob/master/Twig/AsseticExtension.php#L63
Also 'read_from' must be prefix for URI part, not a directory.
assetic:
    read_from: "/assets"
    write_to: "%kernel.root_dir%/../web/assets"

Files must be written and read from web/assets directory.

ping @stof


xds: implement proxy proto

See #https://github.com/istio/api/pull/2860

@kyessenov: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

integ-pilot-istiodremote-mc_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote-mc

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test release-notes

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

integ-pilot-istiodremote-mc_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote-mc

integ-pilot-multicluster_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-multicluster

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test lint

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

integ-pilot-istiodremote-mc_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote-mc

integ-pilot-multicluster_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-multicluster

release-notes_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test gencheck

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

integ-pilot-istiodremote-mc_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote-mc

integ-pilot-multicluster_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-multicluster

release-notes_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test release-notes

lint_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot-istiodremote_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote

integ-pilot_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot

integ-cni_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-cni

integ-pilot-istiodremote-mc_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-istiodremote-mc

integ-pilot-multicluster_istio
674c91342c5115840d559d6d80c4ea7eb9ecb199
link
true
/test integ-pilot-multicluster

release-notes_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test release-notes

lint_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test lint

gencheck_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyessenov: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test lint

gencheck_istio
32d64fbf59c92982cec33afe0cdaf8a06f61438b
link
true
/test gencheck

release-notes_istio
01ccc2871c5714583765bad6cb47fe5d1baca023
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


classic x native always focuses menu bar

Testing #117275
On Xubuntu with
    "window.menuBarVisibility": "classic",
    "window.titleBarStyle": "native",
    "window.customMenuBarAltFocus": false,

The menu bar acts like customMenuBarAltFocus: true

Just parsed the name of the setting -- is this expected since the menu bar focus is no longer custom?

@connor4312 yes, the setting only applies to custom, maybe I could add some additional text in the description

I think the property name makes it obvious... I just looked at the matrix and started iterating through the combinations without thinking about it that much.