VAE (vae-ft-mse-840000-ema-pruned.ckpt) Documentation

Finally got to try vae-ft-mse-840000-ema-pruned.ckpt and my first impression is wow: seems to do better with eyes! Have you noticed some other benefits (e.g. for landscapes, etc.)? I think it would be good to document the strengths and weaknesses of this new vae and also add it to the docs.

what where the prompts you used?

miranda kerr closeup -s 50 -S<PHONE_NUMBER> -W 512 -H 512 -C 7.5 -A k_lms
miranda kerr closeup -s 50 -S<PHONE_NUMBER> -W 512 -H 512 -C 7.5 -A k_lms
miranda kerr closeup -s 50 -S<PHONE_NUMBER> -W 512 -H 512 -C 7.5 -A k_lms

Would like to compare what they look on my end, since I did not have those problematic Faces.
Will test after MacOS Update is done ^^

Are there any instructions how to use it with InvokeAI?

not sure if it is related to the updated macOS Ventura, but when running in main branch I know have 5.*s/it (instead of 2.*s/it) 🤔

Are there any instructions how to use it with InvokeAI?

@michaelezra In models.yaml:
stable-diffusion-1.4:
  config: configs/stable-diffusion/v1-inference.yaml
  weights: models/ldm/stable-diffusion-v1/model.ckpt
  description: Stable Diffusion inference model version 1.4
  vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
  width: 512
  height: 512

add vae to the model(s). Download: https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main

@mauwii Interesting. I didn't use FFHQ_eye_mouth_landmarks_512.pth or StyleGAN2_512_Cmul1_FFHQ_B12G4_scratch_800k.pthfor any of the results posted above, but it seems to achieve a similar purpose to vae-ft-mse-840000-ema-pruned.ckpt.

I assume after doing this, your command changed and you passed some post-processing options? e.g. miranda kerr closeup -s 50 -S<PHONE_NUMBER> -W 512 -H 512 -C 7.5 -A k_lms -G 0.6 -ft gfpgan

Oh, yes, sorry, should have mentioned this. What happened: When I created the first picture i was totally iritated since my GFPGAN was broken as well so even postprocessing wasnt working anymore (which I guess came from about 100 reinstallations while "playing" with the environment-mac.yml 🙈).
Long story short - the second picture was postprocessed with GFPGAN 🤦🏻♂ Hope I did not lead you on some non-existing route!

All good! I figured you were passing GFPGAN to get so good of a result :)
Here's another comparison:

I edited the post and added the prompt miranda kerr closeup" -s 50 -S<PHONE_NUMBER> -W 512 -H 512 -C 7.5 -A k_lms -G 0.7 which should be the one I used there

Do you think it may be useful to include these results / comparisons in https://github.com/invoke-ai/InvokeAI/blob/development/docs/features/POSTPROCESS.md?
There's no photos right now that document what one may expect.

I guess your excelent comparison-screenshots would ofc fit very well onto the postprocessing docs, since Pics (especially in this case) sometimes say more than 100 lines of docs could do 🙈

@Any-Winter-4079 Thanks!
in models.yaml I tried v1.5:
stable-diffusion-1.5:
    config:  configs/stable-diffusion/v1-inference.yaml
    weights: models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
    description: Stable Diffusion inference model version 1.5
    vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
    width: 512
    height: 512

I created a symlink to vae-ft-mse-840000-ema-pruned.ckpt
and starting invokeai:
`(invokeai) michaelezra@Michaels-MBP stable-diffusion % PATH_TO_CKPT="/Users/michaelezra/ai/CKPT"
(invokeai) michaelezra@Michaels-MBP stable-diffusion % ln -s "$PATH_TO_CKPT/vae-ft-mse-840000-ema-pruned.ckpt" models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
(invokeai) michaelezra@Michaels-MBP stable-diffusion % python scripts/invoke.py --web --model stable-diffusion-1.5

Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.

GFPGAN Initialized
CodeFormer Initialized
ESRGAN Initialized
Using device_type mps
Loading stable-diffusion-1.5 from models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
| LatentDiffusion: Running in eps-prediction mode
| DiffusionWrapper has 859.52 M params.
| Making attention of type 'vanilla' with 512 in_channels
| Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
| Making attention of type 'vanilla' with 512 in_channels
| Using more accurate float32 precision
Model loaded in 5.93s
Setting Sampler to k_lms`

Does this look right - no message about vae.
Should I use any additional command line parameter for invoke.py?

Do you think it may be useful to include these results / comparisons in https://github.com/invoke-ai/InvokeAI/blob/development/docs/features/POSTPROCESS.md? There's no photos right now that document what one may expect.

Totaly agree. I can maybe give you a good advice about how to edit the docs comfortably:
# while in repository-root
python -m venv .venv
. .venv/bin/activate
pip install -r requirements-mkdocs.txt
mkdocs serve

this spins up a local version of the github-page so that you have a live preview (which also reloads as soon as you save some changes).
I used it so often that in the meantime I added the mkdocs requirements to my conda base env 😅

For example, using GFPGAN does help, but it may be useful to use with the new VAE.
Note: There's the option of increasing -G (face restoration strength), to try to improve the eyes, but it will also smoothen details in the face, and you can't decouple it from eyes-restoration-only as far as I know. So combining GFPGAN with VAE may be a nice idea (e.g. say you want wrinkles in the face for an old person but also good eyes).

Yeah, I also noted that "blurrynes". I mostly used a value between 6-7.5 with GFPGAN, which varies depending on the picture itself, but here it is recommended even between 5-8, in the end it's also kind of a personal flavor I guess.
Combining the postprocessors Sounds legit, but unfortunatelly I didn't dive that deep into it yet 🙈 (I even did never use the whole stuff like inpainting, outpainting, ..., but the day will come ;P )

I created a symlink to vae-ft-mse-840000-ema-pruned.ckpt

I just downloaded the file and put it into models/ldm/stable-diffusion-v1, so I don't know what the issue may be. If a symlink doesn't work in your setup, try putting the ckpt directly in the folder.

strange.. I am still not getting this:
Loading VAE weights from: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt

So 1.5 is the default model you load?

I used to explicitly specify, which model to load like this:
python scripts/invoke.py --web --model stable-diffusion-1.5
now I added default: true to v1.5
stable-diffusion-**1.4**:
    config:  configs/stable-diffusion/v1-inference.yaml
    weights: models/ldm/stable-diffusion-v1/**model.ckpt**
    description: Stable Diffusion inference model version 1.4
    vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
    width: 512
    height: 512
stable-diffusion-**1.5**:
    config:  configs/stable-diffusion/v1-inference.yaml
    weights: models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
    description: Stable Diffusion inference model version 1.5
    vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
    width: 512
    height: 512
    **default: true**

now it is loading v1.4
> **python scripts/invoke.py --web**

* Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.
>> GFPGAN Initialized
>> CodeFormer Initialized
>> ESRGAN Initialized
>> Using device_type mps
>> Loading stable-diffusion-1.4 from models/ldm/stable-diffusion-v1/**model.ckpt**
   | LatentDiffusion: Running in eps-prediction mode
   | DiffusionWrapper has 859.52 M params.
   | Making attention of type 'vanilla' with 512 in_channels
   | Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
   | Making attention of type 'vanilla' with 512 in_channels
   | Using more accurate float32 precision
>> Model loaded in 5.88s
>> Setting Sampler to k_lms

* --web was specified, starting web server...
>> Started Invoke AI Web Server!
>> Default host address now <IP_ADDRESS> (localhost). Use --host <IP_ADDRESS> to bind any address.
>> Point your browser at http://<IP_ADDRESS>:9090

you have 4 spaces in your yaml, I only 2, maybe this is the problem, dunno

I copied your yaml file, but no difference:

Loading stable-diffusion-1.5 from ./models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
| LatentDiffusion: Running in eps-prediction mode
| DiffusionWrapper has 859.52 M params.
| Making attention of type 'vanilla' with 512 in_channels
| Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
| Making attention of type 'vanilla' with 512 in_channels
| Using more accurate float32 precision
Model loaded in 5.87s

When I remove v1.5 from models.yaml
I am getting this error - seems like v1.4 is being defaulted from some place else
python scripts/invoke.py --web

Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.

GFPGAN Initialized
CodeFormer Initialized
ESRGAN Initialized
Using device_type mps
"stable-diffusion-1.4" is not a known model name. Please check your models.yaml file
** Model switch failed

args.py:

could you maybe post a complete copy paste like this one:
python scripts/invoke.py --model stable-diffusion-1.5
* Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.
>> GFPGAN Initialized
>> CodeFormer Initialized
>> ESRGAN Initialized
>> Using device_type mps
>> Loading stable-diffusion-1.5 from models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
   | LatentDiffusion: Running in eps-prediction mode
   | DiffusionWrapper has 859.52 M params.
   | Making attention of type 'vanilla' with 512 in_channels
   | Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
   | Making attention of type 'vanilla' with 512 in_channels
   | Using more accurate float32 precision
   | Loading VAE weights from: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
>> Model loaded in 12.44s
>> Setting Sampler to k_lms

* Initialization done! Awaiting your command (-h for help, 'q' to quit)
invoke>

so from the command you enter to the invoke prompt

here it is:
python scripts/invoke.py --web --model stable-diffusion-1.5

Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.

GFPGAN Initialized
CodeFormer Initialized
ESRGAN Initialized
Using device_type mps
Loading stable-diffusion-1.5 from models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
| LatentDiffusion: Running in eps-prediction mode
| DiffusionWrapper has 859.52 M params.
| Making attention of type 'vanilla' with 512 in_channels
| Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
| Making attention of type 'vanilla' with 512 in_channels
| Using more accurate float32 precision
Model loaded in 5.72s
Setting Sampler to k_lms

--web was specified, starting web server...

Started Invoke AI Web Server!
Default host address now <IP_ADDRESS> (localhost). Use --host <IP_ADDRESS> to bind any address.
Point your browser at http://<IP_ADDRESS>:9090

I didn't try to delete the conda env, clean your git branch and start fresh.
how would you clean git branch?

https://invoke-ai.github.io/InvokeAI/installation/INSTALL_MAC/#doesnt-work-anymore

ok.. cleaned git, conda, reinstalled all.. and result is the same:)

are you using the main branch, where this is functionality is not yet implemented 🤔

oh...yes I am in the main branch:))

well, if you need to ask, you should maybe better wait for a release ;P

I switched to development branch..
do I need to recreate the environment again?

@Any-Winter-4079 I re-deployed a 2 week old version of the docs where it wasnt that broken as now, just take a look at https://mauwii.github.io/stable-diffusion/installation/INSTALL_MAC/, when the script blocks startk there is another very nice functionality with those switchable tabs.
Or this site https://mauwii.github.io/stable-diffusion/features/PROMPTS/ is also something which could never look so good in github itself. But well, humanity is doomed to not be able to have nice things I guess 🤷🏻♂

Houston, we have a victory!:)
python scripts/invoke.py --web --model stable-diffusion-1.5

Initializing, be patient...
NOTE: Redirects are currently not supported in Windows or MacOs.

GFPGAN Initialized
CodeFormer Initialized
ESRGAN Initialized
Using device_type mps
Loading stable-diffusion-1.5 from models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
| LatentDiffusion: Running in eps-prediction mode
| DiffusionWrapper has 859.52 M params.
| Making attention of type 'vanilla' with 512 in_channels
| Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
| Making attention of type 'vanilla' with 512 in_channels
| Using more accurate float32 precision
| Loading VAE weights from: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
Model loaded in 5.82s
Setting Sampler to k_lms

Thanks for your help!

@Any-Winter-4079 I re-deployed a 2 week old version of the docs where it wasnt that broken as now, just take a look at https://mauwii.github.io/stable-diffusion/installation/INSTALL_MAC/, when the script blocks startk there is another very nice functionality with those switchable tabs.
Or this site https://mauwii.github.io/stable-diffusion/features/PROMPTS/ is also something which could never look so good in github itself. But well, humanity is doomed to not be able to have nice things I guess 🤷🏻♂

I think this is from https://github.com/invoke-ai/InvokeAI/issues/1278 🙈but yep, your docs look awesome!

Every link in the main README.md points to it (like Installation, inpainting, outpainting, bob ross painting, ....) as well as a link in the top of the README.md and in the InfoBox of the of the Repo in the upper right corner, so not sure how many links would be necesarry 🤷🏻♂
BTW: just try out the search bar in the MkDocs and you directly know why it is totaly imba vs plain old markdowns on GH ;P

Oh my bad! Then it's fine 🙈 Odd as it is, I barely scroll down (I mainly use Issues, Pull Requests, etc. tabs) and the code files, but I almost never get to the readme :P

without having them cound, I guess the MkDocs Page is linked at least 20 times in the readme 🤗 But if you have any other good Ideas how to point to the site I (and 4sure @lstein as well) would apreciate it a lot 👻

@Any-Winter-4079, I'm hijacking this discussion thread just to check up. I haven't heard anything from you for about two weeks and wonder if you're still active on the project?

Busy week (3 exams and 4 projects) here that ends in 2 days.
Most I've done these days in leave Dreambooth running (in colab) in the background :)
I'll probably come back to check where everything is at on Monday.

I believe the technical issues were resolved here. Hope your exams went well @Any-Winter-4079 !


Add damage options to roll notes and implement way to see contextual options

Closes https://github.com/foundryvtt/pf2e/issues/14938

Conflicts!

Fixed. Was just the backwards compatible roll option.

Its been a bit, so I'm going to make further changes and draft it in the meantime.


Proposal: separate acquiring a cache block from creating a cache entry.

Currently, the sequence for a grid read is:

Create a cache entry with an uninitialized block. (This must not evict locked entries, so we must limit concurrent reads to cache.ways - 1.)
'Lock' the cache entry.
Schedule the read .
When the read completes, the block is initialized.
Call the read callback.

We could instead have a pool of cache blocks and only store pointers in the cache. Then the sequence would be:

Acquire a cache block.
Schedule the read.
When the read completes, the block is initialized.
Create a cache entry with the initialized block. This may evict another entry, releasing it's cache block back into the pool (via an on_evict callback in the cache).
Call the read callback.

As long as we never accidentally nest read callbacks this maintains the invariant that the cache block is always valid for the duration of the callback. (We could assert this by setting a boolean flag on the grid before running the read callback and clearing it afterwards).
Benefits:

No uninitialized values in the cache, making gnarly bugs like https://github.com/tigerbeetledb/tigerbeetle/pull/346/files impossible.
Removes the need for a locking api in the cache. Makes inserting grid cache entries slightly cheaper because we don't need to scan the read queue.
Decouples Grid.read_iops_max from the cache, allowing us to increase the read queue depth without changing the cache layout.

What would the cons be?
For example, if I understand correctly, this would mean pointer-chasing, not only the cache miss to the pointer, but a second cache miss also to the block?

Yes, one extra pointer hop per successful cache lookup. But grid.read_iops_max fewer pointer lookups to check for locked entries. And avoids the extra write to the block in https://github.com/tigerbeetledb/tigerbeetle/pull/346 to set the address on cache insert.

Oh, actually we check if entries are locked repeatedly in the eviction loop, so in the best case grid.read_iops_max and in the worst case grid.read_iops_max * safety_count pointer lookups.

Makes inserting grid cache entries slightly cheaper because we don't need to scan the read queue.

Could this part be elaborated on? I assume it refers to the assert_not_reading in Grid.write_block

assert_not_reading will still be necessary. But we can get rid off https://github.com/tigerbeetledb/tigerbeetle/blob/main/src/lsm/grid.zig#L482, which prevents the cache from evicting a block that is being referenced from an in-progress read.

This is a nice design @jamii — the current locking is hairy and this will simplify it.

There are attempts in jamii-cache-pool and jamii-cache-pool-conservative.
jamii-cache-pool has to queue all reads, so that it's safe to evict from the cache to free up a block. It's not able to decouple read_iops_max from ways in the end, because it can only guarantee that a block can be evicted from a set if there are less pending reads than ways in that set. It could be tweaked to evict from any set, but that's starting to feel risky.
jamii-cache-pool-conservative doesn't have to evict. Instead it reserves read_iops_max for pending reads. This isn't as bad as it sounds, because the current design effectively reserves read_queue.len <= read_iops_max entries in the cache.
Both get to look in the cache before looking for pending reads in the queue, which the current design can't safely do, so the one extra pointer hop in cache lookup is offset by avoiding sum([iop.reads.len for iop in read_iops]) pointer hops to check the read queue.
Also one upside of queuing all reads is that we don't have a gap between looking in the cache and running a callback on the cached value, so there's no possibility of the cache entry disappearing in between and forcing a retry, which simplifies scheduling. It also cuts p100 latency by 25% in zig build benchmark with 100 batches, but I think this is essentially noise - only one compaction gets faster.
Neither branch has any measurable perf difference at the moment because we don't make good use of io concurrency anyway. So I think it makes sense to first look at io scheduling and maybe compaction pacing, and then return to this once we have a clearer picture of the tradeoffs.

Closed by #365


sm2: allows to disable Za via "sm2-za:no" parameter

Actually, there is no standard doc which illustrate how to set sm2-id
correctly, only GM/T 0009-2012 gives a fuzzy definition that sm2-id
would be "1234567812345678", and there is no way to get sm2-id from
certificate. In tls handshake, client/server would get a long
certificate chain from peer, we can't find any effective way to
recognize or set sm2-id for each cert.
In practical applications, we can only use the agreed fixed sm2-id
value in signature sign and verify. The 'z' value is inconvenient
in many scenarios because it couples the hash and signature process
together.
The current situation is that users can specify a custom sm2-id
through distid parameters, but cannot disable sm2-id. This patch
disables sm2-id completely by adding an optional user parameter
sm2-za:no. After disabling sm2-id, SM2 signature is similar to other
algorithms, just to sign a hash result, and does not involve how to
calculate the hash.
an early PR: https://github.com/openssl/openssl/pull/19847

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

I implemented a similar feature some time ago, and finally decided to add a new option to implement this feature on the basis of maintaining compatibility. Related discussions are here: https://github.com/openssl/openssl/pull/19847

There are different ways to get rid of the SM2 ID stuffs:

the dist id is NULL and Za is still computed;
totally disable the calculation of Za. (as what this PR intends to do)

So I suggest to leave some description in the man7 pod file to make it clear the new 'sm2-za:no' is not equal to setting a NULL dist id; otherwise the users would use this feature incorrectly. (Say, verifying a NULL sm2-id signature with 'sm2-za:no' option in OpenSSL)

There are different ways to get rid of the SM2 ID stuffs:
1. the dist id is NULL and Za is still computed;

2. totally disable the calculation of Za. (as what this PR intends to do)

So I suggest to leave some description in the man7 pod file to make it clear the new 'sm2-za:no' is not equal to setting a NULL dist id; otherwise the users would use this feature incorrectly. (Say, verifying a NULL sm2-id signature with 'sm2-za:no' option in OpenSSL)

The description about Za has been updated.

Hi @t8m , do you have any comments?

Hi @t8m , do you have any comments?

This is a quite significant change, I currently do not have spare cycles to review it.

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 61 days ago

Hi @t8m , Do you have free time to review this PR recently? I'll do rebase if necessary to resolve conflicts.

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 61 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 92 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 123 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 154 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 185 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 216 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 247 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 278 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 309 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 340 days ago

We really need an independent review from someone using the SM2 algorithm to proceed with this.

I've marked this as inactive to be closed at the end of 3.4 development cycle unless we get the independent review by that time.

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 60 days ago

This PR is in a state where it requires action by @openssl/committers but the last update was 30 days ago

This PR is in a state where it requires action by @openssl/committers but the last update was 61 days ago

This PR is in a state where it requires action by @openssl/committers but the last update was 92 days ago


fix issues in the console when creating a new app

There are errors in the console after installation of dependencies during npm start init process
There is a need to fix the issue e.g No repository field, No Licence field, etc.

@ezkemboi I'll take a look at this.

#89 also fixed this issue.


Add German language support to footers

Hi there :)
Thank you for creating this template! With this humble PR, I wanted to propose adding German language support to the CV and cover letter. Let me know if anything should be further adjusted or if the commit message should be changed, for example.

Hi @JKRhb thanks for the PR!
While your code seems good to me, may I know the specific reason why you wanted to add a German footer to the example repo? The template submodule allows adding any key-value pair in the footer array, as long as it is legitimate.
The metatdata.typ file here is just for demonstration purpose in my intention, as any user will want to modify it for putting in their information.
Do tell me what you think or if there is something I missed out!

Hi @mintyfrankie, thank you for your quick response! :)

While your code seems good to me, may I know the specific reason why you wanted to add a German footer to the example repo? The template submodule allows adding any key-value pair in the footer array, as long as it is legitimate.
The metatdata.typ file here is just for demonstration purpose in my intention, as any user will want to modify it for putting in their information.

Oh, yeah, you are totally right, adding another language to this example repo is indeed somewhat redundant then – I think I did not fully realize that the repo is only intended to illustrate the submodule's usage 😅 I would then simply close this PR :) Maybe you can use it as feedback, though, that you have an international userbase ;)

Well noted for your comments! Make this CV template more international is also one of my goals :)
Just to let you know that I've patched a new commit that provides better explanation in comments in the metadata.typ. Hope that people will understand better how it works.
Don't hesitate to contribute if you have any new idea!


Add padding method to image.rs

Closing for a little, was unprepared

And we're back!

I have yet to test the most recent commit locally


python310Packages.python-homewizard-energy: 1.3.1 -> 1.7.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.python-homewizard-energy is: Library to communicate with HomeWizard Energy devices
meta.homepage for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy
meta.changelog for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy/releases/tag/v1.5.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.5.0 with grep in /nix/store/lnygwiwl544lafhhvabng3yrz83zsyhs-python3.10-python-homewizard-energy-1.5.0
found 1.5.0 in filename of file in /nix/store/lnygwiwl544lafhhvabng3yrz83zsyhs-python3.10-python-homewizard-energy-1.5.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.homewizard
python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/lnygwiwl544lafhhvabng3yrz83zsyhs-python3.10-python-homewizard-energy-1.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.python-homewizard-energy https://github.com/r-ryantm/nixpkgs/archive/388220433b1f33bb2638bce2fded1e014b050fd9.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/lnygwiwl544lafhhvabng3yrz83zsyhs-python3.10-python-homewizard-energy-1.5.0
ls -la /nix/store/lnygwiwl544lafhhvabng3yrz83zsyhs-python3.10-python-homewizard-energy-1.5.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

home-assistant-component-tests.homewizard

2 packages built:

python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Maintainer pings
cc @fabaff for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.python-homewizard-energy is: Library to communicate with HomeWizard Energy devices
meta.homepage for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy
meta.changelog for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy/releases/tag/v1.6.1
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.6.1 with grep in /nix/store/l9jn1xrczi8qzxjjnhna5p54l3qgy95i-python3.10-python-homewizard-energy-1.6.1
found 1.6.1 in filename of file in /nix/store/l9jn1xrczi8qzxjjnhna5p54l3qgy95i-python3.10-python-homewizard-energy-1.6.1

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.homewizard
python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/l9jn1xrczi8qzxjjnhna5p54l3qgy95i-python3.10-python-homewizard-energy-1.6.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.python-homewizard-energy https://github.com/r-ryantm/nixpkgs/archive/ea4fe6d6ca15620ee5d05eeab862f80e159faa60.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/l9jn1xrczi8qzxjjnhna5p54l3qgy95i-python3.10-python-homewizard-energy-1.6.1
ls -la /nix/store/l9jn1xrczi8qzxjjnhna5p54l3qgy95i-python3.10-python-homewizard-energy-1.6.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

home-assistant-component-tests.homewizard

2 packages built:

python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Maintainer pings
cc @fabaff for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.python-homewizard-energy is: Library to communicate with HomeWizard Energy devices
meta.homepage for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy
meta.changelog for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy/releases/tag/v1.7.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.7.0 with grep in /nix/store/dkj5xc22qf858n5m1pwv0dzwvvd30c9h-python3.10-python-homewizard-energy-1.7.0
found 1.7.0 in filename of file in /nix/store/dkj5xc22qf858n5m1pwv0dzwvvd30c9h-python3.10-python-homewizard-energy-1.7.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.homewizard
python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dkj5xc22qf858n5m1pwv0dzwvvd30c9h-python3.10-python-homewizard-energy-1.7.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.python-homewizard-energy https://github.com/r-ryantm/nixpkgs/archive/1fa87e20dddbb5e6f7df3bdf6ca774c3ccf79b16.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dkj5xc22qf858n5m1pwv0dzwvvd30c9h-python3.10-python-homewizard-energy-1.7.0
ls -la /nix/store/dkj5xc22qf858n5m1pwv0dzwvvd30c9h-python3.10-python-homewizard-energy-1.7.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

home-assistant-component-tests.homewizard

2 packages built:

python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Maintainer pings
cc @fabaff for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.python-homewizard-energy is: Library to communicate with HomeWizard Energy devices
meta.homepage for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy
meta.changelog for python310Packages.python-homewizard-energy is: https://github.com/DCSBL/python-homewizard-energy/releases/tag/v1.8.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.8.0 with grep in /nix/store/msdl9fs70np603k6wddp5m03m2nbhdh4-python3.10-python-homewizard-energy-1.8.0
found 1.8.0 in filename of file in /nix/store/msdl9fs70np603k6wddp5m03m2nbhdh4-python3.10-python-homewizard-energy-1.8.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.homewizard
python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/msdl9fs70np603k6wddp5m03m2nbhdh4-python3.10-python-homewizard-energy-1.8.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.python-homewizard-energy https://github.com/r-ryantm/nixpkgs/archive/de48d66b6e36def100a2585e3470b0d302f0925c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/msdl9fs70np603k6wddp5m03m2nbhdh4-python3.10-python-homewizard-energy-1.8.0
ls -la /nix/store/msdl9fs70np603k6wddp5m03m2nbhdh4-python3.10-python-homewizard-energy-1.8.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

home-assistant-component-tests.homewizard

2 packages built:

python310Packages.python-homewizard-energy
python311Packages.python-homewizard-energy

Maintainer pings
cc @fabaff for testing.


Add support for GHC 8.8 on windows

Currently blocked on unix-compat, afaict.
There is a PR for it already: https://github.com/jacobstanley/unix-compat/pull/42

And i've opened a pr in hackage-trustees as @bubba suggested to help the resolution: https://github.com/haskell-infra/hackage-trustees/issues/251


[QUESTION] Usage in conjunction with Feature Toggles

Question
Currently it seems to me, as if there are no types generated for anything behind a feature flag. Is that intentional?

Hi Tobias,
that is not intentional, no. Could you please give an example where I can observe this? I will then gladly look into it.
Best,
Daniel

Re-tagging as feature request.
Anything hidden behind feature flags has not been generated so far, so we have to take a look at those eventually.

As discussed, this would still be interesting for us, especially if CAP supports trunk based development with Feature Toggles a bit better.

Hi Tobias,
coming back to this, could you please describe your expectations for this feature some more? How would a model with optional feature toggles look like? Would it contain all model parts hidden behind feature toggles, even, if they turn out to be deactivated?
Best,
Daniel

Hi Daniel,
I assume that here different opinions are necessary (as I also don't know the whole of it's behaviour in CAP). In general afaik on the database the ones behind the feature flag exist. So I'd argue for putting them in as optional parameters.
Or would there be something like different types and importing based on a condition?

Hi Tobias,
as far as I understand feature flags, they can be toggled rather dynamically, while the code generation done by cds-typer is very static. So in order to be "prepared" for a user switching on a certain toggle, the model should probably be available in full? What if the model contains mutually exclusive features, like an entity that has different properties, based on whether it is used in a development environment or prod, each hidden behind a feature toggle, but would collide if included in the model at the same time?
Right now, I'm just trying to understand the expectations behind this requirement. If your requirement is to include a specific feature toggle model, have you tried explicitly passing it to cds-typer?
cds-typer "*" fts/mytoggle/schema.cds

?
Best,
Daniel

Hi @tsteckenborn,
just checking in to see if the above solution already handles your use case? 🙂
Best,
Daniel

Hi Daniel,
Sorry was OOO last week. I'm not sure if that's the best to achieve the desired effect. If I'm not mistaken whether it's the feature flag active variant or not is (or should be) already decided when reaching the ".on" (or similar) handlers. Yet I'd need to check in more detail. In the end it's also about how CAP wants to handle this going forward. More or less right now for me the story around Feature Flags doesn't really work "flawlessly" when trying to have types.

Hi Tobias,
no worries, just wanted to check!

whether it's the feature flag active variant or not is (or should be) already decided when reaching the ".on" (or similar) handlers.

"Reaching" as in "running into it at runtime"? Then that is too late for cds-typer to intervene, as it is running purely at design time. The decision whether to generate types for a feature has therefore to be made before the app is even started.
If you already know at design time that you want to enable certain features, then you can pass all relevant model files to cds-typer.
I followed the tutorial for feature toggles in CAPire and by running
cds-typer "*" fts/isbn/schema.cds --outputDirectory @cds-models

I ended up with the entity class containing the desired isbn feature:
export function _BookAspect<TBase extends new (...args: any[]) => object>(Base: TBase) {
  return class Book extends Base {
    declare ID?: __.Key<number>
    declare title?: string | null
    declare stock?: number | null
    declare isbn?: string | null
    static readonly kind: 'entity' | 'type' | 'aspect' = 'entity';
    declare static readonly keys: __.KeysOf<Book>
    declare static readonly actions: Record<never, never>
  };
}

Best,
Daniel

As discussed yesterday, fixing the underlying issue is beyond the scope of cds-typer. Which parts to include in the model is determined by the @sap/cds, specifically cds.load(...), which cds-typer just consumes.
Users can specify additional parts of the model by passing the as additional positional arguments to cds-typer, and as of today, this is a decision the users has to make, as model parts could be mutually exclusive and cds-typer has no way to solve this.
If this should change in the future, then it has to happen in @sap/cds. A respective internal issue is pending.


feat: added nextjs cheatsheet and go cheatsheet

What does this PR do?
Add resource(s) (2 Cheatsheets)
For resources
Description
Why is this valuable (or not)?
Next.js is a very famous and highly used React framework, there wasn't any next.js cheatsheet so I decided to include it in. The PDF also contains the main aspects of the framework and a quick guide.
Go is also a famous language developed by google. This cheatsheet provided by The Valley of Code is really good cheatsheet and also provides better snippets or explanation than any other cheatsheets!
How do we know it's really free?
I have a pdf of the book, of which link is provided
For book lists, is it a book? For course lists, is it a course? etc.
It is a cheatsheet
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!


[Question] Using TestHelper with codeception

Not sure if you are familiar with codeception, but if you are I was wondering if it was possible to use your test helper methods with codeception api tests.

Never used Codeception, so afraid I can't help you there. However, the package testing helpers are basically just a wrapper around Laravel's own testing helpers, which is based on PHPUnit.

Alright, guess I'll have to try and figure out if/how I can do it in codeception.

Let me know how it goes or if you meet on any issues :)


doesn't work in TabActivity

materialSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() {
@Override
public void onSearchViewShown() {
//add this line ,it works successfully
materialSearchView.setVisibility(View.VISIBLE);
}
        @Override
        public void onSearchViewClosed() {

        }
    });


Still having trouble with fastapi error message

I know this issue was discussed a couple of days ago and supposedly fixed. but every time i try to connect in google colab, I get this message:
Traceback (most recent call last):
File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 7, in
from fastapi import FastAPI
ModuleNotFoundError: No module named 'fastapi'
Can anyone help?

latest notebooks (you can grab them from the main page of the repo) :
https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast_stable_diffusion_AUTOMATIC1111.ipynb
https://colab.research.google.com/github/TheLastBen/fast-stable-diffusion/blob/main/fast-DreamBooth.ipynb

Should I delete the current notebook I have and install this one? I'm using automatic1111. What do I do with this link? Thanks!

if you click on the link it will open the new updated notebook


Add PR Template

For context, see https://clever.atlassian.net/wiki/display/ENG/Pull+Request+Templates
Please be thoughtful about whether there are some common pitfalls or requirments for effectively contributing to this repo. If so, please create checklist.

Sure, LGTM.

I defer to @schimmy for determining what would make a solid pr-template here

Hmm, since this one is public, I don't think a private JIRA link makes sense / details about how we'd roll this out internally. If we scrub those parts, LGTM


Calculate available set logic

Add this logic for faster calculation of available sets, currently bot gets disconnected if it tries to load badges of high level people (1000+) with too many badges (example 9k+)

Pull will be merged ones i preform all the necessary tests


Adding support for posting data to custom webhook URL

Suggested by Roni (on discord)
Example config:-
custom: true
custom_webook_url: http://<IP_ADDRESS>:8000/api/v1/webhook
custom_method: POST
custom_headers: '{"X-Api-Key":"XXXXX", "Content-Type":"application/json"}' # Multi header input support
custom_body: '{{data}}'

This would allow us to also format data? i.e. I'm interested in preserving the colored output from terminal -> to Slack but not sure how/where to do that.

@Regala do you example of slack supporting colored output in markdown or any format?

Ugh actually for now seems like only markdown is supported


lib/index.js bug?

Hi,
Under ver.0.9.3, I think I've found some bugs in lib/index.js file.
line 39:
    if (typeof(user_options.use_vcap_services))

I think this should be;
    if (user_options.use_vcap_services)

because, typeof(user_options.use_vcap_services) is always true.
line 42:
    var options = extend(service.credentials, user_options);

I think this should be;
    var options = extend(user_options, service.credentials);

because, whether use_vcap_services is true or not, user_options always overwrites the service.credentials. I believe you want service.credentials's values to overwrite user_options's value when use_vcap_services is true.

Tests are ok and the fix seems to be working so I'm closing this,
Thanks @zimb-hase!


Updated session usage in get_suggestions

i had to make a few changes for the get_suggesions route to work properly, the changes are in my latest pull request so we might wanna merge that one instead


Failed to fetch error in videos cabinet

error when opening video cabinet in profile

When a user has videos on old peertube servers that are already offline, fetch would not be able to get data. This happens in the video cabinet. Omitting errors that are related to offline peertube servers.


generate: Sometimes generates longer passwords than asked.

passgo generate help says:
passgo generate length=24
	Prints a randomly generated password. The length of this password defaults
	to 24. If a very short length is specified, the generated password will be
	longer than desired and will contain a upper-case, lower-case, symbol, and
	digit.

I've noticed that running passgo generate sometimes generates passwords with greater than 24 length. I've gotten: 25, 32, 37, 39.
It happens with the default passgo generate invocation, but also for other values of length. E.g., when I ran passgo generate 20 a bunch of times, I got lengths like: 24, 25, 32.
To reproduce, run go generate at least 20-30 times.
Is this a bug or intentional behavior which isn't documented?

After reading the pc.GeneratePassword code, I suspect I understand what's happening.
It keeps appending to the password until it reaches the requested length, and also has all the required letters:
// It requires generation of a string password that has a upper case
// letter, a lower case letter, a symbol, and a number.

So in some rare cases, a password of length 24 doesn't yet satisfy all those requirements, so it becomes longer.
Ironically, this is documented here:
If a very short length is specified, the generated password will be
longer than desired and will contain a upper-case, lower-case, symbol, and
digit.

I just didn't think that applied because I didn't consider 24 to be a "very short length". Maybe it'd be good to rephrase it as something like:
The generated password will contain a upper-case, lower-case, symbol,
and digit, and may end up longer than requested in order to accommodate that.

Yeah @dmitshur, it totally is documented. Maybe I could try generating more than once? Perhaps after 100 generations if it doesn't find a password that meets the requirements, it could return a longer one.

I also really hate that GeneratePassword function I wrote.


Updated android hockey sdk.

This fixes the issue described at https://github.com/bitstadium/HockeySDK-Android/pull/78

I will wait until the official release!


compiler: arcmwdt: Correct inclusion of C++ system headers

In some cases, CCAC cannot process -isystem flag for C++ headers. Usually this happens when headers contain an "include_next" directive.
MWDT R&D team advised to remove the "isystem" flag from the building process to avoid build faults.
Signed-off-by: Nikolay Agishev<EMAIL_ADDRESS>

@evgeniy-paltsev , could you please make review?
Here I'm not pretty sure about NOSTDINC - related settings.
All of them were turned off via removing
set_compiler_property(APPEND PROPERTY nostdinc_include ${NOSTDINC})
string.
But some of related setting are still present in target.cmake. Do they need to be removed too?

@kokas-a It seem to me that proper implementation should be something like this: https://github.com/evgeniy-paltsev/zephyr/tree/rff-arcmwdt-include-v0
Changes are done on top of yours branch.


Key Size limitation

LedisDb limits key size to 1024 bytes. Does this limitation apply to IceFireDB too?

LedisDb limits key size to 1024 bytes. Does this limitation apply to IceFireDB too?

Yes, we have not adjusted this parameter.

Ledisdb can use rocksdb and leveldb as underlying storage engine. rocksdb and leveldb doesn't enforce such limitation for key size. It would be nice to redesign ledisdb to release the limitation of the key length.

Ledisdb can use rocksdb and leveldb as underlying storage engine. rocksdb and leveldb doesn't enforce such limitation for key size. It would be nice to redesign ledisdb to release the limitation

Ledisdb can use rocksdb and leveldb as underlying storage engine. rocksdb and leveldb doesn't enforce such limitation for key size. It would be nice to redesign ledisdb to release the limitation of the key length.

Very good suggestion, we can add a configuration item to close this limit.


Release 5.9.0

TODOs

[x] Review the changes in the release commit
[x] Review and approve the Release Notes PR
[x] Review and approve the JavaDocs PR
[x] Review the Draft Release
[x] Review and approve this PR
[ ] Trigger the Perform Release Workflow
[ ] Once the  workflow is through, head over to the OSS Repository and log in with the credentials in the Team Password Safe. There should be a staged release. Check whether everything looks good and, if so, publish the release.

closed, as we are including one more change into this release


Not recognised as 0.17 on elm-package

elm-package install -y etaque/elm-simple-form
Error: Unable to find a set of packages that will work with your constraints.

Any idea what's happening?

Hello!
Yes, I didn't publish it for 0.17 yet because I was evaluating a rename. Now I'm not sure it's worth it, so publishing as is.


Bad row schemas

[x] payload.headers data model => [String]
[x] payload.body data model, could be an object? => no
[x] processor.platform could be an enum? => removed
[x] payload.path pattern? => removed
[x] more top-level payload properties?
[x] tracker_protocol_violations.failure.messages data model
[x] schema_violations.failure.messages data model (depends on the iglu client)
[x] enrichment_failures.failure.messages data model
[x] payload data model for schema_violations and enrichment_failures: http payload (same as the other bad row types) or tracker protocol + payload metadata (headers, content type, etc) and then reconstruct the payload during recovery => tracker protocol + payload metada
[x] payload data model for schema_violations and enrichment_failures as tracker protocol + payload metadata
[x] storage_loader_failure.payload data model
[x] should storage_loader_failure.payload.id rather be in storage_loader_failure.failure.data or storage_loader_failure.processor?
[x] best way to identify an enrichment? vendor, name, version (?), id (?)
[x] trackerProtocolPayload as a name?
[x] enrichment configuration in the enrichment failure? (with secrets removed) => id for now
[ ] new schema for adapter issues
[ ] make processor a map? (because of sce + enricher)

Is this PR stale ?

no, I'm just working on other things atm

@yalisassoon @chuwy pushed new versions which are a lot more feature complete, feel free to review :+1:

Hmm then I have a general question, just to clarify if I missunderstood something:
Currently the bad row format schema is like this: ( or how is this schema called ? schredded event schema ? )
  "_index": "bad",
  "_type": "bad",
  "_id": "<id>",
  "_version": 1,
  "_score": null,
  "_source": {
    "line": "<base64 blob>",
    "errors": [
      {
        "level": "error",
        "message": "error: "
      }
    ],
    "failure_tstamp": "2019-03-28T13:10:27.019Z"
  },
  "fields": {
    "failure_tstamp": [
      "2019-03-28T13:10:27.019Z"
    ]
  },
  "sort": [
<PHONE_NUMBER>019
  ]
}```

my main problem is that this is not searchable;
So this will be replaced by `schemas/com.snowplowanalytics.snowplow.badrows/schema_violations/jsonschema/1-0-0` is that correct?

This will be replaced by one data fitting one of the schema defined in this pr according to the failure that happened, this is detailed in the rfc: https://discourse.snowplowanalytics.com/t/a-new-bad-row-format/2558

Yes understood;
But as I also mentioned in the RFC, from a user perspective, pulling in some properties form the main event to the context events would be extremely helpful. I can see that this will be probably a pain to implement but as pointed out here pulling in the app_id would solve a lot of problems.
While the debugging with the suggested schema_violation is better, it would still be hard to figure out if multiple user apps / platforms use the same unstructured events producing errors.

The app_id will be part of a schema violation: https://github.com/snowplow/iglu-central/pull/882/files#diff-e552d9f744e44db7e869d0771da0b645R136

:bowing_man: thanks for pointing it out, appreciated

Updated the schemas, here's what changed:

rm storage loader failure => better left to Anton
collector payload format violation:

payload is a simple string, we can't assume structure regarding what's in the incoming stream
more detailed failure structure

enrichment failures:

payload is a partially enriched event

schema violations:

added cases to the messages (not json, not sd, schema criterion)
payload is a partially enriched event

tracker protocol violation:

small modifications to the payload to fit the implem
more detailed failures reusing iglu's client error

add adapter failure


Create scripts to help with using Kai to migrate Coolstore from Java EE to Quarkus

The intent of this issue is to help us create scripts to aid usage of Kai in migrating the Coolstore application in https://github.com/konveyor-ecosystem/coolstore
This is intended to be done from CLI (not IDE), we want to create the API requests just like the IDE will and send to REST API and collect responses.  Think of this as a light way of automating the app's migration with Kai.
The expectation is that this will not be fully sufficient, we are assuming there will be manual steps required.  We want to get an idea of how much help does Kai provide, where are the warts, how can we move closer to making this as helpful as possible so the migrator doing the migration has less work to do.
Rough idea:

Create a directory 'example' to place our scripts for 'playing' with Kai to use it to help
Use Kantra to analyze Coolstore to find the violations present
Do a light parsing of the analysis data to summarize what we are working with, i.e. summarize Files impacted
Create a configuration file that specifies violations of interest we want to use Kai to help us with
Create a client driver that will parse the analysis data and the configuration file and iterate over fixes

For each 'impacted file' in the source app

Use Kai to generate a fix for the file.

Unsure how this will work when we have multiple violations in same file, we may need to batch all incidents per file

Save the generated fix to overwrite the impacted source file

Attempt to compile to Quarkus, find issues and fix.

Ideally we can differentiate what work Kai created and what work we needed to manually change until we reached a successful migration.  Probably want to segregate the kai output to a separate branch/commit, something so we can do a diff from how far Kai brought us and how much we needed to do manually.

Create a means of assigning a metric of 'how well' we performed, this may be able to leverage the 'solved' branch in conjunction with our manual migrated changes.

The ideal end state of all of this in a future time is that we can be given an app in Java EE, run analysis, use Kai, and the majority of the application is migrated to Quarkus.

Example server run with PR #93 against gpt-3.5-turbo
server console:  https://gist.github.com/jwmatthews/747f909b5c1267e11507ac9b117c05ab
coolstore migrated output:  https://github.com/konveyor-ecosystem/coolstore/tree/gpt-3.5-turbo_mar25a
Comparison of coolstore migrated content for granite13b:
https://github.com/konveyor-ecosystem/coolstore/tree/granite13b_mar24a

Closing as we addressed this need with example/run_demo.py


OS X support almost done. Fixed a crash using Glib::Dispatcher, also …

Actually, Glib::Dispatcher only made the code simpler and resulted in correct syntax highlighting, but the "std::min(buffer()->get_text().size(), raw_size)" fixed a crash.

I was thinking about a solution for this. I was thinking about creating a event manager for the entire project, for instance making certain objects that use threading inherit some sigc type so messaging is easier. But i quess Dispatcher works in a similar way?

Yes as I understand it the Glib::Dispatcher() merely tells the gui-main-thread to queue this function, much like the signals are queued (for instance signal_end_user_action()). This should be the correct way to program multithreaded applications in GTKMM now. Signals and Glib::Dispatcher() are, in this way, certain not to execute in parallell as long as the Glib::Dispatcher object is created in the main thread.

Totally forgot about the line numbers already in place. Activated line numbering in gtksourceviewmm instead, but the previous line numbering should be removed (I don't see this in OS X).

That last commit might be abit ugly. Hopefully nothing important got deleted!


fix the bug of mention links.

This PR is associated with #866.
The reason why the bug happens is that the body starts with a html tag.
Therefore, I created one method called repositionMention.
It verify the body and move the mention at the beginning of the body if the body starts with a html tag.
It executes before either creating, editing, and previewing the reply.
// users' input
<html> @wadakatu

// output
@wadakatu <html>

I am not sure if this fix is the best.
Please let me know, if there is a better solution to fix this bug.
Thank you.

Hi there. Thank you for your work on this. I do believe this isn't the path we want to take here as moving the mention isn't a good idea as it's not what the user has entered.
I've wrote a failing test for the issue that pinpoints it to the markdown converter. We'll most likely need to tweak the regex.
https://github.com/laravelio/laravel.io/pull/872


Add required_value property to question YAML and schema generator

We wish to have a boolean question that you can only answer "yes" to, otherwise validation should fail.

Add required_value property to questions schema for boolean questions
If a required_value is provided for a boolean question, then we wish to add this validation to a generated schema using the enum property.

Very nice 👍
Let's add the new field to the README and then it's good to go.


Swift --protocol can't use custom protocol

I try to add WCDBSwift.TableCodable and HandyJSON in converted model, but quicktype give me an Error: Unknown value WCDBSwift.TableCodable,HandyJSON for option protocol.
Is it any possible that I can add custom protocol automatly in the future? If yes, maybe you can consider to add protocol in a extension?

Great idea! Please consider contributing this. We do not keep feature requests open as issues, however, so I will close this.


Call setEndpointIdentificationAlgorithm() once Android API 24 is our minimum

https://android-review.googlesource.com/#/c/243503/1/android/main/java/com/squareup/okhttp/internal/Platform.java

I took a look into this. Setting setEndpointIdentificationAlgorithm("HTTPS") ends up causing Android’s NativeCrypto to do hostname verification during the TLS handshake. That isn’t supported until API level 24, and I think calling it reflectively could lead to verification to be skipped in some cases.
If/when our minimum requires API level 24 we should call setEndpointIdentificationAlgorithm("HTTPS") and delete our own HostnameVerifier. Until then it’s simpler and safer to just always do hostname verification in OkHttp.

@swankjesse do you still want this?

I don't think the tiny benefit is worth the tiny cost.


query for reset button

Hello! Can you add an option to attach query to reset button?
My case is: I have Data manipulation widget table with parameters, by clicking on Submit button with POST query I connect to REST API with values of all parameters and get the prediction of ML model.
What I want to add: add a query/ area for it for clicking reset button. If I had it,  I can refresh my parameters data from database (only when I want it, by clicking the button).
I tried to use this query as initial one but my data manipulation panel always refreshes even I don't want it. For instance, It is refreshed after clicking submit button, but I don't want such behavior from it.

@agriii927 Thank you for submitting the feature.
I will look into it and will get back to you if I have any questions.

Custom Code added to the Reset button in upcoming release 3.1.0.


Hardware security module-based key management solutions are not supported

The user is expected to provide the master key mnemonic for deployment flexibility (https://github.com/api3dao/airnode/issues/242).
As an alternative, allow the user to use a private key that is stored in a hardware security module-based key management service such as AWS KMS. Note that this will practically result in vendor lock-in, and thus should be preferred only by very specific use-cases.

In case we want to implement this for multiple providers, we have:

GCP: https://cloud.google.com/security-key-management
Azure: https://azure.microsoft.com/en-us/services/key-vault/

This will be especially useful for HTTP signed data gateway and relayed RRP/PSP users. There is increasing support for ECDSA by cloud providers since this issue was created.


support HTTPHeaderFilter.Set after choosing backend

What would you like to be added:
The capacity to set header after choosing backend.
Why this is needed:
For example, the follow rule:
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: simple-route
spec:
  rules:
  - filters:
    - type: RequestHeaderModifier
      requestHeaderModifier:
        set:
          - name: env
            value: v1
    backendRefs:
    - name: foo-v1
      port: 8080
      weight: 90
    - name: foo-v2
      port: 8080
      weight: 10

Is there any way to set header env=v1 when call foo-v1, and set header env=v2 when call foo-v2?

Hey @robberphex, the API technically allows this, but I'm not sure if any implementations support this. BackendRefs on HTTPRoute support filters, but support at that level is only implementation-specific:
https://github.com/kubernetes-sigs/gateway-api/blob/f883de997b88dd6ee138930198542da8a9b2f634/apis/v1beta1/httproute_types.go#L1039-L1047
So technically something like this should be representable in the API, but unsure which implementations support it:
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: simple-route
spec:
  rules:
  - backendRefs:
    - name: foo-v1
      port: 8080
      weight: 90
      filters:
      - type: RequestHeaderModifier
        requestHeaderModifier:
          set:
            - name: env
              value: v1
    - name: foo-v2
      port: 8080
      weight: 10

Contour supports the above ^, but yep exactly this is implementation-specific support

Hey @robberphex, hopefully that answered your question. I'm going to close this out since I believe the API supports what you're looking for, but feel free to reopen if we missed anything.


Having trouble figuring out how to mock Model with Jest

I'm having trouble figuring out how I would mock Agreement.query().where().where() in a  proper way. Here is the code with two models, Agreement and AgreementHistory.
const { Model, snakeCaseMappers } = require('objection');
const knex = require('knex')({
  client: 'postgresql',
  connection: process.env.MY_CONNECTION_STRING
});
Model.knex(knex);

class Agreement extends Model {
  static get tableName() {
    return 'agreement';
  }

  static get idColumn() {
    return 'agreement_id';
  }

  static get columnNameMappers() {
    return snakeCaseMappers();
  }
}

const getAgreements = async (filterOptions = {}) => {
  const { customerId, status } = filterOptions;
  const query = Agreement
    .query()
    .where({ customer_id: parseInt(customerId) });

  if (status) {
    query.where({ status: status });
  }

  return await query;
};

module.exports =  {
  getAgreements
};

/__mocks__/agreement.js
const mock = {
  query: jest.fn().mockReturnThis(),
  where: jest.fn().mockImplementation(() => {
    return {
      where: jest.fn().mockReturnValue('Hello World')
    }
  })
};
module.exports = mock;

The above mock could get ugly really fast if there are n-many where() calls. It's a bit confusing because Objection allows the nice chaining syntax, but I am insure how I would create the mocks in Jest to support this.
Test File.
jest.mock('../models/agreement');
const Agreement = require('../models/agreement');

const repository = require('../agreementRepository');
  describe('getAgreements', () => {
    it.only('should allow filtering by customerId and status (if provided)', async () => {
      const results = await repository.getAgreements({ customerId: 555, status: 'Accepted' });
      expect(Agreement.query).toHaveBeenCalled(); // This test passes
      expect(results).toEqual('Hello World'); // This one fails. Error output below
    });
});

Error output from test above
Expected: "Hello World"
Received: {"where": [Function mockConstructor]}

Please let me know if this should be posted in the Jest issues page instead. Thanks.

Follow up:
So I was able to skip hitting the database  using this
const spy = jest.spyOn(Agreement, 'query').mockImplementation(() => {
  return Model.query().resolve('Hello World');
});

And now I am wondering how I would verify that "where()" is called twice if I provide a customerId and status?

You can mock the where method too. Simple as that.
In general I'd advice you not not mock your db. The tests don't really test much of anything for most backends if you do.

@koskimas Would you be able to provide an example of spying on where? For the life of me, I can't figure out how to do it while skipping the call to the database.
I would ideally like to have

query() return the provided dummy value
Be able to verify that where() was called by using jest's spy functionality

@armandAkop You need to mock the prototype of the QueryBuilder class. Jest probably has examples of that

We ended up creating a "BaseModel" class which extends Model, then in our mocks we did this
let returnValue = null;

class BaseModel {};

/**
 * Sets return value on thenable module.
 * @param {*} value
 */
BaseModel.mockReturnValue = (value) => {
    returnValue = value;
};

BaseModel.query = jest.fn().mockReturnThis();
BaseModel.insert = jest.fn().mockReturnThis();
BaseModel.insertGraphAndFetch = jest.fn().mockReturnThis();
BaseModel.insertGraph = jest.fn().mockReturnThis();
BaseModel.returning = jest.fn().mockReturnThis();
BaseModel.where = jest.fn().mockReturnThis();
BaseModel.withGraphFetched = jest.fn().mockReturnThis();
BaseModel.findById = jest.fn().mockReturnThis();
BaseModel.modifiers = jest.fn().mockReturnThis();
BaseModel.orderBy = jest.fn().mockReturnThis();
BaseModel.startTransaction = jest.fn();
BaseModel.then = jest.fn((done) => { done(returnValue); });

module.exports = BaseModel;

And this seemed to work fine for our case.


Engine tokens are not used with Add-PnPDataRowsToSiteTemplate

When using Get-PnPSiteTemplate, in the template, tokens are used to make the sitegroups more generic :

{groupsitetitle}
{groupsitename}
{associatedownergroupid}
...

Works like a charm, however those tokens are not used when adding datarows with Add-PnPDataRowsToSiteTemplate to the same template, making it inconsistent and unusable when creating a new site.

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

ID: e5b1f7fc-f25b-3ae7-550f-dbda983bb508
Version Independent ID: 4dc444d7-ca83-1930-61a8-73e3cd75d29f
Content: Add-PnPDataRowsToSiteTemplate (PnP.Powershell)
Content Source: sharepoint/sharepoint-ps/sharepoint-pnp/Add-PnPDataRowsToSiteTemplate.md
Service: sharepoint-powershell
GitHub Login: @pamgreen-msft
Microsoft Alias: pamgreen

Hello @guillaume-kizilian
how are you?
Even though the PnP documentation articles are on this repository, I need to kindly redirect you to open PnP cmdlets issues/pull requests here : https://github.com/PnP/PowerShell/, in that repository, where a member of the PnP community will be able to correct the article/review your PR with your feedback.
The documentation for PnP cmdlets is then synced from that repo into this one.
Thank you!


Update cli flag to use --format=json as --json is deprecated

See https://github.com/ember-template-lint/ember-template-lint/pull/2193
I think this would ideally be combined with some kind of version check to conditionally change the flag.

Hi thanks for the pr.
I think you can use templateLintPackage.versionStr and just check if the first number is >= 4 to validate the version

Cool if I run into a project using a linter I'll look into using a older linter version than I'll look into using templateLintPackage.versionStr hopefully everyone is just using the new template linter though 🤞 .


Add ?url option

This new boolean option makes it possible to require() a worker and get back its compiled URL.
This is immensely useful when additional options are needed to be passed to the constructor.
This PR contains a:

[x] new feature
[ ] test update

Motivation / Use-Case
This supports various cases where one needs to compile worker code via require(), but where the instantiation of the Worker needs to remain separate. Rather than worker-loader creating a Worker factory module, it simply outputs a module where the default export is the compiled worker's URL (asset url).
Breaking Changes
None - it's under a new option/flag.
To try this out locally: npm i developit/worker-loader#2.0.0-url

Sorry, I think it is out of scope this loader, anyway feel free to open a new issue and we will have discussion about this. Close due inactivity and you can pass options to worker using the new version of worker-loader (ETA is this week)


How to generate 3D chart

Is it possible to make 3D chart using react-charjs-2 with other 3rd party library.

@bhautik11 please issue a feature request with Chart.js directly.


Cannot use LogsApi#list_logs

Describe the bug
I'm trying to query logs using the logs_api & logs_list_request model from your repository.
When using the sample code in https://github.com/DataDog/datadog-api-client-ruby/blob/v1.7.0/examples/v2/logs/ListLogs.rb, it is raising an error.
/some/path/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/datadog_api_client-1.7.0/lib/datadog_api_client/v2/api/logs_api.rb:133:in `list_logs_with_http_info': undefined method `[]' for #<DatadogAPIClient::V2::LogsListRequest:0x000055d3a7a87c00 @filter=#<DatadogAPIClient::V2::LogsQueryFilter:0x000055d3a7a87f20 @from="2020-09-17T11:48:36+01:00", @indexes=["main"], @query="datadog-agent", @to="2020-09-17T12:48:36+01:00">, @page=#<DatadogAPIClient::V2::LogsListRequestPage:0x000055d3a7a87cf0 @limit=5>, @sort="timestamp"> (NoMethodError)

It looks like your library is broken or the example is wrong.
To Reproduce
Steps to reproduce the behavior:

Execute the code from https://github.com/DataDog/datadog-api-client-ruby/blob/v1.7.0/examples/v2/logs/ListLogs.rb
It isn't working

Expected behavior
I can request logs using the list logs API.
Environment and Versions (please complete the following information):
ruby 3.0.2 with datadog_api_client 1.7.0
Linux  5.16.12-arch1-1 #1 SMP PREEMPT Wed, 02 Mar 2022 12:22:51 +0000 x86_64 GNU/Linux

Hi,
This is a generated example that's wrong indeed. It needs to read:
p api_instance.list_logs({body: body})

We'll look into fixing it, thanks.


What dashboard does the SampleScreenShot come from ?

Hello Guys,
Is the sample screen shot coming from one of the sample dashboards ?
Thansk,
Fab.

Hi Fababal,
Yes -- the sample screenshot is from the workbook output by running the "Apache" plugin.
Let us know if you have any other questions!

Thanks a lot for your work and for your answer.


TeamMusk vs TeamMuskScepsis balance tracker

Is your feature request related to a problem? Please describe.
Yes! Ever since the team musk and musk scepsis channels were merged, it's totally unclear where the needle points in the balance of the force.
It was never clear anyway to start with, because skepsis people were lurking in the musk channel and vice versa.
The matter must be settled !!!
Describe the solution you'd like
Basically we need to track 2, maybe 3 counters.

team musk membership
team musk skepsis membership
team "musk who?" ... for people who couldn't care less

A few associated business rules & side features

With an inidividual discord account, you can only push one of the counters up. E.g membership of these teams should be mutually exclusive
the total counts of each team should be publicly available. Up for discussion if the full membership list of each team should also be public or not.

Describe alternatives you've considered
Everyone should join team Musk. But changing minds can sometimes take years, or even generations!
Additional context
Maybe this can be implemented with Discord "Roles", but I don't know if they can be made mutually exclusive. It's discussed here but some of it is over my head:
https://www.reddit.com/r/discordapp/comments/7u9t49/mutuallyexclusive_selfassignable_roles/

Would propose these commands:
!musk - makes you member of team musk (will warn to switch allegiance)
!muskscepsis - makes you member of muskscepsis (will warn to switch allegiance)
!muskwhocares - removes you from either team
!muskcount - shows the counter for both teams


ExpiredKeyMapError on geoguessr-clone.github.io

Getting the following error when trying to play via geoguessr-clone.github.io
Google Maps JavaScript API error: ExpiredKeyMapError
https://developers.google.com/maps/documentation/javascript/error-messages#expired-key-map-error

The game prod is temporary closed because the API reached the req/mo limit. You can try to run the app with your own key, all the instructions are in README


SR-8572: Rework OperationQueue.isSuspended to stop suspending underly…

…ing DispatchQueue

Suspending the underlying DispatchQueue causes issues when an app needs to
use the same DispatchQueue for scheduling work from multiple OperationQueue's
and control which OperationQueue's are suspended or not

This needs to be tested against master please. @parkera @spevans Thanks!

@swift-ci test and merge


HikariCP as JNDI Datasource in Weblogic

HikariCP as JNDI Datasource #8
I have trying to test HikariCP as jndi datasource, but i cannot find the way to add it as jndi datasource in weblogic.
If it's possible can you provide the configuration or if not can you add this feature ?

Please ask this question on stackoverflow.  HikariCP supports JNDI deployment, but we have no experience with WebLogic configuration.


consistent page transitions

Closes https://github.com/ZebraDevs/Zebra-Iota-Edge-SDK/issues/14
Current page will fly off-screen left when navigating to the next page and flies off-screen right when navigating back in history revealing the target page underneath
Fixes z-index issues

I am still not convinced, relying on getComputedStyle is a good practice.
We put onhold and will try to resume it later if we find time

@jmcanterafonseca-iota Latest commit removes usage of getComputedStyle


Request Features in ASP.NET Core needs a sample project with compiling code.

Request Features in ASP.NET Core needs a compilable sample project with actual code in order to be useful.

@Rick-Anderson I took a look at doing this one today and I think I'll do it next weekend. I started an example that I was going to show how to use the provided request features in middleware using context.Features.Get() and context.Features.Set(), and then implement a simple custom server feature but I haven't finished reverse engineering the syntax to register a custom feature from the source code as described in the Documentation. Hopefully next Saturday or Sunday I'll have time.

@user135711  no problem, next week is fine.
@Tratcher  who can provide code to register a custom feature from the source code

Something like this?
https://github.com/aspnet/Session/blob/06f473724870cd4704ab48388d80ffdaddb0f630/src/Microsoft.AspNetCore.Session/SessionMiddleware.cs#L101-L111

@Rick-Anderson You're going to have to assign this to someone else. Landlord e-mailed me today saying he was doing unnecessary maintenance that I was going to pay for so I'm busy searching for a better place.

@user135711  OK, thanks. Maybe you can do it in a few weeks.

@Rick-Anderson Sure, the synchronization context has been saved and whenever I get caught up I'll try and post a delegate sample on the Github thread where I left off.

@user135711 	do you have a sample?

@Rick-Anderson Feel free to reassign these if you need them now. I'll see what I can do this upcoming week otherwise. The code sample Tratcher provided was the part I already understood. The more interesting part that I wanted to know how to do and may be an example too advanced for my time allotment was create and register a custom feature that doesn't already exist.

Additionally, middleware can add to the feature collection established by the server. Existing features can even be replaced by middleware, allowing the middleware to augment the functionality of the server. Features added to the collection are available immediately to other middleware or the underlying application itself later in the request pipeline.

I'll have to look at the code again to see how it's done for the existing features and get my brain back in ASP mode.

@Rick-Anderson Sometime in the next few weeks I'll likely have time to do this one and #6130. Been busy with stuff that I finished.


Api: Rework API for Yatagan loaders and reflection setup.

Yatagan EP is now defined a single time and sits in api:public, along with the implementation for loading compiled graphs. It can delegate to reflection backend (via ImplementationLoader interface)
if it is present in the runtime classpath (api:dynamic).
Reflection-specific API is now a separate thing, YataganReflection,
that sits in :api:dynamic.
api:compiled is now an empty artifact left for some degree of compatibility.
With these changes it's now possible to access the Yatagan EP without
choosing the specific backend, i.m. loader always tries to load
compiled implementations optionally falling back to reflection,
if it's present in the runtime classpath.
As this design was implemented with library development in mind, it's
now very important to keep Yatagan loader being able to load
implementations generated by earlier versions of Yatagan's codegen.
For that purpose a special LoaderCompatibilityTest is introduced.
Yatagan 1.2.0 already broke create() loader compatibility, so
this CL fixes that with a workaround.
Closes #30

Will edit the docs in #20

Replaced 1.2.0-rc1 with a release version in tests.


attaching documents that open in browser

Hi there! this is probably a pretty basic question I'm very new to this. I was hoping to attach a pdf link that would be openable in another browser.  I had a look at this: https://stackoverflow.com/questions/30745981/opening-pdf-in-a-browser-with-github-pages
But it didn't work for me. Is there anyway to do this easily?
Many many thanks!

Try replacing spaces with dashes or underscores would probably work then


do not send information about invisible entities

Prevents sending entity information when invisible attribute of NPC is set to true.

Thank you!


System.Net.Http.HttpClient always fails on first attempted connection

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
This is a re-report of Issue #19486, which was resolved for inactivity but still persists in 7.4.0.  I have golfed the problem down to the following minimum code example.

PS> $client = New-Object -TypeName System.Net.Http.HttpClient
PS> $r1=$client.GetStringAsync('http://www.google.com')
PS> $r1.Status
Faulted
PS> $r1.Exception.InnerException.InnerException.Message
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
PS> $r1.Exception.InnerException.InnerException.InnerException | Select SocketErrorCode,ErrorCode
SocketErrorCode ErrorCode
ConnectionReset     10054
PS> $r2=$client.GetStringAsync('http://www.google.com')
PS> $r2.Status
RanToCompletion

Expected behavior
Should connect the first time.

Actual behavior
Always fails on the first attempt to connect to a site.

Error details
No output.

Environment data
Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

So this looks like an issue with .NET, not PowerShell ( more on that in a minute )
You are calling an xxxxAsync method, GetStringAsync which returns an ITask. You need to await ( or equivalent ) for the result.
The Async methods 'run in background' ( actually they don't, it is a form of cooperative multitasking), you are asking for the result before it has completed.
So the good news is that nothing is broken if you abide by the asynchronous programming techniques and use await.
The bad news is that PowerShell is fundamentally not designed for asynchronous programming.
The other good news is that given you are doing PowerShell programming then use the Web cmdlets such as Invoke-WebRequest  for invoking web requests

I'm sorry if I tried to drill too far down the object stack.  It doesn't matter about the Async in this case. I get the same result with any HTTP or HTTPS connection method:
PS> Invoke-WebRequest http://www.google.com
Invoke-WebRequest: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..

PowerShell 7.4.0
PS> Invoke-WebRequest -Uri "http://www.google.com"

StatusCode        : 200
StatusDescription : OK
Content           : <!doctype html><meta
                    content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta
                    content="/images/branding/googleg/1x/…
RawContent        : HTTP/1.1 200 OK
                    Date: Wed, 29 Nov 2023 22:08:43 GMT
                    Cache-Control: max-age=0, private
                    Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src
                    'nonce-2WayZcovNOBhWeuRFFIqjg…
Headers           : {[Date, System.String[]], [Cache-Control, System.String[]], [Content-Security-Policy-Report-Only,
                    System.String[]], [Server, System.String[]]…}
Images            : {@{outerHTML=; tagName=IMG; alt=Google; height=92;
                    src=/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png;
                    style=padding:28px 0 14px; width=272; id=hplogo}}
InputFields       : {@{outerHTML=<input value="en-GB" name="hl" type="hidden">; tagName=INPUT; value=en-GB; name=hl;
                    type=hidden}, @{outerHTML=<input name="source" type="hidden" value="hp">; tagName=INPUT;
                    name=source; type=hidden; value=hp}, @{outerHTML=<input name="biw" type="hidden">; tagName=INPUT;
                    name=biw; type=hidden}, @{outerHTML=<input name="bih" type="hidden">; tagName=INPUT; name=bih;
                    type=hidden}…}
Links             : {@{outerHTML=Search; tagName=A; class=gbzt gbz0l gbp1; id=gb_1;
                    href=https://www.google.co.uk/webhp?tab=ww}, @{outerHTML=Images; tagName=A; class=gbzt; id=gb_2;
                    href=https://www.google.com/imghp?hl=en&tab=wi}, @{outerHTML=Maps; tagName=A; class=gbzt; id=gb_8;
                    href=http://maps.google.co.uk/maps?hl=en&tab=wl}, @{outerHTML=Play; tagName=A; class=gbzt; id=gb_78;
                    href=https://play.google.com/?hl=en&tab=w8}…}
RawContentLength  : 51173
RelationLink      : {}

I tried

Invoke-WebRequest http://www.google.com
Invoke-WebRequest "http://www.google.com"
Invoke-WebRequest -Uri "http://www.google.com"

and they all worked

It works just fine for me in PowerShell 5 on the same machine and it used to work in PowerShell 7 up until about somewhere in 7.2.x

I would validate your installation of PowerShell 7, completely remove it and confirm you don't have multiple copies. Then install a self-contained version of PowerShell ( eg the MSI ) which contains the dotnet runtime. Make sure you don't have unexpected modules folders on the PSModulePath

@mkellen1, I suggest first narrowing down whether this is indeed a PowerShell problem or a .NET problem:
The fact that the problem also happens with direct use  [System.Net.Http.HttpClient] points to the latter.
If you still suspect that PowerShell is somehow to blame or at least part of the problem, I suggest doing the following:

Create a .NET 8 console application in C# with the translation of the code that produces the problem in PowerShell.

Run this application from outside PowerShell, and see if there's any difference in behavior.

If not, you should report the issue in the .NET repo.

I get the same behavior with "-DisableKeepAlive." I get the same behavior working remotely or in the office. I can even replicate it completely off network using a localhost web server. I can also reproduce it in Windows Subsystem for Linux (kali) on the same box.

actually under mono in the kali WSL2

Alas that doesn't really help PowerShell based on .NET Core and just adds 3 additional layers of confusion.
I suggest download the .NET SDK 8.0 on Windows and demonstrate the problem on Windows side by side with it working in PowerShell 5.1.
You say it stopped working on PowerShell 7.2, that used .NET SDK 6.0

Now it may be that some server component is actually resetting the connection, or closing it early. Unfortunately it does not mean that Invoke-WebRequest may be able to automate any retry.
The existing -MaximumRetryCount parameter allows retries for specific status code ranges. However if the connection was terminated before the status code was received you can't make any claim as to what the status value actually was.
Perhaps the lower level code can retry if the connection failed, but if the connection succeeded and the body was sent, then if the connection was terminated before the response was received you do not know if the request was successful or not.
So this may require application level retry of an operation. Just because you are writing PowerShell code does not mean that all partial failure scenarios disappear.

@rhubarb-geek-nz, your recommendation to use a .NET 8 SDK application to reproduce the issue was sound (Mono is an entirely separate issue):

Once we know whether it occurs only there, we'll know what the appropriate repo is  in which to pursue this further.

The lower-level angle was covered by @jborean93  in the original issue, but the fact that a change in PowerShell and/or .NET version made a difference warrants narrowing it down to which  of the two environments - PowerShell or .NET, if any - accounts for the change.

I'm a bit confused which PowerShell used which version of .NET. Is PowerShell 5 on .NET 6 or .NET 5?

PowerShell 5.1 .NET Framework 4.8

PowerShell 7.0 netcoreapp3.1
PowerShell 7.1 net5.0
PowerShell 7.2 net6.0
PowerShell 7.3 net7.0
PowerShell 7.4 net8.0

Aah thanks. The internal retry policy of HttpClient was changed in .NET 6 -- see full discussion in https://github.com/dotnet/runtime/issues/60644. The recommendation is do the application-level retries (I believe, it was mentioned above as well).
It aligns with the problem becoming visible in PowerShell 7.2.

@mkellen1, you should post this at https://github.com/dotnet/runtime/issues/95487.
Now that we know that the problem is at (at least) the .NET level, the discussion should continue there, and the maintainers here should tag this as "Resolution-External".


GH-4427: Don't use deprecated Mockito API

GitHub issue resolved: #4427
Briefly describe the changes proposed in this PR:
The initial motivation was to remove usage of deprecated Mockito API. But during my investigation, I found some obvious migrations to the Mockito JUnit 5 integration - that's fixing warnings suppressions.

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[x] I've applied code formatting (you can use mvn process-resources to format from the command line)
[x] I've squashed my commits where necessary
[x] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

@hmottestad @abrokenjester It would be nice to get this PR review and eventually merged. 🙏


Fix subtle issue[s] with FunctionPass.

This might affect binary compatibility by changing LLVM_Util's layout.
Other than that there should be no behavioral change (by default).
Full commit message:
Fix issue with user added FunctionPass not being run and avoid allocating a
FunctionPassManager unless it is actually used.

If someone added a pass to LLVM_Util::setup_optimization_passes with opt level 0,
it would never be run. If a PassManagerBuilder was used, everything was fine.

Cleanup LLVM_Util::setup_optimization_passes and consolidate the LLVM
version detection macros.

Closing. This section of code has all been changed in the mean time.


Conversion back and forth

Hi! I'm having some issues converting money back and forth. Is that operation supposed to be idempotent?
Example:
$ratio = 14.834670;
$inverseRatio = round(floatval(1/$ratio), 6);

$USDARSpair = \Money\CurrencyPair::createFromISO('USD/ARS ' . $ratio);
$ARSUSDpair = \Money\CurrencyPair::createFromISO('ARS/USD ' . $inverseRatio);

$numberFormatter = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$formatter = new \Money\Formatter\IntlMoneyFormatter($numberFormatter);
$money = new \Money\Money(4250, new \Money\Currency('ARS'));

var_dump($formatter->format($money));
var_dump($formatter->format($ARSUSDpair->convert($money)));
var_dump($formatter->format($USDARSpair->convert($ARSUSDpair->convert($money))));

string 'ARS42.50' (length=8)
string '$2.86' (length=5)
string 'ARS42.43' (length=8)

I know maybe the problem is in how I'm calculating the $inverseRatio.
Thanks!

I think it's because when you can Money::convert it rounds the value to cents. Maybe rounding should be done upon formatting?

$ php -r 'echo round(floatval(1/14.834670), 6) * 14.834670;'

This should end up in exactly one and it does not. I hardly think that this is a CurrencyPair issue, but the result of the rounding. In order to preserve consistency (and hence the immutability) we cannot do rounding upon a specific action. After each one, the rounding is done. But as you can see, this is the mistake of "your"/php's rounding, not Money's one.

@sagikazarmark is right.
4250×0.067409656 = 286.491038
4243×0.067409656 =<PHONE_NUMBER>08

Both result in an amount of 286 when rounding. You will need PreciseMoney, which will be realized in 3.1.0, in order to have a money value object with decimals.
However, you could change the value object by changing the fraction of the amount to 5.
$ratio = '14.834670';
$inverseRatio = '0.067409656';

$pair = CurrencyPair::createFromISO('USD/ARS ' . $ratio);
$inversePair = CurrencyPair::createFromISO('ARS/USD ' . $inverseRatio);

$moneyUsd = new Money(286000, new Currency('USD'));
$moneyArs = new Money(4243000, new Currency('ARS'));

$this->assertEquals(4242716, $pair->convert($moneyUsd)->getAmount());
$this->assertEquals(286019, $inversePair->convert($moneyArs)->getAmount());

But that will have consequences for your whole application.