neovim: Should statically link against jemalloc on OSX

Issue description
When dynamically linking to jemalloc on OSX, neovim can encounter this jemalloc bug --
https://github.com/jemalloc/jemalloc/issues/895.  Static linking somehow avoids that jemalloc bug, thus preventing people from running into issues like https://github.com/neovim/neovim/issues/5681 and https://github.com/neovim/neovim/issues/6972.
We're changing neovim to prefer static linkage for jemalloc on OSX, but that won't be released soon.  It may be worthwhile to change the NixOS package to static link.
Also, there was some concern that the upstream change could break the part of the package build that changes the path to the dynamic library.

Corresponding change in Homebrew: https://github.com/Homebrew/homebrew-core/pull/15393

@jamessan As indicated in https://github.com/jemalloc/jemalloc/issues/895#issuecomment-313786483, there is no issue (other than a program design failure in the case of neovim).
This is just guessing a solution based on incomplete analysis. As such, I kindly request you to close this issue again.
It will likely take a single person at least one week of work to fix Neovim, if not much more (since the issue is already open for at least one month). Nobody needs to fix jemalloc.
People working on Nixpkgs certainly have no business fixing this problem.

As indicated in jemalloc/jemalloc#895 (comment), there is no issue (other than a program design failure in the case of neovim).

Your comment in that issue is quite vague.  What documentation are you referring to?  What behavior is expected?

@0xABAB I agree with you that neovim should be fixed such that it can work with jemalloc dylib if possible. But in the meantime, until/unless that happens, it's usually best to distribute software that works if there are known workarounds that are effective.

@jamessan The burden of proof is on the reporter of an issue to show there is a problem. Sometimes a crashing program is that, sometimes it is not. In this case it is not.
I am referring to the documentation related to all the symbols used in that program. So, there are relevant POSIX standards, MacOSX platform documentation, etc.
@ilovezfs Except you are likely wrong. It will likely also break in the statically linked case, even though your tests say that it won't. It only tells me that your tests are not good enough or that you are lucky.
If you loved your users, you would warn them about possible data loss and data corruption, not make them happy with something which is nothing more than an illusion.

The burden of proof is on the reporter of an issue to show there is a problem. Sometimes a crashing program is that, sometimes it is not. In this case it is not.

Sure, I get that, but just saying "Something is wrong with your program, go away." doesn't help either.  I'm open to any information that can help resolve the issue rather than work around it.
The original reporter of the issue has a pretty simple program that illustrates the problem, so is there something that's clearly wrong with that program?

@jamessan You claim that the semantics of that program is simple and that's exactly where you are wrong. It's not simple, because otherwise someone didn't take the time to write it and you wouldn't be asking me, right?
I didn't give the advice for nothing. If you cannot prove that a particular program should work, what's there to discuss? Why even open an issue in the first place?
I could tell you what's wrong in detail, but that would take quite some time to write down and even then I have my doubts whether or not you would recognize what I would say as correct; it would likely result in another round of questions.
It would also send the wrong message; that I will debug the problems that others create carelessly. I want programmers to think before they write down a program. If that's too much to ask, I'd rather have these programs full of bugs, such that users will flock to other programs with less or no problems.

@jamessan
We're still using jemalloc v4.5.0. Are you sure that it is actually affected?
Perhaps we need input from Nix users that are vim users just to verify that it is the case.
/cc @garbas @lnl7

@matthewbauer https://github.com/jemalloc/jemalloc/issues/895#issue-234350118
It seems to at least affect >= 4.5.0

@jamessan @matthewbauer probably best would be to just include the patch directly from GitHub as Homebrew did it.

Or would it be better to include jemalloc's fix?

This can be closed since jemalloc is going to be removed in future versions c2343180d74f547d99abcc3c4979a9ebb047af17


Update batch details to include associated recipes, jobs, and products

This will allow adding links to associated items from the batch details UI.

On the batch detail page, create tables for the batch jobs, recipes, and products (similar to the source file detail page). Each of those three has the option to filter by batch_id.
Also, on both the batch detail page and each row of the batches table, display a completed recipes percentage (bar?) using batch.completed_recipe_count / batch.created_count * 100.0


Put dns_resolution_config field in dns_filter.proto as deprecated

Problem Description:
This PR is the code changes to deprecate dns_resolution_config field in dns_filter.proto for issue: #18053. This is a follow up PR of #17479.
Solution:

Put dns_resolution_config field in dns_filter.proto as deprecated.
This deprecation is causing CI compile_time_options test scripts failure, due to dns_filter_test.cc and dns_filter_integration_test.cc have dns_resolution_config in the config YAML file, and also called loadFromYamlAndValidate(), which will fail if --define=deprecated_features=disabled is included in the test command.
Replace dns_resolution_config in the config YAML file with typed_dns_resolution_config.

Build:
passed
Testing:
passed
Release Notes:
N/A
Issues: deprecate dns_resolution_config #18053
Fix#18053
Signed-off-by: Yanjun Xiang<EMAIL_ADDRESS>
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:]

For reviewers:
The changes replaced dns_resolution_config with the newly added typed_dns_resolver_config. The reasons to not test both of them are:

dns_filter code are using typed_dns_resolver_config to create DNS resolver.
if dns_resolution_config is in the configuration, the code converts them into typed_dns_resolver_config before creating DNS resolver.
The dns_resolution_config to typed_dns_resolver_config conversion part is implemented in dns_factory.[h|cc], and this conversion logic is heavily tested in dns_factory_test.cc, cluster_manager_impl_test.cc, .... Thus it's unnecessary to test them again here also wrap them with DEPRECATED_FEATURE_TEST().

/retest

/assign @mattklein123


Post processing broken in VR mode

Possibly the same underlying problem as https://github.com/CesiumGS/cesium/issues/8704 where full screen passes are not sampling the right part of the viewport.
Sandcastle (make sure to click the VR button) - AO only gets applied to the right eye.

Reminder: Cesium's "VR" mode pre-dates actual WebVR, which itself has been folded into WebXR.  Rather than fixing bugs in Cesium VR, consider replacing it with a more modern WebXR integration.


lazy einsum

Hi!
many thanks for this nice library. I dont understand how to run a lazy einsum please. For example in dask terms that would be:
import dask.array as da

x = [[1,2],[3,4]]
de = da.einsum('ij, nk -> ', x, x)
de.compute()

I might not get it right, but I believe under autoray this should be:
from autoray import lazy

x = [[1,2],[3,4]]
lx = lazy.array(x)
le = np.einsum('ij, nk -> ', lx, lx)

and this is where it fails. The error I get on pyCharm is:
/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py:1414: UserWarning: Could not find a full input parser for einsum expressions. Please install either cotengra or opt_einsum for advanced input formats (interleaved, ellipses, no-output).
  warnings.warn(
Traceback (most recent call last):
  File "/home/dimitris/dev/python/pciSeq/run_app.py", line 14, in <module>
    le = lazy.einsum('ij, nk->', lx, lx)
  File "/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py", line 1118, in wrapped
    return fn(*args, **kwargs)
  File "/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py", line 1431, in einsum
    size_dict[char] = max(size_dict.get(char, 1), op_shape[i])
IndexError: tuple index out of range

For some strange to me reason, the error is different when I run the same commands in a jupyter notebook:
[/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py:774](http://localhost:8888/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py#line=773): UserWarning: Iterating over LazyArray to get the computational graph nodes is deprecated - use `LazyArray.descend()` instead. Eventually `iter(lz)` will iterate over first axis slices.
  warnings.warn(
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[4], line 1
----> 1 le = np.einsum('ij, nk -> ', lx, lx)

File [~/miniconda3/envs/autoray/lib/python3.9/site-packages/numpy/core/einsumfunc.py:1371](http://localhost:8888/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/numpy/core/einsumfunc.py#line=1370), in einsum(out, optimize, *operands, **kwargs)
   1369     if specified_out:
   1370         kwargs['out'] = out
-> 1371     return c_einsum(*operands, **kwargs)
   1373 # Check the kwargs to avoid a more cryptic error later, without having to
   1374 # repeat default values here
   1375 valid_einsum_kwargs = ['dtype', 'order', 'casting']

ValueError: setting an array element with a sequence. The requested array would exceed the maximum number of dimension of 32.

Am i doing something wrong please? Thanks in advance

My guess is that currently the space is being interpreted as an index, could you try without it?

Oh I see. i didnt know about autoray.numpy. Both of your points are spot-on. The code below works
    x = [[1, 2], [3, 4]]
    lx = lazy.array(x)
    le = autoray.numpy.einsum('ij,nk->', lx, lx)
    print(le.compute())

I do get this warning tho:
/home/dimitris/miniconda3/envs/autoray/lib/python3.9/site-packages/autoray/lazy/core.py:1414: UserWarning: Could not find a full input parser for einsum expressions. Please install either cotengra or opt_einsum for advanced input formats (interleaved, ellipses, no-output).
  warnings.warn(

Is this something I should worry about?
I also tried earlier today to do the do syntax but couldnt make it work. And I wasnt sure if it is needed to be honest. If you got time could you tell me how the einsum is supposed to be done with the do syntax please?
Thanks so much!

Is this something I should worry about?

if you are just supplying the fully specified einsum string then no worries: it’s just for the more advanced einsum syntax features listed.

Thanks a lot for your help!


Support the option to exclude EXIF stripping by directory

Is your feature request related to a problem? Please describe.
There are plugins for Jekyll that will extract the EXIF info for photos and allow for you to pass them in in other places. Sometimes that might be as intended.
https://github.com/NiklasEi/jekyll-exif-data
Describe the solution you'd like
I would like for an configurable option to specify excluded directories that don't strip images.  A warning might be good in the console that the file is being skipped due to being in a particular directory.
Documentation updated for the configuration.
Describe alternatives you've considered
None.
Additional context

Hi there – this is controlled by your .pre-commit-config.yaml file. You can use the exclude option to provide a regular expression of directories to ignore:
- repo: https://github.com/stefmolin/exif-stripper
  rev: 0.3.1
  hooks:
    - id: strip-exif
      exclude: (dir1|dir2)/.*

Be sure to check out the pre-commit docs for other options.


Adds cv-timeout option to tune utility.

Also allows for z-score normalization to features (centers on mean, divides by standard deviation).

Current coverage is 85.22%

Merging #223 into master will increase coverage by +2.89% as of 897cf99

@@            master    #223   diff @@
======================================
  Files          114     113     -1
  Stmts         3046    2950    -96
  Branches         0       0
  Methods          0       0
======================================
+ Hit           2508    2514     +6
  Partial          0       0
+ Missed         538     436   -102

Review entire Coverage Diff as of 897cf99

Powered by Codecov. Updated on successful CI builds.


No variable named _CUVS_TEST_C_LIB exists

No variable named _CUVS_TEST_C_LIB exists, or any variant of that. So removing this dead code.

/ok to test


Broken Links and Layout Broken destiny

On which page?
https://platform.uno/docs/articles/external/uno.toolkit.ui/doc/controls-styles.html
What's wrong?
Clicking in some links like: TabBarItem, will open a broken layout page:

Any feedback?
As I could see, we have 2 issues in one:

Links which are broken
Error page with broken layout

Good catch! Will fix :)

Just for context, this is unrelated to #11109 (the linked PR wont fix this).
The problem here stems from how docfx parsed the relative file link:
markdown source: [`DrawerControl`](controls\DrawerControl.md)
generated html: DrawerControl
	^ 1. directory-separator `\` is url-encoded as %5C
    ^ 2. as `controls%5CDrawerControl.md` is a deadlink, the `.md` extension didnt get re-formatted to `.html`

based on docfx doc: https://dotnet.github.io/docfx/tutorial/links_and_cross_references.html#link-to-a-file-using-relative-path
they seems to favor forward-slash, so that could be one option

of note:
we still need to update the snapshot reference in uno
and then wait it to be published


Username and Password for Github get asked for each push

Issue Type: Bug
When pushing a repository to github, username an password get reuqested again
VS Code version: Code 1.22.2 (3aeede733d9a3098f7b4bdc1f66b63b0f48c1ef9, 2018-04-12T17:28:16.777Z)
OS version: Windows_NT ia32 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz (8 x 2195)

Memory (System)
7.95GB (3.05GB free)

Process Argv
C:\Program Files (x86)\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (17)

Extension
Author (truncated)
Version

angular-material
1to
0.13.0

ng-template
Ang
0.1.9

vscode-icontheme-nomo-dark
be5
1.3.5

markdown-checkbox
bie
0.1.1

markdown-preview-github-styles
bie
0.1.2

vscode-intelephense-client
bme
0.8.8

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

vscode-svgviewer
css
1.4.3

githistory
don
0.4.0

vscode-npm-script
eg2
0.3.3

LogFileHighlighter
emi
2.4.0

vsc-material-theme
Equ
2.0.1

docthis
joe
0.6.0

vscode-icon-theme
jtl
1.6.2

php-cs-fixer
jun
0.1.62

csharp
ms-
1.14.0

(disclaimer: not a maintainer, just stumbled across this)
Would you mind checking how you've set up the remote for that repo?
git remote -v

And look to see if you've used a https: protocol instead of git. It should look like
origin  git@github.com:org/repo-name.git (fetch)
origin  git@github..com:org/repo-name.git (push)

That might be the cause.


FortiManager Import Module using API

getting error while activating trial license:
Exception happened while processing your request, please refer to error section in response for more details.


Fixes various typos in the docs

Went through most (probably all) docs and fixed the obvious typos
Grammarly has a VS Code extension which made this process quick

💯


Explore support for Openssl 1.1.0 based libcrypto

Notable changes in 1.1.0:

"Support for ChaCha20 and Poly1305 added to libcrypto and libssl"
"Most libcrypto and libssl structures were made opaque including: "

I suspect we'll get some build failures due to some structs becoming opaque.

EVP_CIPHER_CTX_cleanup was removed due to EVP_CIPHER_CTX becoming opaque.

https://wiki.openssl.org/index.php/1.1_API_Changes


Page must be interactive

The user must be able to interact with the page

The page now has the interactions working, but can be polished further


Customise the width of the text boxes ( input fields )

The input fields width should be adjustable , currently it takes the whole body like a block element. we should make it flexible  to define by the dev.

@lo5 @shanaka-rajitha @MartinBarus @mtanco

To add to this, the width should be customizable when the components are placed inline also. Currently the ui.textbox has a fixed width so that when the text is long the content is not fully readable.

@lo5 I feel like this could make sense for every form item (similar to how visible is implemented), that way simple designs like this

could be simply implemented within a form_card.

@mturoci +1, would be good to have on all form components.


NuGet package

Hi!
Any chance of a NuGet package? It would really make it easier to use this library.
Great work!
Thanks.

Hi @kristof12345, this is n't a library it was just some sample code to accompany the blog post. I don't have any plans to make it into a NuGet package at the moment I'm afraid.


EVP: Make it possible to have keymgmt name that differs from the algo

In some cases, the key has a different type name than the algorithms
that use them.  For example, both ECDH and ECDSA uses EC keys.
To accomodate this, we give the algorithms the possibility to give
back the type name they expect for their keys.
Since the resulting keymgmt MUST be from the same provider, it's up to
the provider authors to make sure the names match.

Ping

Sidenote:
maybe this is intentional, but looking at the debugger after implementing
    { OSSL_FUNC_KEYEXCH_GETTABLE_PARAMS, (void (*)(void))ecdh_gettable_params },
    { OSSL_FUNC_KEYEXCH_GET_PARAMS, (void (*)(void))ecdh_get_params },

I notice that ecdh_get_params is called directly (correctly asking about OSSL_ALG_PARAM_KEYTYPE) without ever calling ecdh_gettable_params to check what params are gettable.
Is this behaviour by design or are we missing a check?

Is this behaviour by design or are we missing a check?

By design. If there is no name, the variable in libcrypto will remain NULL.

This lets EVP know that providers ProvA and ProvB can handle such objects (and in the future also generate such objects), but still somehow EVP needs to know what kind of operations each provider allows on such key objects (or if it cannot enumerate all the supported operations, because maybe it's superfluous, it needs to know what to do if the user asks to generate a signature or a keyexchange using such a key object).

Oooohhhhh...  hmm, yeah I see what you mean.  Dang, I actually think you approved this too early.

You can decide to put it back to WIP if you prefer and we will resume the reviews once it satisfies you again!

Some form of test might be nice... I guess romen will test it for you :)

I'm totally trusting that this will get exercised by new code, yeah.

So, the grander issue here, and this is what @romen identified, is that the "algorithm name" for keymgmt has served two purposes:

Identifying the name of the algorithm that can make use of a particular key.
Identifying the type of the key.

Operations, such as signature, key exchange, need the first identification, to make sure they have the right key to do their job.  This becomes crucial with EVP_PKEY_CTX based functions, since they often (not always, but often) work from a given key to find the appropriate algorithm to do signatures, key exchange, whatnot.
Key exporters (the export_to functions that we add to the diverse _ameth.c files), serializers (and upcoming, deserializers), and other things I cannot remember for the moment, are much more interested in the second identification, i.e. the key type.
We sniffed at this problem when discussing RSA vs RSA-PSS, but came out lucky, because RSA keys with the associated PSS parameters attached are identified with a separate OID at a PKCS#8 level, so we're getting away with it because the algorithm and key type happen to match, so we didn't need to bother, and as @mattcaswell put it, the "algorithm name" for keymgmt expressed what a specific key could be used for rather than what it is.  So far so good.
Enter EC...  and suddenly we have a distinguishable key type that doesn't have the same name as the algorithms that can use it.  In other words, the same problem re-surfaces again, but much more tangible and without the possibility to "get away with it" (**).
In summary, it looks like we need to separate what a key is, and what it's used for, while being able to tell how the two sides of that coin are related.

(*) This is a hard problem which was partly resolved by plain C types, and partly by making certain assumptions.  Essentially, the key type was always a C type, and since the support of all operations was in one and the same method structure, we could quite liberally use whatever underlying key type we wanted without batting an eye (not entirely...  fitting the EC stuff into it was not an easy task and was paved with some pretty heavy refactoring at one point).
(**) This is not quite true, but the solution is full of assumptions.  In the use case of EC, for example, the assumption in the legacy EVP_PKEY_METHOD for EVP_PKEY_EC (which is the NID for "id-ecPublicKey") is that the signing function would do ECDSA.  This is quite visible when you have a look at crypto/ec/ecdsa_sign.c.  This will fall apart as soon as another generic signature algorithm that uses EC keys comes along.

A problem is to figure out a way that doesn't put too much burden on the provider author.
The EVP_PKEY_CTX is created from a key, or in some cases, from a key type (EVP_PKEY_CTX_new_id is expressly said to be useful for domain parameter and key generation, which suggests that the NID used is meant to identity the key type rather than what it can be used for).  With that in mind, it seems reasonable to think that what we really need to do is the inverse of what this PR does, i.e. we need to find an appropriate operation algorithm for the key type associated with the EVP_PKEY_CTX rather than finding the appropriate key type, coming from operation that was derived...  from a key type.
I can see two ways of doing this:

An exhaustive search for algorithms that respond with the correct name when asked with OSSL_ALG_PARAM_KEYTYPE...  but only as a fallback in case there is no algorithm with the same name as the key type.
Add a query function to keymgmt, just like the provider-wide operation query, but specific to keys.  Again, only needed in case the key type name doesn't match the operation algorithm.

The first alternative is fairly easy to do, but has a computational impact that I'm not sure I want to deal with.  The second alternative would be easy enough as long as there's only one algorithm for each type of operation.
Unfortunately, time is running out on me today, so I won't get to this before possibly tomorrow.
Ideas and thoughts welcome.

This will fall apart as soon as another generic signature algorithm that uses EC keys comes along.

You mean like SM2!

I am thinking about the second option: if I am understanding correctly it would mean that the keymgmt struct will have to signal by answering to a GET_KEYEXCHANGE, GET_SIGNATURE, GET_ASYM_ENC if it supports any of the above operations and what is the name of the associated algorithm (or maybe directly the pointer to the functions structure, as that is internal to the provider anyway and maybe we can save the second lookup).
This would limit to one keyexchange/signature/asym_enc for key type for provider.
I think this might work, as long as we manage to support that we will have loaded at the same time more than one providers that can deserialize a given key.

Example: SM2 and EC
The keys are serialized using the same global OID "id-ecPublicKey", and we can distinguish them only when parsing inside the ASN1 structure, as luckily the default curve for SM2 has its own unique OID (even if technically if I remember correctly is exactly the same curve as NIST P-256).
So right now, the EC deserializer flags the key as an SM2 key if it detects that it is serialized as a named elliptic curve and curve matches the default SM2 curve.
First problem here is that in theory one could run SM2 as a signature scheme on any other curve, but we can hope that the Chinese standardization body will keep the trend of publishing a dedicated OID for aliased curves, so we can pretend this is not a problem
The real problem is that if we have the default provider supporting deserializing EC keys and a separate Chinese (or other national) crypto provider also capable of deserializing EC keys we shouldn't pick only one but have both try and hopefully only one will be successful (e.g. the default provider could not recognize the SM2 default curve OID while parsing and fail, while the Chinese crypto provider should fail if it does not find the OID for the default SM2 curve or future SM2 specific curve aliases).
If more than one providers manage to deserialize the key, then the conflict could be solved by establishing priorities in the conf file maybe?
That would also allow to avoid running always all the potential deserializers (e.g. we try the Chinese provider only if default failed or viceversa).

If we manage to have this flexibility then I don't see the limit of only one operation per operation type per key type per provider as a limit for provider authors, as basically the problem can then be solved by instantiating 2 different providers rather than a monolithic one.

Other example meaningful for external provider authors.
I could be writing a provider that supports an hardware accelerator that only supports NIST P-256 keys and only ECDH/ECDSA on it.
The provider should be able to deserialize EC keys (hopefully core can provide help here to avoid duplicating all these EC ASN1 structure parsers!) and retrieve what is the OID of the named curve.
It should return a valid key object only for P-256 keys, and fail otherwise.
This failure shouldn't prevent applications from using e.g. P-521 (or any other curve, or SM2) using the software implementation from the default provider or another provider.
Right now in 1.1.1 this is already quite painful for ENGINEs that need to become providers of the whole EC_KEY_method, save a reference to the default method before registering, intercept any EC operation and fallback on the previous default method in case they don't recognize a supported curve NID.
I really hope we can do better with providers!

A thing to remember here is that keymgmt and whatever operation implementation that's being used must be able to cooperate internally. Libcrypto must ensure this by making sure they both come from the same provider. So you're not escaping the monolithic nature...

A thing to remember here is that keymgmt and whatever operation implementation that's being used must be able to cooperate internally. Libcrypto must ensure this by making sure they both come from the same provider. So you're not escaping the monolithic nature...

Well, authors could use #ifdefs to avoid duplicating source code while still exploiting their build system to build 2 different provider binaries, one that does ECDSA over supported EC keys and the other doing e.g. EdDSA over the same keys.
Keymgmt and signature functions structures will be self contained in each provider to ensure consistency, you will have 2 separate providers, but the code will still be unified.
Not at all dissimilar from what we do with the default and the FIPS providers.

Yup, that works

You mean like SM2!

I was thinking í future proofing terms, but yeah, that's a fitting example

I am thinking about the second option: if I am understanding correctly it would mean that the keymgmt struct will have to signal by answering to a GET_KEYEXCHANGE, GET_SIGNATURE, GET_ASYM_ENC if it supports any of the above operations and what is the name of the associated algorithm (or maybe directly the pointer to the functions structure, as that is internal to the provider anyway and maybe we can save the second lookup).
This would limit to one keyexchange/signature/asym_enc for key type for provider.
I think this might work, as long as we manage to support that we will have loaded at the same time more than one providers that can deserialize a given key.

The more I think about it, the more I get to the same conclusion, that we simply cannot support more than one signature scheme, key exchange scheme, yada yada yada, per key type...  at least on a libcrypto<->provider interface level (nothing stops a provider from having variants of those schemes based on parameters that come along with the keys, if there are such variations (RSA-OAEP comes to mind)).
For simplicity, I think we need to deal with operation algorithm names and let libcrypto fetch them as it sees fit.  Anything else will add complexity to the fetching mechanism, and I think is complex enough as it is.  So, a keymgmt query function, much like the provider-wide one, that takes an operation identity, but simply returns a constant string?
We could have it in the back of our minds to allow for multiple schemes of each operation type.  I think the answer to that stares us in the face, as we have already solved that problem for algorithm names in OSSL_ALGORITHM: multiple names separate by colons.

See #10647 for an implementation of the other way around.  I believe that's the way to do it and still keep our sanity.

(if accepted, I will close this PR in favor of that one)

Closing thi in favor of #10647


Make errors H2, move below H1

Our error summary title is a <h1> tag, as is our main page title or question. Making the error summary title into a <h2> tag, means it should go after the <h1>.
Thoughts?
Before

After

Looks good 👍

Looks good to me although it does go against the current GDS patterns of which there is hot debate:
https://groups.google.com/a/digital.cabinet-office.gov.uk/forum/#!searchin/digital-service-designers/h1$20error/digital-service-designers/QvUNeAG5X0I/j9EmKPRBAAAJ
Were we planning in getting DAC to retest some of this again, eg new income flow? Perhaps we could have them look at this again

Having discussed this with @mrbootle-moj it seems that some are in favour of this and some are not - there's quite a debate going on.
However, DAC have in the meantime recommended we not have multiple <h1> tags on a single page. We could make the error summary a <p> or any other non-hierarchichal heading tag, but of course then users of AT browsers would not see it in their Headings list view. And as mentioned above, making it a <h2> means it has to come below the existing <h1>, i.e. the question.
So, we're merging this to solve the issue and will see how it re-tests.


Update Core Meta-Data to use new Registry Abstraction

This is dependent on #1039 to be completed

PR #1133 addressed this issue


add erc1155 support

Adds support for ERC-1155 semi-fungible tokens. There is no reason a clone cannot represent an 1155 token, the contract just lacked the ability to receive them.

Add the erc-1155 token receiver functions: onERC1155Received and onERC1155BatchReceived
Put token receiving logic into onTokenReceived function

Still need to write tests


🐾 Support a new details item field for the remote provider's web ui

Reference: https://github.com/kubev2v/forklift-console-plugin/issues/1106
Enhance the providers details page by supporting a new details item field for showing/editing/clicking the provider's web ui url.
This field is special since it doesn't include a title (appears beneath the provider's name item field) and has 2 modes:

If empty, a proper "empty field" text is displayed
If non empty, an external hyper link is displayed.

The field's value is calculated as follows:

Search for an annotation forklift.konveyor.io/providerUI.
If no annotation is set, try to auto calculate the url, based on provider's api server url.
If not 1, 2 then display an "empty field" text.

Once edited, the edited value will be saved as an annotation.
Screenshots (examples for the RHV provider):

All comments above were addressed.
The new design includes the following changes:

Replaced the provider's NameDetailsItem with NameAndWebUiLinkDetailsItem.

For supporting a flexible number of content fields per a detail item, an array of ReactNode contents  prop and a corresponding array of onEdits prop was added such that:
for every i:
contents[i] is displayed and iff onEdits[i] callback exists then this contents[i] field is editable.
Otherwise it's non editable.

One limitation is that for avoiding changing all DetailsItem usages throughout the whole code (risky...) then I left the content, onEdit props as is for displaying  the 1st/only content field (backward compatible) and just added the new props of contents, onEdits for displaying the 2nd and forward fields.


Explicitly precompile register_llvm_rules

Reduces loading time on my system significantly from ~10s to 0.3s

Fixes #776

#776 is mostly about the time it takes if anything in here is invalidated. When that issue was opened the package was just as quick to load on its own as shown here, it was in combination with other packages it got slow.

Is that still the case? I could additionally break the call edge by using invokelatest.

julia> @time using Enzyme
  0.231514 seconds (259.79 k allocations: 20.705 MiB, 3.36% gc time, 0.88% compilation time)

######

julia> struct T end

julia> Base.show(io::IO, t::Type{T}) = print(io, "heh")

julia> @time using Enzyme
 10.714881 seconds (26.53 M allocations: 1.836 GiB, 5.36% gc time, 97.91% compilation time: 26% of which was recompilation)

To me, something like https://github.com/KristofferC/Enzyme.jl/commit/4246ddb42b18ef43958774b13621f6160f7992a8#diff-21145f7299f4174cfb41f7c0c845a0ee798fc065bae0a352171552dc4b810508R1033 feels correct it just has to be ensured that the actual callbacks themselves that end up getting run during runtime gets properly optimized (but not the code that generates and inserts them).


bug: changed token for action

changed token for action

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Why limit header value to 1,000 characters?

I'm trying to use a rewrite to implement the Content-Security-Policy header. I've hit the 1,000 character limit, and now I'm stuck. The standard allows for multiple identical Content-Security-Policy HTTP response headers, but Application Gateway does not.

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

ID: aedb5a9b-70bd-506d-41c7-2ede4e12e116
Version Independent ID: b55a0075-80ff-a967-3d9d-8429e7663b8c
Content: Rewrite HTTP headers with Azure Application Gateway
Content Source: articles/application-gateway/rewrite-http-headers.md
Service: application-gateway
GitHub Login: @vhorne
Microsoft Alias: absha

@silverl Can you give some more information on the limit that you are hitting? Is it a 1000 character limit on a single header, or the whole header?
I am not able to find that as a published limit in App Gateway, so I would like to reproduce this.

@TravisCragg-MSFT Sure. In Rewrites, configure a response header rewrite. In my case:
Action type: Set
Header type: Response
Header name: Custom header
Custom header: content-security-policy-report-only
Header value: This field is limited to 1,000 characters.
You can press the OK button, but when you next press the Update button to actually save the change, you'll receive the warning/error about the 1,000 char limit, and the save will be rejected.

I should mention this is with WAF V2 SKU.

And I'll also try to make a strong case here why 1,000 characters is nowhere near sufficient. A good HTTP response header for the content security policy may need to include tens or more URLs for resource endpoints, often repeated among the various policy elements. A modern site pulls in resources from CDNs, analytics endpoints, etc. It's very very easy to go over 1,000 characters.

@silverl Thanks, I am going to follow up with this limit and get more information. I would also post this to Azure Networking's Feedback page.

Already did. https://feedback.azure.com/forums/217313-networking/suggestions/38747044-application-gateway-does-not-support-a-long-conten
Thanks.

@silverl We are looking deeper into this limit, and will follow up with more info soon!

Hi, @TravisCragg-MSFT. Checking up with you after a week. Any update? Thanks.

@silverl No updates at this time. I will give any updates as soon as I have them.

@TravisCragg-MSFT the Idea I posted on October 4th on the Azure Networking feedback page has remained in "awaiting moderator approval" ever since.
Any updates?

@silverl My apologies, your suggestion was not showing up in our normal triage process. I was able to find the feedback and start the approval process.

Hello. Following up here. Any movement on extending the header to support more than 1000 characters?

Hello. Following up again.

@TravisCragg-MSFT Any whiff this will get attention anytime soon? Thanks.

Yes, we've used just about as many * in our Content-Security-Policy header as we can to avoid this limit.  We really need a fix here.

Hi, checking in again on this @TravisCragg-MSFT. Any movement?

Checking in @TravisCragg-MSFT

Please remove this limit!  I'm constantly having to modify our headers and hope I don't break anything by using wildcards and stuff.

Our team is currently investigating this issue actively. I will post any updates regarding the same. Appreciate your patience in the meanwhile. Thank you!

Hi, @SaiKishor-MSFT. Just checking in after a month. Any update?

@SaiKishor-MSFT Is there any update? Thank you.

@vhorne Would you please look into this?

This ticket has been open for more than 2 years.

Yup.

@vhorne  are you able to tell us if we should use any other tool to better address this limitation?

@SaiKishor-MSFT @TravisCragg-MSFT @vhorne I just upvoted this too https://feedback.azure.com/d365community/idea/57fa37b8-fd58-ec11-a819-0022484bf651
I don't know how to launch different campaigns (with facebook, linkedin, google pixels), having HubSpot forms keeping the CSP which is an OWASP top ten best practice.
If there was a work-around, you could have took your time in fixing this. But given you are not able to provide one, you should at least give us an ETA

@blasticbe Would you be so kind as to share either screenshots or an export of the config template in JSON or some other format so we can see how you did it?

@silverl don't really know how to export the config
I solved it by clicking around in the portal.
The limit on 1000 characters is on the Header value field. So if you want to use 1 action that defines a whole CSP ... I ran into the problem you also experienced.
Solution is to split up the CSP definition into multiple actions.

My first action will SET and overwrite any existing CSP in the response header.

All following actions will use the variable {http_resp_Content-Security-Policy} to UPDATE the CSP and add new things to it.
Example for the font-src

I created different actions for each CSP topic.
Example:
`default-src 'self'; base-uri 'self'; frame-ancestors 'self'; block-all-mixed-content; upgrade-insecure-requests; child-src 'self'; object-src 'none'; form-action 'self'; connect-src 'self';
{http_resp_Content-Security-Policy} script-src 'self' cdn.domain.com www.youtube.com 'unsafe-eval' 'unsafe-hashes' 'sha256-ffffffffffffffffffffffffffffffffffffffffffff';
{http_resp_Content-Security-Policy} style-src 'self' cdn.domain.com 'unsafe-hashes' 'sha256-ffffffffffffffffffffffffffffffffffffffffffff' 'sha256-ffffffffffffffffffffffffffffffffffffffffffff' 'sha256-ffffffffffffffffffffffffffffffffffffffffffff' ;
{http_resp_Content-Security-Policy} img-src 'self' data: cdn.domain.com img.youtube.com;
{http_resp_Content-Security-Policy} media-src 'self' cdn.domain.com www.youtube.com;
{http_resp_Content-Security-Policy} frame-src 'self' www.youtube.com;
{http_resp_Content-Security-Policy} font-src 'self' cdn.domain.com;`

Thank you. Do you have evidence shown in a browser Dev Tools that all the headers are coming through in a page request? I'm recalling reading in the docs that a rewrite rule will replace a pre-existing header. Do you definitely get all your headers, or does the last one win?

Kudos on an ingenious hack, by the way. Very clever!

I have evidence that it works in my browser :-)
And yes it works by appending. That is why the variable is key: {http_resp_Content-Security-Policy}
Azure will replace that with what currently is in the Content-Security-Policy header. And since you are changing that multiple times, it keeps on adding.
You can do it with less actions off course. As long as you keep them under the 1000 char limit.

@blasticbe I can confirm your solution works like a charm. You made my day!

Working solution, thanks for the hack

Hi - this doesn't appear to be strictly a documentation issue, but rather a feature issue which should be handled via the feedback hub.  However, there is an interesting workaround documented here.  I will close the GitHub issue and discuss the workaround with the product team. #please-close


poetry-fy the project.

Change the architecture such that poetry is in charge for environment creation and dependency management.

Currently we need to run  PostInstallCommand to install sciSpcy and  spacy packages [en_ner_craft_md, en_core_web_sm]. As of now, this cannot be done using poetry, so this issue is put on ice at the moment.

I think this user here is using poetry to do the same. Changing status

Roadblock: Similar to https://github.com/python-poetry/poetry/issues/1297#issuecomment-821858509
HTTP Error 400: Invalid value for requires_dist. Error: Can't have direct dependency: 'en_ner_craft_md @ https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.0/en_ner_craft_md-0.5.0.tar.gz'


Error not handled when MongoDB is not available

When MongoDB goes down, I wouldn't expect connect-mongo to just crash. I get the following error response on the webpage:
Error: notConnected
at [object Object].executeCommand (/Users/me/myapp/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/db.js:779:25)
at Collection.findOne (/Users/me/myapp/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/collection.js:773:11)
at /Users/me/myapp/node_modules/connect-mongo/lib/connect-mongo.js:143:16
at MongoStore._get_collection (/Users/me/myapp/node_modules/connect-mongo/lib/connect-mongo.js:92:19)
at MongoStore.get (/Users/me/myapp/node_modules/connect-mongo/lib/connect-mongo.js:142:8)
at Object.session [as handle] (/Users/me/myapp/node_modules/express/node_modules/connect/lib/middleware/session.js:319:11)
at next (/Users/me/myapp/node_modules/express/node_modules/connect/lib/http.js:201:15)
at /Users/me/myapp/node_modules/express/node_modules/connect/lib/middleware/static.js:148:11

Can we handle this better so my app can at least do something when session support isn't available?

I'll look into this, thanks!

same problem here, when db is back running it never reconnects. Thought it was a problem with driver auto_reconnect option but I guess it is this.


chore: Update the OwlBot Dockerfile to use .NET 6

I think it all happens automatically - but we'll see :)


May i know the logic for detecting react code in .js file

not a issue here. I like this package a lot as it can detect react code in .js file and add jsx syntax support. so whats the logic for identifying between a react file and a js file? i tried look through the repo, but i really dont understand coffeescript.  thanks.

Hi! Plugin currently auto-selects JSX syntax based on the extension name and this regex
/((require\\([\'"]react(?:(-native|\\/addons))?[\'"]\\)))|(import\\s+[\\w{},\\s]+\\s+from\\s+[\'"]react(?:(-native|\\/addons))?[\'"])/
i.e it checks if react or react native is required or imported. You can also force JSX on all .js files from the plugin settings.


⚠ Bofrost.de has degraded performance

In 1b10f25, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1590 ms

Resolved: Bofrost.de performance has improved in 1017ad3 after 6 minutes.


Allow for non-strings in JsonReplacerBuilder

A normalizer JsonReplacerBuilder assumed every JSON value would be a string. This was probably not caught because of tests that used a flawed DummySerializer
This pull request:

Adds Jackson as a testImplementation dependency to fix the flawed DummySerializer.toJsonString()
Removes the assumption of a string value in the Replacer pattern inside JsonReplacerBuilder
Deprecates .withValue() to remove confusion between wanting to search for a string, or wanting to use a regex; replaces it with .withStringValue() and .withRawValue()
Adds a parameterized test for JsonReplacerBuilder to check the regex implementation

lgtm ;)


bug: Could not load type 'System.Diagnostics.PerformanceCounter'

Steps to reproduce
the script error.ps1 is attached.

download WinSCP .Net assembly from https://winscp.net/download/WinSCP-5.9.6-Automation.zip
unzip in a directory named  C:\PS_B4)
Note:
in case a different directory name is choosen, script code below needs to be adapted before running it!
$WinSCPnet_dll = ("C:\PS_B4\WinSCPnet.dll")
copy attached script: error.ps1 inthe the same directory
run powershell.exe
.\error.ps1

Expected behavior
no error
and text:
script: ended successfully
Actual behavior
error gets
thrown:
Exception calling ".ctor" with "0" argument(s): "Could not load type 'System.Diagnostics.PerformanceCounter' from assembly 'System, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089'."
Environment data

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.0.0-beta
PSEdition                      Core
GitCommitId                    v6.0.0-beta.4
OS                             Microsoft Windows 10.0.14393
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

@mi-hol Thanks for your report! Please add a sample script to repo the error.

error.ps1.txt

@mi-hol Thanks!
I tried WinSCP module https://github.com/dotps1/WinSCP - it use the same dll and works well.

I mannually load the dll from the module - works well.

I download WinSCP-5.9.6-Automation.zip and mannually load the dll from the package - works well.

@iSazonov do the comments mean that you can't reproduce the error using my error.ps1 script?

@mi-hol I edited my message.
It seems CoreFX don't implement System.Diagnostics.PerformanceCounter
See https://github.com/dotnet/corefx/issues/3906
and https://github.com/dotnet/corefx/pull/17898 - "Only refs adjusted!"
/cc @daxian-dbw Is it problem for PowerShell Core RTM?

From my view PerformanceCounter is frequently used and all metrics are defined in
PowerShell/src/Microsoft.PowerShell.Commands.Diagnostics/CoreCLR/Stubs.cs
i.e. to calculate
'        /// A difference timer that shows the total time between when the component
/// or process started and the time when this value is calculated.
///
ElapsedTime = 807666944,'

https://github.com/dotnet/corefx/issues/3906 is labelled with Future milestone, so it won't be available in .NET Core 2.0. @mi-hol please feel free to leave comments in that corefx issue, so as to let them know the user demands.

I wonder what is plans for our counter cmdlets? Should we make a workaround in the repo until we have CoreFX implementations? Have we a tracking Issue?
/cc @TravisEz13

#4306 is tracking the lack of counter CmdLets.
I'm not aware of a workaround.

@daxian-dbw in light of Joey Aiello's public community request to 'tell us what does and doesn’t work for you on github'  I'm a bit puzzled by the unexpected close of a confirmed incompatibility.
#4306 doesn't mention the error message user will receive due to this incompatibly, hence I wonder how user feedback for this specific issue will be properly gathered?

@mi-hol We do welcome feedbacks and I appreciate you brought up this issue.
This issue was closed because the problem is understood and the resolution is out of the scope of powershell. The API/assembly it depends on is not available in .NET Core 2.0 and netstandard2.0, and thus nothing can be done on the powershell side unless dotnet/corefx#3906 is fixed.

@mi-hol I edited your comment related to this issue in #4062 to add the root cause of this issue. That will help get all information we need in one place.

@daxian-dbw Thanks! Hopefully the effort I put into opening & reproducing this bug is not wasted.

@mi-hol Your effort is truly appreciated. When reviewing comments reported in #4062, people can easily get here via the link to learn more information about the issue.
Thanks for bringing up your concern about this issue being closed. I should have better explained the "why" when closing it. Lesson learned :)


Added check for external database

If using an external database, an additional exec step is needed as outlined in the gitlab documentation:
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/database.md

Thanks a lot for your PR. I'll wait with merging until you give me an OK, is that fine for you?

Yeah sure, just an edge case I found as I'm using an external db on AWS for HA.

Every PR is welcome =)

Confirmed that this works in a HA scenario, when coupled with the high_availability option.


Error after installing gulp globally

I did $ npm install gulp -g and I am getting this error

-bash: /usr/local/bin/gulp: No such file or directory

node version:
v5.0.0
I am using OSX.
what could be happening?

Not a gulp problem.  Your install failed so this is a problem with npm and/or your environment.


Example walk script fails with dotted OID

I haven't installed the SMI module, so I used a dotted OID in place of the name:
for (errorIndication,
     errorStatus,
     errorIndex,
     varBinds) in nextCmd(SnmpEngine(),
                          UsmUserData('usr-md5-none', 'authkey1'),
                          UdpTransportTarget(('<IP_ADDRESS>', 161)),
                          ContextData(),
                          ObjectType(ObjectIdentity('<IP_ADDRESS>.'))):

and I get:
python pull-whole-mib.py
Traceback (most recent call last):
File "pull-whole-mib.py", line 28, in
ObjectType(ObjectIdentity('<IP_ADDRESS>.'))):
File "/usr/lib/python2.7/site-packages/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 360, in nextCmd
lookupMib=options.get('lookupMib', True)))
File "/usr/lib/python2.7/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 356, in nextCmd
options.get('cbFun'), options.get('cbCtx'))
File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 276, in sendVarBinds
reqPDU, cbFun, cbCtx))
File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 189, in sendPdu
(sendRequestHandle, cbFun, cbCtx)
File "/usr/lib/python2.7/site-packages/pysnmp/proto/rfc3412.py", line 153, in sendPdu
pduVersion, PDU, expectResponse, sendPduHandle
File "/usr/lib/python2.7/site-packages/pysnmp/proto/mpmod/rfc3412.py", line 243, in prepareOutgoingMessage
securityEngineId, securityName, securityLevel, scopedPDU
File "/usr/lib/python2.7/site-packages/pysnmp/proto/secmod/rfc3414/service.py", line 525, in generateRequestMsg
None)
File "/usr/lib/python2.7/site-packages/pysnmp/proto/secmod/rfc3414/service.py", line 497, in __generateRequestOrResponseMsg
authenticatedWholeMsg = encoder.encode(msg)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 102, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 588, in encodeValue
substrate += encodeFun(component, asn1Spec, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 86, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 696, in encodeValue
return encodeFun(component, asn1Spec, **options), True, True
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 102, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 588, in encodeValue
substrate += encodeFun(component, asn1Spec, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 86, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 696, in encodeValue
return encodeFun(component, asn1Spec, **options), True, True
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 102, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 588, in encodeValue
substrate += encodeFun(component, asn1Spec, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 832, in call
substrate = concreteEncoder.encode(value, asn1Spec, self, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 102, in encode
value, asn1Spec, encodeFun, **options
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 676, in encodeValue
value, asn1Spec, encodeFun, **options)
File "/usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.py", line 650, in _encodeComponents
raise inconsistency
TypeError: exceptions must be old-style classes or derived from BaseException, not bool

I don't think using pysnmp without pysmi is a supported scenario.


cant store embeddings from llama_cpp_python

System Info
Python==3.11.5
langchain==0.0.300
llama_cpp_python==0.2.6
chromadb==0.4.12
Running on Windows and on CPU
Who can help?
@agola11
@hwchase17
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[X] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[X] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
Embeddings can't be stored in a chroma/FAISS vectorstore using llama-cpp-python.
I found that embedding the contents of very very simple websites, such as "http://example.org" work fine.
Here is the code I am executing in my notebook:
from langchain.document_loaders import WebBaseLoader
from langchain.embeddings import LlamaCppEmbeddings
from langchain.vectorstores import Chroma

llama = LlamaCppEmbeddings(model_path="../models/openorca_stx.gguf")

loader = WebBaseLoader("https://www.bbc.com/")
pages = loader.load()

vectordb = Chroma.from_documents(
    documents=pages,
    embedding=llama,
    persist_directory='../data/vectorstores/'
)

Here is the Traceback:
ValueError                                Traceback (most recent call last)
[p:\git_repos\langchain-test\src_langchain\04_vectorstore.ipynb](file:///P:/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb) Cell 8 line 1
      [7](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=6) loader = WebBaseLoader("https://www.bbc.com/")
      [8](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=7) pages = loader.load()
---> [10](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=9) vectordb = Chroma.from_documents(
     [11](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=10)     documents=pages,
     [12](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=11)     embedding=llama,
     [13](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=12)     persist_directory='../data/vectorstores/'
     [14](vscode-notebook-cell:/p%3A/git_repos/langchain-test/src_langchain/04_vectorstore.ipynb#X12sZmlsZQ%3D%3D?line=13) )

File [d:\miniconda3\envs\langchain\Lib\site-packages\langchain\vectorstores\chroma.py:646](file:///D:/miniconda3/envs/langchain/Lib/site-packages/langchain/vectorstores/chroma.py:646), in Chroma.from_documents(cls, documents, embedding, ids, collection_name, persist_directory, client_settings, client, collection_metadata, **kwargs)
    644 texts = [doc.page_content for doc in documents]
    645 metadatas = [doc.metadata for doc in documents]
--> 646 return cls.from_texts(
    647     texts=texts,
    648     embedding=embedding,
    649     metadatas=metadatas,
    650     ids=ids,
    651     collection_name=collection_name,
    652     persist_directory=persist_directory,
    653     client_settings=client_settings,
    654     client=client,
    655     collection_metadata=collection_metadata,
    656     **kwargs,
...
--> 510 self.input_ids[self.n_tokens : self.n_tokens + n_tokens] = batch
    511 # Save logits
    512 rows = n_tokens if self.params.logits_all else 1

ValueError: could not broadcast input array from shape (8,) into shape (0,)

Expected behavior
I expect this function Chroma.from_documents(     documents=pages,     embedding=llama,     persist_directory='../data/vectorstores/' ) to create document embeddings and store them in the persistent chromadb

I got this to work with llamacpp, which seems better to do it all with llama to me.
I also found the gpt4all embeddings conflict with the model used for the llama package, so they don't play well together.
Here is what I did: https://github.com/groovybits/consciousChat/blob/main/characterChat.py#L112
I also did a recursive webpage scrape too.
It's all slow on my macbook vs. the gpt4all or the normal llama run with the same model. I am looking at that, but the results are so correct while the gpt4all embeddings were bringing out useless information and led to inaccurate analysis from what I could tell. It may be from how it is conflicting on the model load so it could be corrupted or something like it warns...
Found model file at  /Users/christi/.cache/gpt4all/ggml-all-MiniLM-L6-v2-f16.bin
objc[75636]: Class GGMLMetalClass is implemented in both /Users/christi/src/consciousChat/test/lib/python3.11/site-packages/llama_cpp/libllama.dylib (0x12c5e71f8) and /Users/christi/src/consciousChat/test/lib/python3.11/site-packages/gpt4all/llmodel_DO_NOT_MODIFY/build/libreplit-mainline-metal.dylib (0x131430228). One of the two will be used. Which one is undefined.
objc[75636]: Class GGMLMetalClass is implemented in both /Users/christi/src/consciousChat/test/lib/python3.11/site-packages/llama_cpp/libllama.dylib (0x12c5e71f8) and /Users/christi/src/consciousChat/test/lib/python3.11/site-packages/gpt4all/llmodel_DO_NOT_MODIFY/build/libllamamodel-mainline-metal.dylib (0x1316dd228). One of the two will be used. Which one is undefined.


Error with the new version of AL Langauge extension (2.0.48254)

Today the AL Language extension has been updated to 2.0.48254 and with that version I get this error when I try to publish an extension to the Microsoft cloud sandbox.

It's the same error that I got when installed the AL Language extension delivered with the RC3 (2.0.43900) and that I solved reinstalling the version 0.16.19969 and disabling the new one.
I need to get a new Sandbox or is there another solution ??
Regards.

May be this link will be helpful
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-developing-for-multiple-platform-versions

And also Steven Render's blog

Ok, problem solved.
Thank you all @SirBETE and @AmolSalvi
Regards.

Welcome @ftornero9


Add audit logging for Supervisor and Concierge

PR for implementing audit logging in the Concierge and Supervisor.
Note that this implementation differs from the proposal document, which is over two years old.
In that old proposal doc, I proposed that we do a bunch of extra work to make a fancy sidecar container that would allow us to seperate the audit logs from the regular error/warning/debug/info/trace logs, to make it easier for admin users to export their audit logs seperately. However, much time has passed since then and I no longer believe that is nessessary. Fluentbit and other log exporting tools have improved since then. Fluentbit now includes tools which allow you to separate lines from a pod log and send those special lines to a different destination (example of that shown below).
Instead, this PR outputs the new audit log events into the regular pod log, and makes them easy to grep by always including "auditEvent":true on every log line which is for an audit event.
The key/values in audit event logs are:

Always have auditEvent equal to true
Always have these pre-existing keys that our pod logs were already using:

level, which for audit line will always be equal to info
timestamp
caller (line of code which caused the log)
message which for audit lines is effectively the event type. The value will always be one the messages declared as an enum in audit_events.go, which is effectively a catalog of all possible audit event types. No string interpolation should ever be done into the message value.
Only when the global log level is configured to "trace" or "all", then they will also always include a stacktrace key whose value shows a full Go stacktrace for the caller. This is the case for all lines of our pod logs, and audit lines are no exception.

When applicable, logs lines have an auditID which is a unique ID for every HTTP request, to allow multiple lines of audit events to be correlated when they came from a single HTTP request. This audit ID is also returned to the client as an HTTP response header to allow for correlation between the request as observed by the client and the logs as observed by the administrator.
When applicable, logs lines have a sessionID which is the unique ID of a stored Pinniped Supervisor session, to allow audit events to be correlated which relate to a single session even when they are caused by different requests or controllers. E.g. same sessionID across fresh login, token exchange, refreshes, and session garbage collection.
Each audit event also has more key/values specific to the event type (the event type is shown in the message).

Other changes compared to the original proposal doc:

I think we should enable audit logging by default. Otherwise, people might not learn about this new feature. However, this means that we would be putting usernames and group names into the pod logs (which might be considered PII) upon upgrade to this new version. To address this, we will provide a new configuration option available in the static configmaps to include or not include usernames and group names in the logs. By default, we will not include usernames and group names.
Seeing every request to the /healthz endpoint audited by default is overwhelming, so we will not audit this by default and we will create a configuration option to enable it for debugging if desired by the user.
I don't think we should try to detect “admin-like” RBAC. If we log the username and group names, then that should be sufficient.
The specific keys and format of the JSON log entries is different in some details from the original proposal. Because they are part of the regular pod logs, they should follow the standards already set in our pod logs (e.g. how timestamps are logged, use pre-existing message instead of proposed event, etc.).

Note that aggregated API endpoints, such as the Concierge's TokenCredentialRequest, already support Kubernetes audit logging. Additionally, they already have some trace logging using the k8s.io/utils/trace package, but those logs only appear in our pod logs if the user has configured the log level to be info or higher (not by default). If we add our own audit logging to these endpoints, then ideally the auditID would match that shown in the Kubernetes audit logs to allow for correlation between the pod logs and the audit logs. The approach taken in this PR works that way.
Here is an example Pinniped audit log event from a Concierge pod for a TokenCredentialRequest. Note that this has been piped through jq for pretty printing purposes.
{
  "level": "info",
  "timestamp": "2024-07-10T20:03:26.164470Z",
  "caller": "go.pinniped.dev/internal/registry/credentialrequest/rest.go:135$credentialrequest.(*REST).Create",
  "message": "TokenCredentialRequest",
  "auditID": "fdbd324a-0691-4425-9174-5279d799fb15",
  "auditEvent": true,
  "username"<EMAIL_ADDRESS>  "groups": [
    "ldap:ball-admins",
    "ldap:ball-game-players"
  ],
  "authenticated": true,
  "expires": "2024-07-10T20:08:26Z"
}

And here are the two audit log events from the Kubernetes API audit log for the same TokenCredentialRequest request, shown for when Kube API audit logging is configured to the metadata level. They show that this was an anonymous request, but they have no way of knowing how Pinniped resolved the identity of the user (which is shown by the Pinniped audit log above). Note that they have the same unique audit ID as above, even though they are not found in the same log file. Note that these have been piped through jq for pretty printing purposes.
{
  "kind": "Event",
  "apiVersion": "audit.k8s.io/v1",
  "level": "Metadata",
  "auditID": "fdbd324a-0691-4425-9174-5279d799fb15",
  "stage": "RequestReceived",
  "requestURI": "/apis/login.concierge.pinniped.dev/v1alpha1/tokencredentialrequests",
  "verb": "create",
  "user": {
    "username": "system:anonymous",
    "groups": [
      "system:unauthenticated"
    ]
  },
  "sourceIPs": [
    "<IP_ADDRESS>"
  ],
  "userAgent": "pinniped/v0.0.0 (darwin/arm64) kubernetes/$Format",
  "objectRef": {
    "resource": "tokencredentialrequests",
    "apiGroup": "login.concierge.pinniped.dev",
    "apiVersion": "v1alpha1"
  },
  "requestReceivedTimestamp": "2024-07-10T20:03:26.155574Z",
  "stageTimestamp": "2024-07-10T20:03:26.155574Z"
}

{
  "kind": "Event",
  "apiVersion": "audit.k8s.io/v1",
  "level": "Metadata",
  "auditID": "fdbd324a-0691-4425-9174-5279d799fb15",
  "stage": "ResponseComplete",
  "requestURI": "/apis/login.concierge.pinniped.dev/v1alpha1/tokencredentialrequests",
  "verb": "create",
  "user": {
    "username": "system:anonymous",
    "groups": [
      "system:unauthenticated"
    ]
  },
  "sourceIPs": [
    "<IP_ADDRESS>"
  ],
  "userAgent": "pinniped/v0.0.0 (darwin/arm64) kubernetes/$Format",
  "objectRef": {
    "resource": "tokencredentialrequests",
    "apiGroup": "login.concierge.pinniped.dev",
    "apiVersion": "v1alpha1"
  },
  "responseStatus": {
    "metadata": {},
    "code": 201
  },
  "requestReceivedTimestamp": "2024-07-10T20:03:26.155574Z",
  "stageTimestamp": "2024-07-10T20:03:26.165041Z",
  "annotations": {
    "authorization.k8s.io/decision": "allow",
    "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"pinniped-concierge-pre-authn-apis\" of ClusterRole \"pinniped-concierge-pre-authn-apis\" to Group \"system:unauthenticated\""
  }
}

Note that for manual testing, Kubernetes API audit logs can be enabled in Kind clusters: https://kind.sigs.k8s.io/docs/user/auditing.
Here is an example snippet from a custom values.yaml for the Fluentbit Helm Chart showing how to route Pinniped audit logs to a different destination. This example is not for production use because the output destination is stdout. See comments below for more info.
  ## https://docs.fluentbit.io/manual/pipeline/filters
  filters: |
    # This filter is part of the default configuration from the Helm chart.
    [FILTER]
        Name kubernetes
        Match kube.*
        Merge_Log On
        Keep_Log Off
        K8S-Logging.Parser On
        K8S-Logging.Exclude On

    [FILTER]
        # Just to make this experiment's output easier to read, exclude any logs that came from the fluent-bit pods.
        # Otherwise we see each event multiple times because we are using stdout outputs below.
        # This would not be needed in a production setup where logs are sent elsewhere, not to stdout.
        Name grep
        Match kube.*
        Exclude $kubernetes['labels']['app.kubernetes.io/name'] ^fluent-bit$

    # A default fluent-bit configuration will capture logs from all pods, so it will capture Pinniped's
    # mixed pod logs that contain audit events and also other logs.
    # This example shows that fluent-bit could be configured to move the audit logs to a separate output
    # if desired. There are many ways to customize fluent-bit's logging pipeline, and it is quite flexible.
    # The example below removes Pinniped audit log lines from the exported Pinniped pods' logs
    # and captures those audit logs instead as one new output, mixing Supervisor and Concierge logs.
    # To determine which pods are Pinniped pods, this example looks at pod labels. Alternatively, it could
    # look at pod namespaces other other properties.
    # Although not shown here, it could alternatively be written to avoid removing audit logs records
    # from the exported pod logs, and could be written to separate Concierge audit logs from Supervisor
    # audit logs.

    [FILTER]
        # For all logs from all pods labelled like a Pinniped Supervisor pod,
        # or labelled like a Pinniped Concierge pod,
        # make a copy of the record at a new tag called pinniped-audit.
        # Keep the record in its original tag also.
        # At this point, the pinniped-audit tag will have all pod logs from
        # matching pods, not just audit logs. We will filter the audit logs below.
        # Multiple Rule statements act like an "or".
        # See https://docs.fluentbit.io/manual/pipeline/filters/rewrite-tag
        Name rewrite_tag
        Match kube.*
        Rule $kubernetes['labels']['app'] ^pinniped-supervisor$ pinniped-audit true
        Rule $kubernetes['labels']['app'] ^pinniped-concierge$ pinniped-audit true

    [FILTER]
        # For all log records that were copied into this new pinniped-audit tag,
        # only keep the events in the new tag that appear to be an audit log.
        # https://docs.fluentbit.io/manual/pipeline/filters/grep
        Name grep
        Match pinniped-audit
        Regex auditEvent ^true$

    [FILTER]
        # If desired, another grep filter can remove the Pinniped Supervisor audit logs from the original tag,
        # so they only appear in events of the new pinniped-audit tag, rather than appearing in both places.
        # See https://docs.fluentbit.io/manual/pipeline/filters/grep
        Name grep
        Match kube.*
        Logical_Op and
        Exclude $kubernetes['labels']['app'] ^pinniped-supervisor$
        Exclude auditEvent ^true$

    [FILTER]
        # If desired, another grep filter can remove the Pinniped Concierge audit logs from the original tag,
        # so they only appear in events of the new pinniped-audit tag, rather than appearing in both places.
        # See https://docs.fluentbit.io/manual/pipeline/filters/grep
        Name grep
        Match kube.*
        Logical_Op and
        Exclude $kubernetes['labels']['app'] ^pinniped-concierge$
        Exclude auditEvent ^true$

  ## https://docs.fluentbit.io/manual/pipeline/outputs
  outputs: |
    #[OUTPUT]
    #    Name stdout
    #    Match kube.*

    #[OUTPUT]
    #    Name stdout
    #    Match host.*

    [OUTPUT]
        # By the time a log record gets to the output, it was already filtered.
        # Any event with this tag is only a Pinniped audit log event, and we can
        # output it to anywhere we prefer.
        Name stdout
        Match pinniped-audit
        Format json_lines

Release note:
Audit logging will be a user-facing feature for admin users and needs release notes and documentation.
TBD

I wonder if we could add the trace_id and span_id from OpenTelemetry into the audit logs. These should be available when handling a request from the APIServer (such as for an aggregate API) or be generated internally to Pinniped when not provided via HTTP headers.

I see a lot of refactoring, is there any possibility we could strictly separate refactoring and auditing? I would love to see either a commit or a PR that just added auditLogger.Audit lines.

I wonder if we could add Audit to the plog.Logger interface, so that we don't have to create new loggers and pass them around. This might make it somewhat easier to unit-test the logs with the existing unit test mechanism.

The deploy preview for the new document is here https://deploy-preview-2009--pinniped-dev.netlify.app/docs/reference/audit-logging/ until this PR merges.


Mocking Dagger subcomponents

Hi,
I am trying to setup a DaggerMockRule where UserComponent is a @Subcomponent. Due to that, there isn't a DaggerUserComponent being generated, and my test fails because it cannot find DaggerUserComponent.
Is it possible to apply rules to Subcomponents ?

Hi, looking at the generated code it seems that subcomponents are not flexible as normal components. They are created in generated class:
@Override
public MySubComponent mySubComponent() {
  return new MySubComponentImpl();
}

MySubComponentImpl is generated, it creates the module in the constructor:
private final class MySubComponentImpl implements MySubComponent {
  private final MyModule2 myModule2;

  private MySubComponentImpl() {
    this.myModule2 = new MyModule2();
    initialize();
  }

  private void initialize() {
  }

  @Override
  public MainService mainService() {
    return DaggerMyComponent.this.mainServiceProvider.get();
  }
}

And the module must contain a constructor with no parameters.
So I think that unfortunately DaggerMock cannot be used to override objects in subcomponents. :( But I have never used subcomponents in real projects, any ideas how to implement it are welcome.

Yeah, I understood that in order to use DaggerMock we can't count on subcomponents. Or at least mock them. Thank you!

Hi, I have found a way to support Subcomponents! You can find more info in the README and a new demo project that uses subcomponents.

in the read me file can you give an example on how to use the subComponent. I see you explain how to declare it in parent component but not how to use it with daggerMock.


Floating value with 17 decimal points return as 0 in query

NEST/Elasticsearch.Net version:
NEST 7.6.1
NEST.JsonNetSerializer : 7.6.1
Elasticsearch version: 7.3.1
Description of the problem including expected versus actual behavior:
I have a document with _source as below:  where the field: float-test is float data type
_source": {
"float-test": 0.25881904510252074,
"keyID": "93bdb772e5d84732bb7f877cae0210a6"
"version": "1.0"
}
From the Search result, the value of "float-test" become 0 as it rounded and lost precision, as below:
var result = client.Search(s => s
.Index(index)
.Size(1000)
.QueryOnQueryString("keyID:93bdb772e5d84732bb7f877cae0210a6")
);

Expected behavior
How could i retain the exact value (0.25881904510252074) when read out from search result? Im using dynamic object for Index and Search.

Hi @leelcs, this bug has been fixed in  https://github.com/elastic/elasticsearch-net/pull/4655 and will be in the next 7.x release, which we expect to put out in the very near future.
If it's a show stopper currently, you could reference a canary nuget package from our CI nuget feed which has the fix in. I just tested with version 7.6.0-ci20200430T143815 in Linqpad
void Main()
{
	var client = new ElasticClient(new ConnectionSettings(new InMemoryConnection()));

	var source = @"{
		""float-test"": 0.25881904510252074,
		""keyID"": ""93bdb772e5d84732bb7f877cae0210a6"",
		""version"": ""1.0""
		}
	";
	using var stream = new MemoryStream(Encoding.UTF8.GetBytes(source));

	var d = client.SourceSerializer.Deserialize<dynamic>(stream);

	((double)d["float-test"]).Dump();
}

which prints 0.25881904510252074.
Alternatively, if you were to define a type to deserialize _source into, where "float-test" is a double property type, that would also work without needing to reference a canary package. A POCO would look something like
public class MyDocument
{
    [DataMember(Name = "float-test")]
    public double FloatTest { get; set; }

    [DataMember(Name = "keyID")]
    public string KeyId { get; set; }

    [DataMember(Name = "version")]
    public string Version { get; set; }
}

I'm going to close this issue as it's already fixed. Thank you for raising!

thanks @russcam for your immediate response! the copy in canary package fixed the issue.
Meanwhile, i will wait for the official next release. Thank you.


Jeby mazdamx5nc

@timurrrr this is my first pull request ever :D I'm a git-hub n00b so maybe I'm doing something wrong :)
I've created the mazda_mx5_nc.md as discussed over the RaceChrono.
I've also added a sort of reverse engineering how to that might help others in finding can id codes for their cars. I've a 2016 Golf so I think I'll start digging in that one once I finish with the NC. Please bear in mind English is not my mother tongue (I'm Italian) so there may be some odd sentence constructions...
Of course the min Read Me and RaceChronoDiyBleDevice.ino were edited to reflect the differences on the two devices assembly and destinations. I'm going to investigate if I really need the 120 ohm terminator on the device when connected to the OBD port. I'm not familiar with my car diagram but if it is somewhat similar to industrial CAN-Bus the terminator is already on the car. By the way, the system is working with or without the terminator jumper.
I've also digged a bit on ND CAN-Bus. I found something interesting on miata.net forum: it is partial and possibly only for ND and not for ND2, I'm going to write to the author, maybe he is interested in extending the database collection.
Finally, do you think it is possible to drop the filtering at MCP2515 level? I'm also going to try faster rates for more IDs (steering and accelerator) and see what is happening.
Thank you,
Sebastian

Hi Timurr,

Yes go ahead. I know there is some minor changes to do to equations, but I'll have the opportunity to do that later in the year... here in Italy we still have periodic lock downs, I don't know when I'll be able to hit the race track.

Done that https://github.com/jeby/CANBUS_RevEng with smaller pics :) also smaller in the RaceChronoBLE repository, but I agree, let's keep things simple

Yes, as said, git-hub n00b here, I didn't think about merging! Actually the real changes in the read me are related to the alternative building with OBD port and 12v-5v step down for powering the device via OBD. I used a white breadboard to make clear it was an alternative. I agree the read me shall be car agnostic. If you agree I'll edit my version of the Read Me as soon as possible to reflect this philosophy, and then we'll check again!
3b. Then this issue will be also in the RaceChronoDiyBleDevice.ino, if you merge then it will work for MX5 NC only. I still have to catch up with C++ coding (it seems I'm a n00b of everything related to this project... well, yes, I am!) but do you think it will be possible to have the car selectable? Like storing IDs and update rates divider in a support file that the user will edit? Oooor... I just rename RaceChronoDiyBleDevice.ino to RaceChronoDiyBleDevice_MazdMX5NC.ino 😄

I understand that filtering has to be done, but when you do it at MCP2515 level I understand you can filter up to 6 IDs, while maybe one may want to receive 7 or 8, with the additional 2 being refreshed only 1 or 2 time per second. That one is me 😄 I understand that AOL is filtering at Arduino level, but I didn't his code yet.

Committed 6d400b9b3d415ca57aad45d1c3f01c6622cec8bd, please rebase before uploading a new version.
Also would appreciate if you squash your local commits into one.
Thanks for your help!

Timurrrr,
Sorry to bother, can you please explain how to do the rebase and the squash
as if you are explaining it to a 12 yo from another galaxy? :) Just not
that I worked only on GitHub web, even if I've bot git and gh installed on
Ubuntu.
Thanks!
Il giorno mer 17 mar 2021 alle ore 06:47 Timur Iskhodzhanov <
@.***> ha scritto:

Committed 6d400b9
https://github.com/timurrrr/RaceChronoDiyBleDevice/commit/6d400b9b3d415ca57aad45d1c3f01c6622cec8bd,
please rebase before uploading a new version.
Also would appreciate if you squash your local commits into one.
Thanks for your help!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/timurrrr/RaceChronoDiyBleDevice/pull/1#issuecomment-800813271,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5QAKVVZVAGXG3FJBLW43TEA66BANCNFSM4Y5X6CFA
.

Well, nevermind, I think I did it :)
Il giorno ven 19 mar 2021 alle ore 17:21 Jeby @.***> ha
scritto:

Timurrrr,
Sorry to bother, can you please explain how to do the rebase and the
squash as if you are explaining it to a 12 yo from another galaxy? :) Just
not that I worked only on GitHub web, even if I've bot git and gh installed
on Ubuntu.
Thanks!
Il giorno mer 17 mar 2021 alle ore 06:47 Timur Iskhodzhanov <
@.***> ha scritto:

Committed 6d400b9
https://github.com/timurrrr/RaceChronoDiyBleDevice/commit/6d400b9b3d415ca57aad45d1c3f01c6622cec8bd,
please rebase before uploading a new version.
Also would appreciate if you squash your local commits into one.
Thanks for your help!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/timurrrr/RaceChronoDiyBleDevice/pull/1#issuecomment-800813271,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5QAKVVZVAGXG3FJBLW43TEA66BANCNFSM4Y5X6CFA
.

Filed issue #4 to refactor the code before we can customize the code for more than one car


Issue with oauth add to team not writing teams.bot part

Because the teams.bot field is not in place this code fails when the bot tries to process a mention right here:
https://github.com/howdyai/botkit/blob/v0.4.9/lib/SlackBot.js#L177
[2017-01-20T03:39:52Z]TypeError: Cannot read property 'user_id' of undefined
[2017-01-20T03:39:52Z] at /usr/src/app/node_modules/botkit/lib/SlackBot.js:177:33
[2017-01-20T03:39:52Z] at Command.callback (/usr/src/app/node_modules/botkit-storage-redis/src/index.js:41:17)
[2017-01-20T03:39:52Z] at normal_reply (/usr/src/app/node_modules/botkit-storage-redis/node_modules/redis/index.js:721:21)
[2017-01-20T03:39:52Z] at RedisClient.return_reply (/usr/src/app/node_modules/botkit-storage-redis/node_modules/redis/index.js:819:9)
[2017-01-20T03:39:52Z] at JavascriptRedisParser.Parser.returnReply (/usr/src/app/node_modules/botkit-storage-redis/node_modules/redis/index.js:192:18)
[2017-01-20T03:39:52Z] at JavascriptRedisParser.execute (/usr/src/app/node_modules/botkit-storage-redis/node_modules/redis/node_modules/redis-parser/lib/parser.js:491:12)
[2017-01-20T03:39:52Z] at Socket.<anonymous> (/usr/src/app/node_modules/botkit-storage-redis/node_modules/redis/index.js:274:27)
[2017-01-20T03:39:52Z] at emitOne (events.js:77:13)
[2017-01-20T03:39:52Z] at Socket.emit (events.js:169:7)
[2017-01-20T03:39:52Z] at readableAddChunk (_stream_readable.js:146:16)
[2017-01-20T03:39:52Z] at Socket.Readable.push (_stream_readable.js:110:10)
[2017-01-20T03:39:52Z] at TCP.onread (net.js:523:20)

I'm basically running off of the https://github.com/howdyai/botkit-starter-slack with some conversational and other code added but nothing messing with the core bot experience other than the piece below that runs through beepboop-botkit RTM instead of botkit Events API when running under BeepBoop.
if (process.env.BEEPBOOP) {
logger.info('Starting in Beep Boop multi-team mode');
require('beepboop-botkit').start(controller, { debug: true });
} else {
controller.startTicking();
}
Slack settings of note
OAuth:
https://beepboophq.com/proxy/:myid/oauth
https://beepboophq.com/api/slack/auth/add-to-slack
Note, I had to add the second url for direct as apparently "Add to Slack" stops there first before going to the proxy? Was an unexpected surprise.
Event Subscriptions, Interactive Messages, Slash Commands URL
https://beepboophq.com/proxy/:myid/slack/receive

For the plain botkit side for standalone testing I'm using the Slack Events API and ngrok to tunnel to local machine and followed the instructions here and all worked fine with the same code.
I'm using https://github.com/howdyai/botkit-storage-redis and a server on RedisLabs.

Forgot to mention exception happens on typing something like "Say hi" which loads info from storage. Typing plain "Hi" works.


Akschange1

All Submissions:
-------------------------------------?

[YES] Have you added an explanation of what your changes do and why you'd like us to include them?
[YES I have updated the documentation accordingly.
[YES] I have added tests to cover my changes.
[YES] All new and existing tests passed.

Current Behavior or Linked Issues

This change adds in modules necessary for AKS work that is in progress.
Does this introduce a breaking change?

[NO]

This has no impact to R2 Infrastructure Solution.

Delete find module first that affects cosmos


[NG] Create a radio button component

Select one ...  (check one with "x")
[ ] bug
[x] feature request
[ ] enhancement

Expected behavior
We need to write a radio button Angular component for users who want a quick and simple solution. It would be the same idea as our existing checkbox component.
It should project the label, integrate properly with ngModel, generate proper ids to avoid conflicts, and allow the user to use radios without labels.
Actual behavior

At the moment, users have to jump through a lop of hoops to use simple radio buttons: the label is required, which means a matching id on the input and label is also needed. Quite painful when dealing with very dynamic inputs or unusual DOM.
Reproduction of behavior
Plunker of a working example with the current static radio buttons: https://plnkr.co/edit/tE7qEU8Sy05sSQrZg3tE?p=preview
Note that the id has to be specified in the model, which we don't want.
Environment details

Angular version: 2.4.X

Clarity version: 0.8.x

Browser: all

Very much needed. A relevant piece of code from my application:

      <input type="radio" name="{{ product.id + '-installation-type' }}" id="{{ product.id + '-new-install' }}" checked>
      New Install

      <input type="radio" name="{{ product.id + '-installation-type' }}" id="{{ product.id + '-import' }}">
      Import

Definitely needed. Currently writing a form-builder and would love to have radio buttons native in Angular 2, as the code is much simpler and cohesive to other components created thus far. Using ids and not having ngModel behave as seamlessly makes it hard to justify using


Use collections.abc

Use collections.abc

Hi, I tested this using the HomeAssistant integration.

Interesting - so the motivation for this is the deprecation warning?
DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working

Well this wrapper is used in the HomeAssistant integration https://www.home-assistant.io/integrations/magicseaweed/ . This integration broke hence https://github.com/home-assistant/core/issues/74731 was opened and I tried to find a fix. While researching the error I found that deprecation and one of the suggestions was to use collections.abc instead of collections. I tried using a more specific 'try, except' solution to only import the use of 'MutableMapping' but that also threw errors.
This PR makes the integration work again on python 3.10 but I am not knowledgeable enough to know\predict how long the workaround keeps working.

Credit to you for bringing this to my attention! Thanks again.
Working on a resolution in #5. I opted to use flatten_json from the flatten library instead. Let me know your thoughts. I'll probably close this PR when that is merged in.

That is probably a more future proof and more elegant solution, looks good to me!

Closing since this was fixed in 1.0.6


Require Poison outside tests

If no serializers are set, OAuth2.Serializer defaults to using Poison.
# mix.exs
def application do
  [applications: [:logger, :hackney],
   env: [serializers: %{"application/json" => Poison}]]
end

This makes Poison a required runtime dependency.
I bumped into this issue after replacing Poison with Jason and running mix deps.clean --unused. Without the explicit requirement, Poison is removed even when code relies on it.

Hi @jayjun I'm currently working on getting #92 merged and a new release. Serializer registration will no longer be automatic but need to be explicitly registered in the client struct instance.

To get around the issue you are experiencing here (in the current version), you'll just need to override the defaults with:
config :oauth2,
  serializers: %{"application/json" => Jason}


TRTIS crashes in GCP after the first request without any error messages when more than 10 models are loaded.

Tested on GCP V100 DL optimized TF 1.13 VM using docker image 19.03py3. (26 G mem, 6 core, 300G SSDHDD)
20 inception v4 models in the repo.
The first request for the model 1 works with a very slow response time (18 seconds).
The second request for the same model 1 returns a 0.06s response time
The next request for any other model say 3, causes server crash and no error messages. Once this happens, the VM just hangs when I try to run the docker image again. I have to restart the VM again to get it to work. Can anyone please reproduce this and let me know what exactly is causing this issue(both the slow response time for the first request and server crash when requested an inference from a different model)? Also potential solutions?

I guess the problem is with RAM. When I increased RAM, this issue does not occur. It would still be nice if we TRTIS can throw some warning or error if this might be a potential crash in operation.

The reason the model is slow on the first execution is that TF does some optimizations and transformations of the network at runtime.
As far as the server running out of memory... what is likely happening is that the linux OOM killer is terminating the TRTIS process when memory gets low. The inference server can't do anything about that. You will get an error (and a failed inference request) if a malloc fails during execution.

@deadeyegoodwin Thanks!


Developer environment - no documentation

There are no instructions/documentation on how to set up a developer environment, specifically for plugins, but for elderjs in general.
The immediate goal is to work on a plugin - which, when I try to link it so it's on my local file system, results in a bunch of ESM errors.
I've created a couple of discord msgs in the channel, starting with this one, but haven't gotten any responses, at all.
Currently stuck without some instructions.

After going down a few rabbit holes, I got a development environment to work.  Here's what I found:
If you want to work on a current plugin:

clone the repo: Elderjs/plugins
(you might want to fork it so you can keep it current.  If you fork it, uncheck 'Copy the master branch only')
in your clone, invoke git checkout releases/v1.3.10
cd into the package you want to work on (i.e. packages/markdown)
run npm install
At this point, you can set up the link.  Follow the directions for npm link. Note that npm link DOES NOT update the package.json in your app project.  You need to add the entry for the plugin manually, with the correct version number.

If you want to work on elderjs:

clone this repo
the master branch should be good (check the package.json and make sure the version is 1.7.5)
invoke npm install
invoke npm run prepare
You can now link it.  Again follow the directions above.  If you want the links for both elderjs and plugins, you have to do them on one line, e.g.: (in your app directory) npm link @elderjs/elderjs @elderjs/plugin-markdown - doing just one will wipe out the other.
after every change in the elderjs project, you need to rerun npm run prepare for you app project to see the changes.

For both projects, be very careful about the git branch.   The active branch may be set to an experimental branch that someone has been working on, and inadvertently checked it in without resetting the current branch.  Also, I found in the plugin branch, the elderjs project had been specified as a local file in the package.json file.  Watch that.
That's how I got it to work.  Somebody (anybody) can correct me - that would be great.


cargo build/test with --frozen to ensure Cargo.lock is up to date

For example if I change the name simple-dep to simple_dep in
test/simple-dep/Cargo.toml and build without this commit I don't get
any errors. If I run with this commit I get:
cargo build --release --frozen -j 6 -Z unstable-options --out-dir out
error: the lock file /private/var/folders/5h/b11m6fxj2tqgbxwz5bgjy42c0000gn/T/nix-build-some-name.drv-0/dummy-src/Cargo.lock needs to be updated but --frozen was passed to prevent this

@basvandijk closing for now, feel free to reopen


Update loggregator.yml

Missing reverse log proxy for loggregator causing following errors on syslog adapters:
Failed to connect to loggregator API: lookup reverse-log-proxy.service.cf.internal on <IP_ADDRESS>:53: no such host

@Proplex can you take a look at this tomorrow, and perhaps take it for a spin in the lab?


Ant with a trap of boxes (similar to issue #136)

Hi!
I am trying to extend the Ant basic brax locomotion environment by simply adding a Trap in front of the Ant.
To do so, I took the _SYSTEM_CONFIG of the ant and added a new body called Trap with three box colliders. This alone works. Now when I add the collide_include statement to have collisions between the ant body and the trap, I am having a warning /usr/local/lib/python3.7/dist-packages/brax/physics/colliders.py:638: RuntimeWarning: divide by zero encountered in true_divide   t = jp.dot(normal, (p0 - a) / jp.abs(jp.dot(normal, capsule_normal))), even when the ant and the trap are far from each other.
To visualise the interactions, I made sure the Ant would have its starting position above the Trap so it would fall on the Trap. The result is that the Ant is ejected very far (into the sky...).
As this issue is very similar to #136 , I tried to remove the frozen statement and play with mass and inertia (just like described in issue #136) but none of my several tries ended up in acceptable physical behavior.
Below is the config file I used. Does this config file makes sense or did I made something wrong? (The differences with the original one are: the new body named "Trap", the include_collision statement between the body parts of the Ant and the "Trap", the include_collision statement between the "Trap" and the "Ground" and finally the defaults position of the Ant above the Trap to force collision between them.)
In case the file is good, I guess this use case definitely join issue #136; in which case it would be great to solve this issue so we can get to write plenty more environment with Brax ;)
Thanks!
PS: When replacing the boxes with capsules to construct my Trap, I was able to get acceptable physical behaviors.
 Yeah this is definitely not intended behavior.

Great! Thanks!

(Following up that we're still looking into this, we think there may be an offset not being propagated properly.)

Just adding my own experience as a notebook! I'm trying to draw basic walls and find using boxes more intuitive, but the physics get interesting. The alternative version (extend_ant_cfg instead of add_walls) uses capsules and doesn't do this
https://colab.research.google.com/drive/14PG54S-9JS5S6xfCbm8W7lpCUXCCi01J

I think the problem was solved with version 0.0.12 (with the new physics engine). I included a reproduction below:
https://colab.research.google.com/gist/DavidSlayback/0611a3cfff4871a33bae9bd5c04b08d7/copy-of-braxscratch.ipynb
The divide-by-0 error is gone, and the ant actually makes contact with the wall and seems to respond appropriately

Great to hear - yes we addressed a few collision bugs in this latest version.

Nice! Thanks for that!


Liquid Exception: Liquid syntax error: Unknown tag 'include_array'

I'm pretty sure this may not be an actual "issue".
I was porting a theme from octopress 2.
An noticed some of the commands does not work on octopress 3.
I downloaded the plugin to the blog and add it to the _plugins folder
https://github.com/imathis/octopress/blob/master/plugins/include_array.rb
And it looks like that fix the problem.
But I'm wondering if this is the correct way to do it. Or if Octopress 3 have a correct way to make available those plugins. Or those features are no longer going to be available?
Thank you.

I'm answering this from memory vs. anyone specific from Octopress, but I believe anything from Octopress 2 can be considered deprecated and not supported.
By add this to the _plugins folder you have a short term solution, but I would find a long term solution.
In the comment section of the link you provided it states:

Mostly cribbed from Jekyll's include tag

May take a look at Jekyll's tag to see if it works as you need.  May just need to find/replace all your include_array tags with just include.


Error during compile of SwiftCov

When compiling SwiftCov (which seems to use Box/MutableBox), an error occurs which seems to be caused by a Swift 2 incompatibility:
public final class MutableBox<T>: MutableBoxType, Printable {
                                                  ^~~~~~~~~
                                                  CustomStringConvertible
/Users/ladmin/Development/SwiftCov/Carthage/Checkouts/Box/Box/MutableBox.swift:25:10: error: 'toString' has been renamed to 'String'
                return toString(value)
                       ^~~~~~~~
                       String
Swift.toString:1:33: note: 'toString' has been explicitly marked unavailable here
@available(*, unavailable) func toString<T>(x: T) -> String

FYI: I was able to carthage update for iOS with robrix/Box 2.0 but not  for Mac.