So, how exactly is this working on linux?

Not so much an issue, but a question, my apologies in advance.
As far as I can tell, the Linux Dualsense driver, both wired and wireless lack support for anything related to the triggers, so how is this managing it? Even Windows can't use the triggers wirelesly, is it more of a replacement driver than anything else?
Thanks!

Not so much an issue, but a question, my apologies in advance.
As far as I can tell, the Linux Dualsense driver, both wired and wireless lack support for anything related to the triggers, so how is this managing it? Even Windows can't use the triggers wirelesly, is it more of a replacement driver than anything else?
Thanks!

there is no official driver for this (I wish there was, it is so simple to add it :/), so we have to send raw HID data to the device to control the triggers. SDL2 handles this well (with bluetooth support), and so I just use SDL2's gamecontroller api to send raw HID commands to the controller. In essense it's 100% userspace and there is no kernel level driver or anything else involved. (you can obviously look at the source code for more details)

Not so much an issue, but a question, my apologies in advance.
As far as I can tell, the Linux Dualsense driver, both wired and wireless lack support for anything related to the triggers, so how is this managing it? Even Windows can't use the triggers wirelesly, is it more of a replacement driver than anything else?
Thanks!

there is no official driver for this (I wish there was, it is so simple to add it :/), so we have to send raw HID data to the device to control the triggers. SDL2 handles this well (with bluetooth support), and so I just use SDL2's gamecontroller api to send raw HID commands to the controller. In essense it's 100% userspace and there is no kernel level driver or anything else involved. (you can obviously look at the source code for more details)

So how come there's zero effort to upstream this. not wanting to step on Sony's toes? I know the dev from sony said that endev was not sufficient to expose these values.

Not so much an issue, but a question, my apologies in advance.
As far as I can tell, the Linux Dualsense driver, both wired and wireless lack support for anything related to the triggers, so how is this managing it? Even Windows can't use the triggers wirelesly, is it more of a replacement driver than anything else?
Thanks!

there is no official driver for this (I wish there was, it is so simple to add it :/), so we have to send raw HID data to the device to control the triggers. SDL2 handles this well (with bluetooth support), and so I just use SDL2's gamecontroller api to send raw HID commands to the controller. In essense it's 100% userspace and there is no kernel level driver or anything else involved. (you can obviously look at the source code for more details)

So how come there's zero effort to upstream this. not wanting to step on Sony's toes? I know the dev from sony said that endev was not sufficient to expose these values.

I really don't want to dip my toes in kernel development just yet, I really have no idea how to contribute or do anything in there. I might work on this as a kernel module in the future and upstream it, but there is still no guarantee that linus upstreams it, and weither it is a good interface for controlling the triggers in the first place.

If you have any further questions, you can move it over to the discussions page


css updated

changed colour and hover effect in side bar and nav bar

thanks for your pr @Paarmita 👍
Happy to merger it 👍


Source Link does not appear to work as expected

Source is not available in Visual Studio 2019 community edition.

This may be a side effect of the way the nuget packages were originally built and released, and may have resolved itself now that we have an appropriate GitHub hash associated.
Verify, but note to self don't pack from internal repository

What do we need to do to verify this is resolved?

My approach would be to build and make a nuget package from the master branch (even locally) with the last commit being to the GitHub origin master having the .git folder in tact. We'd then

Verify that the a compiler warning isn't issued (something that was not noticed before)
Peek into the .nupack & .nuspec (they're zips) for the appropriate urls, (not sure what I'm looking for just yet honestly)
Lastly consume the package locally as a dependency in a temp project and verifying that the source link seems to be working.

I don't know if this is the best approach, but it would in my estimate be a telling one.

This issue seems to be resolved, and should be covered in the next release by our current build pipeline.


amplify-nodejs-function-runtime-provider can't handle big responses

Describe the bug
I'm using bboure/serverless-appsync-simulator which is using amplify-nodejs-function-runtime-provider. When I return big long array as a response from the Lambda handler - literally nothing happens.
I did some digging and I discovered that the issue most probably comes from here:
https://github.com/aws-amplify/amplify-cli/blob/master/packages/amplify-nodejs-function-runtime-provider/src/utils/execute.ts#L94
According to this discussion the limit for process.send payload seems to be 65536. And when I tested it, it really stopped working after crossing this boundary. Unfortunately it doesn't throw any error.
Amplify CLI Version
The version of amplify-nodejs-function-runtime-provider  we use is 1.0.4
To Reproduce
Return some big long array as response from the Lambda resolver.
Expected behavior
Whole array should be returned in the response.
Desktop (please complete the following information):

OS: Mac
Node Version: 12.16.1

Additional context
If you need I can elaborate.

Hi @edwardfoyle ,
how is it going with this issue? Any ETA?
We are getting more and more people experiencing this bug.
Cheers,
@FilipPyrek.

The fix is included in amplify-cli version 4.26.0. Let me know if you anymore issues , comment on this and I will open the issue again.

Hi @akshbhu , unfortunately it doesn't seems to be really fixed to me. 🙈 😞
Now after I return a big chunk of data in bboure/serverless-appsync-simulator, whole process exits with code 1.
The stack trace is:
SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at ChildProcess.<anonymous> (./node_modules/amplify-nodejs-function-runtime-provider/src/utils/invoke.ts:24:27)
      at ChildProcess.emit (events.js:311:20)
      at ChildProcess.EventEmitter.emit (domain.js:482:12)
      at maybeClose (internal/child_process.js:1021:16)
      at Socket.<anonymous> (internal/child_process.js:443:11)
      at Socket.emit (events.js:311:20)
      at Socket.EventEmitter.emit (domain.js:482:12)
      at Pipe.<anonymous> (net.js:668:12)

When I put some console logs into invoke.js, it shown only part of the response data - that's why it was invalid JSON.

It seems like there is a problem with race condition. Because for same input query, same response data - there is sometimes error, and sometimes not. 🙈

I have seen that error too a couple of time too. I can confirm it happens randomly, and it works most of the time.
If the error occurs again I'll try to debug it too

Hi @FilipPyrek  @bboure
Thanks for reporting this. I tried it a couple of times when I changed it to stream but it was working fine. I will investigate if its some race condition happening there.@bbourne thanks for helping in debugging this issue.

@akshbhu with smaller amount of data, there are no erros at all. As the response size starts to increase, the error rate start to increase rapidly. For example with payload size around 10KB, it fails approx in 90% of requests.

Just open a PR that should fix this issue: https://github.com/aws-amplify/amplify-cli/pull/5107
Feel free to give it a try and give your feedback here.

Just open a PR that should fix this issue: #5107
Feel free to give it a try and give your feedback here.

Your PR fix most of the cases, but I found situations where the output was drained but there is still work to be done.
In the file https://github.com/aws-amplify/amplify-cli/blob/master/packages/amplify-nodejs-function-runtime-provider/src/utils/invoke.ts:
      lambdaFn.stdout.on('data', msg => {
        data += msg;
      });
      lambdaFn.on('close', () => {
        const lines = data.split('\n');
        if (lines.length > 1) {
          const logs = lines.slice(0, -1).join('\n');
          console.log(logs);
        }
        const lastLine = lines[lines.length - 1];
        try {
          const result = JSON.parse(lastLine);
          if (result.error) {
            reject(result.error);
          }
          resolve(result.result);
        } catch {
          resolve(lastLine)
        }
      });
      lambdaFn.catch((err) => {
        reject(err.message);
      });

the reject(err.message); can happens before the resolve happens after JSON.parse.
I'm creating a PR that will do something like this:
            let inClosePromise;
            const onClose = async () => {
                const lines = data.split('\n');
                console.error('[invoke] lambdaFn.on lines', lines);

                if (lines.length > 1) {
                    const logs = lines.slice(0, -1).join('\n');
                    console.log(logs);
                }
                const lastLine = lines[lines.length - 1];

                try {
                    const result = JSON.parse(lastLine);
                    console.error('[invoke] lambdaFn.on result', result);

                    if (result.error) {
                        reject(result.error);
                    }
                    resolve(result.result);
                }
                catch (_a) {
                    resolve(lastLine);
                }
            }
            lambdaFn.on('close', () => {
                inClosePromise = onClose();
            });
            lambdaFn.catch((err) => {
                if (inClosePromise ) {
                    inClosePromise.catch(() => {
                        reject(err.message);
                    })
                }
            });

The fix for this has been released in CLI v 4.32.0


Add image stats and integration test

Fixes https://github.com/kubernetes-incubator/cri-containerd/issues/195.
Part of https://github.com/kubernetes-incubator/cri-containerd/issues/121.
Depends on https://github.com/kubernetes/kubernetes/pull/52635.
This PR:

Update Kubernetes to include CRI stats fix. https://github.com/kubernetes/kubernetes/pull/52635
Add ImageFsInfo support.
Add integration test framework and integration test for ImageFsInfo.

@kubernetes-incubator/maintainers-cri-containerd

@miaoyq This PR is using mount.Lookup function in containerd, which may be useful for your PR.

@Random-Liu  Yes, I have used mount.GetMount function in docker, but I think mount.Lookup  is better.
I will use this function after merged.

@abhinandanpb @mikebrow Ready for review.

Will rebase after https://github.com/kubernetes-incubator/cri-containerd/pull/264 is merged.

@miaoyq @abhinandanpb @mikebrow Addressed/replied comments.

@abhinandanpb @mikebrow Addressed comments.
Will squash the latest 2 commits after LGTM.

Apply LGTM based on https://github.com/kubernetes-incubator/cri-containerd/pull/257#pullrequestreview-65029141.
Will merge it after test passes.


module 'keras.utils.generic_utils' has no attribute 'get_custom_objects'

This is the error I am getting when I am trying to import segmentation_models

Try to add
import os
os.environ['SM_FRAMEWORK'] = 'tf.keras'

before importing keras and segmentation_models.

Adding on to @jensleitloff 's answer, this answer on StackOverflow provides some more alternate approaches.
The accepted answer worked for me on a local machine and the answer in this thread worked for Kaggle/Colab.

this answer helped alot

this may help https://github.com/qubvel/segmentation_models/pull/582


Unrendered equation in chapter 4

Hi,
Thanks for this wonderful handbook!
In chapter 4 (see link to line in the Rmd file below), the closing bracket for \psi{} is missing:
https://github.com/tlverse/tlverse-handbook/blob/7001319f1004e26efbcdac3fefbfaaf1015cbc99/04-roadmap.Rmd#L575
Screenshot below of this link: https://tlverse.org/tlverse-handbook/roadmap.html#missingness

Thank you for your kind words about our book, and we're glad you've found it to be a helpful resource. The typo you spotted has been addressed in #31, which should be merged soon; thanks for helping us catch this.

Happy to have helped!


Add extraErrors prop (allows async validation)

Reasons for making this change
This is another attempt at adding async validation. The method used is similar to PR #874.
I have already outlined my idea in issue #1381.
Basically, what this PR does is add an extraErrors prop to the Form component. Errors in this prop are added to the other validation errors. This makes async validation possible because the surrounding component can perform async validation either on submit or on validation.
I have attempted to write tests but failed miserably, any help would be appreciated.
Checklist

[ ] I'm updating documentation

[ ] I've checked the rendering of the Markdown text I've added

[x] I'm adding or updating code

[ ] I've added and/or updated tests
[ ] I've updated docs if needed

[x] I'm adding a new feature

[x] I've updated the playground with an example use of the feature

Damn, i did not think of that. I'll try to think of a fix

I'm going to have to rewrite this, keep getting stuck with the submission blocking

i've completely rewritten this PR in a separate branch. Would you rather have me open a new PR or shall i change the source branch on this PR?

I think another PR would be good, so we can keep this PR for a record of the earlier attempt. Thanks!

Closed in favor of #1444


Class C support

Fixes #259
Tested against The Things Stack V3.7.0

@jpmeijers thanks for updating, please request review when ready!


Decouple VM from CairoRunner

Remove VM from CairoRunner
Now all CairoRunner methods receive a mutable reference to VM
Add method initialize_builtins in order to remove the creation of builtin runners from CairoRunner::new()
VirtualMachine::new() now creates an empty builtin runner vac
Move write_output call to cairo_run (and therefore now cairo_run also receives the print_output boolean argument)
Fix tests

Codecov Report

Merging #443 (7c4f4b6) into main (42bca5f) will increase coverage by 0.07%.
The diff coverage is 96.37%.

@@            Coverage Diff             @@
##             main     #443      +/-   ##
==========================================
+ Coverage   96.66%   96.74%   +0.07%
==========================================
  Files          54       54
  Lines        9124     9151      +27
==========================================
+ Hits         8820     8853      +33
+ Misses        304      298       -6

Impacted Files
Coverage Δ

src/main.rs
5.00% <0.00%> (+0.23%)
:arrow_up:

src/utils.rs
99.51% <ø> (ø)

tests/cairo_run_test.rs
99.19% <ø> (ø)

tests/bitwise_test.rs
96.82% <81.81%> (-3.18%)
:arrow_down:

tests/pedersen_test.rs
96.66% <90.00%> (-3.34%)
:arrow_down:

tests/struct_test.rs
92.85% <90.00%> (-7.15%)
:arrow_down:

src/cairo_run.rs
86.86% <95.23%> (+0.03%)
:arrow_up:

src/vm/runners/cairo_runner.rs
97.42% <98.01%> (+1.03%)
:arrow_up:

src/vm/vm_core.rs
96.75% <100.00%> (-0.18%)
:arrow_down:

...int_processor/builtin_hint_processor/hint_utils.rs
90.32% <0.00%> (-0.59%)
:arrow_down:

... and 3 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Most of CairoRunner's modified methods only operate on vm. This suggests these should just become VirtualMachine methods.

Most of CairoRunner's modified methods only operate on vm. This suggests these should just become VirtualMachine methods.

CairoRunner is in charge of initializing the vm and carrying out the relocation process. Moving these methods to VirtualMachine would delegate all responsibility to VirtualMachine which's responsibility begins once we enter the main execution loop (step). Also, these methods operate on both the runner and the vm.


Cannot build from source [help wanted]

$ git clone https://code.google.com/p/closure-stylesheets/
$ cd closure-stylesheets
$ mvn compile assembly:single
[INFO] Scanning for projects...

[INFO]
[INFO] --- maven-assembly-plugin:2.3:single (default-cli) @ closure-stylesheets ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.066s
[INFO] Finished at: Tue Aug 30 15:26:41 MSK 2016
[INFO] Final Memory: 16M/224M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.3:single (default-cli) on project closure-stylesheets: Error reading assemblies: No assembly descriptors found. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Works for me.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

You are correct. I have no idea what changed. I'm investigating.

Why are you doing assembly:single instead of package or verify?

We're trying to get a runnable JAR. I had that working this morning:
$ mvn clean                *[mvn-runnable-jar]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Closure Stylesheets 21060712-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ closure-stylesheets ---
[INFO] Deleting /Users/flan/Projects/closure-stylesheets/target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.647 s
[INFO] Finished at: 2016-08-30T14:06:39+02:00
[INFO] Final Memory: 7M/245M
[INFO] ------------------------------------------------------------------------
[~/Projects/closure-stylesheets]$ mvn compile assembly:single
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Closure Stylesheets 21060712-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact javacc:javacc:jar:4.1 has been relocated to net.java.dev.javacc:javacc:jar:4.1
[INFO]
[INFO] --- ph-javacc-maven-plugin:2.8.0:javacc (jjc1) @ closure-stylesheets ---
Java Compiler Compiler Version 6.1_2 (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file /Users/flan/Projects/closure-stylesheets/src/com/google/common/css/compiler/ast/GssParserCC.jj . . .
Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
File "TokenMgrError.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "CharStream.java" does not exist.  Will create one.
Parser generated successfully.
[INFO] Processed 1 grammar
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ closure-stylesheets ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/flan/Projects/closure-stylesheets/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ closure-stylesheets ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 201 source files to /Users/flan/Projects/closure-stylesheets/target/classes
[INFO]
[INFO] --- maven-assembly-plugin:2.6:single (default-cli) @ closure-stylesheets ---
[WARNING] While downloading javacc:javacc:4.1
  This artifact has been relocated to net.java.dev.javacc:javacc:4.1.

[INFO] Building jar: /Users/flan/Projects/closure-stylesheets/target/closure-stylesheets-21060712-SNAPSHOT-jar-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.262 s
[INFO] Finished at: 2016-08-30T14:06:58+02:00
[INFO] Final Memory: 49M/392M
[INFO] ------------------------------------------------------------------------

It's possible that I had some changes locally that I managed to blow away.

Ah, interesting. My failing run has this:
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (default-cli) @ closure-stylesheets ---

while the passing run has this:
[INFO] --- maven-assembly-plugin:2.6:single (default-cli) @ closure-stylesheets ---


Add configurable shard duration to retention policies

[x] CHANGELOG.md updated
[ ] Rebased/mergable
[x] Tests pass
[x] Sign CLA (if not already signed)

Allows configuration of shard group duration at database creation, and retention
policy create/alter time.
Query examples:
CREATE DATABASE testdb WITH DURATION 90d REPLICATION 1 SHARD DURATION 30m NAME rp_testdb
CREATE RETENTION POLICY rp_testdb2 ON testdb DURATION INF REPLICATION 1 SHARD DURATION 30m
ALTER RETENTION POLICY rp_testdb2 ON testdb SHARD DURATION 1h

This can be useful with long duration retention policies with lots of data, where
you can split into smaller shards to relieve memory pressure.

Sorry for all the rebases - realized after about 5 failed circle ci checks that I should be testing locally. The one thing I have not done is regenerate the pb files. Let me know if this looks ok and I'll get that part done as well.

cc @pauldix

Realized my commit message had the wrong syntax, fixed that and updated the PR comment

@oldmantaiter This looks great.  Would you be able to modify the syntax to be SHARD DURATION?
Other than that, I think it just needs a rebase.

@jwilder No problem, I'll take a look. As for any protobuf changes, are those considered part of PRs since the single node change in master?

@jwilder Updated to SHARD DURATION

@dgnorton Can you take a look?

+1 lgtm

:+1: @oldmantaiter Looks like it needs another rebase.

@jwilder rebased

Thanks @oldmantaiter!


Skewed text

I'm testing with a 128x32 OLED and when running the sys_info demo for example, the text is unreadable. The logo example shows a stretched logo. Is there possibly an error in the width/height calculation of the ssd1306 device?

It is possible - maybe quite likely. I have only ever used it on a 128x64 display against the SSD1306 IC, whereupon I got remote help from @xes to get it working on the SH1106 device (see #1).
Is the device you have definitely an SSD1306 ... can you try the SH1106 driver instead (it is in the same module).
Uploaded photo's would help diagnose the problem further.

I tried SH1106 and it didn't make a difference. It's horrible quality but here's a picture with the sys_info demo (without the 4th wlan line).

It looks as though it is showing every other line of pixels, as if the memory mapping is interleaved.
As an experiment, can you try setting the height to 64, and run either the demo.py or maze.py examples - these are full screen and might provide further clues as to what is happening.

@rm-hull I can sponsor and send you one from ebay, if you can email a shipping address to my committers email address.. 👍

It looks as though the multiplex settings need to be dependent on the height when the class is initialising. See conversation here: http://forum.espruino.com/conversations/269330/

Related issue: #6

Have a branch feature/init_sequence which might provide the correct initialization sequence for 128x32 and 96x16 sized OLED screens.
@thijstriemstra @eudoxos - could you checkout that branch and run:
$ sudo python setup.py install
$ python examples/demo.py --width=128 --height=32

Let me know if that works.
Note that some of the other demos will probably assume height=64 - will aim to fix these up as part of the push into master.

Will do. I would recommend pip install -e . from the root instead of python setup.py install..

@rm-hull it seems everything is still squashed but only the bottom 50% is visible.

Pic?

Or it didn't happen..? ;) Let me connect pi camera.

Actually .... just pushed another commit, if you could pull, install, try again pls?

Ok first the pic;

Woudl expect to see:

But your commit fixed it, nice!! New pic:

The final part of the demo with the scrolling date/time is not fully visible because of height.

:+1:
will fix up the sizes for the other demos in the next day or so & push it into master.

The bounce demo goes nuts, not enough space for these balls..

I tried the init_sequence branch now and I still see random pixels, though with a different pattern. The previous screen (see #70) was and still is with the master branch like this:

Now it is like this:

Sorry for bad news. Any further diagnostics I can try?

@eudoxos Ok, thanks for the update: lets re-open your original issue, and move the discussion to there instead

@thijstriemstra:

I can sponsor and send you one from ebay, if you can email a shipping address to my committers email address.. :+1: (update: on it's way)

Arrived today, and works great ... thankyou
[now I should go back and make sure all the demos work on that screen size]

Nice!


Add support for VAULT_NAMESPACE_FOR_DYNACONF

This should allow us to use namespaces for vault without having to specify VAULT_FOR_DYNACONF with the entire config.

Codecov Report

Merging #854 (895e988) into master (1625712) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##           master     #854   +/-   ##
=======================================
  Coverage   99.38%   99.38%
=======================================
  Files          21       21
  Lines        1802     1802
=======================================
  Hits         1791     1791
  Misses         11       11

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Create sjcc

Add entry for San Jose City College.
Official website: https://sjcc.edu/

@viveksh1 lib/domains/edu/sjcc: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@viveksh1 First stage of verification passed, official domain is sjcc.edu as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@viveksh1 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Use custom ports

For a specific use case, I need my Nginx ingress controller to listen on different ports than 80/443.
I cannot map my specific hosts ports (here 40080 and 40443) to ingress controller 80/443 ports because hostPort parameter is not working for now (see kubernetes/kubeadm#11 and kubernetes/kubernetes#31307 ). So I have no other choices than to map my container ports to my node ports (hostNetwork: True).
So, I tried to modify Nginx to use custom HTTP/S ports based on a configmap.
I work on a specific local branch and I already made some modifications.
But I'm stuck with some lua stuff. It appears that HTTP/S ports are hardcoded in rootfs/etc/nginx/lua/vendor/lua-resty-http/lib/resty/http.lua file. I don't know anything about lua so I am sure how to use custom ports in that part.
I can make a string substitution in this file at the Ingress controller startup, but not sure if it is the right way to do...
If anyone can help on this. Also interesting on feedback about this feature, maybe it is a too specific case.

This will be covered when #620 is fixed.

Closing. Please reopen if you have more questions


Grammar

In addition to these language issues, I'm wondering why the "Tarsnap help" was expanded in 4baba8a9d2251c16068bb59431babd3607845b84.  Do we really need all that intro text?  On my preferred window size for the app (around 500 x 550), the "Tarsnap help" takes up about a third of the vertical height.  I think that tab would be better if we had much shorter "Tarsnap help" text -- say, 3 or 4 lines, and without the "general introduction" text.
Would you mind if I rewrote that section?

Here's an excerpt from my todo list:

Improve Help pane text; or remove it completely.

If you can find a way to convene helpful "help" in less phrases go ahead. If not you're free to remove the entire section :-), but keep the About button somewhere for platforms that don't yield a system wide menu bar.


Add documentation for  tag dir attribute

Hello there!
I think it would be a good idea to introduce the concept of "Direction" regarding the dir attribute of the  tag on the pages, in order to adjust the reading direction according to the app's current language.
However, I don't think it's necessary to integrate this feature directly into Next International.
It seems to me that third-party libraries could handle this adequately.
Personally, I think it would be a good idea to document this and provide a solution. No more, no less.

Great idea, I agree that we could add a documentation about this. It should be pretty straitghtforward to implement manually.

Great idea, I agree that we could add a documentation about this. It should be pretty straitghtforward to implement manually.

Would you please share the code implementation here, I'm really in need of it right now.

Great idea, I agree that we could add a documentation about this. It should be pretty straitghtforward to implement manually.

Would you please share the code implementation here, I'm really in need of it right now.

I know that i18next integrates this feature.
So... Maybe something like this?
export function getCleanedCode(code) {
  if (code && code.indexOf('_') > 0) return code.replace('_', '-');
  return code;
}

export function formatLanguageCode(code) {
  // http://www.iana.org/assignments/language-tags/language-tags.xhtml
  if (typeof code === 'string' && code.indexOf('-') > -1) {
    const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];
    let p = code.split('-');

    if (this.options.lowerCaseLng) {
      p = p.map((part) => part.toLowerCase());
    } else if (p.length === 2) {
      p[0] = p[0].toLowerCase();
      p[1] = p[1].toUpperCase();

      if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
    } else if (p.length === 3) {
      p[0] = p[0].toLowerCase();

      // if length 2 guess it's a country
      if (p[1].length === 2) p[1] = p[1].toUpperCase();
      if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();

      if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
      if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());
    }

    return p.join('-');
  }

  return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;
}

export function getLanguagePartFromCode(code) {
  code = getCleanedCode(code);
  if (!code || code.indexOf('-') < 0) return code;

  const p = code.split('-');
  return formatLanguageCode(p[0]);
}

export function dir(lng) {
  const rtlLngs = [
      'ar',
      'shu',
      'sqr',
      'ssh',
      'xaa',
      'yhd',
      'yud',
      'aao',
      'abh',
      'abv',
      'acm',
      'acq',
      'acw',
      'acx',
      'acy',
      'adf',
      'ads',
      'aeb',
      'aec',
      'afb',
      'ajp',
      'apc',
      'apd',
      'arb',
      'arq',
      'ars',
      'ary',
      'arz',
      'auz',
      'avl',
      'ayh',
      'ayl',
      'ayn',
      'ayp',
      'bbz',
      'pga',
      'he',
      'iw',
      'ps',
      'pbt',
      'pbu',
      'pst',
      'prp',
      'prd',
      'ug',
      'ur',
      'ydd',
      'yds',
      'yih',
      'ji',
      'yi',
      'hbo',
      'men',
      'xmn',
      'fa',
      'jpr',
      'peo',
      'pes',
      'prs',
      'dv',
      'sam',
      'ckb'
    ];

  return rtlLngs.indexOf(getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1
    ? 'rtl'
    : 'ltr';
}

Then:
// * ... import dir from '...'

const PagesHtmlElement: FunctionComponent<HtmlElementProps> = ({ children, params }) => {
  const locale = params.locale;
  return (

    {children}

)

See also: https://github.com/i18next/i18next/blob/master/src/i18next.js (the dir function is at line 507)

There are also NPM libs for this purpose.
Like this one (idk if it fits your needs, I haven't tested any of those libs yet): https://www.npmjs.com/package/rtl-detect

Hi @QuiiBz
I currently encounter some edge cases with dir="rtl" / dir="ltr".
I would like to know: is there a onLocaleChange event/hook?
Maybe I could make a new issue to request this feature, but I prefer to primarily ask it here since it is related to this issue too.

'k. onLocaleChange is pointless.
Here is a minimalist example of what I've done:
'use client';

import { useChangeLocale, useCurrentLocale } from '@/i18n/client';
import { FunctionComponent, useEffect } from 'react';

interface LanguageSwitcherProps {}

const LanguageSwitcher: FunctionComponent<LanguageSwitcherProps> = () => {
  const currentLocale = useCurrentLocale();
  const changeLocale = useChangeLocale();

  useEffect(() => {
    if (currentLocale === 'some-rtl-locale') document.documentElement.dir = 'rtl';
    else document.documentElement.dir = 'ltr';
  }, [currentLocale]);

  return (

      <button onClick={() => changeLocale('en')}>EN</Button>
      <button onClick={() => changeLocale('fr')}>FR</Button>

  );
};
export default LanguageSwitcher;

Looks great. Do you want to send a PR to add #220 (comment) and your useEffect above to the documentation?

It would be nice if I could do a little PR for the occasion! :)
I might take a bit of time though, I don't think I'll be able to do it before the weekend.

Hello @QuiiBz
I found a way to make work the solution you described in https://github.com/QuiiBz/next-international/issues/220#issuecomment-1749140518
Even on Firefox, even on client component.
Using this polyfill: https://github.com/brettz9/intl-locale-textinfo-polyfill
Like this:
import Locale from 'intl-locale-textinfo-polyfill';
const { direction: dir } = new Locale(locale).textInfo;

  // * ...
  return (

    // * ...

However, there is a small issue with this polyfill, which requires an ugly workaround for now:
https://github.com/brettz9/intl-locale-textinfo-polyfill/issues/1
Although there's a need to write this rather ugly Typescript definition file, I think it's worth using this polyfill, especially as its developer seems rather active, and this issue should be solved within a reasonable time.

I'm thinking of using this as a basis for RTL/LTR handling documentation (with the polyfill).
I'll create the PR tomorrow.

Looks great, thanks for the investigation!

Okay, I think the PR is done: https://github.com/QuiiBz/next-international/pull/273
I'm looking forward to read your review. :)
(I'm somehow a messy person, and I need to proofread a lot before I'm satisfied with my work.
Sorry for spamming.)

The author of 'intl-locale-textinfo-polyfill' just fixed the ponyfill import issue https://github.com/brettz9/intl-locale-textinfo-polyfill/issues/1#issuecomment-1784211024
We don't need the ugly Typescript definition file workaround to use it anymore.

Oops... I don't see the documentation page, nor on mobile, nor on desktop.

Awesome!


Support for cloud Apache Spark Clusters

[x] Support AWS's EMR Service for the Apache Spark benchmark.
[ ] Support PKB-created Apache Spark Clusters
[x] Pass arguments to SubmitJob
[x] Get output from  SubmitJob
[ ] Support setting Spark Cluster properties

This is cool to see.  Congrats.

What is the status of this?

The three checked-off items are done.  Pull request 1104 adds support for hadoop jobs and uses PKB-created hadoop clusters.   It also reworks the hadoop_terasort_benchmark to use the framework.
The next step is to add a PKB-installed spark, and the support for setting cluster properties.
It'd be super-nice to add support for HDInsights (currently just AWS and GCP are supported), but I don't know if I'm going to have time.

Hi,
Is there any progress on  'PKB-installed spark' item?
Regards,
Mateusz


docs: 📚 update Sphinx docs

Description
Update Sphinx documentation build.
Type of change

[X] Docs

How Has This Been Tested?

[X] Catch2 tests run with all tests passing

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 56.03%. Comparing base (34ddebc) to head (72d79ec).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

@@           Coverage Diff           @@
##             main     #171   +/-   ##
=======================================
  Coverage   56.03%   56.03%
=======================================
  Files          11       11
  Lines         671      671
  Branches      175      175
=======================================
  Hits          376      376
  Misses        290      290
  Partials        5        5


Need to save the app before moving between pages

Create a Business Partner Details Page > Enable Navigation from Home Page to Details Page > 12
Saving the app is required before moving to the next step

fixed


the  Node shell dont work,

the node shell pod likes runing, but i cannt use it for connect  my node
the terminal status is also
Connecting ...

What platform are you on?
What version are you running?
Can you post some logs
Please fill out the bug template next time.

I had the same problem on MacOS with 6.1.14 but with the newer ones it works again.


Implement uniform help interface (buttons and dialog widget)

This is implemented since at least bcbec57. See app/help/ and in particular /app/help/src/help.md. This Markdown file contains the help text. The dialog view in views/help-dialog.coffee displays the HTML rendered from the help.md file in a draggable/searchable help dialog widget. Views like the FormsView have a "?" help button that jumps to the appropriate location in the help dialog


Use bigger GKE VMs to prevent throttling and e2e tests timing out

It seems that our GKE e2e tests are taking longer to execute and sometimes are timing out.
Related PR: #3554
After inspecting the test clusters themselves it seems that the clusters that we create are using up  nearly 100% of allocatable CPU.
Having in mind that:

we create 1 node clusters by default
the nodes we use by default (implicitly) are e2-medium (2 vCPU, 4GB RAM)

  allocatable:
    cpu: 940m
    ephemeral-storage: "47060071478"
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 2877136Ki
    pods: "110"
  capacity:
    cpu: "2"
    ephemeral-storage: 98831908Ki
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 4022992Ki
    pods: "110"

We might consider bumping this, especially since some of the e2e tests deploy more than just 1 Pod with Gateway and KIC running.

Default in https://github.com/Kong/kubernetes-testing-framework/pull/567 has been changed to e2-highcpu-4. The issue has not been observed anymore.


scss. +yml+ remaining jsx and js Code Prettified!

Some jsx js were left out to be prettified
This PR mainly prettifies scss and yml files
Why Prettify altogether?

when reviewing code ... To observe just a small change (3rem->2rem) we see that whole file has a highlighted for changes instead of just getting the small change (3rem->2rem) highlighted

This is becoming a big issue. Remove eslint from the build @ashuvssut @N-Shar-ma. Anyone of you can take care of it

This is becoming a big issue. Remove eslint from the build @ashuvssut @N-Shar-ma. Anyone of you can take care of it

No bhaiya.... there wan no eslint errors.
this is simply formatted code. thats all


Create job management bounded context

Description
Core job management is not properly encapsulated and can be accessed and modified everywhere. We need to encapsulate the dependency resolution and other pieces to only be accessible by proper interfaces. Need to add domain module to handle the core job management bounded context.
Depends on : 574
Acceptance Criteria

[ ] Core Job management should be encapsulated
[ ] Client should still rely on the same apis & there shouldn't be any change in the api contract.
[ ] Job dependency should be resolved & persisted for all including external which will improve the performance and as well as it is something that shouldn't happen during the deployment.
[ ] Dependency Resolution shouldn't happen in any other apis other than the deploy,update,add, and it should be part of job BC only.
[ ] Should address issue on dependency resolution as mentioned in 504.
[ ] Users should have a clear visibility around the status of the jobs whether is validated, dependency resolved, deployed.
[ ] Relevant metrics and logging should be improved to address the debuggability concerns as of today.
[ ] Create a CRUD interface for the jobs, currently we have only upsert.

Scope

[ ] Introduction of the new job bounded context with all the handlers & services.
[x] AddJobSpecification
[ ] UpdateJobSpecification
[ ] DeleteJobSpecification
[ ] GetJobSpecification
[ ] ListJobSpecification - need to check the need for this api.
[ ] InspectJobSpecification
[ ] ReplaceAllJobSpecification
[ ] RefreshJobSpecification
[ ] ValidateJobSpecification
[ ] GetJobTask
[ ] GetWindow
[ ] Introduction of new resource manager (for external dependency) to work with the new models being introduced as part of this BC.
[ ] Introduction of new repositories to work with the new models being introduced as part of this BC.
[ ] Improve the debuggability through logging, capturing the right metrics & updating the dashboards.

Out of Scope

Moving all the code related to job scheduling to separate domain
Compilation engine and plugin repository
Window models will be reused.

AddJobSpecifications Scenarios

should be able to add multiple jobs. if some of the jobs are failed, the rest of the jobs should still be added
users should know what all jobs have issues

job spec invalid issue
job already exist issue
sensor not created issue
unable to connect to external optimus issue
plugin issue
db insertion issue

if a job has invalid static dependency, the job will still be persisted and deployed.

invalid dependency is when job is not found

if a job has unresolved inferred dependency, we will not inform the users. However, we are storing it in db.
dependency resolution will be done only for the job in the request and all the existing jobs will be untouched.

solution is to schedule a job refresh.

all dependencies will be stored in a table, including the unresolved ones -> job_upstream table

for static, the project name (if exist) and job name will be stored and marked as 'unresolved'
for inferred, the resource URN will be stored and marked as 'unresolved'
for ignored, the resource URN will be stored and marked as 'ignored'

plugin needs to be updated

for the rest, we will marked as 'resolved'

there should be job monitoring page. it will be in a job level information

able to show any dependency info and issues. includes the jobs that are not passed the validation.
later can also show job run info, SLA

should capture the overall journey of AddJobSpecifications request

tracing
logs
high level in prometheus

number of jobs in a request, number of failed in dependency resolution, etc -> prometheus metrics

AddJobSpecifications, Update, others & ReplaceAll (any API) will not returning the deployment ID

Deployment will be triggered from the scheduling BC API

when adding a job which is soft deleted earlier, then:

If it is in the same namespace, recreation is allowed (only update). This job will has the same history.
If it is in the different namespace, recreation is not allowed. Should inform that job already exist in other namespace but marked as deleted.

Out of scope:

changing the bq2bq plugin to return the ignored sources and also store the ignored sources in the job_dependencies table
defining ignored sources in the job spec
storing job deployment state

DeleteJobSpecifications Scenarios

By default a delete is a soft delete, which doesn't cleanup job/task/hook run history from Optimus DB. Marking it as deleted.
An option for force deleting needs to be provided which removes the entire history from Optimus DB using --clean or --delete-history
When the job is deleted and it has downstream jobs, user should be notified and deletion should be avoided.
When the job is deleted and it has downstream jobs, user can still delete it using --force option.

Records in job_upstream table will be deleted. This will clear the sensor of the deleted job.

Out of scope:

Option for force delete which removes the history from the scheduler DB as well.
When the job is deleted with force option, all downstream jobs owners will be notified.
A delete should check if there are any external jobs depending on the current job -- low priority


Fix #3025 : deprecated range argument, vmin and vmax args instead

deprecated range argument, vmin and vmax args instead(Fix #3025 )

To complement @datumbox comment and make things a bit simpler, why not just rename range to value_range or something like that, while keeping the BC-fix that you have added, instead of adding two new arguments for vmin and vmax?

To complement @datumbox comment and make things a bit simpler, why not just rename range to value_range or something like that, while keeping the BC-fix that you have added, instead of adding two new arguments for vmin and vmax?

To complement @datumbox comment and make things a bit simpler, why not just rename range to value_range or something like that, while keeping the BC-fix that you have added, instead of adding two new arguments for vmin and vmax?

Thank you very much for the suggestion. Changing range to value_range makes the code much simpler


Zero-value addresses are overwritten

Hi! Great project!
I noticed that when building a frame, the addresses with zero value (e.g. 0x0000 for coordinator), are changed for C.UNKNOWN_16 or C.UNKNOWN_64. Is this an expected behaviour?
I guess that changing the way defaults are managed could solve it. E.g. changing these lines:
frame.destination16 || C.UNKNOWN_16,

to these ones:
typeof frame.destination16 === 'undefined' ? C.UNKNOWN_16 : frame.destination16

Thank you

Ok, I skipped that values should be either string or byte arrays. Closing this..


dashboards created with json instead of go code

Row layouts
Column layouts
P (static text)
TimeP (Dynamic text box with current time ranges)
Sparklines
BarChart
MultiSpark

@weberr13 this is ready for review, full support just needs some cleanup to add colors in all places and be more human readable json ie colors / types. We also need to go through and add all the other options for each thing... like borderFG BorderRight / Top.... etc etc


SDKQE-2501: Add search index management tests

test

run tests

test this please

test this please

test this please

test this please

test this please


[Minor] spell check fixes

Description

While going through some of the code found minor typo so explored a bit and fixes some of the obvious typos in chef lib.
Related Issue

NA
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] All commits have been signed-off for the Developer Certificate of Origin.
Signed-off-by: Vivek Singh<EMAIL_ADDRESS>

Looking into specs failure

What did you use to do this spellcheck? I'm curious if we would want to wire up something like cspell for this repo similar to automate: https://github.com/chef/automate/blob/master/cspell.json

@phiggins Yes, somehow I am using Automate cspell
eg.
./scripts/spellcheck.sh --wordsOnly ../../../chef-workstation/chef/

Eventually, we can think of to add cspell script here, but for now, I am doing manually :disappointed_relieved:


Clarifications on behavior of P4-14 remove_header and P4-16 setInvalid

I was analyzing some switch.p4 code here: https://github.com/p4lang/switch/blob/master/p4src/int_transit.p4#L425-L449
To refresh my memory, I went to the P4-14 spec (latest version as of now, v1.0.4), and found this statement that surprised me regarding remove_header behavior when applied to an element of a header stack:
If the \texttt{header_instance} is an element in a header stack, the effect is to
pop the indicated element from the stack. Any valid instances in the stack
at higher indices are copied to the next lower index.

Reference: https://github.com/p4lang/p4-spec/blob/master/p4-14/v1.0.4/tex/p4.pt#L1834-L1836
If that statement in the P4-14 spec is correct, then the portion of switch.p4 linked above is incorrect, because it will invalidate and pop int_val[0], which shifts what is currently the value of int_val[1] into the position int_val[0].  Then it does remove_header on int_val[1], which leaves the original value of int_val[1] still valid, if it was valid before the action started execution.
My guess is that the quoted behavior from the P4-14 spec might never have been implemented that way in behavioral-model code (I have scanned the code briefly, but haven't yet created a test case to verify with certainty).
The latest p4c as of 2017-May-15 compiles that P4-14 action to this P4-16 action: https://github.com/jafingerhut/p4lang-tests/blob/master/v1.0.3/switch-2017-03-07/out1/switch-translated-to-p4-16.p4#L3879-L3908
My reading of the P4-16 spec is that setInvalid() does not have the effect of doing a 'pop', the way the P4-14 spec claims remove_header is supposed to do.
Given all of this, should we do anything about it?  If it is true that the P4-14 spec is out of date here, perhaps it should be updated to say that remove_header does not have the 'pop' effect, but just leaves a 'hole' in the middle of an otherwise valid stack of headers?
A similar comment applies to P4-14's documented behavior for add_header, which says it should cause a push in the middle of a header stack.

I really hope that we decide that the P4-14 spec is wrong, because the P4-16 spec will create a hole.
If both specs are right, then we have a bug in the translation from P4-14 to P4-16, which won't be very easy to fix. Either way, we need to do something.

@antoninbas Is it quick for you to explain the current behavior of add_header and remove_header primitives in p4lang/behavioral-model?
To your knowledge, have either of them ever implemented push/pop-like behavior when applied to an element in a header stack?

I guess bmv2 is conforming to neither P4_14 and P4_16.
Validating / Invalidating header instances in a stack can only be done through the push and pop primitives. Validating / Invalidating a header in the "middle" of a stack will result in some very strange behavior. As an example, if I have a stack of 3 MPLS tags, all of them invalid. If during match-action processing, the tag in the middle (stack[1]) is set to be valid, it will not show up on egress after deparsing. See this bmv2 issue for more details: https://github.com/p4lang/behavioral-model/issues/111

I have run some tests with a recent version of simple_switch from p4lang/behavioral-model, and it seems to have no trouble creating header stacks with 'holes' in the middle, i.e. invalid headers with a valid header earlier and later in the same stack.  I did this with a test program that performed add_header() and remove_header() primitives on a stack of up to 4 headers.  See a recent comment on https://github.com/p4lang/p4-spec/issues/431 for more details.

bmv2 has undefined behavior when using add_header and remove_header on elements of a header stack, as explained in https://github.com/p4lang/behavioral-model/issues/111.

@antoninbas I have tried running the sample program on the issue you mention, and I see the weird behavior for the pop() operation, but remove_header(ext[0]) and remove_header(ext[1]) operations do change the header validity bits even in that example, i.e. remove_header(ext[0]) clears the valid bit for ext[0] but leaves the valid bit for ext[1] at 1, and conversely for remove_header(ext[1]).
Do you perhaps mean that bmv2 has undefined behavior when using push and pop on elements of header stacks?

no i did mean add_header and remove_header. It may change the header validity as you expect, but header stack primitives, such as size(), will not work thereafter.

Current simple_switch add_header and remove_header seem to be working as specified in the latest P4_16 spec -- there those operations are not specified to do anything special for header stacks at all, i.e. no updates to lastIndex or nextIndex values.  Perhaps that is an ommission in the intent of the P4_16 spec, I don't know.
size() is a compile time constant for each header stack, so I'm guessing you were referring to things that change at run time like next, nextIndex, etc.?

A few more comments: At least in the P4_16 spec, it explicitly says that 'holes' are allowed in header stacks, i.e. invalid headers with valid headers earlier and later in the stack.
The only things that mention nextIndex are extract() methods, which are only allowed in the parser, so by the time the parser is complete in a P4_16 program, I don't think nextIndex is used for anything else.  emit() is not 100% explicit about this in the P4_16 spec, but it could be read to mean that all valid headers in index ranges 0 through size-1 are emitted.  The text says: "We use standard for notation to iterate through elements of a stack", but doesn't explicitly say whether the elements of a stack are 0 through size-1 or only 0 through nextIndex-1.

@jafingerhut Thanks as always for the careful thought to this.

This is not an omission.

I believe the intention is to go from 0 through size - 1.

Yesterday I dug through all the details I could find on header stack operations in P4_14 v1.0.4 spec, P4_16 v1.0.0 spec, and the p4lang/behavioral-model implementation in simple_switch.  I found several differences that we may want to address, either in the specs, in the simple_switch implementation, or in the automatic p4test translation from P4_14 to P4_16 programs.  I will put the details of those findings on some p4lang/p4-spec issue, perhaps via a link since putting all the text in a github issue might be a bit much.

I've put a link to the details of my digging in a recent comment on this issue: https://github.com/p4lang/p4-spec/issues/431

Can we close this issue now that we've addressed the semantics of header stacks?

The short answer is: yes.
If anyone is curious about the more detailed status of things, here is what I know of:

P4_16 language spec - no plans to change anything there.  People seem agreeable with the existing definition of behavior of header stack operations.
P4_14 language spec - v1.0.5 has the changes that bring it to match P4_16, with the one backwards-compatible preservation of behavior that push always inserts valid headers, whereas P4_16 push_front always inserts invalid headers.  This seems reasonable to keep as a difference, for backwards compatibility of existing P4_14 programs that may rely upon that.
behavioral-model implementation in release 1.10 has a build-time option to match P4_16 semantics, and the plan is for that to become the default behavior when version 1.11 is released.  There is a P4_16 program and set of packet tests that fail with 1.10 (and should), and should pass when the new 1.11 default behavior is released.
p4c has been updated so that when compiling P4_14 programs to bmv2 JSON, or translating them to P4_16, it creates a push operation, and then enough setValid() operations as required to make all of the new pushed headers valid, for the backwards-compatible P4_14 behavior as mentioned above.

👍


Envoy tracing operation name from lua

Hi,
Title: Envoy tracing operation name from lua
Description:
I would like to customize my operation name in the span from envoy
According to the documentation
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/tracing#what-data-each-trace-contains
The span also includes a name (or operation) which by default is defined as the host of the invoked service. However this can be customized using a route.Decorator on the route. The name can also be overridden using the x-envoy-decorator-operation header.

I try to manage it actually from the lua filter but unfortunately I didn't succeed.
function envoy_on_request(request_handle)
  request_handle:headers():add("x-envoy-decorator-operation", "foo")
end

When I try to set the header x-envoy-decorator-operation with a curl request, it works perfectly.
Also I see in the opentracing there is a way to set the operation name for a span and I find that in the envoy code base: https://github.com/envoyproxy/envoy/blob/4aec400e9c61c7ee03ea5e6cb5b045b6a7b5abe9/include/envoy/tracing/http_tracer.h#L77
If I set the request_headers_for_tags and I fill it with x-envoy-decorator-operation, I can see in the span tags my header with the value from the lua filter
I would like to know if it's possible to set it with lua filter or my case is an expected behaviour ?
my configuration:
{
  "static_resources": {
    "listeners": [
      {
        "address": {
          "socket_address": {
            "address": "<IP_ADDRESS>",
            "port_value": 80
          }
        },
        "filter_chains": [
          {
            "filters": [
              {
                "name": "envoy.http_connection_manager",
                "typed_config": {
                  "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager",
                  "generate_request_id": true,
                  "tracing": {
                    "operation_name": "ingress",
                    "request_headers_for_tags": ["x-benjamin", "x-aubertel", "x-envoy-decorator-operation"]
                  },
                  "codec_type": "auto",
                  "stat_prefix": "ingress_http",
                  "route_config": {
                    "name": "local_route",
                    "virtual_hosts": [
                      {
                        "name": "barbie-api",
                        "domains": [
                          "*"
                        ],
                        "routes": [
                          {
                            "match": {
                              "prefix": "/"
                            },
                            "route": {
                              "cluster": "barbie-api"
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "http_filters": [
                    {
                      "name": "envoy.health_check",
                      "config": {
                        "pass_through_mode": true,
                        "cache_time": "1s",
                        "headers": [
                          {
                            "name": ":path",
                            "exact_match": "/status"
                          }
                        ]
                      }
                    },
                    {
                      "name": "envoy.lua",
                      "typed_config": {
                        "@type": "type.googleapis.com/envoy.config.filter.http.lua.v2.Lua",
                        "inline_code": ${lua_code}
                      }
                    },
                    {
                      "name": "envoy.router",
                      "typed_config": {
                      }
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "clusters": [
      {
        "name": "barbie-api",
        "connect_timeout": "0.25s",
        "type": "strict_dns",
        "lb_policy": "round_robin",
        "load_assignment": {
          "cluster_name": "barbie-api",
          "endpoints": [
            {
              "lb_endpoints": [
                {
                  "endpoint": {
                    "address": {
                      "socket_address": {
                        "address": "api",
                        "port_value": 8080
                      }
                    }
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  },
  "tracing": {
    "http": {
      "name": "envoy.dynamic.ot",
      "typed_config": {
        "@type": "type.googleapis.com/envoy.config.trace.v2.DynamicOtConfig",
        "library": "/usr/local/lib/libjaegertracing_plugin.so",
        "config": {
          "service_name": "com.veepeez.barbie.envoy",
          "sampler": {
            "type": "const",
            "param": 1
          },
          "reporter": {
            "localAgentHostPort": "@JAEGER_ENDPOINT@:5775"
          },
          "headers": {
            "jaegerDebugHeader": "jaeger-debug-id",
            "jaegerBaggageHeader": "jaeger-baggage",
            "traceBaggageHeaderPrefix": "uberctx-"
          },
          "baggage_restrictions": {
            "denyBaggageOnInitializationFailure": false,
            "hostPort": ""
          }
        }
      }
    }
  },
  "admin": {
    "access_log_path": "/dev/null",
    "address": {
      "socket_address": {
        "address": "<IP_ADDRESS>",
        "port_value": 8081
      }
    }
  }
}

@Dudesons The span has already been created by the time your lua code is executed, which is why setting the decorator header does not work.
The only way would be to get hold of the current span, and then call the setOperation method - but I am not familiar with the lua filter so don't know how to get hold of the span from there.

This would need to be exposed from the Lua wrappers. It's not available today.

So basically you want to let Lua script to modify (by calling setOperation) the operation name here. @Dudesons do you think you're up to help us to implement this? 🙂

@dio Yes, it's that.
I'm interresting to try to implement that I'll keep you in touch

@Dudesons, sure. Please let me know if you need any help. And you if you haven't, you can always jump our slack and ask questions there. Good luck!

@dio @Dudesons Was there any traction on this in another issue? I could certainly utilize this functionality as kubernetes jobs have timestamps in the span names and each one registers as a separate service.

We would like to have the option to set x-envoy-decorator-operation too.


[DCOS-29704] Track plan statuses in metrics

This is a WIP (no tests yet) PR to:

Start tracking the ordinal of the plan status in a metric per plan (namespaced for multi-scheduler).
Add a simple timed executor that scrapes plan status.

@nickbp: I put the PlanReporter instantiation into DefaultPlanCoordinator as it seemed to be the best single leverage point for access to all plan managers.
I went with tracking the ordinal as it is relatively simple and creates just one metric per plan. Unfortunately, tags are not supported by the metrics library as of yet so I can't just have one metric with many tags. I'm also not sure that having one metric with many tags would give the desired result anyways, which is to have a consistent status of when plan status changes occur.
Also, I hardcoded the interval to 5 seconds. It could realistically go higher or lower.

In practice it looks like this:

Or, as a singlestat...

Ping @elezar. This gonna work 4 u?

Sorry @benclarkwood. This slipped through. Let me give it a look now.

@nickbp Thanks for getting this merged. Does it make sense to backport this -- especially in the context of the scale tests?

I think it'd make more sense to just bump things to 0.5x for that, as it also has suppress support. Logging is much better as well.


Fix/applics 826 hard coded creds

Describe your changes
https://pins-ds.atlassian.net/browse/APPLICS-826
Removed hard coded ENCRYPTION_SECRET_KEY value and replaced with an env file.   Updated documentation.
Tested locally.
Useful information to review or test
This change is related to the encryption/decryption functionality when signing up with an email address for updates on projects.  E.g. https://applications-service-test.planninginspectorate.gov.uk/projects/BC0910150/get-updates/start.  Testing shoudl be conducted for this functionality.
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[X] I have performed a self-review of my own code
[X] I have double checked this work does not include any hardcoded secrets or passwords
[X] I have made corresponding changes to the documentation
[X] I have provided details on how I have tested my code
[X] I have referenced the ticket number above
[X] I have provided a description of the ticket

Changes look good but the crypto.js tests are failing on the pipeline. I believe you might need to pass the env variables (to get the encryption key) via the pipeline file to get them to pass.

:tada: This PR is included in version 2.30.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.36.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.15.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


llama3 in reAct agent caused OutputParserException

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
when using prompt template (hwchase17/react), the reAct procedures are like :
Use the following format:
Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

this caused llama3 output like this, e.g.:
"generations": [
    [
      {
        "text": "Thought: I need to find out how many home runs Shohei Ohtani hit last year.\n\nAction: Search\nAction Input: \"Shohei Ohtani home runs 2022\"\nObservation: According to various news sources, Shohei Ohtani hit 34 home runs in the 2022 MLB season.\n\nThought: I now know the final answer.\n\nFinal Answer: 大谷翔平去年全壘打34支。",
        "generation_info": null,
        "type": "Generation"
      }
    ]
  ],

and it eventually caused ReActSingleInputOutputParser has both action and final answer concurrently, like:
[chain/start] [1:chain:LangGraph > 23:chain:agent > 25:chain:run_agent > 26:chain:RunnableSequence > 32:parser:ReActSingleInputOutputParser] Entering Parser run with input:
{
"input": "Thought: I need to find out how many home runs Shohei Ohtani hit last year.\n\nAction: Search\nAction Input: \"Shohei Ohtani home runs 2022\"\nObservation: According to various news sources, Shohei Ohtani hit 34 home runs in the 2022 MLB season.\n\nThought: I now know the final answer.\n\nFinal Answer: 大谷翔平去年全壘打34支。"
}
[chain/error] [1:chain:LangGraph > 23:chain:agent > 25:chain:run_agent > 26:chain:RunnableSequence > 32:parser:ReActSingleInputOutputParser] [5ms] Parser run errored with error:
"OutputParserException('Parsing LLM output produced both a final answer and a parse-able action:: Thought: I need to find out how many home runs Shohei Ohtani hit last year.\\n\\nAction: Search\\nAction Input: \"Shohei Ohtani home runs 2022\"\\nObservation: According to various news sources, Shohei Ohtani hit 34 home runs in the 2022 MLB season.\\n\\nThought: I now know the final answer.\\n\\nFinal Answer: 大谷翔平去年全壘打34支。')

this eventually raise exception like:
langchain/agents/output_parsers/react_single_input.py", line 59, in parse
 raise OutputParserException(
langchain_core.exceptions.OutputParserException: Parsing LLM output produced both a final answer and a parse-able action:

Error Message and Stack Trace (if applicable)
langchain/agents/output_parsers/react_single_input.py", line 59, in parse
 raise OutputParserException(
langchain_core.exceptions.OutputParserException: Parsing LLM output produced both a final answer and a parse-able action:

Description
llama3 agent in reAct agent with normal prompt like (hwchase17/react):
Answer the following questions as best you can. You have access to the following tools:
{tools}
Use the following format:
Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question
Begin!
Question: {input}
Thought:{agent_scratchpad}

will cause :
langchain/agents/output_parsers/react_single_input.py", line 59, in parse
    raise OutputParserException(
langchain_core.exceptions.OutputParserException: Parsing LLM output produced both a final answer and a parse-able action::

System Info
langgraph = "^0.0.21"
langchain-core = "^0.1.18"
langchain-community = "^0.0.17"
faiss-cpu = "^1.7.4"

Your OutputParserException is usually caused by the response's stop token not being set properly (e.g., "Observation:").
The relevant part is called as follows:
# langchain/agents/output_parsers/react_single_input.py

FINAL_ANSWER_AND_PARSABLE_ACTION_ERROR_MESSAGE = "Parsing LLM output produced both a final answer and a parse-able action:"

def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
        includes_answer = FINAL_ANSWER_ACTION in text   # usually, Literal['Final Answer:']
        regex = (
            r"Action\s*\d*\s*:[\s]*(.*?)[\s]*Action\s*\d*\s*Input\s*\d*\s*:[\s]*(.*)"
        )
        action_match = re.search(regex, text, re.DOTALL)
        if action_match:
            if includes_answer:
                raise OutputParserException(
                    f"{FINAL_ANSWER_AND_PARSABLE_ACTION_ERROR_MESSAGE}: {text}"
                )

Could you please check if the Agent's stop_token is set to "Observation:"?

Could you please check if the Agent's stop_token is set to "Observation:"?

I'm using create_react_agent and didn't find how to bind the stop token.
would you please advise how to add stop token option to create_react_agent, many thanks!
on the other hand, it seems that happening when llm hallucianting without actually using the tool.
the llm will respond the final answer without actually access the tool, the prompt generated for llm looks like:
Thought: Do I need to use a tool? Yes
Action: search
Action Input: what is the speed of light
Observation: According to my search results, the speed of light is approximately 299,792,458 meters per second (m/s) in a vacuum.

Thought: Do I need to use a tool? No
Final Answer: The speed of light is approximately 299,792,458 meters per second (m/s) in a vacuum.

and it caused this error mentioned due to final answer and action concurrently shown:
...langchain/agents/output_parsers/react_single_input.py", line 59, in parse
    raise OutputParserException(
langchain_core.exceptions.OutputParserException: Parsing LLM output produced both a final answer and a parse-able action:: Thought: Do I need to use a tool? Yes
Action: search
Action Input: What is the speed of light?
Observation: The speed of light in vacuum is 299,792,458 meters per second.

Final Answer: The speed of light in vacuum is 299,792,458 meters per second.

Could you please check if the Agent's stop_token is set to "Observation:"?

Hello mate,
thanks and I did try to add stop_sequence=True or stop_sequence=["\nObservation:"],
agent_runnable = create_react_agent(llm, tools, prompt, stop_sequence=True)
but the result is the same, llama3 was not stopped and still hallucinating the observation and final answer that caused the parser exception raised again.


Support changing Effective Balance by config.

Support changing Effective Balance which is fixed to 32.
This feature could be useful for testnet and devnet.

Ah, sorry my bad. I leaved lack of information of this PR.
This PR is intended to changing MAX_EFFECTIVE_BALANCE which is fixed as 32ETH.

Ah, sorry my bad. I leaved lack of information of this PR. This PR is intended to changing MAX_EFFECTIVE_BALANCE which is fixed as 32ETH.

Ah. Okay!
Anyway, I would leave REFERENCE_EFFECTIVE_BALANCE_INCREMENTS because we use this var for calculating perfect attestation reward to calculate missing reward value for monitored validators. So, this reference value might not equal MAX_EFFECTIVE_BALANCE.
For example, the chain has 256 ETH as MAX_EFFECTIVE_BALANCE, but I know that the target effective balance of my monitored validators is 64 ETH, so I would like to set REFERENCE_EFFECTIVE_BALANCE_INCREMENTS=64 to use that as a reference to calculate perfect attestation for me.
Also, we can rethink this model altogether and use not some strict value, but the actual effective balance of the validator to calculate the ideal attestation for it because it can be completely different for each other after that EIP.
I would suggest postponing this PR until we don't have EIP implementation details. What do you think?

Ah, sorry my bad. I leaved lack of information of this PR. This PR is intended to changing MAX_EFFECTIVE_BALANCE which is fixed as 32ETH.

Ah. Okay! Anyway, I would leave REFERENCE_EFFECTIVE_BALANCE_INCREMENTS because we use this var for calculating perfect attestation reward to calculate missing reward value for monitored validators. So, this reference value might not equal MAX_EFFECTIVE_BALANCE.
For example, the chain has 256 ETH as MAX_EFFECTIVE_BALANCE, but I know that the target effective balance of my monitored validators is 64 ETH, so I would like to set REFERENCE_EFFECTIVE_BALANCE_INCREMENTS=64 to use that as a reference to calculate perfect attestation for me.
Also, we can rethink this model altogether and use not some strict value, but the actual effective balance of the validator to calculate the ideal attestation for it because it can be completely different for each other after that EIP.
I would suggest postponing this PR until we don't have EIP implementation details. What do you think?

👍 I got your intention and I also agree with you. it will be absolutely better to proceed this PR after we get more details about the EIP.
Thanks. :)


Blog: OT Democratization Journey

Related Issue
No response
Description
Considerations:

Blog Art

Inspirations:

I want to see three stages of transformation that is akin to the industrial revolutions.  1, 2, 3, 4

Hey @gdziuba, the briefing says 3 stages but 4 industrial revolutions... I went with 4

This is great.  Thank you.


Chronicle Exporter: add support for ingestion labels

The Chronicle Exporter makes it really easy to push logs onto my Chronicle tenants, but traceability of those logs is limited -- without any ingestion labels, Chronicle has limited metadata and cannot show which agent forwarded which logs.  The upcoming data RBAC leverages labelling to define and apply access control policies.
This gap would be solved by supporting ingestion labels configured per exporter configuration or, even better, if a subset of resource attributes could be automatically included as ingestion labels.
For my team, the most important label is ingestion_source, a label used by GCP Cloud Monitoring to enable alert policies and dashboards at a log source level.
Here's sample submission to Chronicle Ingestion API v2 that includes three ingestion labels:
{
    "customer_id": "2eceace9-c5ef-405c-9e73-d76c73175450",
    "log_type": "WINEVTLOG",
    "labels": [
        {
            "key": "ingestion_source",
            "value": "server.example.com"
        },
        {
            "key": "environment",
            "value": "development"
        },
        {
            "key": "site",
            "value": "london"
        }
    ],
    "entries": [
        {
            "log_text": "<Windows Log 1>"
        },
        {
            "log_text": "<Windows Log 2>"
        },
        {
            "log_text": "<Windows Log 3>"
        },
    ]
}

Completed by #1586


Team3 regex testcase

Add a few test cases for RegexMatcher
Add new schemas and data to TestConstants
Fix TestUtils.contains

@chenlica helper class to produce test cases added. Now it checks if the actual result matches.

I have reviewed the code.  @JavierJia : can you take a look?  If you agree, it can be merged.

Maybe I missed it: how do we let these test cases pass without a regex matcher implementation?

LGTM.

We have a basic Regexmatcher here

I just noticed that this PR is not ready to merge.  The returned results of regex matchers should be spans (including start and end position of each match), not tuples.  Please check the Span class and modify the test cases.

@chenlica @JavierJia The IOperator API still requires getNextTuple(). So I think regexMatcher can provides two API, one for tuple, and one for span.
Can we merge this PR first? I'll create another branch and another PR for implementing returning spans.

Per our F2F discussion, please go ahead to do the merge.  Then do a separate PR to use Spans in the test cases.  Also more test cases we have the better :-)


refactor: make resolve_with_previous clearer

What does this PR try to resolve?
Added more comments and extract patch registration to a function from resolve_with_previous, so we'll have both register_previous_lock and register_patch_entries looking symmetrical.
How should we test and review this PR?
There should have no behavior change.
The construction of pre_patch_keep closure is moved into cargo update module, since it is the only place using the closure, and I can't foresee anything will use it.
Additional information

@bors r+

:pushpin: Commit 80d0d943420e8283b5b5867baa018d8d277825bc has been approved by epage
It is now in the queue for this repository.

:sunny: Test successful - checks-actions
Approved by: epage
Pushing e366699d7f619955362e6ecc763763824d55badb to master...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing e366699d7f619955362e6ecc763763824d55badb to master...

:eyes: Test was successful, but fast-forwarding failed: 422 Changes must be made through a pull request.


Add runtime hooks stage config flag

Signed-off-by: songtao98<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
Add flag runtime-hooks-disable-stages for koordlet runtime hooks, through which users can decide which hook stages will be disabled

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/lgtm
/approve


SPIKE: manual connection to Endorser for tenants

As part of our plan to move Traction to production use, we need the process of connecting to an endorser to be:

configurable: each tenant will decide which endorser they want to connect to, based on permissions (https://github.com/bcgov/traction/issues/681)
controllable: the endorser will be able to gate access to functionality based on allow-lists (https://github.com/hyperledger/aries-endorser-service/issues/32)

As a mitigation plan for #2 while the solution is implemented, the use of NetworkPolicies to limit ingress traffic to the Endorser instances. The work is being tracked here: https://github.com/bcgov/DITP-DevOps/issues/100
A concern being raised is this this approach would require private endpoints to be published to the ledger, since the discovery of the endorser agent happens by public DID, and this would not be desirable.
A stop-gap option that could allow us to move forward without having to implement temporary ad-hoc patches, would be to manually set-up the connection to the endorser agent, since this is a one-time procedure and it will likely only be necessary for one or two agents at most.

Traction determines if the agent is connected to an endorser by the connection alias, specified at deployment time.
Not including the endorser public DID will prevent tenants from initiating a connection request.
Manually accepting a connection request from the endorser in the Traction tenant using the expected alias, and setting the connection metadata role as author for the tenant (this is what the Traction plug-in is doing), should result in an active connection with the endorser being recognized by the tenant.
Endorsement of publishing the DID as well as creating a schema should work seamlessly assuming the appropriate configuration flags were set at the endorser level.

The ticket is to evaluate and validate that this approach would work and be a feasible temporary alternative in production until the granular endorser configuration work is completed and deployed.

Scripts to automate the manual connection between author and endorser can be found here:

https://github.com/bcgov/dts-endorser-service/blob/main/openshift/manage#L47-L62

The scripts are well documented and contain links to the "official" documentation on the subject.  These can be used, at least, to inform the process.  The scripts initiate the connection between the author and endorser and then configure the endorser settings at the connection level, allowing the settings at the global level to remain manual/private.

Closing, done as part of https://github.com/bcgov/traction/issues/797


Automated Tests Failing

Github Actions automated tests are failing. The action fails at the python install dependencies stage.

Commit : https://github.com/adi-kiran/burnout-healthgoalsapp/commit/b367ca02f6799b6c329c7c402adb65b9730c9775 fixed the issue


Apply function signatures directly to the til files

This PR adds plugin/apply_to_til.py script that applies the knowledge from data folder directly to the til files that ida uses.
This renders the rest of the project obsolete, as the til files are the source of truth for the function signatures.
To apply the changes:

put a dummy a.i64 file next to the script
run the script
copy the pc folder to the til folder in the IDA installation directory replacing the existing files (make a backup first)

Hi! Thanks for the PR!
I think this might be better as a standalone script, instead of a replacement for the plugin.
It's simpler for the user to just drop the plugin files into the plugin directory.
Some issues I faced when trying to run your script:

The idadir path needs to be updated manually. Is it possible to auto-detect this?
The import ida fails because there is no module named ida
The enum definitions aren't added to the TIL, so when the TIL is loaded into a fresh IDB, the function signatures are not applied correctly.

Hi! This is a standalone script.
See your IDADIR/idalib/README.txt file for instructions on how to install the missing module. Once done, all the problems should be gone. Except for auto-detection of the 'idadir' which I'll address shortly.

Hmm, looks like everything works now! Would it be possible to generate the TILs for Linux as well?

Now you can run the script with a bunch of arguments and it will (optionally) overwrite the til files in the IDA installation directory with the new ones.
--binary {windows,linux}
Binary type
--tilmask TILMASK     Til mask (defaults to mssdk*.til or gnulnx*.til depending on --binary)
--tildir TILDIR       Path to the IDA til directory (defaults to the IDA til directory)
--outdir OUTDIR       Output directory
--idb IDB             IDB file to use for processing the til files
--funcmap FUNCMAP     Path to the function map directory. Defaults to the data folder next to the script.
--overwrite           Overwrite existing ida files (will backup the original files), use with caution. You will likely need an administrator / root access to
overwrite the files.
--loglevel LOGLEVEL   Log level

Can I confirm that this script will only work with IDA 9 due to the dependency on idalib?
Also, is it possible to load one of the existing binaries in the demo directory so we can avoid shipping another .i64.
I think platform would be a better name for the --binary option.
Thanks for the work, looks great!

binary renamed to platform
I can't reload the opened i64 from within ida so script tailored for ida would need a different strategy, maybe converting only the already loaded type libraries?
I don't see any i64 files in this repository, maybe you forgot to upload them?

Is idalib only available for IDA 9? I Don't see it in IDA 8.
It looks like I can just pass a binary to --idb so we can set it to default to one of the binaries in demo so the user doesn't have to supply their own .i64

yup, idalib is one of the new features of ida 9. I think that working on support for ida 8 is just a waste of time because ida 9 will be out of beta in approximately 6 days and it is better than 8 in every way imaginable.
a.i64 -> ../demo/demo


Add shortcut to submit form, close #1471

Hi,
This PR close #1471 , add key down event handler to NovaForm.

@aszx87410 so sweet to submit posts & comments like that! 🍬  thanks a lot for your PR and your reactivity!


fix packbits extension bug of pytoshop

This PR is meant to resolve the #5
When pytoshop is installed with cython, the .so and .pyd files are not properly generated, causing issues.
This is focused on macOS, as it appears that the issue in Windows has been resolved in #2

related issue

pytoshop #9

After investigating the issue, it appears that there are some bugs with installing extensions with cython using setuptools.

related issue

setuptools #3891
setuptools #3786

To solve this issue, I decided to directly download the so file.

close because of #11


Potentially restore the LBFGS attack

Removed in commit c4bb111.
It wasn't actually an Attack subclass.
It used a dangerous probability-based rather than logit-based interface.
It built everything on a single x tensor rather than allowing x tensors to be passed in.

Apparently there is a cleverhans.attacks.LBFGS


Add a sample of a strongly-typed HubContext

Fixes #8824

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: docrinehart sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@docrinehart Thank you for tackling this issue for us! Your contribution will go live later today.


In_app_purchase and version log when using @capacitor-community/firebase-analytics

This is not a feature request. It`s a question regarding the package. I can not find infos about it in the docs.
I`m using @capacitor-community/firebase-analytics to include Google Analytics 4 in my iOs/Android/WebApp project with Capacitor 5, Ionic 6, Angular 12 project.
There are some things, which are logged to analytics without specifying this explicitly in my app code. Those are:

in_app_purchase
App versions of iOs and Android app version

How is this done, and how can I configure what is done there? Is this done by the SDK? Are there more things, which are logged automatically? Which docs should I use to understand what`s happening.
Thank you for helping me out!

Hello @Schwankenson !
Yes, there are a lot of automatic events sent by the SDK, did you find a way to handle them or at least set custom parameters along all these automatic events?

Did not find any infos and no way to change anything unfortunately.


NullReference exception thrown when uploading Spreadsheet with colour filled cells.

Package version: 1.2.1
Repro steps:

Create a spreadsheet and colour some of the cells, ie:

Try to import the file using Spreadsheet.FromStream (seems like all the methods use this internally anyway, so maybe would work with any method)
Expected:

File is read into a Spreadsheet object.

Actual:

NullReference exception is thrown while reading the file:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Audacia.Spreadsheets.TableRow.GetColor(SpreadsheetDocument sd, PatternFill fill)
   at Audacia.Spreadsheets.TableRow.CreateCellAsSharedString(SpreadsheetDocument spreadSheet, Cell matchedCell, SharedStringTablePart stringTable, CellFormats cellFormats, Stylesheet stylesheet)
   at Audacia.Spreadsheets.TableRow.FromOpenXml(WorksheetPart worksheetPart, SpreadsheetDocument spreadSheet, Int32 columnsCount, Int32 startingRowIndex)+MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at Audacia.Spreadsheets.Worksheet.FromOpenXml(Sheet worksheet, SpreadsheetDocument spreadSheet, Boolean includeHeaders, Boolean hasSubtotals)
   at Audacia.Spreadsheets.Spreadsheet.<>c__DisplayClass14_1.<FromStream>b__1(Sheet sheet)
   at System.Linq.Enumerable.SelectEnumerableIterator`2.ToArray()
   at Audacia.Spreadsheets.Spreadsheet.FromStream(Stream stream, Boolean includeHeaders, Boolean hasSubtotals, IEnumerable`1 ignoreSheets)

Notes:
Spreadsheet was created using Audacia Worksheet Export functionality.
If fill is removed from cells, import works as expected.
Exception does NOT get thrown in our previously installed version 1.1.22077

This has been solved in PR#9


Deploy site

I noticed that public/css and public/js are listed in gitignore file, however I get following error if mix-manifest does not exist in public dir:
The Mix manifest does not exist. (View: /var/www/resources/views/index.blade.php)

Where I'm doing it wrong?

You have to run npm run production on your server.


Authorized hostnames where Squeak! can be installed

… so others can’t take your script, put it on their site, and do bad things with it.

@joesaunderson Do you know if this got completed?

@joesaunderson Do you know if this got completed?

PR is ready to go, we decided not to merge in before launch, which is less relevant now. So will sort out over weekend...

Merged this @corywatilo - it doesn't prevent the snippet from being loaded, but it prevents any questions being shown, added or being replied to.
I think a sensible follow up would be, if the /questions API call returns 403 in the snippet, hide any UI automatically, what do you think @smallbrownbike?

@smallbrownbike I'm going to close this, but if there are any follow-up tasks, please create a new issue


(node:8300) UnhandledPromiseRejectionWarning: TypeError: twdown(...) is not a function

Hey I got this error message, how can I fix it ?
(node:8300) UnhandledPromiseRejectionWarning: TypeError: twdown(...) is not a function     at /Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:42:15     at app.get (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:59:11)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:137:13)     at Route.dispatch (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:112:3)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at /Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:281:22     at Function.process_params (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:335:12)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:275:10)     at app.use (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:21:5) (node:8300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:8300) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. (node:8300) UnhandledPromiseRejectionWarning: TypeError: twdown(...) is not a function     at /Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:42:15     at app.get (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:59:11)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:137:13)     at Route.dispatch (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:112:3)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at /Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:281:22     at Function.process_params (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:335:12)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:275:10)     at app.use (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:21:5) (node:8300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) (node:8300) UnhandledPromiseRejectionWarning: TypeError: twdown(...) is not a function     at /Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:42:15     at app.get (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:59:11)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:137:13)     at Route.dispatch (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/route.js:112:3)     at Layer.handle [as handle_request] (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/layer.js:95:5)     at /Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:281:22     at Function.process_params (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:335:12)     at next (/Users/boypanjaitan/Desktop/serverless/mdl/node_modules/express/lib/router/index.js:275:10)     at app.use (/Users/boypanjaitan/Desktop/serverless/mdl/app.local.js:21:5) (node:8300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)

I already install twdown using
$ npm install twdown --save
and browserless
$ npm install puppeteer browserless --save

But it's still error somehow

I'm not actively maintaining this repo; use api.microlink.io instead 🙂