io_uring_prep_sock_cmd missing from release tag 2.5?

From a fresh git clone, configure, and make of version 2.5, on ubuntu 22.04, like this:
git clone --depth 1 --branch liburing-2.5 https://github.com/axboe/liburing.git
cd liburing
./configure
make

I get this error:
ld: error: version script assignment of 'LIBURING_2.5' to symbol 'io_uring_prep_sock_cmd' failed: symbol not defined

Thinking I must have done something wrong, I grepped the codebase for io_uring_prep_sock_cmd, and it only appears once, inside ./src/liburing-ffi.map here.
Should there be a function of that name for the map file to export?
There looks to be a function called io_uring_prep_cmd_sock where "cmd" and "sock" are flipped.

Ah yes, that looks like an error in the ffi, it should be io_uring_prep_cmd_sock()...

Well that's a bit annoying, as the ffi name is actually what I would consider correct. If I change this, then it could break things. But perhaps it's early enough that we don't have to worry about it, probably better to just get it correct.

Since I can't go back in time and fix 2.5, you probably just want to use the 'master' branch right now. This will go out with the 2.6 release, but that's still a bit out.

Thanks for having a look at this one.
I'm not currently using io_uring_prep_sock_cmd in either name at the moment, is there a way to configure and make version 2.5 such that it builds, or are my choices version 2.4 (and wait for 2.6) or master?

You basically just have to make that one-line edit in src/liburing-ffi.map:
https://github.com/axboe/liburing/commit/92b21aa1b4ea98e322c5eca9db1d94b837f4be75
and then it should work just fine. But if you don't want to edit anything, yes the choices would be 2.4 or just run master. master is basically just a few additions (and mostly on the testing side), it'll be identical to 2.5 in terms of stability/maturity for programs. Hence that would be my recommendation.

Ok, thanks a lot.


help me

com.github.chrisbanes:PhotoView:latest.release.here with the latest version 2.1.2, something like this compile 'com.github.chrisbanes:PhotoView:2.1.2'.
Also, make sure you added JitPack repository like this.

Wrong gradle file. There are two Project and Module
.
Go to the Module gradle file and add in there like this:

Thank you, foreign friends. My problem has been solved


Rails - can't rake migrations in Step 3

Please use markdown formatting for code, configuration or console output.
1. Expected behavior
In step 3, I tried to rake db:migrate and expected the migrations to run
2. Actual behavior
Psych::SyntaxError: (/Users/ooo/config/letsencrypt_plugin.yml): did not find expected key while parsing a block mapping at line 2 column 3
3. Steps to reproduce issue
So far, I have setup my config as shown in your readme - but I'm getting stuck at Step 3. I cant run the migrations.
4. Your configuration (ruby, rails version, your Gemifile and Gemfile.lock files etc.)
Ruby v 2.3.1; Rails 5, gemfile includes this gem.

For those with the same problem, it's a yml issue. I'm not particularly familiar with yml syntax, but the outer brackets domain: "<%= ['example.com', 'www.example.com'].join(' ') %>" need to be swapped for double quotation marks (the template uses single quotation marks for both the inner and outer. I dont know about yml but I think this is a syntax error. Switching to "" on the outer level resolved this for me.

I've updated the wiki inline with this. Thanks for finding it.


Incorporate PSF higher-order moments in Rubin analysis tools

Incorporate PSF higher-order moments (from Piff) in Rubin analysis tools
Rubin DM runs QA checks in analysis_tools and integrating the measurements from piff to create various plots involving PSF higher-order moments
Contacts:
Time: All day?
Main communication channel: #desc-psf and #rubinobs-analysis-tools
GitHub repo: https://github.com/lsst/analysis_tools
In-person/Virtual/Hybrid: Hybrid
Zoom room (if applicable): TBD
Goals and deliverable
Generate a (any) single plot that involves PSF higher order moments
Resources and skills needed
Basic Python (needed), some familiarity with either piff or analysis_tools (preferred, but not required)
Detailed description
TBD

@rmjarvis made this plot:


Fixing __doc__ and __name__ storage in Transportable Object

[x] I have added the tests to cover my changes.
[x] I have updated the documentation and CHANGELOG accordingly.
[x] I have read the CONTRIBUTING document.

@mshkanth please take note of this (minor) change.

@kessler-frost Can you check if this code is still in use?

There's a bunch of stuff which is not in use (including this), result_webhook.py, encode_result in dispatchdb.py, etc.


Vision v3.9

Should now be ready to merge.
Example app works with vision-camera v3.9.1, tested with cv model 1.0 on Pixel and Samsung, and iPhone.
Will update the version number to a beta version and test in iNatRN and Seek next.


sway starts with black screen with only cursor working

After bisecting it, the first commit where the issue appears is 96d6fde5dc7ed2e9897297ed459246cb4133a30f.
*This commit, along with the next 4 commits, doesnt compile, because of an struct member, which no longer exists by that name, being called by this patch. The variable's name gets fixed 5 commit later.(1d222309)
A quick grep for 'needs_swap' will find the variable, it should be 'needs_frame'.
This is a segment of the debug log, which is repeated several times:(the complete log is here: https://termbin.com/w9db)
2019-08-27 04:01:54 - [backend/drm/drm.c:950] LVDS-1: Retrying pageflip
2019-08-27 04:01:54 - [backend/drm/drm.c:503] Starting renderer on output 'LVDS-1'
2019-08-27 04:01:54 - [backend/drm/util.c:214] Unable to add DRM framebuffer: No such file or directory
2019-08-27 04:01:54 - [backend/drm/legacy.c:15] LVDS-1: Failed to set CRTC: No such file or directory

Can you paste the output of https://github.com/ascent12/drm_info?

Seems like it's taking the drmModeAddFB2 path. Maybe it isn't supported and we should add a drmModeAddFB path just like Weston (see drm_fb_addfb in libweston/backend-drm/fb.c)?

Hmm, maybe not. We've always been using drmModeAddFB2.

is this going anywhere? if anyone can help me understand the issue or at least give me hints on what could be the problem I'd appreciate it.

I have the same problem. Have to mention, our hardware is very similar.
I can confirm that Sway worked fine a month ago, but didn't check if the commit @ThePiGrepper mentioned in first post is the exact one which broke things.
DRM info, Sway log.

what happened to this? does anyone have a clue of how to fix it? My build of wlroots is frozen is quite old now and new builds of sway et al started depending on the newest versions of wlroots so I cant build them either now.

Bumping this issue over and over again isn't going to solve it. Debug the problem, send a patch.

As a matter of fact, I know that, I asked for at least a guideline. a 3min look into the issue and a hint so that I can move/work from there. nothing more than that. I bisected the issue, found the commit, actually found the line and more or less the way it stopped working, however I dont have the knowledge to go further, so I asked (look up in the thread) for at least a hint regarding where to focus my attention. Im not asking you to slave yourself for me or anything, so don't assume so.

A month ago I tried to debug the issue and got to the point where I wasn't sure anymore if it was sway or i915 doing something wrong. Anyway, I just updated all packages (pacman -Syu) and the issue doesn't persist anymore, so @ThePiGrepper, try to update your packages. Unfortunately, now I got another issue. This issue can be closed.


Missing drawables in Play Console 8.2.005 APK are referenced as APKTOOL_DUMMY after decompiling

Informations

Apktool version: 2.3.2
Operating System: Windows
APK From: either Playstore or APKMirror

Steps to Reproduce
apktool.jar d playconsole8.2.apk
APK
https://www.apkmirror.com/apk/google-inc/google-play-developer-console/google-play-developer-console-8-2-005-release/google-play-console-8-2-005-android-apk-download/
Description
This is probably due to something new in this APK by Google. Sharing it as it might be interesting to look at.
drawable-xhdpi-v4, drawable-xxhdpi-v4, drawable-xxxhdpi-v4 and other folders seem to be missing from res/ in the original APK. The size has in fact dropped by almost 2.4 MB from the previous APK.
After decompiling, layouts point to APKTOOL_DUMMY values. An example can be seen here: https://imgur.com/a/S9uk2
This is the content of res/values/drawables.xml: https://hastebin.com/sanavosomo.scala
Using systrace to try and track down some of the missing drawables returns paths that though can't be seen in the APK, as they include the missing folders:

res/drawable-xxhdpi-v4/quantum_ic_clear_white_24.png
res/drawable-xxhdpi-v4/ic_star_color.png
res/drawable-xxhdpi-v4/ic_star_grey.png

Thanks for reading!

i met this problem ,too

As you've seen with your research, there is nothing Apktool can do here. The reference resource does not exist for Apktool to find. To allow the application to work, apktool substitutes a dummy resource in place for that resourceId. That is the boolean false attributes you see.
I believe this is a "no-fix", there is nothing Apktool can do here.


Freeze and Ice Shards

For some reason freeze is only freezing for ~2 seconds even though duration says 8-13s. Also ice shards is having no affect on monsters.
Also I second the idea of uncapped battle traits, would be cool to experiment with!

Ice shards is working now

Not a bug, you had the one which adds diminishing returns the more something is frozen on (not worth using if not uncapping skills) and the one which makes ice shards do less the more it's cast on a target to stop enraging giants only from being worth it and a side effect of that is that ice shards reduces both health and max health and it ends up looking like it's not doing anything.


Editing Interstitial iOS ID is not saved

Godot version
4.0.2
Plugin version
1.0.0
System information
Windows
Phone information, if applicable
No response
Issue description
When using your plugin (amazing by the way), I changed the standard ID for Interstitial for iOS.
It appeared that when I finished to edit it and quit godot, it was not saved when I came back
As you can see on my VIM software, standard is removed and get empty

I found a workaround. I update UNITY IDS with my value. Then i add a second one with dummy values. And I remove second one directly
Steps to reproduce

Open AdMob plugin on godot
Go to interstitial
Go to iOS
Update standard value (in ca-app-***) by clicking edit and ok
Close godot and reopen
The value is not saved

Additional context
No response

thank you for opening this issue, we will investigate this

@LazyDridri This should be fixed on: https://github.com/Poing-Studios/godot-admob-plugin/releases/tag/v2.0.0
Please test it

Is that the preferred release that will work with Godot 4.X?

Hi @hnugz we just released https://github.com/Poing-Studios/godot-admob-plugin/releases/tag/v3.0.0
This will work for v4.1+, if you want to work on Godot versions below v4.1, e.g.: 4.0.2, so you must use https://github.com/Poing-Studios/godot-admob-plugin/releases/tag/v2.0.0

Closing because it seems to be solved


auto import is not the same path for @types

i want to infer import from module "react" not "./node_modules/react/index"
monaco-editor version: 0.21.2
Browser:
OS:
Playground code that reproduces the issue:

@fred8617 Can you please provide a sample that can be used to reproduce the behavior at https://microsoft.github.io/monaco-editor/playground.html ?


Syntax highlight

Is the support for syntax highlighting supposed to use the document symbols request? Wouldn't it be reasonable to be able to request this for part of a document too (in case the file is huge and scanning all of it is prohibitive)?

@vladdu document symbol is a fictive "open type in current file" in eclipse

Thanks, but is it? The docs say "The document symbol request is sent from the client to the server to list all symbols found in a given text document."  Anyway, what I am after is if there is anything about syntax highlighting. There is an issue about semantic highlighting, but I can' see anything explicit about  any highlighting and 'document symbol' seemed like the thing that could provide the required information.

well  i think the semantic highlighting mentioned in the other issue is about server side highlighting in general

Issue #18 is the only thing so far as it seems.
The document symbol stuff gives you this in VS Code:

I can't look at the VS Code code right now, but maybe that list gets filtered in the client (using the container field for selecting symbols at the right depth). According to the docs, the symbol information will be about all symbols in the document (including strings, numbers, booleans).

To make my question clearer: is syntax highlighting even supposed to be supported through the protocol at all (in the current version)?

To make my question clearer: is syntax highlighting even supposed to be supported through the protocol at all (in the current version)?

@vladdu No syntax highlighting is intentionally not defined by LSP. Syntax highlighting is best done by the editor host (sublime, vscode, eclipse, atom) and not the server.
What is on the backlog for the language server protocol is to add support for semantic coloring/classification of tokens.

I see, thank you. I suppose it's for performance reasons, but I do highlighting in a different process and it is speedy enough. It probably requires the server on the same machine, though.

@egamma Server-side syntax highlighting would be a really great feature, especially for research languages that change frequently. Having to recreate a language grammar in something like the TextMate format can be non-trivial, error prone, and hard to maintain. Having a single 'truth' would make it much easier (at least for me).

@vladdu No syntax highlighting is intentionally not defined by LSP. Syntax highlighting is best done by the editor host (sublime, vscode, eclipse, atom) and not the server.
What is on the backlog for the language server protocol is to add support for semantic coloring/classification of tokens.

@egamma Can you say a bit more about what mean by "semantic coloring/classification of tokens"?.
Is this intended to be additional highlighting and classification done after the colorization from the textmate grammars or is it something entirely separate? In other words, how is the tokenization performed? Are the token ranges computed by the server?
The reason I ask is because there are some languages I would like to use this protocol for that are nearly impossible to do correct highlighting for using the usual editor approach (e.g., textmate grammars). One example is the Agda language. Due to the very flexible syntax, highlighting information needs to be computed in part during type checking and then sent to the editor.
I realize this has some drawbacks it would still be nice to be able to officially support this use case in the protocol somehow. As @smarr mentions, out-of-band highlighting like this is becoming quite common in research languages. From a technical point of view, it doesn't seem like it should be hard to support although there may be some performance issues for large files.

Even if the protocol supports this, it doesn't mean that servers have to implement it. Even if the server implements it, the clients aren't forced to use it (if it's too slow or incomplete or something) and can implement highlighting locally. In any case, the server needs to tokenize for its internal use, so there is no extra work involved.
The API could be similar to "document symbols", with the addition of a range for which the tokenization is requested, for performance (clients usually know what part of the document is currently shown). Actually, I didn't get an answer to my original question, where I implied that "document symbols" feels like it should return the right information.

The semantic coloring/token classification @egamma mentioned is exactly what you are asking for. It is covered in #18 and is meant to be an optional addition to the lexical syntax coloring that is done by the editor itself.

Is it a problem if the protocol also allows for the lexical syntax coloring to be done by the server (optionally)? It could be an extra parameter that specifies what kind of highlighting to return.

The proposal in #124 doesn't imply that the highlighting is done based on semantic information. So I think it could be used for lexical coloring, as well.


[REQUEST] Add 1.17 support

alright then https://modrinth.com/mod/forgetmechunk/version/1.17.x-1.0.3


Defect - Minor - Contact section - No clear maximum character validation on Contact section fields; user can add several paragraphs for First name, last name etc

On the Contact section field of the partsasist website, there seems to be no clear maximum character validation on either of the fields - user can add even 20 paragraphs or more for First name for example

Go to partsasist.com ( or https://main--vg-partsasist--hlxsites.hlx.live/ or https://main--vg-partsasist--hlxsites.hlx.page/ )
Use a tool like for ex Lorem Ipsum generator ( https://www.lipsum.com/feed/html ) to generate texts of several paragraphs
Complete the Contact section fields using long strings of blocks of texts for First name, Last name etc and Submit
Notice that you can submit the form with no clear maximum character validation

Expected result
A standard defined and documented minimum and maximum character validation for the fields in the Contact section could be an improvement
Actual result
User can submit Contact form using several paragraphs and blocks of text for any fields on it

In my opinion, validation should be as relaxed as possible, and there should be no limit on name length.
On the legacy page, Hubert Blaine Wolfeschlegelsteinhausenbergerdorff Sr.  would be discriminated.


Possible to use embassy API with esp32?

I've been using esp-hal on the esp32c3, but the syntax and API is terrible to work with. Is there a wrapper available so that I can use the embassy methods and API with the esp chips?

but the syntax and API is terrible to work with

Care to elaborate?
Which embassy APIs did you have in mind?

The esp-hal repo has a number of embassy examples (anything that starts with embassy_) at https://github.com/esp-rs/esp-hal/tree/main/examples/src/bin.
Or were you looking for more than that?

I've moved to using a nrf chip now...


Race condition between sync and user commands

When a user closes the last issue on a node, releasing it back to production , while a pbs_sync is running this can cause  to  confused and open a new issue. This happens when the sync gets the pbs state then a user closes an issue, changing the nodes state in ctt before the sync compares the pbs state it received with ctt's state.

The easy solution is to serialize anything that modifies pbs or ctt state. If this proves to cause too much delay on user requests when a sync is in progress a sequence lock could be used to shorten the critical section in the sync code, and have it retry if a user request happened after it got pbs state , but before it locked and compared the ctt state.

Put in a quick fix that serializes anything that might modify the ctt db or pbs by wrapping pbs_sync and the various mutation apis with a lock https://github.com/Will-Shanks/ctt_server/blob/f58892e2fbd6f8ce949283a6ab97ec5927c8588e/src/pbs_sync.rs#L22
It is probably worth it to put a little effort into shortening the critical sections, since the entirety of each of the api calls don't need to be serialized.


Cannot connect to dagger engine

Hello, I have been interested in trying out dagger for a while (from and for an elixir application) so I was very excited to to see someone actually implemented an sdk on top of the graphql api's. Many thanks!
Sadly I have some difficulties getting started. When I try the node example from the dagger documentation it works fine (just to make sure dagger is working etc).
When running elixir one I get the following error message:
** (RuntimeError) Cannot connect to Dagger engine, cause: :error
    (dagger_ex 0.2.0-dev) lib/dagger.ex:35: Dagger.connect!/1
    ci.exs:8: Ci.run/0
    (elixir 1.14.1) lib/code.ex:1245: Code.require_file/2

I used the following code, based on your Readme example:
#! /usr/bin/env elixir
Mix.install([
  {:dagger_ex, git: "https://github.com/wingyplus/dagger_ex", branch: "main"}
])

defmodule Ci do
  def run do
    client = Dagger.connect!()

    client
    |> Dagger.Query.container([])
    |> Dagger.Container.from(
      address: "hexpm/elixir:1.14.4-erlang-25.3-debian-buster-20230227-slim"
    )
    |> Dagger.Container.with_exec(args: ["elixir", "--version"])
    |> Dagger.Container.stdout()
    |> IO.puts()
  end
end

Ci.run()

I'm probably making a silly mistake somewhere!

Currently, the SDK have 2 ways to run the code:

Run with dagger run <command ...> where the <command ...> maybe elixir script.exs in this case. The Dagger engine setup session and run your code automatically.
Run by enable _EXPERIMENTAL_DAGGER_CLI_BIN=dagger environment variables.

I recommended to use 1. since  they have a fancy ways to visualize the pipeline. For example, set _EXPERIMENTAL_DAGGER_TUI=1 before running dagger run ... to enable interactive terminal UI.
But when I write the documentation, I didn't found the ways to see debug log from Dagger engine except 2.. That's why I wrote it to run as 2..
The documentation will be improve in 0.2.0. Or help improving it is very welcome. :)


Add package website

This is really easy to do, so I think it's worth it. You can get a basic website up and going by running usethis::use_pkgdown_github_pages()

i guess we'll have it running by the time of CRAN release :)


Docs fix: remove confusing typo

Explain the motivation for making this change. What existing problem does the pull request solve?
Copy&paste from the example in the documentation will cause exception because there is no AndroidPermissions object. To avoid confusion we should refer to PermissionsAndroid instead since this is how this module is named in the API.

By analyzing the blame information on this pull request, we identified @cmcewen to be a potential reviewer.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!


Fix Silo PBC logic

Description
Resolves #20035
Still needs cleanup. I just wanted to get the working solution pushed.
Type of change

[x] Bug fix~~
[ ] New feature
[ ] Documentation update
[ ] Other

How Has This Been Tested?
Tested with material and contour plots on original dataset from @cyrush
Reminders:

Please follow the style guidelines of this project.
Please perform a self-review of your code before submitting a PR and asking others to review it.
Please assign reviewers (see VisIt's PR procedures for more information).

Checklist:

[ ] I have commented my code where applicable.~~
[ ] I have updated the release notes.~~
[ ] I have made corresponding changes to the documentation.~~
[ ] I have added debugging support to my changes.~~
[ ] I have added tests that prove my fix is effective or that my feature works.~~
[ ] I have confirmed new and existing unit tests pass locally with my changes.~~
[ ] I have added new baselines for any new tests to the repo.~~
[ ] I have NOT made any changes to protocol or public interfaces in an RC branch.~~

I am running some of the plot's (Pseudocolor, Contour, FilledBoundary) through valgrind to ensure I haven't introduced any other funkiness to behavior. @cyrush if you have other suggestions for further testing, lemme know.

Ok, I've run Psuedocolor, FilledBoundary, and Contour with MPI+valgrind and got no errors! I am seeing leaks though but I suspect that has to do with the fact that the engine generally doesn't try to clean up after itself when exiting. I will confirm that though.


Exception thrown when running on an iPad that does not have FlashLight

When the scan Button is clicked on an iPad that does not have flashlight, the below exception is thrown:
Exception	NSException *	"*** -[AVCaptureDevice setTorchMode:]
The passed torchMode 0 is not supported - use -isTorchModeSupported: to discover valid torch modes"
above issue replicated on iPad Mini 5
above issue not appearing on iPhone 12

Noted! we will fix this in next release. Thanks For reporting.

It has been fixed in Latest version


Change config file to use yaml format

This is normally used in ROS and also easily loadable.
Just a suggestion.

Yes possibly. Certainly more powerful and flexible but it also depends on how easy it to write, which seems a bit more complex than an ini file yaml example. Neverthless, probably I will change it to yaml when I get some time.

For the current config file it would be:
arg_relations_distance:
  relations_and_values:
    "0": 5.
    "1": 15.
    "2": 120.

which would create this dict:
{arg_relations_distance: {relations_and_values: {"0": 5., "1": 15., "2": 120.}}}

Like python this is indentation sensitive but I find it quite easy to read and write.

Yes I know, that was my thoughts also and I already had a look before hand but wanted something quickly. It is possible with ini files, but not using configparser, but rather something like configobj. Unfortunately, it seems that it does not come by default installed in a standard python environment, and hence I did not want such a dependency. So was stuck with configparser and eval(variable).
Hence, I am considering the yaml format. Wonder if pyyaml comes with standard python installation or it is simply installed as a dependency of ros.
PS: yes installing python packages is easy :)

Of course the alternative would be to use configobj. See also example here.
All depends which one is easier to write (probably the same), or to parse.


#1548 move the SearchCriteria ftom logic  to commons package

#1548 move the SearchCriteria ftom logic  to commons package :
The following has been done : the generated SearchCriteriaTo object is moved from Package Logic to Common. Wherever the object is imported, the location of the package where the object is located has been edited.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Mkassi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


File globals

In the file that contains my tests, I would like to define a structure that holds all of my test configurations and is then used to initialize the arg pointer in CESTER_BEFORE_ALL. So, something like this:
struct MyTestSetup
{
   ...
};

CESTER_BEFORE_ALL(inst,
    class MyTestSetup setup;
    inst->arg = &setup;
)

However, because the mechanism include the file multiple times, I can't do this because it will fail compilation. I also cannot put the structure definition into the CESTER_BEFORE_ALL definition because then the individual tests won't see it.
So, I can make it work by doing
#ifndef DO_ONCE
#define DO_ONCE
struct MyTestSetup
{
   ...
};
#endif

Not horrible, but not pretty.
Is there a macro that I did not see that allows me to do this more cleanly?
If not, its not a high priority but I would suggest that there be a CESTER_FILE_GLOBAL() section, or something that does the equivalent of the DO_ONCE hack and allows you to put file global type definitions and variables.

The macro CESTER_BODY
allows you to define global variables.
So you can write your code like
CESTER_BODY(

struct MyTestSetup
{
   ...
};

)

CESTER_BEFORE_ALL(inst,
    class MyTestSetup setup;
    inst->arg = &setup;
)

You can check out the other macros at
https://exoticlibraries.github.io/libcester/docs/macros.html and
https://exoticlibraries.github.io/libcester/docs/assertions.html
On Thu, Mar 11, 2021 at 12:56 AM MarcelInTO @.***>
wrote:

In the file that contains my tests, I would like to define a structure
that holds all of my test configurations and is then used to initialize the
arg pointer in CESTER_BEFORE_ALL. So, something like this:
struct MyTestSetup
{
...
};
CESTER_BEFORE_ALL(inst,
class MyTestSetup setup;
inst->arg = &setup;
)
However, because the mechanism include the file multiple times, I can't do
this because it will fail compilation. I also cannot put the structure
definition into the CESTER_BEFORE_ALL definition because then the
individual tests won't see it.
So, I can make it work by doing
#ifndef DO_ONCE
#define DO_ONCE
struct MyTestSetup
{
...
};
#endif
Not horrible, but not pretty.
Is there a macro that I did not see that allows me to do this more cleanly?
If not, its not a high priority but I would suggest that there be a
CESTER_FILE_GLOBAL() section, or something that does the equivalent of the
DO_ONCE hack and allows you to put file global type definitions and
variables.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/exoticlibraries/libcester/issues/49, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRQVG4N6PO3W52SAUBWJNDTC72LHANCNFSM4Y7EKPDA
.

Perfect! I missed that. Thanks.


Texture API issues

Some observations of the current texture API:

setSource only works with 'browser interface' objects (not arrays of data) and the function correctly tracks which mipmap levels are dirty using _levelsUpdated.
getSource will return browser interface objects and also arrays of data which it strictly probably shouldn't (since it is matched with setSource).
lock and unlock work with arrays data and the entire texture is always re-uploaded if any mipmap level is locked, whether for read or write.

Ideally we'd have an API that:

has a single way of updating both types of texture data
tracks which face/mipmap levels have been updated and only upload those to GPU
makes it simple to get, set and dirtify individual faces/levels

Also, the current API assumes textures have CPU-side data which is uploaded to GPU. However we often have GPU-side texture data which we want to copy back to CPU.
@mvaligursky are there any additional restrictions or requirements imposed by webgpu on texture handling?

Not at the moment, but here are some best practices for WebGPU: https://github.com/toji/webgpu-best-practices/blob/main/img-textures.md

From forum: https://forum.playcanvas.com/t/pre-uploading-of-pc-texture/3212/
Users are requesting the ability to manually upload textures to the GPU so they can control the potential framerate stutter when loading in sections of an open world. Eg, they could upload textures over several frames.

Eg, they could upload textures over several frames.

To add to that: currently the textures are loaded "on demand" (i.e. when they are first drawn). We would like to be able to upload large textures during our initial loading screen instead, in order to prevent frame stutters later in the game. We would be fine with all textures being uploaded in 'one frame' in that case. It's just the overall timing of that frame we are concerned with.

Regarding the timing - we work around it by drawing a bunch of cubes with all materials that will be used in game during the first frame (which is hidden by a loading screen, so the player doesn't see them), then remove them and show the game.

Hi everyone, I recently started looking into adding support to update particular textures/slices from a Texture2DArray. In it's current iteration texture 2d array support is not flexible enough and not that useful. While investigating this I was reading all the discussions from #6004, this ticket and the references mentioned here.
I was also considering additional use cases:
Let's look at texture 2d arrays. They could be used to load a sprite flipbook upfront but it can also be useful to construct atlases dynamically. Those can be used to render terrain or props more optimally (minimizing draw calls, etc.) or used for virtual texturing. These don't have to maintain the CPU side buffers, instead each texture/slice could be uploaded on demand.
Another use case would be for a lightmap atlas or AO atlas for a chunked terrain/scene. We would know how many chunks we have in advance, hence how many textures/slices we need in the texture array and reserve that space with no upfront available data (maybe initialize it with sensible defaults?), so we can start using the texture right away. Over a number of frames we could upload the slice for each chunk.
Consider discarding of CPU side data for reducing memory usage. If I'm not mistaken at the moment PC preserves the texture data on the CPU side, most probably to quickly recover from context lost events, but that duplicates the memory needed for textures (RAM + VRAM, or in case of most mobile devices 2XRAM because RAM is shared with GPU IIRC).
One solution for recovery is to leave this to the users of the engine, if someone chooses to discard CPU side data we consider that the user knows what he's doing and let it be his responsibility to handle recovery of texture data in case of context loss. The engine should only recreate the GPU side textures with reserved space so that it doesn't crash when recovering from context loss.
A more complex solution that can be added later, the engine could keep some sort of connection with the asset that created the texture (probably the majority of textures would be asset created) and if the user opted for discarding the CPU side data it could provide a mechanism of triggering auto-reloading the texture assets (if most of them are cached by the browser it should be fast) and uploading  texture data to GPU.
With all the above we should target an API that:
(reiterating @slimbuck's points)

has a single way of updating both types of texture data
tracks which face/mipmap levels have been updated and only upload those to GPU
makes it simple to get, set and dirtify individual faces/levels

(additionally)

keeps the API as closely as possible to current one to avoid breaking changes (or at least minimize them)
allows option of reserving texture memory on GPU side with no upfront data at construction (useful for textures that are updated over multiple frames)
allows option to discard CPU side buffer(s)
allows option to immediately upload texture data to GPU on demand (full or partial)

Let me know if any of this makes sense or if anyone has additional use cases or thoughts on how the API should look like.
Should we keep setSource/getSource or get rid of them and just provide a sensible API for lock / unlock that handles all the get/set cases?
From the top of my mind a way to get rid of setSource/getSource would be to make the lock function return additional possible object types, ImageReader and ImageWriter, besides the usual typed arrays, objects that could handle reading/writing to/from HTMLCanvasElement, HTMLImageElement, HTMLVideoElement or ImageBitmap.
Tagging @liamdon as this relates to #6004.

Thanks for working on this @heretique.
I find it unlikely to go ahead with the split of the Texture class into multiple classes, as that would have large impact to our user base / Editor.
Maybe we can just extend the _levels:

for 2D textures, it would not be a single data per mipmap, but an array to support 2D texture array (so if you have 3 textures, each _levels would be an array of 3
cubemap would have an array of 6
cubemap array would have an array of numCubemaps * 6

I have not looked in detail to see if this is possible.
We could also add a new member, for example _data which would follow this layout. And change _levels to setter/getter to convert from the current format if needed.

Thanks for the feedback @mvaligursky I'm going to take a new stab at this.


[GHSA-9c47-m6qq-7p4h] Prototype Pollution in JSON5 via Parse Method

Updates

Description

Comments
Fixing formatting of PoC code which had been unintended and unnecessarily escaped in places.

Hi there @jdgregson and @jordanbtucker! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our highly-trained Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory

@jdgregson I'm not sure how that happened. When you look at my changes in the PR that was merged, the indents are there.
One thing I did change before I published the advisory was that I used fenced code blocks, which allows for syntax highlighting. I noticed that this PR removes these, so it will just show as plain text without syntax highlighting.
I'm not sure how to get this PR to play right since both of our PRs include the indents. It must be something on GitHub's side when they do the merge.


add repository field to package.json

in order to have a link to the repository from NPM

thanks!

Don't forget to publish the change to npm


Json Serializer ReferenceLoopHandling Issue?

Hi,
I think i may have found an issue when using ReferenceLoopHandling.Error (which seems to be the default), in an MVC Web Api that i am working on. In my scenario i tried loading an entity and its related set of nested entities using the .Include() syntax. I then outputted the set of nested entities in the controller and did not see the result i expected. (I expected an exception be thrown)
Inspecting the resulting object graph before serialization shows that it contains self referencing loops because the context automatically linked up each nested entity back to its parent entity, which itself contains the same nested entities each linked back to their parent entities and so on.
When the controller then serialized the object graph using the json.net ReferenceLoopHandling.Error option, i expected to see an exception raised as per the json.net documentation.
What i found it that no exception is raised, instead the resulting Json outputted by the controller seems to be truncated at the point where i would expect that the circular reference was detected/encountered during serialization.
What i can see from looking at the Json is an array as the root element as expected,
but the array only contains the first entity representation (several are present before serialization) and this is only a partial representation, all of the properties that would normally be seen listed after the parent entity navigation property are missing from the representation, however the Json appears to be valid containing the correct closing braces etc.
Here is the pseudo code in the controller:
Owner owner = _dbContext.Owners.Include(item => item.Dogs).Where(item => item.OwnerId == id).FirstOrDefault();
if (owner == null)
{
	return NotFound();
}
else
{
	IEnumerable<Dogs> dogs = owner.Dogs.ToList();
	return Ok(dogs);
}

Using the "ReferenceLoopHandling.Error" option, the resulting Json is like this:
[
  {
    "dogId": "20000004-1111-1111-1111-111111111111",
    "dogName": "Fido",
    "dogPurchaseDate": "2016-09-29T04:31:00+00:00",
    "owner": {
      "ownerId": "10000000-1111-1111-1111-111111111111",
      "ownerName": "Fred",
      "dogs": []
    }
  }
]

Instead of an exception, i have valid Json but with only the first dog entity outputted and there are Dog properties missing that would normally be listed after the "owner" property.
This looks as if the json.net exception is being swallowed somewhere, is this behaviour by design?
I would have thought it be essential that an exception is thrown when a loop is detected to avoid unpredictable output.
If i use ReferenceLoopHandling.Ignore, then all of the Dog entities are outputted correctly and owner property of each Dog entity includes the list of nested dog entities except for its own parent Dog entity, which is what i would expect as per the json.net documentation.
That kind of output is not what i want as it is very bloated, its just to show the difference in the behaviour of the 2 options during some testing.
I believe this is an EF/MVC issue rather than a json.net issue because if i do this:
//configure the same options used in startup.cs
JsonSerializerSettings settings = new JsonSerializerSettings {
    ContractResolver = new CamelCasePropertyNamesContractResolver(),
    Formatting = Formatting.Indented,
    NullValueHandling = NullValueHandling.Include,
    MissingMemberHandling = MissingMemberHandling.Ignore,
    ReferenceLoopHandling = ReferenceLoopHandling.Error
};
settings.Converters.Add(new StringEnumConverter());
//now try to serialize the dogs...
string jsonString = JsonConvert.SerializeObject(dogs, settings);

I correctly get an exception:
Self referencing loop detected with type 'WebAPIApplication.Data.Dog'. Path '[0].Owner.Dogs'."
The controller is using json.net for serialization under the hood, so surely this exception should bubble up to the controller rather then be swallowed and result in a partial Json output.
Here is my json serializer startup.cs config:
public void ConfigureServices(IServiceCollection services)
{
//other code.........
builder.AddJsonOptions(
o =>
{
	o.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
	o.SerializerSettings.Converters.Add(new StringEnumConverter());
	o.SerializerSettings.Formatting = Formatting.Indented;
	o.SerializerSettings.NullValueHandling = NullValueHandling.Include;
	o.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
	o.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Error;
});

project.json package versions:
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.2-",
"Npgsql.EntityFrameworkCore.PostgreSQL.Design": "1.0.2-"
Looking at other issues logged here it seems like this has occurred previously and has been worked around/avoided so maybe the root cause has not yet been resolved. It also seems that the behaviour may have been different in older versions?
Issue 4160 mentions the Json truncation, however there seems to be some circular referencing going on in these 2 issues....
https://github.com/aspnet/Mvc/issues/4160
That issue has been closed and refers to this one instead:
https://github.com/aspnet/EntityFramework/issues/4646
which then just changes the subject to view models etc. and is closed,  referring back to 4160
This also seems similair:
https://github.com/aspnet/EntityFramework/issues/5429

It really has nothing to do with EF.
You can mimic the same thing with arrays and"normal" instances.

Indeed you can but that's not the point, it may well have nothing to do with EF, more likely just MVC, i don't know enough about it to comment any further on that.
The point is that JsonConvert.SerializeObject correctly throws an exception but MVC seems to be swallowing it and outputting an OK status code with a truncated Json representation which surely is a bad thing to do?

@glennc does the last comment sound familiar?

Just to follow up on this: The reason I pinged @glennc is that he had mentioned to me some issue in ASP.NET Core (which was presumably already fixed in recent builds) could cause this exception to be swallowed, and I was reminded of that by this paragraph:

The controller is using json.net for serialization under the hood, so surely this exception should bubble up to the controller rather then be swallowed and result in a partial Json output.

CC @rynowak as well in case it rings a bell for him.
Other than this, @gdoron already correctly mentioned that this is not really an issue with EF but a general issue with serialization with graphs of objects with Json. Closing as external.

So this won't be an issue in v1.1 meaning i will see an exception rather than partial a Json representation?
When is v1.1 due to be released?

@chrisckc I talked to @glennc in person. The issue with the exception being swallowed is actually still being worked on: https://github.com/aspnet/IISIntegration/issues/39.

Thanks @glennc, I noticed your comment in the issue you just referenced, i just want to add that i am developing and running my .NetCore WebApi experimental app on a Mac using VSCode.
I really like the new cross platform abilities!
The project was generated using the yeoman aspnet WebApi template (2 or 3 weeks ago), default config using Kestrel etc.
This is my host config:
var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

@chrisckc so if I understand what you are saying, you suspect this could be an outstanding issue with Kestrel? Similar issues were previously discussed in https://github.com/aspnet/KestrelHttpServer/issues/341#issuecomment-155245802 but they are believed to be resolved. Definitively create a new issue or comment in one of the existing issues in one of those repos (whichever seems the most appropriate to you). It would be great if you could provide a full repro. BTW,  another thing I would suggest is to try different browsers.

@chrisckc I think part of the problem is that the exception that is occurring happens after your controller action returns it's ActionResult.
For efficiency reasons, return Ok(dogs); doesn't block waiting for dogs to be serialized or for the response to be written, so by the time the exception is thrown during serialization it's too late for an exception to be thrown in your action which at this point has already completed. I bet this exception could be handled by some sort of action filter (@rynowak would certainly know), and if not there in some custom middleware.
I highly recommend setting up the developer exception page (only for development of course) which should show you what exception is being thrown and where. Adding a console logger to your application can also help you track down errors like this during development.
You mentioned that it seems wrong that a 200 response was received. This happens because the object isn't completely serialized prior to writing response, so by the time the exception is thrown the start of the object (and the 200 status) has already been written. If you look at your browser's developer tools, you should see some indication that the response is incomplete/invalid because the chunked terminator wasn't written. (Unless you're running behind IIS and running into  aspnet/IISIntegration#39)

@glennc yes, my understanding is that when running the app in VSCode on a Mac the requests just go direct to Kestrel rather than proxied through IIS when using VS 2015 on windows. Ill provide a demo soon.
@halter73 I am using the developer exception page but it only seems o pickup out of band exceptions so doesnt see exceptions inside the controller method.
I am also using  console logger and didn't remember seeing anything useful in the output.
Your comment about the response serialization mechanism is interesting, ill check the response in more detail, i used postman for my testing.

@chrisckc Your understanding is correct. You aren't being proxied when you just run from the terminal on your Mac. So the IIS issue isn't biting you here.

Ok, here is repo the demonstrates the issue, no EF in this, just an in-memory objects implementation based on the TodoApi from the aspnet documentation with a few extras.
https://github.com/chrisckc/TodoApiDemo
Refer to the notes in readme.md to see how to reproduce the issue.
@halter73 I forgot i was using a global exception filter which seems override the dev exception page. I also re-checked the console log and found some useful info.
@divega @glennc So this is indeed a Kestrel issue then, spotted this in the console log:
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware:Warning: The response has already started, the error page middleware will not be executed.
Microsoft.AspNetCore.Server.Kestrel:Error: Connection id "0HKVJ34SUMOMU": An unhandled exception was thrown by the application.
Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'notes' with type 'System.Collections.Generic.List`1[TodoApi.Models.Note]'. Path ‘[0].todoItem'.
...........stacktrace etc............
Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request finished in 91.7335ms 200 application/json; charset=utf-8

Also I don't think the DeveloperExceptionPage Middleware should be behaving as it should, but im sure there will be a valid reason / restriction somewhere.
I also have a global exception filter plugged in in my startup.cs which never gets called unless i serialize the array in the controller first by using
JsonConvert.SerializeObject
// Setup global exception filter
builder.AddMvcOptions(o => { o.Filters.Add(new GlobalExceptionFilter(this.LoggerFactory)); });

In the scheme of things i think this is an important issue because the client using the Api will never know that there has been an error on the server when only 1 of the 3 note objects are serialized, the Json is valid and the status code is still 200, falsely indicating a successful response...
A UI which shows the data will be end up showing incorrect results.
I would not want to have to rely on developers working on an Api to always avoid falling into this trapdoor by either using ReferenceLoopHandling.Ignore or correctly attributing the model with [JsonIgnore] attributes the prevent loops...
Does someone want to decide where this issue should sit?
Thanks!

Also I don't think the DeveloperExceptionPage Middleware should be behaving as it should, but im sure there will be a valid reason / restriction somewhere.

The likely issue with the DeveloperExceptionPage for this exception is that it happens after a response is partially written. At that point it isn't possible to write a developer exception page since the response is already corrupted.

Just cloned my demo repo to my Windows VM and found that the behaviour is the same, with the same output in the console log.
Note that VS2015 is unable to restore the packages, seems to be due to issue: dotnet/cli/issues/4248
so you have to use dotnet restore from the command line instead.
@halter73 I think that writing the response before it is known that the object can be completely serialized without error is problematic because like you say it will prevent any serialization errors from being handled properly. It will even prevent the return of just an error status code so providing no indication that there has been a problem.
In any performance vs reliability tradeoff, i think reliability and consistency should be more important for any framework aimed at enterprise usage?

@chrisckc I tried your TodoAPI demo. It looks like you are indeed running into aspnet/IISIntegration#39. If you hit Kestrel directly, you get an invalid response. When I tested I had Kestrel running directly on port 5000 and IIS running on port 12345.
This is what I see when calling the Invoke-WebRequest powershell commandlet on both endpoints:

And the same from Chrome:

In both cases the response only appears successful when proxied by IIS. The raw fiddler output for the request shows the difference in the responses.

The "0" on the last line you see at the end of the IIS response is required to indicate a successful response. IIS shouldn't be adding the "0" when it isn't sent by Kestrel which is what aspnet/IISIntegration#39 is about.
Note: Instead of calling loggerFactory.AddConsole(Configuration.GetSection("Logging")), I suggest calling the parameterless version loggerFactory.AddConsole() to write out logs from all sources. At least until you have an appsettings.json with the namespaces you want to log configured.

@halter73 is it actionable though? I would like to move this issue to a repo where it can be addressed. Any clue where it should belong?

@divega  https://github.com/aspnet/IISIntegration/issues/39 is actionable. I think that's the biggest issue brought up and should be fixed ASAP.

@halter73 I think that writing the response before it is known that the object can be completely serialized without error is problematic ...

It can certainly see how it can be problematic, but as you mention it's a trade off. For small objects it probably would make sense to pre-serialize, but we've had customers send multi-megabyte JSON objects in which case that would be very inefficient.
We could try to dynamically change behavior based on size, but I'm afraid that would lead to more confusion. Another possibility is to both serialize and write to the response body inside the controller action asynchronously. While this is possible, it doesn't really fit the normal usage pattern for MVC where response objects are returned and serialized after the Action returns an object.

@halter73 I can confirm i have just observed the same behaviour you described running on Windows, the response shows an error in chrome dev console from Kestrel but not IIS.
I checked the chrome developer console on my Mac and can also see the ERR_INCOMPLETE_CHUNKED_ENCODING, i had not noticed that before as i have been using postman on my Mac (no fiddler equivalent) and it provides no indication of any anomaly in the response inspectors.
I suspect that if i use one of the popular REST client libraries on an iOS device to consume the Api from kestrel that they to will not see an issue, or just get confused because of the 200 status code.

@halter73 ideally i would like the behaviour to be configurable, maybe on a per controller basis so at least we have the option for complete reliability. For small payloads i suspect the performance difference will be negligible, large payloads should not be an issue in theory as a well designed Api should not be attempting to send large payloads anyway. (should be broken down etc.)
If it were configurable, customers who wish to send large payloads and are either:

confident that all payloads will serialize correctly using json.net
they control the clients or know that they are able to detect an incomplete payload
can configure their controllers accordingly for their own needs.

@chrisckc

Ideally i would like the behaviour to be configurable, maybe on a per controller basis so at least we have the option for complete reliability.

This isn't a per-controller configuration, but it looks like https://www.nuget.org/packages/Microsoft.AspNetCore.Buffering/ might give you what you're looking for. This won't cause the exception to be raised from inside the Action method, but this will allow for the response to be rewritten to a 500 (whith the DeveloperExceptionPage if that's configured) when the exception is thrown during serialization. This should also work around the IIS issue.
This SO post shows how to use it: https://stackoverflow.com/questions/37966039/disable-chunking-in-asp-net-core
The buffering should probably be set up after the DeveloperExceptionPage but before MVC, but it should still work if you call app.UseResponseBuffering() before both.

This issue was moved to aspnet/IISIntegration#285


Export to Diagrams.net not working

If your issue relates to the Discovery Process, please first follow the steps described in the implementation guide Debugging the Discovery Component
When I select the Diagrams.net (formerly Draw.io) radio button and click 'Export,' it gives following error:
unsupported operand type(s) for *: 'NoneType' and 'float'
PFA
Describe the bug
A description of what the bug is.
N/A
To Reproduce
Steps to reproduce the behavior:

Go to 'Diagrams > Manage'
Click on Diagram generated
Actions > Diagram > Export
Select Diagrams.net (formerly Draw.io) > Export
This will give error after few seconds: unsupported operand type(s) for *: 'NoneType' and 'float'

Expected behavior
A description of what you expected to happen.
It should provide an io diagram that gets open in new tab from where we can save it as pdf
Screenshots
If applicable, add screenshots to help explain your problem.

Browser (please complete the following information):

Name: Chrome
Chrome is up to date
Version 109.0.5414.120

Additional context
Add any other context about the problem here.

this is a duplicate of #329. We are working on a fix for v2.1.0.


Library Default Destination

Instead of specifying the destination of each library, is it possible to introduce a new "default destination" setting that uses conventions at the top level of libman.json.  This setting would still be able to be overwritten at each library level.
For example:

twitter-bootstrap version 3.3.7 library would go to wwwroot/lib/bootstrap
jquery version 1.12.0 library would go to wwwroot/lib/jquery/1.12.0
jquery version 3.3.1 library would go to wwwroot/lib/jquery/3.3.1

the libman.json would look something like this:
{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "defaultDestination": "wwwroot/lib/[LibraryName]/[Version]",
  "libraries": [
    {
      "library"<EMAIL_ADDRESS>      "destination": "wwwroot/lib/bootstrap"
    },
    {
      "library"<EMAIL_ADDRESS>    },
    {
      "library"<EMAIL_ADDRESS>    }
  ]
}

Thanks

You likely wouldn't want to introduce version number into your file names/path as each update would break all of your references unless you're using wildcard/masks, but that's up to the each person who comes up with the their own default path. But it would be nice to expose a way to inject certain pieces of information from the library into the path using tags in the default convention. [Name] and [Version] would be easy as both are properties hanging off of the ILibrary interface. Probably a good idea to sanitize the name/version before use, just in case there are characters that are invalid for a path.


:memo: Booklets page

Description
Created a Booklets Page where I can add the different sections of my booklets page.
Reference the issue related to this PR as shown below.
(https://github.com/italanta/elewa-website-html/issues/9).
Fixes #9
Type of change
Please delete options that are not relevant.

[x] This change requires a documentation update

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Good attempt closing this pr as it is already done, please pick another issue


FT 156577835 Fix accounts tests

What does this PR do?

Ensure all test files in hc/accounts/tests have the required asserts and the tests are passsing

Description of Task to be completed?

Ensure all asserts in the tests are running (both present and those added)
Ensure all tests are passing (both present and those added)

How should this be manually tested?

Install the project and install the requirements.txt
Run the commands below

cd to hc-rogue-one
python manage.py test hc.accounts.tests

What are the relevant pivotal tracker stories?
#156577835
Checklist: I completed these to help reviewers

[x] My IDE is configured to follow the PEP8 Conventions
No? Unsure? -> configure your IDE, format the code and add the changes with git add . && git commit --amend

[ ] I have added tests to cover my changes.
No? -> figure out why and add the fix to your commit. It is your responsibility to make sure your code works.

[x] My pull request is based on the latest changes of the develop branch.
No? Unsure? -> execute command git pull --rebase origin develop

I have done away with the assert and now using assertEquals in the tests


🚀 240816 Additional data update

synced local file(s) with BeaverHouse/aecheck-data.

Changed files

synced local directory public/image/data/ with remote directory result/image/synced local directory src/data/ with remote directory result/data/synced local  src/constant/updates.tsx with remote  result/updates.tsx

This PR was created automatically by the repo-file-sync-action workflow run #10406443684

Resolve #30


Helidon should return 417 on unsupported Expect header

https://www.rfc-editor.org/rfc/rfc9110.html#status.417

A server that receives an Expect field value containing a member other than 100-continue MAY respond with a 417 (Expectation Failed) status code to indicate that the unexpected expectation cannot be met.

Nima returns 417 Unsupported-Expect, we should align all the flavors to same behavior.
Environment Details

Helidon Version: 2.x, 3.x, 4.x(reactive)
Helidon SE and Helidon MP

Steps to reproduce
curl -v -H 'Expect: BOOM!!' -d '{"greeting": "Ahoj"}' -XPUT localhost:8080/greet/greeting

*   Trying <IP_ADDRESS>:8080...
* Connected to localhost (<IP_ADDRESS>) port 8080 (#0)
> PUT /greet/greeting HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.85.0
> Accept: */*
> Expect: BOOM!!
> Content-Length: 20
> Content-Type: application/x-www-form-urlencoded
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 204 No Content
< Date: Wed, 25 Jan 2023 16:18:41 +0100
< connection: keep-alive
<
* Connection #0 to host localhost left intact

Test from Nima
    @Test
    void unsupportedExpect417() throws Exception {
        try (SocketHttpClient socketHttpClient = SocketHttpClient.create(defaultPort)) {
            String content = "looong payload data";
            socketHttpClient
                    .manualRequest("""
                            POST /test HTTP/1.1
                            Host: localhost:%d
                            Expect: BOOM!!!
                            Accept: */*
                            test-fail-before-read: false
                            Content-Length: %d
                            Content-Type: application/x-www-form-urlencoded

                            """, defaultPort, content.length())
                    .awaitResponse("HTTP/1.1 417 Unsupported-Expect\n", "\n\n");

            String received = socketHttpClient.receive();
            assertThat(received, startsWith("HTTP/1.1 404"));
        }
    }

We have removed this feature from Nima, there can other ways to leverage expected header


glGetString does not return supported emulated OpenGL ES extensions when running an OpenGL ES application on desktop via an emulation library

Description
As far as I can tell when taking a RenderDoc of an OpenGL ES application on desktop using an OpenGL ES on top of OpenGL emulation library such as PVRVFrame calls to glGetString should return the set of extensions supported by the emulation library as well as those supported directly via RenderDoc.
Currently when taking a RenderDoc capture of an OpenGL ES application when using PVRVFrame as the emulation library I only see the following extensions are listed as supported:
"GL_EXT_debug_tool", "GL_GREMEDY_frame_terminator" and "GL_GREMEDY_string_marker".
From what I can see in renderdoc/driver/gl/gl_driver.cpp: from line 1225 checks are being done to determine whether extensions supported via the emulation library for OpenGL ES are also supported on the host OpenGL driver.
This won't generally happen as for many OpenGL extensions there will be an equivalent or more limited version of the extension supported on OpenGL ES for example GL_EXT_color_buffer_float for OpenGL ES vs. GL_ARB_color_buffer_float for OpenGL.
When running under emulation should glGetString simply return the list of extensions supported via the emulation library directly rather than attempting to find a mapping on the host?
Commit 73e1f7e770ac2dfae532c7c99c71e2d02e33b966 seems to be quite relevant here - the expected behaviour outlined above previously worked although I couldn't say which version of RenderDoc exactly.
Repro steps
Download the PowerVR SDK from https://www.imgtec.com/download/windows-installer-powervr-tools-and-sdk/ (Only required for PVRVFrame libraries and a windows binary of the SDK example OpenGLESPostProcessing)
Copy the PVRVFrame libraries from PowerVR_Tools\PVRVFrame\Library\Windows_x86_64\ to a DLL-accessible directory prior to running the SDK applications - may be anywhere in the path, next to the executable, system default folders etc.
Queue a frame 0 capture of PowerVR_SDK\SDK_2018_R2\bin\Windows_x86_64\Release\OpenGLESPostProcessing in RenderDoc.
Currently the application will fail due to unsupported GL_EXT_color_buffer_float extension.
The application runs under PVRVFrame emulation without taking a capture using RenderDoc as PVRVFrame provides emulation for the appropriate OpenGL ES extensions.
Environment

RenderDoc build: Built from source commit 3b4f2837196b80da84bd341575dcf145ac7e0000.
Operating System: Windows 10.
API: OpenGL ES.

Some info taken from the diagnostic log:
Activating new GL context: Imagination Technologies (Host: ATI Technologies Inc.) / PVRVFrame 10.9 - None (Host : AMD Radeon HD 7700 Series) (SDK Build: MAIN@5319879) / OpenGL ES 3.2 (Host : 4.6.13547 Core Profile Context 25.20.15027.9004).

I believe this is only happens on AMD, because the driver calls wglCreateLayerContext whereas on NV's driver this doesn't happen. When AMD's driver calls a wgl function this then starts to conflict between GLES and desktop GL hooks in RenderDoc and things rapidly break from there. The filtering you've identified is not trying to look behind any emulation but is just whitelisting the extensions returned by the GL implementation (whatever it is - emulator or real driver) according to what RenderDoc supports. I don't know or care about any emulator I only know about the GL implementation that I'm wrapping.
GLES-on-GL emulators are fragile with RenderDoc and in general I don't guarantee that I'll support them. The problem is I can either hook & capture the input calls or the output calls but not both - and if somehow both sides get hooked then things will break as above. When capturing the GLES side I do this by not hooking any calls that come out of GLES libraries at all on windows, however if they go via another DLL (like AMD's driver) this breaks down, and there's no good way to catch it.
I've added a workaround which will disable the WGL hooks completely as soon as EGL is loaded. It seems to work for now but as I say if this breaks again I may not be able to fix it.
While looking at this I discovered a couple of other issues that I've also fixed, though the captures don't replay correctly. I'm not sure if this is a bug in RenderDoc or not, as last time I looked at PVRVFrame it had bugs itself and didn't properly implement the GLES features RenderDoc needed to function.

Aha right - Well I wasn't even close then in the end with what I thought the issue might have been! Thanks very much for providing a workaround!
Funnily enough I only switched to using this AMD card a couple of weeks ago so yeah this makes sense why I'd not seen any issues before.
I grabbed your latest commits and was able to successfully take a RenderDoc capture of the application I pointed you towards using a PVRVFrame version from our impending 19.1 release.
Thanks again for the quick fix/workaround!
Thanks,
James


Adding ParlSpeech and ParlSpeech V2

Heyho,
adding 2 datasets:
ParlSpeech by Christian Rauh, Pieter De Wilde and Jan Schwalbach;
ParlSpeech V2 by Christian Rauh and Jan Schwalbach.
V2 contains additional countries (though dropping Finland!), some more metadata and covers a longer timespan. Here is Christian Rauh sharing and discussion V2 on twitter.
I once again tried my best to fill in all the available information.
Have a nice day and once again thanks a lot for creating this awesome ressource
Robert

Hi Robert,
Thank you! That's perfect -- much appreciated.
I have merged the edits (and pushed a slight edit to the DOI urls).
Thanks again and do feel free to add additional data if you find anything that might be relevant. Have a great weekend!
Erik


Revert "Port TensorFlow T5 ranker to PyTorch (#19)"

Revert the port -- results aren't precise enough and require further validation.

@rodrigonogueira4 merge so we can redeploy for now with TF?


Automate Security Group creation via Terraform

We can automate this to avoid any problems with connectivity

I created terraform module for my project, that could I can apply for this.

Closed via #33


Syntax changes and spacing for readability

The syntax changes split off from #79. Will require more detailed review. I could have missed some changes that have happened on master while this PR hung around when I rebased and resolved conflicts. Also, you might simply not like the number of empty lines I added! 😸
Signed-off-by: Aaron Browne<EMAIL_ADDRESS>

Rebased! Just tried to test and it kind of hung for a while...maybe because I'm not on the network? I'll retry tomorrow.

OK, tests passed!


Aspire AzureStorage (and others) should allow non-container mode

Is there an existing issue for this?

[x] I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.
As a developer of ASP.NET Core + Azure Storage + EFCore SQL Server apps, I would like to use Aspire more fully without using containers.  I want the rich dev time logging, configuration, etc. of Aspire, but am not ready to adopt containers for Azure Storage Emulator and SQL Server.
Describe the solution you'd like
I envision being able to do very similar to the existing Storage Emulator and SQL examples, but to allow using non-container options.  In AppHost, I would like to have it find and start up azurite executable in-process:
var storage = builder.AddAzureStorage("Storage");
if (builder.Environment.IsDevelopment()){ storage.RunLocalEmulator(@"D:\myproject_temp_storage"); }

As well as use SQL server already running on my dev machine:
var sql = builder.AddSqlServer("sql");
if (builder.Environment.IsDevelopment()){ sql = sql.WithLocalServer(@"(localdb)"); }

From then on, expectation would be that the injected resources would work the same as container options.
Additional context
I was able to launch Azurite using an ExecutableResource, but was unable to work it in such a way that it integrated with the existing Aspire.Azure.Storage code and let me inject connection info into the app.  Similarly, we can  can of course continue to connect to SQL directly from the ASP.NET app, but in both cases we don't get the rich tracing and logging for those in Aspire.
Our dev team already has Storage Emulator (it ships with VS!) and SQL Server.  Containerizing those right now doesn't make sense for us, and our dev vms hosted in Azure don't support Docker.
Our apps are already set up in Azure AppService, Azure SQL, and Storage, and have a CI/CD pipeline for deployment.  We're not ready to containerize the production app or automate deployment via bicep. By supporting local non-container flavors of the things that can, Aspire will be a smoother on-ramp for developers who want the rich dev experience of Aspire but are not ready to adopt containers for all the things.

I envision being able to do very similar to the existing Storage Emulator and SQL examples, but to allow using non-container options. In AppHost, I would like to have it find and start up azurite executable in-process:

I don't think this is an unreasonable request, but I'd like to see how much traction it gets before we do anything. Aspire might just be the trojan horse that makes you flip to using containers 😄.

As well as use SQL server already running on my dev machine:

You can do this by using AddConnectionString instead of AddSqlServer. There's nothing for the app host to do here besides flowing the connection string to other applications (so it's not like azurite in that sense).

Our dev team already has Storage Emulator (it ships with VS!) and SQL Server. Containerizing those right now doesn't make sense for us, and our dev vms hosted in Azure don't support Docker.

You can use podman instead. Is there some constraint that stops you from using a container runtime on these machines?

Our apps are already set up in Azure AppService, Azure SQL, and Storage, and have a CI/CD pipeline for deployment. We're not ready to containerize the production app or automate deployment via bicep. By supporting local non-container flavors of the things that can, Aspire will be a smoother on-ramp for developers who want the rich dev experience of Aspire but are not ready to adopt containers for all the things.

You don't need to use the aspire deployment technology, sounds like you have this covered already so it shouldn't be a problem.

Thanks for quick response.

I don't think this is an unreasonable request, but I'd like to see how much traction it gets before we do anything.
Understood.  I get it's an edge case, but I have to think we're not the only devs who want all the Aspire goodness but can't or don't want to go full-bore containers yet.  In our case, we ARE able to use Aspire for the ASP.NET core API and an Angular UI, and it's great.  We just want to take usage to the next level.

I didn't know that about AddConnectionString, so tried it just now.  Somewhat mitigates that concern, but really I want to see a row in "Resources" and traces/logging/metrics for the resource.
In the case of Azurite, it ships with VS, so most devs that use this will have azurite locally already.
I tried both podman and docker desktop on our Standard_B8ms Azure VMs and neither will work.  I don't recall the exact errors, but remember they were pretty definitive "you can't run this on this machine". I'm not opposed to changing dev vm SKUs, or switching to local machines for dev. I do want to move to containers for dev and possibly for deployment, especially if I get richer logging and metrics in Aspire.  Having a smoother non-container on-ramp could help that.  It would allow developers not in a containerized environment still be able to work with the app until they migrate to a dev vm or local dev to support containers:
if (builder.Environment.IsDevelopment() && builder.Environment.SupportsContainers()){
   storage.RunEmulator();
}else if (builder.Environment.IsDevelopment()){
   storage.RunLocalEmulator(@"D:\myproject_temp_storage");
}

I believe you'll need to pick a VM sku that supports Nested Virtualization. That doesn't appear to be supported with B series - https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/bv1-series?tabs=sizebasic#feature-support .

I didn't know that about AddConnectionString, so tried it just now. Somewhat mitigates that concern, but really I want to see a row in "Resources" and traces/logging/metrics for the resource.

There’s no telemetry or logs that get plumbed from your localdb. The telemetry comes from your application code.
I would encourage you to try to use containers in your local dev environments. That’s a good first step before going full bore.
In the meantime, you could build a custom azurite resource that does what you are trying to do.

@afscrome You're right, but it's a hard sell because B8ms was such a sweet spot.  8core/32gb @ 266/mo.  As best I can tell comparable VMs that support nested virtualization are close to double the cost, or we could try lower cpu/ram. I'd sooner just switch to dev on local machines, but that means additional setup and moving cheese for other devs.  We'll figure it out, just explaining the context why "just pick a new dev machine" may not be straightforward for some situations.
In case anyone needs or can build on it, I did do what @davidfowl suggested and make an extension method to at least run azurite:
/// <summary>
/// Extension methods for adding Azure Storage Emulator to a distributed application.  Unlike the built-in Aspire Storage support, this
/// does not use a container, but instead uses the azurite exe on the developer's machine.  However it also does not currently inject configuration information to the application.
/// </summary>
internal static class AzureStorageEmulatorExecutableExtensions
{

    /// <summary>
    /// Adds the Azure Storage Emulator executable to the distributed application.  Unlike the built-in Aspire Storage support, this
    /// does not use a container, but instead uses the azurite exe on the developer's machine.  However it also does not currently inject configuration information to the application.
    /// A future enhancement could be to integrate this with the Aspire Storage support to provide a more seamless experience.
    /// </summary>
    /// <param name="builder"></param>
    /// <param name="name"></param>
    /// <param name="workingDirectory"></param>
    /// <returns></returns>
    /// <exception cref="DistributedApplicationException"></exception>
    public static IResourceBuilder<ExecutableResource> AddAzureStorageEmulatorExecutable(this IDistributedApplicationBuilder builder, string name, string workingDirectory)
    {
        //TODO: Look on all drives in case someone installs vs in a different location.  Also support other OSes
        var paths = new[]{@"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator\azurite.exe",
@"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator\azurite.exe",
@"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator\azurite.exe" };
        var azuritePath = paths.FirstOrDefault(File.Exists);
        Console.WriteLine($"Azurite path: {azuritePath}");
        if (azuritePath == null)
        {
            throw new DistributedApplicationException("Azurite executable not found.  Please install the Azure Storage Emulator.");
        }

        var resource = new ExecutableResource(name, azuritePath, workingDirectory);

        return builder.AddResource(resource)
            .WithArgs("--loose", "--skipApiVersionCheck", "--location", workingDirectory)
            .ExcludeFromManifest();
    }
}

So I can do this in apphost:
builder.AddAzureStorageEmulatorExecutable("Azurite", @"D:\some_temp_path");

But this doesn't provide all the benefits of Aspire.Hosting.Azure.Storage, like injecting config.  I tried to do an overload of RunAsEmulator that returned a AzureStorageEmulatorExecutableResource instead, but got into the weeds and don't fully grok that yet.

Here's a more usable Azurite resource:
using System.Globalization;
using Aspire.Hosting.Azure;
using Azure.Identity;
using Azure.Storage.Blobs;
using Microsoft.Extensions.DependencyInjection;

namespace Aspire.Hosting;

public static class AzuriteExtensions
{
    private static readonly IReadOnlyList<string> CandidatePaths = GetDefaultAzuriteCandidatePaths().ToList();

    public static IResourceBuilder<AzuriteResource> AddAzurite(this IDistributedApplicationBuilder builder, string name, string? emulatorPath = null, string? workingDirectory = null)
    {
        emulatorPath ??= CandidatePaths.FirstOrDefault() ?? throw new InvalidOperationException("Unable to find the Azure Storage Emulator executable.");

        // Get a unique hash for this apphost directory
        var applicationHash = builder.Configuration["AppHost:Sha256"]![..10].ToLowerInvariant();
        workingDirectory ??= Directory.CreateTempSubdirectory(".azurite").CreateSubdirectory(applicationHash).CreateSubdirectory(name).FullName;

        var resource = new AzuriteResource(name, emulatorPath, workingDirectory ?? builder.AppHostDirectory);

        BlobServiceClient? blobServiceClient = null;

        builder.Eventing.Subscribe<BeforeResourceStartedEvent>(resource, async (@event, ct) =>
        {
            var connectionString = await resource.GetBlobConnectionString().GetValueAsync(ct).ConfigureAwait(false) ??
                throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{resource.Name}' resource but the connection string was null.");

            blobServiceClient = CreateBlobServiceClient(connectionString);
        });

        var healthCheckKey = $"{resource.Name}_check";

        builder.Services.AddHealthChecks().AddAzureBlobStorage(sp =>
        {
            return blobServiceClient ?? throw new InvalidOperationException("BlobServiceClient is not initialized.");
        },
        name: healthCheckKey);

        return builder.AddResource(resource)
                      .WithEndpoint(name: "blob", port: 10000, isProxied: false)
                      .WithEndpoint(name: "queue", port: 10001, isProxied: false)
                      .WithEndpoint(name: "table", port: 10002, isProxied: false)
                      .WithArgs(context =>
                      {
                          context.Args.Add("--loose");
                          context.Args.Add("--skipApiVersionCheck");
                          context.Args.Add("--blobPort");
                          context.Args.Add(resource.EmulatorBlobEndpoint.Property(EndpointProperty.TargetPort));
                          context.Args.Add("--queuePort");
                          context.Args.Add(resource.EmulatorQueueEndpoint.Property(EndpointProperty.TargetPort));
                          context.Args.Add("--tablePort");
                          context.Args.Add(resource.EmulatorTableEndpoint.Property(EndpointProperty.TargetPort));
                      })
                      .WithHealthCheck(healthCheckKey);

        static BlobServiceClient CreateBlobServiceClient(string connectionString)
        {
            if (Uri.TryCreate(connectionString, UriKind.Absolute, out var uri))
            {
                return new BlobServiceClient(uri, new DefaultAzureCredential());
            }
            else
            {
                return new BlobServiceClient(connectionString);
            }
        }
    }

    private static IEnumerable<string> GetDefaultAzuriteCandidatePaths()
    {
        List<string> allPaths = [];

        if (OperatingSystem.IsWindows())
        {
            // https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite

            string[] VisualStudioSkus =
            [
                "Community",
                "Professional",
                "Enterprise",
                "Preview"
            ];

            string azuriteInVisualStudioPathFormat = "{0}\\Microsoft Visual Studio\\2022\\{1}\\Common7\\IDE\\Extensions\\Microsoft\\Azure Storage Emulator\\azurite.exe";

            var vsPaths = from s in VisualStudioSkus
                          let basePath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
                          let azuritePath = string.Format(CultureInfo.InvariantCulture, azuriteInVisualStudioPathFormat, basePath, s)
                          where File.Exists(azuritePath)
                          select azuritePath;

            allPaths.AddRange(vsPaths);
        }

        // Check the PATH environment variable
        string[] fmtStrings = OperatingSystem.IsWindows() ? ["{0}.exe", "{0}.cmd"] : ["{0}"];

        foreach (var dir in Environment.GetEnvironmentVariable("PATH")?.Split(';') ?? [])
        {
            foreach (var fmtString in fmtStrings)
            {
                var path = Path.Combine(dir, string.Format(fmtString, "azurite"));

                if (File.Exists(path))
                {
                    allPaths.Add(path);
                }
            }
        }

        return allPaths;
    }
}

public class AzuriteResource(string name, string command, string workingDirectory) : ExecutableResource(name, command, workingDirectory),
    IResourceWithConnectionString
{
    public ReferenceExpression ConnectionStringExpression => AzureStorageEmulatorConnectionString.Create(blobEndpoint: EmulatorBlobEndpoint, queueEndpoint: EmulatorQueueEndpoint, tableEndpoint: EmulatorTableEndpoint);

    internal EndpointReference EmulatorBlobEndpoint => new(this, "blob");

    internal EndpointReference EmulatorQueueEndpoint => new(this, "queue");

    internal EndpointReference EmulatorTableEndpoint => new(this, "table");

    public ReferenceExpression GetBlobConnectionString() =>
        AzureStorageEmulatorConnectionString.Create(blobEndpoint: EmulatorBlobEndpoint);

    private static class AzureStorageEmulatorConnectionString
    {
        // Use defaults from https://learn.microsoft.com/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-shortcut
        private const string ConnectionStringHeader = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;";

        private static void AppendEndpointExpression(ReferenceExpressionBuilder builder, string key, EndpointReference endpoint)
        {
            builder.Append($"{key}=http://{endpoint.Property(EndpointProperty.IPV4Host)}:{endpoint.Property(EndpointProperty.Port)}/devstoreaccount1;");
        }
        public static ReferenceExpression Create(EndpointReference? blobEndpoint = null, EndpointReference? queueEndpoint = null, EndpointReference? tableEndpoint = null)
        {
            var builder = new ReferenceExpressionBuilder();
            builder.AppendLiteral(ConnectionStringHeader);

            if (blobEndpoint is not null)
            {
                AppendEndpointExpression(builder, "BlobEndpoint", blobEndpoint);
            }
            if (queueEndpoint is not null)
            {
                AppendEndpointExpression(builder, "QueueEndpoint", queueEndpoint);
            }
            if (tableEndpoint is not null)
            {
                AppendEndpointExpression(builder, "TableEndpoint", tableEndpoint);
            }

            return builder.Build();
        }
    }
}

@davidfowl yeah, that's pretty much exactly what we need.  Thanks a ton!  Will leave it to you all whether it makes sense to bake this into Aspire.Hosting.Azure.Storage, but  I think this will give our team a good bridge so we can adopt Aspire now, then look at containerizing dev in the near future.
@afscrome After some more research I'm wondering if Azure DevBox will be a good fit.  Cheaper than our Standard_B8ms Azure VMs and maybe supports docker?

@erwinkramer @danroot isn't running containers at all 😄

Thanks @erwinkramer We're running the dashboard, .net app, and angular frontend just fine through apphost.  AddAzurite code above gets us where we want to be for now, allowing us to run storage emulator without container until we can get the team onboard with dev environments that support containers.


display autoincrement on schema tab

Extended schema tab in Diagnostics mode must display auto increment info.

If any column in table has DefaultFromSequence truthy property, addAutoincrement column into Schema table.
If column has DefaultFromSequence truthy property, add tick into the new column (like in NotNull)

@gridnevvvit Vitaly, could you please confirm that I pointed out the correct column property?

okay, i think that statement in the issue is correct.


Wording clarification: "Verify" --> "Review"

When submitting a new ad, it may not be immediately clear what is meant by "verify". I believe the term "review" reflects more accurately and unambiguously what Step 2 entails.
This change also avoids having two meanings for the word "verify", which is also used in the context of confirming a previously unseen email address.

Great suggestion, thanks!


'NoneType' object has no attribute 'encode_image' - ubuntu

Any idea what's wrong? I updated all my comfyui modules, and comfyui core. Still happening.
Error occurred when executing CLIPVisionEncode:
'NoneType' object has no attribute 'encode_image'
File "/home/admin/git/comfy-3.15.24/execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "/home/admin/git/comfy-3.15.24/execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "/home/admin/git/comfy-3.15.24/execution.py", line 74, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "/home/admin/git/comfy-3.15.24/nodes.py", line 905, in encode
output = clip_vision.encode_image(image)

I had to download the correct pytorch_model.bin, as there are multiple's on huggingface. I didn't initially see it on the readme, but it's there.


Fixed the probe panic issue

Fixed the probe panic issue
Linked Issue #385
Issue
There was panic occurring in the probe/probe.go file as sometimes the variables does not exist sometimes.
Fix
Fixed the issue creating a check for the variables' values.

@daemon1024 please review this pull request.


Think through pattern for multi-modal graphs

Ideally, this tool will be able to answer the same kinds of questions for any mode. Over in Severance Snape, to calculate ped shortcuts, we need a driving graph. In the LTN tool, we need to understand non-driveable roads to detect some modal filters. Without going back to the sheer complexity of the osm2streets approach, revisit all of these requirements. One graph structure, many views onto it?

Dupe of #17


Ignore failure when installing from acceptance

The Habitat bldr for acceptance isn't monitored and can sometimes be
down when we want to run tests in Travis. This shouldn't stop us from
doing our tests, so ignore failures. Also remove the test that is done
post convergence, as we may not have that package installed, and we
can check other packages are installed from that test as using an
alternative URL is not required to know that the functionality is
working.
Signed-off-by: Joshua Timberman<EMAIL_ADDRESS>

Looks good to me

To summarize, via discussion with @paulmooring:

That test exist only to test the bldr_url function
Setting it to the default url (prod bldr) would not be a good test
We can ignore failures via travis because we don’t actually care about installing the package, only testing that option


Unhelpful 'vertx thread blocked' errors in log if openai key is not set

If I run a simple application such as https://github.com/kdubois/quarkus-langchain4j-podman-ai-instructlab, but with the default openai base url and no export QUARKUS_LANGCHAIN4J_OPENAI_API_KEY=..., I get the following errors in the logs:
2024-09-25 18:54:00,888 WARN  [io.ver.cor.imp.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-worker-thread-4,5,main] has been blocked for 99893 ms, time limit is 60000 ms: io.vertx.core.VertxException: Thread blocked
        at java.base/jdk.internal.misc.Unsafe.park(Native Method)
        at java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
        at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:754)
        at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:990)
        at java.base/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
        at java.base/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
        at io.quarkus.deployment.dev.RuntimeUpdatesProcessor.doScan(RuntimeUpdatesProcessor.java:462)
        at io.quarkus.deployment.dev.RuntimeUpdatesProcessor.doScan(RuntimeUpdatesProcessor.java:455)
        at io.quarkus.vertx.http.runtime.devmode.VertxHttpHotReplacementSetup$6.call(VertxHttpHotReplacementSetup.java:161)
        at io.quarkus.vertx.http.runtime.devmode.VertxHttpHotReplacementSetup$6.call(VertxHttpHotReplacementSetup.java:148)
        at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$0(ContextImpl.java:178)
        at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:279)
        at io.vertx.core.impl.ContextImpl.lambda$internalExecuteBlocking$2(ContextImpl.java:210)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1495)
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
        at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:1583)

It's not obvious that the root cause is missing configuration. I see this with 0.17.2 and 0.18.

@holly-cummins how are you reproducing this?
Asking because I am seeing:
Configuration validation failed:
        SRCFG00014: The config property quarkus.langchain4j.openai.api-key is required but it could not be found in any config source

@holly-cummins how are you reproducing this?
Asking because I am seeing:
Configuration validation failed:
        SRCFG00014: The config property quarkus.langchain4j.openai.api-key is required but it could not be found in any config source

Right, that's what I expected to happen, too. :)
If I try and do a naive reproducer, I get the right message in the logs, and a relevant stack trace in the browser. Which I guess is reassuring. I've just looked more carefully at my reproducer, that shows the problem, and it seems to be adding the micrometer problem that exposes the issue. I do see the expected config message in the log, but it's overwhelmed by the vertx stack trace. I do have to wait a few minutes for the vertx trace, but I get this immediately on startup:
2024-09-27 15:33:18,490 WARN  [io.net.uti.con.DefaultPromise] (vert.x-acceptor-thread-0) An exception was thrown by io.vertx.core.net.impl.TCPServerBase$$Lambda/0x00000070017a0448.operationComplete(): io.vertx.core.impl.NoStackTraceException: HttpBinderConfiguration was not found

Just  quarkus create app and then quarkus ext add langchain4j-openai micrometer isn't enough to reproduce, so there must be something else in my reproducer that's creating the conditions for this to happen.
I've put my reproducer here: https://github.com/holly-cummins/quarkus-langchain4j-podman-ai-instructlab/tree/vertx-timeout-reproducer
(ignore the repo name, I – confusingly – removed the config so that it's now using openai.)

Thanks, I'll have a look on Monday

Unfortunately I still can't reproduce this :(

I've just double checked my reproducer. I think this may be something we'd want to fix in Quarkus core (if we want to fix it). But see what you think.
This is what I did:
git clone git@github.com:holly-cummins/quarkus-langchain4j-podman-ai-instructlab.git
git checkout vertx-timeout-reproducer
quarkus dev

At this point, if I'm paying attention, I do see the expected configuration validation error, along with these two bits of vertx grumbling:
Configuration validation failed:
	SRCFG00014: The config property quarkus.langchain4j.openai.api-key is required but it could not be found in any config source
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2024-10-21 18:07:43,950 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure

2024-10-21 18:07:43,950 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2024-10-21 18:07:44,040 WARN  [io.net.uti.con.DefaultPromise] (vert.x-acceptor-thread-0) An exception was thrown by io.vertx.core.net.impl.TCPServerBase$$Lambda/0x000000f8017ab198.operationComplete(): io.vertx.core.impl.NoStackTraceException: HttpBinderConfiguration was not found

2024-10-21 18:07:44,040 WARN  [io.net.uti.con.DefaultPromise] (vert.x-acceptor-thread-0) An exception was thrown by io.vertx.core.net.impl.TCPServerBase$$Lambda/0x000000f8017ab198.operationComplete(): io.vertx.core.impl.NoStackTraceException: HttpBinderConfiguration was not found

But if I don't notice that, and instead go to http://localhost:8080/, nothing happens for a while, and then I get 3958 lines of vertx 'Thread blocked' exceptions in my log. And at that point, my chances of seeing the original config validation message at the top of the log are low. :/

Ah, now I see what you mean.
I am not really sure what we could do here TBH

Yeah, the two fixes that come to mind are "tactically suppress the error before it hits the logs," or "rewrite the whole vertx error handling model in Quarkus core so that it doesn't spam the logs in this scenario." The first seems quick but risky, because we could suppress good stuff, and the second seems slow but risky, because it's a fundamental architectural change. It might have broader benefits, though, because I don't think anyone wants ~4k lines of stack trace in their log from one simple error. Some similarity matching on the exceptions, followed by a 'we saw this same exception 200 more times', might be friendly.
@cescoffier, do you have any thoughts?

You cannot implement the second - that won't work.
Now, what is blocking when the API key is not provided? The fact we block on a lock means that something somewhere is holding the lock and "forgot" to release it after the exception is thrown. That's where I would look first.