text:
api: add hop to alive at internal listener

Commit Message:
Add max internal listener hops to protect infinite loop at internal listener.
Signed-off-by: Yuchen Dai silentdai@gmail.com
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]
[Optional API Considerations:]

Thank you for the feedback!
Close for now:
Use hard code value 1 as max internal hop , accounting in stream info
And will raise this discussion if we do need it.


text:
stats: Add quic connection close error code histogram.

Signed-off-by: Renjie Tang renjietang@google.com
Commit Message: Add connection close error code histograms for quic. This is the one of the most important metrics for quic experimentations.
Additional Description:
Risk Level: low
Testing: unit tests
Docs Changes: n/a
Release Notes: n/a
Fixes #10102

/assign @RyanTheOptimist   Ryan would you mind taking a first-pass review?

/assign @RyanTheOptimist
Ryan would you mind taking a first-pass review?

source: gharchive/pull-request

repo: envoyproxy/envoy

license_type: permissive

license_source: github-api


text:
ext_proc: Check validity of the :status header

Commit Message: Restrict the values of the ":status" header that an external
processor can set in both a "header mutation" in the response to a
header request, or in an "immediate response" message, to avoid setting
certain header values that will break the proxy.
Additional Description: Specifically, ignore attempts to set the header to a value < 200,
or to an invalid integer. Also ignore attempts to set multiple values
for any system header (beginning with ":").
Risk Level: Low -- reduces risk of a problem with invalid status codes
Testing: New unit and integration tests
Docs Changes:
Release Notes:
Platform Specific Features:
Signed-off-by: Gregory Brail gregbrail@google.com

This should fix https://github.com/envoyproxy/envoy/issues/17570 opened by @ikepolinsky


text:
Add Proxy-Status HTTP response header field.

Signed-off-by: James Buckland jbuckland@google.com
Commit Message: Add Proxy-Status HTTP response header field.
Additional Description: This PR adds the new "Proxy-Status" HTTP response header field, as proposed in https://github.com/envoyproxy/envoy/issues/17439. See the RFC draft for much more detail.
This new header is off by default.

This new proposal "defines the Proxy-Status HTTP field to convey the details of intermediary response handling, including generated errors." Proxy-Status is meant to be generally applicable to many kinds of proxies. This response header has an error field and a more general details field.
Envoy should generate and attach this new header to traffic.
Implementing this new web standard will help people who use Envoy (and people who use tools which use Envoy) better understand the state of each intermediate proxy along a connection.
The RFC is expected to be approved with minimal content changes within the next few weeks. We should not submit any changes until it is approved.

Risk Level: Low
Testing: Unit tests for HCM in conn_manager_impl_test.cc and utils unit test in stream_info/utility_test.cc.
Docs Changes: n/a, except for self-documenting (?) proto config changes.
Release Notes: n/a
Platform Specific Features: n/a
API Considerations: n/a, unsure how much to document -- this won't switch anything on by default, but users can enable a new HTTP response header field.

gcc build error looks legit: https://dev.azure.com/cncf/envoy/_build/results?buildId=84985&view=logs&j=8bf29878-a4cc-50f7-4e84-2255e6fd4065&t=3267cd16-a387-57e0-0ef4-d7a4d1c6c089&l=6253

Flushing comments and responses.

authors: ambuc yanavlasov


text:
RLQS: hide unimplemented documentation

RLQS API added in https://github.com/envoyproxy/envoy/pull/19793.
This change removes the docs and adds [#not-implemented-hide:] tags
until the implementation is ready.
Signed-off-by: Sergii Tkachenko sergiitk@google.com

Commit Message: RLQS: hide unimplemented documentation
Additional Description: RLQS API added in https://github.com/envoyproxy/envoy/pull/19793.
This change removes the docs and adds [#not-implemented-hide:] tags until the implementation is ready.
Risk Level:
Testing:
Docs Changes: Hides RLQS documentation
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/docs

CC folks that reviewed the original PR @yanavlasov @markdroth @mattklein123

authors: phlax sergiitk


text:
Revert "build(deps): bump orjson from 3.6.7 to 3.7.7 in /tools/base (…

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

pending outcome of https://dev.azure.com/cncf/envoy/_build/results?buildId=112577&view=logs&s=38ceb128-5055-565c-88b0-b52f284e9b30
...we probably want to land this quickly

yep, the dep is broken so we do want this for now - i can land a better fix tomorrow once ci is green again
cc @adisuissa

/lgtm deps

authors: moderation phlax


text:
[WIP/backport/1.24] repo: Release 1.24.1

Signed-off-by: Ryan Northey ryan@synca.io

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/docs


text:
ci: Increase timeouts for slow builds

Fix #26818

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

here:
https://dev.azure.com/cncf/envoy/_build/results?buildId=134521&view=logs&j=bbe4b42d-86e6-5e9c-8a0b-fea01d818a24&t=00ade0d6-ffae-5af0-b5e0-e33b1813c8bc&l=4769
for example. This test was run in part to get these timings - its incredibly frustrating to wait 3 hours for a test and it then timeout.
Whether coverage should take 3+ hours is another matter, that i think we should address

heres another running the first Pr on the new 1.26 branch (ie full rebuild)
https://dev.azure.com/cncf/envoy/_build/results?buildId=134604&view=logs&s=b2710bd9-3b3a-5a17-3102-13ba462a848c
both arm and cov die from timeout

here is a non-scheduled job timing out https://dev.azure.com/cncf/envoy/_build/results?buildId=134635&view=logs&j=bbe4b42d-86e6-5e9c-8a0b-fea01d818a24
i really think this should be landed asap @htuch

relatedly im very much hoping that #26839 will begin to address the underlying problem


text:
Patch Update-1 searchtools.js DOM text reinterpreted as HTML

Additional Description: By using innerText, it will avoid the risk of HTML injection, as these properties automatically escape any HTML special characters in the provided text. This helps prevent cross-site scripting (XSS) vulnerabilities by treating the input as plain text rather than interpreted HTML.

Hii @phlax Could You please Review This PR whenever you free
Thanks

Hii @ggreenway Could Please Review This PR
Thanks

Hii @phlax Could You Please Review This PR
Thanks

Hi @phlax
Could you kindly review this pull request when you have a moment?
Thank you!

@Shivam7-1 i will look at this when i have time available - please stop posting - its low priority and i have not had time available

Hii @phlax
Thanks For Reviewing this PR From Your Time :)
Instead of replacing innerHTML with innerText, could we use DOMPurify here? It sanitizes the content and renders the HTML without modifying the original HTML structure.
Let me know your thoughts!

https://github.com/envoyproxy/envoy/pull/37471#issuecomment-2523677762


text:
add a performance benchmark test for the Buffer implementation

Description:
Add a benchmark test for the commonly used operations in the Buffer implementation.
Risk Level: low
Testing:
Test output:
$ bazel-bin/test/common/buffer/buffer_speed_test
2019-01-03 19:20:38
Running bazel-bin/test/common/buffer/buffer_speed_test
Run on (12 X 3500 MHz CPU s)
CPU Caches:
  L1 Data 32K (x6)
  L1 Instruction 32K (x6)
  L2 Unified 262K (x6)
  L3 Unified 12582K (x1)
------------------------------------------------------------------------
Benchmark                                 Time           CPU Iterations
------------------------------------------------------------------------
BufferCreateEmpty                        80 ns         80 ns    8692413
BufferCreate/1                          167 ns        167 ns    4197951
BufferCreate/4096                       248 ns        248 ns    2843737
BufferCreate/16384                      634 ns        634 ns    1142335
BufferCreate/65536                     3617 ns       3617 ns     173150
BufferAddString/1                        19 ns         19 ns   36257595
BufferAddString/4096                    145 ns        145 ns    4893086
BufferAddString/16384                   545 ns        544 ns    1265914
BufferAddString/65536                  3381 ns       3380 ns     206982
BufferAddBuffer/1                        42 ns         42 ns   16663929
BufferAddBuffer/4096                    167 ns        167 ns    4217249
BufferAddBuffer/16384                   568 ns        568 ns    1188415
BufferAddBuffer/65536                  3428 ns       3427 ns     203859
BufferMove/1                             51 ns         51 ns   13703457
BufferMove/4096                          51 ns         51 ns   13676683
BufferMove/16384                         51 ns         51 ns   13746784
BufferMove/65536                         51 ns         51 ns   13672409
BufferMovePartial/1                      63 ns         63 ns   11022407
BufferMovePartial/4096               116484 ns     116443 ns       5970
BufferMovePartial/16384              464042 ns     463950 ns       1509
BufferMovePartial/65536             1858934 ns    1858315 ns        375
BufferReserveCommit/1                    96 ns         96 ns    7123594
BufferReserveCommit/4096                 97 ns         97 ns    7174042
BufferReserveCommit/16384                99 ns         99 ns    7152930
BufferReserveCommit/65536              1027 ns       1026 ns     685488
BufferReserveCommitPartial/1             95 ns         95 ns    7250355
BufferReserveCommitPartial/4096          96 ns         95 ns    7351706
BufferReserveCommitPartial/16384         96 ns         96 ns    7192618
BufferReserveCommitPartial/65536       1004 ns       1003 ns     698589

Docs Changes: N/A
Release Notes: N/A
Related Issues: #4952
Related Pull Requests: 5441
Signed-off-by: Brian Pane brianp+github@brianp.net

@jmarantz once this passes review, I'll use it to generate before/after performance data for 5441.


text:
Really build quic_platform_impl_lib as a library.

Description:
Really build quic_platform_impl_lib as a library. Currently this target only has "hdrs", but no "srcs", so "bazel build :quic_platform_impl_lib" is a noop which succeeds even if the impl header files are not compilable.
Risk Level: minimal, build only
Testing:

bazel build :quic_platform_impl_lib  : works
bazel build :quic_platform_impl_lib, with a typo in a quic impl header file  :  does not build
bazel test test/extensions/quic_listeners/quiche/platform:quic_platform_test --test_output=all:  All tests pass

Docs Changes: none
Release Notes: none
[Optional Fixes #Issue]
[Optional Deprecated:]

/assign @mpwarres

/retest

/retest

/retest

/retest


text:
using ~/.envwarden wise?

Hi,
I assume this functionality is there for easiness and or automation.
I believe it's essential with any secrets vault it never gets stored decrypted on a file system.
But when you have an encrypted vault with the plain text master password stored together on a file system, you end up at that point.
Unintended inclusion of these files in backups or on remote servers where you have no 100% guarantee you are the only one being able to access the underlying storage could be a risk.
Would it not be better to rely on the login/unlocked state of the parent shell?
Ideally only in login state (lock vault immediate after login in) and in an unlocked state when you want to mimic the .envwarden behavior?
Gr, J

It's a trade-off, and I think users understand it well. AWS does the same thing with their CLI and I imagine lots of other tools.
In addition:

Nobody's forcing you to place your credentials (btw, the .envwarden file can include just an email). If you don't want to use it, don't.
You can and should create separate Bitwarden users with limited access only to the secretss they need. That's up to the user as well.
If you prefer to trade availability (if the system reboots, it can continue to operate) over confidentiality, then .envwarden allows you to do it.

So I'm inclined to keep it. Perhaps the trade-offs can be explained on some Wiki page? but I think typical users of envwarden should be familiar with this already. There's nothing new here.

Nobody's forcing you to place your credentials. If you don't want to use it, don't.

True, but printing it on execution prominently every time suggests it's the recommended way to go.
I would suggest to leave it for the help function and doc to point to that option than.

The .envwarden file can include just an email, not necessarily the full credentials.

That's handy, did not realize that.
You might even want to be able to set the preferred Bitwarden endpoint/server in the future.

If you prefer to trade availability (if the system reboots, it can continue to operate) over confidentiality, then .envwarden allows you to do it.

I get the impression this is the use case difference between us.
In my use case I use the bw client, enwarden en browser plugin in a similar way.
They help me with my daily manual tasks in which I need to be able to easily access my credentials on demand. I always use a YubiKey to login.
Can you explain the use case in which you need permanent, persistent non interactive access to your secrets?  This will help me to not suggest things that conflict with that use case.

True, but printing it on execution prominently every time suggests it's the recommended way to go.
I would suggest to leave it for the help function and doc to point to that option than.

I don't think so. It's simply indicating that the file wasn't found, and highlight this as an option.

I get the impression this is the use case difference between us.
In my use case I use the bw client, enwarden en browser plugin in a similar way.
They help me with my daily manual tasks in which I need to be able to easily access my credentials on demand. I always use a YubiKey to login.
Can you explain the use case in which you need permanent, persistent non interactive access to your secrets? This will help me to not suggest things that conflict with that use case.

Yes, I think your use-case is different from the stated goals of envwarden actually. These are stated in the tagline:

Manage your server secrets with Bitwarden

So the primary use-case for envwarden, and the reason I created it, is to let you use secrets on a typically unattended, non-interactive environment (servers).
It sounds like your use case is just to simplify fetching things from the bw cli? Of course, it's a totally ok use-case, but not what my primary goal for envwarden at the moment.

Yes, I think I will not try to merge my changes anymore as the use cases are too different indeed.

Closing this one for now.

source: gharchive/issue

authors: gingerlime jalbstmeijer

repo: envwarden/envwarden

license: MIT


text:
When auto-deferring requests, send them to the new queue

Finishes fixing #215
We should probably have a config option for this, but since @stwalkerster is currently on rewriting the config system, I'll leave that to him.  :P

:shipit:

repo: enwikipedia-acc/waca

license: Unlicense


text:
Different environments note

added note about different environments -> different config should be.
Also attached sample for common config RPi3+Buster+SoundCard

Got it. I had solved my issue with  env so thought such clarification could be helpful for someone other (i did not changed anything in readmy, I have added a para about different possibilities)

I can't maintain this module any more.
Have you interest to take new ownership of this module?
https://forum.magicmirror.builders/topic/12779/wanted-new-ownership-of-modules?page=1

Sorry for bothering. This module found new owner now. In the meantime, thanks for everything. I’m quitting.

repo: eouia/MMM-Volume


text:
Allow boolean literals as values for flags

 Issue by emilk
Friday Jan 31, 2020 at 11:04 GMT
Originally opened as https://github.com/clap-rs/clap/issues/1649

The behavior of --flag=false setting the flag to the value true has caused problems for me many times. The problem is that boolean arguments are treated differently than arguments of other types.
As an example, say you have a few arguments to your program being called from someplace like so:
my_app --name=${name} --age=${age} --alive=${alive}
The first two will work as expected, but the third will be a bug with no error or warning message. This special case for the boolean type is very annoying. I would advocate a more orthogonal design.
Here is my suggestion for how to parse boolean flags:

Argument
Flag value

empty
false

--flag
true

--flag=true
true

--flag=false
false

--flag=other
Helpful error message

The problem with this comes when considering how to treat other potential ways to express boolean, e.g. 0/1, no/yes, False/True. We could add these as well to the above table, or stick to the Rust convention (true/false). Either way would work for me.
In summary: the principle of least surprise suggests that if --int=42 should work the same as --bool=false.

 Comment by TeXitoi
Friday Jan 31, 2020 at 12:35 GMT

https://github.com/TeXitoi/structopt/issues/212#issuecomment-561093886

 Comment by pksunkara
Saturday Feb 01, 2020 at 19:34 GMT

Possible solution is to have a setting which allows flags to also allow boolean literals as values.

 Comment by colemickens
Monday Jul 20, 2020 at 08:30 GMT

If there's a workaround someone could share, that would be great (I was wondering if maybe it's possible with the builder, or a custom parser? It seems like structopt has a way, but I can't find such functionality in clap at first glance).
To elaborate on justification for this bug... It is more than just surprising behavior. From what I can tell, it actively prevents certain designs. For example, I have a flag that really should be on by default (--create-users) and I don't want a --dont-create-users flag, I really want the user to have to say --create-users=false if they are expert enough to opt-out.

 Comment by CreepySkeleton
Monday Jul 20, 2020 at 19:00 GMT

You couldn't find this functionality because it doesn't exist.
The key is that flags do not take value in clap, period. Flags that take value are called options. Options can be either present (possibly with a number of values following) or not. There's no notion of "if this option has one value and the value equals false then pretend that the option wasn't present".
structopt can do it because it applies postprocessing - conversion - to the values, and what you observe is result of the conversion. It doesn't change the fact that the option was actually present. You can simulate it with
// create an option with optional value
Arg::new("pseudo-flag")
    .possible_values(&["true", "false"])
    .long("foo")
    .min_values(0)
    .max_values(1)

/// ...

let setting = app.value_of("pseudo-flag") != Some("false");

 Comment by dimo414
Friday Feb 05, 2021 at 07:17 GMT

#815 is related and might eliminate the need for boolean literals.

 Comment by colemickens
Wednesday Jul 22, 2020 at 05:35 GMT

Thank you for the detailed explanation @CreepySkeleton, I hadn't quite understood the important distinction between "options" and "flags". It turns out, this also works, since I prefer explicit boolean options over "flags" -- https://github.com/clap-rs/clap/blob/dd5e6b23131f16ef8b090a8482f1b97c6a693498/clap_derive/examples/true_or_false.rs

 Comment by ldm0
Saturday Jul 31, 2021 at 09:11 GMT

I don't think clap needs to do something for this specific behaviour, you can get this behaviour by using default_missing_value and parsing later.
Here is the demo:
https://github.com/clap-rs/clap/pull/2649/files#diff-cf9f91bfd0a1de87f6e066071af5d05182179587e65ec540ed4cfba30ec1709bR113

 Comment by rami3l
Sunday Aug 01, 2021 at 20:56 GMT

@pksunkara Sorry, I changed my PR #2619 description to close another issue other than this, but I didn't reword the commit. Would you mind reopening this one?

 Comment by epage
Monday Aug 02, 2021 at 15:50 GMT

Now that #2619 is merged, we have an example for how to use clap's existing API for accomplishing the request in this Issue (taken taken from a previous comment).
Is this sufficient for resolving the need here or is there still interest in there being some baked in way of getting this behavior (possibly controllable with a ArgSetting / AppSetting)?

 Comment by rami3l
Monday Aug 02, 2021 at 16:47 GMT

@epage In the end, no new examples has been added to the examples folder, so this remains to be a problem.
The thing that I'm considering now is that, for env vars it seems that we almost certainly have to include a string-literal-to-bool mechanism (which I'm currently working on) to replace the presence check, since it's quite a common practice.
Later on, if that's included, in my opinion it's better to do the same with flag literals for the sake of consistency. Of course, it would be better if this behavior is optional, and controlled by a new settings item.
Thus, the previously mentioned methods should only be considered as a workaround to satisfy some very specific needs.

 Comment by ldm0
Monday Aug 02, 2021 at 16:51 GMT

@epage In the end, no new examples has been added to the examples folder, so this remains to be a problem.
The thing that I'm considering now is that, for env vars it seems that we almost certainly have to include a string-literal-to-bool mechanism (which I'm currently working on) to replace the presence check, since it's quite a common practice.
Later on, if that's included, in my opinion it's better to do the same with flag literals for the sake of consistency. Of course, it would be better if this behavior is optional, and controlled by a new settings item.

Please check https://github.com/clap-rs/clap/blob/286fda0b4a243e19d73a254d2dc17c794f4320e5/tests/default_missing_vals.rs#L113-L141
I don't think it's necessary to do this in clap.

 Comment by rami3l
Monday Aug 02, 2021 at 17:14 GMT

@ldm0 Thanks for your reference. Surely, I can see that this task can already be handled by the clap API with some handwritten validation functions.
I personally accept your solution, but the question that I really want to ask, is what level of API clap wants to provide for its users.
I wonder what a new user might guess about this library, and how we can guide them to get the solution that they want. That's all I care about. I chose a battery-included, opinionated approach, but you have the right to disagree, and as long as we keep being user-friendly, I'm satisfied with that outcome.

 Comment by epage
Monday Aug 02, 2021 at 17:59 GMT

Sorry, missed that and hadn't caught up with your comment in #2539.
Personally, I see args and envs as separate entities that have their own context from a combination of history and user expectations.  We should be consistent within their context rather than forcing a consistency between things users generally have treated differently.
env vars have historically been C-like in using 0/1 or present/not-present.  More recently I feel like I've seen true/false used.  Hence the need for a str2bool.
For arguments, I've generally seen one of

Present / not-present
--present, --no-present
--name <enumeration> with some being yes/no, true/false, always/never

Only in rare circumstances (--color) do I see any of these mixed.  I've also not seen an argument parsing library that has baked in support (default or not) for mixing these without going custom (like the suggested workarounds)
As I've mentioned before, variable number of arguments has been brittle enough that clap warns about it.  We can instead require an equals but I'm concerned about user confusion when some arguments need an = while others do not.
This issue and several others have been contributing a sense in me that we might want to re-think clap's API.  Clap's development has been fairly generous in supporting everyone's use cases but the API is designed such that to do so, means it all has to be baked into clap, creating a large API surface and making it harder to get the behavior you need.  After 3.0, I'm interested in exploring ways to allow people to customize the behavior of clap so that clap can be all things to all people without having to support all things out of the box.

 Comment by rami3l
Monday Aug 02, 2021 at 17:59 GMT

@ldm0 So at least something should be added to the examples, whether it's the demo of a new feature or appropriate use of existing features. Since this is a decision that must be made carefully, it's always nice to have a discussion.
@epage Yeah, I also have the impression that the clap codebase is lacking appropriate reorganization. In this sense, I agree that we should make less stuff baked-in. It's always nice to have some good defaults though, even as an external extension.

 Comment by nrdxp
Thursday Nov 18, 2021 at 19:21 GMT

should this not be closed now that #2664 is merged?

 Comment by hasezoey
Thursday Nov 18, 2021 at 19:36 GMT

should this not be closed now that #2264 is merged?

from what i can tell, #2264 is a issue, not a PR and does not look related - do you mean #2664?

 Comment by nrdxp
Thursday Nov 18, 2021 at 19:53 GMT

yes, was a typo sorry about that :sweat_smile:

 Comment by pksunkara
Thursday Nov 18, 2021 at 20:51 GMT

No, that PR only deals with environment variables while this issue is also about converting option values into boolean. With our new direction regarding plugin based architecture post v3, this is a prime candidate for being made a plugin.

repo: epage/clapng


text:
Iterating over ArgMatches

 Issue by neysofu
Friday Mar 09, 2018 at 12:04 GMT
Originally opened as https://github.com/clap-rs/clap/issues/1206

Hi, I am using Clap in a little side project and I would like to suggest a minor feature. I am ready to implement it myself and send a PR if needed, I just need a few pointers. The feature at hand is an ordered iterator over ArgMatches: as far as my understanding goes, Clap doesn't allow to freely iterate over the parsed arguments. What if my application APIs are dependent upon the order of the arguments? GNU find comes to my mind. Calling index_of for every argument can be expensive if you have a lot of them.
If this feature were to be implemented, what would the return type and name of the method be?

 Comment by kbknapp
Monday Mar 19, 2018 at 17:58 GMT

Sorry for the wait, I've been on vacation with my kids this past week :)
Do you mean iterating over only positional values, or over all args that have been used? Also, do you envision this iterating over non-matched args as well?
If you'd like to take a stab at implementing I'd be happy to mentor you! This is how I'd attack it:

Draw out how you see this working, including the questions I listed above (including any edge cases you can think of)
I start with some usage code (such as in a test) to make sure the ergonomics are correct/comfortable
Write some tests in tests/matches.rs for the various uses you've drawn up in step one
I then just test that file alone with cargo test --test matches or can further test just a single function in that file with cargo test --test matches -- name_of_function
Start the implementation (this will vary greatly depending on how you've designed it)

For the implementation once we have a good design I can give you some pointers as to where the changes you'll want to make are located / any particulars associated with those changes.
Once all your new tests pass, I'd run a full test suite cargo test --features "yaml vec_map wrap_help unstable" and make sure nothing broke.
If you need to see the debug output while you're building testing a single function use cargo test --test matches --features debug -- name_of_function

 Comment by neysofu
Monday Mar 19, 2018 at 19:54 GMT

First of all, thanks for taking the time to address this! I hope you enjoyed your vacation.
The API I had in mind wouldn't be constrained only to positional arguments, but to all the arguments that have been used. Currently ArgMatches allows you to know which arguments have been used and their index in respect to all other arguments, yet it lacks a way to actually iterate over them.
I mean adding an API to access the order in which options are given. Ex.:
cmd --abc --xyz
cmd --xyz --abc

Let's say my command's behavior is specific to the order in which the options abc and xyz are given. As long as it's only two arguments I can get away with calling index_of for one of the two and figuring out which comes first. But what if I provide many another options? My idea is offer a method over ArgMatches that gives an iterator over the arguments in an ordered fashion:
arg_matches_1.iter_raw() == vec!["abc", "xyz"];
arg_matches_2.iter_raw() == vec!["xyz", "abc"];

This example is just off the top of my head and I am sure it could be improved.
Please correct me if I talked nonsense at any point because I am not very familiar with the API.

 Comment by kbknapp
Monday Mar 19, 2018 at 20:25 GMT

To make sure it's not an XY problem, how does your CLI work with the order of args? I've always seen conflicts/overrides as the main driving factor for when order matters. Both of which handled in the parsing logic.
The only other form I've seen is for things like include/exclude logic where there aren't really hard conflicts/overrides at the parsing level, but further up the execution stack there are. I've only seen this between a handlful of args at the most, and hence iterating over the indices isn't an issue.
This is of course not to say my list is exhaustive, I'm sure there are other use cases out there!
This actually wouldn't be a huge change for clap to implement this, but it would introduce an additional dep (such as indexmap ) and thus would need to be behind a non-default cargo feature.
The change you'd make is using cfg statements to change the hashmap to an indexmap and provide an ArgMatches method to simply return an Iterator of the requested info, perhaps as a tuple? (Such as (name, &[vals])?) This could be similar to how Arg::values_of works.
For the iterator itself, it'd fine to use the Values impl as a guide.

 Comment by kbknapp
Monday Mar 19, 2018 at 20:28 GMT

Another more lengthy option (but arguably more correct) is instead of returning an Iterator of some custom data type tuple, returning the MatchedArg itself. I say more lengthy because you'd have to document MatchedArg and provide the appropriate methods to get at it's internals such as values, occurrences, and indices. However, this is more flexible in the long run as you wouldn't need to add more ArgMatches methods in order to deal with different types of iteration...you'd just let the calling code deal with it has it wants.

 Comment by neysofu
Tuesday Mar 20, 2018 at 15:24 GMT

This actually wouldn't be a huge change for clap to implement this, but it would introduce an additional dep (such as indexmap ) and thus would need to be behind a non-default cargo feature.

That's a pity. I thought it would be as simple as adding a method to ArgMatches, with no fundamental changes to the actual program.

 Comment by neysofu
Tuesday Mar 20, 2018 at 15:22 GMT

My application has a custom version subcommand that works this way:
// Prints human readable version if no options are given
$ cmd version
Cmd 2.42.1-rc1 (fj23o83b)

// Switches to line-by-line format if options are given, to facilitate machine readability. The requested data is printed in the specified order.
$ cmd version --tags --major
rc1
2

However there are many other use cases. Tasks execution order in a Gulp-like application, apply filters in a specific order in GNU find, ecc.

 Comment by kbknapp
Wednesday Mar 21, 2018 at 00:33 GMT

Right now, clap uses a HashMap to hold the matches, which is inherently not in order. Switching to an IndexMap would be basically a drop in replacement, but because it's another dep I'd want people to have to opt-in to it.
So it basically would be just a cfg statement which adds the method on the matches struct and uses an indexmap instead of hashmap.  And I'd create a struct to act as the iterator, and impl Iterator for it.
Something like (details left out for brevity):
#[cfg(not(feature = "indexmap"))]
struct ArgMatches {
    args: HashMap
}

#[cfg(feature = "indexmap")]
struct ArgMatches {
    args: IndexMap
}

impl ArgMatches {
    #[cfg(feature = "indexmap")]
    fn iter(&self) -> MatchIter {
        MatchIter { iter: self.args.iter() }
    }
}

#[cfg(feature = "indexmap")]
struct MatchIter {
    iter: // whatever IndexMap::iter returns
}

#[cfg(feature = "indexmap")]
impl Iterator for MatchIter {
    type Item = // whatever args.iter().next() returns

    fn next(&mut self) -> Self::Item {
        self.iter().next()
    }
}

So it's a pretty straight forward change.

 Comment by neysofu
Wednesday Mar 21, 2018 at 04:44 GMT

Thanks for the tips, I'll start working on a prototype then. 👍

 Comment by neysofu
Saturday Mar 24, 2018 at 23:19 GMT

You can take a look at the prototype here. There is some more work to do, specifically:

write documentation for both the feature and the iter method;
remove the feature from the default set (it was a quick hack to make it build every time without passing arguments);
add some more tests.

Please let me know how you like the API and if you want any changes. Congrats on the codebase BTW, I know this is a small change but still, it is a pleasure to dive in.

 Comment by neysofu
Saturday Mar 24, 2018 at 21:49 GMT

I feel hesitant adding an iter method to ArgMatches; it feels like a duplicate of indexmap's functionality. ArgMatches.args: IndexMap is already public, so what's wrong with the user doing matches.args.iter()?

 Comment by kbknapp
Sunday Mar 25, 2018 at 03:17 GMT

I feel hesitant adding an iter method to ArgMatches; it feels like a duplicate of indexmap's functionality. ArgMatches.args: IndexMap is already public, so what's wrong with the user doing matches.args.iter()?

My current policy is public, but undocumented internals are effectively private and should not be relied on. Sure, I can't stop anyone from using them directly, but there's the caveat that if I change them without warning it's considered a breaking change. Hence the #[doc(hidden)]
Most of the time public but undocumented is because it needs to be public because other mods (or eventually crates) need to touch it, but those mods (or crates) are maintained by myself or other clap members and thus it's essentially just a private API.

 Comment by kbknapp
Sunday Mar 25, 2018 at 03:22 GMT

Looks like a good start! It's a small nit, but let's change the feature name to iter_matches because iter is somewhat ambiguous and may conflict with other types of iteration we may do in the future.
Let me know if you have any other questions :+1:

 Comment by neysofu
Sunday Mar 25, 2018 at 05:18 GMT

I'll create a PR for discussing further details, sounds good?

 Comment by kbknapp
Sunday Mar 25, 2018 at 19:21 GMT

Yep, I'd actually prefer it that way because it's easier to comment and review :smile:  :+1:

 Comment by XX
Saturday Apr 14, 2018 at 20:07 GMT

I also need this functionality

 Comment by bradwood
Sunday Apr 26, 2020 at 19:57 GMT

Hi all, I'm also looking to use something like this. I'd like to process my args in a functional fashion. The PR, however, seems to have died a death. Given that 3.0 is on the horizon how much of a bad idea is it for me to just use matches.args.iter() in 2.x?  Also, will this make it into 3.0?
PS, I don't need ordering.

 Comment by CreepySkeleton
Monday Apr 27, 2020 at 07:59 GMT

@bradwood Not as bad as you'd think: 2.x branch is frozen. I'd be really surprised if we change something regarding publicity of those fields because there is plenty of code out there relying on those, ugh. So, if you aren't planning on switching to 3.0 and you're OK with the fact that every time you use private API god kills a kitten, you can do that, yes.
Beware: those will be truly private in 3.0.
I suspect it won't make it into 3.0. The main question is: what are you going to iterate through? You can't have &Arg from ArgMatches because it stores Ids, basically a hash of those. On doesn't simply restore the Arg from the hash.

 Comment by bradwood
Monday Apr 27, 2020 at 12:32 GMT

i am trying to call map() on each arg I find to invoke the appropriate handler function based on the argument passed...
And, as regards the kittens, I'm cool with that!  :)

 Comment by CreepySkeleton
Monday Apr 27, 2020 at 12:39 GMT

clap has Arg::validator that is called on every value passed in. And of course, you can always iterate over std::env::args() and map it as you please; you don't really need clap for that.

 Comment by pksunkara
Monday Apr 27, 2020 at 14:48 GMT

I think I can see a certain use case for this where people want to do dependency injection pattern for evaluating their args.

 Comment by CreepySkeleton
Monday Apr 27, 2020 at 17:02 GMT

I want my CLI to accept options yes|no but I want the value held my context struct to be some concrete type

Resolved by derive (and partially by value_of_t* methods).
I'm not sure I get your "handlers" idea, I imagine it's something akin https://github.com/clap-rs/clap/issues/1185:

a single Arg::custom_parse which accepts a function that takes the arg/value currently being parsed, and returns an Option where None is skip this value (i.e. parse it as a different arg), or Some(T) is "save this to the matches" it could be the value as passed in, or it could be something different entirely (i.e. a map).

Some thoughts:

When is it ran, exactly? Before default values/environment variables were populated or after? What about required/conflicts stuff? How does it interact with old-style validators? With groups? Possible values?
I'm not sure I'm ready to answer these questions.

We've already got the flush-related bug. The problem here that clap exits with sys::exit() which implies that no destructors are being accounted for, no finallizers are being run, the text still awaiting to be processed by IO facilities is lost, etc... When I'm reading the description above, I'm given impression that "heavy" side-effect functions are OK, so will be users.

In nutshell: I think this kind of tool is too vague and too powerful for a command line parsing library to provide. I don't think clap should be trying to accommodate every single CLI in existence, the number of well-supported designs is quite enough already.

 Comment by bradwood
Monday Apr 27, 2020 at 17:38 GMT

FWIW, I'm not needing these map()s to run during arg parsing, I'm happy to pass an iterator of matched arguments into a function pipeline. I'll take a look at the validator, as I've not really looked properly at that. It might work for my use case.

 Comment by CreepySkeleton
Monday Apr 27, 2020 at 17:47 GMT

@bradwood Out of morbid curiosity, what is the core problem you're trying to solve? Why do you think map is  a good way to approach this kind of problem?
I suspect you're just "doing it wrong".

 Comment by kbknapp
Monday Apr 27, 2020 at 18:48 GMT

Resolved by derive (and partially by value_of_t* methods).

Exactly. I'm describing a problem/issue that existed prior to derive macros. The "handlers" was just a common theme that popped up every so often, especially when people were moving from Python based CLIs which offer a "when this argument is used, run this function." Although that's a totally different way to build/design a CLI and thus I don't think it's really applicable to how clap runs.

I don't think clap should be trying to accommodate every single CLI in existence, the number of well-supported designs is quite enough already.

100% agree. I'm just providing some historic context :wink:

@bradwood I agree with @CreepySkeleton it sounds like you may be approaching the problem from a particular design angle and we may be seeing it as an XY problem.
Some of the principal issues with a feature mapping over arguments (and their values) is:

For us (clap) to provide it, it needs to be general enough to fit all (or most) use cases, and with feature in particular there are a lot of things to consider and edge cases
If we're talking about true map (i.e. T->U), that can essentially already be done easily as @CreepySkeleton mentioned
If we're talking about handlers (i.e. perform some action for each argument); unless these actions are only blind side affects they:

need some sort of context passed to/from them (other args, maybe application context, etc.)
cannot rely on deterministic order or hierarchy
most likely need the concept of fallibility (what happens on failure)

Those final three bullets are some of what making this feature a general clap feature difficult. If you don't have any of those requirements and are truly only wanting blind side affects, I'd question if there may be a better way to represent the CLI.
If you can give some examples of what you're trying to do, we may be able to either point you in a direction or give you a way to accomplish that task with existing features.

 Comment by bradwood
Monday Apr 27, 2020 at 19:02 GMT

Heh. Given that I'm only 3 weeks in and coming from Python, I'm almost certainly doing it wrong! :smile:
Here's the situation:

I have a subcommand with 1 positional and about 20 non-positional arguments (some are just flags, and some take 1 or more values).
I want to drive another builder API with arguments passed in via clap. There is (almost) a 1-to-1 relationship between clap argument and the other API's builder methods
I could do a massive chain of if statement (although maybe a match would be better) that goes something like the below pseudo-code

if arg_n passed then:
     builder = builder.fn_n(arg's value[s]);
 else if..
(repeat 30 times)

Instead, more as a academic exercise than anything else, I'm trying to figure out if there's a more elegant way of doing in in a functional style... something like:
    // NOTE: args.args is a public, but _undocumented_ field in clap.rs
    args.args.iter()
        .map(
            |(k,v)| println!("{} {:?}",*k ,v) //replace this with a mechanism that I can use to call the appropriate builder method
            ).count(); // I'm using this to drive the function pipeline, purely for the side effects, rather than for the resulting value (I accept that this is probably not idiomatic)

What the aforementioned mechanism is, I'm not quite sure (yet)... but I was hoping to figure out a way to look up the other API's builder method that I need to call using the name of the clap argument passed...
I wait with bated breath for you to give me some beautiful idiomatic pattern that'll make this into anything other than 30 if statements!
Thanks!

 Comment by kbknapp
Monday Apr 27, 2020 at 19:17 GMT

Yours is not a super common case. Essentially, your CLI is a facade for a builder API? A few things about what you mention stood out to me (emphasis mine):

There is (almost) a 1-to-1 relationship between clap argument and the other API's builder methods

Unless you have a way of mapping those non 1:1 arguments, you'll end up with errors. So dealing with those errors is the fallible requirement I mentioned above.

In your example you use println! which kind of hides the problem, but in your pythonesque example you have builder = builder.fn_n which means each of these maps/handlers/whatever need to receive context, mutate it, and send it to the next fn (in this case its the builder). This is the  context sending I mentioned above.

Although it's not the 2 line map you're hoping for, the most idiomatic way to deal with this type of situation is via the clap derive macros. Your CLI would evaluate to some type, lets call it MyRawOpts, and your other builder would then impl From<MyRawOpts>. And by using some combination of macros you could decrease the verbosity of the From<..> impl to essentially a loop and map.

 Comment by bradwood
Monday Apr 27, 2020 at 19:27 GMT

I'm still reeling from everything you just wrote below the horizontal rule 2 comments above... :thinking:.  I'm going to have to do a whole lot of research on this, which is no bad thing... Thanks for your help (and patience) here!
As a final question, if I may, where would I look for examples of Clap and derive macros. Is this documented somewhere? I'm digging through the docs but not finding much on this topic (but I might not be looking in the right place).

 Comment by kbknapp
Monday Apr 27, 2020 at 19:21 GMT

Although it's a more advanced topic, and probably defeats the purpose of what you're trying to do, you could combine your own Custom Derive macro, and do something like #[derive(Clap, IntoMyBuilderApi)] which would instead impl Into<MyBuilderApi> for MyRawOpts automatically, and using things like the syn crate loop through the struct fields of MyRawOpts simply applying them to your builder.

 Comment by kbknapp
Monday Apr 27, 2020 at 19:39 GMT

The clap derive macros are the new big feature of clap 3.x which is still in beta and thus not formally released yet. So the documentation is still lacking.  The source is under the clap_derive crate in the root of this repository. You can look at the examples directory of clap_derive for some ideas.
If you'd prefer, you can use structopt which is well documented, until clap 3x is released. structopt uses clap 2.x internally, and all the clap 3.x macros are based on structopt (i.e. for clap 3.x we combined efforts between the two crates :wink:).
For info on writing Custom Derive macros:

Rust book section on macros
clap_derive source
structopt source
You'll need to reference the docs for the following two crates which are pretty critical to procedural macros:

syn
quote


text:
Space is acceptable as parameter value in prompts

EPAM AI DIAL chat version
0.15.0
What happened?

Create a prompt with parameters
Type '/' sign in input message and select created prompt
Type a space as value for parameters in prompt
Click on Submit button  -> the window is closed; space is used as parameter value -> bug

Expected result: space should be not accepted as valid value

Confidential information

[X] I confirm that do not share any confidential information

Verified on staging env successfully

repo: epam/ai-dial-chat


text:
Describe Custom Application Deletion Logic Feature

With the introduction of the custom application deletion logic in the new release, it is imperative to update our documentation to include a detailed description and updated screenshots showcasing how users can utilize this new feature to clear their environments. This documentation update is essential for ensuring users can easily understand and implement the custom deletion logic feature.

The Customize Environment Cleanup page has been added to documentation.

repo: epam/edp-install


text:
Compatibility with whitecube/nova-flexible-content

Hi,
i'm trying to make a dependency inside a flexible content layout (with  whitecube/nova-flexible-content), like so:
class AddressPrivateLayout extends Layout
    {
        protected $name = 'address-private';
        protected $title = 'private address';

        public function fields()
        {
            return [
                Boolean::make('Check me', 'checkme')

                NovaDependencyContainer::make([
                    Text::make('Dependent')
                ])->dependsOn('checkme', 1),

            (...)

...but nothing happens when i check the "Check me" field.
Am i doing something wrong, can you help?
Thanks,
Nils

@nilsE The fix is quite simple for the dependency container to work with flexible content, though another problem appears due to duplicated content. There is an issue at flexible content somewhere addressing this problem. They don't have the time to address these issues.
I haven't had the time to send a PR fixing the duplicated content issue, because it might break some stuff I don't know about.
So short story, no. I don't see a quick fix to get both packages to work together without modifying flexible contents code.

@nilsE Please verify if v1.2.10 solves the problem.

works - thanks a lot!!!

authors: nilsE wize-wiz

repo: epartment/nova-dependency-container


text:
about download file

do it support to download file by  using  HTML   ?
I tried, but it seems not work.

If the file is not too large, you can use the data URI scheme.
You add following in the head section:
<script>
  function saveContent(fileContents, fileName)
  {
      var link = document.createElement("a");
      link.download = fileName;
      link.href = "data:" + fileContents;
      link.click();
  }
</script>

and use following function, which takes as first parameter the path of the file to download, the name used for saving as second parameter, and the dom object as provided by the Atlas toolkit as third parameter.
sub send {
  my ($sourceFilename, $targetFilename, $dom) = @_;

  open my $in, '<', $sourceFilename or die;
  binmode $in;

  my $mime = "application/octet-stream";

  my $data = '';

  while (1) {
      my $success = read $in, $data, 1000, length($data);
      die $! if not defined $success;
      last if not $success;
  }

  close $in;

  $dom->executeVoid("saveContent('" . $mime . ";base64," . encode_base64($data,'') . "', '" . $targetFilename . "')");
}

You will find a working example at https://replit.com/@AtlasTK/atlastk-perl-github-issue-3#main.pl.


text:
Broken on latest browserify

Hello epeli,
externalize looks broken with the latest browserify. I get this error error when I try the example code :
TypeError: Cannot call method 'bind' of undefined
at BundleManager.resolveModules (/path/node_modules/externalize/index.js:37:44)
I check and the bundle object don't have _resolve property anymore, any clue to fix it?
Thanks

This module is not maintained anymore. Please try substack/factor-bundle instead.

Thanks for your answer!
Yeah I tried it but it didn't allow async loading.
So I tried partition-bundle but didn't success to acheive what I want with the common part + async loading + an easy way to config all that..
At the end I switched to webpack witch provide all that features from the box, very happy with it :)
Cheers!

@epeli this is a shame, it's such a handy module. How hard would it be to fix? I've got it working by replacing _resolve with _bresolve and manually calling my callback after two seconds. So it's working except it's not calling the callback, I wonder why that is.

To be clear, it's working with a simple module.exports = 'something' child module.

No idea. I haven't followed how Browserify internals has evolved. This was written for 2.0 and the latest Browserify release is 12. That's quite a few major releases...

@epeli good point. I think I'll give up :smile:. I think I might just create a new bundle without externalize, being careful about duplicate dependencies, and loading them on demand kinda like what you're doing except instead of requiring it, each module would have to add itself into a global which is already there. Down the line I might use factor-bundle or something.

authors: Makio64 adam-lynch epeli

repo: epeli/browserify-externalize

license: mit

license_source: bigquery


text:
fixed param type when calling BAL_DSP_LOG_DISPLAY

In Methods Fullscreen and Popup FM BAL_DSP_LOG_DISPLAY was called called with the wrong type for formal parameter i_t_log_handle.

Thanks for this!


text:
Internal code overhaul - 2.0.0

Overarching branch for work related to overhauling internal code structure/quality.
Branching checklist

[ ] There is an issue associated with your PR (bug, feature, etc.. if not, create one)
[ ] Your PR description references the associated issue (i.e. fixes #123456)
[ ] Code is in its own branch
[ ] Branch name is related to the PR contents
[ ] PR targets master

Static analysis checks

[ ] All rust files are formatted using cargo fmt
[ ] All clippy checks pass when running cargo clippy --all-targets --all-features -- -D warnings -A clippy::deref_addrof
[ ] All existing tests pass

Documentation

[ ] New code is documented using doc comments
[ ] Documentation about your PR is included in the README, as needed

Additional Tests

[ ] New code is unit tested
[ ] New code is integration tested, as needed
[ ] New tests pass

something's borked with the codecov report on this branch, created a new one

something's borked with the codecov report on this branch, created a new one


text:
use-global-types

I used this codemon to remove all the type imports from React in my projects to just reference the global namespace of React. It's a cosmetic change but it keeps React imports to only be one used at runtime.
Optionally there could be a way to rework this to include type imports. So:
import { useState, MouseEvent } from 'react'

Into:
import { MouseEvent } from 'react'
import type { MouseEvent } from 'react'

or
import { useState, type MouseEvent } from 'react'

Ahh interesting edge case. I wonder what the best way to detect that it's a React import, perhaps if there is also an import of MouseEvent?
Whilst talking about events, I only white listed the ones I knew about and ones we use in the app. It would great to be able to import or generate a list of all the React typings manually although I could not find out a way.

Closing since it's generally not trivial to detect if an event is supposed to be a React event or DOM event. Any detection algorithm is likely to produce false-positives.


text:
fix: renaming sends proper path to joinpath

Fixes #486
Currently self.filename is nil because string is passed as self.

Thanks @jemag!

authors: epwalsh jemag


text:
[Bug] CPEM fails to sync service when additional service is in default namespace

Hello,
When there is another service in default namespace, CPEM gets confused by it and does healthcheck (doHealthCheck()) using port specified by it instead of default/kubernetes.
In my instance I have additional service created by grafana-agent in default namespace:
---
apiVersion: v1
kind: Service
metadata:
  namespace: default
  name: kubelet
  labels:
    app.kubernetes.io/managed-by: grafana-agent-operator
    app.kubernetes.io/name: kubelet
    k8s-app: kubelet
spec:
  type: ClusterIP
  ports:
  - targetPort: https-metrics
    port: 10250
    name: kubelet
  - targetPort: https-metrics
    port: 10255
    name: kubelet-read-only
  - targetPort: cadvisor
    port: 4194
    name: cadvisor

After this service was created CPEM log started to output this:
I0301 06:56:58.137339       1 eip_controlplane_reconciliation.go:206] handling update, service: default/kubelet
E0301 06:56:58.331549       1 eip_controlplane_reconciliation.go:135] failed to handle node health check: failed to assign the control plane endpoint: POST https://api.equinix.com/metal/v1/devices/0aeb3ae2-1c24-4718-9b39-a129e29e453e/ips: 500 Oh snap, something went wrong! We've logged the error and will take a look - please reach out to us if you continue having trouble.
I0301 06:56:58.331594       1 eip_controlplane_reconciliation.go:125] handling update, node: iot-equinix-01-control-plane-c79zn
E0301 06:56:59.035057       1 eip_controlplane_reconciliation.go:209] failed to sync service from default/kubernetes to kube-system/cloud-provider-equinix-metal-kubernetes-external: failed to apply service kube-system/cloud-provider-equinix-metal-kubernetes-external: Service "cloud-provider-equinix-metal-kubernetes-external" is invalid: spec.ports[0]: Invalid value: 10250: may not expose port 10250 externally since it is used by kubelet
I0301 06:56:59.408680       1 eip_controlplane_reconciliation.go:521] doHealthCheck(): no control plane IP assignment found, trying to assign to an available controlplane node
I0301 06:56:59.412585       1 eip_controlplane_reconciliation.go:242] healthcheck node https://10.68.53.139:10250/healthz
I0301 06:56:59.414836       1 eip_controlplane_reconciliation.go:276] will not assign control plane endpoint to new device iot-equinix-01-control-plane-c79zn: returned http code 401
I0301 06:56:59.414843       1 eip_controlplane_reconciliation.go:242] healthcheck node https://147.28.128.229:10250/healthz
I0301 06:56:59.417049       1 eip_controlplane_reconciliation.go:276] will not assign control plane endpoint to new device iot-equinix-01-control-plane-c79zn: returned http code 401
I0301 06:56:59.417056       1 eip_controlplane_reconciliation.go:242] healthcheck node https://10.68.53.131:10250/healthz
I0301 06:56:59.420457       1 eip_controlplane_reconciliation.go:276] will not assign control plane endpoint to new device iot-equinix-01-control-plane-ws7kt: returned http code 401
I0301 06:56:59.420467       1 eip_controlplane_reconciliation.go:242] healthcheck node https://147.28.146.199:10250/healthz

As you can see for some reason it tries to apply service having port 10250 - failed to apply service kube-system/cloud-provider-equinix-metal-kubernetes-external: Service "cloud-provider-equinix-metal-kubernetes-external" is invalid: spec.ports[0]: Invalid value: 10250: may not expose port 10250 externally since it is used by kubelet.
Then additionally healthchecks started to use port 10250 and started to fail (correct port is 6443).
All this resulted into losing EIP assignment and losing access to control plane over load balancer created by CAPM. After service is deleted, CPEM starts to work correctly - so this is very easy to reproduce.
If you need any additional info, please let me know.

The health check code changes were introduced in https://github.com/equinix/cloud-provider-equinix-metal/pull/230 where there is some discussion that may be relevant.

https://github.com/equinix/cloud-provider-equinix-metal/blob/8cc2e100bdabe7ea2a680af72a4a6398ec3ea90e/metal/eip_controlplane_reconciliation.go#L456-L457 is where the first defined port is assumed. Perhaps we should ensure that the port name matches the expected value. Is https the port name we want?

Hi,
I'm not super familiar with codebase, but before opening issue I went over the code. For me what I don't understand is how it got to the point that service uses port 10250, when there is FilterFunc (see code) that should return only service default/kubernetes.
This is in the log. That means that service even though default/kubelet should be filtered out, the Handler.AddFunc() is processed.
I0301 17:24:39.918984       1 eip_controlplane_reconciliation.go:206] handling update, service: default/kubelet
I0301 17:24:39.919137       1 eip_controlplane_reconciliation.go:173] handling update, endpoints: default/kubernetes

I think this was not desired.

Potentially unrelated: Walking through the process and potential traps, if an EIP is assigned to multiple hosts it will not be unassigned appropriately before reassignment is attempted.  Unassigning in a for-loop may be a better approach here:
https://github.com/equinix/cloud-provider-equinix-metal/blob/8cc2e100bdabe7ea2a680af72a4a6398ec3ea90e/metal/eip_controlplane_reconciliation.go#L263-L267

https://github.com/equinix/cloud-provider-equinix-metal/blob/8cc2e100bdabe7ea2a680af72a4a6398ec3ea90e/metal/eip_controlplane_reconciliation.go#L233-L237 seems to be agnostic to the type of IP - public, private, or IPv6.  Since all addresses registered with the node should be listening, this seems ok.

@Lirt I think you spotted it. https://github.com/equinix/cloud-provider-equinix-metal/blob/8cc2e100bdabe7ea2a680af72a4a6398ec3ea90e/metal/eip_controlplane_reconciliation.go#L189 may have the wrong logic to capture default/kubernetes in the presence of additional services.  The && should be || or the logic should be simplified to return true only on default/kubernetes.

So resolutions could be
			FilterFunc: func(obj interface{}) bool {
				s, _ := obj.(*v1.Service)
				if s.Namespace == metav1.NamespaceDefault && s.Name != "kubernetes" {
					return true
				}

				return false
			},

vs
			FilterFunc: func(obj interface{}) bool {
				s, _ := obj.(*v1.Service)
				if s.Namespace != metav1.NamespaceDefault || s.Name != "kubernetes" {
					return false
				}

				return true
			},

I like the first one more. Thoughts?

Sorry to run into discussion but isn't the point to do the m.syncService only for service default/kubernetes? :smile:
    // Filter only service default/kubernetes
    if s.Namespace == metav1.NamespaceDefault && s.Name == "kubernetes" {
        return true
    }
    // else
    return false

Yeah, updated above, thanks.

An additional concern in this error report is:

failed to handle node health check: failed to assign the control plane endpoint: POST https://api.equinix.com/metal/v1/devices/.../ips: 500 Oh snap, something went wrong! We've logged the error and will take a look - please reach out to us if you continue having trouble.

This error scenario appears to be retried too frequently. This may be amplified by the number of nodes in the cluster.

Thank you very much for all support. :pray:

authors: Lirt cprivitere displague

repo: equinix/cloud-provider-equinix-metal


text:
Text improvements to the teaser component

We would like to have a few more options on the text within the teaser component.

Bullet points/Numbers
Spacing enhancements so when enter spacing is reduced.

[Uploading... Screenshot 2023-12-04 at 15.00.28.png]

@NickHaggerty1 added more options, could you verify it works as expected

Hey @millianapia looks good. Approved.
One issue connected to this component. The spacing between the big text and the link when selecting the BIG text option is different/wrong. Is this something quick to fix on this card or do we need to make a new issue?

@NickHaggerty1 it is now fixed

@millianapia NICE :) thanks for fixing. Card is approved

repo: equinor/energyvision


text:
Improved table view - Sticky column and highlight of selected row.

Is your feature request related to a problem? Please describe.
In the content view, the user can select a large numbers of curves to display in the same table view.
When the number of curves (columns) are large, the horizontal scrollbar appears.
Scrolling to the right in order to see the right most columns, hides the left most columns, in particular the checkbox column and the index column (time or depth).
In addition, there is a mix of left and right centred columns which make the table view look "strange". Today all numbers are aligned to the right, and the rest to the left. Is this optimal or can readability be further enhanced?
Describe the solution you'd like

When scrolling to the right, the two first columns (checkbox, and index) shall be sticky.
Selected rows shall be highlighted, also when moving cursor away from selected row.
Improve the readability of the left / right centred columns if possible

Describe alternatives you've considered
Additional context

This user story will be implemented by #1827

repo: equinor/witsml-explorer


text:
Enhance tools

enhance tools api
clean up old tools
add whitebox_tools for watershed tools

Pull Request Test Coverage Report for Build 365

0 of 0   changed or added relevant lines in 0 files are covered.
45 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.3%) to 69.764%

Files with Coverage Reduction
New Missed Lines
%

/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/quest/plugins/plugins.py
2
95.92%

/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/quest/util/param_util.py
5
68.35%

/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/quest/api/tools.py
18
20.41%

/home/travis/miniconda/envs/test-environment/lib/python3.6/site-packages/quest/plugins/base/tool_base.py
20
48.21%

Totals

Change from base Build 361:
0.3%

Covered Lines:
4527

Relevant Lines:
6489

💛  - Coveralls

repo: erdc/quest


text:
setup/test mosaik

Support Ergo Desktop
Part 1: https://docs.google.com/document/d/1utZnD0BVKTzp7TLn8pmgvfoMcDBU9YIw9lyMzKce5AU/edit?usp=sharing
Part 2: https://docs.google.com/document/d/1_O7ZEVfkGxqyviNNXJEazynpzkuIkN5ue4xr1i-VmWQ/edit?usp=sharing
Part 3: https://docs.google.com/document/d/1R_ubi3RQKEebrXW5Obe-3dklUKRRpGGXsg03Hh4pgFo/edit?usp=sharing
Part 4: https://docs.google.com/document/d/1HjSIwI3cS70qyEv7zWtv5Rrc24JQtOh1H48uGquqZ3U/edit?usp=sharing

Ben is interested

repo: ergo-pad/ergopad-api


text:
I followed the same steps but couldn't find the lab contents

Hello,
Do anyone have the same issue ?
I should able to see the lab contents but unfortunately I couldn't see it.
vagrant@ubuntu-jammy:~$ dir
get-docker.sh
vagrant@ubuntu-jammy:~$ ls
get-docker.sh
Thanks in advance.

If I understand correctly, you've used vagrant to launch a VM, and then inside of that VM you cannot see the lab files.  Assuming this is correct, the thing to note is that the guest VM and your host computer have different file systems.
There's a shared directory mounted -- inside of the guest VM, it will be /vagrant.  All of the files that are in the directory where the Vagrant file is will be there.  e.g.,  I'm using windows, and have this repo in this directory c:\vagrant\npp-linux-01-intro.  After running vagrant up, and vagrant ssh, I do the following:
vagrant@ubuntu-jammy:~$ ls /vagrant
LICENSE  README.md  Vagrantfile  demo1  demo2  demo3  lab1  mac-arm
vagrant@ubuntu-jammy:~$ exit
logout
Connection to 127.0.0.1 closed.
c:\vagrant\npp-linux-01-intro>dir
Volume in drive C is OSDisk
Directory of c:\vagrant\npp-linux-01-intro
06/17/2024  03:05 PM              .
06/17/2024  03:04 PM              ..
06/17/2024  03:05 PM              .vagrant
06/17/2024  03:04 PM              demo1
06/17/2024  03:04 PM              demo2
06/17/2024  03:04 PM              demo3
06/17/2024  03:04 PM              lab1
06/17/2024  03:04 PM             1,068 LICENSE
06/17/2024  03:04 PM              mac-arm
06/17/2024  03:04 PM             1,578 README.md
06/17/2024  03:04 PM             3,989 Vagrantfile
3 File(s)          6,635 bytes
8 Dir(s)  609,166,888,960 bytes free

Thank you a lot , I'm in.

Hi @eric-keller , I am having some troubles with the shared directory. I'm on an ARM based mac-os system. I've set a "shared-directory" on UTM but I can't find the directory within the VM itself so I can't seem to copy the submission.tgz out to my laptop to submit to the course. Could you please provide any advice you might have for this? Thanks in advance! :)

Hi @AndyJiang99, I'm a course facilitator for this course.  I will queue up a task for myself to evaluate the shared directory option via UTM but that may take me a couple days to address.  However, I also expect that you should be able to ssh to the running UTM VM from your mac-os and similarly use a command line tool like scp to pull the submission file off the VM.

Hi @AndyJiang99, I took a further look at this.  It looks like there are some additional installations/setups required to get the shared directory option to work with UTM VMs.  I'd still recommend using ssh and scp.  If you are connected to the VM and run ifconfig you should see an IP that is accessible to the mac os host.  You should then be able to connect to the VM from a mac os terminal with that IP, for instance ssh vagrant@[vm ip].  In the same way you should be able to execute scp from the mac os terminal to pull files off the vm.  Let me know if you need further assistance on this.

Hi, thanks for looking into this for me! I managed to set up ssh on my local machine and the UTM VM to be able to scp files out from VM onto my local machine. I'll add some steps to under the mac-arm directory in this repo and open a PR for it so others on Mac will be able to do it as well going forward


text:
iOS 16 breaks camera view

Looks like now that I have iOS 16 installed on stuff it wont scan, added a debug button that dumps a image on page of the canvas from Quagga.canvas.dom.image; and the content is just a black box, preview still works so looks like the JS can't capture the image stream.
I am playing around with custom capture of the video element and see what I can find.

I am writing to a image element by calling this to see the camera input, looks fine on non iOS 16 devices so looks like a video render bug it might be due to new changes or might just be a iOS bug so can keep an eye on this going forward and report if I notice it get fixed in any future Developer Beta.
var video = document.getElementsByTagName("VIDEO")[0];
var datauri=getScreenshot(video, 1);
function getScreenshot(videoEl, scale) {
scale = scale || 1;
  const canvas = document.createElement("canvas");
  canvas.width = videoEl.clientWidth * scale;
  canvas.height = videoEl.clientHeight * scale;
  canvas.getContext('2d').drawImage(videoEl, 0, 0, canvas.width, canvas.height);

  return canvas.toDataURL();

}

This is not a problem in the stable version of iOS and the new beta builds from what I can see.

My apologies for not seeing this one before.  Time since June has been really busy.  I'm glad that Apple seems to have fixed the issue though :D :D Thanks for reporting back.
Much appreciated.

authors: anthonyrossbach ericblade


text:
delete

porfavor delete esse site pois ele carrega muitas verdades e as pessoas não querem ouvir e ver isso, ninguem quer saber sobre o verdadeiro formato da terra, deixe nos acreditar que a terra é uma bola molhada giratória

desculpe, não vou deletar a verdade biblica tem que ser mostrada para que as pessoas vejam a verdade.


text:
[ENH] Add apply_over function

This makes it easier to implement window functions in pandas when we want to do grouped aggregation without reducing the rows of our DataFrame.

@dsaxton I think I was a bit quick to hit the merge button on #363. Turns out Pipelines didn't error out when the tests failed for take_first and apply_over.
I will provide a code review shortly.

I might not be understanding this function correctly; could you perhaps elaborate on how this differs from groupby_agg, which was contributed a while ago?
Also, can you add the function to an appropriate section under docs/reference/general_functions.rst?

Ah, hadn't seen groupby_agg.  You're right, this function is basically doing the same thing so I'll go ahead and close this.

Thanks for thinking of the idea, and making the PR, nonetheless!

authors: dsaxton ericmjl

repo: ericmjl/pyjanitor


text:
Just Ignorant.

Nice app!
But what if I was like, totally:

...?

You can always try a quick fix!

Knowing is half the battle, bruh

repo: ericsecution/mern-crud-blog


text:
get_open_orders

Hi , someone know how to have the real value of "limit"
when i send for example my_bittrex.get_open_orders('btc-xvg')
the limit is showing bad result 'Limit': 1e-05
other test with get_order_history() the limit answwer correctly

It's not a bad result, it's python output using a mathematic shorthand instead of putting 0.00001 it is making it 1e-05 which is same.

repo: ericsomdahl/python-bittrex


text:
cp缓存好像没有作用。app显示的缓存还是为0

大佬有研究过吗。复制了别的机器的缓存但是app的显示没有缓存。

缓存目录大体如下, 注意目录层次, config目录不要复制别人的, 只复制cache目录到.yfnode目录下,我这测试这样复制是管用的.
.
└── .yfnode
    ├── cache
    └── config
        ├── epem
        │   ├── cachenode.cert
        │   └── cachenode.key
        ├── nct.txt
        ├── NodeCfg.json
        ├── rii.txt
        └── share.json

是的  我就是这么复制的。复制了100多个g但是app显示还是为0并且相同缓存的机器跑的是很快的。你的app显示是你复制后缓存的大小吗？

我这里复制是管用的,复制后重启一下容器, 然后要等一段时间,别着急, 如果确认目录结构没问题, 就重启一下, 过1小时再看


text:
Feature/numeric range filter

Closes: #9

Codecov Report

Merging #165 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master      #165   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          413       471   +58
=========================================
+ Hits           413       471   +58

Impacted Files
Coverage Δ

django_property_filter/filters.py
100.00% <100.00%> (ø)

django_property_filter/utils.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

authors: codecov-io ericziethen

repo: ericziethen/django-property-filter


text:
TypeError: () got an unexpected keyword argument 'dtype'

I'm trying to run stylize.py on Ubuntu 20.04 with the latest tensorflow (2.3.0) and keras (2.4.3). Tensorflow 1.* isn't available for python 3.8 shipped with Ubuntu 20.04.
I've changed  tf.get_default_graph() to tf.compat.v1.get_default_graph() and tf.placeholder_with_default to tf.compat.v1.placeholder_with_default and everything seems worked until this:
Traceback (most recent call last):
  File "stylize.py", line 126, in <module>
    main()
  File "stylize.py", line 46, in main
    wct_model = WCT(checkpoints=args.checkpoints,
  File "/full/path/WCT-TF2.3/wct.py", line 33, in __init__
    self.model = WCTModel(mode='test', relu_targets=relu_targets, vgg_path=vgg_path,
  File "/full/path/WCT-TF2.3/model.py", line 62, in __init__
    self.vgg_model = vgg_from_t7(vgg_path, target_layer=deepest_target)
  File "/full/path/WCT-TF2.3/vgg_normalised.py", line 35, in vgg_from_t7
    x = Conv2D(filters, kernel_size, padding='valid', activation=None, name=name,
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 925, in __call__
    return self._functional_construction_call(inputs, args, kwargs,
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1098, in _functional_construction_call
    self._maybe_build(inputs)
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2643, in _maybe_build
    self.build(input_shapes)  # pylint:disable=not-callable
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/layers/convolutional.py", line 197, in build
    self.kernel = self.add_weight(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 597, in add_weight
    variable = self._add_variable_with_custom_getter(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/training/tracking/base.py", line 745, in _add_variable_with_custom_getter
    new_variable = getter(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_utils.py", line 133, in make_variable
    return tf_variables.VariableV1(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 260, in __call__
    return cls._variable_v1_call(*args, **kwargs)
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 206, in _variable_v1_call
    return previous_getter(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 199, in <lambda>
    previous_getter = lambda **kwargs: default_variable_creator(None, **kwargs)
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 2583, in default_variable_creator
    return resource_variable_ops.ResourceVariable(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 264, in __call__
    return super(VariableMetaclass, cls).__call__(*args, **kwargs)
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1507, in __init__
    self._init_from_args(
  File "/home/user/.local/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1651, in _init_from_args
    initial_value() if init_from_fn else initial_value,
TypeError: <lambda>() got an unexpected keyword argument 'dtype'

Actually this log is after I converted the tree with tf_upgrade_v2. But the log after my manual editing was the same.
A command I used for running stylize.py:
python3 stylize.py --checkpoints models/relu5_1 models/relu4_1 models/relu3_1 models/relu2_1 models/relu1_1 --relu-targets relu5_1 relu4_1 relu3_1 relu2_1 relu1_1 --style-size 512 --alpha 0.8 --content-path imags --style-path styles --out-path output

An image is in imags directory, style image is in styles directory and output directory is empty one.

+1

Thank you. I would try it, but I don't know how to install python 3.6 on Ubuntu 20.04. And I got worked pytorch version (PytorchWCT) with python2 if someone have the same issue. I installed pip2 by an official script and so on.

repo: eridgd/WCT-TF


text:
Command Help

Hi
can you tell me what exactly command you execute , bcoz i tried either with auth or not out put is same (see screenshot)
if you tell me exact command so i can verify in terminal as well as in app

Yes its the command at the path in the text above the text field: /bin/ls
And that is just to show an example for a command to list files in a location.

The with auth or not is to show that you can run commands as root with or without an auth prompt

i mean if i run sudo ls
Last login: Fri Oct  5 18:19:36 on ttys003
Deepaks-iMac:~ deepak$ sudo ls
Password:
.DS_Store			.lldb
.Trash				.mono
.android			.profile
.bash_history			.stCommitMsg
.bash_sessions			Applications
.cache				Desktop
.cocoapods			Documents
.config				Downloads
.emulator_console_auth_token	Library
.gitconfig			Movies
.gitflow_export			Music
.gitignore_global		Pictures
.gradle				Public
.hgignore_global		resource
.keystore

when not sudo
Deepaks-iMac:~ deepak$ ls
Applications	Documents	Library		Music		Public
Desktop		Downloads	Movies		Pictures	resource

why this type of output in app  ?

I can change the command if it is confusing, but if you get an exit status of 0 it works.

but i'm not able to get difference between auth and non auth execution

That is correct, its tinning the same command, this OS an example project to show how you can use helper and if you want to run stuff without a prompt you can and if you want to prompt for acces you can do that too. The difference is the auth prompt.

you are right
it would be great if you see difference
like i have a project needs to be updated to latest swift and helper tool , if your project do what i said then i don't need to worry about it just need to focus on using it in and updating my project to swift , otherwise i have to first focus on this project is working or have bug etc then can move to other
above is just i feel , you can ignore it
but thank you once again

Yes i agree this is not clear. I will update the example to show the difference.

Hi
i did different test to sure app is working or not ?
result is it's perfect
thank you

one request can you make it to accept custom path and arguments e.g  path = /usr/bin/sudo , arguments = "ls -a" , arguments must be of array type
then it will be perfect replace for STPriviledgedTask

authors: erikberglund insanelydeepak

repo: erikberglund/SwiftPrivilegedHelper


text:
Dataset in SRGAN

The dataset in the Drobox can't be downloaded.

Hey. See the dataset web page for other options. http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

repo: eriklindernoren/PyTorch-GAN


text:
[v6 rc4] Wizard form fails validation after a few steps.

Hi!
Using the technique from the rc.4 Wizard Form Example, I've run into some strange issues, where validation stops working after some pages. I've tried swapping the order of the pages, and they work fine, as long as they are moved to earlier steps. I use disabled={pristine || submitting || invalid} on the submit buttons, but when the bug occurs the form says it's valid, even though it should fail and not be able to submit.
I have compared the code for a few hours, and it seems identical to the sample, except for more steps (5) and other Fields (radio buttons, checkboxes etc.)
I'll try and give more information on request, but unfortunately I don't have time to make a complete public test case at this moment.
I think the issue was also on rc.3, but alas I cannot easily switch back to test, because of all the changes that happened in rc.4.
Best Regards

This isn't much to work with, but I'd suggest that you try and examine the Redux store and see if the registeredFields correspond to the ones displayed on each page.

@erikras Thanks for responding, I know it was a bit vague, but I was lost ;)
I have inspected the Redux events redux-form/REGISTER_FIELD & redux-form/UNREGISTER_FIELD.
I can see that they both seem fire correctly, but when bug occurs there are zero elements in registeredFields. ;(

Yep, that would make validation not run. 😄 Sounds like you're clicking submit when you have no fields displayed. ?

There are fields on all the pages, one field on the first (checkbox), three radio button groups on the second page (each group contains three radio buttons and Field for the error message, as in the example), and then the third page has a single radio button group.
It correctly dispatches the UNREGISTER_FIELD & REGISTER_FIELD events, but they do not get added to registeredFields when the bug occurs, the first two pages are nicely updated in registeredFields. The pages themselves work fine, and if I switch the pages around, they validate fine, and the previous working page is now buggy.

I'm not sure if it's related, but on rc4, the form values are being sent even though it has errors.

If you go to the wizard example (http://redux-form.com/6.0.0-rc.4/examples/wizard/) I think you can reconstruct the problem. Fill out the form until step 3. Then go back to step 2 and remove or invalidate the email. You are then able to go to step 3 and submit the form.

It seems like it is enough to just navigate backwards in the wizard to totally break the validation. The problem did not occur in rc.3.

Fix published in v6.0.0-rc.5.

authors: eliseumds erikras fini jervi

repo: erikras/redux-form


text:
Route based wizard form example

Hello.  I'm using redux-form in a project and so far it's been great to work with.  The wizard form is exactly what I'm looking for except I need each page to be route based.
I've read through the docs and searched the interwebs but I can't seem to find an example for this.  I need to split a form into 9 pages.  I'm using react-router v4.  I need access to the browser's forward/back buttons, the ability to generate unique urls for certain pages, and add slide-in slide-out animated transitions for each page.
The only example I can find is an answer from @erikras in #260
Is it possible to achieve this with redux-form?  If so is this a common enough use case to add an example to the docs?

I think this could get too complex to demonstrate in just a few bytes in a web page.
What you could do is create an example repo and share it here, then others might find it as well.

@gustavohenke Thanks for getting back to me.  Sounds like a plan.  If I get it working I'll put together an example repo.
Might try splitting the wizard up into separate forms and rendering them on their own page.  When each form is submitted the values could be sent to a FormContainer.  The container component would wait to send the values to the server until the final form is submitted.
Still a little fuzzy on working with values in redux-form though.  I've been using formValueSelector() but I'm not sure that's the best method.  As mentioned in the docs it triggers a re-render each time a value changes.  Maybe it would be best to POST each form's values individually.

I found the list of friendly libs/tools here: https://github.com/erikras/redux-form/blob/master/tools.md
When you're done you can send a PR to add it there :)


text:
integrity of main package?

peep checks all the stuff it finds in requirements.txt, but how does it check that the main package is as expected (and thus, that the code in there or the hashes in requirements.txt have not been tampered with)?
so, if I didn't miss something, could it work like this for the main package:
peep install --sha256 <documented_hash_from_safe_source> mainpackage

I have so far assumed that people have their own ways of trusting their source code. However, given that SHA1 is not very collision resistant anymore and thus git hashes no longer sufficient, it wouldn't be a bad idea to deploy from a zip or PyPI checkout and check against a local SHA256 that you computed before uploading the package. (Note that hashes of directories, like VCS checkouts, are unsupported at the moment: metadata is unstable, and temp files commonly worm their way in, so it's a tricky problem.) For now, you could make a one-package requirements file and run peep twice: once against that and again against the requirements file included in your top-level package (if, in fact, it ships with the sdist, which it typically doesn't).
I'll give this some thought. Peep's functionality is merging into pip 8, so I was already on the track of creating some kind of lightweight bootstrapper to get that whole heavier toolchain going without trusting virtualenv, pip, and setuptools.
Cheers!

Well, not everybody is installing from git. Normal users just do "pip install ..." (or "peep install ...").
BTW, please also consider that hashes are not the best to assure authenticity (esp. if the hash somehow would come from same source as the package). In general one rather needs a digital signature (like gpg sig + a way to trust the signing key). Hashes can be regenerated easily by a 3rd party so they match any tampered stuff. As pip already supports uploading gpg signed packages, that might be something to consider. Both ways could be combined.

+1 for integrating pip's gpg authentication system in here... if all was needed was the pubkey of the author of the software in requirements.txt, that would be great!
we could even just rely on the web of trust otherwise (or at least try to)...

@ThomasWaldmann Peep has never been about authenticity. As you say, pip + wheels offers author trust already. But I don't have any interest in trusting authors, along with every possibly buggy release they make in the future. Nor do I trust their key management with Mozilla's production systems. In peep's model, you examine the code, decide if you trust that specific release, and then lock it down with locally generated hashes. It's about repeatability. Signatures solve a different problem. Now, signing your git commits or your top-level package is a good idea. When pip 8 comes out, you'll be able to have your signatures and your hashes too, assuming you ship a requirements file with your top-level package (not common practice at the moment).

As for hash-verifying the top-level package, I've filed a ticket about it on pip, which is where I think we should solve it: https://github.com/pypa/pip/issues/3257.

authors: ThomasWaldmann anarcat erikrose

repo: erikrose/peep


text:
Check for camera reset when switching from Car test

In this video the camera gets into a bad state: https://youtu.be/TR3CcqG4Oes?t=374

I could not reproduce this.


text:
[Keys] Remove mintkey from docker images (once functionality is provided by eris-keys)

@compleatang commented on Mon Oct 10 2016

neither Dockerfile not Dockerfile.deploy has mintkey

authors: compleatang zramsay

repo: eris-ltd/eris-db


text:
Itprotv

https://www.reddit.com/r/haskell/comments/7xk3wd/jobs_sr_developer_tech_lead_position_at_itprotv/

Thanks

authors: erkmos kanishka-azimi

repo: erkmos/haskell-companies


text:
Extension not working on some embedded videos

Windows 10 x64 Enterprise LTSB 1607
Slimjet Browser (based on Chromium 68.0.3440.75) (Official Build) (64-bit)
Extension doesn't kick in on some embedded videos as observed here:
http://www.guru3d.com/news-story/military-operations-benchmark-released.html
I'm hoping that dev still maintaining it and the issue will be resolved.We need it working,helps a lot on older systems.Thank you.

@erkserkserks  it actually start happening on every page with embedded youtube link.On the actual youtube site the extension is working as intended.Here is more fresh links:
https://www.techpowerup.com/247624/katamari-damacy-comes-to-the-pc-as-a-remastered-edition
https://www.guru3d.com/
(scroll down until you see  the player-Forza Horizon 4 video)

@erkserkserks  i was looking into the page code(not sure if this is matter but just in case) and the player is fetched from s.ytimg.com domain.The actual link is:
https://s.ytimg.com/yts/jsbin/player-vflkUTZn2/en_US/base.js
Will attach the script where i found all the codecs listed,hopefully can help you figure it out why it doesn't work.
base.zip

.....errors that i see in chrome dev tools:
Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.     at chrome-extension://aleakchihdccplidncghkekgioiakgal/src/inject/content_script.js:30:1

UPDATE: Ok...i got it working at guru3d.com.Had to allow cookies for youtube.com to be stored.Third party cookies were disabled that's why.No luck at techpowerup.com though.No errors showing in dev tools,i'm out of ideas on this one.

@avi12 If you want to push to this repository, you'll have to create a pull request first.
@dnmTX Try the new version (v1.0.9) of h264ify. I've added more youtube domains that this extension will run on, which should solve your issue.

@erkserkserks  tested,finally success 👍  on techpowerup.com. Good job,thank you for fixing it.The difference is,to make it work i had to allow youtube-nocookie.com to store cookies as i did for guru3d.com. With @avi12's extension,after he pushed the fix i didn't have to do that.Still,it works so i'm happy.
@avi12 thanks for pitching in man,very much appreciate the effort 👍

@avi12 If you want to push to this repository, you'll have to create a pull request first.

I pulled via WebStorm, then attempted to commit & push. Still got that error

@avi12 thanks for pitching in man,very much appreciate the effort 👍

No problem 😄

@avi12

I pulled via WebStorm, then attempted to commit & push. Still got that error

You can do it straight from the browser here,no need of additional programs for that.It's really easy,once you've done the changes you'll see there is a button to make pull request. I've done it several times and i'm not a coder or something(very limited knowledge),pretty sure it will be "walk in the park for ya" 👍

Well, I have no idea what is it talking about. From my manifest:

Maybe the permissions are associated with another extension?

Oh...i see,well,that make sense.Thanks for clarifying it @avi12 ,just had to make sure.
Cheers!

And since it didn't seem to break anything in my extension, I removed it. One less permission

Closing this to reduce the clutter.Thank you @erkserkserks  and @avi12 .Keep up the GOOD WORK guys!

authors: avi12 dnmTX erkserkserks


text:
got wrong FID using pretrained model

Hi, I sampled 50000 images using the provided pretrained CelebA model, but got a FID of 5.83 in the setting of timesteps=1000, eta=0, which is a margin away from 3.51 reported in the paper (when timesteps is set to 100, the FID is 10.13 while 6.53 reported in the paper). May I know where the problem is? Is the total CelebA dataset used for calculating FID?

@ztyang196 Hi, I sampled 50k images just the same way as you did, however, I got a FID of around 50. I examined the synthesized images which look similar to the images shown in the paper, and I have no idea whether I calculated the FID the wrong way. Could you please share your method to calculate FID score? Thanks!

Hi, I suspect that you didn’t downsample the training dataset to the same resolution as the synthesized images or you didn’t use the same way as this code to preprocess the training dataset

Hi, I suspect that you didn’t downsample the training dataset to the same resolution as the synthesized images or you didn’t use the same way as this code to preprocess the training dataset

Thanks for your suggestions! FYI, I use pytorch-fid to calculate the fid and get better results than that reported in the paper.

repo: ermongroup/ddim


text:
upload file with virtual path

fix [#1]

Coverage decreased (-5.4%) to 84.171% when pulling 07505af470fbfbb369b218f2bd74506655e99374 on pelenthium:master into 10f520cf8312d6729981b6cd30f1085d0fce436b on ernado:master.

authors: coveralls pelenthium

repo: ernado/selectel


text:
Proposal to use existing JSON Object models

I have a suggestion. The validator is using it's own object classes JsonParser and JsonValue.
The issue is that when a service needs to parse the payload for it's own needs, the parse will be done two times. Once by the service and once for the validator.
If we can use existing json parsers like jackson or Gson then we can parse it once and hand the parsed tree to the validator

Hello @ferozed , relying on an external library for json parsing was intentionally avoided in this library. The predecessor library uses the JSON-Java project and it caused problems in multiple ways. Moreover, last time when I looked at jackson, I couldn't find any way to obtain the line number & character position from the original json source (which this library uses in its validation error reports).
If you need to map an external json model (either jackson or gson), I suggest, instead of re-parsing, just mapping from one object model to an other.
Actually, in 0.19.0-RC1 which was released today morning, this library does the same when mapping from snakeyaml model to JsonValue , you can use it for reference. If you can keep the line number + character position info, like in this snakeyaml mapper function, then even better.
Your concern about re-parsing is definitely valid, better to avoid that.

authors: erosb ferozed

repo: erosb/json-sKema


text:
Remove whitespace from list of racial words

The word white in the word whitespace is not related to skin color and is thus not racial.
See https://github.com/retextjs/retext-equality/pull/126.

This has been changed now. I'll put out a new release once I get a chance to update the CI workflow.

authors: jdkato rillig

repo: errata-ai/alex


text:
🐛 一些问题。。。 | [Bug] Some problem...

您使用的版本？ | Your usage version?

您使用的场景？ | Your usage scenarios?

您做了什么操作？ | What did you do?
原LDAP无数据，所有LDAP内的组织架构及用户都在go-ldap-admin中创建的。创建分组及对应用户完毕后，点击同步原LDAP用户信息，将分组信息同步至了用户列表，同时报错如图下节
您遇到了什么问题？ | What are your problems?

#### 您期望的结果是怎样的？ | What is your expected outcome?
点击同步原LDAP用户信息仅同步用户，分组信息不同步，且不报错

您好 @Mrliuch👋，我已收到您的反馈，我将安排时间考虑您提交的信息并进行回复。-- 这条信息是由自动回复的机器人发出的。
Hello @Mrliuch. I have received your feedback, and I will arrange time to consider the information you submitted and reply. -- This message is sent by an automatic reply robot.

先同步分组，再同步用户。

先同步分组，再同步用户。

操作过，分组信息仍会同步至用户列表内

额，手机号字段的问题嘛，你看看是不是为空或者重复了。

额，手机号字段的问题嘛，你看看是不是为空或者重复了。

分组设置不了手机号呢，现在的问题是分组的信息同步到了用户列表中，导致用户那里面同步信息报错

额，手机号字段的问题嘛，你看看是不是为空或者重复了。

分组设置不了手机号呢，现在的问题是分组的信息同步到了用户列表中，导致用户那里面同步信息报错

你手动给他加上，在试试同步呢。

一般来说，分组不会同步到用户表里，如果同步了，那只能说明一个情况，这个分组里有了用户的一些属性。看你上边的截图，感觉是之前在使用的过程中，没有针对用户和分组进行很好的隔离设计，所以导致会有分组同步到用户。
这里建议阅读一下文档对项目里设计思路的介绍：http://ldapdoc.eryajf.net/pages/5683c6/
另外如果无法直接将原来数据平移的话，可能得考虑按照项目设计的思路，重建用户以及分组的数据信息。

一般来说，分组不会同步到用户表里，如果同步了，那只能说明一个情况，这个分组里有了用户的一些属性。看你上边的截图，感觉是之前在使用的过程中，没有针对用户和分组进行很好的隔离设计，所以导致会有分组同步到用户。
这里建议阅读一下文档对项目里设计思路的介绍：http://ldapdoc.eryajf.net/pages/5683c6/
另外如果无法直接将原来数据平移的话，可能得考虑按照项目设计的思路，重建用户以及分组的数据信息。

有一个前提，我只是将空的LDAP对接至了go-ldap-admin，LDAP内没有任何数据，除了LDAP的admin认证账号，所有的分组、用户都是通过go-ldap-admin创建的，创建后再点击同步LDAP用户按钮就会将之前创建的分组同步至用户列表。而并非将已有的LDAP数据同步至go-ldap-admin

一般来说，分组不会同步到用户表里，如果同步了，那只能说明一个情况，这个分组里有了用户的一些属性。看你上边的截图，感觉是之前在使用的过程中，没有针对用户和分组进行很好的隔离设计，所以导致会有分组同步到用户。
这里建议阅读一下文档对项目里设计思路的介绍：http://ldapdoc.eryajf.net/pages/5683c6/
另外如果无法直接将原来数据平移的话，可能得考虑按照项目设计的思路，重建用户以及分组的数据信息。

感谢提醒，应该是没有按照文档提前初始化ou=people，但仍希望可以增加灵活性，可创建，同步其他顶级或次级ou至go-ldap-admin

@Mrliuch 这块儿灵活性目前还没想好怎么设计，如果全量支持，工作量会很大。所以暂时只能按照里边固定的思路来用

authors: Mrliuch eryajf ixiaoyi93

repo: eryajf/go-ldap-admin


text:
Current Version Number

I noticed that the previous version numbers all started with 0, however the latest release is version v4.0.0. If I'm not mistaken, it should be v0.4.0. The README also mentions the future version v0.5.0.
https://github.com/esbullington/react-d3/releases/tag/v4.0.0

Thanks for reporting. Fixed


text:
only stop the newrelic-daemon if it has not been run by the agent

It should fix #167 #58.
The first Chef run the newrelic.cf will be there.
We stop and disable the daemon.
We then move the newrelic.cfg
The next Chef run the newrelic.cfg file will not be there so it will no stop the daemon.
If the ini file has been changed it will reload new_resource.service_name and apply the change.
It should prevent the recipe to always stop the daemon and forcing to restart Apache/php-fpm

Hi @jujugrrr,
thanks for your contribution: that is brilliantly simple!
Kind regards,
David

thanks for your contribution: that is brilliantly simple!

hehe cool, I though about something more complex but it was not working as well.
:+1:

authors: djoos jujugrrr

repo: escapestudios-cookbooks/newrelic


text:
Function type throws error

With @return {function(foo, bar)} I get the following error:
..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:440
            throw _iteratorError2;
            ^

TypeError: Cannot read property 'replace' of undefined
    at ..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:881:34
    at Array.map (native)
    at IdentifiersDocBuilder._buildTypeDocLinkHTML (..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:876:41)
    at IdentifiersDocBuilder._buildSignatureHTML (..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:1122:40)
    at ..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:469:38
    at IceCap.loop (..\node_modules\esdoc\node_modules\ice-cap\out\src\IceCap.js:319:15)
    at IdentifiersDocBuilder._buildSummaryDoc (..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:466:11)
    at IdentifiersDocBuilder._buildSummaryHTML (..\node_modules\esdoc\out\src\Publisher\Builder\DocBuilder.js:425:29)
    at IdentifiersDocBuilder._buildIdentifierDoc (..\node_modules\esdoc\out\src\Publisher\Builder\IdentifiersDocBuilder.js:77:40)
    at IdentifiersDocBuilder.exec (..\node_modules\esdoc\out\src\Publisher\Builder\IdentifiersDocBuilder.js:52:32)

Write variable type @return {function(foo:number, bar:string)}

Well, it still shouldn't throw a type error, even if the syntax is wrong :)

repo: esdoc/esdoc