[WIP] Code improvement and TS fixes

@pi0 I pushed a temporary commit so you can see the work here. If you don't like something or think that I'm going in the wrong direction, leave a review
Also, after you are done submitting all of your reviews and I'm finished with the fixes, I'm going to reset the head 1 back and do a rebase so commits are semantic

Also quick question, should I define some getters/setters for res, req so that users know how to set up an express middleware that uses non-public api?
ex)
res._implicitHeader
// ^ Throws (Wrap it in an express instance. Guide: <link>)

Another question: does this library support error handlers (4 parameter function) of express? I'm currently not seeing a code that does that

I think the use function is unnecessarily complicated in both implementation and type that it's hard to test and make it reliable. We should do a refactoring

The lazy api is fundamentally fragile. I'm ignoring it for now

The above commit also includes a feature update which allows users to directly pass in a router instead of having to do eventHandler(router.handler)

Hi dear @nopeless. Thanks for all your efforts on this PR 💚  There are several possible improvements I can see from the changes. But they should be splitted into smaller branches with the corresponding issue and PRs each.
Do you mind to help on start by creating issues for lazy handler and router implementations?
As for express compact, I think we can mainly improve docs, or possibly introduce a new utility like defineExpressHandler that tries to add polyfills. Would be happy to discuss on this too once having an issue.

Hi dear @nopeless. Thanks for all your efforts on this PR 💚  There are several possible improvements I can see from the changes. But they should be splitted into smaller branches with the corresponding issue and PRs each.
Do you mind to help on start by creating issues for lazy handler and router implementations?
As for express compact, I think we can mainly improve docs, or possibly introduce a new utility like defineExpressHandler that tries to add polyfills. Would be happy to discuss on this too once having an issue.

Ok, give a rough priority list


(Fixed in Swift 1.2) Some methods (eg initWithNibName:bundle) vtabled in release mode

Hi
Steps to reproduce:

Download the example.
Change the Build Configuartion scheme from 'Debug' to 'Release'
Build and Run

Here is a copy of the exception being raised on startup.
2014-12-01 11:29:38.369 PocketForecast[38575:636356] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Method 'initWithNibName:bundle:' has 2 parameters, but 1 was injected. Inject with 'nil' if necessary'
The wrong parameters seem to be being injected into the initialiser...
Could this be a SWIFT closure problem? Strange it only happens in RELEASE builds.
FYI I am also seeing the same problem with my own SWIFT application using Typhoon both 2.3.0 & 2.3.1

From Apple bug report:

Apple Developer Relations10-Feb-2015 12:50 PM

We believe this issue has been addressed in the latest Xcode 6.3 beta, including iOS 8.3 SDK with Swift 1.2.

Please test with this release.  If you still have issues, please include any relevant logs or information that could help us investigate.

This is a pre-release version of the complete Xcode developer toolset for Mac, iPhone, iPad, and Apple Watch. This release requires OS X Yosemite.

Xcode 6.3 - Build 6D520o
https://developer.apple.com/xcode/downloads/

Sounds promising! I'll try and find some time to verify this on the latest beta build

@mowens That's great news! Thanks so much for taking care of this. Hey would you like to be featured on the Typhoon website as a contributor? We add a picture and short-bio of folks who've made significant contributions.

@jasperblues Sad news. I still received a crash on the release configuration. I wasn't able to debug too much into it last night but I will look into it in more detail shortly. Seems like there are some issues resolving symbols of release builds in Xcode Beta which was making it more difficult to determine if the crash point is the same as before or not. Anyways, I'll keep you posted.
As for being listed on the Typhoon website as a contributor, that sounds great :) I'd love to be featured. Thanks man!

@mowens Damn, that's too bad. Hope its resolved soon. At least encouraging that its being given attention.
Can you send us a pic and brief bio?

@jasperblues GREAT NEWS! Swift 1.2 has fixed the release mode optimizations :+1:
I finally had time to really look into the Swift 1.2 code in regards to the Typhoon-Swift project. Turns out the original crash in release mode for 1.2 was cased by some bad Swift code due to the 1.2 upgrade.
I have created a branch with the updated code that now works great under 1.2 :)
https://github.com/appsquickly/Typhoon-Swift-Example/tree/feature/swift-1.2
For parties that are interested there are 2 commits on this branch. The first commit just updates the Pod dependencies. The second commit contains the Swift 1.2 code changes. I am going to keep this as a feature branch until 1.2 is out of beta.

@mowens AWESOME! Thanks so much for taking care of this.
Swift + 💉💉💉💉💉💉 =  	🎉 	🎉 	🎉 	🎉 	🎉 	🎉

@jasperblues No problem :+1:
I sent you an email with my pic and bio from<EMAIL_ADDRESS>

I've run into a problem that I assume is linked to this and also only occurs in releases. Basically the wrong values are being injected and coming from absolutely random (but consistent) locations. For example, an inline string value was being replaced with a value from a TyphoonConfig instance.

@dereekb could you post your code that is causing the issue?

There is nothing particularly special about it, and the project is bigger than I'd like to post.
The injection that messed up wasn't anything in particular:
    public dynamic func appContext() -> AnyObject {
        return TyphoonDefinition.withClass(VISAppContext.self) { ... }
   }

    public dynamic func destinationKeyAccessor() -> AnyObject {
        return TyphoonDefinition.withFactory(self.appContext(), selector: "makeKeyAccessorWithType:", parameters: { $0.injectParameterWith("destination") })
    }

I restructured this Typhoon definition multiple times, and the injected value was first consistently a string that was defined in a config, and then a CGRect that was defined inline in another injection for UIWindow, so I am pretty certain it was just Swift optimization bugs.
I'll try and reproduce it in another smaller app and post that here if you'd like to see it. I also have a lot of debug outputs that show the values being injected because I was going to bring up the issue here.

I've been leaving this open for folks using Swift prior to version 1.2. I think we can close it soon.


Left over artifacts should be cleaned up or not collected

Windows - Any
I found a build that not only includes binaries (artifacts that are named as *2019-04-10-03-27*) that were generated by the build itself but also binaries from a previous build (artifacts that are named as *2019-04-09-17-51*).

@johnoliver think this is fixed now? We only keep the latest artefact. Can it be closed?

ping @johnoliver ref George's comment above

For lack of reply, I'm going to close this. OP can always reopen if this proves to still be a problem


reorder object destructuring of options

fixes parsing error in usage of tail in electron/pkg (see #78)

Same as #80.
already merged.


Feature Request

Hey! Thanks for making such a great library. I use this for multiple projects. I just wanted to suggest a feature be added to Express.
Adding a capability for res.sendFile to take a Buffer instead of a file path would be very useful, as for my website I use image manipulation to generate images. This would be incredibly useful to me, and probably lots of other people.

Hi @FHGDev ! Can you ellaborate on what you would expect to happen if you gave a Buffer to res.sendFile and how that would be different than if you gave that same Buffer to the already-existing res.send?

Hi @FHGDev ! Can you ellaborate on what you would expect to happen if you gave a Buffer to res.sendFile and how that would be different than if you gave that same Buffer to the already-existing res.send?

For example, if you sent a Buffer with res.sendFile, you could specify what type of file the buffer data represents in options, and Express can make that sent as the Content-Type of the response. Like so:
app.get('/some_image', (req,res) => {
  // image generation code here...

  res.sendFile(generatedImageBuffer, { type: 'image/png' })
})```

This would help me personally. I send PNG files by writing the generated image to a file, then passing that file's path to `res.sendFile`. This would probably save people from writing a decent amount of code to send an image file to the client.

(Note I am an amateur at Express, so I probably don't know other ways to send image data...)

For example, if you sent a Buffer with res.sendFile, you could specify what type of file the buffer data represents in options, and Express can make that sent as the Content-Type of the response. Like so:
app.get('/some_image', (req,res) => {
  // image generation code here...

  res.sendFile(generatedImageBuffer, { type: 'image/png' })
})```

This would help me personally. I send PNG files by writing the generated image to a file, then passing that file's path to `res.sendFile`. This would probably save people from writing a decent amount of code to send an image file to the client.

(Note I am an amateur at Express, so I probably don't know other ways to send image data...)

Ah, I see. This is already possible with the current APIs: res.type('image/png').send(generatedImageBuffer). I hope that helps you!

Ah, I see. This is already possible with the current APIs: res.type('image/png').send(generatedImageBuffer). I hope that helps you!

Ah! Thanks for the advice.

Ah! Thanks for the advice.


How to configure sg_roles.yml in SG 2

Have any guide on configuring sg_roles.yml? There are 4 level for configuring the permssions for indices, who know what the 3nd level stand for?

sg_role_name:
indices:
'2nd level' :                       # indices name
'3nd level':                 # what does it mean?
- 4th level             # permissions

types

Thanks. I see.


HADOOP-13144. Enhancing IPC client throughput via multiple connections per user

Description of PR
Jira ID: HADOOP-13144
The generic IPC client (org.apache.hadoop.ipc.Client) utilizes a single connection thread for each ConnectionId. The ConnectionId is unique to the connection's remote address, ticket and protocol. Each ConnectionId is 1:1 mapped to a connection thread by the client via a map cache.
The result is to serialize all IPC read/write activity through a single thread for a each user/ticket + address. If a single user makes repeated calls (1k-100k/sec) to the same destination, the IPC client becomes a bottleneck.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 43s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
37m 27s

trunk passed

+1 :green_heart:
compile
23m  1s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
20m 37s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
1m 49s

trunk passed

+1 :green_heart:
mvnsite
2m 18s

trunk passed

+1 :green_heart:
javadoc
1m 44s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m 21s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m 12s

trunk passed

+1 :green_heart:
shadedclient
23m 34s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m  7s

the patch passed

+1 :green_heart:
compile
22m 15s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
22m 15s

the patch passed

+1 :green_heart:
compile
20m 35s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
20m 35s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m 45s

the patch passed

+1 :green_heart:
mvnsite
2m 10s

the patch passed

-1 :x:
javadoc
1m 40s
/results-javadoc-javadoc-hadoop-common-project_hadoop-common-jdkPrivateBuild-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>.txt
hadoop-common-project_hadoop-common-jdkPrivateBuild-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)

+1 :green_heart:
javadoc
1m 24s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m 13s

the patch passed

+1 :green_heart:
shadedclient
23m 23s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
18m 53s
/patch-unit-hadoop-common-project_hadoop-common.txt
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
1m 35s

The patch does not generate ASF License warnings.

215m 13s

Reason
Tests

Failed junit tests
hadoop.ipc.TestRPC

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4542

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 9a635dd60c75 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 0127b9dd819f13eef4ce27bda5b32a0a21647afc

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/1/testReport/

Max. process+thread count
1263 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 53s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
46m 32s

trunk passed

+1 :green_heart:
compile
29m 27s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
25m 46s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
1m 29s

trunk passed

+1 :green_heart:
mvnsite
2m 12s

trunk passed

+1 :green_heart:
javadoc
1m 39s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m  3s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m 11s

trunk passed

+1 :green_heart:
shadedclient
26m 24s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m  8s

the patch passed

+1 :green_heart:
compile
26m 28s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
26m 28s

the patch passed

+1 :green_heart:
compile
26m 31s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
26m 31s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m 28s

the patch passed

+1 :green_heart:
mvnsite
2m 24s

the patch passed

+1 :green_heart:
javadoc
1m 29s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m  3s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m 24s

the patch passed

+1 :green_heart:
shadedclient
27m 14s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
19m  5s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
1m 12s

The patch does not generate ASF License warnings.

250m 30s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4542

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux aed5fefce9ca 4.15.0-166-generic #174-Ubuntu SMP Wed Dec 8 19:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 9ccf1b3417bbf7169d46f1a0e8426ec0cfb9a3d0

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/2/testReport/

Max. process+thread count
1485 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Thanks @goiri for your review. I have updated this patch, please help me reivew it. Thanks
And @Hexiaoqiao @ayushtkn Can you help me to review this patch?

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 42s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
37m 44s

trunk passed

+1 :green_heart:
compile
23m  3s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
20m 36s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
1m 48s

trunk passed

+1 :green_heart:
mvnsite
2m 12s

trunk passed

+1 :green_heart:
javadoc
1m 50s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m 22s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m 14s

trunk passed

+1 :green_heart:
shadedclient
23m 47s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m  7s

the patch passed

+1 :green_heart:
compile
22m 16s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
22m 16s

the patch passed

+1 :green_heart:
compile
20m 35s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
20m 35s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m 42s

the patch passed

+1 :green_heart:
mvnsite
2m 10s

the patch passed

+1 :green_heart:
javadoc
1m 27s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m 21s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
3m  8s

the patch passed

+1 :green_heart:
shadedclient
23m 34s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
18m 45s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
1m 38s

The patch does not generate ASF License warnings.

215m 29s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4542

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux a3ed3d06b83f 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 13fd2adeb338be56004c56a9e23c9406c0abe053

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/3/testReport/

Max. process+thread count
2773 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4542/3/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@ZanderXu Thanks for pushing is forward. It makes sense.


Investigate the performance cost of using comparators on insertion

The purpose of this is to enable efficient range scanning for time series related data. There is a cost to change from lexicographical key sorting to a custom comparator. Document the cost of insertion and the performance gains from range scans.

This is no longer an issue. We've settled on prefixing keys with big endian numeric values. E.g. Global slot prefix index prefixes the key with the big endian bytes to maintain numeric ordering


Automatically discover destination chains for across-v2

Currently the config and discovery for across have hardcoded chain ids and that's how it knows about chain specific contracts.
The task is to configure the discovery for across-v2 in such a way that the output includes a list of supported chain ids. This can be achieved either by using existing handlers if it turns out that they are sufficient or by writing a special purpose handler that can read this information from on chain.

Ok, I've been playing around a little and wanted to share my progress and ask for advise.
The current config definiton is like:
"crossChainMainnet": {
          "type": "call",
          "method": "crossChainContracts",
          "args": [1]
},
"crossChainOptimism": {
          "type": "call",
          "method": "crossChainContracts",
          "args": [10]
}
...

That's fine and good, but if we want to have it dynamic it's hard when the chainname is part of the prop key.
I've looked into the across code and since the crossChainContracts are stored in a struct it is impossible to read the state for them. I saw however that when they update the struct, they trigger an event:
https://github.com/across-protocol/contracts-v2/blob/a231a21df4ee58378d3f0fc8148daf5bc4791e3c/contracts/HubPool.sol#LL342C14-L342C36
I played around and modified the ArrayFromOneEventHandler to support multiple keys for values.
Basically I have this definition:
  "overrides": {
    "HubPool": {
      "ignoreMethods": ["crossChainContracts", "getCurrentTime"],
      "fields": {
        "crossFields": {
          "type": "stateFromEvent",
          "event": "CrossChainContractsSet",
          "valueKeys": ["l2ChainId","adapter", "spokePool"],
        },
       }
}

whichj resulted in:
"crossFields": [
          {
            "l2ChainId": 1,
            "adapter": "0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
            "spokePool": "0x4D9079Bb4165aeb4084c526a32695dCfd2F77381"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
            "spokePool": "0xA44A832B994f796452e4FaF191a041F791AD8A0A"
          },
          {
            "l2ChainId": 288,
            "adapter": "0x33B0Ec794c15D6Cc705818E70d4CaCe7bCfB5Af3",
            "spokePool": "0xcA5BcA331b8137fD15c2fa6BA34655FA58de5a0B"
          },
          {
            "l2ChainId": 137,
            "adapter": "0x3E94e8d4316a1eBfb2245E45E6F0B8724094CE1A",
            "spokePool": "0x69B5c72837769eF1e7C164Abc6515DcFf217F920"
          },
          {
            "l2ChainId": 10,
            "adapter": "0x22eD83A9eE26236486F57cE8385A247E5bFB71fF",
            "spokePool": "0xa420b2d1c0841415A695b81E5B867BCD07Dff8C9"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 288,
            "adapter": "0x33B0Ec794c15D6Cc705818E70d4CaCe7bCfB5Af3",
            "spokePool": "0xBbc6009fEfFc27ce705322832Cb2068F8C1e0A58"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0xdE1224A552Bce117A93Ef1eb3395Dc6975D34EAd",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0xf5d49d9B6016a4106EBb46eEb88F5d2e6BEc92CC",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x9Fd5688b54A1A5ba7F9B18A258aa388CF7956992",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0xC6fA0a4EBd802c01157d6E7fB1bbd2ae196ae375",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0xC06A68DF12376271817FcEBfb45Be996B0e1593E",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 1,
            "adapter": "0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
            "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"
          },
          {
            "l2ChainId": 10,
            "adapter": "0x22eD83A9eE26236486F57cE8385A247E5bFB71fF",
            "spokePool": "0x6f26Bf09B1C792e3228e5467807a900A503c0281"
          },
          {
            "l2ChainId": 137,
            "adapter": "0x3E94e8d4316a1eBfb2245E45E6F0B8724094CE1A",
            "spokePool": "0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A"
          },
          {
            "l2ChainId": 1,
            "adapter": "0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
            "spokePool": "0x4D9079Bb4165aeb4084c526a32695dCfd2F77381"
          },
          {
            "l2ChainId": 10,
            "adapter": "0x22eD83A9eE26236486F57cE8385A247E5bFB71fF",
            "spokePool": "0xa420b2d1c0841415A695b81E5B867BCD07Dff8C9"
          },
          {
            "l2ChainId": 137,
            "adapter": "0x3E94e8d4316a1eBfb2245E45E6F0B8724094CE1A",
            "spokePool": "0x69B5c72837769eF1e7C164Abc6515DcFf217F920"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 1,
            "adapter": "0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
            "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"
          },
          {
            "l2ChainId": 10,
            "adapter": "0x22eD83A9eE26236486F57cE8385A247E5bFB71fF",
            "spokePool": "0x6f26Bf09B1C792e3228e5467807a900A503c0281"
          },
          {
            "l2ChainId": 137,
            "adapter": "0x3E94e8d4316a1eBfb2245E45E6F0B8724094CE1A",
            "spokePool": "0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0xC6fA0a4EBd802c01157d6E7fB1bbd2ae196ae375",
            "spokePool": "0xB88690461dDbaB6f04Dfad7df66B7725942FEb9C"
          },
          {
            "l2ChainId": 42161,
            "adapter": "0x29528780E29abb8Af95a5e5a125b94766987543F",
            "spokePool": "0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A"
          }
        ]

Obviously the config has been updated multiple times and that's why we end up with so many events. I guess that we could merge those events under the chainId key, this way we could have the latest state applied to the key?
@sz-piotr what do you think?
I'm also not sure how this information is now going to be used by the frontend?
packages/config/src/bridges/acrossV2.ts
{
        address: EthereumAddress('0x22eD83A9eE26236486F57cE8385A247E5bFB71fF'),
        name: 'Optimism_Adapter',
      },
      {
        address: EthereumAddress('0x33B0Ec794c15D6Cc705818E70d4CaCe7bCfB5Af3'),
        name: 'Boba_Adapter',
      },

Those values seems to be manually udpated in the file and not auto-magically read from the discovered config?

Yeah, the frontend is another beast, we're working on making this more dynamic. I think you're on the right track here.
One thing I'd look into is whether the later events override past ones. In your list the two last events are both for chain id 42161. If they do I'd suggest is for the output to be a Record<ChainId, { adapter: Address, spokePool: Address }>, so we'd see the following in discovery:
"crossFields": {
    "1": {
      "adapter": "0x527E872a5c3f0C7c24Fe33F2593cFB890a285084",
      "spokePool": "0x4D9079Bb4165aeb4084c526a32695dCfd2F77381"
    },
    "42161": {
      "adapter": "0x937958992799bF4A9a656E6596FD10d7Da5c2216",
      "spokePool": "0xA44A832B994f796452e4FaF191a041F791AD8A0A"
    }
}

If they don't then your output is what we want and I think we can see a PR :)


Client unable to select from function when compression is enabled.

Adding the following test to client/client_test.go results in an error. Selecting any computed function fails.
func (s *clientTestSuite) TestConn_Compress() {
	addr := fmt.Sprintf("%s:%s", *test_util.MysqlHost, s.port)
	conn, err := Connect(addr, *testUser, *testPassword, "", func(conn *Conn) {
		conn.SetCapability(mysql.CLIENT_COMPRESS)
	})
	require.NoError(s.T(), err)

	_, err = conn.Execute("SELECT VERSION()")
	require.NoError(s.T(), err)
}

$ go test -v ./client --user root --pass <redacted> --run TestClientSuite/TestConn_Compress
=== RUN   TestClientSuite
=== RUN   TestClientSuite/TestConn_Compress
    client_test.go:260:
                Error Trace:    /Users/jason/go/src/github.com/jnewmano/go-mysql/client/client_test.go:260
                Error:          Received unexpected error:
                                invalid compressed sequence 2 != 1
                                github.com/go-mysql-org/go-mysql/packet.(*Conn).newCompressedPacketReader
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/packet/conn.go:152
                                github.com/go-mysql-org/go-mysql/packet.(*Conn).ReadPacketReuseMem
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/packet/conn.go:111
                                github.com/go-mysql-org/go-mysql/client.(*Conn).readResultColumns
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/resp.go:345
                                github.com/go-mysql-org/go-mysql/client.(*Conn).readResultset
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/resp.go:291
                                github.com/go-mysql-org/go-mysql/client.(*Conn).readResult
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/resp.go:236
                                github.com/go-mysql-org/go-mysql/client.(*Conn).exec
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/conn.go:468
                                github.com/go-mysql-org/go-mysql/client.(*Conn).Execute
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/conn.go:252
                                github.com/go-mysql-org/go-mysql/client.(*clientTestSuite).TestConn_Compress
                                        /Users/jason/go/src/github.com/jnewmano/go-mysql/client/client_test.go:259
                                reflect.Value.call
                                        /opt/homebrew/Cellar/go/1.22.1/libexec/src/reflect/value.go:596
                                reflect.Value.Call
                                        /opt/homebrew/Cellar/go/1.22.1/libexec/src/reflect/value.go:380
                                github.com/stretchr/testify/suite.Run.func1
                                        /Users/jason/go/pkg/mod/github.com/stretchr/testify@v1.8.4/suite/suite.go:197
                                testing.tRunner
                                        /opt/homebrew/Cellar/go/1.22.1/libexec/src/testing/testing.go:1689
                                runtime.goexit
                                        /opt/homebrew/Cellar/go/1.22.1/libexec/src/runtime/asm_arm64.s:1222
                Test:           TestClientSuite/TestConn_Compress
--- FAIL: TestClientSuite (0.04s)
    --- FAIL: TestClientSuite/TestConn_Compress (0.01s)
FAIL
FAIL    github.com/go-mysql-org/go-mysql/client 0.176s
FAIL

Client compression with computed function select worked in PR #862 at commit 22dbb42, something in a later commit resulted in an error in these types of queries.

Thanks @jnewmano will take a look.

@jnewmano I've created a PR to fix this issue, https://github.com/go-mysql-org/go-mysql/pull/872.
I've also added your test case as well.

Sorry for my code suggestion in the previous PR

Sorry for my code suggestion in the previous PR

It's quite alright it happens. I didn't realize that boolean had such an important role until this issue was reported.  I added a comment thought to make it clear for the next person.

Please close this issue, this issue has been fixed. Thanks!


Javadocs link was 404 on dev.alfresco.com

Hi,
just a quick fix for the Javadocs URL, it was 404.
Cheers,
Tamas

Thanks for the pull request!


Move css-tag.js from @lit/reactive-element to lit-html (or @lit/css)

Should this be an RFC?

[X] This is not a substantial change

Which package is this a feature request for?
Lit Core (lit / lit-html / lit-element / reactive-element)
Description
It would be nice to be able to import { adoptStyles, css } from lit-html instead of @lit/reactive-element for projects that use standalone lit-html. This way elements that only want to import lit-html can avoid having to include @lit/reactive-element in their dependencies when all that's wanted is the css helpers.
Current:
import { html } from 'lit-html';
import { adoptStyles, css } from '@lit/reactive-element';

Proposed
Option 1:
import { adoptStyles, css, html } from 'lit-html';

Option 2:
import { html } from 'lit-html';
import { adoptStyles, css } from 'lit-html/css-tag.js';

I personally prefer option 1, but I understand the reasoning behind preferring option 2, similar to how directives are optionally imported.
Alternatives and Workarounds
Alternative
It might even be a good idea to create @lit/html and @lit/css packages, but that might be RFC territory:
import { html } from '@lit/html';
import { adoptStyles, css } from '@lit/css';

Workaround
It's currently possible to use the css helpers by importing them from @lit/reactive-element, but it kinda breaks the mental model of standalone use of lit-html.

The CSS tag utilities have no overlap with lit-html's responsibilities though. lit-html doesn't do anything with either CSS or shadow roots.

@justinfagnani That makes sense. Perhaps the alternative I recommended of a new @lit/css package then?

I guess my issue is philosophical. One of my main goals of funlit is to not need lit-element or reactive-element at all. Asking users to install it to get access to a utility that has nothing to do with lit-element nor reactive-element in the same way it has nothing to do with lit-html is confusing for my target audience.

Do they have to know? Can you just re-export the css tag from your library?

They need to know, yes, because I'm declaring lit-html be a peerDependency to allow users to use whatever version works best for their project (currently works with lit-html v2 and v3 and can even be an alias for hyperHTML) and to support bundlers via npm and browsers via importmap.
I could just copy css-tag.js into the project, but that feels far worse for users.


[MNT] Bumping scipy version from <1.13.0,>=1.2.0 to >=1.2.0,<1.14.0

Fixes: #1388, also see: #1382

needs full pytest actions tag

Superseded by #2079


Fix/styles in vue sfc not injected to shadow dom

Details
This PR ...
Code of Conduct

[ ] I agree to follow this project's Code of Conduct
[ ] I agree to license this contribution under the MIT LICENSE
[ ] I checked the current PR for duplication.

Contacts

(OPTIONAL) Discord ID:

If your PR is accepted, we will award you with the Contributor role on Discord server.
To join the server, visit: https://www.plasmo.com/s/d

Sorry, I've clicked a wrong button.

@gogoend no worries, re-openning

@gogoend no worries, re-openning

emmmm, in fact, I'm trying to do some explorations, and want to view the diff online, but choose the wrong repo, and open this PR by accident. Maybe I should view the diff in my forked repo .

@gogoend no worries, re-openning

emmmm, in fact, I'm trying to do some explorations, and want to view the diff online, but choose the wrong repo, and open this PR by accident. Maybe I should view the diff in my forked repo .

oh lol - feel free to do it however you like, not a bad PR at all. It helps with visibility too


[Build] Local dev server is losing the manifest after changes

After making changes while running the local dev server the manifest files are lost from the dist/ folders.
This means the extension cannot be reloaded and you have to a) restart the whole dev server, b) enable all integrations you're working on again.
Probably introduced with #1433.

tagging as high because i was told "work/maintenance on toggl button is severely hindered by this build problem"

To anyone who reads (probably me after the conference)
bisecting with a script that touches any of the files would probably help narrow the problem down
I am certain it is related to some upgrade/change in the webpack config

Seems to work fine for me. I added some changes to the manifest to make sure they're added :thinking:.
Did notice package-lock.json changing after running npm install, though.

Yeah I think you need to change the content scripts, but randomly after emiting the new content scripts the manifest is deleted.

It also cleans all image assets 🤷♂


Fixed About page

Changes

make about page responsive
fixed navbar and footer

@SauravMukherjee44 Check out the changes https://drish-xd.is-a.dev/Aec-Library-Website/about.html


add istioctl experimental auth for checking TLS/JWT/RBAC setting on a pod.

This is still experimental and under active undevelopment, not ready for production use.
For https://github.com/istio/istio/issues/11091
$ istioctl experimental auth check httpbin-54f5bb4957-s9r7c.foo
Checked 2/35 listeners with node IP <IP_ADDRESS>.
LISTENER              CERTIFICATE                   mTLS(MODE)      JWT(ISSUERS)                                                RBAC(RULES)
<IP_ADDRESS>_80        /etc/certs/cert-chain.pem     yes(STRICT<EMAIL_ADDRESS>    yes(httpbin)
<IP_ADDRESS>_15020     none                          no(none)        no                                                          no

Checked 41/45 outbound clusters.
HOST:PORT                                   CERTIFICATE                   VALIDATE PEER CERTIFICATE
kubernetes.default:443                      none                          none
httpbin.foo:8000                            /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/foo/sa/default
sleep.foo:80                                /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/foo/sa/sleep
grafana.istio-system:3000                   /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
istio-citadel.istio-system:8060             /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-citadel-service-account
istio-citadel.istio-system:15014            /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-citadel-service-account
istio-egressgateway.istio-system:80         /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-egressgateway.istio-system:443        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-egressgateway.istio-system:15443      /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-galley.istio-system:443               /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-galley.istio-system:9901              /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-galley.istio-system:15014             /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-ingressgateway.istio-system:80        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:443       /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15020     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15029     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15030     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15031     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15032     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15443     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:31400     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-pilot.istio-system:8080               /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15010              /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15011              /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15014              /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-policy.istio-system:9091              none                          none
istio-policy.istio-system:15004             /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-mixer-service-account
istio-policy.istio-system:15014             none                          none
istio-sidecar-injector.istio-system:443     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-sidecar-injector-service-account
istio-telemetry.istio-system:9091           none                          none
istio-telemetry.istio-system:15004          /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-mixer-service-account
istio-telemetry.istio-system:15014          none                          none
istio-telemetry.istio-system:42422          none                          none
jaeger-collector.istio-system:14267         /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
jaeger-collector.istio-system:14268         /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
jaeger-query.istio-system:16686             /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
kiali.istio-system:20001                    /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/kiali-service-account
prometheus.istio-system:9090                /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/prometheus
tracing.istio-system:80                     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
zipkin.istio-system:9411                    /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
kube-dns.kube-system:53                     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/kube-system/sa/coredns

$ istioctl experimental auth check httpbin-54f5bb4957-s9r7c.foo  -a
Checked 2/35 listeners with node IP <IP_ADDRESS>.
LISTENER              HTTP ROUTE                                          SNI     ALPN     CERTIFICATE                   mTLS(MODE)      JWT(ISSUERS)                                                RBAC(RULES)
<IP_ADDRESS>_80        inbound|8000|http|httpbin.foo.svc.cluster.local                      /etc/certs/cert-chain.pem     yes(STRICT<EMAIL_ADDRESS>    yes(httpbin)
<IP_ADDRESS>_15020                                                                          none                          no(none)        no                                                          no

Checked 41/45 outbound clusters.
HOST:PORT                                   SNI                                                                        ALPN         CERTIFICATE                   VALIDATE PEER CERTIFICATE
kubernetes.default:443                                                                                none                          none
httpbin.foo:8000                            outbound_.8000_._.httpbin.foo.svc.cluster.local                            istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/foo/sa/default
sleep.foo:80                                outbound_.80_._.sleep.foo.svc.cluster.local                                istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/foo/sa/sleep
grafana.istio-system:3000                   outbound_.3000_._.grafana.istio-system.svc.cluster.local                   istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
istio-citadel.istio-system:8060             outbound_.8060_._.istio-citadel.istio-system.svc.cluster.local             istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-citadel-service-account
istio-citadel.istio-system:15014            outbound_.15014_._.istio-citadel.istio-system.svc.cluster.local            istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-citadel-service-account
istio-egressgateway.istio-system:80         outbound_.80_._.istio-egressgateway.istio-system.svc.cluster.local         istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-egressgateway.istio-system:443        outbound_.443_._.istio-egressgateway.istio-system.svc.cluster.local        istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-egressgateway.istio-system:15443      outbound_.15443_._.istio-egressgateway.istio-system.svc.cluster.local      istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-egressgateway-service-account
istio-galley.istio-system:443               outbound_.443_._.istio-galley.istio-system.svc.cluster.local               istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-galley.istio-system:9901              outbound_.9901_._.istio-galley.istio-system.svc.cluster.local              istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-galley.istio-system:15014             outbound_.15014_._.istio-galley.istio-system.svc.cluster.local             istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-galley-service-account
istio-ingressgateway.istio-system:80        outbound_.80_._.istio-ingressgateway.istio-system.svc.cluster.local        istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:443       outbound_.443_._.istio-ingressgateway.istio-system.svc.cluster.local       istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15020     outbound_.15020_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15029     outbound_.15029_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15030     outbound_.15030_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15031     outbound_.15031_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15032     outbound_.15032_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:15443     outbound_.15443_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-ingressgateway.istio-system:31400     outbound_.31400_._.istio-ingressgateway.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account
istio-pilot.istio-system:8080               outbound_.8080_._.istio-pilot.istio-system.svc.cluster.local               istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15010              outbound_.15010_._.istio-pilot.istio-system.svc.cluster.local              istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15011              outbound_.15011_._.istio-pilot.istio-system.svc.cluster.local              istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-pilot.istio-system:15014              outbound_.15014_._.istio-pilot.istio-system.svc.cluster.local              istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-pilot-service-account
istio-policy.istio-system:9091                                                                                none                          none
istio-policy.istio-system:15004             outbound_.15004_._.istio-policy.istio-system.svc.cluster.local             istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-mixer-service-account
istio-policy.istio-system:15014                                                                                none                          none
istio-sidecar-injector.istio-system:443     outbound_.443_._.istio-sidecar-injector.istio-system.svc.cluster.local     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-sidecar-injector-service-account
istio-telemetry.istio-system:9091                                                                                none                          none
istio-telemetry.istio-system:15004          outbound_.15004_._.istio-telemetry.istio-system.svc.cluster.local          istio,h2     /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/istio-mixer-service-account
istio-telemetry.istio-system:15014                                                                                none                          none
istio-telemetry.istio-system:42422                                                                                none                          none
jaeger-collector.istio-system:14267         outbound_.14267_._.jaeger-collector.istio-system.svc.cluster.local         istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
jaeger-collector.istio-system:14268         outbound_.14268_._.jaeger-collector.istio-system.svc.cluster.local         istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
jaeger-query.istio-system:16686             outbound_.16686_._.jaeger-query.istio-system.svc.cluster.local             istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
kiali.istio-system:20001                    outbound_.20001_._.kiali.istio-system.svc.cluster.local                    istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/kiali-service-account
prometheus.istio-system:9090                outbound_.9090_._.prometheus.istio-system.svc.cluster.local                istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/prometheus
tracing.istio-system:80                     outbound_.80_._.tracing.istio-system.svc.cluster.local                     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
zipkin.istio-system:9411                    outbound_.9411_._.zipkin.istio-system.svc.cluster.local                    istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/istio-system/sa/default
kube-dns.kube-system:53                     outbound_.53_._.kube-dns.kube-system.svc.cluster.local                     istio        /etc/certs/cert-chain.pem     spiffe://cluster.local/ns/kube-system/sa/coredns

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: liamawhite
If they are not already assigned, you can assign the PR to them by writing /assign @liamawhite in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
ccafb664051d2dbafa02e61cce064951e7f6a0a9
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
9bac799b596eab8285d28246519b71183e23c3b4
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
9bac799b596eab8285d28246519b71183e23c3b4
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
9bac799b596eab8285d28246519b71183e23c3b4
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu I would like this command to support an optional -f <config-dump.json> flag.  If the flag is provided the tool would read the config_dump from a file rather than a pod.  This would make it easier for us to test the command.  It would also allow us to capture a dump and test offline.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: esnible
If they are not already assigned, you can assign the PR to them by writing /assign @esnible in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@esnible Added -f for reading from a config dump file.
@diemtvu Yes, we'll need some small changes in Pilot to pass this information through envoy config.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
9bac799b596eab8285d28246519b71183e23c3b4
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
ea1293d8a411a247a156414b6c101c9e42d9de54
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
ea1293d8a411a247a156414b6c101c9e42d9de54
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
ea1293d8a411a247a156414b6c101c9e42d9de54
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Something is making the message info	Channelz: socket options are not supported on non-linux os and appengine. appear when I run this on OSX.
Perhaps remove that message following the approach of https://github.com/istio/istio/pull/11327

Is there an RBAC .yaml example I can try, maybe for bookinfo, to see the output of this subcommand in the best way?
It might be good to add --listener and --outbound flags so that the output only includes one table.  (For example, for scraping the output).
For Listener, if there is no certificate the table says none but if the cluster has no certificate the field is blank.
For my test data it said "Checked 2/28 listeners" and "Checked 40/44 outbound cluster".  I am sure there is a good reason for not checking all of them but users will wonder why.  Can we rephrase?
For my test data one of my listeners has RBAC(RULES) value yes(none).  Not sure what that means?  Users are doing this to understand why they are getting more or less security than expected.

Is there an RBAC .yaml example I can try, maybe for bookinfo, to see the output of this subcommand in the best way?

You can get the sample policies from https://istio.io/docs/tasks/security/authz-http/

It might be good to add --listener and --outbound flags so that the output only includes one table. (For example, for scraping the output).

I will add this in following PR.

For Listener, if there is no certificate the table says none but if the cluster has no certificate the field is blank.

Updated to also how none for clusters.

For my test data it said "Checked 2/28 listeners" and "Checked 40/44 outbound cluster". I am sure there is a good reason for not checking all of them but users will wonder why. Can we rephrase?

I added explanation to the help page, you can find it with -h flag.

For my test data one of my listeners has RBAC(RULES) value yes(none). Not sure what that means? Users are doing this to understand why they are getting more or less security than expected.

It means you enabled RBAC but didn't specify any rules for it. (This generally means all requests will be rejected)

Something is making the message info	Channelz: socket options are not supported on non-linux os and appengine. appear when I run this on OSX.
Perhaps remove that message following the approach of #11327

Is that caused in this PR, I think I didn't introduce any new dependencies in my code.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
ea1293d8a411a247a156414b6c101c9e42d9de54
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Is that caused in this PR, I think I didn't introduce any new dependencies in my code.

It is not your fault, but you introduced a dependency on "github.com/envoyproxy/go-control-plane/envoy/admin/v2alpha".  Server-side Istio had that dependency before, but istioctl didn't.
The problem is that google.golang.org/grpc/internal/channelz logs a message if it is run anywhere but Linux.  This log message disrupts istioctl kube-inject and there is no way to suppress it if channelz dependencies exist.
Here's the dependency graph as generated by github.com/KyleBanks/depth:
├ istio.io/istio/vendor/github.com/envoyproxy/go-control-plane/envoy/admin/v2alpha
  ├ istio.io/istio/vendor/github.com/envoyproxy/go-control-plane/envoy/api/v2
    ├ istio.io/istio/vendor/github.com/envoyproxy/go-control-plane/envoy/api/v2/auth
      ├ istio.io/istio/vendor/google.golang.org/grpc
        ├ istio.io/istio/vendor/google.golang.org/grpc/internal/channelz

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: rshriram
If they are not already assigned, you can assign the PR to them by writing /assign @rshriram in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-integ-k8s-tests

prow/istio-integ-local-tests.sh
64829ce39e0bc8aa6a007af5664694aa683574f0
link
/test istio-integ-local-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible
I updated the google.golang.org/grpc package as the logging is removed in the newer version. PTAL, thank you.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
3139ae46eca3be693baffe8b682252530a7e6ec8
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
b6eebe5f3b40fe0af95b4ce020f408a92a74a714
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@costinm @rshriram Could you approve for the vendor update of google.golang.org/grpc? (from v1.15.0 to v1.16.0), thank you!

I verified there is no extra logging under OSX with the new version of GRPC.
It might be good to add --listener and --outbound flags or sub-commands so that the output can be restricted to just inbound or just outbound.  Probably the user is troubleshooting either calls being rejected on inbound or calls being rejected outbound and doesn't want to always see both settings.
The certificate output is the name of the file, /etc/certs/cert-chain.pem.  Two things.  First, I have heard with the new Secret Discovery these secrets won't be on the file system.  Have you tested in SDS configuration?  Second, when I have been debugging TLS want I wanted was the serial and days_until_expiration from :15000/certs rather than the filename.  How hard would it be to have those fields instead of the name?
I was not able to get output from RBAC or JWT columns.  Are there any files in the samples directory I could apply to bookinfo to see how these columns look when populated with data?
Nit: There should probably be a space before the ( in mTLS(MODE), JWT(ISSUERS), and RBAC(RULES).
In the VALIDATE PEER CERTIFICATE column I saw none if there was no certificate.  If there was a certificate it was either blank or spiffe://cluster.local/ns/<ns>/sa/<sa>.  What does it mean when it is blank?  It seemed to be blank for some local cluster services and for multicluster things.
Is VALIDATE PEER CERTIFICATE the correct name for the column?  According to https://istio.io/help/ops/security/keys-and-certs/ the SPIFFE name is X509v3 Subject Alternative Name.  Should we call the column SUBJECT ALT NAME?
I requested @elevran as reviewer because he has the best understanding of the correct vocabulary for security under Istio.

To test I applied this Policy:
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  name: productpage-mtls-with-jwt
spec:
  targets:
  - name: productpage
    ports:
    - number: 9080
  peers:
  - mtls:
  origins:
  - jwt:
      issuer: "https://securetoken.google.com"
      audiences:
      - "productpage"
      jwksUri: "https://www.googleapis.com/oauth2/v1/certs"
      jwt_headers:
      - "x-goog-iap-jwt-assertion"
      trigger_rules:
      - excluded_paths:
        - exact: /health_check
  # - jwt:
  #    issuer: https://example.com
  principalBinding: USE_ORIGIN

The listener output was
LISTENER                 CERTIFICATE                   mTLS(MODE)      JWT(ISSUERS)                            RBAC(RULES)
<IP_ADDRESS>_9080      /etc/certs/cert-chain.pem     yes(STRICT)     yes(https://securetoken.google.com)     no
<IP_ADDRESS>_15020     none                          no(none)        no                                      no

Perhaps there should be a space between yes and (https://securetoken.google.com).
I then uncommented the second JWT.  The output was sometimes the same as before, sometimes no.  This is not a bug on your CLI, but related to https://github.com/istio/istio/issues/12992 and shows the value of your CLI.

I verified there is no extra logging under OSX with the new version of GRPC.
It might be good to add --listener and --outbound flags or sub-commands so that the output can be restricted to just inbound or just outbound. Probably the user is troubleshooting either calls being rejected on inbound or calls being rejected outbound and doesn't want to always see both settings.

I can add the --listener/--outbound or any other sub-commands in follow-up PR, and I will create a design doc for a better discussion and wider review. For now, can we keep this small as a PoC which is under experimental and not intended for real use?

The certificate output is the name of the file, /etc/certs/cert-chain.pem. Two things. First, I have heard with the new Secret Discovery these secrets won't be on the file system. Have you tested in SDS configuration? Second, when I have been debugging TLS want I wanted was the serial and days_until_expiration from :15000/certs rather than the filename. How hard would it be to have those fields instead of the name?

In SDS case, it prints the sds config name, no cert path available in this case. It's not hard to support days_until_expiration for static certs, but for SDS we need some change in Envoy to improve its :15000/certs output (I filed https://github.com/envoyproxy/envoy/issues/6315 and probably will work on it)

I was not able to get output from RBAC or JWT columns. Are there any files in the samples directory I could apply to bookinfo to see how these columns look when populated with data?
Nit: There should probably be a space before the ( in mTLS(MODE), JWT(ISSUERS), and RBAC(RULES).

done.

In the VALIDATE PEER CERTIFICATE column I saw none if there was no certificate. If there was a certificate it was either blank or spiffe://cluster.local/ns/<ns>/sa/<sa>. What does it mean when it is blank? It seemed to be blank for some local cluster services and for multicluster things.

When it is none, it means Envoy does't validate the peer's certificate (https://www.envoyproxy.io/docs/envoy/v1.9.0/api-v2/api/v2/auth/cert.proto#auth-certificatevalidationcontext). I updated to make it always output none in this case.

Is VALIDATE PEER CERTIFICATE the correct name for the column? According to https://istio.io/help/ops/security/keys-and-certs/ the SPIFFE name is X509v3 Subject Alternative Name. Should we call the column SUBJECT ALT NAME?

I borrowed the Envoy term in this case and simply put the SAN into it. There are more contents available in this column (SAN is one of the most important), can we discuss the detail output in the design doc? (coming soon)

I requested @elevran as reviewer because he has the best understanding of the correct vocabulary for security under Istio.

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
cf497b0eb0c5658f72943d3699ed615ac3bf864b
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu We need at least an auth_test.go for this.  I recommend a unit test that runs the test against a file and verifies the output that can be run without a cluster, and an e2e test that applies JWT and/or RBAC and verifies the output of the CLI.

@esnible Sure, I will add unit test using config dump as input, similar to the test for proxy-config and other commands. But I don't think e2e testing using real cluster worth the complexity for istioctl command. (We don't have e2e tests for other istioctl commands)

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
5067e55fed532abb0a164e1b07d2d7591acde229
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yangminzhu: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
5067e55fed532abb0a164e1b07d2d7591acde229
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
5067e55fed532abb0a164e1b07d2d7591acde229
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

I have created https://github.com/istio/istio/pull/13118 which introduces some go tests that use the CLI command.  We will need to coordinate because the tests will fail if both PRs are merged unchanged.

@yangminzhu Not passing circleci: lint.

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-local-tests.sh
6cd7b82a51d34a10683a453e3c79a45c8c412c6c
link
/test istio-integ-local-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-integ-local-tests

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
6cd7b82a51d34a10683a453e3c79a45c8c412c6c
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible @diemtvu All required tests passed, PTAL, thank you.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: diemtvu, yangminzhu
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: rshriram
If they are not already assigned, you can assign the PR to them by writing /assign @rshriram in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

The istioctl changes look good.  To avoid the info	Channelz: socket options are not supported on non-linux os and appengine. warning you have upgraded the version of google.golang.org/grpc from 1.13 to 1.16.  That was the right thing to do -- without it, kube-inject wouldn't work on OSX, but it means I can't approve it.  We now need to get top-level approval because of the vendor change.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: costinm, diemtvu, yangminzhu
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [costinm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@yangminzhu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
6cd7b82a51d34a10683a453e3c79a45c8c412c6c
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Intial Update

Purpose

...

Does this introduce a breaking change?

[ ] Yes
[ ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

This looks to be an accidental PR with company-specific changes, so I'll close it.


Tried to run this, got error

Ryans-MacBook-Pro:blue-app-ssh-agent ryan$ python getPublicKey.py
Traceback (most recent call last):
  File "getPublicKey.py", line 20, in <module>
    from ledgerblue.comm import getDongle
ImportError: No module named ledgerblue.comm
Ryans-MacBook-Pro:blue-app-ssh-agent ryan$

Did you install the other module (pip install ledgerblue) before ?

Did you install the other module (pip install ledgerblue) before ?

When trying to install this, I get this error in Ubuntu 16.04 64bits:
(snip)
Building wheels for collected packages: ledgerblue, hidapi, pycrypto, future, ecpy, olefile
  Running setup.py bdist_wheel for ledgerblue ... done
  Stored in directory: /home/andres/.cache/pip/wheels/8a/21/41/f4ecf6b8dfbee0620582d3f5698bcdf4f05b24defc364091d4
  Running setup.py bdist_wheel for hidapi ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1bHpSF/hidapi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpCutWx9pip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_ext
  cythoning hid.pyx to hid.c
  building 'hid' extension
  creating build
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/hidapi
  creating build/temp.linux-x86_64-2.7/hidapi/libusb
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python2.7 -c hid.c -o build/temp.linux-x86_64-2.7/hid.o
  hid.c: In function ‘__pyx_pf_3hid_6device_open’:
  hid.c:1633:45: warning: passing argument 1 of ‘PyUnicodeUCS4_AsWideChar’ from incompatible pointer type [-Wincompatible-pointer-types]
         __pyx_v_result = PyUnicode_AsWideChar(__pyx_v_serial_number, __pyx_v_cserial_number, __pyx_v_serial_len);
                                               ^
  In file included from /usr/include/python2.7/Python.h:85:0,
                   from hid.c:4:
  /usr/include/python2.7/unicodeobject.h:246:31: note: expected ‘PyUnicodeObject * {aka struct <anonymous> *}’ but argument is of type ‘PyObject * {aka struct _object *}’
   # define PyUnicode_AsWideChar PyUnicodeUCS4_AsWideChar
                                 ^
  /usr/include/python2.7/unicodeobject.h:591:24: note: in expansion of macro ‘PyUnicode_AsWideChar’
   PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
                          ^
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python2.7 -c hidapi/libusb/hid.c -o build/temp.linux-x86_64-2.7/hidapi/libusb/hid.o
  hidapi/libusb/hid.c:47:20: fatal error: libusb.h: No such file or directory
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for hidapi
  Running setup.py clean for hidapi
  Running setup.py bdist_wheel for pycrypto ... done
  Stored in directory: /home/andres/.cache/pip/wheels/80/1f/94/f76e9746864f198eb0e304aeec319159fa41b082f61281ffce
  Running setup.py bdist_wheel for future ... done
  Stored in directory: /home/andres/.cache/pip/wheels/c2/50/7c/0d83b4baac4f63ff7a765bd16390d2ab43c93587fac9d6017a
  Running setup.py bdist_wheel for ecpy ... done
  Stored in directory: /home/andres/.cache/pip/wheels/72/ba/cc/1a0b3a02e596452c2df1ef529264dfee1a7ad1dc5d59ab6182
  Running setup.py bdist_wheel for olefile ... done
  Stored in directory: /home/andres/.cache/pip/wheels/20/58/49/cc7bd00345397059149a10b0259ef38b867935ea2ecff99a9b
Successfully built ledgerblue pycrypto future ecpy olefile
Failed to build hidapi
Installing collected packages: appdirs, pyparsing, six, packaging, setuptools, hidapi, protobuf, pycrypto, future, ecpy, olefile, pillow, ledgerblue
  Running setup.py install for hidapi ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1bHpSF/hidapi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-4w02aq-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    running install
    running build
    running build_ext
    skipping 'hid.c' Cython extension (up-to-date)
    building 'hid' extension
    creating build
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/hidapi
    creating build/temp.linux-x86_64-2.7/hidapi/libusb
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python2.7 -c hid.c -o build/temp.linux-x86_64-2.7/hid.o
    hid.c: In function ‘__pyx_pf_3hid_6device_open’:
    hid.c:1633:45: warning: passing argument 1 of ‘PyUnicodeUCS4_AsWideChar’ from incompatible pointer type [-Wincompatible-pointer-types]
           __pyx_v_result = PyUnicode_AsWideChar(__pyx_v_serial_number, __pyx_v_cserial_number, __pyx_v_serial_len);
                                                 ^
    In file included from /usr/include/python2.7/Python.h:85:0,
                     from hid.c:4:
    /usr/include/python2.7/unicodeobject.h:246:31: note: expected ‘PyUnicodeObject * {aka struct <anonymous> *}’ but argument is of type ‘PyObject * {aka struct _object *}’
     # define PyUnicode_AsWideChar PyUnicodeUCS4_AsWideChar
                                   ^
    /usr/include/python2.7/unicodeobject.h:591:24: note: in expansion of macro ‘PyUnicode_AsWideChar’
     PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
                            ^
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihidapi/hidapi -I/usr/include/libusb-1.0 -I/usr/include/python2.7 -c hidapi/libusb/hid.c -o build/temp.linux-x86_64-2.7/hidapi/libusb/hid.o
    hidapi/libusb/hid.c:47:20: fatal error: libusb.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1bHpSF/hidapi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-4w02aq-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-1bHpSF/hidapi/
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

(And FYI the above was fixed by doing sudo apt install libudev-dev libusb-1.0-0-dev in Ubuntu 16.04.)

I can confirm that @knocte suggestion to install libudev-dev libusb-1.0-0-devi really suggest adding this to the general documentation for Nano setup

It worked for me at Ubuntu 17.04

Can confirm that installing the missing libusb-1.0-0-dev worked for me on a live-boot Ubuntu 18.04
Thx! 👍


Is there any reason not to cache the reader in wkt.loads?

Currently loads computes a reader every time:
https://github.com/Toblerity/Shapely/blob/9a761739aea19823fcead4391ef043edafa74db6/shapely/wkt.py#L22
Computing a reader once and then just calling the read method is about 14% faster by my measurement parsing a simple polygon: 'POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))'.

I probably thought about this too, but you may want to wait for shapely-2.0 when this will be changed entirely:
https://github.com/Toblerity/Shapely/blob/2c701950eb25744b12f251df92afd53115b2e42c/shapely/wkt.py#L24

OK.


bug: Can't run example

Describe the bug
I try to run the very first example from getting started but I got an error
To Reproduce

Clone project
Run ledger server: go run main.go server start
Create an example file:echo "
send [USD/2 599] (
  source = @world
  destination = @payments:001
)

send [USD/2 599] (
  source = @payments:001
  destination = @rides:0234
)

send [USD/2 599] (
  source = @rides:0234
  destination = {
    85/100 to @drivers:042
    15/100 to @platform:fees
  }
)
" > example.num

Submit the first transaction: go run main.go exec quickstart example.num

Expected behavior
Transaction was exchanged
Logs
Got error:
ERRO[0032] statement: INSERT INTO log(type, date, data, hash) SELECT v.type, v.timestamp, v.data, '' FROM ( SELECT id as ord, 'NEW_TRANSACTION' as type, timestamp, '{"txid": ' || id || ', "postings": ' || postings || ', "metadata": {}, "timestamp": "' || timestamp || '", "reference": "' || CASE WHEN reference IS NOT NULL THEN reference ELSE '' END || '"}' as data FROM transactions UNION ALL SELECT<PHONE_NUMBER>0 + meta_id as ord, 'SET_METADATA' as type, timestamp, '{"targetType": "' || UPPER(meta_target_type) || '", "targetId": ' || CASE WHEN meta_target_type = 'transaction' THEN meta_target_id ELSE ('"' || meta_target_id || '"') END || ', "metadata": {"' || meta_key || '": ' || CASE WHEN json_valid(meta_value) THEN meta_value ELSE '"' || meta_value || '"' END || '}}' as data FROM metadata ) v ORDER BY v.timestamp ASC, v.ord ASC;: failed to run statement 7: no such function: json_valid [UNKNOWN]
INFO[0032] Request                                       ip=<IP_ADDRESS> latency=14.504834ms method=POST path=/quickstart/script status=503 user_agent=Go-http-client/1.1
ERRO[0032] initializing ledger store: statement: INSERT INTO log(type, date, data, hash) SELECT v.type, v.timestamp, v.data, '' FROM ( SELECT id as ord, 'NEW_TRANSACTION' as type, timestamp, '{"txid": ' || id || ', "postings": ' || postings || ', "metadata": {}, "timestamp": "' || timestamp || '", "reference": "' || CASE WHEN reference IS NOT NULL THEN reference ELSE '' END || '"}' as data FROM transactions UNION ALL SELECT<PHONE_NUMBER>0 + meta_id as ord, 'SET_METADATA' as type, timestamp, '{"targetType": "' || UPPER(meta_target_type) || '", "targetId": ' || CASE WHEN meta_target_type = 'transaction' THEN meta_target_id ELSE ('"' || meta_target_id || '"') END || ', "metadata": {"' || meta_key || '": ' || CASE WHEN json_valid(meta_value) THEN meta_value ELSE '"' || meta_value || '"' END || '}}' as data FROM metadata ) v ORDER BY v.timestamp ASC, v.ord ASC;: failed to run statement 7: no such function: json_valid [UNKNOWN] [UNKNOWN]

Environment (please complete the following information):

OS: both ubuntu 22.04 and MacOS Monterey 12.4
Numary Version: master

Additional context
I found out the root cause is the project use package<EMAIL_ADDRESS>which belongs to sqlite3 version 3.36.0. Sqlite version 3.36 does not enable JSON support by default so we got that error when using json_valid function.
I know sqlite3 is not storage for production but that error will prevent the new developer.
I propose changing version of go-sqlite3 from v1.14.9 to v1.14.14 - which belongs to sqlite version 3.38.5

Hello @tiena2cva,
Thank you for your feedback!
If you want to build the ledger binary yourself, I recommend you to add "-tags json1" during the build / run.
Or take directly our binaries available on the release page :)

@flemzord Oh, thank you. I don't see that flag on the document.
Close issue


xNetworking Validation fixes

Right now xNetworking resource does not pass the Test-xDSCResource function. This is an attempt to correct this as the validateset for an array will blow up when you attempt to apply it.
I've made a big assumption that we can import xDSCResourceDesigner for the Pester tests as I have no desire to re-write the funciton just to test this. :+1:

Hi @tysonjhayes, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

Alright I can't just call xDSCResourceDesigner, does anyone know if I can just install it or copy it or something?

It's available on PowerShell gallery,
If you add the following file to your the project's appveyor.yml, you should have PowerShell Get available:
os: Unstable

then you can use the following lines to install the module:
Get-PackageProvider -name nuget -forcebootstrap -force
install-module xDSCResourceDesigner

Wooo. That took way longer then I thought but I learned some stuff and that's all that really matters. @TravisEz13  should be good to review now. :grin:

Thanks, This looks good.  The issues marked suggestions are feedback.  There are some style issues that affect our review process.  Please address those issue and I think we are good.


[Bug]: Sass deprecation warnings display even though quietDeps is set to true

Version
System:
    OS: Windows 11 10.0.22631
    CPU: (20) x64 12th Gen Intel(R) Core(TM) i7-12700H
    Memory: 14.09 GB / 31.68 GB
  Browsers:
    Edge: Chromium (127.0.2651.74)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    @rsbuild/core: 1.0.1-beta.11 => 1.0.1-beta.11
    @rsbuild/plugin-react: 1.0.1-beta.11 => 1.0.1-beta.11
    @rsbuild/plugin-sass: 1.0.1-beta.11 => 1.0.1-beta.11
    @rsbuild/plugin-type-check: 1.0.1-beta.11 => 1.0.1-beta.11

Details
Using @rsbuild/plugin-sass, deprecation warnings started showing up when upgrading from alpha.9 to beta.11.

Reproduce link
https://www.google.com/search?q=no+need+for+a+url+the+issue+is+self+explanatory
Reproduce Steps

use Sass plugin with quietDeps
use a deprecated syntax like https://sass-lang.com/documentation/breaking-changes/mixed-decls/
see a warning in the console

Note: maybe this is unrelated to rsbuild and just something that the Sass team really want to push

Yes, this is unrelated to Rsbuild.
https://github.com/element-plus/element-plus/issues/17487
https://sass-lang.com/documentation/breaking-changes/mixed-decls/

Thanks for responding 🎉 keep up the good work

it's not a bug.
try import sass and add these to config:
import sass from 'sass';

pluginSass({
    sassLoaderOptions: {
        sassOptions: {
            logger: sass.Logger.silent
        }
    }
})


Missing workbench.action.debug.clear command

There's a button for clearing the debug console, there's a command for clearing the terminal, but there isn't a command for clearing the the debug console.

This exists, it's called workbench.debug.panel.action.clearReplAction

Oh nice, thanks! I couldn't find it reading keybindings.json.

But still, there is no command to clear the debug console. In Chrome Console there is clear(). I expected to have the same here, but it does not work, even though when I execute clear, it shows that there is such function declared.

Filed https://github.com/Microsoft/vscode-debugadapter-node/issues/185 for that @LAITONEN


Exalted2e - Mortals added, fixed errors

Correcting a bug introduced with the addition of mortal races. Minor spelling fixes.

Submission Checklist
Required

[ x] The pull request title clearly contains the name of the sheet I am editing.
[x ] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x ] The pull request makes changes to files in only one sub-folder.
[x ] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: <   >  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: <   > (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: <   > (i.e. Dungeons & Dragons, FATE)

[ ] I have followed the Character Sheets Standards when building this sheet.

[ ] This sheet has been made on behalf of, or by, the game's publisher.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description

I. Exalted2e.html

Several spelling corrections
Corrected an error introduced with the addition of mortal 'castes' that caused them to be permanently visible
Corrected an alignment error in mortal 'caste' abilities

II. exalted2e.css

Added requisite fields for the recent additions of the mortal 'castes'

III. Readme.md

Updated changelog

Error fix for the addition of mortal 'castes'

Character Sheet Info Roll20 Internal Use only.

No problem, same kind of glitches happened me. Let me know if you have any
other issues with it. I might start working on it again as well.
On Tue, Dec 12, 2023, 11:11 AM Adrail86 @.***> wrote:

@.**** approved this pull request.
Thanks for the assist in fixing the alignment issues
—
Reply to this email directly, view it on GitHub
https://github.com/Roll20/roll20-character-sheets/pull/12373#pullrequestreview-1777900114,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZ7JT4W62R5LOBTUCIJUAKLYJB63HAVCNFSM6AAAAABAQ37VWKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTONZXHEYDAMJRGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

I am currently working with a downloaded copy of code that I will convert to fork soon that adds a Heartsblood tab to Lunars and has a repeating section for Stats that mimics the Familiar section.

@Briteblade there's a conflict on the files here preventing this from being merged. If this is still a work in progress, please mark the PR as a draft, to avoid getting it accidentally merged.
Thanks!

Welp.
@nmbradley It is not wip, I'll see if I can resolve the conflicts. It has been tested and does work correctly in Roll20's sandbox.

@nmbradley Conflicts should be resolved, let's give that a whirl before I start tinkering again.