[api] Fix saveModel NPE bug

Description
Brief description of what this PR is about

If this change is a backward incompatible change, why must this change be made?
Interesting edge cases to note here

Codecov Report

Merging #989 (60b6289) into master (62c0770) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #989      +/-   ##
============================================
- Coverage     70.02%   69.97%   -0.05%
+ Complexity     5085     5082       -3
============================================
  Files           502      502
  Lines         22519    22521       +2
  Branches       2359     2360       +1
============================================
- Hits          15768    15759       -9
- Misses         5495     5511      +16
+ Partials       1256     1251       -5

Impacted Files
Coverage Δ

api/src/main/java/ai/djl/BaseModel.java
73.64% <0.00%> (-1.01%)
:arrow_down:

...gine/src/main/java/ai/djl/dlr/engine/DlrModel.java
53.12% <0.00%> (-3.13%)
:arrow_down:

...ain/java/ai/djl/tensorflow/engine/TfNDManager.java
88.49% <0.00%> (-2.66%)
:arrow_down:

api/src/main/java/ai/djl/util/Platform.java
43.47% <0.00%> (-2.18%)
:arrow_down:

api/src/main/java/ai/djl/repository/Artifact.java
91.37% <0.00%> (-1.73%)
:arrow_down:

...g/src/main/java/ai/djl/serving/util/Connector.java
55.40% <0.00%> (-1.36%)
:arrow_down:

...ngine/src/main/java/ai/djl/mxnet/jna/LibUtils.java
42.23% <0.00%> (-1.25%)
:arrow_down:

...djl/training/listener/LoggingTrainingListener.java
87.61% <0.00%> (-0.89%)
:arrow_down:

...ne/src/main/java/ai/djl/mxnet/jna/StringArray.java
92.85% <0.00%> (ø)

...rc/main/java/ai/djl/paddlepaddle/jni/LibUtils.java
51.14% <0.00%> (ø)

... and 1 more

Continue to review full report at Codecov.

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


Propagate device index of torch.cuda.Stream in stream context

closes https://github.com/pfnet/pytorch-pfn-extras/issues/744

/test

/test


jinja2 used by pyexcelerate, how to tweak anti-bloat?

<IP_ADDRESS>
Commercial: None
Python: 3.7.10 | packaged by conda-forge | (default, Feb 19 2021, 15:37:01) [MSC v.1916 64 bit (AMD64)]
Flavor: Anaconda Python
Executable: C:\Users\jeans\miniconda3\envs\fresh\python.exe
OS: Windows
Arch: x86_64

I am using the anti-bloat plugin to make a standalone.
It does this:
Nuitka-Plugins:INFO: anti-bloat: Handling module 'jinja2.defaults' with 1 change(s) for: remove jinja2 testing framework.
but the library pyexcelerate imports jinja2 like this:
from jinja2 import Environment, FileSystemLoader
and this happens at runtime:
  File "C:\Users\jeans\project\pyexcelerate\__init__.py", line 1, in <module pyexcelerate>
  File "C:\Users\jeans\project\pyexcelerate\Workbook.py", line 2, in <module pyexcelerate.Workbook>
  File "C:\Users\jeans\project\pyexcelerate\Writer.py", line 7, in <module pyexcelerate.Writer>
  File "C:\Users\jeans\project\jinja2\__init__.py", line 8, in <module jinja2>
  File "C:\Users\jeans\project\jinja2\environment.py", line 27, in <module jinja2.environment>
ImportError: cannot import name 'DEFAULT_TESTS' from 'jinja2.defaults' (C:\Users\jeans\project\jinja2\defaults.py)

What would be the easiest way to fix this? Is there a simple way to tell anti-bloat to ignore a module?

Or is there an option to specify a different config file for anti-bloat instead of using the one in the plugin folder?
Is that config file maintained to be universal to most projects, or is it intended to be modified on a per-project basis?

@math-artist good old pyexcelerator, or is this another one? Anyway, Nuitka do not offer per project files there, and what you have there, is precisely why it's not yet on by default. I was going to add tags, like this:
  control_tags:
    - "allow_ipython"

This disables the exclusion of IPython. There is an option --noinclude-IPython-mode, but I suspect, that since it's Jinja itself doing it, I guess it might be a case of a missing import.  Would you have a pyexcelerate example that I can use to reproduce this one, it seems the anti-bloat removal may just be incomplete for this one, and I don't think Jinja2.testing is wanted ever. Adding an entry for jinja2.environment that does it in a PR would of course be even more welcome.

Hello,
I've been coming directly from #1321 and have anti bloat enabled (--enable-plugin=anti-bloat). The missing DEFAULT_TESTS error is the same, when using jinja2:
Traceback (most recent call last):
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\app.py", line 5, in <module>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\dash_auth\__init__.py", line 2, in <module dash_auth>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\dash_auth\plotly_auth.py", line 9, in <module dash_auth.plotly_auth>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\flask\__init__.py", line 6, in <module flask>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\flask\json\__init__.py", line 9, in <module flask.json>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\jinja2\__init__.py", line 8, in <module jinja2>
  File "C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\jinja2\environment.py", line 27, in <module jinja2.environment>
ImportError: cannot import name 'DEFAULT_TESTS' from 'jinja2.defaults' (C:\Users\nuitka\DOCUME~1\build\app\APP~1.DIS\jinja2\defaults.py)

Nuitka version
> python -mnuitka --version
<IP_ADDRESS>
Commercial: None
Python: 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)]
Flavor: Unknown
Executable: C:\Users\nuitka\Documents\build\app\.env\Scripts\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10

How did you install Nuitka and Python?
I used the python venv module.
Nuitka options used
python -m nuitka
  --mingw64
  --standalone
  --enable-plugin=anti-bloat
  --no-prefer-source-code
  --plugin-enable=numpy
  --plugin-enable=pylint-warnings
  ... many include module directives ...
  app.py

Is there any workaround to get this resolved?
Thanks for your time and best regards
Befedo

I have pushed a fix to the factory branch. My mistaken, I was overeager with removing test frameworks, even ones that are not really such.

Part of the <IP_ADDRESS> hotfix I made the other day.


xmap doesn't preserve static argnums

xmap appears to turn static arguments into traced shapearrays. This can cause problems when one needs an argument to be static for a test.
The following code demonstrate the issue, first using vmap (no problem) then replacing it with xmap which fails (Abstract tracer value encountered where concrete value is expected) when testing the value of cond at the very beginning of the func function:
import jax
import jax.numpy as jnp
from jax.experimental.maps import xmap

# dummy function
def func(cond, data):
   if cond: return data
   else: return data

# vectorisation
func_vmap = jax.vmap(func, in_axes=[None, 0], out_axes=0)
func_xmap = xmap(func, in_axes=[[...], ['axis']], out_axes=['axis'])

# jit compiling
func_vmap_jit = jax.jit(func_vmap, static_argnames=['cond'])
func_xmap_jit = jax.jit(func_xmap, static_argnames=['cond'])

# running
cond = True
data = jnp.ones(100)
out_vmap = func_vmap_jit(cond, data)
out_xmap = func_xmap_jit(cond, data)

This happens with the very last version of Jax (0.3.13).

I believe the changes I am working on related to #10614 would fix this.

Assigned @apaszke for xmap and @JeppeKlitgaard based on the previous comment (https://github.com/google/jax/issues/10741#issuecomment-1129341709).

xmap was removed from JAX, so this is obsolete


VMware provider hosts page: display subnet masks for migration networks

Following up on https://github.com/konveyor/virt-ui/pull/244, I think displaying the name and the IP address of each network interface under the column "Network for migration data transfer" could be improved.
Why not just call the column "Physical network interface name and IP address" or equivalent?
The main driven behind is because IP addresses are host address and not network ranges and could be confusing for the user.

Renaming this issue now that https://github.com/konveyor/forklift-controller/pull/170 gives us the ability to display subnet masks. See @fdupont-redhat 's comment here: https://github.com/konveyor/forklift-controller/pull/170#issuecomment-785426258


Write a bytes-like object to pipe, tuple unpacking

Python2/3 compatibility.

Closing as I just wrote code to fix this (before I saw your PR - based on the chat)..


Converted to-em/rem mixins to be generic & fixed bugs

The to-em and to-rem mixins were almost identical, but the to-rem didn't hadn't sledgehammering !important properly. They could also be improved slightly.
This commit:

provides one generic mixin that's used by both to-em and to-rem to simplify the code.
ensures to-rem uses the same sledgehammer technique so 10remtrue isn't output
doesn't convert any 0 values to em/rem to save bytes
puts a space before !important as is the standard: http://cssguidelin.es/#important & https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

You can see the difference in action here:

Original: http://sassmeister.com/gist/9f811aefcfde73dcaab1
Improved: http://sassmeister.com/gist/d841cbf7a6440dcd0a04

or see it here:
SCSS

a {
  @include to-em(margin, 16);
  @include to-em(margin, 10, 12, true);
  @include to-rem(padding, 12);
  @include to-rem(padding, 12, true);
  @include to-em(text-shadow, (#0d6e28 1 1) (#777 0 0 2), 20);
  @include to-em(text-shadow, (#0d6e28 1 1) (#777 0 0 2), 20, true);
  @include to-rem(text-shadow, (#0d6e28 1 1) (#777 0 0 2));
  @include to-rem(text-shadow, (#0d6e28 1 1) (#777 0 0 2), true);
}

Original
a {
  margin: 1em;
  margin: 0.83333em!important;
  padding: 0.75rem;
  padding: 0.75remtrue;
  text-shadow: #0d6e28 0.05em 0.05em, #777 0em 0em 0.1em;
  text-shadow: #0d6e28 0.05em 0.05em, #777 0em 0em 0.1em!important;
  text-shadow: #0d6e28 0.0625rem 0.0625rem, #777 0rem 0rem 0.125rem;
  text-shadow: #0d6e28 0.0625rem 0.0625rem, #777 0rem 0rem 0.125remtrue;
}

Improved
a {
  margin: 1em;
  margin: 0.83333em !important;
  padding: 0.75rem;
  padding: 0.75rem !important;
  text-shadow: #0d6e28 0.05em 0.05em, #777 0 0 0.1em;
  text-shadow: #0d6e28 0.05em 0.05em, #777 0 0 0.1em !important;
  text-shadow: #0d6e28 0.0625rem 0.0625rem, #777 0 0 0.125rem;
  text-shadow: #0d6e28 0.0625rem 0.0625rem, #777 0 0 0.125rem !important;
}

@stowball nice work :+1:, some good cleanups there and great it's just 1 mixin now. And I love stripping the unit for 0 values which aligns with the guidelines:

Where allowed, avoid specifying units for zero-values, e.g. margin: 0; not margin: 0px;.

Just one thing with the em version; you have to declare the $context argument when declaring multiple properties otherwise it outputs wrong: http://sassmeister.com/gist/ebac890adf9acaa990d4.

That's the same as the original as $context is the second argument, and passing true or !important is truthy, so it thinks it's a real context.
I've just pushed a change that reverses the $context logic for explicit falsey values.
This means that with:
b {
  @include to-em(margin padding, 12, 16, true);
  @include to-em(margin padding, 16, false, true);
  @include to-em(margin padding, 16, "", true);
}

We now get:
b {
  margin: 0.75em !important;
  padding: 0.75em !important;
  margin: 1em !important;
  padding: 1em !important;
  margin: 1em !important;
  padding: 1em !important;
}

instead of:
b {
  margin: 0.75em!important;
  padding: 0.75em!important;
  margin: 16/falseem!important;
  padding: 16/falseem!important;
  margin: 16/""em!important;
  padding: 16/""em!important;
}

like the original original.
So, if you wanted to have !important, but didn't want to specify the $context, you can now use false or "" as Sass doesn't allow empty arguments.

Sass doesn't allow empty arguments.

Oh yeah :)
Nice one.


Stub file timeout

Checklist

[x] Affected Issues have been mentioned in the Closing issues section
[ ] Documentation has been written/updated.
[x] Changelog entry has been written

Sometimes if the API is unavailable, drush will take a long time trying to get a token and eventually fail. This can cause issues with cronjobs and also some users that may be unable to generate a token.
This change defaults to a 10 second timeout, but it is adjustable client side with specifying an envvar LAGOON_OVERRIDE_SSH_TIMEOUT=10 or setting in ssh_port_timeout: 10 in .lagoon.yml
Changelog Entry

Improvement - The drush aliases stub file will timed out if api/ssh is unavailable
Closing issues
closes #1453

This only solves part of the problem at the moment, changing to draft

@shreddedbacon
is this a draft? or do you think we can merge that?

I'll review this today

The other part of this has been added to the example drush aliases.
Basically checks that the aliases stub file is even accessible before attempting to use it, this will fail sooner if the stub file is completely unavailable like in the event that drush-aliases service is down or there is no active connection on the internet


minor edit to docs on file descriptor limits

Minor edits to language added in https://github.com/cockroachdb/docs/pull/554

This change is

HTML version: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/0223cba3b4426f6214900b00b0618fdff5ae5bc1/
recommended-production-settings.html

LGTM


How to send Sequential Question?

i want to send Sequential questions and send back the answer to me.
Example:

enter your name.

enter your address.

enter your phone number.

message back to me

Name: -----------

address: ------------

phone number: -----------

Something like this:
var answerCallbacks = {};

bot.on('message', function (message) {
    var callback = answerCallbacks[message.chat.id];
    if (callback) {
        delete answerCallbacks[message.chat.id];
        return callback(message);
});

bot.onText('questions', function (message) {
    bot.sendMessage(message.chat.id, "Enter your name").then(function () {
        answerCallbacks[message.chat.id] = function (answer) {
            var name = answer.text;
            bot.sendMessage(message.chat.id, "Enter your address").then(function () {
                answerCallbacks[message.chat.id] = function (answer) {
                    var address = answer.text;
                    bot.sendMessage(message.chat.id, "Enter your address").then(function () {
                        answerCallbacks[message.chat.id] = function (answer) {
                            var phone = answer.text;
                            bot.sendMessage(message.chat.id, name + address + phone + " saved!");
                        }
                    });
                }
            });
        }
    });
});

thanks for the reply @sidelux
it logs error error: [polling_error] {} can't find the error to be corrected.

Add these ad top:
process.on('uncaughtException', function (error) {
	console.log("\x1b[31m", "Exception: ", error, "\x1b[0m");
});
process.on('unhandledRejection', function (error, p) {
		console.log("\x1b[31m","Error: ", error.message, "\x1b[0m");
});

Check if you have multiple bot istances, try to execute by commenting from bot.onText('questions' to end of function.

The code runs and asks the question of how much to donate, but the bot does not wait for the answer and thus simply immediately returns the default value of 0.
Can you tell as to why my bot does not wait for the answer?  I have copied your code and adjusted it, but perhaps I need to add something more?
// Global variable for answers to questions, typically custom amounts
var answerCallbacks = {};

telBot.on('message', function (msg) {
  var callback = answerCallbacks[msg.chat.id];

  if (callback) {
    delete answerCallbacks[msg.chat.id];
    return callback(msg);
  }
});

telBot.on('callback_query', function onCallbackQuery(callbackQuery) {
    const data = JSON.parse(callbackQuery.data);
    const msg = callbackQuery.message;
    const opts = {
      chat_id: msg.chat.id,
      message_id: msg.message_id,
    };

    if (data.command === 'donate') {
      var donateAmount = 0;

      if (data.amount === 'custom') {
        telBot.sendMessage(msg.chat.id, 'How much do you wish to donate?').then(function () {
          answerCallbacks[msg.chat.id] = function (answer) {
            donateAmount = answer.text;
          }
        });
      } else {
        // Use the amount that was specified by a button
        donateAmount = data.amount;
      };

      telBot.sendMessage(opts.chat_id, `Donation for ${donateAmount} requested.`);

      telBot.answerCallbackQuery(callbackQuery.id);
      return;
    };
  });

@elboertjie considera that the block inside answerCallbacks[msg.chat.id] = function (answer) { is called asynchronously, so you should put a sendMessage inside two if blocks, an example:
// Global variable for answers to questions, typically custom amounts
var answerCallbacks = {};

telBot.on('message', function(msg) {
    var callback = answerCallbacks[msg.chat.id];

    if (callback) {
        delete answerCallbacks[msg.chat.id];
        return callback(msg);
    }
});

telBot.on('callback_query', function onCallbackQuery(callbackQuery) {
    const data = JSON.parse(callbackQuery.data);
    const msg = callbackQuery.message;
    const opts = {
        chat_id: msg.chat.id,
        message_id: msg.message_id,
    };

    if (data.command === 'donate') {
        var donateAmount = 0;

        if (data.amount === 'custom') {
            telBot.sendMessage(msg.chat.id, 'How much do you wish to donate?').then(function() {
                answerCallbacks[msg.chat.id] = function(answer) {
                    donateAmount = answer.text;
                    telBot.sendMessage(opts.chat_id, `Custom donation for ${donateAmount} requested.`);
                }
            });
        } else {
            // Use the amount that was specified by a button
            donateAmount = data.amount;
            telBot.sendMessage(opts.chat_id, `Donation for ${donateAmount} requested.`);
        };

        telBot.answerCallbackQuery(callbackQuery.id);
        return;
    };
});

Thank you, that makes sense.
I would typically call a function at that spot with the amount as the Parameter and to Keep my code cleaner (refactored), I wish to make such a call only once.
Perhaps I can implement an 'async/await' solution there and forcing a resolve of the promise.  In your knowledge and experience, do you foresee any Problems in introducing 'async/await' to this bot programming using this node API?

I think you can't use await for that answers...
But, maybe i would use this method or something similar:
// Global variable for answers to questions, typically custom amounts
var answerCallbacks = {};

telBot.on('message', function(msg) {
    var callback = answerCallbacks[msg.chat.id];

    if (callback) {
        delete answerCallbacks[msg.chat.id];
        return callback(msg);
    }
});

telBot.on('callback_query', function onCallbackQuery(callbackQuery) {
    const data = JSON.parse(callbackQuery.data);
    const msg = callbackQuery.message;
    const opts = {
        chat_id: msg.chat.id,
        message_id: msg.message_id,
    };

    if (data.command === 'donate') {
        var donateAmount = 0;
        var questionText = "";
        if (data.amount === 'custom')
            questionText = "How much do you wish to donate?";
        else {
            donateAmount = data.amount;
            questionText = "You confirm the donation for " + donateAmount + "?";
        };

        telBot.sendMessage(msg.chat.id, questionText).then(function() {
            answerCallbacks[msg.chat.id] = function(answer) {
                if ((data.amount != 'custom') && (answer.text != "yes"))
                     return; // user write "no" or something else
                else if (data.amount == 'custom')
                    donateAmount = answer.text;

                telBot.sendMessage(opts.chat_id, `Donation for ${donateAmount} requested.`);
                telBot.answerCallbackQuery(callbackQuery.id);
            }
        });

        return;
    };
});


Keyboard shortcuts menu crashes modeler 3.0.1

Hit Help -> Keyboard Shortcuts menu
a blank screen appears
Modeler freezes

reproduced on Windows and Mac

Thanks for reporting.
Closing this as an exact duplicate of https://github.com/camunda/camunda-modeler/issues/1357.
We are working on a fix.

The other issue is #1358, just for reference here.

Thanks for the pointer, I pasted the wrong issue link :wind_face:.


added hello world in c++

What the program do ?

In what programming language it is written?

Please add in correct folder


No Token in Settings

When installating I added  the token but it doesn't appear in the settings
I updated the client secret and token but when settings are saved they dissapear. Is this the expected behavior?

the secret and the token will not be visible there (nor hidden as password). What do you suggest in terms of copy to make it understandable?

Maybe a "not visible" or something similar in the box could be put. When I was installing it, I thought I had to put them again because the Client ID does appear

mm yes, a placeholder sounds good


Terraform checkov detection: CKV2_AZURE_32: "Ensure private endpoint is configured to key vault"

Check: CKV2_AZURE_32: "Ensure private endpoint is configured to key vault"
FAILED for resource: module.init.azurerm_key_vault.init
https://www.checkov.io/5.Policy Index/terraform.html

CKV2_AZURE_32 is obsolete.


Wordnet similarity quirky when only one synsets needs root

Sometimes when only one synset needs root, the similarity between the synsets are not commutative:
from nltk.corpus import wordnet as nltk_wn

ncat = nltk_wn.synset('cat.n.01')
nbuy = nltk_wn.synset('buy.v.01')

print(nltk_wn.path_similarity(nbuy, ncat), nltk_wn.wup_similarity(nbuy, ncat))
print(nltk_wn.path_similarity(ncat, nbuy), nltk_wn.wup_similarity(ncat, nbuy))

[out]:
0.058823529411764705 0.1111111111111111
None None

Details on https://stackoverflow.com/q/20075335/610569

@alvations, I've seen this "quirk" myself, and as the StackOverflow answer suggests, there are two ways of resolving this:

If there is only one word in a pair that contains a root, simulate a root by default, unless specified otherwise.
If there is only one word in a pair that contains a root, find the similarities from the one with the simulated root (one that returns a value), and modify the similarity functions to provide that as an output by default.

Is my interpretation of the possible solution correct? Are there any other methods of resolving this?


⚠ Fetchers has degraded performance

In ec9c196, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 308 ms

Resolved: Fetchers performance has improved in 49916c7.


Minor improvements to README and code cleanup.

Clarify the description and instructions in README.md.
Add IntelliJ Inspections settings to the project files.
Fix static analysis violations.
Use JUnit's TemporaryFolder instead of deleting files in tearDown().

LGTM :+1:
Thanks for TemporaryFolder rule, I wasn't aware of it! Good to know.


IPv6 traffic support?

Hey there, can you shed some light on how to modify ipv6Settings on the tunnel to support ipv6 traffic through it? Currently, my IPv6 traffic seems to bypass the tunnel. thank you!

I am afraid v6 is not supported at the moment AFAIK


No module named 'lang_sam'

Instructions To Reproduce the Issue:
Already installed lang_sam through installation instructions
pip install -U git+https://github.com/luca-medeiros/lang-segment-anything.git

pip also showing package installed
pip list | grep lang-sam
lang-sam                 0.1.0

But code is giving error:
from  PIL  import  Image
from lang_sam import LangSAM

model = LangSAM()
image_pil = Image.open('./assets/car.jpeg').convert("RGB")
text_prompt = 'wheel'
masks, boxes, phrases, logits = model.predict(image_pil, text_prompt)

Error:
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Input In [1], in <cell line: 2>()
      1 from  PIL  import  Image
----> 2 from lang_sam import LangSAM
      4 model = LangSAM()
      5 image_pil = Image.open('./assets/car.jpeg').convert("RGB")

ModuleNotFoundError: No module named 'lang_sam'

it was some bug on jupyter, nvm

same issue on jupyter, did you solve it in jupyter or just tried from script?


[PE-D][Tester C] When importing invalid characters, the application does not show any errors

When directly modifying stoage json to use chinese,

When booting the application, the application is unable to load any data

Labels: type.FeatureFlaw severity.High
original: hogretup/ped#9

May I check if you raised this as an error for the base reading on opening the application or whether this bug is meant for the import feature that was implemented separately?


Bug: incorrect caret position when using mac's built-in text expander

When using mac's built-in text expander feature to replace text, Lexical inserts the wrong caret position after text replacement.
Lexical version:
Steps To Reproduce

In keyboard preference (System Preferences > Keyboard > Text), add some text replacements. e.g. "omw" > "On my way!"
Go to playground (https://playground.lexical.dev/)
Type "omw,"
Observe the text get changed to "On my way!," with the text caret position changed to in front of the comma.

Lexical playground
https://user-images.githubusercontent.com/118264/168899380-2c31307c-fe61-4da4-9584-e6ecd9e88bff.mp4
For comparison, here's the behavior in a regular input
https://user-images.githubusercontent.com/118264/168899643-48013141-b94f-4e3e-8159-6c2d2e2c7d9e.mp4
The current behavior
The caret position should be after the comma.
The expected behavior

What's the behavior in other contenteditables?

Both Draft and Quill have the expected behavior by inserting the caret at the end
https://user-images.githubusercontent.com/118264/168902759-36034aec-2e44-4539-87f0-44661593d657.mp4
https://user-images.githubusercontent.com/118264/168902766-e745125f-280a-4e6c-bcf3-0c4631b75af1.mp4

I'll look tomorrow :)


Allow a variety of action type names

const isSerializable = (typeof description === 'string') && /^[A-Z_]+$/.test(description)
I notice this calls only CONSTANT_STYLE strings serializable. However, I'm starting to think that I want to name my actions differently, for example, actions that affect the game key of the state could be called game.begin/game.end.
Is there a reason for keeping things so locked down to the Abramov-school of action types? Or can this library enable some broader conventions ? Curious for your thoughts, my want would be to permit valid JS identifiers, or a few of them separated by dots. The CSS-ers may also want to allow dashes.

The goal of the lib is not having serializable actions and let all ids being generated. I did it because some people wanted it for client <-> server communication but that shouldn't the default way to use redux-act.

From the perspective of a self-contained app, it's true you shouldn't need to name action creators, and ids will work for types. But there are two places where you see actions, and the ids are inferior to names a) on the wire when being sent to another system, or stored b) while debugging in Redux DevTools and also in log messages. Imagine sending an action to another system, or to the server over a web socket.
People can use the app without action "descriptions" if they like - but when they need descriptions, what is the reason for the existing limitation, and would anything be lost if it were removed entirely?

I suppose one possible restriction is that user-chosen descriptions should not match descriptions created by redux-act, if its' desired to differentiate between the two.

Not sure I understand what you mean. If you put your own description (like do stuff), it will be used as the type of the action (prepended with the generated id, like [283] do stuff) so you can debug just fine.
And as you said, when actions are send to another system, that's where you need stable ids and that's why you can do it using the specific UPPER_CASE syntax. But again, that wasn't the goal of the lib to have user defined ids since the whole purpose is to prevent id duplication.

So the prepending with an id prevents duplication, I see. I suppose when sending them out I can rewrite the actions to omit ids, as that is a different concern. Thanks.


Fix auditing example to permit log rotation

Hi guys,
As explained in https://github.com/kubernetes/website/issues/30661, the current example in the docs for enabling file-based audit logs will fail to rotate logs when the kube-apiserver is running in a pod.
This PR simply updates the example to make log-rotation work as expected, by altering a FileOrCreate mount to a DirectoryOrCreate type, and altering the final log path.

I'd like technical review on this. Can be from any relevant SIG (Auth, API Machinery, Security). It looks right to me but since this could be a critical control for readers, I do want that extra check.

Thanks @enj

/lgtm
/cc @kubernetes/api-reviewers for tech lgtm

/lgtm

/approve


Adding support for image portlet

Adding support for the image portlet under dashboardView

Syntax for the image portlet is already provided by the Automatically Generated DSL.


Volume Control

Hello,
On the drop down on the menu on eqMac2 has the control for the tones, can you put the volume control there too, as my system volume on the menubar is grayed out, and when I need to control the volume right away, I would like it to easy access from the eqMac2 drop down menu that show up.
Thanks

You can access the volume control from the second (Settings) menu?

Hello,
Yes, but to many steps to access quickly.
Thanks

From:Roman<EMAIL_ADDRESS><EMAIL_ADDRESS>Cc:William<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject:[romankisil/eqMac2] Volume Control (#13)
Date:July 28, 2017 at 10:12:21 AM EDT
You can access the volume control from the second (Settings) menu?
—
You are receiving this because you authored the thread.
Reply to this email directly,view it on GitHub(https://github.com/romankisil/eqMac2/issues/13#issuecomment-318662541), ormute the thread(https://github.com/notifications/unsubscribe-auth/AGpXRcCcr2-EvnU_phIqVemX6xmvPGFoks5sSexFgaJpZM4OmprG).

You can use Volume control buttons as well (F11, F12) or you are on the new Macbook Pro with Touchbar?

Great work on the new version @romankisil!
I can confirm, touchbar controls are greyed out and do not work with eqMac2. Have to go into the app menu and change it from there. It's disabled everywhere else.

@cbornhoft yeah it's because, to make eqMac2 device invisible when app is not running, I had to make it invisible by default. But to make it visible again, I have to create an aggregate audio device and add eqMac2 device to it. Aggregate Devices in OSX don't support volume controls :( I know a way that Boom3D managed to have device invisible and have volume controls, it's just a bit of work to rewrite the logic of the app to support that. Maybe soon

That makes sense, thanks for the explanation 👍

Can do much without cluttering the UI of the EQ menu. Someone needs to come up with a UX design first.

Just to comment.  I installed eqmac2 and my MAX volume is MUCH lower than before.
I have everything maxed out, and it is at least 50% quieter than if I remove eqmac2.
is this known/expected?

@rstudner I don't know how you have it set up but given that the preamp gain isn't shown, it must automatically decrease so that's probably why your volume is lower. This is necessary to avoid distortion.

Hey everyone. Excuse me for the lack of updates. I have been really busy on the new version of eqMac. I am happy to announce an open beta release.
You can download it here: https://eqmac.app
There are a lot of known bugs that I could not fix just yet:

Driver not installing from the first try. Sometimes need to restart eqMac a couple times.
Complex Device switching logic is not perfect (for example when switching off the device that's currently playing, plugging in new device etc.)
UI takes long to load (a lot can be done to improve that)
UI dimensions are not synching properly
There's a noticeable audio delay in the playback, so not suitable for video yet (I know where the problem lies just haven't had the time to fix yet)
Sometimes the playback doesn't start, in that case please try to switch the output to the device you want and eqMac should try and build the audio pipeline again.

So as you can see there's still some work to be done but at least it's a completely modern tech stack that I am fully willing to work on: 100% Swift, User Space driver and a Web UI, instead of C++, Kernel Drivers. As I said, should work on Catalina and should not have any pesky ear drum blasting volume bugs (at least I didn't come across any).
I'm open to feedback and issue reports here: https://github.com/bitgapp/eqmac
That repo will become the main repo for eqMac and this repo will be archived eventually.
And yes it's called just eqMac, not eqMac3 :) And it will stay that way forever.

Hey everyone 👋
I will be open sourcing the new version of eqMac, therefore, I am closing this issue and repository as I will be transfering nodeful/eqMac2 repo to bitgapp/eqMac
Please bear with me for the next couple of days as I setup that new repo. The eqMac2 code will be living in the old-eqMac2 branch if anyone is interested in referencing it for whatever reason.
Please try out the new version and report bugs to the new repo.
Thanks for using eqMac.


You are trying to load a weight file containing 2 layers into a model with 44 layers

I would like to train on my own data with 2 classifications, and i have this error. Can you help, please?
ValueError                                Traceback (most recent call last)
 in
9             labels              = config['model']['labels'],
10             max_box_per_image   = config['model']['max_box_per_image'],
---> 11             anchors             = config['model']['anchors'])
12
13 ###############################
~/YOLO/YOLO_py/frontend.py in init(self, backend, input_size, labels, max_box_per_image, anchors)
46             self.feature_extractor = MobileNetFeature(self.input_size)
47         elif backend == 'Full Yolo':
---> 48             self.feature_extractor = FullYoloFeature(self.input_size)
49         elif backend == 'Tiny Yolo':
50             self.feature_extractor = TinyYoloFeature(self.input_size)
~/YOLO/YOLO_py/backend.py in init(self, input_size)
165
166         self.feature_extractor = Model(input_image, x)
--> 167         self.feature_extractor.load_weights(FULL_YOLO_BACKEND_PATH)
168
169     def normalize(self, image):
~/.local/lib/python3.6/site-packages/keras/engine/network.py in load_weights(self, filepath, by_name, skip_mismatch, reshape)
1178             else:
1179                 saving.load_weights_from_hdf5_group(
-> 1180                     f, self.layers, reshape=reshape)
1181
1182     def _updated_config(self):
~/.local/lib/python3.6/site-packages/keras/engine/saving.py in load_weights_from_hdf5_group(f, layers, reshape)
899                          'containing ' + str(len(layer_names)) +
900                          ' layers into a model with ' +
--> 901                          str(len(filtered_layers)) + ' layers.')
902
903     # We batch weight value assignments in a single backend call
ValueError: You are trying to load a weight file containing 2 layers into a model with 44 layers.

Similar error , i too faced. I could see the utilization of loaded network in training, its actually using it through feature extractor.
Please let me know , if anyone find answer for this :-|


fix gradle issue

@passos Thanks, But I have add the gradle-wrapper.jar before, and we use the old gradle version for our main app which is written by ReactNative. Pls ignore the gradle version.
Thanks again

Hey @passos  thanks again， I will close issue because I think I have solved this problem.
Glad to receive your next PR.


qt5 Build with vulkan support

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

On the main branch, we get:
2023-10-11T01:33:47.2067859Z   Vulkan ................................. no

On this PR:
Vulkan ................................. yes


How to do field level @auth for bi-directional one-to-many @connection?

Which Category is your question related to?
AppSync / GraphQL Transformer
What AWS Services are you utilizing?
AppSync / Dynamo
Provide additional details e.g. code snippets
I'm trying to figure out how can you protect a one-to-many @connection with @auth against mutations that shouldn't be allowed. (ie: deny a specific user to run a mutation that will end-up inserting posts as another user.)

    postUserId: "regular-user-id"
  }) {
    title
  }
}

Running a simple query to make sure this really happened:
query {
  getUser(id:"regular-user-id"){
    posts{
      items
      {
        title
      }
    }
  }
}
=>
{
  "data": {
    "getUser": {
      "posts": {
        "items": [
          {
            "title": "Regular User title"
          },
          {
            "title": "Oh this is BAD!"
          },
        ]
      }
    }
  }
}

I tried various ways to figure this one out and couldn't find any documentation about bi-directional field level authentication. I'm fairly new to AppSync so I think I must be not getting something, but then this is such common use-case scenario that I'm really surprised there isn't more documentation about it.
Some help would be really appreciated.

Hi @ovidb
Change your schema to this and try again:
type User @model @auth(rules: [{ allow: owner, ownerField: "id" }]) {
  id: ID!
  posts: [Post] @connection(name: "UserPosts")
}
type Post @model @auth(rules: [{ allow: owner, ownerField: "postUserId" }]) {
  id: ID!
  user: User! @connection(name: "UserPosts")

  # This field is handled automatically by @connection
  # postUserId: String!
}


hybrid app with wpf + c# 7.0? (console + windows application)

would be annoying to do, since console.writeline doesn't show up inside VS output window (unlike dotnet 4.8 that works!)

so most likely need to use 4.8..

using 4.8 then : /


Font is not available locally.

Waiting for typst to be updated on nixpkgs, then we would be able to specify a custom font dir.
https://github.com/typst/typst/pull/270

Updated to latest typst which can accept fonts.


Recurrent Neural Network Support?

I am thinking about trying this out with a recurrent neural network I made with the keras library. I think it will mostly be like the LimeTabularExplainer, except the data input needs to have shape (n_samples, n_timesteps, n_features) instead of (n_samples, n_features) like for normal classification tasks. I might give this a stab and make a PR, but was wondering if LIME already supports that kind of input?

This sounds interesting. No, LIME does not support this kind of input - unless the RNN is for text, in which case you don't really need the explanation to take the time step into account.

I put some work into this and managed to get an explainer object with this code. It basically reshapes things into 2D so that the lime explainers can do their thing as is and then back to 3d when using the neural network model.
from lime import lime_tabular
class RecurrentExplainer(lime_tabular.LimeTabularExplainer):
    def __init__(self, training_data, training_labels=None, feature_names=None,
                 categorical_features=None, categorical_names=None,
                 kernel_width=None, verbose=False, class_names=None,
                 feature_selection='auto', discretize_continuous=True,
                 discretizer='quartile'):
        """
        An explainer for recurrent neural networks, where the input shape
        is (n_samples, n_timesteps, n_features). This class just extends
        the LimeTabularExplainer class and reshapes the training data
        and feature names such that they become something like

        (val1_t1, val1_t2, val1_t3, ..., val2_t1, ..., valn_tn)
        """

        # Reshape X
        n_samples, n_timesteps, n_features = training_data.shape
        training_data = np.transpose(training_data, axes=(0, 2, 1)).reshape(n_samples, n_timesteps * n_features)
        self.n_timesteps = n_timesteps
        self.n_features = n_features

        # Update the feature names
        feature_names = ['{}_t-{}'.format(n, n_timesteps - (i+1)) for n in feature_names for i in range(n_timesteps)]

        super(RecurrentExplainer, self).__init__(training_data, training_labels=training_labels,
                                                 feature_names=feature_names,
                                                 categorical_features=categorical_features,
                                                 categorical_names=categorical_names,
                                                 kernel_width=kernel_width, verbose=verbose,
                                                 class_names=class_names,
                                                 feature_selection=feature_selection,
                                                 discretize_continuous=discretize_continuous,
                                                 discretizer=discretizer)

    def _make_predict_proba(self, func):
        """ Wrap the predict_proba method to reshape the input appropriately for the neural network """

        def predict_proba(X):
            if X.ndim == 1:
                X = X.reshape((self.n_features, self.n_timesteps)).T.reshape[None, :, :]
            else:
                n_samples = X.shape[0]
                X = np.transpose(X.reshape((n_samples, self.n_features, self.n_timesteps)), axes=(0, 2, 1))
            return func(X)
        return predict_proba

    def explain_instance(self, data_row, classifier_fn, labels=(1,),
                         top_labels=None, num_features=10, num_samples=5000,
                         distance_metric='euclidean', model_regressor=None):

        # Flatten input so that the normal explainer can handle it
        data_row = data_row.T.reshape(self.n_timesteps * self.n_features)

        # Wrap the classifier to reshape input
        classifier_fn = self._make_predict_proba(classifier_fn)
        return super(RecurrentExplainer, self).explain_instance(data_row, classifier_fn,
                                                                labels=labels,
                                                                top_labels=top_labels,
                                                                num_features=num_features,
                                                                num_samples=num_samples,
                                                                distance_metric=distance_metric,
                                                                model_regressor=model_regressor)

However, the show_in_notebook method gives an error, as does the save_to_file method:
Uncaught TypeError: Cannot read property 'name' of undefined
at file:///Users/kgullikson/explanation.html:27220:36
at Array.map (native)
at PredictProba.map_classes (file:///Users/kgullikson/explanation.html:27219:45)
at new PredictProba (file:///Users/kgullikson/explanation.html:27134:30)
at file:///Users/kgullikson/explanation.html:27626:22

Do you think that is related to my hack to get it to work with the 3-d inputs or something else?

I guess from #57 that this question is obsolete?

Yeah, it eventually worked for me after I restarted the notebook. So maybe some weirdness happened as I was playing with things/trying to get it working.


Fix/doc#988 - Wrong ref link

Resolves https://github.com/Avaiga/taipy-doc/issues/988
The link is actually fixed now (tested :( )

No, this is new in develop


iis_pool is not idempotent when recycle_at_time is specified and is not changed

Cookbook version
4.1.7
Chef-client version
chef-client: 12.7.2
kitchen: 1.5.0
Platform Details
Windows Server 2012 R2
Issue:
After an app pool has been configured with iis_pool resource parameter recycle_at_time the next time the cookbook converges (with no changes to the app pool) the app pool is restarted.
Steps to Reproduce:

Configure a site's app pool using the iis_pool resource from the IIS Cookbook. Make sure that a custom recycle_at_time is provided.

Example:
iis_pool 'foo' do
	runtime_version '4.0'
	pool_identity :SpecificUser
	pool_username 'some user'
	pool_password 'some password'
	idle_timeout '00:00:00'
	recycle_at_time '01:00:00'            # bug bug
	recycle_after_time '00:00:00'
	action [:add, :config]
end

Converge the cookbook. (I was using test kitchen to do this)

Converge the cookbook again.

Expected Result:
The second cookbook converge should be, effectively, a noop. It shouldn't adjust the app pool or cause the app pool to restart. The cook book (and more specifically the iis_pool resource) should be idempotent.
Actual Result:
Each time the cookbook converges the app pool is restarted. This can be observed in a few ways.
First the output from test kitchen reports the app pool is being configured:

iis_pool[foo] action config[2016-06-14T17:36:26-05:00] INFO: Processing iis_pool[foo] action config
[2016-06-14T17:36:26-05:00] INFO: iis_pool[foo] configured application pool

If you check the event log on the target node machine the Web Server IIS event log will report that the app pool was restarted (because of a configuration change).

Further investigation notes
I spent several hours scratching my head over this and reading the IIS cookbook code. After careful inspection I believe the bug is probably happening here (my best guess):
iis/providers/pool.rb: lines 238-239:
node_array = XPath.match(doc.root, 'APPPOOL/add/recycling/periodicRestart/schedule/add')
should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?) || (new_resource.recycle_schedule_clear && !node_array.empty?)

I believe the problematic OR check is this statement: (new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?. If I'm reading that correctly, in the context of the above, it will result in should_clear_apppool_schedules == true if we had a recycle_at_time but that recycle_at_time was not a new time. Meaning the app_pool was already configured with a restart time - so the node_array was not empty. But the restart time was also not new.
When I run the kitchen converge with debug output - it seems to agree that this is happening. Here is roughly what I see:
[2016-06-14T22:55:00-05:00] DEBUG: iis_pool[foo] current_resource match output: APPPOOL "foo" (MgdVersion:v4.0,MgdMode:Integrated,state:Started)
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe list app pool "foo" /config:* /xml
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe set config /section:applicationPools "/-[name='foo'].recycling.periodicRestart.schedule"
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe set config /section:applicationPools "/+[name='foo'].recycling.periodicRestart.schedule.[value='01:00:00']"
[2016-06-14T22:55:00-05:00] INFO: iis_pool[foo] configured application pool

On Feb 17th it appears the above code was updated: https://github.com/chef-cookbooks/iis/commit/b5b95db0ea113a9aff8bd73e6fe9326d50e86676
-    should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || node_array.length > 1) || (new_resource.recycle_schedule_clear && node_array.length > 0)
+    should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?) || (new_resource.recycle_schedule_clear && !node_array.empty?)

Looking at the 4.1.7 release notes - I am guessing this was changed due to this bug: https://github.com/chef-cookbooks/iis/issues/247
The bug suggests there needs to be a way to reset the recycle_at_time to default. From reading the original code above - it seems that could have been accomplished by providing the recycle_schedule_clear attribute with a value of true. If any schedule items existed it should have cleared them (and put the app pool back into the default / no schedule state).
In any case the current fix appears to have a side effect that's impacting idempotency.

I'll look into this in around 9 hours, sounds like the check is broken.
Justin Schuhmann

On Jun 15, 2016, at 12:10 AM, jsco2t<EMAIL_ADDRESS>wrote:
Cookbook version
4.1.7
Chef-client version
chef-client: 12.7.2
kitchen: 1.5.0
Platform Details
Windows Server 2012 R2
Issue:
After an app pool has been configured with iis_pool resource parameter recycle_at_time the next time the cookbook converges (with no changes to the app pool) the app pool is restarted.
Steps to Reproduce:
Configure a site's app pool using the iis_pool resource from the IIS Cookbook. Make sure that a custom recycle_at_time is provided.
Example:
iis_pool 'foo' do
runtime_version '4.0'
pool_identity :SpecificUser
pool_username 'some user'
pool_password 'some password'
idle_timeout '00:00:00'
recycle_at_time '01:00:00'            # bug bug
recycle_after_time '00:00:00'
action [:add, :config]
end
Converge the cookbook. (I was using test kitchen to do this)
Converge the cookbook again.
Expected Result:
The second cookbook converge should be, effectively, a noop. It shouldn't adjust the app pool or cause the app pool to restart. The cook book (and more specifically the iis_pool resource) should be idempotent.
Actual Result:
Each time the cookbook converges the app pool is restarted. This can be observed in a few ways.
First the output from test kitchen reports the app pool is being configured:
iis_pool[foo] action config[2016-06-14T17:36:26-05:00] INFO: Processing iis_pool[foo] action config
[2016-06-14T17:36:26-05:00] INFO: iis_pool[foo] configured application pool
If you check the event log on the target node machine the Web Server IIS event log will report that the app pool was restarted (because of a configuration change).
Further investigation notes
I spent several hours scratching my head over this and reading the IIS cookbook code. After careful inspection I believe the bug is probably happening here (my best guess):
iis/providers/pool.rb: lines 238-239:
node_array = XPath.match(doc.root, 'APPPOOL/add/recycling/periodicRestart/schedule/add')
should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?) || (new_resource.recycle_schedule_clear && !node_array.empty?)
I believe the problematic OR check is this statement: (new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?. If I'm reading that correctly, in the context of the above, it will result in should_clear_apppool_schedules == true if we had a recycle_at_time but that recycle_at_time was not a new time. Meaning the app_pool was already configured with a restart time - so the node_array was not empty. But the restart time was also not new.
When I run the kitchen converge with debug output - it seems to agree that this is happening. Here is roughly what I see:
[2016-06-14T22:55:00-05:00] DEBUG: iis_pool[foo] current_resource match output: APPPOOL "foo" (MgdVersion:v4.0,MgdMode:Integrated,state:Started)
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe list app pool "foo" /config:* /xml
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe set config /section:applicationPools "/-[name='foo'].recycling.periodicRestart.schedule"
[2016-06-14T22:55:00-05:00] DEBUG: C:\Windows\System32\inetsrv\appcmd.exe set config /section:applicationPools "/+[name='foo'].recycling.periodicRestart.schedule.[value='01:00:00']"
[2016-06-14T22:55:00-05:00] INFO: iis_pool[foo] configured application pool
On Feb 17th it appears the above code was updated: b5b95db

should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || node_array.length > 1) || (new_resource.recycle_schedule_clear && node_array.length > 0)

should_clear_apppool_schedules = ((new_resource.recycle_at_time && is_new_recycle_at_time) || !node_array.empty?) || (new_resource.recycle_schedule_clear && !node_array.empty?)
Looking at the 4.1.7 release notes - I am guessing this was changed due to this bug: #247

The bug suggests there needs to be a way to reset the recycle_at_time to default. From reading the original code above - it seems that could have been accomplished by providing the recycle_schedule_clear attribute with a value of true. If any schedule items existed it should have cleared them (and put the app pool back into the default / no schedule state).
In any case the current fix appears to have a side effect that's impacting idempotency.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Status: Spinning up test environment

@jsco2t please test #283 as it appears to solve this issue


[Tooling Idea] Admin/Management Solution

Describe the issue

Given the various environments our team manages, it might be beneficial explore developing a management solution that unifies how we manage resources. Some features and/or capabilities (not exhaustive) could include:

Have both CLI and/or Web UI with similar functionality or a design that can easily be extended to support both interfaces should a need arise.
For operations that are not local, support making REST API calls, making it easier to have both CLI and Web UI perform similar operations.

Additional context

TBD

Definition of done

A high level document that contains potential features and capabilities.

Ideally based on collaboration amongst team members
Defined scope on features that could be included in the first POC

Document would serve as a guide for creating tickets related to design and implementation of the first POC

There actually is an SEA manager in existence (details behind NDA).  I can give you a light summary next week

Nice! Sounds good.

Created Tickets 1656 and 1657 following meeting with tech team.


SDK fails on Vercel serverless functions

Hi! I'm trying to use this library to power our auth flow in a Vercel app, and it crashes the Vercel edge serverless functions. I suspect it has something to do with isomorphic-unfetch Node polyfill.
Note that locally, or in a normal Node VM, everything works fine. Out of curiosity, since this repository is called stytch-node, I'm assuming that everything is geared towards Node BE. Given that, would it be possible to use node-fetch directly instead?

Heya @LucilleH , thanks for reaching out! We've tested stytch-node with Vercel serverless functions, but I'm not sure if we've looked deeply at their Edge functions.

...it crashes the Vercel edge functions
Are there any error artifacts (messages, logs etc) when this happens that you could share?

Oh did I say edge functions? Sorry it was a serverless function error on fetch:
Unhandled Promise Rejection
{"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"TypeError: First parameter has member 'readable' that is not a ReadableStream.","reason":{"errorType":"TypeError","errorMessage":"First parameter has member 'readable' that is not a ReadableStream.","stack":["TypeError: First parameter has member 'readable' that is not a ReadableStream.","    at assertReadableStream (/var/task/node_modules/.pnpm/web-streams-polyfill@3.2.1/node_modules/web-streams-polyfill/dist/ponyfill.js:362:19)","    at convertReadableWritablePair (/var/task/node_modules/.pnpm/web-streams-polyfill@3.2.1/node_modules/web-streams-polyfill/dist/ponyfill.js:3524:9)","
at ReadableStream.pipeThrough (/var/task/node_modules/.pnpm/web-streams-polyfill@3.2.1/node_modules/web-streams-polyfill/dist/ponyfill.js:3608:29)","
at fetchFinale (node:internal/deps/undici/undici:11082:56)","
at mainFetch (node:internal/deps/undici/undici:10974:9)"...]}
Unknown application error occurred
Runtime.Unknown

web-streams-polyfill is used by @vercel/remix, which does the polyfill on streams. This error only occurs when stytch-node is used. My hypothesis is that isomorphic-unfetch has some side effects that changed the underlying fetch globally, which then interferes with web-streams-polyfill. I could be wrong.
Any help appreciated!

Heya @LucilleH sorry about the delay here. I played around with a simple Vercel serverless function and I didn't run into the issues that you saw.
Is the repo you're working on available publicly so that I could take a look at?

@chris-stytch Hi Chris, sorry it was a private repo. But I'm pretty sure it is related to the fetch polyfill. I think a setup of Remix + Stytch would repro:
npx create-remix@latest
npm add stytch-node
// call stytch sdk and start server
npm dev
// push to vercel and run in prod
vercel deploy

But to save you the whole setup, I think the problem is using isomorphic-unfetch that switches between unfetch & node-fetch for client & server, and the dependency of @remix-run/web-fetch for the remix server.
This is not super urgent for me, as I simply re-wrote part of this library without the fetch polyfill on my end. But out of curiosity, is there a reason why stytch-node is not a server only package and strictly import node-fetch?

@LucilleH glad you were able to get unblocked!

But out of curiosity, is there a reason why stytch-node is not a server only package and strictly import node-fetch?

When we last overhauled the HTTP request structure of the Node SDK, we had a few different use cases to target, e.g. Cloudflare Workers, Vercel API routes etc. Across the expected use cases, we found that our current setup worked best.
But it seems like Remix + Serverless Functions, something we didn't build explicitly for, runs into the issues that you found. I created a ticket for our team to take a look at and consider the next time we decide to crack open the request structure of the SDK.
In the meantime, feel free to join our Slack community in case you need some more help, have any feedback for us, or want to show off your project!

Hi, I think I have an issue that is related to this. I'm getting the following when building my project for cloudflare workers
error during build:
ReferenceError: self is not defined

The problem seems to have to do with how Stytch is using isomorphic-unfetch. It seems like the most common polyfill used by frameworks like Nextjs, Qwik, Solid, etc. is undici. There is also cross-fetch that is popular.
This is the code from Qwik's conditional polyfill, which I'm including because it's pretty straightforward.
import {
  TextEncoderStream,
  TextDecoderStream,
  WritableStream,
  ReadableStream,
} from 'node:stream/web';
import { fetch, Headers, Request, Response, FormData } from 'undici';

import crypto from 'crypto';

export function patchGlobalThis() {
  if (
    typeof global !== 'undefined' &&
    typeof globalThis.fetch !== 'function' &&
    typeof process !== 'undefined' &&
    process.versions.node
  ) {
    globalThis.fetch = fetch as any;
    globalThis.Headers = Headers as any;
    globalThis.Request = Request as any;
    globalThis.Response = Response as any;
    globalThis.FormData = FormData as any;
  }
  if (typeof globalThis.TextEncoderStream === 'undefined') {
    globalThis.TextEncoderStream = TextEncoderStream;
    globalThis.TextDecoderStream = TextDecoderStream;
  }
  if (typeof globalThis.WritableStream === 'undefined') {
    globalThis.WritableStream = WritableStream as any;
    globalThis.ReadableStream = ReadableStream as any;
  }
  if (typeof globalThis.crypto === 'undefined') {
    globalThis.crypto = crypto.webcrypto as any;
  }
}

Since fetch has been built into Node for a while now, commenting out these two lines in stytch-node/lib/shared
/index.ts actually fixed my issue, so I'm confident the error I'm getting is an issue with isomorphic-unfetch.
// import * as fetchImport from "isomorphic-unfetch";

// const fetch = (fetchImport.default || fetchImport) as typeof fetchImport.default;

This should be pretty straightforward to fix. Just install undici and replace those two lines with the following:
import { fetch } from 'undici';

if (typeof global !== 'undefined' && typeof globalThis.fetch !== 'function' && typeof process !== 'undefined' && process.versions.node) {
  globalThis.fetch = fetch;
}

Hey @joshdchang thanks for the pointer to undici! Here are my thoughts so far:

We still support Node v16 LTS, which doesn't have native fetch unless ran with the --experimental-fetch flag, so we still need a fallback
We prefer ponyfills over polyfills, because ideally our library should not be mucking around with any other libraries. If installing stytch-node breaks something else, that's a bad time
I was unable to reproduce the ReferenceError: self is not defined using the latest version of wrangler. I've opened up https://github.com/stytchauth/stytch-node/pull/252 to show how I am testing with Cloudflare Workers.
I was able to replicate the `"TypeError: First parameter has member 'readable' that is not a ReadableStream." so we should be able to take a look at that soon

!! Looks like Node 16 got EOL'd early! Looks like we can do something sooner.

https://github.com/stytchauth/stytch-node/pull/255 should address this by dropping support for Node 16, dropping isomorphic-unfetch completely, and using the builtin fetch API directly. We'll likely take a few days to let this bake, but I've tested it out in Cloudflare Workers, Vercel Remix Serverless, Vercel NextJS Serverless, & Vercel NextJS Edge Runtimes so far.
If you'd like to try it out yourself, a package is available at<EMAIL_ADDRESS>or stytch@next.


define SYS_renameat2 + flags on linux

Motivation: there is no glibc wrapper for this syscall

For comparison: https://github.com/systemd/systemd/blob/master/src/basic/missing_syscall.h#L201

@bors: r+
Thanks!

:pushpin: Commit 4777eb5 has been approved by alexcrichton

:hourglass: Testing commit 4777eb512d64623273ec2c4377cbf8f326144a3b with merge 8ce95e0a453ae7bb938e2a693501a347c1080d8a...

:broken_heart: Test failed - status-travis

I had to exclude musl libc from renameat2.

@bors: r+

:pushpin: Commit 8c24117 has been approved by alexcrichton

:hourglass: Testing commit 8c24117c6369d6be40302070dc7871d02f6ea876 with merge b1ec886ac8c812209e2ec0e10ee35b9a504fac64...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing b1ec886ac8c812209e2ec0e10ee35b9a504fac64 to master...


ironmq CI tests fail

In all recent PR builds. - eg https://github.com/apache/pekko-connectors/actions/runs/9486627304
Creating network "pekko-connectors_default" with the default driver
Creating volume "pekko-connectors_kudu-tserver-data" with default driver
Pulling ironauth (iron/auth:)...
latest: Pulling from iron/auth
[DEPRECATION NOTICE] Docker Image Format v1 and Docker Image manifest version 2, schema 1 support is disabled by default and will be removed in an upcoming release. Suggest the author of docker.io/iron/auth:latest to upgrade the image to the OCI Format or Docker Image manifest v2, schema 2. More information at https://docs.docker.com/go/deprecated-image-specs/
Error: Process completed with exit code 1.

refference to
https://github.com/etcd-io/etcd/discussions/17811
maybe we shoulde add a version for iron/auth and iron/mq

https://hub.docker.com/r/iron/mq is unmaintained. No images have been published in years.

https://hub.docker.com/r/iron/mq is unmaintained. No images have been published in years.
Yes. I think the error won't go away unless there is an image compliant with OCI standard / Docker v2.

We either:

Don't test on iron/mq
Republish a ironmq image that is compliant with OCI standard.
Reach out the ironmq team

I emaile IronMQ support earlier. I'll see if they respond.

refference to etcd-io/etcd#17811 maybe we shoulde add a version for iron/auth and iron/mq

I think that's not quiet the same thing:

the refference issue is because etcd team didn't use v2 format to publish their latest tag.
this issue is because the docker image is not even maintained in docker hub...

I emaile IronMQ support earlier. I'll see if they respond.

Thanks.
In addition, i think ironmq team required users to build the docker image from themself, see: https://github.com/iron-io/dockerworker. Do you think this information will be helpful?

The code in https://github.com/iron-io/dockerworker is 8/9 years old. Has checked in jars.
We really have to ask ourselves, who would be using this sort of unmaintained stuff and whether Pekko should support it.

I git pull and git tag the image, the manifest will changed to schema-v2.
We have some ways to solve it:

drop this module
git pull, git tag, git push to pekko in dockerhub,  This may involve some license issues
Waiting for iron to fix it, but I don't think they will because the Dockerhub image has not been maintained for a long time
so should we
just disable the test

I aggre to drop the module.

I agree dropping the module seems reasonable. If someone steps up and offers to revive/maintain the module they can do so outside of the ASF.
Might be worth highlighting on the dev list?

IronMQ support suggested trying this env variable.
DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE=true
This does not help on my Mac laptop. I found the setting in Docker docs but Googling it doesn't return many matches. Even if it worked, it only buys us a bit of time until Docker drops support for the old image format altogether.


"Create new Safe" uses too low gas limit

Title/Description
"Create new Safe" uses too low gas limit
Environment

Browser: Firefox 84.0b7 (Manjaro Linux)
Safe: N/A
Wallet: Fortmatic, Authereum, WalletConnect (Authereum)
App Version: v2.16.0
Environment:

production (mainnet)

Steps to reproduce

Go to https://gnosis-safe.io/app/
Click on "Connect"
Connect one of these wallets: Fortmatic, Authereum or WalletConnect (Authereum)
Click on "Create new Safe"
Add 2 owners
Click on "Review"
Click on "Submit"
Approve the transaction in wallet

Expected result
The correct gas limit (314102 according to https://germartinez.github.io/gnosis-safe-calculator/) is set and the Safe is created successfully.
Obtained result
The wrong gas limit (200000) is used, causing the transaction to fail.
Fortmatic: Out of gas.
Authereum: "Transaction cancelled. The transaction execution will fail. Try adjusting some parameters."
Screenshots
Fortmatic: https://etherscan.io/tx/0xc2d44e04eb761d658e3accab548dd66531fc94392e2c0d3de998b6af102dc01d
Authereum:
Screenshot

Hey @teohhanhui,
Thanks for the report!
Unfortunately, I am not able to reproduce it.
In the text you say you added 2 owners, however in that tx you sent, only 1 owner address provided (https://etherscan.io/tx/0xc2d44e04eb761d658e3accab548dd66531fc94392e2c0d3de998b6af102dc01d, can be seen e.g. by decoding the tx data and the payload to the setup function on the Safe contract. The owner is 0x7299a8b62f32b11514501096db482ab61e9e8de2)
I just successfully create a Safe with this 1 owner via Fortmatic: https://gnosis-safe.io/app/#/safes/0xe1b92bfdc7DFFd087877bD003F059C313df9E366/balances. So you have a free Safe now, if you'd like to have it ;)
Also, in that tx, createProxy is used. With the 2.16.0 release of the web interface at https://gnosis-safe.io/app we actually switched to createProxyWithNonce. That's odd. I asked the team if there's any way how this could happen.
Is this issue still reliably reproducible for you?

@teohhanhui that transaction you shared is actually 65 days old. 2.16.0 was just release last week. We have since implemented improvements which should prevent the "gas too low" issue.
I am going to close this issue for now. In case this still persists for you please reopen again!

I was trying with WalletConnect / Authereum just yesterday. The bug is valid.
But you're right, that failed transaction I did with Fortmatic was old, and I only added 1 owner. :smile:

I was trying with WalletConnect / Authereum just yesterday. The bug is valid.

Hm, thanks for checking again. I'm still unable to reproduce :-/ Just making sure I get things right:

You are on Firefox and Manjaro Linux
You are on Ethereum mainnet
You are on https://gnosis-safe.io/app/
You connect your Authereum wallet (0xd928d32f3895f383161326e293373397b2bc9bd3) via Walletconnect to the safe website
You have selected DAI as fee token in Authereum.
You attempt to create a Safe with 2 owners and threshold 2

Is this correct?

Correct, except it's 2 owners with a threshold of 1.


[FLINK-22730][table-planner-blink] Add per record code when generating table function collector code for lookup joins

What is the purpose of the change
Currently lookup join condition with CURRENT_DATE fails to filter records. See FLINK-22730 for details. This PR fixes this issue.
Brief change log

Add per record code when generating table function collector code for lookup joins

Verifying this change
This change added tests and can be verified by running the added tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@JingsongLi please help with the review.


Many-to-many relationships

React-admin only provides a ReferenceManyToMany field as part of the enterprise edition, it would likely also require us to expose the association table as another resource.
However, SQLAlchemy can handle all the relationship lookups for us automatically. So, it may be a better to create a new getMany (current getMany() just calls the getList endpoint) endpoint that just gets SQLAlchemy to return the linked items through the ORM automatically. Then we can just use regular ReferenceManyFields for all ToMany relationships.

Possibly this can be used as the input component: https://marmelab.com/react-admin/ReferenceArrayInput.html


Abort transactions with already spent InputIDs

Motivation
This PR adds logic to VM::atomic_speculate to track spent InputIDs and abort transactions that attempt to spend an InputID that was already spent in this block.
Note: We may want to use the InputStore::get_speculative instead of per block trackers in atomic_speculate.
Related to: https://github.com/AleoHQ/snarkOS/pull/2852
Test Plan
A test has been added to check that the possible double spends are caught and aborted.

It seems check at atomic_speculate  is needless, we've already checked at check_next_block https://github.com/AleoHQ/snarkVM/blob/testnet3/ledger/block/src/verify.rs#L416

The logic change in atomic_speculate is not just a check, as it fully aborts subsequent transactions with spent InputIDs before creating a block. The check in check_next_block is to validate that the final block is well-formed.


Include default template rules for packaging resources

What this PR does / why we need it:
This PR include default templateRules for kapp-controller's packaging resources; PackageRepository, PackageInstall and App. Since kapp and kapp-controller are companions it seems helpful.
In particular, the following templateRules are added to the defaults:

PackageRepository (according to spec)

.spec.fetch.inline.pathsFrom[].secretRef
.spec.fetch.inline.pathsFrom[].configMapRef

PackageInstall (according to spec)

.spec.values[].secretRef
.spec.cluster.kubeconfigSecretRef

App (according to spec)

.spec.cluster.kubeconfigSecretRef
.spec.fetch[].inline.pathsFrom[].secretRef
.spec.fetch[].inline.pathsFrom[].configMapRef
.spec.fetch[].imgpkgBundle.secretRef
.spec.fetch[].http.secretRef
.spec.fetch[].git.secretRef
.spec.fetch[].helmChart.repository.secretRef
.spec.template[].ytt.inline.pathsFrom[].secretRef
.spec.template[].ytt.inline.pathsFrom[].configMapRef
.spec.template[].ytt.valuesFrom[].secretRef
.spec.template[].ytt.valuesFrom[].configMapRef
.spec.template[].helmTemplate.valuesFrom[].secretRef
.spec.template[].helmTemplate.valuesFrom[].configMapRef
.spec.template[].cue.valuesFrom[].secretRef
.spec.template[].sops.pgp.privateKeySecretRef

Which issue(s) this PR fixes:

Fixes #596
Does this PR introduce a user-facing change?

Include default template rules for _kapp-controller_'s `PackageRepository`, `PackageInstall` and `App` resources.

Questions for the maintainers:

Is this change wanted at all? From what I can tell, additional template rules are a non-invasive / non-breaking change. However, I can't intuit if this could have unwanted effects on kapp-controller.

After studying the code base, I think to understand that there are no (focused) tests for the default config in general and its template rules in particular. However, this change needs to be tested. Before I invest, I would love to know the maintainers recommendation for covering this. There are unit tests for versioned resources and e2e tests. I imagine tests for the default config to sit in between them, e.g. maybe a default_test.go which contains TestDefaultTemplateRules_{PackageRepository, PackageInstall, App}.
In the meantime, I have manually tested the new rules. See details in comment.

Additional Notes for your reviewer:
Review Checklist:

[ ] Follows the developer guidelines
[ ] Relevant tests are added or updated
[ ] Relevant docs in this repo added or updated
[ ] Relevant carvel.dev docs added or updated in a separate PR and there's
a link to that PR
[ ] Code is at least as readable and maintainable as it was before this
change

Additional documentation e.g., Proposal, usage docs, etc.:

(see PR description for Q about testing)
In the meantime, here's how I've manually tested this change so far.
#! test.yaml
---
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageRepository
metadata:
  name: test
spec:
  fetch:
    inline:
      pathsFrom:
        - secretRef:
            name: test-secret
        - configMapRef:
            name: test-configmap

---
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageInstall
metadata:
  name: test
spec:
  values:
    - secretRef:
        name: test-secret
  cluster:
    kubeconfigSecretRef:
      name: test-secret

---
apiVersion: kappctrl.k14s.io/v1alpha1
kind: App
metadata:
  name: test
spec:
  cluster:
    kubeconfigSecretRef:
      name: test-secret
  fetch:
    - inline:
        pathsFrom:
          - secretRef:
              name: test-secret
          - configMapRef:
              name: test-configmap
    - imgpkgBundle:
        secretRef:
          name: test-secret
    - http:
        secretRef:
          name: test-secret
    - git:
        secretRef:
          name: test-secret
    - helmChart:
        repository:
          secretRef:
            name: test-secret
  template:
    - ytt:
        inline:
          pathsFrom:
            - secretRef:
                name: test-secret
            - configMapRef:
                name: test-configmap
        valuesFrom:
          - secretRef:
              name: test-secret
          - configMapRef:
              name: test-configmap
    - helmTemplate:
        valuesFrom:
          - secretRef:
              name: test-secret
          - configMapRef:
              name: test-configmap
    - cue:
        valuesFrom:
          - secretRef:
              name: test-secret
          - configMapRef:
              name: test-configmap
    - sops:
        pgp:
          privateKeySecretRef:
            name: test-secret

---
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
  annotations:
    kapp.k14s.io/versioned: ""
data:
  config.yml: ""

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-configmap
  annotations:
    kapp.k14s.io/versioned: ""
data:
  config.yml: ""

go run cmd/kapp/kapp.go deploy --app test --yes --diff-changes --diff-run --file test.yaml

Target cluster 'https://<IP_ADDRESS>:56481' (nodes: kind-control-plane)

@@ create secret/test-secret-ver-1 (v1) namespace: default @@
      0 + apiVersion: v1
      1 + data:
      2 +   config.yml: <-- value not shown (#1)
      3 + kind: Secret
      4 + metadata:
      5 +   annotations:
      6 +     kapp.k14s.io/versioned: ""
      7 +   labels:
      8 +     kapp.k14s.io/app: "1663512989648583000"
      9 +     kapp.k14s.io/association: v1.2af780e8ffab3a405b9c89686418b58a
     10 +   name: test-secret-ver-1
     11 +   namespace: default
     12 +
@@ create configmap/test-configmap-ver-1 (v1) namespace: default @@
      0 + apiVersion: v1
      1 + data:
      2 +   config.yml: ""
      3 + kind: ConfigMap
      4 + metadata:
      5 +   annotations:
      6 +     kapp.k14s.io/versioned: ""
      7 +   labels:
      8 +     kapp.k14s.io/app: "1663512989648583000"
      9 +     kapp.k14s.io/association: v1.3b489d168caf3f033eb1d98e482fc052
     10 +   name: test-configmap-ver-1
     11 +   namespace: default
     12 +
@@ create packagerepository/test (packaging.carvel.dev/v1alpha1) namespace: default @@
      0 + apiVersion: packaging.carvel.dev/v1alpha1
      1 + kind: PackageRepository
      2 + metadata:
      3 +   labels:
      4 +     kapp.k14s.io/app: "1663512989648583000"
      5 +     kapp.k14s.io/association: v1.1d9d3c5a5fa754c7715d4707b9774382
      6 +   name: test
      7 +   namespace: default
      8 + spec:
      9 +   fetch:
     10 +     inline:
     11 +       pathsFrom:
     12 +       - secretRef:
     13 +           name: test-secret-ver-1
     14 +       - configMapRef:
     15 +           name: test-configmap-ver-1
     16 +
@@ create packageinstall/test (packaging.carvel.dev/v1alpha1) namespace: default @@
      0 + apiVersion: packaging.carvel.dev/v1alpha1
      1 + kind: PackageInstall
      2 + metadata:
      3 +   labels:
      4 +     kapp.k14s.io/app: "1663512989648583000"
      5 +     kapp.k14s.io/association: v1.8da39a73cfc4136f8ac556df26e520ea
      6 +   name: test
      7 +   namespace: default
      8 + spec:
      9 +   cluster:
     10 +     kubeconfigSecretRef:
     11 +       name: test-secret-ver-1
     12 +   values:
     13 +   - secretRef:
     14 +       name: test-secret-ver-1
     15 +
@@ create app/test (kappctrl.k14s.io/v1alpha1) namespace: default @@
      0 + apiVersion: kappctrl.k14s.io/v1alpha1
      1 + kind: App
      2 + metadata:
      3 +   labels:
      4 +     kapp.k14s.io/app: "1663512989648583000"
      5 +     kapp.k14s.io/association: v1.93248f12c712bc5436fdd56b8be5641d
      6 +   name: test
      7 +   namespace: default
      8 + spec:
      9 +   cluster:
     10 +     kubeconfigSecretRef:
     11 +       name: test-secret-ver-1
     12 +   fetch:
     13 +   - inline:
     14 +       pathsFrom:
     15 +       - secretRef:
     16 +           name: test-secret-ver-1
     17 +       - configMapRef:
     18 +           name: test-configmap-ver-1
     19 +   - imgpkgBundle:
     20 +       secretRef:
     21 +         name: test-secret-ver-1
     22 +   - http:
     23 +       secretRef:
     24 +         name: test-secret-ver-1
     25 +   - git:
     26 +       secretRef:
     27 +         name: test-secret-ver-1
     28 +   - helmChart:
     29 +       repository:
     30 +         secretRef:
     31 +           name: test-secret-ver-1
     32 +   template:
     33 +   - ytt:
     34 +       inline:
     35 +         pathsFrom:
     36 +         - secretRef:
     37 +             name: test-secret-ver-1
     38 +         - configMapRef:
     39 +             name: test-configmap-ver-1
     40 +       valuesFrom:
     41 +       - secretRef:
     42 +           name: test-secret-ver-1
     43 +       - configMapRef:
     44 +           name: test-configmap-ver-1
     45 +   - helmTemplate:
     46 +       valuesFrom:
     47 +       - secretRef:
     48 +           name: test-secret-ver-1
     49 +       - configMapRef:
     50 +           name: test-configmap-ver-1
     51 +   - cue:
     52 +       valuesFrom:
     53 +       - secretRef:
     54 +           name: test-secret-ver-1
     55 +       - configMapRef:
     56 +           name: test-configmap-ver-1
     57 +   - sops:
     58 +       pgp:
     59 +         privateKeySecretRef:
     60 +           name: test-secret-ver-1
     61 +

Changes

Namespace  Name                  Kind               Age  Op      Op st.  Wait to    Rs  Ri
default    test                  App                -    create  -       reconcile  -   -
^          test                  PackageInstall     -    create  -       reconcile  -   -
^          test                  PackageRepository  -    create  -       reconcile  -   -
^          test-configmap-ver-1  ConfigMap          -    create  -       reconcile  -   -
^          test-secret-ver-1     Secret             -    create  -       reconcile  -   -

Op:      5 create, 0 delete, 0 update, 0 noop, 0 exists
Wait to: 5 reconcile, 0 delete, 0 noop

Succeeded

Thanks for the PR! Gonna take a closer look at this first thing Monday ❤

Hey @mamachanko ! So sorry I totally responded to this on my brain. I verified that all Secret and ConfigMap references.
Would you be open to adding a test for this? I will look up and drop links to similar tests if that helps!

I verified that all Secret and ConfigMap references.

Nice. Thanks for going over them!

Would you be open to adding a test for this?

Yes, I'd be happy to. I will test a few limited cases first and check in with you to vet the approach before going through the full lot.

@100mik I won't be able to add tests right away, because time and obligations. There's no rush here, is that right?
In the meantime, if you are able to point me at existing tests, that'd be helpful. However, as far as I can tell, no tests exercise the default configuration's templating rules yet.

Hey! Absolutely no rush from our side.
Today, the only test we have for template rules is an E2E test. I think the example you shared above is perfect ! It can be captured in an E2E test in a similar manner (like the existing one).
It might be cool to figure out if we can have tabular unit tests for template rules. But that would definitely be a separate PR altogether 🤔

@100mik

I think the example you shared above is perfect ! It can be captured in an E2E test in a similar manner (like the existing one)

To have an e2e test with example shared by @mamachanko will require installation and deletion of kapp-controller as well, as  CRDs of PackageInstall, App and PackageRepository will require to deploy these resources.  I think installation of kapp-controller  will be bit heavy in e2e test.
Alternative of this could be adding of  CRDs  of these resources in the manifest instead of using kapp-controller might be helpful.

Yep that makes sense, I think deploying the latest kapp-controller release while applying only CRDs using filters.
And we just need to check the diff, so we can set --wait=false while testing the template rules 🤔

@kumaritanushree @100mik Before committing to an E2E test scenario, I wanted to explore a more unit-style approach. After discovering all the required types and APIs I drafted a table-driven default_template_rules_test.go.

@mamachanko I was also thinking to have unit test instead of E2E for this scenario. For template rules we already have E2E test via versioned resources. I am fine fine with this. 👍

@kumaritanushree @100mik Before committing to an E2E test scenario, I wanted to explore a more unit-style approach. After discovering all the required types and APIs I drafted a table-driven default_template_rules_test.go.

@mamachanko I was also thinking to have unit test instead of E2E for this scenario. For template rules we already have E2E test via versioned resources. I am fine with this. 👍

Thank you!
default_template_rules_test.go now tests the newly added template rules for kapp-controller's resources.
The PR is ready for review. 🔍

default_template_rules_test.go now tests the newly added template rules for kapp-controller's resources.

@mamachanko  I think file name should be default_test.go so that if in future if required we can add test for other rules as well in the same file.
default_template_rules_test.go  sounds like this will have only test for template rules.

default_template_rules_test.go now tests the newly added template rules for kapp-controller's resources.

@mamachanko I think file name should be default_test.go so that if in future if required we can add test for other rules as well in the same file. default_template_rules_test.go sounds like this will have only test for template rules.

@kumaritanushree  Great point. Renamed the file. ✔

LGTM
@mamachanko just one unresolved comment.


[libyuv] Build error

Copy issue body from D:/rustDesk-work/vcpkg/installed/vcpkg/issue_body.md
issue_body.md

Package: libyuv:x64-windows-static -> 1857
Host Environment

Host: x64-windows
Compiler: MSVC 19.29.30152.0
vcpkg-tool version: 2023-09-15-ac02a9f660977426b8ec6392919fbb1d51b10998
vcpkg-scripts version: 5016afa7e 2023-10-12 (7 hours ago)

To Reproduce
vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
Failure logs
-- Fetching https://chromium.googlesource.com/libyuv/libyuv 0faf8dd0e004520a61a603a4d2996d5ecc80dc3f...
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: "d:/Program Files/Git/cmd/git.exe" fetch https://chromium.googlesource.com/libyuv/libyuv 0faf8dd0e004520a61a603a4d2996d5ecc80dc3f --depth 1 -n
    Working Directory: D:/rustDesk-work/vcpkg/downloads/git-tmp
    Error code: 128
    See logs for more information:
      D:\rustDesk-work\vcpkg\buildtrees\libyuv\git-fetch-x64-windows-static-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_from_git.cmake:86 (vcpkg_execute_required_process)
  ports/libyuv/portfile.cmake:3 (vcpkg_from_git)
  scripts/ports.cmake:168 (include)

D:\rustDesk-work\vcpkg\buildtrees\libyuv\git-fetch-x64-windows-static-err.log
fatal: unable to access 'https://chromium.googlesource.com/libyuv/libyuv/': Failed to connect to chromium.googlesource.com port 443 after 21100 ms: Couldn't connect to server

@freefireyx, The download works for me. I would guess that you network provider is the problem, try to see if you can access this address: https://chromium.googlesource.com/libyuv/libyuv/, if you cannot access it directly, please check whether the network or proxy settings are correct.
Elapsed time to handle opus:x64-windows-static: 22 s
Total install time: 4.2 min
libvpx provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(unofficial-libvpx CONFIG REQUIRED)
  target_link_libraries(main PRIVATE unofficial::libvpx::libvpx)

libyuv provides CMake targets:

    find_package(libyuv CONFIG REQUIRED)
    target_link_libraries(main PRIVATE yuv)

    # WARNING
    # You are using MSVC to compile libyuv, which results in a very slow library.
    # MSVC won't compile any of the acceleration codes.
    # See workarounds: https://github.com/microsoft/vcpkg/issues/28446


[Migration] New configurations related to OTP pattern are added

Describe the issue:
Related Issue - https://github.com/wso2/product-is/issues/14808
IS versions up to 6.1 have the following configuration supported for Account Recovery Governance Connector.
[identity_mgt.password_reset_sms]
sms_otp_regex = "custom_regex"

This is not supported in IS 7.0 and is replaced with the following new config
[identity_mgt.password_reset_email.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

In addition, same sms_otp_regex can be added to the following governance connectors < IS 7.0

Password reset flow
Self registration flow
Lite user registration flow
These are replaced by similar same above UI level configurations.

In addition, the following flows now support the new OTP pattern configuration

Related to forced password reset

[identity_mgt.password_reset_email.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

Related to Ask Password flow

[identity_mgt.user_onboarding.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

Related to user self registration flow

[identity_mgt.user_self_registration.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

Related to Lite user registraion flow

[identity_mgt.lite_user_registration.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

Related to user claim update flow

[identity_mgt.user_claim_update.otp]
send_otp_in_email = false
use_uppercase_in_otp = true
use_lowercase_in_otp = true
use_numeric_in_otp = true
otp_length = 6

Wouldn't this introduce a breaking change?

The config will be backward compatible with following changes.

https://github.com/wso2-extensions/identity-governance/pull/790
https://github.com/wso2/carbon-identity-framework/pull/5278
https://github.com/wso2/product-is/pull/18469

The new OTP pattern config will be resolved in terms on existing SMS OTP Regex pattern unless new OTP pattern config is explicitly configured for Account Recovery Governance Connector.


more tests

hey @adtrevor this adds a few test cases, you can just merge it and then those tests will go into your PR

@weissi Thank you !!


feat(VolumesFormSection): volume new select dropdown

⚠  depends on https://github.com/dcos/dcos-ui/pull/2529
Implements the new select dropdown containing title and description.
Closes DCOS-19404
Checklist

[x] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

Correct @orlandohohmeier I will come back to this when we get https://github.com/dcos/dcos-ui/pull/2529 merged. I'm working to fix that PR first.


[FLINK-34225][runtime] Fix bugs in input channel multiplexing logic

What is the purpose of the change
This PR fixes several bugs caused by #23927.
Brief change log

fixes the race conditions where notifyDataAvailable is invoked before notifyViewCreated.
fixes the buffer recycling logic in SingleInputGate.
avoids enqueuing input channel before it is initialized.

Verifying this change
The bugs used to happen frequently in my local TPCDS benchmark runs (scale = 1000), and TPCDS benchmark can pass with the fixes in this PR.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

Hi @reswqa could you please take a look at this PR?

@yunfengzhou-hub Thanks for the fix. I left some minor comments. PTAL