Pact written to file and pact read from file are different

Some context first (not relevant). I want to make testing of my applications faster so I want to exclude fetching data from web during testing. The way to do it is fetch data first time, save the response and then if there is saved request/response than match against the saved data. I decided to go with PACT as it seems that you are solving similar problem and have done a lot of work about how to save and read the http requests/response.
Problem. I get the response from the web. Make a pact object. Save it. Then read it and it is not same in some important aspects. E.g 1) There are added backslashes for escaped characters 2) The request query is not saved.
Here is an excerpt of a minimal reproducible example:
fn save_pact(pact: &RequestResponsePact, pact_path: &Path) -> Result<(), Box<dyn Error>> {
    let pact_json = pact.to_json(PactSpecification::V4)?;
    let mut file = File::create(pact_path)?;
    file.write_all(pact_json.to_string().as_bytes())?;
    Ok(())
}

fn read_pact(pact_path: &Path) -> Result<RequestResponsePact, Box<dyn Error>> {
    let pact = RequestResponsePact::read_pact(pact_path)?;
    Ok(pact)
}

fn main() {
    // get test reqwest https://data.binance.com/api/v3/klines?symbol=LUNCUSDT&interval=1w&limit=1
    let request = reqwest::blocking::Request::new(reqwest::Method::GET, "https://data.binance.com/api/v3/klines?symbol=LUNCUSDT&interval=1w&limit=1".parse().unwrap());
    let response = reqwest::blocking::Client::new().execute(request.try_clone().unwrap()).unwrap();
    // if we want to use response multiple times, we need to clone it. There is no clone for response but there is for its parts
    let response_headers = response.headers().clone();
    let response_text = response.text().unwrap();
    let pact = make_pact("consumer", &Url::parse("https://data.binance.com/api/v3/klines?symbol=LUNCUSDT&interval=1w&limit=1").unwrap(), &request, &response_text, &response_headers).unwrap();
    // save pact to file
    println!("Pact just received: {pact:?}");
    let pact_path = PathBuf::from("pact.json");
    save_pact(&pact, &pact_path).unwrap();
    // read pact from file
    let pact_from_file = read_pact(&pact_path).unwrap();
    println!("Pact just from file: {pact_from_file:?}");
}

And here is the output:
Pact just received: RequestResponsePact { consumer: Consumer { name: "consumer" }, provider: Provider { name: "https://data.binance.com" }, interactions: [RequestResponseInteraction { id: None, description: "https://data.binance.com/api/v3/klines?symbol=LUNCUSDT&interval=1w&limit=1", provider_states: [], request: Request { method: "GET", path: "/api/v3/klines", query: Some({"symbol": ["LUNCUSDT"], "interval": ["1w"], "limit": ["1"]}), headers: None, body: Empty, matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, response: Response { status: 200, headers: Some({"connection": ["keep-alive"], "pragma": ["no-cache"], "content-length": ["179"], "expires": ["0"], "access-control-allow-methods": ["GET, HEAD, OPTIONS"], "x-xss-protection": ["1; mode=block"], "date": ["Mon, 09 Jan 2023 14:10:45 GMT"], "strict-transport-security": ["max-age=31536000; includeSubdomains"], "via": ["1.1 791c1a1066b263a57d2ecaaa4381525a.cloudfront.net (CloudFront)"], "x-cache": ["Miss from cloudfront"], "server": ["nginx"], "x-amz-cf-pop": ["DXB52-P1"], "content-type": ["application/json;charset=UTF-8"], "x-content-security-policy": ["default-src 'self'"], "access-control-allow-origin": ["*"], "x-amz-cf-id": ["jVf8UxDQ6FM6_JkR4VnMo1CE4R72nZcBoeQCb1TgRU2NvZE1KVZr7Q=="], "x-content-type-options": ["nosniff"], "x-mbx-uuid": ["3c9bda84-8d6e-42ce-bddc-2867e6ec3b82"], "x-frame-options": ["SAMEORIGIN"], "x-mbx-used-weight": ["2"], "x-mbx-used-weight-1m": ["2"], "content-security-policy": ["default-src 'self'"], "x-webkit-csp": ["default-src 'self'"], "cache-control": ["no-cache, no-store, must-revalidate"]}), body: Present(b"[[1673222400000,\"0.00015856\",\"0.00016744\",\"0.00015744\",\"0.00016244\",\"103891875712.37000000\",1673827199999,\"16826713.22069334\",61574,\"53288057930.57000000\",\"8633012.83979493\",\"0\"]]", None, None), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } } }], metadata: {}, specification_version: V4 }
Pact just from file: RequestResponsePact { consumer: Consumer { name: "consumer" }, provider: Provider { name: "https://data.binance.com" }, interactions: [RequestResponseInteraction { id: None, description: "https://data.binance.com/api/v3/klines?symbol=LUNCUSDT&interval=1w&limit=1", provider_states: [], request: Request { method: "GET", path: "/api/v3/klines", query: None, headers: None, body: Present(b"{\"content\":\"\"}", None, None), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }, response: Response { status: 200, headers: Some({"expires": ["0"], "strict-transport-security": ["max-age=31536000; includeSubdomains"], "x-mbx-used-weight-1m": ["2"], "access-control-allow-methods": ["GET, HEAD, OPTIONS"], "x-xss-protection": ["1; mode=block"], "date": ["Mon, 09 Jan 2023 14:10:45 GMT"], "access-control-allow-origin": ["*"], "connection": ["keep-alive"], "content-type": ["application/json;charset=UTF-8"], "x-mbx-used-weight": ["2"], "x-frame-options": ["SAMEORIGIN"], "via": ["1.1 791c1a1066b263a57d2ecaaa4381525a.cloudfront.net (CloudFront)"], "x-webkit-csp": ["default-src 'self'"], "pragma": ["no-cache"], "x-amz-cf-pop": ["DXB52-P1"], "server": ["nginx"], "cache-control": ["no-cache, no-store, must-revalidate"], "x-content-security-policy": ["default-src 'self'"], "x-amz-cf-id": ["jVf8UxDQ6FM6_JkR4VnMo1CE4R72nZcBoeQCb1TgRU2NvZE1KVZr7Q=="], "content-security-policy": ["default-src 'self'"], "x-mbx-uuid": ["3c9bda84-8d6e-42ce-bddc-2867e6ec3b82"], "content-length": ["179"], "x-content-type-options": ["nosniff"], "x-cache": ["Miss from cloudfront"]}), body: Present(b"{\"content\":\"[[1673222400000,\\\"0.00015856\\\",\\\"0.00016744\\\",\\\"0.00015744\\\",\\\"0.00016244\\\",\\\"103891875712.37000000\\\",1673827199999,\\\"16826713.22069334\\\",61574,\\\"53288057930.57000000\\\",\\\"8633012.83979493\\\",\\\"0\\\"]]\",\"contentType\":\"*/*\",\"encoded\":false}", None, None), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } } }], metadata: {"pactRust": {"models": "1.0.3"}, "pactSpecification": {"version": "4.0"}}, specification_version: V4 }

The added backslashes is a bigger nuisance than missing query string.
Probably I am using wrong api, so leaving it for the experts
The whole minimal reproducible example is a bit long so I placed it here. It is not compiling as you need to install dependencies:
[dependencies]
pact_models = "1.0.3"
reqwest = {version = "0.11.13", features = ["blocking"]}
url = "2.3.1"
tracing = "0.1.37"
serde_json = "1.0.91"

/jira ticket

The issue is that you have specified the PactSpecification as V4, but you are using the V3 model classes to read and write the Pact file. While this is an issue (it is probably converting the formats and losing information), setting the spec version to V3 does not have this issue.

There are already functions you can use that can read and write the Pact file correctly, taking into account the format. See https://docs.rs/pact_models/1.0.3/pact_models/pact/fn.read_pact.html and https://docs.rs/pact_models/1.0.3/pact_models/pact/fn.write_pact.html.
Example:
  let pact_path = PathBuf::from("pact.json");
  write_pact(pact.boxed(), &pact_path, PactSpecification::V3, true).unwrap();
  // read pact from file
  let pact_from_file = read_pact(&pact_path).unwrap().as_request_response_pact().unwrap();
  println!("Pact just from file: {pact_from_file:?}");

Or if you want to use V4 format:
  let pact_path = PathBuf::from("pact.json");
  write_pact(pact.boxed(), &pact_path, PactSpecification::V4, true).unwrap();
  // read pact from file
  let pact_from_file = read_pact(&pact_path).unwrap().as_v4_pact().unwrap();
  println!("Pact just from file: {pact_from_file:?}");

Thank you for your prompt response. Will try to change the code. Do you recommend using V3 or V4 pact specification? And could you point me to the docs describing differences between those? Or briefly describe it here

Thank you for your prompt response! I will try to change the code. Do you recommend using V3 or V4 pact specification? And could you point me to the docs describing differences between those? Or briefly describe it here

Thank you for your prompt response! I will try to change the code. Do you recommend using V3 or V4 pact specification? And could you point me to the docs describing differences between those? Or briefly describe it here

Do I understand correctly that RequestResponsePact structure can only be used for V3 and for V4 the structure is V4Pact?

All good suggestions.
V4 is newer and not as well supported as V3, but supports more types of workflows (like gRPC and Websockets). It depends on how you want to share your Pact files. From when you are doing, V3 will work fine for you. You can read up on the differences at https://github.com/pact-foundation/pact-specification/tree/version-3 and https://github.com/pact-foundation/pact-specification/tree/version-4

Eventually I did this repo to solve the initial problem https://github.com/NikZak/pact-proxy-rs


report action: execute report: Phantom immediately exited with: 127 // Ver 6.2.4 stable

Hi all,
Please I need your help to solve an issue I faced when generating the report using Phantomjs, the alert has been matched and when the report engine start processing its end with the error "report action: execute report: Phantom immediately exited with: 127" , knowing that all dependencies are installed
 apt-get install libfontconfig libfreetype6

{"type":"log","@timestamp":"2018-07-09T23:54:00Z","tags":["debug","Sentinl","report"],"pid":4664,"message":"phantomjs path: /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs"}
{"type":"log","@timestamp":"2018-07-09T23:54:00Z","tags":["debug","Sentinl","report"],"pid":4664,"message":"kibi access control: false"}
{"type":"log","@timestamp":"2018-07-09T23:54:00Z","tags":["info","Sentinl","watcher sentinl-watcher:6dd65320-83b2-11e8-a105-e5e01fee097d"],"pid":4664,"message":"successfuly executed"}
{"type":"log","@timestamp":"2018-07-09T23:54:00Z","tags":["error","Sentinl","do_action"],"pid":4664,"message":"report action: execute report: Phantom immediately exited with: 127"}
{"type":"log","@timestamp":"2018-07-09T23:54:10Z","tags":["error","Sentinl","do_action"],"pid":4664,"message":"fail to send email, watcher: sentinl-watcher:6dd65320-83b2-11e8-a105-e5e01fee097d, Error: connection encountered an error"}

sentinl:
  es:
    host: 'localhost'
    port: 9200
  settings:
    email:
      active: true
      user<EMAIL_ADDRESS>      password: 'xxxxxx'
      host: mx.aaaaaaa.net
      port: 465
      ssl: true
      tls: true
    report:
      active: true
      engine: horseman

Additional info:
Sentinl and Kibana version : 6.2.4 stable release
OS; ubuntu 16.04 64bit
Best regards.

Check if phantomjs executable
ls -lh /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs

What is your OS?

Hi @sergibondarenko ,
Thanks for your quick feedback,
Here my feedback, I think I will downgrade to 6.2.3,  before downgrading if you need any output which server to fix the issue 6.2.4,  please tell me.
# dpkg -l | grep libfont
ii  libfontconfig1:amd64                2.11.94-0ubuntu1.1                         amd64        generic font configuration library - runtime
ii  libfontconfig1:i386                 2.11.94-0ubuntu1.1                         i386         generic font configuration library - runtime
ii  libfontenc1:amd64                   1:1.1.3-1
#
# dpkg -l | grep libfree
ii  libfreetype6:amd64                  2.6.1-0.1ubuntu2.3                         amd64        FreeType 2 font engine, shared library files
ii  libfreetype6:i386                   2.6.1-0.1ubuntu2.3
#
#
# pwd
/usr/share/kibana/plugins/sentinl/node_modules
#
#
ll node-horseman/
total 68
drwxr-xr-x   6 kibana kibana  4096 Jul  7 22:10 ./
drwxr-xr-x 201 kibana kibana  4096 Jul  7 22:10 ../
-rw-r--r--   1 kibana kibana    87 Jul  7 22:10 AUTHORS
-rw-r--r--   1 kibana kibana  7597 Jul  7 22:10 CHANGELOG.md
drwxr-xr-x   2 kibana kibana  4096 Jul  7 22:10 examples/
drwxr-xr-x   2 kibana kibana  4096 Jul  7 22:10 files/
drwxr-xr-x   2 kibana kibana  4096 Jul  7 22:10 lib/
-rw-r--r--   1 kibana kibana  1083 Jul  7 22:10 LICENSE
-rw-r--r--   1 kibana kibana  3094 Jul  7 22:10 package.json
-rw-r--r--   1 kibana kibana 24205 Jul  7 22:10 Readme.md
drwxr-xr-x   3 kibana kibana  4096 Jul  7 22:10 test/
#
# ls -lh /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs
-rwxr-xr-x 1 kibana kibana 1.1K Jul  7 22:10 /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs
#
#
# cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

Regards.
Omar

Hi again,
The issue still persists after downgrading to 6.2.3, still working on it , I will update for any finding
{"type":"log","@timestamp":"2018-07-10T12:48:00Z","tags":["error","Sentinl","do_action"],"pid":6700,"message":"report action: execute report: Phantom immediately exited with: 127"}

Regards.

Try this issue

Ok,
Some updates,
Auditbeat revealed  that kibana try to execute the command in following and look for the nodeJS path by trying the paths /usr/local/sbin/node, /usr/sbin/node and /usr/bin/node without success
/usr/bin/env node /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs --load-images=true --ssl-proto

I tried to install nodeJS (knowing that I believe that kibana,sentinl or  phantomjs should uses its nodeJS shipped with Kibana ! )
root@es-lab-n3:~# /usr/bin/env node /usr/share/kibana/plugins/sentinl/node_modules/phantomjs-prebuilt/bin/phantomjs --load-images=true --ssl-proto
/usr/bin/env: ‘node’: No such file or directory
root@es-lab-n3:~# which node
root@es-lab-n3:~#
root@es-lab-n3:~#
root@es-lab-n3:~# node
The program 'node' is currently not installed. You can install it by typing:
apt install nodejs-legacy
root@es-lab-n3:~# apt install nodejs-legacy

now the error "Phantom immediately exited with: 127" disappeared, and another error raised ,
{"type":"log","@timestamp":"2018-07-10T14:00:06Z","tags":["error","Sentinl","do_action"],"pid":6700,"message":"report action: execute report: Failed to load url"

PS :
Plz let me know if this new error deserve a new thread in order to keep the forum clean ;)
Omar
Regards

Hi again,
Could you confirm/safe to me if is it normal to install nodejs to make this error disappear ?
# apt install nodejs-legacy

Thanks in advance
Regards.
Omar


Runs regex filter doesn't work in tensorboard v1.1

System information

Custom code, worked fine on 1.0
OS: Linux Ubuntu 16.04
installed binary via pip3
TensorFlow version v1.1.0-rc0-61-g1ec6ed5, 1.1.0
CUDA v8.0, cuDNN v5.1
GTX 1070, 8GB RAM
To reproduce: run tensorboard, try to filter runs in web interface, nothing happens

Problem description
Running tensorboard with v1.1 gives me the following warnings in the console (repeated four times) once the web interface is opened:
WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404
At first I ignored it, but it turns out that when examining the runs in the web interface, the regex filter for the runs doesn't work at all. This exact command in the exact same folder with the exact same logs worked without issue with v1.0.

This warning was also referenced in #9382.

@dandelionmane, could you place take a look. Thanks!

I'm seeing the same warnings and some major issues in viewing scalar data on tensorboard. I'm currently viewing tensorboard for 6 different training sessions all with different run id's. If I hide and show runs using the checkboxes the data will change for old runs that are no longer in progress. Also, some runs will show their data sometimes and others won't.

Just upgraded from 1.0.1 to 1.1 and got the same issue.
Same setup as @rightaditya, except for GTX 1080.
Note, TensorBoard does seem to have problems finding the address (still available from localhost tho). Letting you know in case this issue is somehow connected with the warnings.
Starting TensorBoard b'47' at http://<IP_ADDRESS>:6007
(Press CTRL+C to quit)
WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404
WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404
WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404
WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404

I got the same issue when I use the Google Cloud Platform with tensorflow version  1.10
I'm not sure, but the first time I use tensorboard, it works without the issue, and after that, tensor board cannot work properly at all.
Starting TensorBoard 47 at http://<IP_ADDRESS>:8080 (Press CTRL+C to quit) WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404 WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404 WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404 WARNING:tensorflow:path ../external/data/plugin/text/runs not found, sending 404

BTW, duplicate of #9285.

Thanks for the report. Both of these issues are fixed at master, so they won't be present in the next release.

@dandelionmane Can you mention the commit so it can be cherry-picked?

hey, is this issue is fixed on master ? I have installed from pip, it is ok from local, but when i tried it with my domain and access from internet, i got same error

hey, any feedback ?

I have the same problem. runs regex works fine at localhost, but not when running on another host.

Please pip install the latest tensorboard via pip install tensorflow-tensorboard. If it's still happening, open an issue at https://github.com/tensorflow/tensorboard with precise reproduction steps


Format decimal places of violations

Currently, in the event where a notifications gets rendered for:
threshold: 100.50
violation:<PHONE_NUMBER>890
It will output the full number of the violation:<PHONE_NUMBER>890
This changeset alters this behavior by formatting the violation two decimal places past the resolution of the threshold.  So for the same scenario, it will format the number of the violation as 200.1234.
This should help with making our formatted notifications easier to read.

@collinvandyck No worries, you just need to gem update bundler or the next time you run bundle it'll happen again.

Looks fine.


shared fields created to reuse repeated code

Looks ok Mark. Upon review I don't see any differences in errors between dev and prod.


testutil: connect/disconnect make 1 result on event channel

There's an event result write to the events channel in both the
EventNotify() and in the ConnectNotify()/DisconnectNotify() code paths,
but there will only be one read.  These writers will block and leak
goroutines.
Signed-off-by: Tim Pepper<EMAIL_ADDRESS>

Coverage increased (+0.03%) to 66.032% when pulling be2bb7769289f77940ba35cf0ad9db39e583a01b on tpepper:storage into aa884292f133ca63b1cc13cd7844bb550d559189 on 01org:kaccardi/topic/storage.


Dynamic KeyPath

Just wondering if you library can help with Swift not supporting a dynamic KeyPath, e.g. below the "key" is not a property of an object so the \key syntax cannot be used:
        let dict = NSMutableDictionary(object: "value1", forKey: NSString("key"))
        dict.observe(keyPath:KeyPath("key")) { (dict, change) in // compilation error

        }
        dict.setObject("value2", forKey: NSString("key"))

'KeyPath<Root, Value>' cannot be constructed because it has no accessible initializers
This problem is also mentioned on the Swift Forums:
How can I make KeyPath from String? https://forums.swift.org/t/how-can-i-make-keypath-from-string/19658

Actually, no. This is out of the scope of this library.
But you can use the old school style of KVO:
dict.addObserver(self, forKeyPath: "key", options: [], context: nil)

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
  print("changed")
}

And don't forget to removeObserver() at some point.


BJLive!.LumineaRemote version <IP_ADDRESS>3

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.1 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

The installer can be downloaded from http://update.bjliveat.com.
The company's brand has recently changed from BJLive! to Qinera, but products names, URLs, etc. have not yet been updated. Our previous company website URL, https://bjliveat.com now redirects to our new domain, https://qinera.com/en .
I hope this clarifies all the diferent URLs.

@wingetbot waivers Add Validation-Domain


Build a Ruby To-Do app

Code newbies and new open source contributors -- help us build our repository of CockroachDB To-Do apps!
What is CockroachDB?
CockroachDB is the distributed SQL database built to scale fast, survive anything, and thrive everywhere.  To learn more about CockroachDB, see our website and docs.
Detailed instructions to help you build the app
For step-by-step instructions, see the README
Additional Resources:
https://www.cockroachlabs.com/docs/v20.1/build-a-ruby-app-with-cockroachdb.html

Hi @Amruta-Ranade , Can I take this up and start working on it? Would start exploring it and raise the PR in October.

@sabarish98 Go for it!

I wanted to work on this one but you don't have support for Rails 6 :disappointed:
https://github.com/cockroachdb/activerecord-cockroachdb-adapter/issues/34


Reference list bases post request

In an effort to make the API consistent this PR implements the list reference bases endpoint as a POST request (https://github.com/ga4gh/schemas/pull/647), as opposed to a get request with query parameters. This helps to make the API more consistent by making POST requests used for anything that requires paging.
GET /reference/abcd123/bases?start=0&end=100&pageToken=3
becomes
POST /reference/abcd123/bases {start: 0, end: 100, pageToken: "3"}
A couple of bits of code that were noted for removal have been cleared out with this. Namely, as suggested in the TODO, we can pass around request objects without hand editing a parameter dictionary.

Change tests to use post endpoint
Simplify testing code path
Change routes for list ref bases
Add to client

+1

The code looks good, but I think we could make it fit into the existing patterns better. If the upstream changes are accepted then this is fine.
I'm +0 on making the change --- I don't think it makes much difference whether we use a GET of a POST, but this is a long standing wart.

Thanks @jeromekelleher let's remove this wart! Some of the ugly code paths are removed and I've renamed the variables as you've requested.

I agree it's a wart, but it's one that's been deployed. This needs to be filled out at the schema level before this PR can be accepted. There must be a meaningful dialog before a breaking change such as this is made. Then, the implementation here should be carefully reworked to get rid of all special cases for the ListReferenceBases endpoint.
I'm putting a -1 on this until the schema changes have been accepted, since this can technically be merged otherwise.

Looks like we got some +1's! https://github.com/ga4gh/schemas/pull/647

bump :)

If this is approved upstream I have no objections here of course. Consider my -1 cancelled.

Looks like this is all but agreed upon (but still strangely unmerged...) in the schemas repo.  Merging...


BusinessForm documentation cleanup

Both BusinessForm and BusinessFormStepped have account-id as a prop in their documentation, however it is not needed or used so we can remove it
Update the description for business-id which currently says "business-id: An optionally provided business ID for updating a business. If not provided, a new business will be created." should be "business-id: required business ID for the business being updated"

fixes #354


python312Packages.pyfibaro: 0.7.6 -> 0.7.7

Diff: https://github.com/rappenze/pyfibaro/compare/refs/tags/0.7.6...0.7.7
Changelog: https://github.com/rappenze/pyfibaro/releases/tag/0.7.7
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 302451 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.fibaro
python311Packages.pyfibaro
python311Packages.pyfibaro.dist
python312Packages.pyfibaro
python312Packages.pyfibaro.dist


Issue with k8s.io/docs/tasks/administer-cluster/namespaces/

This is a Bug Report
Problem:
There's a wrong resource name on the page, the line
kubectl create deployment snowflake --image=k8s.gcr.io/serve_hostname -n=development
leads to an error:
The Deployment "snowflake" is invalid: spec.template.spec.containers[0].name: Invalid value: "serve_hostname": a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name',  or '123-abc', regex used for validation is 'a-z0-9?')
Proposed Solution:
Fix the commandline. I think the image name is simply wrong, it should be
--image=k8s.gcr.io/serve-hostname
and not
--image=k8s.gcr.io/serve_hostname
Page to Update:
https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

Can you provide the environment version information? The container name of 1.18 does not have this restriction.
/triage needs-information

Can you provide the environment version information? The container name of 1.18 does not have this restriction.

You are right, I just retried with the "edge" version of docker-desktop and it's "integrated" kubernetes cluster, here the problem does not occur (See version info below)
The problem occurred when using the "stable" (as of 24.08.2020) version of docker desktop (and whatever kubernetes it is running). Unfortunatly, I cannot reproduce this as that version quit running on my machine and had to be replaced with the "edge" version, so I cannot tell which version I was running two days ago. Sorry!
As it is running in the latest version, you can probably close this.
 I don't have enough authority.Thx!

/close


how to put warnings on a mod

Describe your problem here.
i want to put warning on the mod, but idk how to do that =(
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

you make a state

idk how to do this but my fnf mod when i was making it randomly showed warning flashing lights out of nowhere i think you have to use an event i have no idea how to code that into lua tho

Assuming it’s done in Lua, I’m not sure you’ll be able to program it into the menu, however you could add it to introText.txt, or making a ‘cutscene’ at the beginning of your song.


Update docker file to contain certificates

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7fdd93a) 71.16% compared to head (ddfbd2a) 71.16%.
Report is 5 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master      #83   +/-   ##
=======================================
  Coverage   71.16%   71.16%
=======================================
  Files           1        1
  Lines         378      378
=======================================
  Hits          269      269
  Misses         89       89
  Partials       20       20

Files
Coverage Δ

main.go
71.16% <ø> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Notes/issues related to run_jolly_hampton

run_jolly_hampton is called under Survey.run_cv_analysis:

should not pass survey as an argument, pass the necessary dataframes instead
seems like CV analysis is only based on INPFC strata (based on latitude), not KS strata
n_transect_per_lat:

make this an input argument
this controls the number of divisions in each degree latitude
check why this is rounding "up": 49.099727 becomes 49.2, 48.932686 becomes 49.0 -- is this something done in Matlab code?

not sure why mean_diff needs to be calculated separately: isn't this set already from n_transect_per_lat?
transect_info is a misnomer: each entry is simply represents a particular latitude that comes from n_transect_per_lat
temp_df["unique_lat"] is the same as the index of temp_df: redundancy

This issue can be closed now as the API has been completely revamped.


stats: Ability to not count health checks

Title: Ability to not count health check paths in statistics
Description: With multiple nodes and a mesh of upstream and downstream the count of health checks can get high.  Weeding this out the real requests especially during canary deployments / low volume times is difficult.
Having the ability to configure the statistics to ignore /health for example would help us see statistics on the real requests and not the fast health check urls.

Which stats are you asking about specifically? Health checks are excluded from certain stats already, like HTTP response codes.

I'm asking about application level health checks.  So health checks from Kubernetes, health checks from envoy to another pod.  Would the request into the other pod not be counted as a request?

If you use https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/health_check_filter any incoming health check requests will be marked as such and not count in stats.

I've tried setting the health_check_filter and I still get counts in my stats.  Maybe I'm doing it wrong?


quiche: build spdy_core_alt_svc_wire_format_lib

Add spdy_alt_svc_wire_format.(h|cc) into BUILD.bzl. Inline some helper functions in spdy_string_utils_impl.h as their API functions are also inlined.
Risk Level: low, not in use
Testing: clean up only, no new code in envoy tree.
Part of #2557

/assign @mattklein123


Integration Test - Release - 2018/06/01 09:48:51

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest2 : Thanks for your contribution! The author, @v-caxian, has been notified to review your proposed change.


Printer friendly colors

Hi, awesome PDFs!
The problem is when trying to print on paper. The code snipets with black background came out almost solid-black.
It would be good to somehow have printer friendly version available.

@ccolombo Thanks for pointing this out. I've updated the colour scheme for code blocks to light mode. You may try now.

Closing this issue now. Feel free to reopen, if any issues are found.


Investigate whether includes can be optimized

Required information
Operating system:
E.g. Ubuntu 18.04 LTS
Compiler version:
E.g. GCC 7.4.0
Observed result or behaviour:
A clear and precise description of the observed result.
Expected result or behaviour:
What do you expect to happen?
Conditions where it occurred / Performed steps:
Describe how one can reproduce the bug.

Are all #includes in iceoryx required? Some preprocessing analysis suggests not. The goal of this ticket is to try to identify and reduce the number of includes if possible. This will also impact metrics such as coupling, connectedness, relevant for FUSA work.

@mossmaurice was this intentionally closed?

@elBoberido It closed by merging #1738. If @neillangmead41 has more includes to optimize we can re-open this issue.


GSoC Proposal (2)

Hi, I was very interested in working on the project proposal that I found on julia page: Writing high-performance, multithreaded kernels for image processing.
I am comfortable with the julia language and have a little experience for the same, I also have done some research projects where I was engaged in processing huge images (Polarimetric SAR Data).
I am writing this proposal under tight deadline and would know if someone could guide me regarding this project, what all things should start studying, in a technical way?
Anyway, my proposal can be found here: GSoC proposal project (not completed yet), and I would really appreciate any feedback you guys can give me (:
(I don't know if this is the right place for this but I was encouraged after reading https://github.com/timholy/Images.jl/issues/453)

Sorry I didn't get to this more quickly; yesterday was very busy and I just couldn't keep track of all the emails.

That's ok! I had closed the issue because already submitted the proposal.

Oh, great! Good luck!


What timezone are the responses in?

I am trying to display some info on a website received from this endpoint, something along the lines of "40,000 cases as of 04/11/2020" but that date can differ quite a bit depending on where in the world the browser is if I don't know the timezone of the response.
If no timezone information is provided, ISO 8601 formatted dates are to be represented as local time Info here
Thank you for the help!

Hi @SammyIsra,
The timestamps are in UTC(00:00) as the upstream data provider, JHU updates the data around 00:00 UTC every night.
Let me know if you have any suggestions or queries.

Fantastic, thank you!


HTML/XML character entities not translated to normal text

Hi
Thanks for this nice tool.
 from some feeds. An example of such a feed is http://www.independent.co.uk/news/science/rss. I inserted some dots in the character entities, otherwise the forum translates them.
I was wondering whether this problem has already been observed/reported.

I also get this issue.


Add logging on uncaught exception and comments to journal code

What changes are proposed in this pull request?

Add more logging on uncaught exceptions in journal threads, for hidden issue awareness
Add more comments in code
Add a missing volatile

alluxio-bot, merge this please


Groups - The following scenarios DO NOT supported nested groups

The following should be amended in this document:
"Group-based licensing (assigning a license automatically to all members of a group)"
I believe is now available, as I am assigning licenses this way currently successfully.
Thanks,
Ross

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

ID: 42a0b4cb-1981-1cbc-ce2c-dbfd8af1527c
Version Independent ID: d49c873c-9843-8428-a6d1-a1995067d13b
Content: Service limits and restrictions - Azure Active Directory
Content Source: articles/active-directory/users-groups-roles/directory-service-limits-restrictions.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@RossLyonsHF Thanks for the feedback.  I do not think that it is supported yet however  I have assigned this issue to content author to investigate and update the document as appropriate.

Hi @curtand
What is true is that assigning licenses to nested groups is still not supported. That doesn't mean it won't work under any circumstance, but if you proceed, you should know that it's an unsupported configuration.
Thanks, @SaurabhSharma-MSFT
#please-close


Hover doesn't work over inlay hints

Given the squigglies appear under inlay hints, I was expecting hover to work when hovering them:

This is a duplicate. Unfortunately, I don't recall the exact issue number nor its title :flushed: Anyways, searching for issues with the same labels will likely help you :point_right:
https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aopen+label%3Ainlay-hints

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Adds language to README for syntax highlighting

The comments in the code blocks are nice! This just helps differentiate them.

Hey, thanks!!


PDOStatement execute error

I am using PHP 5.4 (zend 5.6), IIS 7.5, and SQLSRV-PHP driver on my
development machine. I tried inserting some data into SQL2008R2 database using
the new driver but to my surprise every time i run execute(), it inserts the
same record twice. Below is my code:
$pdo = new PDO("sqlsrv:server=(local);database=devDb;");
$sql = "insert into tblTest (name,ts) values(:name, :ts)";
$stmt = $pdo->prepare($sql);
$args = array(':name'=>'Some Value',':ts'=>microtime(true));
if( $stmt->execute($args) ){
.....

}
When i run and check the db, it creates 2 records with a difference in the ts
field of some few micro seconds. On my production system which is running
PHP5.3, that is not an issue.
Could it be a problem in the driver or PHP itself
Work Item Details
Original CodePlex Issue: Issue 22416
Status: Proposed
Reason Closed:  Unassigned
Assigned to:    Unassigned
Reported on:    May 17, 2012 at 2:33 PM
Reported by:    quaspam
Updated on: May 21, 2012 at 3:01 PM
Updated by: jguerin

It's been fixed. Closing this issue.


Restrict query response type to not include undefined

undefined is not allowed to be returned as a valid response from a query in react-query

Must return a promise that will either resolve data or throw an error. The data cannot be undefined.
https://tanstack.com/query/latest/docs/react/reference/useQuery#:~:text=Must return a promise that will either resolve data or throw an error. The data cannot be undefined.

It would be great if the type system restricted undefined from being returned to avoid hitting an error at runtime.
e.g. This should throw a type error about returning undefined
createQuery<number | undefined>({
   primaryKey: 'key',
   queryFn: () => 1
})

Although this feature is not difficult to achieve. But because I can't override the error message of ts. If people input the wrong type undefined, it will produce a misleading error message like the one below. It's hard to debug. So I think it's unnecessary
type Response = void
type Variables = { id: number }

const usePost = createQuery<Response, Variables, Error>({
  primaryKey: '/posts',
  queryFn: ({ queryKey: [primaryKey, variables] }) => {
    // primaryKey equals to '/posts'
    return fetch(`${primaryKey}/${variables.id}`).then(res => res.json())
  },
  // if u only wanna fetch once
  enabled: data => !data,
  suspense: true,
})

// error hint
No overload matches this call.
  Overload 1 of 3, '(options: CreateQueryOptions<void, Variables, Error>): QueryHook<void, Variables, Error>', gave the following error.
    Type '({ queryKey: [primaryKey, variables] }: QueryFunctionContext<[string, Variables], any>) => Promise<any>' is not assignable to type 'QueryFunction<never, [string, Variables]>'.
      Type 'Promise<any>' is not assignable to type 'Promise<never>'.
        Type 'any' is not assignable to type 'never'.
  Overload 2 of 3, '(primaryKey: string, options?: Omit<CreateQueryOptions<void, Variables, Error>, "primaryKey"> | undefined): QueryHook<void, Variables, Error>', gave the following error.
    Argument of type '{ primaryKey: string; queryFn: ({ queryKey: [primaryKey, variables] }: QueryFunctionContext<[string, Variables], any>) => Promise<any>; enabled: (data: undefined) => true; suspense: boolean; }' is not assignable to parameter of type 'string'.ts(2769)
types.ts(24, 3): The expected type comes from property 'queryFn' which is declared here on type 'CreateQueryOptions<void, Variables, Error>'
createQuery.tsx(37, 17): The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.


Getting the selected datetime

I have used this code in codepen http://codepen.io/asterzwx/pen/dMLwaO
To get the selected date and time from the calander but it doesn't seem to work
I always get the current date and time for the day i am in.
Thank you.

Problem with getting current date instead of selected value is duplicate of #14.
Problem with formatting value in input is duplicate of #45/#21.

I have followed your instructions in the previous issues but i always get the current date not the selected date
Here is my code
angular.module('starter.controllers', ['ui.rCalendar', 'ion-datetime-picker'])

.run(function($ionicPickerI18n, $rootScope) {
		$rootScope.datetimeValue = new Date();
        $ionicPickerI18n.weekdays = ["Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat"];
        $ionicPickerI18n.months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        $ionicPickerI18n.ok = "OK";
        $ionicPickerI18n.cancel = "Cancel";
        $ionicPickerI18n.okClass = "button-positive";
        $ionicPickerI18n.cancelClass = "button-stable";
 })

.controller('AddCtrl', function($rootScope, $stateParams, $ionicPopup) {

	$rootScope.showPopup = function(){

     var alertPopup = $ionicPopup.alert({
        title: 'Alert',
        template: 'Your selected time ' + $rootScope.datetimeValue //here Im trying to get the user's selected time
   });
   }
});

<ion-view view-title="Add Tabel">
  <ion-content class="padding">

                Start Date:

{{datetimeValue| date: "EEE MMM dd yyyy h:mm a"}}

</ion-content>
</ion-view>

I am so sorry but i will really appreciate your help if this is fixed.
Thanks in advance.

The answer in #14 basically says Always put a dot in your models. You have ng-model="datetimeValue". Refactor it to have a dot, e.g. ng-model="$ctrl.datetimeValue". You just need to use your very basic angular skills to fix this.


Error while installing passport in laravel 10.10 PHP 8.1

Laravel Version
10.10
PHP Version
8.1
Database Driver & Version
No response
Description
Problem 1 - laravel/passport[v11.5.0, ..., v11.8.4] require league/oauth2-server ^8.2 -> satisfiable by league/oauth2-server[8.2.0, ..., 8.5.2]. - laravel/passport[v11.8.5, ..., v11.8.7] require lcobucci/jwt ^4.3|^5.0 -> satisfiable by lcobucci/jwt[4.3.0, 5.0.0]. - league/oauth2-server 8.5.2 requires lcobucci/jwt ^4.3 || ^5.0 -> satisfiable by lcobucci/jwt[4.3.0, 5.0.0]. - laravel/passport[v0.1.0, ..., v0.2.4, v1.0.0, ..., v1.0.18, v2.0.0, ..., v2.0.11, v3.0.0, ..., v3.0.2, v4.0.0, ..., v4.0.3, v5.0.0, ..., v5.0.3, v6.0.0, ..., v6.0.7, v7.0.0, ..., v7.5.1] require guzzlehttp/guzzle ~6.0 -> found guzzlehttp/guzzle[6.0.0, ..., 6.5.8] but it conflicts with your root composer.json require (^7.2). - laravel/passport[v8.0.0, ..., v8.5.0, v9.0.0, ..., v9.3.2] require php ^7.2 -> your php version (8.2.4) does not satisfy that requirement. - laravel/passport v9.4.0 requires illuminate/auth ^6.18.31|^7.22.4 -> found illuminate/auth[v6.18.31, ..., v6.20.44, v7.22.4, ..., v7.30.6] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.0.0, ..., v10.0.1] require php ^7.3 -> your php version (8.2.4) does not satisfy that requirement. - laravel/passport[v10.1.0, ..., v10.2.2] require illuminate/auth ^8.2 -> found illuminate/auth[v8.2.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.3.0, ..., v10.3.2] require illuminate/auth ^8.2|^9.0 -> found illuminate/auth[v8.2.0, ..., v8.83.27, v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v10.3.3, ..., v10.4.2] require illuminate/auth ^8.37|^9.0 -> found illuminate/auth[v8.37.0, ..., v8.83.27, v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - laravel/passport[v11.0.0, ..., v11.4.0] require illuminate/auth ^9.0 -> found illuminate/auth[v9.0.0, ..., v9.52.10] but these were not loaded, likely because it conflicts with another require. - league/oauth2-server[8.2.0, ..., 8.5.1] require psr/http-message ^1.0.1 -> found psr/http-message[1.0.1, 1.1] but the package is fixed to 2.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - lcobucci/jwt[4.3.0, 5.0.0] require ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension. - Root composer.json requires laravel/passport * -> satisfiable by laravel/passport[v0.1.0, ..., v0.2.4, v1.0.0, ..., v1.0.18, v2.0.0, ..., v2.0.11, v3.0.0, v3.0.1, v3.0.2, v4.0.0, v4.0.1, v4.0.2, v4.0.3, v5.0.0, v5.0.1, v5.0.2, v5.0.3, v6.0.0, ..., v6.0.7, v7.0.0, ..., v7.5.1, v8.0.0, ..., v8.5.0, v9.0.0, ..., v9.4.0, v10.0.0, ..., v10.4.2, v11.0.0, ..., v11.8.7].
Steps To Reproduce
While trying to install using the command
composer require laravel/passport
System :
Windows 11
PHP 8.1

Hi,
I think your error is in your composer.json. I think you need to upgrade guzzle to ^7.2 . At least that is something that I found in the provided log. If that does not help, can you provide the full composer.json?

composer require laravel/passport -W


defaultRetentionTimeInMinutes from conf/standalone.conf doesn't do nothing

Describe the bug
defaultRetentionTimeInMinutes from standalone.conf doesn't affect to the real behavior
But bin/pulsar-admin namespaces set-retention public/default --size -1 --time -1
works fine
To Reproduce
Steps to reproduce the behaviour:

mount volume in docker-compose.yaml file 'docker/pulsar/conf/standalone.conf:/pulsar/conf/standalone.conf' and set retention policy

   defaultRetentionTimeInMinutes=-1
   defaultRetentionSizeInMB=-1

execute docker-compose.yaml with standalone option command: bash -c "bin/pulsar standalone"
check variables bin/pulsar-admin namespaces get-retention public/default

{
  "retentionTimeInMinutes" : -1,
  "retentionSizeInMB" : -1
}

send message "test" to public/default/my-topic

create reader from public/default/my-topic

message is there

wait about 3 minutes and read again

the topic is empty

stop docker-compose.yaml and clean volumes

execute docker-compose.yaml again

set retention policy through pulsar-admin bin/pulsar-admin namespaces set-retention public/default --size -1 --time -1

check variables bin/pulsar-admin namespaces get-retention public/default

{
  "retentionTimeInMinutes" : -1,
  "retentionSizeInMB" : -1
}

send message "test" to public/default/my-topic
create reader from public/default/my-topic
message is there
wait about 3 minutes and read again
message is still there

Expected behavior
The message should be in topic after 2 minutes when defaultRetentionTimeInMinutes=-1 configured in standalone.conf
Desktop (please complete the following information):

OS: Official docker 2.4.0

Additional context
docker-compose.yaml
version: '3'
services:
    zookeeper:
        container_name: zookeeper
        image: confluentinc/cp-zookeeper:latest
        environment:
            ZOOKEEPER_CLIENT_PORT: 2181
            ZOOKEEPER_TICK_TIME: 2000
        volumes:
            - './docker/zookeeper/data:/var/lib/zookeeper/data'
            - './docker/zookeeper/log:/var/lib/zookeeper/log'
    pulsar:
        container_name: pulsar
        hostname: pulsar
        ports:
            - '6650:6650'
            - '9000:8080'
        volumes:
            - './docker/pulsar/data:/pulsar/data'
            - './docker/pulsar/conf/standalone.conf:/pulsar/conf/standalone.conf'
        depends_on:
            - zookeeper
        image: 'apachepulsar/pulsar:2.4.0'
        command: bash -c "bin/pulsar standalone"
    pulsar-dashboard:
        container_name: pulsar-dashboard
        image: apachepulsar/pulsar-dashboard
        ports:
            - '9001:80'
        environment:
            SERVICE_URL: http://pulsar:9000
        depends_on:
            - pulsar

Default retention policy is not uploaded to zookeeper, but it is getted from zookeeper when it is used.
So, if zookeeper doesn't have retention policy, we should load it from default config file.
I have fix it in #4810


[WIP][CI] Use factored out testing lib

Based on https://github.com/kubernetes-helm/chart-testing/pull/1

cc @kubernetes/charts-maintainers

/assign @mattfarina @viglesiasce

/retest

I bumped a few charts so they are tested and we can verify things work. This will be reverted before merging the PR.

/retest

Removed the change to the grafana chart since it was failing the linter

@unguiculus when is this going to be ready to merge? It looks good to me other than the changes to the charts.

I think it still needs kubernetes-helm/chart-testing#1 to be merged before this one can be?

CircleCI should become green once #5847 is merged.

/lgtm


Schedules, Payload

Is your feature request related to a problem? Please describe.
Schedules, they don't take payload that we can send to the workflow.
Describe the solution you'd like
There should be option to give payload to Schedules.
Describe alternatives you've considered
There don't seems to any option right now unless that's handled in the worflow itself.
Additional context

Thanks

➕ Also think this would be super useful!
We had to create an API exposing all of Temporal's Schedule APIs with some extra logic to serialize the payload data when creating a Schedule.
It would be nice to do everything within Temporal UI instead of going through the whole process of write code -> test code -> merge code -> deploy code
Especially when serializing complicated/nested payloads are involved. There's more room for user error(typos/etc.) and make things harder to debug.


Test passes even though there is no such route with action.

I had one controller

Set up web api routes and perform tests

Event though there is no such action with name "latestxx", it passes the test.
If i change the controller name it works fine and fails the test

but for action, it's giving wired behaviour.
Is there anything I'm missing ?
NOTE: I had use attribute routing
I had used MvcRouteTester: <IP_ADDRESS> which is compatible with System.Web.Mvc: <IP_ADDRESS>.
@AnthonySteele : you can contact me at<EMAIL_ADDRESS>, let's make it go.

Got it,
Needs to change DefaultApi route as
 config.Routes.MapHttpRoute(                 name: "DefaultApi",                 routeTemplate: "api/{controller}/{action}"             );
and it works as required.


STORM-2090: Add integration test for storm windowing

@raghavgautam

Travis CI fails with RAT issue. Could you run your branch via mvn clean install -Prat?
Could we apply fail-fast? I think integration tests don't need to be run when test is failing.
Please refer https://travis-ci.org/apache/storm/jobs/161473780. Test is failing with RAT, and script ran integration tests.

Btw, do you plan to introduce more integration tests?
Since it seems additional 20 mins to setup and run the new integration tests so I feel it a bit heavy to test just a windowing cases.

@HeartSaVioR I have fixed the rat issue and I have put fast fail.
Yes, we will be contributing more tests to apache storm going forward.

@raghavgautam Thanks. It looks great to me. +1

I squashed commits before merging (b779ca4e270f6f2a86d4d30336004e4a642ec690) but forgot to write 'Closes #1691' to commit log.
@raghavgautam Could you close this? Thanks!

Thanks @harshach @HeartSaVioR for reviewing.

This a fairly large commit that seemingly includes code from other projects. That's fine as long as you can document what code was copied, and what the license for that code was.

I had mention this on the jira.
A good part of the vagrant setup has been picked up from:
https://github.com/ptgoetz/storm-vagrant
https://github.com/harshach/storm-vagrant
https://issues.apache.org/jira/browse/STORM-2090
Both of them have apache license:
https://github.com/ptgoetz/storm-vagrant/blob/master/LICENSE
https://github.com/harshach/storm-vagrant/blob/master/LICENSE
Rest has been authored by me (contributed by Hortonworks).
This includes TestngListner.java which was originally contributed to apache falcon.
https://github.com/apache/falcon/blob/master/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/TestngListener.java

Just to be clear, that wasn't a criticism. I just wanted to point out that it is important that we know the provenance and license of all code that enters our repository.

@ptgoetz Do we need to document any other place or just mentioning on the jira is sufficient ?

@raghavgautam Nope. All is good.

@raghavgautam I am +1 overall. I believe it makes sense to have these integration tests run in the mvn integration-test phase, but that's the only detail I have to add.
+1


[v1] log requests for mesh-serve

Is your feature request related to a problem? Please describe.
When I send a request from GraphiQL, all I see is
🕸  Mesh 🐛 Parsing request to extract GraphQL parameters
🕸  Mesh 🐛 Processing GraphQL Parameters
🕸  Mesh 🐛 Processing GraphQL Parameters done.
🕸  Mesh 🐛 Parsing request to extract GraphQL parameters
🕸  Mesh 🐛 Processing GraphQL Parameters

Describe the solution you'd like
Show more information, like the URL being called, the type of request GET / POST, and the total request time.
It would be nice to have debug logging for outgoing requests from gateway to subgraph.
Interesting information here is, URL being called, HTTP status code and/or error code in case of network error.
Describe alternatives you've considered

Fork the docker image and build my own plugin.
Implement this on the Yoga level, so everyone benefits from it

Additional context
None

https://github.com/ardatan/graphql-mesh/pull/7343


Select on connection close channel to prevent sending to a closed connection

Recent error found in demo instance:
panic: send on closed channel

goroutine 4128 [running]:
main.main.func4.1(0xc00024f380, 0xc000150880)
	/usr/local/go/src/github.com/antoniomika/sish/main.go:152 +0xa1
created by main.main.func4
	/usr/local/go/src/github.com/antoniomika/sish/main.go:142 +0x2d2

In regards to this change:
https://github.com/antoniomika/sish/blob/cc916eb8657358692c3f5d297742e1e602c58f08/main.go#L142-L156
A quick fix for this would be to change this function to have
select {
case <-holderConn.Close:
	return
default:
	holderConn.Messages <- "No forwarding requests sent. Closing connection."
	time.Sleep(1 * time.Millisecond)
	holderConn.CleanUp(state)
}

or similar. A quick fix in the meantime would be to start the process with -sish.cleanupunbound=false

Resolved by: afba880


Adding application configuration bceid

Description
This PR includes the following proposed change(s):

Adding missing bceid configuration

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Refactoring / Documentation

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] New and existing unit tests pass locally with my changes

do we need to add this to the docker-compose and .env.example??


Bug: sync_int_change does not exist in stats_synchronizer

In the sync.gd script the function sync_int_change is called:
	if entity.component_list.has("stats_synchronizer"):
		entity.component_list["stats_synchronizer"].sync_int_change(t, s, v)

However this function is replaced by (and should be made public again so removing the "_"):
func _sync_int_change(stat_type: TYPE, value: int):

Same for float change

this is actually not an issue.


Dismiss screenshots by clicking outside of the modal?

It would be nice if clicking outside the screenshot dismissed the modal overlay, rather than forcing people to click the “x” icon to close it.

@jcohen  I added this feature =D


[v0.1] Form Factor

The current design features an upstream Type-C plug and downstream Type-C socket.

This is designed to plug directly into a host, but the Type-C paddle mounted connectors mean we're forced to use a 0.8mm PCB, and the overall design feels a bit flimsy.
Potentially a 3d printed case might help?
Would it be possible to use two Type-C sockets, and then maybe house the device in a small extruded aluminum case as shown?

This is designed to plug directly into a host, but the Type-C paddle mounted connectors mean we're forced to use a 0.8mm PCB, and the overall design feels a bit flimsy.
Potentially a 3d printed case might help?

These are exactly my thoughts--I think I was going to file a bug but forgot.

Would it be possible to use two Type-C sockets, and then maybe house the device in a small extruded aluminum case as shown?

Unfortunately, I don't think two sockets will work. If you are using something that requires e-marked cables, I think (based on my understanding of the PD spec) that will just garble the communication since there's only SOP' and SOP'' to address the markers. Also, if you are using something like Thunderbolt, two cables plus the PD sniffer PCB might exhaust the entire link budget. I am very interested in using it for both of these applications.
The latter reason also excludes e.g. having two connectors with a mux picking between them, since you cannot pick a mux that handles every conceivable altmode. The board has to stay passive and functional with only a single cable involved, or it will lose a lot of its usefulness.
I think a sturdy case, 3d printed or not, is the way to go. I expect some boards will break during use, but... it's not a complex or expensive board (now that we aren't using Google's absurd design rules) so it's not a huge loss. In any case, plugging suspicious type-C stuff into a type-C debugger directly electrically interfacing the lines is inherently hazardous. We don't even have protection from having 20V on the CC lines; anyone using this sniffer ought to buy them in pairs!

This is designed to plug directly into a host, but the Type-C paddle mounted connectors mean we're forced to use a 0.8mm PCB, and the overall design feels a bit flimsy.
Potentially a 3d printed case might help?

These are exactly my thoughts--I think I was going to file a bug but forgot.

Would it be possible to use two Type-C sockets, and then maybe house the device in a small extruded aluminum case as shown?

Unfortunately, I don't think two sockets will work. If you are using something that requires e-marked cables, I think (based on my understanding of the PD spec) that will just garble the communication since there's only SOP' and SOP'' to address the markers. Also, if you are using something like Thunderbolt, two cables plus the PD sniffer PCB might exhaust the entire link budget. I am very interested in using it for both of these applications.
The latter reason also excludes e.g. having two connectors with a mux picking between them, since you cannot pick a mux that handles every conceivable altmode. The board has to stay passive and functional with only a single cable involved, or it will lose a lot of its usefulness.
I think a sturdy case, 3d printed or not, is the way to go. I expect some boards will break during use, but... it's not a complex or expensive board (now that we aren't using Google's absurd design rules) so it's not a huge loss. In any case, plugging suspicious type-C stuff into a type-C debugger directly electrically interfacing the lines is inherently hazardous. We don't even have protection from having 20V on the CC lines; anyone using this sniffer ought to buy them in pairs!

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.
It appears that this might be the correct cable, but I cannot tell as their data sheets seem to not match well with their product's pages.
https://www.wit-area.com/20v-5A-100w-USB-C-cable-63.html
If these are not exactly what you need they might have a different version that I couldn't find exact details from their data sheets.  It seems pretty hard to find these online and listed.
If you wanted two receptacles then you would want to get a cable like this one from Acroname.
https://acroname.com/store/c38-usbc-uoc
This is the problem that Acroname had to solve for their passive USB-C switch.
https://acroname.com/store/s85-rdvr-usbcsw?sku=S85-PASS-USBCSW
With all this I agree with @whitequark that the plug with an enclosure would work reasonably well.  Especially with a connector that has some mechanical stability designed in.  e.g. the JAE DX07P024MJ1R1500
this connector can get some metal attached to the shell and get firmer mounting to the PCB or enclosure.
Note: it is super easy to break un-reinforced type-c plugs off of boards.  The pads alone don't have enough adhesion to retain the connectors.

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.
It appears that this might be the correct cable, but I cannot tell as their data sheets seem to not match well with their product's pages.
https://www.wit-area.com/20v-5A-100w-USB-C-cable-63.html
If these are not exactly what you need they might have a different version that I couldn't find exact details from their data sheets.  It seems pretty hard to find these online and listed.
If you wanted two receptacles then you would want to get a cable like this one from Acroname.
https://acroname.com/store/c38-usbc-uoc
This is the problem that Acroname had to solve for their passive USB-C switch.
https://acroname.com/store/s85-rdvr-usbcsw?sku=S85-PASS-USBCSW
With all this I agree with @whitequark that the plug with an enclosure would work reasonably well.  Especially with a connector that has some mechanical stability designed in.  e.g. the JAE DX07P024MJ1R1500
this connector can get some metal attached to the shell and get firmer mounting to the PCB or enclosure.
Note: it is super easy to break un-reinforced type-c plugs off of boards.  The pads alone don't have enough adhesion to retain the connectors.

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.

This seems like it would be very hostile to DIY. Is that microcoax on the cable you linked? I think that would be a problem for many people, myself included.

If you wanted two receptacles then you would want to get a cable like this one from Acroname.

This is more reasonable but I think it's still kinda hostile to DIY; not only you need to get a custom device (which we can maybe get to be easily orderable through e.g. JLCPCB) but now you also need a custom cable with very few suppliers which is also not easy to find a second source for.
(Thanks for bringing it to my attention though!)

Note: it is super easy to break un-reinforced type-c plugs off of boards. The pads alone don't have enough adhesion to retain the connectors.

That's how I felt about it, too. Guess I'm going to be even more careful now that you've confirmed it!

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.

This seems like it would be very hostile to DIY. Is that microcoax on the cable you linked? I think that would be a problem for many people, myself included.

If you wanted two receptacles then you would want to get a cable like this one from Acroname.

This is more reasonable but I think it's still kinda hostile to DIY; not only you need to get a custom device (which we can maybe get to be easily orderable through e.g. JLCPCB) but now you also need a custom cable with very few suppliers which is also not easy to find a second source for.
(Thanks for bringing it to my attention though!)

Note: it is super easy to break un-reinforced type-c plugs off of boards. The pads alone don't have enough adhesion to retain the connectors.

That's how I felt about it, too. Guess I'm going to be even more careful now that you've confirmed it!

There are different options for board edge midplane USB-C plugs,  The DX07P024MJ1 from JAE has extra mechanical strength by having the shell extend back to get better leverage and mechanical durability as the connectors pins are now not the mounting point.

Generated with a SnapEDA footprint modified to work with the USB-Plug footprint.
Steps to reproduce:

Download DX07P024MJ1
Add to library
Edit all shield pads to signal S1
Add step file to footprint with z offset of -0.05mm
Replace existing plug footprint with JAE footprint.
A touch of layout and outline work.

I'm on Nightly and don't know KiCad 5, so not sure about submitting a branch with the modifications.

There are different options for board edge midplane USB-C plugs,  The DX07P024MJ1 from JAE has extra mechanical strength by having the shell extend back to get better leverage and mechanical durability as the connectors pins are now not the mounting point.

Generated with a SnapEDA footprint modified to work with the USB-Plug footprint.
Steps to reproduce:

Download DX07P024MJ1
Add to library
Edit all shield pads to signal S1
Add step file to footprint with z offset of -0.05mm
Replace existing plug footprint with JAE footprint.
A touch of layout and outline work.

I'm on Nightly and don't know KiCad 5, so not sure about submitting a branch with the modifications.

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.

This seems like it would be very hostile to DIY. Is that microcoax on the cable you linked? I think that would be a problem for many people, myself included.

I would expect the cable to be shielded twisted pair (STP).  I agree that terminating shielded twisted pair is not DIY friendly, it would require good magnification.  Terminating micro-coax is at the high end of difficult DIY.

If you wanted to move away from a PCB mount plug then the other option is to use a captive cable.

This seems like it would be very hostile to DIY. Is that microcoax on the cable you linked? I think that would be a problem for many people, myself included.

I would expect the cable to be shielded twisted pair (STP).  I agree that terminating shielded twisted pair is not DIY friendly, it would require good magnification.  Terminating micro-coax is at the high end of difficult DIY.

To be explicit about my goals, I want to have a device that would reduce USB-related frustration, so I'm strongly biased towards solutions that are, perhaps, suboptimal, but do not require specialized skills, or even skills most people could probably acquire quickly but are afraid of (like BGA soldering for example). I think there is a space for a more complex PD debugger that is also more capable, but I'd really like to fill a baseline need first.

To be explicit about my goals, I want to have a device that would reduce USB-related frustration, so I'm strongly biased towards solutions that are, perhaps, suboptimal, but do not require specialized skills, or even skills most people could probably acquire quickly but are afraid of (like BGA soldering for example). I think there is a space for a more complex PD debugger that is also more capable, but I'd really like to fill a baseline need first.

... plugging suspicious type-C stuff into a type-C debugger directly electrically interfacing the lines is inherently hazardous. We don't even have protection from having 20V on the CC lines; anyone using this sniffer ought to buy them in pairs!

Is there an easy way to add 20V protection? I notice this is a common feature on some of the integrated PD controllers.
I guess at a minimum we should try to ensure a 20V fault can't propagate back through the USB 2.0 interface.

... plugging suspicious type-C stuff into a type-C debugger directly electrically interfacing the lines is inherently hazardous. We don't even have protection from having 20V on the CC lines; anyone using this sniffer ought to buy them in pairs!

Is there an easy way to add 20V protection? I notice this is a common feature on some of the integrated PD controllers.
I guess at a minimum we should try to ensure a 20V fault can't propagate back through the USB 2.0 interface.

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electronic_eel

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electronic_eel

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electroniceel

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electroniceel

A very quick search shows some integrated solutions, that at-least cover CC/SBU pins.
NX20P0407, or TPD8S300

A very quick search shows some integrated solutions, that at-least cover CC/SBU pins.
NX20P0407, or TPD8S300

Oh neat, I knew about TPD4 but not TPD8

Oh neat, I knew about TPD4 but not TPD8

24 pin Type-C connectors sorted for my opinion of easiest soldering:
Plugs:

Vertical PCB mount: DX07VN24WA2

👍  All 24 pins exposed, has through hole pins to assist in alignment.
👎  This causes the board to mount funny to ports.

Mid plane board edge mount, with physical reinforcement:  DX07P024MJ1

👍 has mechanical side supports to help the connector from breaking free of board.
👍 Side supports can be soldered in place to help align the fine pitch SMT pads.
👎 low connector break off resistance, should have a case or other support bracket.
(Note: no vendor linkable photo.)

Existing connector style

:+1: most common style
:-1: very fragile, depends on external mechanical hardware to prevent ripping off SMT pads.

Receptacles.

Through hole style: usb4085

:+1: Solderable with fine tip and small solder.
:+1: in KiCad library

SMT & through hole mid-plane with mechanical retention: CX70M-24P1

:+1: very robust mounting
:+1: can hand solder
:-1: harder to reflow solder (solder in pin tuning)

Current Dual row SMT pads:

:-1: impossible to hand solder. (I feel that this alone should disqualify the part for DIY)

24 pin Type-C connectors sorted for my opinion of easiest soldering:
Plugs:

Vertical PCB mount: DX07VN24WA2

👍  All 24 pins exposed, has through hole pins to assist in alignment.
👎  This causes the board to mount funny to ports.

Mid plane board edge mount, with physical reinforcement:  DX07P024MJ1

👍 has mechanical side supports to help the connector from breaking free of board.
👍 Side supports can be soldered in place to help align the fine pitch SMT pads.
👎 low connector break off resistance, should have a case or other support bracket.
(Note: no vendor linkable photo.)

Existing connector style

:+1: most common style
:-1: very fragile, depends on external mechanical hardware to prevent ripping off SMT pads.

Receptacles.

Through hole style: usb4085

:+1: Solderable with fine tip and small solder.
:+1: in KiCad library

SMT & through hole mid-plane with mechanical retention: CX70M-24P1

:+1: very robust mounting
:+1: can hand solder
:-1: harder to reflow solder (solder in pin tuning)

Current Dual row SMT pads:

:-1: impossible to hand solder. (I feel that this alone should disqualify the part for DIY)

If something more fancy is done for the USB 2.0 data lines requiring protection.  Then 20V protection could be integrated with a TS5USBC41 Unfortunately it is a DSBGA package. :-/
The NXP part above also has a sibling part for USB 2.0 protection NX20P0408.  Unfortunately it is also WLCSP12.

If something more fancy is done for the USB 2.0 data lines requiring protection.  Then 20V protection could be integrated with a TS5USBC41 Unfortunately it is a DSBGA package. :-/
The NXP part above also has a sibling part for USB 2.0 protection NX20P0408.  Unfortunately it is also WLCSP12.

So thinking a bit more about this, it shouldn't matter about the SS and USB2 pins being unprotected. Since we're just passively connecting them through. It will be upto the downstream device to have adequate protection.
Unless we really want to add protection.
I think we'll stick with a style of mid-plane connector, whether that has the extra tabs or not. And also develop an enclosure for the device, for adding rigidity. It could be cool to do a milled case, but we'll also need to have a design for FDM printing for DIY cases.
Is it possible to get 100% THT full featured 24pin USB-Receptacles? The one you linked is only USB-2.0 pins.
The dual row SMT means you are required to use solder-paste/reflow. IMO, they're the best option automated assembly, as it removes the need for THT soldering.
I'll look into SMT+THT as an option.

So thinking a bit more about this, it shouldn't matter about the SS and USB2 pins being unprotected. Since we're just passively connecting them through. It will be upto the downstream device to have adequate protection.
Unless we really want to add protection.
I think we'll stick with a style of mid-plane connector, whether that has the extra tabs or not. And also develop an enclosure for the device, for adding rigidity. It could be cool to do a milled case, but we'll also need to have a design for FDM printing for DIY cases.
Is it possible to get 100% THT full featured 24pin USB-Receptacles? The one you linked is only USB-2.0 pins.
The dual row SMT means you are required to use solder-paste/reflow. IMO, they're the best option automated assembly, as it removes the need for THT soldering.
I'll look into SMT+THT as an option.

Whoops, I though it was 24 contacts to the board. Appears that when I searched and it showed up as a 24 pin part, I misinterpreted as 24 contacts wired in.
The enclosure would make the mounting strength issues less important.  Also I bet liberal amounts of glue  would work as well for those without printers and the like.

Whoops, I though it was 24 contacts to the board. Appears that when I searched and it showed up as a 24 pin part, I misinterpreted as 24 contacts wired in.
The enclosure would make the mounting strength issues less important.  Also I bet liberal amounts of glue  would work as well for those without printers and the like.

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electroniceel

For the CC lines you could do it like I have planned for my Glasgow protection addon: https://github.com/electroniceel/io-protection-notes
Unfortunately I haven't continued to work on this since I started doing other Glasgow-related work. So this is more in the state of a design concept and not a fully tried and tested schematics you can just copy and it works.

Is there an easy way to add 20V protection?

Maybe pass FETs? Paging @electroniceel

For the CC lines you could do it like I have planned for my Glasgow protection addon: https://github.com/electroniceel/io-protection-notes
Unfortunately I haven't continued to work on this since I started doing other Glasgow-related work. So this is more in the state of a design concept and not a fully tried and tested schematics you can just copy and it works.

If something more fancy is done for the USB 2.0 data lines requiring protection. Then 20V protection could be integrated with a TS5USBC41 Unfortunately it is a DSBGA package. :-/
The NXP part above also has a sibling part for USB 2.0 protection NX20P0408. Unfortunately it is also WLCSP12.

Protecting D+/D- from >20 V is the really tricky part and these seem to do it. Nice. I didn't know there was an IC that could do it.
Since these are really small, we could consider adding them to the regular Glasgow ports. They don't protect from negative voltages and don't cover Vio, but they'd still make regular Glasgow much more resilient.
Only real downside are the packages.
I will order some samples and play with them a bit.

If something more fancy is done for the USB 2.0 data lines requiring protection. Then 20V protection could be integrated with a TS5USBC41 Unfortunately it is a DSBGA package. :-/
The NXP part above also has a sibling part for USB 2.0 protection NX20P0408. Unfortunately it is also WLCSP12.

Protecting D+/D- from >20 V is the really tricky part and these seem to do it. Nice. I didn't know there was an IC that could do it.
Since these are really small, we could consider adding them to the regular Glasgow ports. They don't protect from negative voltages and don't cover Vio, but they'd still make regular Glasgow much more resilient.
Only real downside are the packages.
I will order some samples and play with them a bit.

I bought some Type-C plug breakout boards with the JAE DX07P024MJ1, they are much more stable than other SMT midmount options.

I would use this in my lab without a case.

I bought some Type-C plug breakout boards with the JAE DX07P024MJ1, they are much more stable than other SMT midmount options.

I would use this in my lab without a case.

Some thoughts:

Twinkie is already 20V tolerant on CC as long as you are only sniffing (Q1 provides that protection).  If you start transmitting into 20V, you'll probably blow the low side of Q2/Q3.
The Google design is stupid expensive because we only had access to really weak prototype plug connectors and wanted to minimize the torque on that connector, so we basically crammed everything as tight as we could (Twinkie was made during early development of the USB-C spec).  This is actually well beyond the tech most of our Chromebooks are built to.
Keeping one side of the Type-C plug narrow is useful to ensure you can fit two next to each other on a hub or other minimally-spaced multi-port machine.  This makes the panel mount connector less attractive, as you've noted.
The mounting side lobes on some plug connectors are good for pull resistance, but still not great for the up-and-down torque you get from having essentially a 2-inch long connector.  The only way to make that better other than doing radical things is to find a connector that works with a thicker board...
Twinkie had a molded plastic case in two halves, glued together -- this did not provide adequate strain relief on the plug.  3D printed might work if you can keep the plug end as a single piece, with tight tolerances on the plug hole.  Maybe a bucket-style case you can slide the freshness into before sealing it off at the end...just like a real Twinkie :)
If you want to go really robust without needing a case, Antenk has some vertical-mount SMT connectors, both plug and receptacle, that are low-profile.  I've played with them a little for low-speed stuff; they seem alright and let you make a much thicker board.  I haven't tested them for SI.  You can put the connectors just above each other vertically, on opposite sides of the board, and have very short traces, with the sniffing sections flagging up vertically.  It'll be a bizarre form-factor but might work well.  Main downside is that those connectors are pretty much impossible to hand-solder.  U3.1MS04-S-L-P-G0-D for the plug and U3.1FM02-S-L-P-G0-D for the receptacle.

Thanks for these insights @dnschneid!

FWIW, I solved this in an unconventional way in the Twonkie: I'm using vertical-mount connectors and using them as straddle mounts (or rather, touch-the-board-edge mounts). This requires some minor physical modification to the connectors (removing some mounting features that are in the way and slightly bending the pins for better contact) but it worked like a charm on two specimens so far, much easier to get right than I expected, and since I solder the shell to the PCB surrounding the connector it's also rock solid mechanically.

I was a little afraid that the little stubs created by the pins would cause problems on the high speed links but both boards I built so far support TB3 20Gb/s links just fine.
Of course this is not suitable for automated assembly but it works pretty well for DIY.


On browsing, "You do not have permission to view"

When I get to the "browse" step, instead of seeing the web app, I get a plain page with:
"You do not have permission to view this directory or page."
is there a permissions step missing somewhere?
best wishes.

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

ID: f6e39b7e-89ef-65ea-8174-6739e50da1b4
Version Independent ID: e56882ab-0817-45d2-8526-8647f2ef9f6d
Content: QuickStart: Create a static HTML web app - Azure App Service
Content Source: articles/app-service/quickstart-html.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@vml-aledonne
Thanks for your feedback! We will investigate and update as appropriate.

In this quick start, you're creating a Linux based app service. I've gotten that message as well, but when I get that message, I simply refresh the page and the content is viewable. The reason being, Linux based apps on initial startup, the base image has to be pulled and configured before it can accept requests.


Crash after selecting “add sub to home screen” then returning to Slide

Steps to reproduce:
-Open Slide
-Click three dot menu > add to home screen
-Click “back to slide” in top left corner of Safari
-Attempt to interact with Slide
-Slide is unresponsive and crashes after a few seconds

Fixed!


added vars form mfa and aws regioning, clarified doc, updated tf provider version

Hi @JamesWoolfenden - hope you're well 😄
Clearly I've got nothing better to do on holiday...
I've had a few challenges in getting this up and running with the latest version of TF. I've put the changes in a PR and was hoping they'd help with maintaining the package. Sorry if I've missed any TF conventions or if values would've overridden and I've missed something.
Proposed Changes

Clarification re remote_state.tf key and how to continue with application-service-per-folder iac. I could re-structure to use "${var.common_tags.application}/${var.common_tags.module}/terraform.tfstate" or document it similar?
Corrected the casing on common_tags in the readme.
Needed to do an update for 0.12.x tf syntax changes - no interpolation, version => required_version, etc. Do we/can we lock down the tf version anywhere?
AWS Provider region was set to eu-west-1, have abstracted to optional variable.
Optional s3 mfa deletion. This has been impossible to coordinate and get working with a remote team. I realise this may very well just be my use case though so totally open to removing it from the PR.

Also I'm not sure how to do a specific version bump in travis? I was thinking 0.3.0 (semver-minor) as it's a breaking change but not to the module API.
Hopefully this makes the cut 🙌Thanks!

Merge fails on perms, will cherry pick

Ive had to role these in elsewhere, thanks for the update.


Sync more of upstream, style improvements.

This PR introduces syncs the rest of upstream changes, and introduces various style improvements.
Highly recommended to review commit-by-commit; each one contains a single logical change.
See commit messages for full details.
As a result of this PR, the diff between match.go and contents of cmd/go code at tip is reduced to the minimal possible: just converting some funcs to be methods that use c.BuildContext instead of buildContext. Here's the diff:
--- real-cmd-go.go	2016-07-09 20:21:24.000000000 -0700
+++ match.go	2016-07-09 20:10:51.000000000 -0700
@@ -26,7 +26,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-package main
+package gotool

 import (
 	"fmt"
@@ -39,6 +39,8 @@
 	"strings"
 )

+// This file contains code from the Go distribution.
+
 // matchPattern(pattern)(name) reports whether
 // name matches pattern. Pattern is a limited glob
 // pattern in which '...' means 'any string' and there
@@ -56,7 +58,7 @@
 	}
 }

-func matchPackages(pattern string) []string {
+func (c *Context) matchPackages(pattern string) []string {
 	match := func(string) bool { return true }
 	treeCanMatch := func(string) bool { return true }
 	if !isMetaPackage(pattern) {
@@ -67,12 +69,12 @@
 	have := map[string]bool{
 		"builtin": true, // ignore pseudo-package that exists only for documentation
 	}
-	if !buildContext.CgoEnabled {
+	if !c.BuildContext.CgoEnabled {
 		have["runtime/cgo"] = true // ignore during walk
 	}
 	var pkgs []string

-	for _, src := range buildContext.SrcDirs() {
+	for _, src := range c.BuildContext.SrcDirs() {
 		if (pattern == "std" || pattern == "cmd") && src != gorootSrc {
 			continue
 		}
@@ -108,7 +110,7 @@
 			if !match(name) {
 				return nil
 			}
-			_, err = buildContext.ImportDir(path, 0)
+			_, err = c.BuildContext.ImportDir(path, 0)
 			if err != nil {
 				if _, noGo := err.(*build.NoGoError); noGo {
 					return nil
@@ -123,7 +125,7 @@

 // importPathsNoDotExpansion returns the import paths to use for the given
 // command line, but it does no ... expansion.
-func importPathsNoDotExpansion(args []string) []string {
+func (c *Context) importPathsNoDotExpansion(args []string) []string {
 	if len(args) == 0 {
 		return []string{"."}
 	}
@@ -146,7 +148,7 @@
 			a = path.Clean(a)
 		}
 		if isMetaPackage(a) {
-			out = append(out, allPackages(a)...)
+			out = append(out, c.allPackages(a)...)
 			continue
 		}
 		out = append(out, a)
@@ -155,15 +157,15 @@
 }

 // importPaths returns the import paths to use for the given command line.
-func importPaths(args []string) []string {
-	args = importPathsNoDotExpansion(args)
+func (c *Context) importPaths(args []string) []string {
+	args = c.importPathsNoDotExpansion(args)
 	var out []string
 	for _, a := range args {
 		if strings.Contains(a, "...") {
 			if build.IsLocalImport(a) {
-				out = append(out, allPackagesInFS(a)...)
+				out = append(out, c.allPackagesInFS(a)...)
 			} else {
-				out = append(out, allPackages(a)...)
+				out = append(out, c.allPackages(a)...)
 			}
 			continue
 		}
@@ -176,8 +178,8 @@
 // under the $GOPATH directories and $GOROOT matching pattern.
 // The pattern is either "all" (all packages), "std" (standard packages),
 // "cmd" (standard commands), or a path including "...".
-func allPackages(pattern string) []string {
-	pkgs := matchPackages(pattern)
+func (c *Context) allPackages(pattern string) []string {
+	pkgs := c.matchPackages(pattern)
 	if len(pkgs) == 0 {
 		fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
 	}
@@ -187,15 +189,15 @@
 // allPackagesInFS is like allPackages but is passed a pattern
 // beginning ./ or ../, meaning it should scan the tree rooted
 // at the given directory. There are ... in the pattern too.
-func allPackagesInFS(pattern string) []string {
-	pkgs := matchPackagesInFS(pattern)
+func (c *Context) allPackagesInFS(pattern string) []string {
+	pkgs := c.matchPackagesInFS(pattern)
 	if len(pkgs) == 0 {
 		fmt.Fprintf(os.Stderr, "warning: %q matched no packages\n", pattern)
 	}
 	return pkgs
 }

-func matchPackagesInFS(pattern string) []string {
+func (c *Context) matchPackagesInFS(pattern string) []string {
 	// Find directory to begin the scan.
 	// Could be smarter but this one optimization
 	// is enough for now, since ... is usually at the
@@ -248,7 +250,7 @@
 		// as not matching the pattern. Go 1.5 and earlier skipped, but that
 		// behavior means people miss serious mistakes.
 		// See golang.org/issue/11407.
-		if p, err := buildContext.ImportDir(path, 0); err != nil && (p == nil || len(p.InvalidGoFiles) == 0) {
+		if p, err := c.BuildContext.ImportDir(path, 0); err != nil && (p == nil || len(p.InvalidGoFiles) == 0) {
 			if _, noGo := err.(*build.NoGoError); !noGo {
 				log.Print(err)
 			}

LGTM, but wait for @kisielk because of the Move all exported symbols to tool.go change. I know that the old layout was a conscious choice by him, I want to know if he's fine with the new layout.

Okay, thanks for reviewing!

because of the Move all exported symbols to tool.go change. I know that the old layout was a conscious choice by him, I want to know if he's fine with the new layout.

That is surprising, given this comment in tool.go:
// Export functions here to make it easier to keep the implementations up to date with upstream.

And the fact that doing this simply follows that, and makes the diff of match.go vs cmd/go code much smaller than otherwise. It also makes it easier to keep the docs of ImportPaths and Context.ImportPaths.
But sure, no problem with waiting, these are just enhancements (aside from commit e1c9249005e65cae43376c189663e2a9d525e74b, which fixes a bug when using a non-default build.Context).

This one looks good to me. I looked at it, I promise :)

It looks like the change introduced in #8 makes gotool no longer compatible with Go 1.5 and older, because of the new InvalidGoFiles field in go/build.Package:
./match.go:253: p.InvalidGoFiles undefined (type *build.Package has no field or method InvalidGoFiles)
FAIL	github.com/kisielk/gotool [build failed]

Yeah, I just pushed a change to attempt to fix that...

Ok, my last commit seems to have fixed the build but there are conflicts in this PR now. @shurcooL can you update?

Will do.

PTAL.

Oh, and I just realized... InvalidGoFiles was added in Go 1.6, not 1.5. So we should change go15.go to be go16.go instead. I expect Travis will fail for 1.5.

Fixed. PTAL, again.


Add 100% test coverage to narrow_banner.js

Testing plan:
GIFs or screenshots:

This is great, merged, thanks @YashRE42!


conda环境的依赖项配置

conda install flask werkzeug bs4 lxml -y

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


response content of type json array fails at schema validation

When both content and schema are valid, the schema assertion fails

valid

Fixed


 Sometime, i need to destroy validetta. But couldn't find it on docs. Is there any way to destroy/ delete/ clear the instance?
Thanks!

Hi @bersujamu
This feature is not available for the moment. Now Im working on version 2. Probably this features are will be added in the version 2.1.
Thanks!

It can be followed #44.

I also need to destroy validetta before re-initialization, i have come across this article, but haven't been able to get it to work yet - but perhaps it will assist in building the feature?  http://ub4.underblob.com/remove-jquery-plugin-instance/

Update:
Actually, using the following (from the above link) seems to have destroyed the instances (or, more specifically, it has prevented validetta from running several times on form submit (as all the instances I created validated the form before it was sent)):
var destroyCrappyPlugin = function($elem, eventNamespace) {
    var isInstantiated  = !! $.data($elem.get(0));

    if (isInstantiated) {
        $.removeData($elem.get(0));
        $elem.off(eventNamespace);
        $elem.unbind('.' + eventNamespace);
    }
};

Called with:
// BEGIN destroy validetta
var $validetta_element = $("#my_selector");
destroyCrappyPlugin($validetta_element);
// END destroy validetta


Fix authentication (401) error in get_homegraph

Should fix #36

@ArnyminerZ, I have been thinking about it and i'm afraid it might not be fixing out local token authentication issue, just as @DurgNomis-drol mentioned. Sorry for confusion 😄  (i'll try explain better in the issue)
We should keep this fix because it is really important to cover access token failure as you do here 💯  It would be super good to have some tests on that but it might be hard to make them haha 😄

@ArnyminerZ, can you think of any good way we can test it before releasing? 😄

@ArnyminerZ, can you think of any good way we can test it before releasing? 😄

Well, I think that passing a virtual auth token to get_homegraph and trying to fetch from the server should return 401, but then solving the problem... It not clear, because it'd try to get a new token with invalid credentials, and blah, blah, blah.
So... It's quite a problem to test this... 🤔

Sounds gooood! I'll try putting a debugger there and fake token to see 401 returned and see if it will return the right token back....

Wohooo, the stuff in amazing, thanks @ArnyminerZ! 💥  🥳
I will try to test it manually in a bit and if all works - let's merge it in!

It actually didn't work. Providing the wrong access token result in log error:

ERROR:glocaltokens.client:Received unknown RPC error: code=StatusCode.UNAUTHENTICATED message=Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or othe
r valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

Apparently, it doesn't have 403 code there anymore. They have a value of it 16 which is probs their internal reference. So i have modified the check a bit and tested it to work :)

Just made a guess there, that's what tests are for 😄
Squashing 🔨  and merging 🚀


Add the license to a project.

Problem Description
Two other projects already have the MIT license. In light of this, wouldn't it be beneficial to also include a license for Thunder project

I removed the good first issue from the topic. Because some websites looks at github projects that are public and have issues marked with good first issue and lists these issues for other programmers to start with, often in open source projects. Maybe we can instead create our own tag with a similar name for the purpose of marking issues that can be good to start with as a first task?

If this is how GitHub behaves, it would be better to create our own tag for this issue. The question is more about whether we should just implement that or also create a new issue to create a new tag.

If this is how GitHub behaves, it would be better to create our own tag for this issue. The question is more about whether we should just implement that or also create a new issue to create a new tag.
It's not just github but also pages like https://goodfirstissue.dev/
Some more info here: https://www.freecodecamp.org/news/how-to-find-good-first-issues-on-github/

Created issue #19 to add our own Label to use instead of 'good first task'.

Two other projects already have the MIT license. In light of this, wouldn't it be beneficial to also include a license for Thunder project

Sounds good with me to use MIT license. Here are some instructions how to add the license.
https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository
Some help in choosing a license:
https://choosealicense.com/
Might have to check with any libraries and tools we are using. Do they have any restrictive licenses?
For this we can use the command mvn project-info-reports:dependencies which will generate a report under target/site with information about all our dependencies.


chore: bdd-ghfjxy-import-1587057925 to 0.0.1

chore: Promote bdd-ghfjxy-import-1587057925 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  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


Issues with DeleteMany

Hello,
I might have find a bug in the deleteMany function of prismock. So, imagine this is my Prisma model:
model Parent {
  id          Int    @id @default(autoincrement())
  child       Child?
}

model Child {
  id          Int      @id @default(autoincrement())
  parent      Parent   @relation(fields: [parentId], references: [id], onDelete: Cascade)
  parentId    Int      @unique
}

There are parent objects, that have a relation to child object, but there are also some that don't.
When I try to delete all parents without children, then nothing happens. For example, I have this test function:
  it('Delete parents without childs', async () => {
    const prismock = new PrismockClient();

    const parent = await prismock.parent.create({
      data: {
        id: 1
      },
      include: {
        child: true
      }
    });

    const deleted = await prismock.parent.deleteMany({
      where: {
        child: {
          is: null
        }
      }
    });

    // I can see the parent is still in the data, even though it shouldn't be
    const data = prismock.getData();

    // One parent should be deleted
    expect(deleted).toBe(1);
  });

The test fails, because 0 parents are deleted. The same is happening, when I remove the "include" statement during the creation of the parent entry. I'm fairly new to Prisma, so if I've done something fundamentally wrong, I apologize :)
prismock version: 1.29.0
Prims version: 5.9.1
Thank you very much,
Denny

Hello, thanks a lot for your submission, I'll have a look in the next few days

:tada: This issue has been resolved in version 1.30.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


feat(gui): Pin tabs

[x] Pin button replaces close button when pinned , clicking the button unpins the tab
[x] Pinned tab cannot be closed by any mean (Close, Close All, Close All Right, Close Others)
[x] Pin action automatically places pinned tab at index 0 (inspired from intellij)
[x] The state of being pinned is saved along "Save project"
[x] Frame for displaying pinned tabs

I think I need to ask you before implementing the last change. It would be hidden by default, and opened through View > Pinned Tabs. Please see below image. I'm waiting for confirmation

My draft for pinned tabs frame

Edit:
The pinned tabs frame can also serve to display other kinds of tabs like bookmarked tabs, so once it's ready, I can PR bookmarks feature (#1078), and rename the frame to "quick tabs frame" or something similar

closes #1809
closes #847
closes one of the suggestions from #1684
Icons from: https://intellij-icons.jetbrains.design/

And, for such optional panels, using some kind of dockable framework will be great (ModernDocking looks quite active), but this will be a huge task to do 😭

I think this deserves to be a seperate PR. ModernDocking seems to support split panels and tabbed panees.
So if we start using ModernDocking, it's better to migrate other components like code split view, jnode tabbed pane, etc to preserve consistency of the codebase and the gui look.
So I'll implement this feature temporarily using normal swing framework, and then it shouldn't be difficult to migrate it to ModernDocking alongside other gui components.

@Mino260806 thank you! Great work :+1: