crev should track repo URLs proofs were fetched from

I'm writing a GUI and I would like to have a feature to add trusted users by their GitHub usernames or URLs.
In order to do this securely, I have to establish which Crev Ids legitimately belong to a URL, but crev-lib doesn't seem to have an API for that.
It has a repo URL from body of the proof, but there's no guarantee that this value is true.
In a proof:
from:
  id-type: crev
  id: XXYZXYX
  url: "https://github.com/$USER/crev-proofs"

Only the id can be trusted (if signature matches). The url can't, because anyone can put any value they like (e.g. anyone can run cargo crev id new --github-username dpc).
So identities require a two-way check. I need to check that the repo at a given URL contains its own URL, and then I can know that the Id that signed this owns this repo (or the repo owner has been foolish enough to publish someone else's spoofed proof…)

(or the repo owner has been foolish enough to publish someone else's spoofed proof…)

I'm not really sure if I understand.  Proofs don't have to be of the owner of the repo. In the future, we might have repositories that aggregate proofs from multiple people, etc.
So the url was envisioned as a advise "if you ever want more proofs from me, try this url". I was hoping that in the future more "transport meachnisms" etc. will be added, and one will be able to download proofs from websites, bittorrent, ipfs or whatever else.
At least that was the vision. This way there's even absolutely no trust placed on github or whatever else git repo host etc.
I realize that this complicates the UX, because many users expect "oh, I just have that github usenrame and that identifies the user, and just figure out the ID" etc.

On the other hand some other users complain "git repos are untrustworthy and it's really bad that people will be only paying attention to github url, which is a possible attack vector".
This is generally the problem with online webs of trust, and the reason why PGP users have these signing parties etc. where they check their passports, etc. :man_shrugging:
I generally think that the best compromise: if the user used just the url, fetch the repo, read all the proofs from it, and if there was only one ID signing everything - take that as the ID, if there were more - give user the choice to pick one they want to use.

Currently crev has a weakness that a mere fetch of a repo is already putting trust in it. Currently crev trusts that all Id->URL mappings in all from: are valid and uses them as if they were real. It will display them next to identities in id query all.
If user fetches any repo they don't trust:

the repo can pretend to be anyone else's crev Id by copying their proofs
the repo can associate a false URL with someone else's Id

So this change doesn't put more trust in GitHub, it removes the accidental trust that already exists.
With #299

for any fetched repo it's clear which identities are repo's own, and which are copies from other known Ids that never claimed to use that repo (this isn't treated as error, only FYI for the user)
crev knows when a repo talks about other people's URLs, and can display this accordingly (e.g. id query all can't be spoofed).

Currently crev trusts that all Id->URL mappings in all from: are valid and uses them as if they were real. It will display them next to identities in id query all.

We only trust that it's in the best interest of the user to correctly self-report best known url to fetch updates from. From the perspective of the rest of the crev, it doesn't really matter if it's true. I think you might not acknowledge that because you'd like to rely on the opposite.

the repo can associate a false URL with someone else's Id via the secondary fallback.

Yes. The fallback urls only works this way: when looking for an url to fetch updates from, use urls reported by other users, if you don't have the url reported and signed by the Id itself. As long as you don't use the fact that you fetched an url as a certain proof that IDs in it are somehow special, the only thing you risk is downloading bunch of garbage and wasting space on disk (which is another problem that is not currently addressed).

It's technically a user error to trust based on a URL displayed by the tool, but such gotcha is unfair to users.

I agree with that being somewhat of a problem, but it doesn't invalidate the fact that the IDs are a primary subject of trust, and URLs are only a "if you are looking for more proofs from me use this URL" kind of thing.
The reverse mapping "url -> id" will never be bullet-proof, and it will be a security hole if users rely only on them. I don't think there's a way around it.

Right now as the code is what was downloaded from where did not matter because nothing is special. It doesn't matter where each stuff was downloaded from. The stuff that is used for any decisions is cryptographically signed anyway.
I think it is worthwhile making the _secondary fallback smarter (eg. only using URLs reported by another trusted user).
When user does cargo crev fetch <id> we could look up the matching url by:

looking for self-reported url
looking for url reported by another trusted user
looking for url reported by any user and warning user that they need to check it
telling user that we don't have an url right now

When user does cargo crev trust <url>, we can:

build a reverse mapping  or "url -> id" from proofs reported by existing trusted users, or
fetch the url, display available IDs, possibly pre-select one that looks like the one by the user and  and warn user that they must check if these ids really belong to the user they expected under given url

for any fetched repo it's clear which identities are repo's own,

So the insight here is that proofs with from.url the same as the downloaded repo, is a strong indication that the ID belongs to the owner of the repo.
I like that and I think it makes "possibly pre-select one that looks like the one by the user" quite reliable.
However security wise it is not an improvement. The repo could be compromised / connection MitMed, and returned proofs are signed by a malicious ID, and from.url set to the same url, to fool the downloading user.


Use cloudposse/template for arm support

what

Use cloudposse/template for arm support

why

The new cloudposse/template provider has a darwin arm binary for M1 laptops

references

https://github.com/cloudposse/terraform-provider-template
https://registry.terraform.io/providers/cloudposse/template/latest

Closes https://github.com/cloudposse/terraform-aws-ses-lambda-forwarder/pull/36

/test all

/test all

/test all

/test all


support for List.length in mirrorsused?

also isEmpty/isNotEmpty
I couldn't figure out how to do this via annotation, need to investigate more. It seems like using symbol (#length) or including the list type should work, but it did not, almost as if metaTargets overrides the other MirrorsUsed features. But I haven't tracked it down yet.

This issue has been moved to dart-lang/polymer-dart#488.


Change measure definitions that depend on presentation names

I'm not quite clear though on what our case sensitivity requirements are

Good point -- it's different on a case-by-case basis.  I've ensured that the new queries are capturing exactly the same presentations as the old ones.


Server Folder Structured

Related Issue

Unstructured server folder

Closes: #62
Describe the changes you've made
I have used proper naming convention and put the files in correct folder
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Enhancement in the existing features
[x] Other

Mention any unusual behaviour of your code (Write NA if not)
Any unusual behaviour of your code
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly whereever it was hard to understand.
[x] My changes generate no new warnings.
[x] I have verified/tested my code by running it locally.

Files Added/Modified

routes
controller
model
db
utilts->Authentication

@apeksha235 done.


SMTP failed to send emails

Hi,
I upgraded yesterday to version 0.5.0, but it seems that the SMTP (gmail) doesn't work anymore. New users don't get an email  and after I started the server with the '--debug' option, there is no indication was goes wrong. When sending a test email, there is an error:
Failed to send the test email. Raw error:
555 5.5.2 Syntax error. f4-20020a170906084400b0073c82539183sm2068370ejd.91 - gsmtp.

Version 0.3.3 works with the SMTP config that I used in 0.5.0.

Hm, this is most likely the same as in https://github.com/pocketbase/pocketbase/discussions/346.
This is maybe a regression because there are indeed changes to how the to address is constructed as a workaround for the  spamassasin "TO_NO_BRKTS_HTML_ONLY" rule.

I was digging in the GO code and found out that indeed the spamassasin bluemonday code was removed. That could be the issue

No, previously the "text" version of the email wasn't generated properly and resulted in increasing the spam score. The issue here is that some clients seems to reject emails when wrapped in angle brackets if there is missing name part.
A revisited and more thoroughly tested text version of the email, which should also prevent the TO_NO_BRKTS_HTML_ONLY spam rule, will be added in v0.6.0 release.

Ah okay, thank you. I'll wait for the next release :-)

I can confirm that version 0.5.1 is working, thanks for the fast response.


Linking of tests fails on Windows (mingw-w64)

With gcc on Windows, the link command must follow a specific order :
gcc -shared -o foo bar.o -ldep1 -ldep2
(-o foo can be anywhere, though)
but when  running make test :

cc -shared -L/home/vtorri/gitroot/lexbor/lib -llexbor ./unit/kv.o ./unit/test.o ./unit/kv_state.o ./unit/kv_rules.o -o /home/vtorri/gitroot/lexbor/test/lexbor/unit/libtest.dll

-llexbor must be after all the .o, not before, otherwise, there are undef ref.

cc -Wall -Werror -pipe -Wno-unused-function -Itest -Wno-unused-variable -Wno-unused-function -std=c99 -I. -I/home/vtorri/gitroot/lexbor/source  -L/home/vtorri/gitroot/lexbor/lib -Lunit -ltest -llexbor  core/array.c   -o core/array

move again -ltest -llexbor at the end (same errors)
the order must be from the most dependant to the least (hence -ltest -llexbor and not -llexbor -ltest)

cmake landed, this issue is not relevant anymore, closing


odin-nightly: Add version 2022-06-28

Since we've got Odin Dev version, I noticed the website offers a nightly version too. The page for downloads is here: https://odin-lang.org/docs/nightly/ but it requires JavaScript to load the links, so the checkver gets it directly from the source which is a json file. Same otherwise as odin-dev.

[x] I have read the Contributing Guide.

/verify


Typecheck ?

Is there anyway to add typecheck ?

@LeoIannacone what do you mean?

type check ^

@LeoIannacone ah, spellchecking. It's not supported, unfortunately. Feel free to follow discussion at #283


Feature/rewrite with schema types and parsers

Summary
Used the fully types JSONSchema draft v7 types to basically rewrite the logic. Edge cases which were not implemented and/or incorrect were now added. E.g. Type.Union() via list of types for "type" attribute. Or Type.Unknown() for object without properties. Some more tests still should be added, since most cases were caught by typescript type issues rather than the tests.

bumps official support to JSONSchema draft v7 similar to match what typebox has done.
adds linting to the project (linting was disabled for intial version)
will become version 1.6.0

perhaps the rewrite also fixes some of the issues you faced @pdfowler


sh: 1: Syntax error: ")" unexpected

When I hover over a file named 08 - Was Turtles Forever Actually Good？ (It's Complicated) I get this error sh: 1: Syntax error: ")" unexpected This error only occurs with this plugin

How is this related to archivemount.yazi? I didn't get you.
Can you send some reproducing steps for it which involved this plugin? I saw ur issue in main Yazi repo as well. From the steps u told there, I didn't face any issues making it.

I disabled every plugin i have except for this one and I got the same error

Can you just confirm, if you remove the UI extension, from your main init.lua, the issue still persists or not? Cause the backend functionality shoudnt have anything to do with this issue.

I'm not sure what you mean by the UI extension
but if you're asking whether the error persists without the plugin then no it goes away

No I mean remove the require("archivemount"):setup() from your init.lua

that fixed the issue

I see. Thanks for telling about it. I'll see how I can fix it on my end. The UI extension should not cause all this.


map environment config to a class

to make the use of the environment configuration easier, we should map the config to a class and provide an instance during resource generation.

This way we can also make secret management more easy, by annotating sensitive configuration parameters with @Sensitive, this will also allow the encrypt/decrypt tasks to work for a complete environment properly.


[Bug]: [Docker] Security plugin demo config install script executes even if security plugin is disabled

Describe the bug
The code in opensearch-docker-entrypoint.sh currently installs demo config first if enabled and then check whether security plugin is disabled. See here
To reproduce
Run:
docker pull opensearchstaging/opensearch:<IP_ADDRESS>99 && docker run -it -p 9200:9200 -e "DISABLE_SECURITY_PLUGIN=true" -e "discovery.type=single-node" opensearchstaging/opensearch:<IP_ADDRESS>99
<IP_ADDRESS>99: Pulling from opensearchstaging/opensearch

Expected behavior
Cluster should start without any errors related to security-plugin.
Screenshots
If applicable, add screenshots to help explain your problem.
Host / Environment
No response
Additional context
No response
Relevant log output
➜  ~ docker pull opensearchstaging/opensearch:<IP_ADDRESS>99 && docker run -it -p 9200:9200 -e "DISABLE_SECURITY_PLUGIN=true" -e "discovery.type=single-node" opensearchstaging/opensearch:<IP_ADDRESS>99
<IP_ADDRESS>99: Pulling from opensearchstaging/opensearch
Digest: sha256:87b2c2bed78237714aea05572b71757470b9b0622867615dde14c1ac3e2eeb27
Status: Image is up to date for opensearchstaging/opensearch:<IP_ADDRESS>99
docker.io/opensearchstaging/opensearch:<IP_ADDRESS>99

What's Next?
  1. Sign in to your Docker account → docker login
  2. View a summary of image vulnerabilities and recommendations → docker scout quickview opensearchstaging/opensearch:<IP_ADDRESS>99
Enabling execution of install_demo_configuration.sh for OpenSearch Security Plugin
OpenSearch 2.12.0 onwards, the OpenSearch Security Plugin a change that requires an initial password for 'admin' user.
Please define an environment variable 'OPENSEARCH_INITIAL_ADMIN_PASSWORD' with a strong password string.
If a password is not provided, the setup will quit.
 For more details, please visit: https://opensearch.org/docs/latest/install-and-configure/install-opensearch/docker/
### OpenSearch Security Demo Installer
### ** Warning: Do not use on production or public reachable systems **
OpenSearch install type: rpm/deb on Linux 6.6.12-linuxkit aarch64
OpenSearch config dir: /usr/share/opensearch/config/
OpenSearch config file: /usr/share/opensearch/config/opensearch.yml
OpenSearch bin dir: /usr/share/opensearch/bin/
OpenSearch plugins dir: /usr/share/opensearch/plugins/
OpenSearch lib dir: /usr/share/opensearch/lib/
Detected OpenSearch Version: 2.12.0
Detected OpenSearch Security Version: <IP_ADDRESS>
No custom admin password found. Please provide a password via the environment variable OPENSEARCH_INITIAL_ADMIN_PASSWORD.
➜  ~

Please update the README on the PR.

done.


Pickup x2, x4, x10 no longer apply to Poe or Zonai devices

Environment
CFW
TOTK Version: 1.1.1
https://github.com/bad1dea/NXCheats/commit/3b718a40414130988579471868010e5514ecb0aa
Pickup used to work for any items after the first pickup in the version that have pickup/sell/buy. With the new version of the code, it no longer affect Poe or Zonai devices that come out form the dispenser.

Truth. I also have to reboot the game when turning the code on or off for it to work.

arrows no longer multiply either

I'll be updating codes shortly :) most likely today: D


Emojis in READMEs not fully formatted

Very minor, but seems to have an easy fix.
Currently an emoji gets replaced with this g-emoji element like below:
<g-emoji class="g-emoji" alias="warning" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/26a0.png">
   ⚠
  </g-emoji>

In this case it should be the full emoji like: ⚠
Source
GitHub seem to resolve this with a bit of CSS:
g-emoji {
    font-family: Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
    font-style: normal !important;
    font-weight: 400;
    line-height: 1;
    vertical-align: -.075em;
}

(The first line there is the most important one...)

Image of what it looks like, without the fix.

Applying GitHub's CSS verbatim gets us to here. So probably needs a bit of extra voodoo


add hostmetrics receiver components to otel docs

Version(s):

Issue:

https://issues.redhat.com/browse/TRACING-3977
https://issues.redhat.com/browse/TRACING-3962
https://issues.redhat.com/browse/TRACING-4076
https://issues.redhat.com/browse/TRACING-4073

Link to docs preview:

QE review:

[ ] QE has approved this change.

Additional information:
Removed the hostmetrics part as discussed.

Thank you, Bene. I'm closing this PR. I'll add the two last-minute callouts in a separate Jira ticket: https://issues.redhat.com/browse/OBSDOCS-1097

I've opened https://github.com/openshift/openshift-docs/pull/79739 to document the initially left out callouts 7 and 8.


Add solver feature properties and feature-based solver selection

Hey, @JoelPasvolsky, heads-up on some client changes..


Better support for EUR trading and other currencies

Yeaah, this is good idea. Because gdax prevent trade in USD, if somebody is from Europe :/


Added coverage patches for 4.0 and 4.1 branches

Pull Request Test Coverage Report for Build 1974

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.839%

Totals

Change from base Build 1960:
0.0%

Covered Lines:
2395

Relevant Lines:
3055

💛  - Coveralls


Add Acceptance Tests

Write acceptance tests for each service. Try give wiremock a go.

Once implemented co figure pipleline to run these on each build and aslo run Stryker  mutation tests against these.


do not use charset for protobuf

I want to read/write POJO from/to protobuf directly to support large payload.
I cannot use ProtobufHttpMessageConverter which only support Message object.
So I write a HttpMessageConverter to archive that,  and meet the following issue.
SpringEncoder will not use charset for protobuf,
but it force the the type of message converter is ProtobufHttpMessageConverter.
The charset of request body will be set to StandardCharsets.UTF_8 when I use other HttpMessageConverter for protobuf MediaType.
SpringEncoder.java
// do not use charset for binary data and protobuf
Charset charset;
if (messageConverter instanceof ByteArrayHttpMessageConverter) {
    charset = null;
}
else if (messageConverter instanceof ProtobufHttpMessageConverter    <-------------
        && ProtobufHttpMessageConverter.PROTOBUF.isCompatibleWith(
                outputMessage.getHeaders().getContentType())) {
    charset = null;
}
else {
    charset = StandardCharsets.UTF_8;
}
request.body(Request.Body.encoded(
        outputMessage.getOutputStream().toByteArray(), charset));
return;

When the charset of request body is set,
feign will construct a String by decoding the byte array with the specified charset.
The request body is corrupt now, because it is binary data but not a UTF_8 string.
ApacheHttpClient.java
// request body
if (request.body() != null) {
  HttpEntity entity = null;
  if (request.charset() != null) {
    ContentType contentType = getContentType(request);
    String content = new String(request.body(), request.charset());       <-------------
    entity = new StringEntity(content, contentType);
  } else {
    entity = new ByteArrayEntity(request.body());
  }

  requestBuilder.setEntity(entity);
} else {
  requestBuilder.setEntity(new ByteArrayEntity(new byte[0]));
}

I think we can solve this issue by removing the the message converter type check, messageConverter instanceof ProtobufHttpMessageConverter.
The media type check for protobuf is enough.

We currently don't use media type at all for this check. If you've written a custom Converter, I'd suggest writing a custom Encoder that delegates to SpringEncoder and does what you need.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.


Add DMRG and contraction examples of using TBLIS

This adds some examples of using TBLIS, based on the new TBLIS support in NDTensors: https://github.com/ITensor/NDTensors.jl/pull/48
It also adds some extra checks that the index sets involved in in-place contraction are correct (some ill-formed examples slipped through when using TBLIS as a backend).

Codecov Report

Merging #533 (77e016f) into master (5dc56c5) will increase coverage by 0.52%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master     #533      +/-   ##
==========================================
+ Coverage   80.52%   81.05%   +0.52%
==========================================
  Files          41       41
  Lines        4170     3953     -217
==========================================
- Hits         3358     3204     -154
+ Misses        812      749      -63

Impacted Files
Coverage Δ

src/itensor.jl
77.94% <ø> (+1.46%)
:arrow_up:

src/indexset.jl
72.72% <75.00%> (-1.33%)
:arrow_down:

src/broadcast.jl
65.54% <0.00%> (-9.09%)
:arrow_down:

src/physics/site_types/tj.jl
58.92% <0.00%> (-6.08%)
:arrow_down:

src/physics/sitetype.jl
89.65% <0.00%> (-3.51%)
:arrow_down:

src/mps/dmrg.jl
74.57% <0.00%> (-3.04%)
:arrow_down:

src/physics/site_types/spinone.jl
84.31% <0.00%> (-1.97%)
:arrow_down:

src/physics/autompo.jl
91.95% <0.00%> (-1.24%)
:arrow_down:

src/decomp.jl
88.15% <0.00%> (-1.23%)
:arrow_down:

... and 26 more

Continue to review full report at Codecov.

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


The Search Restaurants function is not dynamic

the responses of the restaurant search are only displayed when search button is clicked, i want to make this search dynamic so that whenever the user inputs a letter the restaurants of the matching input should be displayed
I want to work on this issue under hacktoberfest

@Villain45 this make sense please go ahead it

@Anandsg and also when the fav option is selected, the search function works considering all the restaurants options to obtain result instead it should only work for restaurants which are marked as fav right?

@Villain45 yup, i observed that issue you can go ahead with making the search functionality dynamically i will create another issue for this favourite search issue.

@Anandsg Ok, will work on that after this

@Anandsg what about fav search issue
Can you create a PR and assign me then?

@Villain45 i have created separate issue for it please check


[DOC] CAT repositories documentation has incorrect description

What do you want to do?

[X] Request a change to existing documentation
[ ] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
I believe the description for the _cat/repositories API is incorrectly copied from the _cat/recoveries documentation. I believe the description should be: "Returns the snapshot repositories for a cluster."
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
https://opensearch.org/docs/2.3/api-reference/cat/cat-repositories/

I also checked this in the latest version documentation.

@Naarcha-AWS, I would like to work on this issue

Thanks @slippman. Pull Request #5296 was created.
@Naarcha-AWS would appreciate your review on this one.

It looks like this issue was merged. Should I close this issue? Does this fix not get back-ported to earlier documentation? I only see the fix in the latest documentation.

@Naarcha-AWS - I'm going to close this issue, but please backport to earlier versions, as appropriate. Thanks!


[Mac] Stuck at the first step for a long while - human demo

Hi all, my tests on option2 human demo always stuck at the 1st step for very long time, can't get into next step at all, tried with all kinds of apps, the issue always reproduces, would you please help on this?

same issue, with Mac(macOS 14.4) and Android(Xiaomi HyperOS 1.0.2)

Same issue with HarmonyOS 4.0.0


[Refactor]: Task List Web Component (OR DEAL WITH WORKAROUND)

Part to be refactored
The Task List does not offer any of the benefits of being a web-component.
For example, if you create a taskList component, in order to populate it with taskItem components you need to create a form element (or anything that can fire a submit event), fill it with about a dozen tags with specific id's, and only then will it function. This also makes it very convoluted to change how we edit or start tasks.
Here is an example if what is needed for the task list's add to function at all. You need more to get the rest of the functions to work.
    <task-list></task-list>       <form id="taskform">         <input id="" type="submit" value="Create Boilerplate task"></input>

         <input type="text" id="task-name"  />

       </form>
Refactors to be made
Make the task list work without having to create a bunch of other HTML.
Important Note
Theoretically, we can deal with this silliness by just creating the requisite HTML. If we want to, say, 'edit in place' (i.e. when editing a task, you edit the task as it is on the task list, rather than through a modal), then we can just make our modals look like the task items and stick it over the task item through some additional JS. Also, if we want to not have to confirm deletion (right now an extra button is required to delete a task), then we are locked out of it. But after some testing it seems like that's the only major thing that can't be solved by my workaround.
This is hacky, but it's the best workaround I can think of. If we do that, then refactoring will become more silly later down the line, so we need to make a decision as to whether to refactor the task list.

After doing a fair amount of work on getting the task-list working, there were some issues which were either fixed because of these changes or deprecated because they no longer applied:

#8
#10

@cmwall0605 For editing in place the contenteditable attribute could potentially simplify our issues


VK_ERROR_DEVICE_LOST in ApplyInitialContents and on opening Texture or Mesh Viewer

Description
After capturing a frame from the 3d_scene example of Bevy (specific commit), renderdoc logs VK_ERROR_DEVICE_LOST errors in it's diagnostic log, fails to show the texture view and hangs with Please wait, working... if I try to inspect a different event from the Event Browser, or some other things.
This screenshot shows where renderdoc really hangs, after this.

This is renderdocs diagnostic log from renderdoc before I cause it to hang.
VK_ERROR_DEVICE_LOST.txt
To try to get a better idea of what's happening I compiled the latest renderdoc from git (commit cd5d0ede440aff1fcb44121a21c088b77ec64285) and tried it again with that, with the same results. Visual Studio (2019, because the right Windows SDK for 2015 isn't on MS' site anymore) gives me this stack when the first exception occurs (on running the application directly):
>	renderdoc.dll!WrappedVulkan::FlushQ() Line 351	C++
 	renderdoc.dll!WrappedVulkan::ApplyInitialContents() Line 2785	C++
 	renderdoc.dll!WrappedVulkan::ReplayLog(unsigned int startEventID, unsigned int endEventID, ReplayLogType replayType) Line 3434	C++
 	renderdoc.dll!VulkanReplay::ReplayLog(unsigned int endEventID, ReplayLogType replayType) Line 204	C++
 	renderdoc.dll!ReplayController::SetFrameEvent(unsigned int eventId, bool force) Line 81	C++
 	qrenderdoc.exe!CaptureContext::SetEventID::__l2::<lambda>(IReplayController * r) Line 1507	C++
 	[External Code]
 	qrenderdoc.exe!ReplayManager::run(int proxyRenderer, const QString & capturefile, const ReplayOptions & opts, std::function<void __cdecl(float)> progress) Line 496	C++
 	qrenderdoc.exe!ReplayManager::OpenCapture::__l2::<lambda>() Line 56	C++
 	[External Code]
 	qrenderdoc.exe!LambdaThread::process() Line 345	C++
 	qrenderdoc.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl LambdaThread::*)(void) __ptr64>::call(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 136	C++
 	qrenderdoc.exe!QtPrivate::FunctionPointer<void (__cdecl LambdaThread::*)(void) __ptr64>::call<QtPrivate::List<>,void>(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 170	C++
 	qrenderdoc.exe!QtPrivate::QSlotObject<void (__cdecl LambdaThread::*)(void) __ptr64,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 121	C++
 	[External Code]

and this on loading a saved capture:
>	renderdoc.dll!WrappedVulkan::SubmitCmds(VkSemaphore_T * * unwrappedWaitSemaphores, unsigned int * waitStageMask, unsigned int waitSemaphoreCount) Line 290	C++
 	renderdoc.dll!WrappedVulkan::AddFrameTerminator(unsigned __int64 queueMarkerTag) Line 3409	C++
 	renderdoc.dll!WrappedVulkan::ContextReplayLog(CaptureState readType, unsigned int startEventID, unsigned int endEventID, bool partial) Line 2676	C++
 	renderdoc.dll!WrappedVulkan::ReadLogInitialisation(RDCFile * rdc, bool storeStructuredBuffers) Line 2438	C++
 	renderdoc.dll!VulkanReplay::ReadLogInitialisation(RDCFile * rdc, bool storeStructuredBuffers) Line 199	C++
 	renderdoc.dll!ReplayController::PostCreateInit(IReplayDriver * device, RDCFile * rdc) Line 2042	C++
 	renderdoc.dll!ReplayController::CreateDevice(RDCFile * rdc, const ReplayOptions & opts) Line 2009	C++
 	renderdoc.dll!CaptureFile::OpenCapture(const ReplayOptions & opts, std::function<void __cdecl(float)> progress) Line 364	C++
 	qrenderdoc.exe!ReplayManager::run(int proxyRenderer, const QString & capturefile, const ReplayOptions & opts, std::function<void __cdecl(float)> progress) Line 450	C++
 	qrenderdoc.exe!ReplayManager::OpenCapture::__l2::<lambda>() Line 56	C++
 	[External Code]
 	qrenderdoc.exe!LambdaThread::process() Line 345	C++
 	qrenderdoc.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl LambdaThread::*)(void) __ptr64>::call(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 136	C++
 	qrenderdoc.exe!QtPrivate::FunctionPointer<void (__cdecl LambdaThread::*)(void) __ptr64>::call<QtPrivate::List<>,void>(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 170	C++
 	qrenderdoc.exe!QtPrivate::QSlotObject<void (__cdecl LambdaThread::*)(void) __ptr64,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 121	C++
 	[External Code]

followed by
>	renderdoc.dll!WrappedVulkan::SubmitCmds(VkSemaphore_T * * unwrappedWaitSemaphores, unsigned int * waitStageMask, unsigned int waitSemaphoreCount) Line 290	C++
 	renderdoc.dll!WrappedVulkan::ApplyInitialContents() Line 2782	C++
 	renderdoc.dll!WrappedVulkan::ReplayLog(unsigned int startEventID, unsigned int endEventID, ReplayLogType replayType) Line 3434	C++
 	renderdoc.dll!VulkanReplay::ReplayLog(unsigned int endEventID, ReplayLogType replayType) Line 204	C++
 	renderdoc.dll!ReplayController::SetFrameEvent(unsigned int eventId, bool force) Line 81	C++
 	qrenderdoc.exe!CaptureContext::SetEventID::__l2::<lambda>(IReplayController * r) Line 1507	C++
 	[External Code]
 	qrenderdoc.exe!ReplayManager::run(int proxyRenderer, const QString & capturefile, const ReplayOptions & opts, std::function<void __cdecl(float)> progress) Line 496	C++
 	qrenderdoc.exe!ReplayManager::OpenCapture::__l2::<lambda>() Line 56	C++
 	[External Code]
 	qrenderdoc.exe!LambdaThread::process() Line 345	C++
 	qrenderdoc.exe!QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl LambdaThread::*)(void) __ptr64>::call(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 136	C++
 	qrenderdoc.exe!QtPrivate::FunctionPointer<void (__cdecl LambdaThread::*)(void) __ptr64>::call<QtPrivate::List<>,void>(void(LambdaThread::*)() f, LambdaThread * o, void * * arg) Line 170	C++
 	qrenderdoc.exe!QtPrivate::QSlotObject<void (__cdecl LambdaThread::*)(void) __ptr64,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 121	C++
 	[External Code]

followed by more (a bit too many to paste). After a number of exceptions renderdoc starts running without exception again, until I do something to trigger the actual hang, such as clicking a drawcall in the event browser, after which renderdoc hangs without exception.
I suspect there is a problem with the application I'm capturing from, but I was not expecting renderdoc to hang.
Steps to reproduce
Here is a capture from the application that reproduces the error every time for me (VK_ERROR_DEVICE_LOST.rdc).
The other file (no_VK_ERROR_DEVICE_LOST.rdc) is a capture from the last commit on bevy main (commit b6be8a5314e027a0b0f3ee48d04c14b52fe74676) that doesn't exhibit this problem. Putting the offending commit (by my hand) at 45b2db70705da24a89426e6b6e77d603a3983025 if that might help in some way.
This is the renderdoc diagnostic log for this second capture.
no_VK_ERROR_DEVICE_LOST.txt
Alternatively, with rust installed, one could clone https://github.com/bevyengine/bevy, checkout f520a341d5737600dbf89015b7729109d67cf041 (the HEAD of main at the time of writing) and build the application with cargo build --example 3d_scene. It can then be launched from target\debug\examples\3d_scene.exe with the root of the project as working dir and CARGO_MANIFEST_DIR=<path to working dir>.
I can also send over a compiled executable if desired.
Environment

RenderDoc version: v1.13 and cd5d0ede440aff1fcb44121a21c088b77ec64285 (the latter built using Visual Studio 2019)
Operating System: Windows 10 Education 19042.867
Graphics API: Vulkan

Edit: The issue seems similar to #2216. I've tried to include as much detail as I can, but I will provide what other details I can if asked.

FYI I'm not working for the next couple of weeks so I can look into this when I get back. In the meantime I would recommend running the validation layers to ensure you don't have any invalid API use, as that can cause RenderDoc to hang or crash as it doesn't handle invalid use of the API.
For the repro case I should hopefully be able to tell what's wrong from the capture. If I need to run the application I can, and I've been able to compile things with rust before but I've found it a pain. So a compiled executable if you can share it would be very welcome.

FYI I'm not working for the next couple of weeks so I can look into this when I get back. In the meantime I would recommend running the validation layers to ensure you don't have any invalid API use, as that can cause RenderDoc to hang or crash as it doesn't handle invalid use of the API.
For the repro case I should hopefully be able to tell what's wrong from the capture. If I need to run the application I can, and I've been able to compile things with rust before but I've found it a pain. So a compiled executable if you can share it would be very welcome.

Thank you for your quick response. I will try the validation layers first and post back here.
If you end up needing the executable, please let me know and I'll send it to you then.
In the mean time, enjoy the time off (if that's what it is)!

I ran with API validation, but the only thing that stood out to me was:
Core     PID  19900: [20:51:30]         vk_common.cpp(981) - Error   - Unexpected descriptor type
Core     PID  19900: [20:51:30]         vk_common.cpp(981) - Error   - Unexpected descriptor type

This is the full diagnostic log.
API validation.txt
and the capture https://gofile.io/d/1AV4iI

I'm not sure I follow, did you run through RenderDoc as well as enable the validation layers? You shouldn't do that as RenderDoc can change the behaviour and if your application does have invalid use then it's already undefined to use RenderDoc so the behaviour will be predictable. You should enable the validation and run your application with it directly.

I'm not sure I follow, did you run through RenderDoc as well as enable the validation layers? You shouldn't do that as RenderDoc can change the behaviour and if your application does have invalid use then it's already undefined to use RenderDoc so the behaviour will be predictable. You should enable the validation and run your application with it directly.

Ahhh, I misunderstood. I'm pretty new to graphics programming, so I hadn't realised there was more I could do on the API side itself. I'll look into it. Thanks.

Hi Baldur,
I've checked with renderdoc API validation, which gives me these. The checked ones I'm sure are because of renderdoc itself (https://github.com/baldurk/renderdoc/issues/582#issuecomment-295180765), the other ones I'm not 100%, but still fairly sure.
I've also verified that we're running with full vulkan validation layers in our debug builds and there are no validation errors from that.

[ ] Attemped to call vkGetPhysicalDeviceFeatures2() with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.2.168 (0x004020a8)) and supported by this physical device (1.0.0 (0x00400000)), but this API was not promoted until version 1.1.0 (0x00401000).
[ ] Attemped to call vkGetPhysicalDeviceProperties2() with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.2.168 (0x004020a8)) and supported by this physical device (1.0.0 (0x00400000)), but this API was not promoted until version 1.1.0 (0x00401000).
[ ] Cannot call vkDestroySemaphore on VkSemaphore 0xf00fbe00000000db[] that is currently in use by a command buffer. The Vulkan spec states: All submitted batches that refer to semaphore must have completed execution (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-vkDestroySemaphore-semaphore-01137)
[x] vkCreateImage(): Format VK_FORMAT_B8G8R8A8_SRGB is not supported for this combination of parameters and VkGetPhysicalDeviceImageFormatProperties returned back VK_ERROR_FORMAT_NOT_SUPPORTED. The Vulkan spec states: Each of the following values (as described in Image Creation Limits) must not be undefined imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251)
[x] vkCreateImage(): usage contains VK_IMAGE_USAGE_STORAGE_BIT and the multisampled storage images feature is not enabled, image samples must be VK_SAMPLE_COUNT_1_BIT The Vulkan spec states: If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-VkImageCreateInfo-usage-00968)
[x] vkCreateImageView(): pCreateInfo->format VK_FORMAT_B8G8R8A8_SRGB with tiling VK_IMAGE_TILING_OPTIMAL does not support usage that includes VK_IMAGE_USAGE_STORAGE_BIT. The Vulkan spec states: If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-VkImageViewCreateInfo-usage-02275)
[x] vkCmdBeginRenderPass(): Image view #0 created from an image with flags set as 0x8, but image info #0 used to create the framebuffer had flags set as 0x0 The Vulkan spec states: If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-VkRenderPassBeginInfo-framebuffer-03209)
[x] vkCmdBeginRenderPass(): Image view #0 created from an image with usage set as 0x1F, but image info #0 used to create the framebuffer had usage set as 0x10 The Vulkan spec states: If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.2-extensions/vkspec.html#VUID-VkRenderPassBeginInfo-framebuffer-04627)

Loading the VK_ERROR_DEVICE_LOST.rdc I see the two draws have descriptor set 3 bound with two used descriptors containing no buffer, binding 7: StandardMaterial_reflectance_var and binding 12: StandardMaterial_emissive_var. If these were updated before the frame and it's a RenderDoc bug that they're empty I can't tell why from the capture. In the capture that doesn't break these descriptors don't exist.
Can you share the program executable that produced VK_ERROR_DEVICE_LOST.rdc? Then I can run it and reproduce from there.

Thanks for looking into that!
I actually saw that on the pipeline state view, but since I experienced no other issues, I didn't pay it enough attention. I'll take my debugger through it, because they should be bound to a zeroed out buffer, afaik.
Let's hope this is the issue, so that I can fix my code, and maybe you have an inkling of what could cause renderdoc to hang on this, whereas the original application ran fine.

I'm not sure what you mean that you experienced no other issues, I thought you were seeing the device lost? I can certainly reproduce it.
I didn't see any descriptor updates in the capture so I assumed they were being initialised on startup and not within the captured frame. If the descriptors haven't been updated then that's definitely invalid since they are used, and I'm surprised the validation layers don't catch it. They shouted immediately when I ran them on the replay. If it is invalid behaviour then effectively all bets are off and it may well work by coincidence in the application and not renderdoc due to unknown variables.
If you share the application I can take a look and see, it should be easy to pick up if the descriptor sets are being written and if so why renderdoc doesn't contain the proper bindings. Otherwise I can wait until you've looked into it from your side.

I'm not sure what you mean that you experienced no other issues, I thought you were seeing the device lost? I can certainly reproduce it.

I meant my application is working fine. I do indeed experience the renderdoc issue.

I didn't see any descriptor updates in the capture so I assumed they were being initialised on startup and not within the captured frame. If the descriptors haven't been updated then that's definitely invalid since they are used, and I'm surprised the validation layers don't catch it. They shouted immediately when I ran them on the replay. If it is invalid behaviour then effectively all bets are off and it may well work by coincidence in the application and not renderdoc due to unknown variables.
If you share the application I can take a look and see, it should be easy to pick up if the descriptor sets are being written and if so why renderdoc doesn't contain the proper bindings. Otherwise I can wait until you've looked into it from your side.

The application is here, in two versions, debug (additionally uses validation layers) and release.
https://gofile.io/d/1UQ3g5

If some resources are not bound, and the VVLs appear to miss this for some reason, and the application keeps running, then this would be a wgpu issue (as opposed to RenderDoc). I'm surprised though, I thought binding checks are one of the first VVL got, and should be solid.

Thanks, that showed the issue immediately. It was related to the Unexpected descriptor type errors before - vulkan has a little feature that allows you to overrun descriptor writes from one binding to another as long as the type is compatible (in this case all buffers). I had implemented that but only assuming tightly-packed bindings, i.e. binding 0 rolling over into binding 1. In your case the bindings were sparse so instead of 0 rolling over into 3 it rolled over into where 1 should be and threw that error - also not properly then recording the results of the update. I guess this feature is rarely used so no-one had run into this before.
That commit should fix the rollover behaviour to properly advance to the next binding.

That makes sense. Yeah, vulkan descriptor updates are tricky. I'm surprised it only showed up to be a problem now in RD.
Thanks for the quick fix!

Thank you very much!
The more I use renderdoc, the more I come to depend on it. Thanks for your hard work!

I just built the latest commit and can confirm the fix works, also for other cases using Bevy.

Hi Baldur,
Any idea when you might make a new release? We're seeing a pretty substantial number of users of Bevy wanting to use renderdoc but running into this bug. I point them towards building it, but not everyone does.
Thanks. Cheers,
Jonas

I've been making releases regularly every 2 months for the past year or so, I don't make stable release for particular bugfixes unless it's something really serious otherwise I'd end up doing releases at an infeasible cadence.
Builds are made nightly from the latest branch so if you want a pre-made build you can download one of them.

That's fine. Thanks for pointing out the nightlies, I hadn't seen those!


Adding Clickhouse Playground example

This is an initial PR to solve issue 2. This PR adds an example of connecting to a table through Clickhouse Playground and doing some basic analytics.

@jcrist here's the initial draft PR. Are there specific things you'd like me to show with the dataset? Happy to improve this in the morning

Nice! Shall we remove the .DS_Store files?

yeah, I just added those to the .gitignore to prevent that happening in the future.

Just noticed that. I just used git add . I'll remove them!

but I think we should probably run black over all the notebooks so that the code is formatted consistently between examples.

Good idea Gil! I can push up a hook for the formatting changes with black. TIL black supports notebooks.

Thanks Marlene! I've made a few changes to finish up this notebook. Merging!

Ah, sorry for the silence on this. Just catching up with Github notifications 😅  Thank you!!!


[Frontend][Tensorflow]  Not support "Dtype"

def from_onnx(model, shape=None, dtype="float32", opset=None, freeze_params=False):
def from_tensorflow(graph, layout="NHWC", shape=None, outputs=None, convert_config=None):
Why TF not support variable dtype

If the pb is fp32, we want to change to fp16


Refactor Fetch SQL queries in Postgres backend

An attempt at some optimizations on the FETCH_QUERY and FETCH_QUERY_UPDATE Postgres queries.
Opening as a draft PR while I work on figuring out a way to benchmark the updated queries.
According to GPT:

The refactored versions with the LEFT JOIN and GROUP BY clauses, as well as the use of CTEs are likely to be more efficient in terms of performance, especially when dealing with large datasets. It allows for a more optimized approach to data retrieval, particularly when combining information from multiple tables.

Please be as pedantic as possible (-Wclippy::pedantic -Wclippy::nursery).
Related to #195

It appears that the latest ring dependency breaks support for the manylinux aarch64 environment we are using (https://github.com/briansmith/ring/issues/1728). We could update to manylinux_2_28 or try one of the other fixes, I'll have to test that in another PR.

Small update - I've made some progress on building a benchmark using Criterion to test if there's any benefit in the refactored SQL queries.
Preliminary results are looking good.
On my local (M2 Macbook Pro (10CPU, 16GiB)), I pre-populated the DB with 5000 profiles, then benchmarked the old SQL vs the new SQL creating 1000 profiles on top of the existing 5000.
Red = Old SQL
Blue = Refactored SQL

I'll work on a larger benchmark - pre-populate with 50000 profiles and then compare the SQL queries.
The expectation is that the refactored version should be faster compared to the old version as the number of profiles increases.

@swcurran, @andrewwhitehead, is there a channel on the Hyperledger Discord we could chat in?
I realized I may have been a little overly excited with my benchmark results earlier and that the tests/benchmarks aren't actually running in Multitenant mode. I'd like to figure out a way to pre-populate the DB with a number of profiles so that the benchmarking results are a little more appropriate.

There is an aries-askar channel on the Hyperledger Discord Server (invite: https://discord.gg/hyperledger) that I just created that we can use.  Should have been created long ago :-).


Invalid JS output by date code (missing parens)

Sample on live.bridge.net
Global.Alert(DateTime.Parse("01/02/2015").Month.ToString());
Global.Alert((DateTime.Parse("01/02/2015").Month).ToString());

If you don't have the extra parens (first line), the output JavaScript fails, because there's a + 1 added to the end of the getMonth() call, but no parents before calling toString:
Bridge.global.alert(Bridge.Date.parse("01/02/2015").getMonth() + 1.toString());
Bridge.global.alert((Bridge.Date.parse("01/02/2015").getMonth() + 1).toString());

This also happens with any constant, such as
0.ToString() needs to be (0).ToString()
Enum.Value.ToString() needs to be (Enum.Value).ToString() if Enum has [Enum(Emit.Value)] attribute


Disable operation elements and show chosen instance when processing log searching

As the title described, some operation elements (DatePicker, submitting button...) are not disabled and the chosen instance is still empty (even the error border is not dismissed...)

Clean-up the stale status since it is still an issue.


Deprecation error causing startup error

Loading examples... (node:61) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (Use `node --trace-deprecation ...` to show where the warning was created) Examples loaded. Logging in... Mineflayer detected that you are using a deprecated event (physicTick)! Please use this event (physicsTick) instead. Agent process exited with code 0 and signal null

I'm having the same issue were you able to fix it?

Closing due to inactivity. Please reopen if you still have the error on the most recent version.


Restore Java gemfile

I removed the separate Java gemspec because the rjgit_adapter is already set as default in the 'normal' gollum-lib.gemspec. However, I just realized the reason for having the second gemspec is to facilitate building the java version of the gem -- even though in normal cases, the dependency chain is resolved through gollum-lib.gemspec. So I've re-added the Java gemspec.
What annoys me, however, is that we have to keep track of the rjgit_adapter dependency in two places: in gollum-lib.gemspec, and gollum-lib_java.gemspec. The only way I can see around that is have a third file, adapter_dependencies.rb or some such, in which we define the requirements, and load that file from both gemspec files. Does that seem better or worse?

The only way I can see around that is have a third file, adapter_dependencies.rb or some such, in which we define the requirements, and load that file from both gemspec files. Does that seem better or worse?

I don't really mind either way tbh.

Went for a separate file so we don't run the risk of updating the dependency in only one place.

Looks solid.


Moving slice to impl - slice (FX Converter Refactor [16/N]) - <Target: converter_reorg_elementwise>

]

Closing in favor of https://github.com/pytorch/TensorRT/pull/2070


mWeb - OldDot Transition - New Workspace is not created after tapping "Set up my company for free"

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

Action Performed:

Go https://staging.expensify.com/
Login with expensifail account
Tap "Set up my company for free"

Expected Result:
NewDot should be opened, and new workspace should be created
Actual Result:
New workspace is not created.
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/233387585-fae904c6-517d-4c8c-95d3-54ac1bd2c562.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Issue is not reproductible in production
https://user-images.githubusercontent.com/93399543/233387852-e57eeabc-1473-4d4b-8ba3-06d150d59bdf.mp4

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Triggered auto assignment to @danieldoglas (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@kbecciv
What we do in this flow;

If an account already has a free policy, it will take the user to the workspaces list
If not, it will take the user to the  "new workspace" flow.

Looks to me like the account you tested in staging already had a free policy, so the flow is not wrong IMO. Can you confirm that?
Thanks!

Yeah I agree with @danieldoglas here, I think the view you are testing here is mainly for when user does not have workspace yet, I have tested creating a new workspace from OldDot being deeplinked to new dot and that worked well.
I think we can remove the deploy blocker here and investigate if all is fine with the android chrome, we might close this eventually

So:

The first video is not taking to the new workspace screen because they already had an existing policy (and oldDot "knew" it)
The second video takes them to the new screen the first time because they didn't have a free policy (and oldDot new they didn't), and the second time it creates a new one because oldDot was not refreshed, so it still didn't know there was a new free policy created when it was clicked.

So we can close this issue, right?

IMO yes, closing it.


fix(helm): make hazelcast cluster role and binding unique

Description
ClusterRole and ClusterRoleBinding are not namespace scoped. They need to be unique in the whole cluster.
Additional context

What about already existing cluster roles defined in rbac file ?
Also it is cluster role, so they are not meant to be scoped by namespaces no ?

A Cluster Role is required because Hazelcast needs to get information from the cluster. Before this fix, we could have only one installation of APIM per cluster. @sebdevaux noticed that ArgoCD 2 deployments won't stabilize because they were updating the same role. By using a unique name this should fix the issue

A Cluster Role is required because Hazelcast needs to get information from the cluster. Before this fix, we could have only one installation of APIM per cluster. @sebdevaux noticed that ArgoCD 2 deployments won't stabilize because they were updating the same role. By using a unique name this should fix the issue

I noticed the same role was already in place on cockpit side, and I wonder if we also have the issue there. cc @mariano-fernandez

On Cockpit the role needs to be created manually using a kubectl apply cf the README. An improvement could be done in Cockpit chart to include the role in the chart like this


crypto/x509: oidSignatureDSAWithSHA256 has incorrect value

The value of oidSignatureDSAWithSHA256 is currently defined as:
oidSignatureDSAWithSHA256 = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 4, 3, 2}

It should be:
oidSignatureDSAWithSHA256 = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 3, 2}

per https://tools.ietf.org/html/rfc5758#section-3.1:
 id-dsa-with-sha256 OBJECT IDENTIFIER  ::=  { joint-iso-ccitt(2)
     country(16) us(840) organization(1) gov(101) csor(3)
     algorithms(4) id-dsa-with-sha2(3) 2 }.

This OID is also defined incorrectly in the x/crypto/ocsp package.


fix typo in storage attach

This fixes a typo that causes attaching a btrfs disk to fail.

Signed-off-by: Joseph C Wang<EMAIL_ADDRESS>

LGTM. Thanks!


Accord bip66, lenR check bug

if (5 + lenR >= buffer.length) return false

should be
if (5 + lenR > buffer.length) return false

because buffer is slice the last byte.
https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki:
    // Make sure the length of the S element is still inside the signature.
    if (5 + lenR >= sig.size()) return false;

@guotie can you provide a test fixture?

because buffer is slice the last byte.

What buffer.slice?

I mean the input param buffer length  =  origin buffer length - 1, so the condition should be change accord the code :
    // Make sure the length of the S element is still inside the signature.
    if (5 + lenR >= sig.size()) return false;

@guotie buffer length = origin buffer length - 1 what?
Can you directly link to the code you are querying?

line 16

@guotie I have no idea what you are referring to.
There is no buffer.length - 1.
There is no buffer.slice.
If you could provide a test case that shows clearly what isn't working, I'll re-open this issue,  but as is,  the code appears to be OK.
I don't doubt you might be on to something,  but, I can't see based on the hints you are providing :confused: .

Are you saying it should be 4 + lenR?

i think so, should it ?

See https://github.com/bitcoinjs/bip66/pull/12 for working PR,  tests needed though


export SwipeableListView component.

Explain the motivation for making this change. What existing problem does the pull request solve?

SwipeableListView is already usable, I think it would be great to export it so users can test it.

By analyzing the blame information on this pull request, we identified @sebmarkbage and @nicklockwood to be potential reviewers.

cc @fred2028

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review.


Performance improvements for stacked-slices

This PR also deletes the original SciPy backend and replaces it with the stacked-slices backend.

Closing this as it has been merged in the main repository.


Allow using custom theme in incognito tabs

At some point google removed allowing custom themes in incognito tabs. can it be brought back if possible?
this seems be the commit which removed the flags.
also this might be of use perhaps. Thanks! (sidenote-thanks for bringing back disablewindows10tiltlebar flag, enjoying the aeroglass!)

In previous Chrome versions (like 109) the inactive tab color was set to the Windows titlebar (including in Incognito mode), restoring that would be great!

Looks like a good feature to add.
Seems like this browser will become an ungoogled clone soon (but the "real" ungoogled parts will be optional because many people seem to like their sync).

ya even i was confused lol
also i tried #enable-incognito-themes in ungoogled chrome but it doesnt seem to fully adapt to the theme.

guess i will try old chrome

ya old chrome(version 99.0.4844.51) works with #incognito-brand-consistency-for-desktop and #inherit-native-theme-from-parent-widget. wish there was an option to remove the "you have gone incognito " box tho : )

So I'll take it from the state Chromium left it in before removal instead of ungoogled's approach.
Yeah, I'll also look into offering the option to disable the incognito message as well.

That would be perfect! Thanks!


Implement additional commands in DPE Go client

In the DPE Go client, implement

DeriveChild
Sign
ExtendTCI

Done in https://github.com/chipsalliance/caliptra-dpe/pull/253, https://github.com/chipsalliance/caliptra-dpe/pull/251, and https://github.com/chipsalliance/caliptra-dpe/pull/250


License Question

Your badge mentions MIT. But your License file does not.
Can you provide any clarification on this?

Any news on this? Thanks!

This is the MIT license https://github.com/howdyai/botkit/blob/master/LICENSE.md


Delate  bot.log.

Delate the logging into the bot.log.

Relate to https://github.com/bdim404/HackerNews-Summarize-Telegram-Bot/pull/29


Keep loading more than 10 mins after expanding 'Blob Containers' which containers $web for one GPV2 account

Storage Explorer Version: 1.2.0
Platform/OS Version: Windows 10
Architecture: ia32
Build Number: 20180619.1
Commit: 3b2233d5
Regression From: Not a regression
Steps to Reproduce:

Go to Subscription(Azure Tools Manual Testing 1) -> Storage Accounts.
Choose one GPV2 account like 'alphaxuantest' which is deployed to Static Website(The step is implemented on VS Code with Azure Storage extension).
Check the resources of the account 'alphaxuantest' in portal and make sure the blob container named '$web' displays.
Back to Storage Explorer then try to expand the 'Blob Containers' node under the selected GPV2 account.

Expected Experience:
The 'Blob Containers' node can be expanded successfully.
Actual Experience:
Keep loading more than 10 mins after expanding 'Blob Containers' under the account.

Duplicate of #223.


Misspelled GO ETs

Found while editing GO in the UMLS -- misspelled word, "singalling" should be "signalling"
Hippo singalling complex [GO2023_05_10/ET/GO:0160065]
Thanks,
Miranda Jarnot, UMLS Source Coordinator

Thanks for reporting this @mirandajarnot
This is now fixed. I have also changed the British spelling to US spelling (signalling >> signaling), since this is the convention in GO.
Pascale


Poor performance of ROS1 Node compared to OrbeccViewer

I am unsure how to describe this perfectly, but I am noticing incredibly large performance differences between the ROS1 node and the standalone OrbeccViewer.
In the OrbeccViewer, I am able to effortlessly stream 4K color and max res. depth images, merge them to a PCL and have somewhat stable 30fps throughout the session.
When I launch the minimal configuration (1280x720), I get very unstable recordings (on various machines) and even complete frame freezes for certain scenes. Is this a known issue?

hi @marcomasa
The performance differences you're noticing between the ROS1 node and the standalone OrbeccViewer are primarily due to how data is handled and processed in each case.
In the OrbeccViewer, the software directly accesses and renders the data with minimal overhead, which allows it to handle high-resolution streams like 4K and depth images efficiently, maintaining stable frame rates.
On the other hand, the ROS1 node introduces additional overhead related to data transmission, such as publishing and subscribing to topics. This includes serialization, deserialization, and the time it takes to transmit data between processes, which can contribute to performance issues, especially at higher resolutions. The frame freezes and instability you're observing could be due to these transmission overheads and potentially how ROS handles the processing pipeline in your specific setup.
If performance is critical, optimizing the ROS pipeline, reducing message sizes, and offloading heavy computations outside ROS nodes could help mitigate some of these issues.

Thank you for the details!
I noticed that the output format of recordings with the Windows Orbecc Viewer are still ROS1 bags,
which show no frame drops when I record on the same machine.
This would (for the while) be a valid alternative for my use case, but unfortunately there is
no option to record the image streams and IMU data at the same time.
I can enable and stream them both, but there is no option to add the data to the bag.
Is it planned to add this option to the standalone viewer?

@marcomasa
Just some hints, not all may apply to to your case.
If you look at example sensor workflow, say Femto Bolt
Data from sensor
Native data at higher resolutions is MJPEG:

https://www.orbbec.com/documentation/femto-bolt-hardware-specifications/

ROS driver
This data is decompressed by ROS driver

https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/src/ob_camera_node.cpp#L975
https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/src/ob_camera_node.cpp#L993

If you are lucky (Nvidia or Rockchip) you may try using hardware decoder:

https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/CMakeLists.txt#L24C1-L25C60
otherwise you end up with software decoding

ROS driver workflow
If you try to record in ROS compressed data through image_transport (like compressed) you end up with workflow

compressed data from sensor

decompressed by Orbbec SDK ROS (+ maybe color conversion)

compressed again by ROS image transport

Unless care has been taken by ROS driver writer:

internal decompressing will block driver processing
image_transport will block driver processing while compressing

On the other hand If you try to record in uncompressed format

you still have internal decompression of data
at higher resolutions those are huge amounts of data

What might be done
You might shortcut ROS driver to publish MJPEG data directly (this is like compressed image_transport) in ROS.

after checking with 2-3 lines of code how much time decompression/compression takes, it may not be worth the effort

You might also try to decouple compression from driver by image_transport republish.
Finally using nodelets instead of nodes may eliminate some unnecessary data transmission
At higher resolutions those are really huge amounts of data

this means gigabits per second

e.g. 4K 3840*2160 = 8294400 * 4 bytes per pixel = 33177600 bytes

33177600 * 30 frames per second = 995328000 bytes per second

995328000/1024 = 972000 KB per second

972000/1024 = 949,21875 MB per second

Higher resolutions in video processing are generally not suitable for uncompressed transmission/storage.
They may also be not suitable for software processing at high framerate.
Unless you are careful, it is very easy to have bottleneck in the workflow.

Hi @bmegli !
First of all, thank you so much for your detailed input!

https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/src/ob_camera_node.cpp#L975
https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/src/ob_camera_node.cpp#L993

If you are lucky (Nvidia or Rockchip) you may try using hardware decoder:

https://github.com/orbbec/OrbbecSDK_ROS1/blob/04cf221a533a256f68b2036a77dc60a70063a9b8/CMakeLists.txt#L24C1-L25C60
otherwise you end up with software decoding

Regarding the HW decoding flags, I unfortunately do not run the camera with a Jetson or Rockchip HW board,
so i cannot use them. On the main system I even run in a WSL2 environment (see also #48 ), so i might even lack additional drivers. However, I also tested on a native linux machine, and I still got very high CPU usage for the Linux driver.
I might add system info and running specs later.

ROS driver workflow
If you try to record in ROS compressed data through image_transport (like compressed) you end up with workflow

compressed data from sensor

decompressed by Orbbec SDK ROS (+ maybe color conversion)

compressed again by ROS image transport

I am actually recording non-compressed data at the moment.
And yes, you are right, the amounts of data are huge, but enabling compression took down the actual framerate even further (like somewhat to be expected).

What might be done
You might shortcut ROS driver to publish MJPEG data directly (this is like compressed image_transport) in ROS.

after checking with 2-3 lines of code how much time decompression/compression takes, it may not be worth the effort

Do you have the lines / the timing somewhere available ? :)

Finally using nodelets instead of nodes may eliminate some unnecessary data transmission

I will try setting up launchfiles for that. I think orbecc already provides the nodelets in general, but I have not seen any launching configurations in the repo.


unable to install with python 3.8.3

When I running npm install the build fails at
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: C:...\Programs\Python\Python38-32\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack   File "", line 1
npm ERR! gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack                       ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:333:12)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:376:20)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1063:16)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:295:5)
npm ERR! gyp ERR! System Windows_NT 10.0.19042
npm ERR! gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\ADT\ADT_explorer\client\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\ADT\ADT_explorer\client\node_modules\node-sass
npm ERR! gyp ERR! node -v v15.5.0                                                                                npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1
Seems related to node-gyp v3.8.0 dependency of node-sass (<5) what supports only python2 (EOL)
https://github.com/sass/node-sass/issues/3013
https://github.com/sass/node-sass/issues/2877
Also interesting Libsaas and Node-Saas are deprecated. Not better to switch to sass as recommended?

managed to run it with dart-saas https://github.com/sass/dart-sass/releases/tag/1.32.4

managed to run it with dart-saas https://github.com/sass/dart-sass/releases/tag/1.32.4

Thanks for the pull request @ChristianBeier. I was stumbling across the same problem.
In the package.json change this:
"node-sass": "^4.14.1", --> "sass": "^1.32.4",

Thanks for the pull request @ChristianBeier. I was stumbling across the same problem.
In the package.json change this:
"node-sass": "^4.14.1", --> "sass": "^1.32.4",

This fix is now in the development branch. Once we've finished our test pass, it'll be merged into master. Thanks!

Closing as the fix is now in the new default main branch here: https://github.com/Azure-Samples/digital-twins-explorer
Thanks again for reporting!


Need to use sudo to run clinfo

Is this normal? On bare metal install, using ubuntu packages, I don't need sudo

The docker.ce release 18.02 has known defects working with rocm-user account insider docker image. Please upgrade docker package to the 18.04 build:
https://download.docker.com/linux/ubuntu/dists/xenial/pool/nightly/amd64/docker-ce_18.04.0~ce~dev~git20180315.170650.0.8fabfd2-0~ubuntu_amd64.deb

Thanks, that was the problem.


docs: Update useBlocker function signature

According to the signature the blocking function has BlockerFn type and not () => string

the prop is not called message anymore, can you fix this as well please?
I also noticed we don't have API docs of the useBlocker hook ...


Uncaught Error: Assertion Failed: You specified the templateName formfieldinput for Ember.EasyForm.Input:ember474, but it did not exist.

I am trying the Bootstrap 3 and Ember Data With Server Side Validations as outline here:
https://github.com/dockyard/ember-easyForm/wiki/Bootstrap-3-and-Ember-Data-With-Server-Side-Validations
However this causes this error
Uncaught Error: Assertion Failed: You specified the templateName form-fields/input for Ember.EasyForm.Input:ember474, but it did not exist.
Any ideas?

I think @seriousben's answer solves your problem. I'm closing this issue.


[NCL-7799] Implement Build Artifact Dependency Graph

I would still suggest using 'is' because that more applies to best practices. See online discussion  here: https://dev.to/michi/tips-on-naming-boolean-variables-cleaner-code-35ig

It' just one of the opinions. isLabelMatch does not sound right grammatically.


Move from DateTime to DateTimeOffset

DateTime is a weird type, and DateTimeOffset provides a much nicer experience. The PR is mainly about the Timestamp type, but I changed in other places as well. Perhaps the places where "Now" is used to keep track of elapsed time should use other constructs instead, such as Stopwatch or CancellationTokens with scheduled set time.

It looks like @gliljas hasn't signed our Contributor License Agreement, yet.

The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen licence.
Wikipedia

You can read and sign our full Contributor License Agreement here.
Once you've signed reply with [clabot:check] to prove it.
Appreciation of efforts,
clabot

[clabot:check]

@confluentinc It looks like @gliljas just signed our Contributor License Agreement. :+1:
Always at your service,
clabot

The timestamp in the Kafka message format is just a long value which has a 1:1 correspondence with DateTime - using DateTimeOffset would be adding to the size of the data type without adding information. I think DateTime best satisfies the requirements here (which include memory / performance), except it is liable to misuse as you note.
Regardless of what is best, we are reluctant to make breaking changes to the API without very good reason as this impacts a lot of people, so we won't be changing this.
Thanks for the contribution though!

The PR doesn't introduce any breaking changes. The DateTime properties are still there, although marked as obsolete (which could be changed, of course). And it doesn't add to the size of the data type. It's just a masquerading property.

The timestamp in Kafka has inherent ambiguity, in that it's just a long without a timezone, and this matches well to DateTime (deficiencies and all). We thought about DateTimeOffset when making the class, and decided against it. I agree there is an argument for it, but i'm not convinced it completely solves the problem or adds enough value (we also prefer a smaller API surface area over different ways to do the same thing).
The PR marks some methods as obsolete (meaning the intention is to make breaking changes when we do a major version bump).

Since the actual data is a UTC timestamp (I wouldn't call it ambiguous, or is it?), there will never be any timezone, or even an offset<>0, so we really don't get any added value functionality with DateTimeOffset, but the ambiguity (indeed reduced by the name "UtcDateTime") is what's so bad about DateTime, especially once it's relayed further through other API:s.
Anyway, you've thought about it and decided against it, so fair enough :)

again, thanks for the input - if we get the same feedback a lot, we'll reconsider.


in-editor performance when using a WallMeshShaper with a non-trivial mesh does not scale (PR)

Hi @daleblackwood
First of all a huge thank you for this amazing addon. I've been looking for something like this for a while, and found this just today, and must say I really love how easy it is to create levels with this tool.
NOTE: I am using the v1.2 branch
I have found one issue though, which is that - if I use a WallMeshShaper with a non-trivial mesh - the performance in the editor gets bad real quick as the shape grows. (see the two videos attached for the difference between a low poly wall and a box). I had a quick look in the code, but haven't really started digging yet, but from what I gather, it's probably down to the fact that the WallMeshShaper.build_sets function simply takes times (which is probably reasonable).
Since I don't (yet) understand the code well enough, I can't speak to what potential performance improvements there are, but one potential solution could be to allow the user to set a placeholder mesh that is used while editing, and then require a baking step, where the actual mesh is only used. This work-around is possible as-is but requies you to manually swap the mesh in the editor.
Another annoying problem is that the Goshape is flagged as dirty too quickly. For example, as soon as I give focus to the shape, the entire shape is rebuilt, without me even editing anything.
Also, please let me know if this is a user-error on my ned, and again, thanks for your hard work. I will keep looking if I can come up with some more useful input in this issue.
OBS this is only regarding the in-editor performance, once the shape is built, the performance is perfect.
https://github.com/user-attachments/assets/ab0cee5d-7b53-4ad0-a0e9-852126020e85
https://github.com/user-attachments/assets/b518be21-db27-458a-9420-a117f7f610eb

here is a video showcasing the second issue, which is that the Goshape gets rebuilt on focus. It's a bit hard to illustrate, but I click the wall and the ground respectively (both Goshapes) as soon as the cursor moves over respective object.
https://github.com/user-attachments/assets/d5e752cb-17d0-44e9-bd76-3b8b5b20e1c0

I added the option to allow for a placeholder_mesh which is a very straight forward implementation, and which greatly improved the developer experience. I will send a PR, in case you are interested.
https://github.com/user-attachments/assets/139c75b1-7a77-4031-82aa-a9b6df9467c4

Hey @GGAlanSmithee - I've made a pretty big update that refactors the mesh generation to be on a separate thread, it's working well in my limited tests, but I could use feedback.
Feel free to test it out: https://github.com/daleblackwood/goshapes/pull/41

@daleblackwood
Amazing! It's so much better. I have found some minor UX quirks, but nothing major so far. I will post further feedback and possible commits to #41

@daleblackwood also, see #43 for another idea.

I've added a level-of-detail (LOD) mesh for wall mesh. If it's specified, it will be used for the collider instead. It will generate the low detail mesh first, making it a bit quicker.


[Website update] Students page

Is your feature request related to a problem? Please describe.
On March 1st, the College Contributor Initiative (CCI) was successfully launched. As of 4/7/23 there are 153 PRs created by College contributors, and yet there is no information about the program on the project website. This is resulting in lost opportunity to inform more college contributors about CCI.
Describe the solution you'd like
We need a page on the project website that provides consolidated information about CCI (what it is; how to join; what is the benefit for students).

As far as naming this section, we should consider creating a section called "Educational Resources" or something along those lines. That way we're able to build out this section over time.


Other envs

Hi, i'm sorry to be a bother. I wonder how i run my own env in your code. Beacuse i found that there is   if (domain, task) in suite.ALL_TASKS:.

Our repo uses DMControl which follow the standard gym api, so it should be fairly straightforward to extend to other environments. You will need to modify the make_env function at https://github.com/nicklashansen/tdmpc/blob/96cb7036ecf06f75d5ffd64a0454bbab7d0d3e17/src/env.py#L246 such that it uses your own environment + wrappers. You might also need to normalize the action space to [-1, 1] if it is not already normalized.

thank you so much!


Unite dataset imported in CLB lacks Higher taxonomy

Unite dataset imported in CLB lacks Higher taxonomy, this issue appeared on the latest version of the dataset on CLB, the GBIF source doesn't have this problem
Example Sh0887892.09fu
On CLB lost classification: https://www.checklistbank.org/dataset/30477/taxon/SH0887892.09FU
On UNITE with classification: https://unite.ut.ee/bl_forw_sh.php?sh_name=SH0887892.09FU#fndtn-panel2
On GBIF with classification: https://www.gbif.org/species/201763784

Fix deployed and new import running, let's see

All the issues are gone and the classification is back again:


Using getConversations() instead of conversations_response in getSnaps()

getSnaps() should use the return value of getConversations().

I've made some more changes to Snap-API, including support for (custom) subdirectories in /snaps and /stories (since more than one auth token at once can now be stored).

https://github.com/mgp25/Snap-API/pull/91/files#diff-16d5eaf684207e73fd963264820254f2R152
Use __DIR__ instead

Done. Thanks for pointing out.

@marank the rest of the commits are working? it seems fine to me.

Yes they are working for me.

@marank awesome, thanks :+1:


Create 242-Valid-Anagrams.swift

Swift version of 242-Valid-Anagrams, accepted by leetcode judge.

Thanks @chandra9302 !


Support exception breakpoints per debug session

VSCode Version: 1.45.1
OS Version: MacOS Catalina

Steps to Reproduce:
requires C/C++, CMake and python extensions

clone https://github.com/dvirtz/vscode-bug
open folder in vscode
build project
put a breakpoint in hello.py line 2
launch "Python: File"
see exception checkboxes in breakpoints window
launch "python + cpp" debug configuration
the exception checkboxes disappear

The issue here is that the C++ extension probably does not support exception breakpoints.
And in debug UI we do not have support for exception breakpoints per session.
Thus you could file an issue to C++ to start supporting exception breakpoints if possible, but the issue on vscode remains: to have exception breakpoints per sessino, thus renaming this and leaving open as a feature request.

If I try to use a C++ debug extension which does support exception breakpoints (like CodeLLDB) then only that extension checkboxes are visible and I still can't modify python's exception breakpoints.

yeah exactly, so the issue is what I mentioned in my previous comment we need to support exception breakpoints per debug session.


Can't make purchaseOffering in iOS testing environment

I am replacing @capgo/capacitor-purchases library by this one and have some problems. My initial load is fine (configure()), and also restorePurchases() function is working, but purchasePackage() isn't. Promise that creates after calling it never fulfills and all I have in console is this logs (after like 5 seconds):

2023-11-01 04:29:59.332848+0200 App[35328:3779866] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=3319188063, ack=0, win=0 state=LAST_ACK rcv_nxt=3319188063, snd_una=2053880864
2023-11-01 04:29:59.334232+0200 App[35328:3779866] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=3319188063, ack=0, win=0 state=CLOSED rcv_nxt=3319188063, snd_una=2053880864
2023-11-01 04:29:59.336428+0200 App[35328:3779866] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=3319188063, ack=0, win=0 state=CLOSED rcv_nxt=3319188063, snd_una=2053880864

Thanks for letting us know!
I think those logs are a red herring, that's just some debug logs from Apple. Could you share complete debug logs, starting from app initialization? 🙏🏻

2023-11-01 20:54:09.332685+0200 App[38747:4131923] KeyboardPlugin: no resize
⚡  Loading app at capacitor://localhost...
2023-11-01 20:54:09.817723+0200 App[38747:4131923] [Process] Networking process (0x116000470) took 1.179169 seconds to launch
2023-11-01 20:54:09.818122+0200 App[38747:4131923] [Process] WebContent process (0x116001560) took 1.131747 seconds to launch
⚡  To Native ->  App getInfo 124358660
⚡  To Native ->  Preferences get 124358661
⚡  To Native ->  Preferences get 124358662
⚡  To Native ->  SafeArea getSafeAreaInsets 124358663
⚡  To Native ->  StatusBar setStyle 124358664
⚡  To Native ->  Purchases configure -1
⚡  TO JS {"version":"1.5","name":"Pickeer","id":"com.pickeer.app","build":"1"}
⚡  To Native ->  Purchases getCustomerInfo 124358665
⚡  TO JS {"value":"1.5"}
⚡  TO JS {"value":"[]"}
⚡  To Native ->  Purchases getOfferings 124358666
⚡  TO JS {}
⚡  TO JS {"insets":{"left":0,"right":0,"bottom":34,"top":44}}
2023-11-01 20:54:10.898140+0200 App[38747:4132196] [configure] DEBUG: ℹ Configuring SDK using RevenueCat's UserDefaults suite.
2023-11-01 20:54:10.916363+0200 App[38747:4132196] [identity] DEBUG: 👤 Identifying App User ID
2023-11-01 20:54:10.922045+0200 App[38747:4132196] [configure] DEBUG: ℹ Debug logging enabled
2023-11-01 20:54:10.922104+0200 App[38747:4132196] [configure] DEBUG: ℹ SDK Version - 4.27.0
2023-11-01 20:54:10.922129+0200 App[38747:4132196] [configure] DEBUG: ℹ Bundle ID - com.pickeer.app
2023-11-01 20:54:10.922912+0200 App[38747:4132196] [configure] DEBUG: ℹ System Version - Version 16.7.1 (Build 20H30)
2023-11-01 20:54:10.922936+0200 App[38747:4132196] [configure] DEBUG: ℹ Not using a simulator.
2023-11-01 20:54:10.923059+0200 App[38747:4132196] [configure] DEBUG: 👤 No initial App User ID
2023-11-01 20:54:10.923087+0200 App[38747:4132196] [configure] DEBUG: ℹ Purchases is configured with response verification disabled
2023-11-01 20:54:10.924962+0200 App[38747:4132197] [offering] DEBUG: ℹ Offerings cache is stale, updating from network in foreground
2023-11-01 20:54:10.925127+0200 App[38747:4132196] [configure] DEBUG: ℹ Delegate set
2023-11-01 20:54:10.926691+0200 App[38747:4132197] [network] DEBUG: ℹ GetOfferingsOperation: Started
2023-11-01 20:54:10.927049+0200 App[38747:4132197] [network] DEBUG: ℹ There are no requests currently running, starting request GET /v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02/offerings
⚡  TO JS undefined
2023-11-01 20:54:10.943777+0200 App[38747:4132197] [network] DEBUG: ℹ API request started: GET '/v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02/offerings'
2023-11-01 20:54:10.947240+0200 App[38747:4132196] [customer] DEBUG: ℹ Vending CustomerInfo from cache.
2023-11-01 20:54:10.948367+0200 App[38747:4132196] [offering] DEBUG: ℹ No cached Offerings, fetching from network
⚡  TO JS {"customerInfo":{"originalApplicationVersion":"1.0","entitlements":{"active":{},"all":{"premium":{"unsubscribeDetectedAt":null,"ownershipType":"PURCHASED","productPlanIdentifier":null,"isSandbox":false,"originalPurchaseDate":"2023-08-23T23:59:47Z","expirat
2023-11-01 20:54:10.949808+0200 App[38747:4131923] [customer] DEBUG: ℹ CustomerInfo cache is stale, updating from network in foreground.
2023-11-01 20:54:10.952296+0200 App[38747:4132194] [network] DEBUG: ℹ Network operation 'GetOfferingsOperation' found with the same cache key 'GetOfferingsOpe…'. Skipping request.
⚡  WebView loaded
2023-11-01 20:54:12.287419+0200 App[38747:4132194] [network] DEBUG: ℹ API request completed: GET '/v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02/offerings' (304)
2023-11-01 20:54:12.290004+0200 App[38747:4132194] [store_kit] DEBUG: ℹ No existing products cached, starting store products request for: ["premium_monthly", "premium_yearly"]
2023-11-01 20:54:12.290110+0200 App[38747:4132194] [offering] DEBUG: ℹ Found an existing request for products: ["premium_yearly", "premium_monthly"], appending to completion
2023-11-01 20:54:12.290140+0200 App[38747:4132194] [network] DEBUG: ℹ GetOfferingsOperation: Finished
2023-11-01 20:54:12.290244+0200 App[38747:4132194] [network] DEBUG: ℹ Serial request done: GET /v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02/offerings, 0 requests left in the queue
2023-11-01 20:54:13.514698+0200 App[38747:4132196] [network] DEBUG: ℹ GetCustomerInfoOperation: Started
2023-11-01 20:54:13.514827+0200 App[38747:4132196] [network] DEBUG: ℹ There are no requests currently running, starting request GET /v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02
2023-11-01 20:54:13.517326+0200 App[38747:4132196] [network] DEBUG: ℹ API request started: GET '/v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02'
2023-11-01 20:54:13.518122+0200 App[38747:4132197] [network] DEBUG: ℹ Network operation 'GetCustomerInfoOperation' found with the same cache key 'GetCustomerInfo…'. Skipping request.
2023-11-01 20:54:13.777245+0200 App[38747:4132193] [network] DEBUG: ℹ API request completed: GET '/v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02' (304)
2023-11-01 20:54:13.816995+0200 App[38747:4132193] [customer] DEBUG: 😻 CustomerInfo updated from network.
2023-11-01 20:54:13.818408+0200 App[38747:4132193] [customer] DEBUG: 😻 CustomerInfo updated from network.
2023-11-01 20:54:13.818478+0200 App[38747:4132193] [network] DEBUG: ℹ GetCustomerInfoOperation: Finished
2023-11-01 20:54:13.818655+0200 App[38747:4132193] [network] DEBUG: ℹ Serial request done: GET /v1/subscribers/$RCAnonymousID%3A05d9e17cefea4421be01fba57f828f02, 0 requests left in the queue
2023-11-01 20:54:14.155489+0200 App[38747:4132196] [store_kit] DEBUG: 😻 Store products request finished
2023-11-01 20:54:14.155489+0200 App[38747:4132193] [store_kit] DEBUG: 😻 Store products request received response
2023-11-01 20:54:14.159710+0200 App[38747:4132193] [offering] DEBUG: 😻 Offerings updated from network.
2023-11-01 20:54:14.163731+0200 App[38747:4132193] [offering] DEBUG: 😻 Offerings updated from network.
2023-11-01 20:54:14.189133+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.189498+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.189607+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.189702+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.189848+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.190002+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.190071+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
2023-11-01 20:54:14.190139+0200 App[38747:4131923] [store_kit] DEBUG: ℹ This StoreProduct represents an SK1 product, the type of product cannot be determined, the value will be undefined. Use StoreProduct.productCategory instead.
⚡  TO JS {"all":{"default":{"availablePackages":[{"offeringIdentifier":"default","identifier":"$rc_monthly","packageType":"MONTHLY","product":{"productCategory":"SUBSCRIPTION","productType":"NON_CONSUMABLE","currencyCode":"USD","introPrice":null,"priceString":"$1.9
⚡  To Native ->  SplashScreen hide 124358667
⚡  TO JS undefined
2023-11-01 20:54:43.919787+0200 App[38747:4132192] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=280406356, ack=0, win=0 state=LAST_ACK rcv_nxt=280406357, snd_una=4096044335
2023-11-01 20:54:43.921532+0200 App[38747:4132192] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=280406356, ack=0, win=0 state=LAST_ACK rcv_nxt=280406357, snd_una=4096044335
2023-11-01 20:54:43.925414+0200 App[38747:4132192] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=280406357, ack=0, win=0 state=LAST_ACK rcv_nxt=280406357, snd_una=4096044335
2023-11-01 20:54:43.926175+0200 App[38747:4132192] [tcp] tcp_input [C1.1.1:3] flags=[R] seq=280406357, ack=0, win=0 state=CLOSED rcv_nxt=280406357, snd_una=4096044335

Thanks for that! Can you share the code that reproduces this? Both the RevenueCat configuration + purchasing code.

This is simplified but I debugged my code and I receive package as it needs, with all data, and pass it inside purchasePackage in aPackage so it's like that:
import { Purchases } from '@revenuecat/purchases-capacitor';

let packages = null;

Purchases.getOfferings().then(({ current: currentOffering }) => {
  if (!currentOffering) return;

  packages = currentOffering.availablePackages;
});

Purchases.purchasePackage({
  aPackage: packages[0],
});

Nothing popped up, promise from Purchases.purchasePackage is always pending.

Someone has that problem too:
https://community.revenuecat.com/sdks-51/purchases-purchasepackage-doesn-t-return-1956?postid=11281#post11281

Also on Android all works fine, I get the purchase popup show (in Internal testing).

Hi @zhaivoronok, thanks for reporting! A couple questions:

Are you using a framework like React/Angular/Vue for your app? If so, which one? We've had some reports of problems when using Vue.js and reactivity... In short, if you're using Vue.js and reactivity, could you make sure the packages you're passing to purchasePackage is not a proxy? If it is, you can transform it using toRaw.
In your simplified code, I see you're not calling .then when calling Purchases.purchasePackage. Is that the same in your code?

Hi @zhaivoronok, thanks for reporting! A couple questions:

Are you using a framework like React/Angular/Vue for your app? If so, which one? We've had some reports of problems when using Vue.js and reactivity... In short, if you're using Vue.js and reactivity, could you make sure the packages you're passing to purchasePackage is not a proxy? If it is, you can transform it using toRaw.
In your simplified code, I see you're not calling .then when calling Purchases.purchasePackage. Is that the same in your code?

I am useing Vue but this is not the case (that the value isn't raw object), and also I use .then in my code. I logged package object, also logged it's .toRaw method (undefined):
⚡  [log] - {"identifier":"$rc_monthly","packageType":"MONTHLY","product":{"title":"Premium","discounts":[],"identifier":"premium_monthly","priceString":"$1.99","productCategory":"SUBSCRIPTION","subscriptionPeriod":"P1M","currencyCode":"USD","introPrice":null,"productType":"NON_CONSUMABLE","description":"Access to all premium features","price":1.99},"offeringIdentifier":"default"}

Hi @zhaivoronok, I've been testing with our sample app in react in iOS 16.4 and 17.0 and a device in iOS 16.6.1 and haven't been able to reproduce.
Are you testing on a real device or on the emulator? Does this reproduce on both?
Also, looking at your logs, I'm curious about these logs near the end:
⚡ To Native -> SplashScreen hide 124358667
⚡ TO JS undefined

Do you know where those come from?

Hi @zhaivoronok, I've been testing with our sample app in react in iOS 16.4 and 17.0 and a device in iOS 16.6.1 and haven't been able to reproduce. Are you testing on a real device or on the emulator? Does this reproduce on both?
Also, looking at your logs, I'm curious about these logs near the end:
⚡ To Native -> SplashScreen hide 124358667
⚡ TO JS undefined

Do you know where those come from?

"SplashScreen hide" is method that I call to hide splash screen by @capacitor/splash-screen plugin.
Figure it out that it works only when I call Purchases.getOfferings() to get packages from here and right after that pass it to Purchases.purchasePackage(). But I want to show subscription options to user first, so I call Purchases.getOfferings() on app init and then when user clicks on needed option - I pass saved package to Purchases.purchasePackage(). Of course I can get packages right before purchase and then find needed one by identifier, but why is this important? Maybe it is a mistake in library?
As I see, every time when I get packages, keys in it comes in different order. So when I make a compare like JSON.stringify(savedPackage) === JSON.stringify(updatedPackage) it gives false. But when I compare it by, for example, lodash - isEqual(savedPackage, updatedPackage) - it gives true.
In previous library, @capgo/capacitor-purchases, it's only required to pass a package identifier and offeringIdentifier to purchasePackage(), so I'm confused why is that changed. Maybe it's some validation for security, Idk.
@tonidero, please confirm that all I wrote is true.

Figured out it was reactivity issue, I thought that .toRaw is reactive object method, but it is vue utility.
But one more question - why is it so important to pass in not reactive object? When I write normal js in vue I can simply get all the fields from any object.

Hi @zhaivoronok, glad you go it to work! As for why it's needed to pass the raw object, the capacitor plugin sends the object to a native mobile code (in kotlin/swift for android/ios respectively). The plugin will not know how to translate one of these proxy objects to the native layer, considering the plugin is agnostic to Vue.
We are still trying to figure out why it would work on Android though...

Hi @zhaivoronok, glad you go it to work! As for why it's needed to pass the raw object, the capacitor plugin sends the object to a native mobile code (in kotlin/swift for android/ios respectively). The plugin will not know how to translate one of these proxy objects to the native layer, considering the plugin is agnostic to Vue.
We are still trying to figure out why it would work on Android though...

Thank you, really appreciate your help!