completion/laravel: simplify code flow

Description
Apply shfmt, fix shellcheck, and simplify code flow by short-circuiting at the top rather than indenting the whole function definition in an if clause.
Motivation and Context
Just cleaning up.
How Has This Been Tested?
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the code style of this project.
[x] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
[ ] I have added tests to cover my changes, and all the new and existing tests pass.

using ' in the array on this PR but " on the wpscan PR - Let's settle on one (I like ')

I alsö like ' for this, but the string was already " so I just left it out of laziness. I'll switch it now


iOS 13  BUG crash

iOS 14 & 15 working correctly, but on iOS 13
We keep getting
Fatal error: Accessing State<Bool> outside View.body: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-24.4/Core/State.swift, line 44

Xcode complaining about this line from the library's code :
        Coordinator(text: $text,
                    isFirstResponder: externalIsFirstResponder ?? $internalIsFirstResponder,    <-- HERE
                    onBeginEditing: onBeginEditingHandler,
                    onEditingChange: onEditingChangeHandler,
                    onEndEditing: onEndEditingHandler,
                    onClear: onClearHandler,
                    onReturn: onReturnHandler)
  }

Here our code  :
       iPhoneNumberField("xxx-xxx-xxxx", text: $phoneNumber)
                    .defaultRegion("IL")
                    .font(UIFont(name: "Poppins-Medium", size: idiom == .pad ? 30 : 20))
                    .textFieldStyle(.none)
                    .prefixHidden(false)
                    .maximumDigits(10)
                    .flagHidden(true)
                    .flagSelectable(false)
                    .clearsOnEditingBegan(true)
                    // .multilineTextAlignment(.leading)
                    .introspectTextField { textField in

                        if let text = textField.text, text.isEmpty {
                            textField.becomeFirstResponder()
                        }
                }

We are pretty sure its a bug from the library
What's your thoughts?

Is this library still maintained ?

Looks like you are setting internalIsFirstResponder outside of the body! You must never change the @State from outside. try making it private to find where is the cause of this bug

Thanks, This one is resolved we just changed the order of the modifiers, but looks like there is another one coming from  the internal files of the library

@MojtabaHs

We are not using the State property outside of the body
we declare the instance of PhoneNumber in a var phoneView: some View {}
then just calling it in the body

Update
Even with a constant String its crashing
                iPhoneNumberField(nil , text: .constant("********"))

Pretty sure it's coming from the lib, can you have a look ?
Greetings,

Can you provide an example project?


Added Mouser Part number

Hi @yifanlu
I've added the part numbers for the parts needed to build the emmc reader.
Im positive I've selected the right items, but if you could double check, that would be great :)

Those look right. I didn’t include numbers for the passives because any brand would do and I don’t want to limit to one. The I2C eeprom and the pullups on them are optional. The pin header is also optional if you’re not connecting to chipwhisperer and just using emmc. For that case, you can also skip the jumper.

The chips are easy to find (since the manufacturing number is standard) but I was a little bit hesitant about the Low ESR Capacitor. Even if these parts are sold out, at least you have a reference on mouser (Arrow.com have ever better prices and shipping is free).


To @flow: Token, Lexer, ParseError, and ParseNode.

Here's a start of converting the parsing pipeline to @flow.
I have a concern: I'd screwed up the member definition for ParseNode -- specifically, I'd declared firstToken and lastToken properties instead of declaring start, end, and lexer which are actually assigned in the constructor. And make test didn't notice -- it just compiled successfully in contradiction to the documentation here: https://flow.org/en/docs/types/classes/#toc-class-fields-properties.
I know the @flow pipeline is working since it complains about missing or unused types (which is why I had to split off Token into a separate file and introduce LexerInterface).
I don't see anything fundamentally wrong with the babel set up per the documentation. (This is my first time using babel+flow).
Are you by any chance able to reproduce this?

Ah, per the travis failures, npm test does the trick (which runs make lint flow test). Cool, I'll fix the existing failures. Not sure how to deal with the match-at failure yet, though, and I'd love any insights on that.

I've updated and squashed fixes for most of these. Please note that I had to include babel-plugin-transform-builtin-extend to allow ParseError to extend Error without annoying @flow.
I still have to figure out the inclusion of "match-at":
Error: src/Lexer.js:15
 15: import matchAt from "match-at";
                         ^^^^^^^^^^ match-at. Required module not found

Simple workaround is to remove @flow from Lexer.js and removing the flow types gets rid of this error. "match-at" already uses @flow, so I was hoping it would output the right things (.flow file per https://javascriptplayground.com/blog/2017/01/npm-flowjs-javascript/) for this to work.
Still investigating, but, again, if you have any insights, I'd love to hear.

@marcianx unfortunately babel-plugin-transform-builtin-extend doesn't work with IE10.  I tried the approximate option and that didn't work either.  I created https://github.com/marcianx/KaTeX/pull/2 which fixes the flow errors.  The errors in ParseError.js required $FlowFixMe unfortunately.  Hopefully that's the only places where we need to do that.

Ok, so the .flowconfig ignores match-at in node_modules. Un-ignoring it results in errors in match-at because the transpiled js still includes @flow even though the types have been stripped. Manually removing the @flow makes it compile, which is equivalent to adding
"prepublish": "babel -d lib/ src/; sed -i 1d lib/matchAt.js",
in match-at's package.json. I'm not sure they'd want to take on a gnu sed dependency on their build.
Sadness...
match-at also seems to be using a very old version of "babel" and things, and trying to upgrade meant running into a bunch of new things that I'm not yet familiar with in the realm of babel. So I decided to not go down that rabbit hole, as that also requires getting match-at to publish a new version, etc.
It might be worth making our own Regex matching helper. I've done something similar before when writing a parser in js.

Also, thanks for the $FlowFixMe fix. That definitely works. :)

(BTW, I was also editing in parallel, but it seems that our changes would overlap. So we can just discuss on your branch to avoid confusion.)

(I pushed the fixes as a separate commit for now.)

I have a slight preference for reviewing separate commits, although I'm okay with squashed commits too.  Sometimes people have split their commits into logically separate changes and so revisions to those usually end up rewriting history which is cool too.

Your reason for going with Type|void makes sense to me.  Let's go with it.

I'd probably combine start and end in a range prop, but am open to further discussion on the matter.

@marcianx thanks for the PR.  I'm excited to have more static typing in our codebase.

@kevinbarabash I agree, we should avoid * unless it's thoroughly obvious. I've only used it where the property matches the well-documented constructor parameters which appear immediately after it. Otherwise, I'm very inclined to avoid it. I'm also fine with banning *. I too am a fan of explicitness.

If we do ban * then we should probably lint against it.

@kevinbarabash: How do we avoid stepping over others' toes while porting to @flow? Parser.js has a lot of dependencies to port and there's a danger that two people could be doing this independently. I'd like to keep plowing through.

@marcianx probably the best way is to do it in small chunks if possible and open issues for each part that you're working on that way there's better visibility.

FWIW, I'm adding types to defineMacro in MacroExpander.js now.


Upgrade dining feed to v2

As part of the dining feed V2 update, also incorporate the following:

Add disclaimer message provided by HDH
Add allergen message provided by HDH
Add payment options to the dining list and dining detail views

Commit 98815c5 finalizes new logic behind the dining v2 redesign.
The front-facing home card now displays the current status of an eatery, with text denoting if the eatery is closing or opening soon.

The dining details view now dynamically displays hours based on the dining-v2 API from HDH.

Ingredients and disclaimers are now displayed in the nutrition facts for menu items.

DiningService V2 has been added to AWS QA. The V2 API will now perform a clean merge of the HDH V2 and non-HDH(CMS) dining feeds, and return the result.
API Gateway:
https://zbncpgqqj4.execute-api.us-west-2.amazonaws.com/dev/v2/dining-service
Lambda:
https://us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/DiningService
Lambda Repo:
https://sourcecode.ucsd.edu/projects/WTS/repos/dining-service/compare/commits?sourceBranch=refs%2Fheads%2Fdining-v2&targetBranch=refs%2Fheads%2Fmaster

A few changes have been made to restaurants with special hours in place.
We will no longer display a status for that eatery because it is not possible to display it with 100% certainty. Instead, a message is displayed indicating to the user that special hours may be in effect.
Additionally, if GPS coordinates are not available, the option to navigate is still offered. Instead of using coordinates, it uses any address data that an eatery may have associated with it. If none is available, then no walking icon / navigation option is displayed.

Verified and merged into v5.6-rc


Update example-dsc dsc yaml for ohd v2 quickstart

Description
The example dsc no longer work for quick start odh-v2
How Has This Been Tested?

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

/lgtm

/approve


A way to change the whole screen

The server should be able to change the layout of a clients screen.
This would allow the ability to add a menu button that can go to various sub menus to change configuration, all directed by the server.
It may also be desirable to have a controller be able to also change it's screen in someway. This could be used to alternate between different forms of the same kind of control (i.e. dpad vs analog stick)

This should actually be quite easy to do. We already have decoders and stuff for the Layout type. This should basically be a case of adding a SetUpdate (Layout () ()) field to ServerUpdate, then following the errors. Latency might be bad, but it's hard to know until we try it.
I'll look in to it on Sunday. I'm rather busy right now (as you well know...).

This should actually be quite easy to do. We already have decoders and stuff for the Layout type. This should basically be a case of adding a SetUpdate (Layout () ()) field to ServerUpdate, then following the errors. Latency might be bad, but it's hard to know until we try it.
I'll look in to it on Sunday. I'm rather busy right now (as you well know...).

Actually, there will need to be non-trivial changes to the frontend, which doesn't currently expect e.g. the set of analog stick names, to ever change. But it shouldn't be too bad.

Actually, there will need to be non-trivial changes to the frontend, which doesn't currently expect e.g. the set of analog stick names, to ever change. But it shouldn't be too bad.

It may also be desirable to have a controller be able to also change it's screen in someway. This could be used to alternate between different forms of the same kind of control (i.e. dpad vs analog stick)

I'm not quite sure what you mean?

It may also be desirable to have a controller be able to also change it's screen in someway. This could be used to alternate between different forms of the same kind of control (i.e. dpad vs analog stick)

I'm not quite sure what you mean?


change acceptance tests kafka plan from business-4 to startup-2

lgtm

would have wished for a semgrep action though


1.9.0 and msys2/mingw, too many exported symbols

mingw64 error:
  [267/271] Linking CXX shared library lib\libginkgo_core.dll
  FAILED: lib/libginkgo_core.dll lib/libginkgo_core.dll.a
  C:\Windows\system32\cmd.exe /C "cd .

      Aborting...

clang64 error:
[187/192] Linking CXX shared library lib\libginkgo_core.dll
  FAILED: lib/libginkgo_core.dll lib/libginkgo_core.dll.a
  C:\Windows\system32\cmd.exe /C "cd .

      Aborting...

In version 1.8.0 the bugs only occurred in the clang version:
https://github.com/ginkgo-project/ginkgo/issues/1654

Hi, @3rav . We do not support half precision for the compilers in Windows.
I miss disabling it for msys2 environment.
Could you try compiling it again with cmake -DGINKGO_ENABLE_HALF=OFF ..?

That's it


Remove version: Google.Chrome.Canary version 127.0.6495.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://dl.google.com/release2/chrome/acaatycv4qvbsiyrlvtwoq5526dq_127.0.6495.0/127.0.6495.0_chrome_installer.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 912)


Configure default formatter

Hi @sbeyer !
I'm now a long time user of bandit and I wondered if there was a way to configure the default formatter without passing it to the arg list ?
Here is my motivation: I have several test project and I sometimes remove the user parameter containing the formatter option so I regularly need to add again the --formatter qt to the project run argument.
Would it be possible to change the default formatter like defining a macro before including <bandit.h> ? This could also be a conan option.
I'll be happy to have your though about it before starting implementing something.

I remember I did some work on decoupling formatters etc from the core of bandit, so that people can write their own formatters and register them. I guess that also included setting the default formatter.
I'm going to check later today what happened to that code. It's probably in one of those branches I haven't touched for so long.


Command line tool not runnable (UNIX)

I tried to execute the license3j.sh script to encode a license, but it references a missing folder lib.
I built the project with maven
           mvn clean package

but neither are dependencies (bouncycastle) compiled together with the source code into a runnable jar file nor is this lib folder generated.

I was on a two week holiday. I will look at the issue.

I grabbed bcpg-jdk15on-1.52.jarbcpkix-jdk15on-1.50.jar bcprov-jdk15on-1.52.jar (master brnach for 1.0.8-SNAPSHOT) from the maven repos/from the internet (maybe you need bcpg-jdk15on-1.50.jar bcpkix-jdk15on-1.50.jar bcprov-jdk15on-1.50.jar (older version, like i.e. 1.0.5)) and stored them into the "lib" folder.
Then I changed the Shellscript:
#! /bin/sh

cp="target/license3j-1.0.8-SNAPSHOT.jar"
for i in lib/*
do
cp=$cp:$i
done
java -cp $cp License3j $*
echo $cp

Cheers, Holger

I do what holle said but i still have this error using sh file
Error: Could not find or load main class License3j
If i execute the jar file directly, the dependencies jars like bouncycastle.
I still need help

I just encountered this myself.  You need to make sure the lib directory not only contains the lincense3j jar file, but also the bouncycastle dependencies if they're not already on your classpath.  I found you needed the bcpg and bcprov jar files.  I just quickly symlinked them from my local maven repo, then re-ran the license3j.sh file with no issues.
E.g. my contents of lib
bcpg-jdk16-1.46.jar
bcprov-jdk16-1.46.jar
license3j-1.0.4.jar

Why is this issue closed if the .sh file for the master branch still doesn't work? If running mvn assembly is required it could be provided as feedback when running the sh file. Running mvn assembly:single doesn't solve the issue either.


Rework Validator service for BN/VC separation

What was wrong?
The current Validator service could be replaced with ChainMaintainer, ValidatorHandler (probably needs better names), and the ValidatorClient:

ChainMaintainer: process slot-ticking related logic. e.g., skip slot
ValidatorHandler: process validator API requests.

How was it fixed?

This PR refactors Validator by extracting the shared logic into BaseValidator, then we get:

Validator(BaseValidator)
ValidatorHandler(BaseValidator)

Once VC <-> BN is done, we can delete the current Validator service from BN.
For metrics API, move handle_libp2p_peers_requests from Validator(BaseValidator) to Node.
For HTTP RESTful API, move handle_libp2p_peer_id_requests from Validator(BaseValidator) to Node.
To display the functionality, add GetBeaconBlockRequest handler in ValidatorHandler(BaseValidator).

To-Do

[ ] Clean up commit history

[ ] Add entry to the release notes

Cute Animal Picture

The VC will request the block/attestation to signed from BN? (Currently Validator service generate them itself.)

Correct. The VC will request unsigned block or attestation base on the slot and committee_index.


Find the Nth row in Pascal’s Triangle

Hello, plzz assign me this issue. I really wanna work on it. Plzz sign me up in hacktoberfest 2022.

please assign me this issue pleaseeeee

please assign issue

assign this under hacktoberfeast please

Please assign this issue to me


The bot is often picking the first word

Since the ButtAI update the bot tends to chooser the first word and ignore all syllables and case.

Fixed in commit 1a660b723dbfba7dc767f7d92ce1526483c83b65


Accuracy of non-central chi-squared distribution implementation in scipy

The implementation of the non-central chi-squared distribution in scipy (scipy.stats.ncx2, scipy.special.chndtr) is not accurate for large values of the non-centrality parameter. E.g. consider
Reproducing Code example:
from scipy.stats import ncx2
print(ncx2.cdf(1200,2,1000))
print(ncx2.cdf(1500,2,1000))
print(ncx2.cdf(2000,2,1000))
print(ncx2.cdf(5000,2,1000))
which produces
0.998604279948
0.999933004449
0.999933004449
0.999933004449
instead of converging to one.
The implementation in scipy is based on Formula 26.4.25 of Abramowitz and Stegun, Handbook of Mathematical Functions (1966).
There are faster and more accurate algorithms for implementing this function, especially for large non-centrality parameter (ncp). For example, R apparently uses Ding (1992) for ncp>80. However boost states that Ding can take a long time to converge for large ncp, and recommends a different method. I am wondering if it is worth upgrading the implementation in scipy to work for large non-centrality?
Scipy/Numpy/Python version information:

import sys, scipy, numpy; print(scipy.version, numpy.version, sys.version_info)
0.18.0 1.11.1 sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

@pyguy3, thanks for reporting the problem.
This is a duplicate of https://github.com/scipy/scipy/issues/8665


Nested routes with trailingSlash: true incorrect path structure (double forward slash)

Version
v2.10.2
Reproduction link
https://codesandbox.io/s/determined-dew-wnenk?fontsize=14&hidenavigation=1&theme=dark
Steps to reproduce

Nuxt project with nested routes.
nuxt.config.js add router { trailingSlash: true } to enable trailing slash on routes.
run nuxt generate to render routes
See child route paths

What is expected ?
Nested routes to have the correct path structure.
Link example: /about/contact/
What is actually happening?
Nested child routes are getting duplicated forward slash characters at the end of the path.
Link example: ERROR  Error generating /about//contact/
Additional comments?
I believe its due to this line adding the extra foward slash  https://github.com/nuxt/nuxt.js/blob/2d27a4d2dc2f0684f36481069dcc1a61db7bab54/packages/utils/src/route.js#L16
Reproduction link needs to be forked and run npm run generate to see console error.

This bug report is available on Nuxt community (#c10113)

I couldn't replicate with jest tests :(

Would love some help if anyone has any knowledge!


Image is more saturated than in other video players

Describe the bug
Videos in mrv2 appear more saturated than in other video players like vlc. I checked if the color settings, like OCIO or LUTs are different from the defaults, but i could not find anything relevant (especially since i have never changed any of the color settings).

Desktop (please complete the following information):

OS: Win11
Version 1.1.6

I believe this may not be a bug.  mrv2 is one of the few players that respects the metadata embedded in the movie.
Most viewers including mrViewer, DJV, OpenRV (and likely VLC too), assume a RGB color space (FFmpeg's default).  mrv2 assumes a Rec709 color space (more correct for current monitors) and will make a color conversion if the movie metadata is not using Rec709.
In the Media Info Panel, check the metadata for Color Primaries, Color TRC and Color Space.
Anyway, since you are using the CC BigBuck bunny movie, upload your version of it to an upload service like mega.nz and I'll take a look if that's the reason for the difference.

This is the test video https://download.blender.org/demo/movies/BBB/bbb_sunflower_1080p_30fps_normal.mp4.zip
Interestingly, a video i exported from davinci resolve in sRGB mode always showed "rec709" in the metadata. Only when i used a more "exotic" color space, for example "rec2020" it would also put that into the metadata.
Then i read online that i was supposed to use the mode "Davinci YRGB Color Managed" for the color spaces to be exported properly. However mrv2 was unable to read my file exported with that mode, and threw this error:

i did another test with blender. I exported a render as an mkv file with these settings, and i think i am going a little insane:

The color in the mkv itself is fine, so i dont think that Blender is at fault here. i verified this by re-importing this MKV and a PNG back into blender's video editing mode. There, the colors are identical to the render view in the blender file where i created it.
However, none of my video player display the colors correctly.

Every single video player shows the colors wrong, the only difference is that mrv2 adds a little saturation on top of it. And like with the davinci Resolve export, the "YUV Coefficients" were REC709. I do not know what is happening here, but maybe neither Davinci Resolve nor Blender expect this metadata to be used?
i also double checked these colors with an exported mp4. i attached it here because github doesnt like mkv files.
https://github.com/ggarra13/mrv2/assets/13683581/75429701-186d-4529-8c6a-f1ed67947a5e
Final note here: Yes, i just noticed that Chrome is the only "video player" that apparently displays the colors correctly....

First things first.  mrv2 has indeed a bug with YUV420 movies, like your Big Buck Bunny video, which was indeed saturating them.  I already fixed that.   Still does not match vlc, but maybe that's correct.
Can you attach your Blender's PNG file?  That would be useful for me to compare.

here

Your blender test was very useful.  And you were right, there was a bug in mrv2 regarding saturation on YUV420P movies which I missed, as I had tested mainly with YUV422P and YUV444P.
Anyway, here's new Windows builds for you to test:
.exe:
https://mega.nz/file/DOJk3CoD#cU0siGGUbzaobonZ0c-lK6YVhHvoiKI4dMJlpi7Znlw
.zip:
https://mega.nz/file/SCID2S4L#cvo5pjzBoaS130n6CiN1v8G5bAb_4wHxHLQ6D6HepS8

One thing I should mention.  In mrv2 you can compare the .png and .mp4 with a Wipe to test it.  The match won't be 100% perfect as the RGB->YUV conversion looses some precision (the Red for example won't match perfectly).

The hue already looks spot on, but i can still see a slightly increased saturation in your test build (again compared to the same PNG image).

I agree.  I am still not convinced we are 100% correct.  Something may still be wrong.  I got derailed with a horrible Linux bug in v1.1.6, which I am ashamed of.
Let me keep looking into it.

I verified we are indeed as good as we can get with YUV420 and RGB.  Note that mrv2 v1.1.7 will NOT match the (incorrect) look of such movies on any of these players (all of which I tested):

Cinesync
djv_view
DJV2
mrViewer
MPC-HC
OpenRV
PotPlayer

You will NOT get a better match to RGB PNGs as YUV420 looses information of chroma.  You can get better matches if you encode YUV422 or YUV444.  But to get a perfect match you need to encode also with, I think, at least 12 bits (or maybe 16bits) of precision (or a movie codec with RGB of course).
The reason for mrv2's doing a better job at matching the colors comes from Sam Richards' Encoding guidelines done as part of the ASWF's Open Review Initiative.
PD:  Thane5, since you took so much time to help out (and I still remember from the mrViewer days), I would like to add you as one of the contributors to mrv2.  If you want, please provide me with your name (and email if you care to do, too).  You can send it privately to<EMAIL_ADDRESS>

@Thane5 I looked into the issue more and found another bug in mrv2's color pipeline.  Can you please download the latest beta at:
https://sourceforge.net/projects/mrv2/files/beta/
I think we are now matching your png, which I just realized you might have taken directly from a render.

Fixed in v1.1.7.  Closing the issue.


How to set the new terminal as default external terminal for VS Code?

How do I launch the new terminal through shortcut such as Ctrl + Shift + C in Visual Studio Code?

search 'terminal ' and setting the Windows Exec with wls.exe , 'C:\WINDOWS\System32\wsl.exe' for me.

wsl.exe launches Windows Subsytem for Linux for me with Ubuntu (It is the only distro installed).
Should I remove Ubuntu and then try?

I legitimately don't know how to do this - maybe @Tyriar might know?

Maybe try setting it with something like "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wtd.exe"?

Setting "terminal.external.windowsExec" to whatever the new executable is should work.

This seems to be answered.


In README include a simple email & twitter tutorial to get the user up and running fast

The README should contain a very simple email & twitter tutorial to get the user up and running fast.  The information should be copy & paste.
For example, use the --configure option so they can interactively populate it with their real info instead of dummy data.  This will give them a real-world working example so they can see it do something.
Maybe also provide hints for default settings for common email services.

good idea.  I plan to redo it in markdown, as well, since PyPI now supports REAME.md

I put in another example, not sure if more should be in there.  Instead I refer the users to the Wiki to see more examples.


ex 11.4

error : no matching function for call  to 'remove_if'
std::
template
bool ispunct (charT c, const locale& loc);
remove_if(beg,end,pred)   this is a unary predicate.
remove_if(str.begin(),str.end(),[](char c){return ispunct(c);});
Wanted to know if it's right？ @pezy

Can't reproduce. g++ (Debian 4.9.2-10) 4.9.2 return no errors. Plz re-check your compiler.

i am clear now.
the reason might be that i code using namespace std in begining.
then,it might be use std::ispunct by default.


Language i18n

creating pull request from language-i18n

Hi @psbrandt ,
We have this PR build failing, there is this bahmniTranslateProvider unknown error, it is used in home/app.js to initialize the language. I guess it should be mocked somewhere, I tried many options like this one: module(function($provide) {       $provide.provider('$bahmniTranslateProvider', function() {         ...     });
but no success. Do you have any idea of what should be the problem?
Thanks in advance.
Valério

Coverage increased (+0.8%) to 13.67% when pulling a9aed989c48263a80f14fd1524789a02404e12f7 on language-i18n into f197c7f02dc652f0b024f21fef5d6f6c4dc1125c on master.


[FLINK-32541][network] Fix the buffer leaking when buffer accumulator is released

What is the purpose of the change
Fix the buffer leaking when buffer accumulator is released
Brief change log

Fix the buffer leaking when buffer accumulators is released

Verifying this change
This change added tests and can be verified as follows:

Added tests for in the SortBufferAccumulatorTest and HashBufferAccumulatorTest

Does this pull request potentially affect one of the following parts:

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

Documentation

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

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure


target=_blank feature and cleanup header of priority nots on small de…

…vices

Added ability to target=_blank on priority notification buttons
fixed spacing issue on small screens

resolves #296

Coverage remained the same at 33.46% when pulling f99c991952b8b14b8bc1e2e29ce18d15630410d1 on priority-button-enhancements into 044243002f87cb943bf08974fec1899e0dfe5fc2 on master.


Add support for errors.Is()

Addresses issue #403

Also linter complains about missing comments (see build output).


A/B Test Variant Targeting Criteria Not Working

Please fill in the following fields:
Unity editor version: 2019.2.4f1
Firebase Unity SDK version: 6.6.0
Firebase plugins in use (Auth, Database, etc.): Analytics, Storage, RemoteConfig
Additional SDKs you are using (Facebook, AdMob, etc.): Facebook, AppsFlyer
Platform you are using the Unity editor on (Mac, Windows, or Linux): Mac
Platform you are targeting (iOS, Android, and/or desktop): Android, iOS
Scripting Runtime (Mono, and/or IL2CPP): IL2CPP
Please describe the issue here:
I have one A/B Testing running currently with 5 variants + 1 Control Group.
I have set the base/main targetting to 100% users with only app id as the targeting
The Control Group and 1 variant targets are app version matches exactly 0.0.12.
And the other variants' target are app version matches exactly 0.1.18.

And it seems the targeting variant is not working correctly. When I try to view the real data. It is more like the variant targeting doesn't work at all. Each of the variants have both version.

Are there any additional configs or anything that I need to configure to fix this? Or it is actually a bug. Because this make the collected data not reliable.
Please answer the following, if applicable:
Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)? Yes
What's the issue repro rate? 100%

Hi @Handy-TN, it appears that your issue is related to your Firebase project setup rather than your Unity setup. Please file directly to Firebase Support and include screenshots indicating your experiment results and your method of gathering real data.


Repository name environment variable

Replace arbitrary names with repository names.  Longer and uglier, but will prevent collisions and reduce configurations.
${{ github.event.repository.name }}
Benefit:
users will no longer need to search for the word Greenfield pipe and replace with Repo name, it will only have to be changed in one location. This applies to multiple variables.
Problem:
TypeScript helpers have their app name hard coded.  Fix before wide release.

That variable can't be used in a lot of places.  Swap out hard coded names where possible and consider a script for anything else.


Add lldbToolBox.py scaffolding in ./utils for adding lldb python help…

…ers to use when debugging swift.
Currently this file just imports lldbDataFormatters.py from llvm without the
user needing to know about it. I want to begin adding more utility (for
instance, graphing an assembly CFG without needing to copy/paste) to this file.
To use this in lldb run:
command script import $SWIFT_DIR/utils/lldbToolBox.py

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge


Added support to TEMPer1V1.1 (TEMPer1F1.1Per1F)

Before:
$ ./temper.py -l
...
Bus 004 Dev 002 0c45:7401 * TEMPer1V1.1 ['hidraw0', 'hidraw1']

$ ./temper.py --json
[
    {
        "vendorid": 3141,
        "productid": 29697,
        "manufacturer": "RDing",
        "product": "TEMPer1V1.1",
        "busnum": 4,
        "devnum": 2,
        "devices": [
            "hidraw0",
            "hidraw1"
        ],
        "firmware": "TEMPer1F1.1Per1F",
        "hex_firmware": "54454d5065723146312e315065723146",
        "hex_data": "8002135065723146",
        "error": "Unknown firmware TEMPer1F1.1Per1F: b'8002135065723146'"
    }
]

$ ./temper.py --json --verbose
Firmware query: b'0186ff0100000000'
Firmware value: b'54454d5065723146312e315065723146' TEMPer1F1.1Per1F
Data value: b'8002135065723146'
[
    {
        "vendorid": 3141,
        "productid": 29697,
        "manufacturer": "RDing",
        "product": "TEMPer1V1.1",
        "busnum": 4,
        "devnum": 2,
        "devices": [
            "hidraw0",
            "hidraw1"
        ],
        "firmware": "TEMPer1F1.1Per1F",
        "hex_firmware": "54454d5065723146312e315065723146",
        "hex_data": "8002135065723146",
        "error": "Unknown firmware TEMPer1F1.1Per1F: b'8002135065723146'"
    }
]

After the change:
$ ./temper.py
Bus 004 Dev 002 0c45:7401 TEMPer1F1. 19.31C 66.76F - - - -

$ ./temper.py --json
[
    {
        "vendorid": 3141,
        "productid": 29697,
        "manufacturer": "RDing",
        "product": "TEMPer1V1.1",
        "busnum": 4,
        "devnum": 2,
        "devices": [
            "hidraw0",
            "hidraw1"
        ],
        "firmware": "TEMPer1F1.",
        "hex_firmware": "54454d5065723146312e315065723146",
        "hex_data": "8002135065723146",
        "internal temperature": 19.3125
    }
]

$ ./temper.py --json --verbose
Firmware query: b'0186ff0100000000'
Firmware value: b'54454d5065723146312e315065723146' TEMPer1F1.1Per1F
Data value: b'8002135065723146'
[
    {
        "vendorid": 3141,
        "productid": 29697,
        "manufacturer": "RDing",
        "product": "TEMPer1V1.1",
        "busnum": 4,
        "devnum": 2,
        "devices": [
            "hidraw0",
            "hidraw1"
        ],
        "firmware": "TEMPer1F1.",
        "hex_firmware": "54454d5065723146312e315065723146",
        "hex_data": "8002135065723146",
        "internal temperature": 19.3125
    }
]

If you also update the table in README.md and do a PR on ccwienk/temper, we'll push this out to PyPI (temper-py).

If you also update the table in README.md and do a PR on ccwienk/temper, we'll push this out to PyPI (temper-py).

Updated the table here and created PR on that repo as well https://github.com/ccwienk/temper/pull/2

Thanks, released.
Say, is that detected as in internal sensor, same as with the temper1F?

No idea, the output is attached in the first comment, but I don't know how to check if it is detected as an internal sensor or not.

that answered my question, thanks.

This was merged via https://github.com/ccwienk/temper
Thank you for your contribution!


Handle additional cases

Hey!
Adding additional support:

Added some handling for top-level images in .json files.
Added support for the files key. There are some images that are in the files directory. I added this support by looking for any list in messages rather than specifically lists of "photos" or "videos".

Made some usability changes also:

Added a counter so it's easier to track how many files were changed.
Print a warning if the message timestamp is used.
Handled "https://" media without erroring
Added support for misclassified PNG files. For some reason, my export had some PNG files with a .jpg extension, which broke exif so, I renamed them.

Thank you!

Yeah, I ran it through my data export, and it helped me catalog a bunch of stuff!

Sounds good, thanks!


RFC: unpack .assign() arg

suppose you have two chains that output dicts. second takes output of first as input. you want to return combined dict of their outputsr.
imagine second_chain outputs {"bar": ..., "baz": ...} and you want those to be in top level of output.
currently you'd do
def unpack(x):
  foo = x.pop("foo")
  return {**x, **foo}

chain.assign(foo=second_chain) | unpack

i would like to do
chain.assign(second_chain)

The difference between these two snippets seems too subtle to me.
chain.assign(foo=second_chain)

chain.assign(second_chain)

Is there any way to make it work with a named argument that would specify how to merge the results?


What permissions do I need to deploy this?

/Got it deployed with Now, but not sure I have the app configuration or permissions right? Does the yaml need to be on the master branch?

it is,

Hi,
I am trying to deploy an instance of this particular bot to my GHEbut it does not redirect me to installation. As these bots cannot be directly installed on GHE , I added a .env file with required param and deployed my own installation but even then I am not getting any installation option. Can you help?


search landing page for multiple possible pages

well done

wow

could use have the foreach loops used in the regions, groups, etc. pages to display all the possible matches of the searched term. also need to handle if there is no matches.


Image Appears cropped if it has any css applied before opening

Please provide you version information :

Dependency
Version

ionic3

angular

ionic-img-viewer

Have you checked...

[x ] That npm install returns no warning ?
[ x] Doing a purge of your node_modules folder ?

@Riron First thanks for a cool plugin. I like it a lot. I have an image tag with a src and the imageViewer directive. The image has some css styling for height, border-radius and width. On click, the ImageViewer opens with the image cropped in height to show only a small strip. How can this be modified? Thanks

the same problem,,,,,,
you have to solve...?


Nvidia offload mode not working on XPS 15 9560

Describe the bug
The Nvidia remains ON even tho NixOS is configured to be in offload mode
To Reproduce
Steps to reproduce the behavior:

Configure nvidia the way it is explained in the wiki

Expected behavior
Run on intel GPU on launch, switch to nvidia when using environment variable
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
   jflabonte@tuxbox-xps15  ~ 
▶ glxinfo                                                                                ~
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig

   jflabonte@tuxbox-xps15  ~ 
▶ glxinfo                                                                                ~
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig

   jflabonte@tuxbox-xps15  ~ 
▶ nvidia-smi                                                                                ~
Wed Mar 18 00:43:27 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.59       Driver Version: 440.59       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1050    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   37C    P8    N/A /  N/A |      0MiB /  4042MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
   jflabonte@tuxbox-xps15  ~ 
▶ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only"                                                                                ~
   jflabonte@tuxbox-xps15  ~ 
▶ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" glxgears                                                                               ~
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  25
  Current serial number in output stream:  26

Metadata
▶ nix-shell -p nix-info --run "nix-info -m"                                                                                ~

system: "x86_64-linux"
host os: Linux 5.5.9, NixOS, 20.09pre217261.a2e06fc3423 (Nightingale)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.3
channels(root): "nixos-20.09pre217261.a2e06fc3423, nixos-unstable"
channels(jflabonte): "home-manager, nixpkgs-19.09.2273.107ffbb22ad, nixpkgs-unstable-20.09pre217377.ee9362f880e"
nixpkgs: /home/jflabonte/.nix-defexpr/channels/nixpkgs

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

https://discourse.nixos.org/t/nvidia-offload-mode-no-intel-gpu-running/6298?u=jefflabonte

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nvidia-offload-mode-no-intel-gpu-running/6298/1

You are using unstable consistently, not only importing the unstable nvidia module into a stable system (like me)?
Then try to leave out the intel driver (-> services.xserver.videoDrivers = [ "nvidia" ]).
If this doesn't work, please post your xorg.conf. I think, the easiest way to find it is to set services.xserver.exportConfiguration = true. This links it to /etc/X11/xorg.conf.

Yes, I am running completely on unstable.
https://pastebin.com/4BD6D09v

The weird thing is that nvidia offload seems to be working. It seems that my intel driver aren't working at all.

I will change the title

Correct me if I'm wrong, but as far as I know, this is the expected behavior when using NVIDIA offload.  For reference: https://forum.manjaro.org/t/nvidia-offloading-not-powering-down-gpu/116633/3 .
If you want to use only Intel or NVIDIA you will need something like optimus-manager.


Cleanup SocketChannel

The SocketChannel class is only cares about the socket so it can create and use a binary stream. This should be updated to never get the socket directly but rather it should be given the already configured stream.

Renamed SocketChannel to BinaryStreamChannel. Split the #stream instance variable into #inStream and #outStream. Right now, they are set to the same SocketStream instance. This splits the notion of a single ReadWrite stream to a ReadStream and a WriteStream. This is a view the stream users have anyways.
See b6f2658bc9f24051f7c20cfe8210d8f57cd6a591

Renamed SocketChannel to BinaryStreamChannel. Split the #stream instance variable into #inStream and #outStream. Right now, they are set to the same SocketStream instance. This splits the notion of a single ReadWrite stream to a ReadStream and a WriteStream. This is a view the stream users have anyways.
See b6f2658bc9f24051f7c20cfe8210d8f57cd6a591


How to use custom search api

I want to use custom search api for my flutter app for android   but there are no samples or tutorials  for using this please add some samples or tutorials for this

@jakobr-google  @mkustermann  can u help me ???

Sure, how far did you get?
There's basic documentation for using the googleapis package at https://github.com/dart-lang/googleapis and https://www.dartdocs.org/documentation/googleapis/0.40.0/, and specifically for the custom search API at https://www.dartdocs.org/documentation/googleapis/0.40.0/googleapis.customsearch.v1/googleapis.customsearch.v1-library.html.
I don't know the specifics of custom search (https://developers.google.com/custom-search/json-api/v1/reference/), but it looks like you'll need to:

Create a CustomsearchApi instance, passing in the necessary arguments (like what's shown in the README.md, just using CustomsearchApi instead of StorageApi).
Get the cse instance from your CustomsearchApi instance.
Call cse.list(...) and await the result.

And yes, more samples/tutorials and better documentation are definitely needed. It's on our list, but unfortunately so are other things with higher priority. If anyone wants to contribute samples/docs before we get to it, we'll happily take pull requests!

https://github.com/dart-lang/googleapis_examples/blob/master/customsearch_browser_apikey/web/index.dart
I tried modifying this old code but it did not work
I will try this out and also do i need to import the http package for using this ? @jakobr-google

Generally speaking we cannot provide examples for every single auto-generated client API.
The hardest part is usually get authentication/authorization working. Afterwards it should be very straightforward: The generated client api libraries contain *'Api classes which take an package:http/http.dart:Client and then you can do API calls.
You can use package:googleapis_auth package for obtaining oauth2 credentials/clients for those APIs who use oauth2 or use clientViaApiKey when using API keys.
For custom search in particular, you could take a look at the source of the pub.dartlang.org api (which uses custom search atm).

Thanks for info but i wanted to ask whether google is going to shutdown custom search api ?
@jakobr-google @mkustermann
because i think i read it somewhere

@adityamv7 Since we are working on the Dart team we have no insight into how long the custom search api will be supported. I can encourage you to look at the official custom search api documentation.
There seems to be an XML api which is deprecated. Though, not sure about the json api.
Since this github repository is actually only used by us for generating client api libraries, I'll go ahead and close this issue.


Fixes some critical regressions

Codecov Report

Merging #1057 into develop will decrease coverage by 0.14%.
The diff coverage is 79.31%.

@@             Coverage Diff             @@
##           develop    #1057      +/-   ##
===========================================
- Coverage    63.79%   63.65%   -0.15%
===========================================
  Files          335      335
  Lines        12066    12102      +36
===========================================
+ Hits          7697     7703       +6
- Misses        4369     4399      +30

Impacted Files
Coverage Δ

ui/TextPropertyEditor.js
63.15% <ø> (ø)
:arrow_up:

ui/AbstractIsolatedNodeComponent.js
68.35% <0%> (-8.04%)
:arrow_down:

packages/inline-wrapper/InlineWrapperComponent.js
0% <0%> (-84.62%)
:arrow_down:

ui/EditorSession.js
69.29% <100%> (+2.21%)
:arrow_up:

ui/RenderingEngine.js
96.49% <100%> (+0.03%)
:arrow_up:

ui/InlineNodeComponent.js
76.78% <71.42%> (-1%)
:arrow_down:

util/clone.js
83.33% <0%> (-16.67%)
:arrow_down:

ui/SurfaceManager.js
81.25% <0%> (-3.13%)
:arrow_down:

ui/DOMSelection.js
61.17% <0%> (-2.95%)
:arrow_down:

... and 3 more

Continue to review full report at Codecov.

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


Build failed

../AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.2/lib/src/interface/file.dart(15,16): error GE5CFE876: The method 'File.create' has fewer named arguments than those of overridden method 'File.create'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.2/lib/src/interface/file.dart(15,16): error GE5CFE876: The method 'File.create' doesn't have the named parameter 'exclusive' of overridden method 'File.create'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.2/lib/src/forwarding/forwarding_file.dart(22,8): error GE5CFE876: The method 'ForwardingFile.createSync' has fewer named arguments than those of overridden method 'File.createSync'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.2/lib/src/forwarding/forwarding_file.dart(22,8): error GE5CFE876: The method 'ForwardingFile.createSync' doesn't have the named parameter 'exclusive' of overridden method 'File.createSync'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/multi_select_flutter-4.0.0/lib/chip_field/multi_select_chip_field.dart(382,31): error GC6690633: No named parameter with the name 'isAlwaysShown'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/multi_select_flutter-4.0.0/lib/chip_display/multi_select_chip_display.dart(99,23): error GC6690633: No named parameter with the name 'isAlwaysShown'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/multi_select_flutter-4.0.0/lib/bottom_sheet/multi_select_bottom_sheet.dart(129,9): error GC6690633: No named parameter with the name 'accentColor'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
../AppData/Local/Pub/Cache/hosted/pub.dev/multi_select_flutter-4.0.0/lib/dialog/mult_select_dialog.dart(123,9): error GC6690633: No named parameter with the name 'accentColor'. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(249,5): error MSB8066: Custom build for 'C:\Users\xidahs\data-migrator\build\windows\CMakeFiles\3ced1c7cf5bd2bcfbafe0d9d68a911a4\flutter_windows.dll.rule;C:\Users\xidahs\data-migrator\build\windows\CMakeFiles\cef82ab3f20d192ef39e1028399f3b1f\flutter_assemble.rule' exited with code 1. [C:\Users\xidahs\data-migrator\build\windows\flutter\flutter_assemble.vcxproj]
Building Windows application...                                   105.9s
Exception: Build process failed.

+1


Bind render to renderer instance

Required changes for https://github.com/rofrischmann/react-fela/pull/3

I am not sure if we should use this syntax. It is yet not part of ECMAScript's specification (afaik)


Cannot Modify Device Custom Properties

Whenever I try to modify device custom properties (either via the cmdlet or using the explicit method), I keep getting the following error:
Error : The remote server returned an error: (500) Internal Server Error.
soap:ReceiverMarshalling Error: class com.nable.nobj.ui2.DMSAPIException nor any of its super class is known to this context.

I see mention of a version 1.6 of PS-NCentral, but not seeing it available anywhere. I was wondering if the newer version possibly resolves this issue. Has anyone else had this issue?

The issue seems to be related to the privileges/settings of the N-Central account used for API.- I don't think PS-NCentral v1.6 will solve this.
Version 1.6 (Beta) is currently available on the projects-site (See link in PS-Gallery) only. Will release soon after some more Q&A.


When empty, Account page says 'temp'

This might already be resolved, but not pushed yet.

Problem does not seem to appear anymore, probably had to do with debugging being activated


brave-instrumentation-dubbo-rpc maven not found

brave-instrumentation-dubbo-rpc maven not found
why not deploy maven?
When will it be deploy？

I was able to download
http://search.maven.org/remotecontent?filepath=io/zipkin/brave/brave-instrumentation-dubbo-rpc/5.1.2/brave-instrumentation-dubbo-rpc-5.1.2.jar
just now. check your proxy?

@adriancole  i see the jar ，thank you


Translate content languages (see also 6824 and 6825)

Steps to Reproduce
See picture. Only 13% of Italy speaks English, so they can not read this. Please translate to current UI language.

Attachments
No response
What platform(s) does this occur on?
Web (Desktop)
Device Info
No response
What version of the app are you using?
1.95.0
Additional Information
No response

#6207 will fixed this issue.


Disable rushing Netburners if sourcefile 9 is inactive.

Before I had SourceFile 9, it always felt like a waste to rush the hacknet upgrades from Netburners. Without the actual hashes, I think hacknet ends up being an absolutely tiny portion of total income (and actually routinely negative because of the upgrade manager hah).
Figured other users who are earlier on might appreciate skipping Netburners as well.

I guess l disagree with the premise. Hacknet upgrade manager mathematically derives what upgrades to buy based on their payoff time, and by default, only those that pay for themselves within an hour are bought, which means after 1 hour, you're in pure profit territory.
Before casino.js (which, let's be honest, is an exploit and probably doesn't belong) hacknet (even without hashes) was the most important stepping stone to stock income in hack-income-crippled BNs.
I wouldn't call the current behaviour rushing, it's simply tackling available early-game factions in order of easiest first. In fact, if you want to skip it, there's a built-in mechanism to do that already, just remove "hacknet" from the configued list of desired stats, and like magic it will be initiall skipped because it has no unowned desired augs.

Thanks for reading.

I guess l disagree with the premise. Hacknet upgrade manager mathematically derives what upgrades to buy based on their payoff time, and by default, only those that pay for themselves within an hour are bought, which means after 1 hour, you're in pure profit territory.

Ah there is a bit of a trick here. Yes that's true, however there are also two other invocations of the upgrade manager that are more lenient. My experience is that I would gain money faster from other sources such that their spending outpaced my earnings from hacknet in the long term (since they would have to re-spend on each install).
To be clear, the overall net loss was essentially nothing in the grand scheme of things, since that's exactly how you set up daemon to invoke the upgrade manager. (i.e. They only spend tiny fractions of your money if the payoff time is longer - It just happened to be those tiny fractions outpaced the earnings of hacknet overall).

Before casino.js (which, let's be honest, is an exploit and probably doesn't belong) hacknet (even without hashes) was the most important stepping stone to stock income in hack-income-crippled BNs.

Interesting, I did not specifically explore the role hacknet played when I did things like BN 8, but by that point I found out about casino. Given that casino is implemented as part of the standard workflow for most people (and in autopilot), I think it's not a stretch to say hacknet potentially no longer plays that role.
(My frame of reference is doing bitnodes that are not high levels of 12)

I wouldn't call the current behaviour rushing, it's simply tackling available early-game factions in order of easiest first.

In terms of doing the easiest first, even the early game factions are ordered in terms of the value they provide (e.g. rep augs, special augs, etc...). In that case it still seems to me that for an early-game player hacknet provides very little in the way of value, and therefore Netburners does as well relative to other early game factions.
Especially for a player without extra modifiers (Int, mults from other BN, etc...), Netburners can still take O(hours) when those hours could be spent working towards something potentially more valuable.

In fact, if you want to skip it, there's a built-in mechanism to do that already, just remove "hacknet" from the default configued list of desired stats (line ~115), and like magic it will be initiall skipped because it has no unowned desired augs.
Or even simpler, provide overriding --desired-stat args and the default wont be used, and no need to fork the source. (Can also be made permanent with a config.txt file

Given that I only want to apply this to not having SourceFile 9 (or in BN 9), and I have it anyways, I guess I'm already past the point of setting the flags and it wouldn't really help me if I even started a new save or something.
Also I use my fork anyways since I implemented corps and various other changes (of... questionable value)
Anyways, thanks for taking the time to read, I appreciate you sharing your knowledge since I'm still relatively new to the game. Also super thanks for sharing your scripts; they're great on their own, but also great for learning about the game and learning the proper way to do things in JS (I write C++).
For now I do still believe this is the correct overall choice, but I understand your choice not change it.

Maybe I can take a stab at conditionally only adding "hacknet" to the defaulted desired stats if SF9 is owned, that way the player can still toggle them as desirable augs (and therefore a worthwhile faction) by using the --desired-stat argument.

I just wanted to say thanks for making this repo. It's really cool.


Question: How to debug and/or customize version?

I noticed that the clangd version that is provided is 11. When i was using clangd with coc.nvim it was auto-installing clangd 14. I would like to know what would be involved to customize/update something like this in this framework. I do not know anything about nix so the lack of documentation is a little challenging.

It works by using the clang-tools nix package, which is at version 14 for both stable (22.11) and unstable channels (channels are like distribution release versions).
You can verify which on which channels you are using with nix-channel --list, you will likely need to do an update with nix-channel --update. For more info about channels see the docs.
To verify you can run following: nix-shell -p clang-tools --command "clangd --version"
You will get the same version printed by the command inside neovim, for me it gives clangd version 14.0.6.

@unphased Were you able to figure it out and get it working?

Added a note about channels in https://github.com/dundalek/lazy-lsp.nvim/commit/c6593b96b1ede3f050621e3f5c070f581282f019


Change welcome screen to dialogbox

fixes #158
fixes #127

Please make sure that all the checks pass. Please add here any additional information regarding this pull request. It's highly recommended that you link this PR to an issue (please create one if it doesn't exist for this PR)

@roll it is ready for review. Thank you!

@roll it is ready for the review. I have made changes to use dialog for both: create and welcome screen(when file count is zero). Thanks!


Update Jacoco

exclude tests with jdk17
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/671/


Allow running in the background

This program expects input so running it in the background doesn't work.

Filed upstream at jfischoff/twitch#21


How do you generate the doc?

I see there is a mkdocs.yml file, but not sure how to create the docs. What requirements are necessary?
I tried pip install mkdocs, and ran mkdocs build but I got an error:
% mkdocs build
Error: MkDocs encountered an error parsing the configuration file: while constructing a Python object
cannot find module 'materialx.emoji' (No module named 'materialx')
  in "/nix/code/pygpt4all/mkdocs.yml", line 45, column 20

I've tried installing a few other packages, but to no avail.
Would it make sense to generate then add the generated docs somewhere? (perhaps in this repo even?)

Note that the most recent build has an error in the build related to doc gen. See https://github.com/nomic-ai/pygpt4all/actions/runs/4826093284/jobs/8598692802

Oh. I see the pages are here: https://nomic-ai.github.io/pygpt4all/ (thanks for updating the project info on the right)

@mkinney, You can generate the docs locally using mkdocs serve ( You can check the requirements from the Github workflow docs)
They are actually hosted in the repo, check the branch gh-pages.
Yeah, I've updated the project info recently.

Hmm...
(venv) sweet pygpt4all % mkdocs serve
Error: MkDocs encountered an error parsing the configuration file: while constructing a Python object
cannot find module 'materialx.emoji' (No module named 'materialx')
  in "/nix/code/pygpt4all/mkdocs.yml", line 45, column 20

What package(s) might need to be installed for that?

I think you need to install the extensions.
try:
pip install mkdocs-material-extensions
pip install mkdocs-macros-plugin

I had those installed (after seeing the .github workflow for building the docs), but I still get the same error.
Not a big deal. I'm trying to run this from a mac. If the docs are auto generated and available on the gh page, then I'm ok if we just close this issue.

It is working smoothly on my Linux machine, not sure about mac.
OK, feel free to reopen it if you have any other issue.


Update runtime_job_v2.py docs

Summary
Tiny update to documentation.
Details and comments
Remove one 'the'.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @J-C-Q! We're actually removing that docstring here. Going to close this PR


Adding complex object to request().field() method

Describe the bug
Node.js version: 18.18.2
OS version: macOS Sonoma 14.4
Description:
When adding complex object to field() method, the documentation says to use it like this. #759
.field('complex_object', '{"attribute": "value"}', {contentType: 'application/json'})
With this solution, I got an error.
Expected 1-2 arguments, but got 3.ts(2554)
@types/supertest 6.0.2
supertest 7.0.0
typescript 5.4.5
Actual behavior
await request(app)
  .post('/test')
  .field('myObject', JSON.stringify({ key1: 'key1', key2: 'key2' }), { contentType: 'application/json' })
  .attach('attachments', path.join(__dirname, 'image.png'))
  .expect(200)

Expected behavior
Test success without an error.
Code to reproduce
Checklist

[x] I have searched through GitHub issues for similar issues.
[x] I have completely read through the README and documentation.
[ ] I have tested my code with the latest version of Node.js and this package and confirmed it is still not working.

I got similar issue where I can't put { contentType: 'application/json' } in the third param.

I got similar issue where I can't put { contentType: 'application/json' } in the third param.

just realized seems we need to add the options params in the superagent types repo. I just added here, feel free to add feedback that I required to do. This is the first time I try to update open source repo. not sure if I did it correctly.
DefinitelyTyped/DefinitelyTyped#70050

Just wanted to let you know that this is resolved in here

I got similar issue where I can't put { contentType: 'application/json' } in the third param.

just realized seems we need to add the options params in the superagent types repo. I just added here, feel free to add feedback that I required to do. This is the first time I try to update open source repo. not sure if I did it correctly.
DefinitelyTyped/DefinitelyTyped#70050

just wanted to let @swkang0513 know the PR already approved and merged, so it should solve the problem


kern: support uid/pid filter in ebpf TC hook.

remove uid/pid filter in kprobe/tcp_sendmsg.
tcp_sendmsg hook all processes are monitored, so there is no need to filter pid and uid, otherwise pid\uid cannot be used in the TC capture_packets function to filter network packets

@xxxxxliil try it.

@xxxxxliil try it.

fix #602 and #605?

@xxxxxliil try it.

fix #602 and #605?

Yes, there are three issues in these two tickets:

The error message indicates the Hook type is for Golang.
There is no support for filtering network packets by uid.
conn_id is undefined.

Among them, issue 1 involves incorrect character output but does not actually affect the program logic. Issue 3 was fixed by removing related logs that had no value. The main focus was on fixing issue 2.

#605 fixed
#602 I can't build android target

ANDROID=1 make

ANDROID=1 make

此处的不能构建不是不知道构建命令，而是发行版不能提供对应的 aarch64 头文件（包 aarch64-linux-gnu-linux-api-headers 没有提供 kconfig.h）

我本地做了测试，是可以构建ANDROID的。 如果你在amd64上，也是可以编译x86_64的ANDROID程序。
如果你想交叉编译，那么你需要参考 https://github.com/gojue/ecapture/blob/master/.github/workflows/release.yml#L27 ，下载头文件源码，并构建生成相关头文件。 在makefile时引用。
另外：因为你不是ubuntu，无法使用已经提供好的脚本。所以，你需要手动安装。

@cfc4n #602 没有被这个 pr 解决


feat: Filter on istio gateways based on ingress annotations

Changes

Introduce 2 new annotations on Ingress: serving.knative.dev/istio-gateways & serving.knative.dev/istio-local-gateways
If an annotation is set, net-istio won't use the full list of gateway configured in the config. An intersection of the 2 lists will be used.
If TLS is specified, the custom gateway that are created specifically for wildcard also refer to istio ingress gateway filtered by the annotation

Example
2 ingress gateway have been created while installing istio, in istio-system namespace

istio-private-ingressgateway: This ingress is exposed on a private network
istio-public-ingressgateway: This ingress is exposed on internet

The split public/private is purely informative, any gateway topology is supported
Both gateways are defined in net-istio config-istio ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-istio
  namespace: knative-serving
data:
  gateway.knative-serving.knative-private-ingress-gateway: "istio-private-ingressgateway.istio-system.svc.cluster.local"
  gateway.knative-serving.knative-public-ingress-gateway: "istio-public-ingressgateway.istio-system.svc.cluster.local"
  local-gateway....

While creating a knative service, the user can add an annotation to specify on which gateway the service should be exposed. Local gateways can also be filtered (not illustrated on this example)

Only on private network:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-private-service
  annotations:
    serving.knative.dev/istio-gateways: knative-serving/knative-private-ingress-gateway

will result for the creation of the virtual service my-private-service-ingress:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: my-private-service-ingress
spec:
  gateways:
  - knative-serving/knative-private-ingress-gateway
  - knative-serving/knative-local-gateway # whatever the name it has
...

Only on internet:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-public-service
  annotations:
    serving.knative.dev/istio-gateways: knative-serving/knative-public-ingress-gateway

will result for the creation of the virtual service my-public-service-ingress:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: my-public-service-ingress
spec:
  gateways:
  - knative-serving/knative-public-ingress-gateway
  - knative-serving/knative-local-gateway # whatever the name it has
...

On both:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-service
  annotations:
    serving.knative.dev/istio-gateways: knative-serving/knative-public-ingress-gateway,knative-serving/knative-private-ingress-gateway

or
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-service

will result for the creation of the virtual service my-service-ingress:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: my-service-ingress
spec:
  gateways:
  - knative-serving/knative-public-ingress-gateway
  - knative-serving/knative-private-ingress-gateway
  - knative-serving/knative-local-gateway # whatever the name it has
...

Notes

Intersection versus Directly use the list from the user annotation. In term of negative impact:

intersection: if the user sets an undefined gateway, the value will disappear silently
non-intersection: the annotation values still have to be define in the configuration to create the gateways. The user could have pre-created the gateways but net-istio is "dupplicating" the gateways for TLS. That would fail, the gateway wouldn't have any selector

If the user doesn't set any valid value, the code would try to create a virtual service without any gateway. The virtual service is not created at all. That could be mitigated if local-gateway can't be filtered
This design relies on the fact that annotation on knative service cr will be copy to knative ingress cr
Should the code log some message if a gateway from an annotation had been ignored ? Should it raise an error instead ?

/kind enhancement
Fixes #1124
Release Note

Docs

hey @pastequo , thanks for this contribution!

Intersection versus Directly use the list from the user annotation. In term of negative impact:

intersection: if the user sets an undefined gateway, the value will disappear silently
non-intersection: the annotation values still have to be define in the configuration to create the gateways. The user could have pre-created the gateways but net-istio is "dupplicating" the gateways for TLS. That would fail, the gateway wouldn't have any selector

I'm not sure I'm following exactly, could you elaborate a bit more on the difference between intersection and non-intersection?
In both cases, it seems like it could only use whatever was defined in the configmap. You wouldn't want to have it reconciled by a gateway that knative didn't know about, right? Sorry if I'm misinterpreting things.

If the user doesn't set any valid value, the code would try to create a virtual service without any gateway. The virtual service is not created at all. That could be mitigated if local-gateway can't be filtered

I may be misunderstanding, but my instinct would be to fall back to the current default behavior of applying every gateway that is listed in the configmap. That way it wouldn't really change anything for people not using this annotation/use case.

Should the code log some message if a gateway from an annotation had been ignored ? Should it raise an error instead ?

Maybe we could update the status on the Kingress with a condition explaining this? Though idk if this is too ingress-specific to make its way up into Knative core stuff?

Also, one of things I was thinking about with this feature is that, if you use different gateways, I think you also need to consider what domains are being used. I think in @rblaine95's case, they wanted to use the same domain for both gateways, so it is less of a problem.
But could there be a scenario where DNS is set up to map one domain to gateway A and another to gateway B? Then you'd need to make sure the Ksvc with the gateway A annotation has the right labels so that the domain it is given is correct.
In this case, I'm thinking this might be a hard error to discover. Idk if there would be a way to make net-istio warn you that the domain on a ksvc isn't served by the gateway it is tied to, since that info kinda lies outside of Knative.

Thanks for your feedbacks !
Check user annotation
non-intersection vs intersection was not very clear, let me rephrase it:
Should the code check that the gateways set in annotations are defined in config-istio configmap ? If yes, what to do in case of an invalid value ? (see next section)
The TLS part of the code required gateways to be defined in the config-istio configmap, the non-TLS part doesn't
Invalid value management
Let's enumerate the different possibilities and merge into it the "logging question".
A value in the annotations can be invalid for 2 reasons:

it's not well formatted (the code is expected a qualified name in the form of $namespace/$gateway-name)
config-istio configmap doesn't reference this gateway

I'm assuming the code should respond the same way if a value is invalid, whatever the reason.
From my understanding, when reconciling an ingress, the code is merging the "gateways" with the "local-gateways" and put the result in the virtual service named $serviceName-ingress. For the TLS specific path, only the "gateways" are considered.
All values are valid (well-formatted & present in config-istio configmap)
Happy path, just apply the config
There is no annotation
Still happy path, default to the list in the config-istio configmap
All values are invalid (either not well-formatted or not present in config-istio)
It either means:

both "local" and "non-local" annotations only contain invalid values
"non-local" annotation only contain invalid values & TLS is activated

What is the expected behavior:

Should the reconciliation fail ?
Should it default to the list in the config-istio configmap ? (As a user, I would find this behavior very surprising)
Should the virtual services be still created with invalid values ?
How to surface the error(s) ?

Some values are invalid, some are valid

Should the reconciliation fail ?
Should the configuration be partly applied (with only the right value) ?
Should it default to the list in the config-istio configmap ? (As a user, I would find this behavior very surprising)

Should the virtual services be still created with invalid values ?

How to surface the error(s) ?

Local gateways
I definitely lack knowledge around the concept of "local-gateways", I don't see what is their purpose. So I don't know if they should be "select-able" as well with annotations. Strictly speaking about the original issue(s), I don't think it's required
DNS consideration
Regarding the DNS part, my first instinct would be to say it's out of scope.
In the config-domain configmap, something like that could be defined
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-domain
  namespace: knative-serving
data:
  my-public-domain.com: |
    selector:
      traffic: public
  my-private-domain.com: |
    selector:
     traffic: private

Then I think it's up to the end users to ensure they are creating something consistent, not like below
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-badly-configured-service
  annotations:
    serving.knative.dev/istio-gateways: knative-serving/knative-public-ingress-gateway # public here
  labels:
    traffic: private # private here
spec:

But it could be a nice information to surface

/ok-to-test

/cc @ReToCode :pray:

I would argue that as-of-today the default behavior is to expose the service to all gateways defined in the configmap. Therefore this PR can be viewed as a way to define where you don't want to expose the service, meaning it filtered what the admin defined, not overwrite.
I understand your point about

I don't know whether letting users run services that are 'unexpectedly' accessible in intranet networks is a risk

But letting users run services that are 'unexpectedly' accessible from internet (and more generally from any unexpected networks) is a bigger risk imho. I think the right approach here is to not split by "public/private" but generalize to "different networks" and let the admin, thru the ingress gateway definition, put any meaning on them. Then I think it's up to the service owner to know & specify from which network their service should be accessible
Regarding the namespaces approach, I, as a service owner, am personally used to have the flexibility to define how to split my namespace. which is convenient for RBAC, networking policies, etc. If I was asked to use a static list of namespace, that would probably imply more problem.
Your proposal didn't state it has to be static but if the list is dynamic (for example deploy on namespace network1-* to expose to network1) than the proposal is equivalent to the label/annotation one, with an additional layer of complexity. Instead of choosing a annotation/label, the user is choosing a namespace
Just my 2 cents.

I think the gateway api sets a good precendent here (long term we'll want to consolidate around it)
They make this an operator concern and the gateway resource defines which routes can attach to itself
https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.AllowedRoutes
Thus the operator specifies which namespaces are allowed to use certain gateways and then the user can specify the gateways that it wants

Ok, if I understand you correctly, there are 2 different functionalities to consider:

User should be able to specify which gateway they want to use (as long as they are defined in the config)
Operator should be able to restrict gateway access (probably to certain namespace)

The current status is that all gateways are always used. This PR allows to achieve the 1st functionality without, I think, putting constraint on the 2nd functionality.
Is there a reason to achieve the 2 functionalities simultaneously? And even in the same PR?

Following up from our discussion in the Serving WG group.
We identified this problem sorta fits into the visibility feature we have for our services. This is where a user can specify using an annotation a visibility for their Knative Service - eg. networking.knative.dev/visibility=cluster-local
Currently we associate cluster-local visibility to gateways with the local-gateway. prefix in the config-istio configmap. Similarly, external Gateways with the gateway. prefix.

User should be able to specify which gateway they want to use (as long as they are defined in the config)

I think we shouldn't expose more to the user than what's necessary - it's the wrong level of abstraction for the user.
Hence I think a mechanic for the operator to define a new visibility in config-istio and then users can use this higher level constant.
A rough idea could be
gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"
gateway-visibility.vpc.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"
gateway-visibility.vpc.knative-serving.knative-vpc-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"

Thus if the user specifies the annotationnetworking.knative.dev/visibility=vpc - it will look up and attach the virtual service to Istio Gateways knative-ingress-gateway & knative-vpc-gateway
Thus the template is
gateway-visibility.{visibility}.{gateway-ns}.{gateway-name}: "{target-service-for-probing}"

Operator should be able to restrict gateway access (probably to certain namespace)

I think you're right about me introducing an additional constraint. We can always add this later.
cc @nak3 @ReToCode @skonto for thoughts/ideas on alternative approaches?

cc @nak3 @ReToCode @skonto for thoughts/ideas on alternative approaches?

Just some thoughts so far:
I'm still struggling a bit with the mix of which gateway a Knative Service should be attached to and the current behaviour of visibility=cluster-local which is used to differentiate between domains. It feels like we are mixing two things to me.
Also currently, only istio can even do the multi-gateway stuff, so it is a bit strange to add this as public interface to a Knative Service. So I feel this should be configured by an admin and only handled by net-istio in config-istio (at least for now, gateway-api will probably change this).
Currently we have two gateway types and attach istio resources to all gateways with the matching type, but not all domains:

cluster-local = cluster local doman <svc>.<ns>.svc.cluster.local
cluster-external = domain configured in config-domain (+ domain mappings)

So what would be the domain for vpc or any other visibility? So I feel we should keep those two types of gateways and domains and try to only target the gateway selection.
What about a new config that has two label selectors (roughly):
- serviceSelector:
   matchLabels:
     my-workload-selector: private
  gatewaySelector:
    matchLabels:
      gateway-visibility: vpc
- serviceSelector:
   matchLabels:
     my-workload-selector: public
  gatewaySelector:
    matchLabels:
      gateway-visibility: external

Then people can add labels on gateways + services as they need. net-istio would still have two gateway types, but filter out the gateways it attaches the istio resources to.

I think both Dave's and Reto's idea sounds good.
With said, Reto's will introduce a brand new config against the current config (=gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local") so the migration will be complicated, I think.
Just FYI, we had a proposal about expanding visibility https://github.com/knative/serving/issues/6642 before though it cannot be a short term solution.

With said, Reto's will introduce a brand new config against the current config (=gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local") so the migration will be complicated, I think.

How do you mean that? The current config of gateways would stay the same in my proposal. I would just add a new and optional key to influence the gateway <> service selection.

I see. Then, user's migration is not necessary.
But still, the code change (parseGateways() in pkg/reconciler/ingress/config/istio.go) may become a little bit complicated compared to the prefix based parse (gateway-visibility.{visibility}.{gateway-ns}.{gateway-name}:).

I'm back after some PTO and still willing to move forward with this PR !
To sum up the different messages from @dprotaso @ReToCode & @nak3

Users shouldn't reference directly istio gateways
This PR should not be mixed with the visibility feature
It should avoid a mandatory user migration
Config should be easy to parse with the current code

IMHO, I think

it's more appropriate for the user to use an annotation rather than a label
Istio gateways shouldn't be referenced by different ways in the config (the current config already use qualified name, I wouldn't add labels to reference the same thing)

So, if we agree on that, by mixing the different ideas, another proposal. Basically it's the same as my first proposal without exposing the gateway names:

net-istio config introduces a new config to associate istio gateway with a constant (that I named "exposition")

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-istio
  namespace: knative-serving
data:
  gateway.knative-serving.knative-internal-ingress-gateway: "istio-internal-ingressgateway.istio-system.svc.cluster.local"
  gateway.knative-serving.knative-external-ingress-gateway: "istio-external-ingressgateway.istio-system.svc.cluster.local"
  local-gateway.knative-serving.knative-local-gateway: "istio-internal-ingressgateway.istio-system.svc.cluster.local"
  exposition.knative-serving.knative-internal-ingress-gateway: "my-value-1"
  exposition.knative-serving.knative-external-ingress-gateway: "my-value-2,my-value-3"

Thus the template is
exposition.{gateway-namespace}.{gateway-name}: "{list-of-value-separated-by-a-comma}"

Users specifies the annotation networking.knative.dev/istio-exposition=my-value-1
The code adds the new field in the struct

// Gateway specifies the name of the Gateway and the K8s Service backing it.
type Gateway struct {
	Namespace  string
	Name       string
	ServiceURL string
	Exposition sets.String
}

Any thoughts ?
I'm available to work on whatever implementation is chosen

/retest

@pastequo Thank you so much! Could you update the initial description https://github.com/knative-extensions/net-istio/pull/1137#issue-1776812747 if it was changed? I guess that the latest commit is different from the initial proposal e.g. annotations, correct?

Should it raise an error while parsing the configuration ?

"parsing the configuration" means parseExposition()? If so, I think yes.

Should the filtering also apply to the local gateways ?

I think either is fine for now but we should implement this with the assumption to add the local gateway later.
I guess we need to support it when users use multi-tenant ServiceMesh in the future - https://istio.io/latest/docs/ops/deployment/deployment-models/#multiple-clusters

Should it raise a reconciliation error if the exposition specify in the ingress annotation is unknown (not present in the config)

No, I think we should not raise a reconcilation error but we should conisder to add a validation error via webhook. (I am still thinking about it though.)

/test latest-mesh

/hold
release is tomorrow - will unhold afterwards

Hi @pastequo I just tried this to understand the implementation but the status becomes meshOnly: true. I think my configuration somehow is wrong but is it possible to add an e2e test under test/e2e/? Then, I think I understand what was wrong.
$ kubectl get king  -o yaml hello-example
  ...
  status:
    conditions:
   ...
    privateLoadBalancer:
      ingress:
      - meshOnly: true
    publicLoadBalancer:
      ingress:
      - meshOnly: true

Hi @pastequo I just tried this to understand the implementation but the status becomes meshOnly: true. I think my configuration somehow is wrong but is it possible to add an e2e test under test/e2e/? Then, I think I understand what was wrong.
$ kubectl get king  -o yaml hello-example
  ...
  status:
    conditions:
   ...
    privateLoadBalancer:
      ingress:
      - meshOnly: true
    publicLoadBalancer:
      ingress:
      - meshOnly: true

I don't reproduce locally what you observed

I changed the annotation name
I made NewIstioFromConfigMap return an error if the configuration is not consistent
I updated the PR description accordingly
I added a e2e test. Let me know if it's done the right way. We will see how the pipeline behaves...

(On a side note, it wasn't easy to setup a local environment to replay e2e... It might be worth documenting how you proceed. I saw some weird things too that might require clean up. For example github workflows references CONFIG_ISTIO="./third_party/istio-${{ matrix.istio-version }}/istio-kind-${{ matrix.istio-profile }}/config-istio.yaml" but the files are not named config-istio.yaml but istio.yaml. If I'm correct there isn't any config-istio.yaml )

Thank you. I understand that the MeshOnly: true happens when no LB matched. Is it possible to set MarkLoadBalancerNotReady instead of MeshOnly: true  when there is no matched LB?

Wouldn't it be more confusing ? By reading MarkLoadBalancerNotReady I expect to have a LB that will eventually become ready

/retest

Wouldn't it be more confusing ? By reading MarkLoadBalancerNotReady I expect to have a LB that will eventually become ready

Yes, and users will take a look at their LB (=Istio Gateway) and realize that the LB does not exist due to their wrong configuration, won't they?
By the way, I realized that the designe has some problems:
(copied from https://github.com/knative-extensions/net-istio/pull/1137#issue-1776812747)
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-istio
  namespace: knative-serving
data:
  gateway.ns1.gtw1: "ing1.istio-system.svc.cluster.local"
  gateway.ns2.gtw2: "ing2.istio-system.svc.cluster.local"
  ...

You assume that ns1.gtw1 & ns2.gtw2 are used when annotation is empty. But serving's prober does not check if both are available. So, multiple gateways for one ksvc should have a problem.
So I think we still need a template gateway-visibility.{visibility}.{gateway-ns}.{gateway-name}: "{target-service-for-probing}" to support.

Regarding the MarkLoadBalancerNotReady status, I think the first question to answer is to agree if it is valid or not if there is no gateway (local or not) for a given visibility. If not then we need a mechanism to surface the error. If it is valid, then I think there is no need to mark the status as MarkLoadBalancerNotReady since all the expected LBs are ready (in this case 0, only the mesh is configured)

BTW, there is a subtlety between the istio ingress gateways and the istio gateways. The LBs (exposing Istio ingress gateway, aka envoy) are ready and healthy. But none of them are used because there is no istio gateways (a gathering of configuration) for this ksvc. So it could be confusing for the user, because he shouldn't look at the LB nor the istio ingress gateways

Regarding the probes, after a quick look at the code, I think all the endpoints are checked, but only the first one is reported. I think this issue is independent from my PR. As of today - without this PR - I can configure multiple gateways in my configuration. The capability to filter on those gateways shouldn't influence the probes. It might be better to handle the 2 topics separately

I still think it is not the best idea to mix the current visibility with the new gateway selection (https://github.com/knative-extensions/net-istio/pull/1137#issuecomment-1655211889). Similarly, this goes the same direction.

Thanks for the reply @ReToCode.
I can confirm you that I took into account your remarks: the 2 notions (visibility & exposition) are not mixed.
What I designed and I hopefully implemented, is to limit the list of gateway per visibility without changing the logic on top of that that choses which list of gateway to use (based on visibility)
I will edit the design to state it clearly

Funny enough @nak3's issue (https://github.com/knative-extensions/net-istio/issues/718) made me realize there's a lot more work to support this feature properly - so that's definitely something we'd want to address.
Secondly, I wonder if it would make sense to take inspiration from config-domain changes that are likely to land - https://github.com/knative/serving/pull/14543 Since it seems there's still a bit of contention on how to structure config-istio.
What I like about that Serving PR is that it supports a new config format and the old one. Given that it might be best rethink what we want config-istio to look like instead of trying to shoe horn it into the existing format.
eg. we could have
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-istio
  namespace: knative-serving
data:
  internal-gateways:
    - service-namespace: istio-system
      service-name: knative-cluster-local
  external-gateways:
    - service-namespace: istio-system
      service-name:  ing2
    - service-namespace: istio-system
      service-name:  ing1

and then introduce the concept of selectors for services and even namespace selectors
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-istio
  namespace: knative-serving
data:
  internal-gateways: |
    - namespace: istio-system
      name: knative-cluster-local
  external-gateways: |
    - namespace: istio-system
      name:  ing2
      namespaceSelector: |
        kubernetes.io/metadata.name: blah
    - service-namespace: istio-system
      service-name:  ing1
      selector: |
         app: foo

We could even extend this to support matching gateways depending on domain so you don't have to repeat the namespace selector in two configs
Thoughts on this approach @ReToCode & @nak3 ?
@pastequo would the above give you the flexibility you require?
It might make sense to move this proposal to a shared google document rather than a PR - @pastequo can you open an issue regarding this incase you haven't done so?

@dprotaso I like that approach, it is closer to what we actually want to configure and does not mix with the visibility (as per https://github.com/knative-extensions/net-istio/pull/1137#issuecomment-1655211889).
So you'd add this as an additional config to keep being reverse compatible with the new structure to have precedence?
Side-note: probably we also want to rename the internal-gateways to local-gateways.

Funny enough @nak3's issue (#718) made me realize there's a lot more work to support this feature properly - so that's definitely something we'd want to address.

I don't have the history you have on this project, but it seemed to me that there wasn't a lot of work for that. All the code is plugged to work with a list of gateway except for the LB Status methods that already accept an array.

Secondly, I wonder if it would make sense to take inspiration from config-domain changes that are likely to land - https://github.com/knative/serving/pull/14543 Since it seems there's still a bit of contention on how to structure config-istio.

Should it block this PR ? Reworking the config structure seems independent to me. Tho I understand that might be a good opportunity.

@pastequo would the above give you the flexibility you require?

It seems so but some remarks:

Even if the "admin" should have capabilities to restrict which services can be exposed, I believe the "user" should be the one who in the first place explicit their requirement about how to expose their service. To achieve that, I think annotation would be more appropriate than labels, as the user wants to trigger a special behavior. So the configuration should expose a way to associate a special annotation value to a internal/external-gateway.
selector sounds as a "labels-based" approach to me, it can be kept if we want to offer to the "admin" the capability to filter by labels
Similarly to what I did in my description, the important part is to define what is the expected behavior when no labels/annotation matches, when the user specifies nothing, etc

It might make sense to move this proposal to a shared google document rather than a PR - @pastequo can you open an issue regarding this incase you haven't done so?

I was referencing another user issue: https://github.com/knative-extensions/net-istio/issues/1124
Would it be ok for you or should I create something else specific ?

Google document added
https://docs.google.com/document/d/12X1-9nhjAhpf-Wlt3RbdoMbvx31zFBva/edit#heading=h.gjdgxs


Extract HTMLDriver

Remove exessive and heavy makeHTMLDriver dependency from index. Just a reminder as it is still not done.

@staltz @TylorS
Do you think it is really needed because in webpack config there is can be workaround using empty loader not to load makeHTMLDriver module.
Aslo mockDOMSource is not needed in production.
How would you remove it and how it should be imported and used?

In private staltz and I have mentioned wanting to provide ES2015 module builds for tree shaking, so maybe it isn't necessary?

Well yes for ES2015 builds it will be possible to avoid it due to tree shaking. As a workaround for now as I mentioned one can to use custom empty webpack's loader or browserify's transform to get rid of unnecessary/unused inner module's requires.

This is done.


Xml processing choice explanation

Please check revision 64c9e27

Hi
Concerning RisEclipse and Schematron, in my opinion these solutions are not comparable. Schematron, as XML schema and Relax NG, are structural grammar validation language. Those technologies need software to apply constrains they define. RisEclipse is an application. It uses OCL to express its constrains.
So it's better comparing OCL and Schematron for XML processing. As I've already said ever since in the survey, in my opinion, it's better using XML technologies to process XML

Hi,
I am Aurelie DEHOUCK from EDF, part of RISECLIPSE team.
I wanted to argue in favor or RISECLIPSE vs schematron :
- the validation rules are already available, whereas you will have to re-develop all with schematron.
- with OCL you can express the rules outside of the code, and non-developper specialists can understand / write them directly,
- We have launched in 2021 a task force in IEC TC57/WG10 (working on IEC 61850), in oder to standardize OCL rules as "code components" of the standard. Those standard OCL rules will be written by the standard experts, and joined to the pdf standard, like the XSD for SCL
- RISECLIPSE was used during last IEC 61850 IOPs in 2019, in Charlotte, and has found many of the SCL issues, proving its capacity of validation, and maturity
- (more technically) with OCL you navigate into your file at a model level (understand a graph) : this is very usefull in files like SCL, where you have many Inside references (for example IED LN to LNodeType…)
- our Community is open : you are welcome to participate !

Hi
Concerning RisEclipse and Schematron, in my opinion these solutions are not comparable. Schematron, as XML schema and Relax NG, are structural grammar validation language. Those technologies need software to apply constrains they define. RisEclipse is an application. It uses OCL to express its constrains.
So it's better comparing OCL and Schematron. As I've already said ever since in the survey, in my opinion, it's better using XML technologies to process XML

@syllamoh
You're completely right.
We are using the combination JAXB / RDF4J now for processing the XML data. RDF4J is used for incoming CIM files (using the RDF framework), JAXB is used for processing / validating the SCL files. In combination with the underlying BaseX database for storing the data it's enough for the processing XML choice. Schematron/RiseClipse is out of sight and not used anymore.
I will edit the page. :)

Users can always add a microservice with RiseClipse inside for additional checking of the SCL contrains.


Removing openshift-config namespaces from manifest

These are now created by the cluster-config-operator manifest

/assign @dmage
/cc @deads2k

/lgtm
/retest


Displays 'No Package Published Yet' after a package has been published

I installed a new copy of Verdaccio and publish a namespaced package to it. The package is successfully deployed but when I goto the registry homepage it still says 'No Package Published Yet'
The package has been uploaded as I can see it on the server storage and https://npm.scropt.com/-/all shows it.
** To Reproduce **

Run Verdaccio in a docker container (latest production release AND 4.0.0-beta1)
Add a new user
Publish a name-spaced package '@thing/react-component-library'
Confirm in the console the package was deployed
Goto the server storage folder and confirm the package was stored
Goto https://my.registry.com/-/all and confirm the package appears there
Goto the registry home page and see the message 'No Package Published Yet.'

Thank u for the feedback @antictor