Difference version npm between UIX and RP3B+

Describe Your Problem:

Homebridge-UI-X show a difference of npm version. I don't understand why.
On UI-X it's show v5.6.0 (see capture) whereas i'm think ti be at v6.14.5
Logs:

Homebridge Config:
{
    "bridge": {
        "name": "Homebridge",
        "username": "xxxxxx",
        "port": 51826,
        "pin": "xxxxx"
    },
    "accessories": [
        {
            "name": "Salon",
            "address": "A4:C1:38:09:19:0E",
            "temperatureName": "Temperature",
            "humidityName": "Humidité",
            "fakeGatoEnabled": false,
            "timeout": 15,
            "forceDiscovering": true,
            "forceDiscoveringDelay": 2500,
            "disableBatteryLevel": false,
            "lowBattery": 10,
            "temperatureOffset": 0,
            "humidityOffset": 0,
            "bindKey": "xxxx",
            "accessory": "Hygrotermograph"
        },
        {
            "name": "Balcon",
            "address": "A4:C1:38:70:69:68",
            "temperatureName": "Temperature",
            "humidityName": "Humidité",
            "fakeGatoEnabled": false,
            "timeout": 15,
            "forceDiscovering": true,
            "forceDiscoveringDelay": 2500,
            "disableBatteryLevel": false,
            "lowBattery": 10,
            "temperatureOffset": 0,
            "humidityOffset": 0,
            "bindKey": "xxxxx",
            "accessory": "Hygrotermograph"
        },
        {
            "name": "Chambre Garçons",
            "address": "A4:C1:38:1B:01:90",
            "temperatureName": "Temperature",
            "humidityName": "Humidité",
            "fakeGatoEnabled": false,
            "timeout": 15,
            "forceDiscovering": true,
            "forceDiscoveringDelay": 2500,
            "disableBatteryLevel": false,
            "lowBattery": 10,
            "temperatureOffset": 0,
            "humidityOffset": 0,
            "bindKey": "xxxxx",
            "accessory": "Hygrotermograph"
        },
        {
            "name": "Chambre Parents",
            "address": "A4:C1:38:1B:01:90",
            "temperatureName": "Temperature",
            "humidityName": "Humidité",
            "fakeGatoEnabled": false,
            "timeout": 15,
            "forceDiscovering": true,
            "forceDiscoveringDelay": 2500,
            "disableBatteryLevel": false,
            "lowBattery": 10,
            "temperatureOffset": 0,
            "humidityOffset": 0,
            "bindKey": "xxxx",
            "accessory": "Hygrotermograph"
        }
    ],
    "platforms": [
        {
            "platform": "Hue",
            "users": {
                "001788FFFEAE5B16": "xxxxx"
            },
            "lights": true
        },
        {
            "name": "Config",
            "port": 8080,
            "auth": "form",
            "theme": "dark-mode",
            "tempUnits": "c",
            "lang": "auto",
            "sudo": true,
            "platform": "config",
            "log": {
                "method": "systemd",
                "service": "homebridge"
            }
        }
    ]
}

Screenshots:

Environment:

Node.js Version:  v12.16.3
NPM Version:   v6.14.5
Homebridge Version:  1.1.0
Homebridge Config UI X Version: 4.20.0
Operating System: Raspbian
Process Supervisor:  Systemd

Can you hover of the "npm version"  text for a couple seconds? It will show you the npm PATH.
Compare that to the output of which npm at the command line.

Oh many thanks !
On UI-X, it's : /usr/local/lib/node_modules
And or PI :
pi@raspberrypi:~ $ which npm /usr/bin/npm
Could you help me with this issue or indicate me an URL treat this pb ?

So you have two copies of npm installed.
One here: /usr/local/lib/node_modules/npm
And here: /usr/lib/node_modules/npm
You probably want to remove /usr/local/lib/node_modules/npm as that's the older version I think.

many thks !

Sorry but I found nothing to erase the older version of npm... do you have an idea ?

What do you mean, you "found nothing to erase the older version"?
sudo rm -r /usr/local/lib/node_modules/npm

But i would create a backup beforehand, just in case like this cp -r /usr/local/lib/node_modules/npm $PWD
You never know.

Just what I needed, sorry for my newbie questtion


Alexa Display Templates ASCII character Error

I'm submitting a...

[ x] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Expected Behavior
Alexa Display Templates
https://www.jovo.tech/docs/amazon-alexa/visual-output#body-templates
Getting error with & sign , this is not problem with standard this.tell   or this.ask  , I had to change my speech output to AND  vs. &  .
Current Behavior
I get an error when have ampersand & symbol is in display text and speech output.

Hey @soltrinox
yeah, it works for tell, but it's a workaround in the toSSML method. It always replaces & to AND for every language, which is bad. We need a more generic way. I will keep that in mind for v2.
A quick workaround for now would be to replace it on your own.  text.replace(/&/g, 'and')

Closing this due to inactivity.


Update description of loss/metric handling

Update descriptions in Readme.md and in notebook text cells.

Addressed by PR #36


Talisman Esoterica AE-Like RE is generating an error

It is trying to upgrade a null value. Changing it to override fixes it.

https://github.com/foundryvtt/pf2e/issues/16039#issuecomment-2289508089

I can't think of a good way to change this on the crafting system side. We could pre-fill the maxItemLevel, however the default maxItemLevel is actually actor level, so upgrade isn't correct. The feat has to change.
maxItemLevel supports resolvables, so the AELike is completely unnecessary.

https://github.com/foundryvtt/pf2e/issues/16039#issuecomment-2289508089

because it worked so well last time, after multiple revision, you ended up rejecting it :3

https://github.com/foundryvtt/pf2e/issues/16039#issuecomment-2289508089

quite funny you would use that when you ended up rejecting the pr you asked me to make there :3

quite funny you would use that when you ended up rejecting the pr you asked me to make there :3

I believe in you! <3


Refactor list of known CVEs

This PR changes the list of bugs to a table and also adds links to additional resources where possible.

Thanks! I agree it looks nicer and that was quite an effort tracking the links for various vulns.
I see you also added CVE-2019-15293, but the credit information on that one might be incorrect, at least judging by the blog post author. I generally reach out to finders to see whether they are OK with being added on the list and how they'd like to be credited. So I suggest either leaving that one out for now or reaching out to the blogpost author to confirm the credits.

I linked the blog post because it has more information, however, the original report is here listed among the other bugs.

I'd still like to confirm the credits before including.
@expend20 could you maybe comment quickly if CVE-2019-15293 credits are correct in this PR?

Note that based on @expend20's tweet from a week ago, he is the blog author.

Sorry, I didn't see this thread :(
I don't see any reasons why it could be wrong, so it's ok as for me, why not?

Just wanted to confirm as that CVE wasn't listed before for some reason. Thanks! Merging.

@sgabe fyi: there is actually another blog post about all other ones found by me in that table

Just wanted to confirm as that CVE wasn't listed before for some reason. Thanks! Merging

Yeah, but what's the point in listing every new one? Those were my first ones so I felt excited + PR for the company which I was working in back in these days :)


How to check if a summoner is or has been recently online?

Hi, I know that this is not really an issue but wanted to know if there is a way to check if the summoner is playing now? I saw this website called lolnexus.com where you type the summoner and its region and they display the match list. I think that this could be achieved with the Spectator V3 endpoint but I am not so sure. Could you please give me some hint? Will appreciate it! Thanks!

https://github.com/ChauTNguyen/kindred-api/wiki/SPECTATOR-V3#get-current-game-information-for-the-given-summoner-id
It is possible! That endpoint returns a 404 if a user is not in a game. In addition, my library returns only status codes for 404s. This means that it is easily possible to write something that does something depending on whether they're in a game or not. Here's an example:
k.CurrentGame.get({ name: 'Contractz' }, function (err, data) {
  if (err === 404) {
    console.log('User is not in a game!')
  } else {
    console.log('User is in a game!')
  }
})

Great! That was the thing I was looking for :) Again great info!


add browse command

Hi,
This pr adds browse command, to open current repository in browser.
you may use it like: bb browse

It's a good shortcut. Thanks.


Feature Request - Support for font ligatures

I use FiraCode font which has some nice ligatures. Would be great if they worked in Terminus.

Allowing use of any font installed on the system would be fantastic

This is now controlled by the terminal.ligatures option in config.yaml! https://github.com/Eugeny/terminus/wiki/Config-file


Getting "Page not found" error while accessing "console"

Describe the issue:
After login to "console" with /develop/applications then click on "Manage" link in the top
OR
login with "/manage/users" then click on "Develop" link in the top
OR
login with "/manage/users" then click on "Manage" link in the top (itself)
Then it will navigate to an empty page with Page not found
How to reproduce:
add below configurations in deployment.toml
[console]
applications.admin_app.configs.path = "/manage/users"
applications.developer_app.configs.path = "/develop/applications"

access "https://localhost:9443/console/develop/applications" or "https://localhost:9443/console/manage/users"

Environment information :

Product Version: [wso2is-5.11.0-m32-SNAPSHOT]
OS: Mac]
Database: [H2]
Userstore: [ LDAP]
-Browser : [Firefox]

This issue currently working in the latest version, Tested beta (5.11) working as expected.


Verbose mode (-V) to be really verbose

The verbose mode doesn't seem to help for many of the commands.
It would be really helpful if the -V parameter would have some effect even on commands like search and info.

:+1: my bower is freezing on a step the output is exactly the same as without --verbose, not very helpful.

How many features are potentially affected by this enhancement request? Can this work be divided?

I think it can but it's probably better if someone takes this task, sugars logger.debug all over the place, and submits a PR :)

is this a WIP? cc @pertrai1

@thinkxl Not at this time on my end

@pertrai1 cool, thanks for the quick reply

Any updates here? It would also be great if there are time stamp for the logs.
Right now what I see with bower install -V is as below,
bower angular-route#^1.5.0                               not-cached art://angular/bower-angular-route#^1.5.0
bower angular-route#^1.5.0                                  resolve art://angular/bower-angular-route#^1.5.0
bower angular-sanitize#^1.5.0                            not-cached art://angular/bower-angular-sanitize#^1.5.0
bower angular-sanitize#^1.5.0                               resolve art://angular/bower-angular-sanitize#^1.5.0
bower angular-touch#^1.5.0                               not-cached art://angular/bower-angular-touch#^1.5.0
bower angular-touch#^1.5.0                                  resolve art://angular/bower-angular-touch#^1.5.0
bower angular-cookies#~1.5.0                             not-cached art://angular/bower-angular-cookies#~1.5.0
bower angular-cookies#~1.5.0                                resolve art://angular/bower-angular-cookies#~1.5.0
bower angularjs-imageupload-directive#*                  not-cached art://Mischi/angularjs-imageupload-directive#*
bower angularjs-imageupload-directive#*                     resolve art://Mischi/angularjs-imageupload-directive#*
What I expect is the time taken to install each bower component, typically like below,
01:15 bower angular-route#^1.5.0                               not-cached art://angular/bower-angular-route#^1.5.0
01:16 bower angular-route#^1.5.0                                  resolve art://angular/bower-angular-route#^1.5.0
This would help us in finding the accurate timeout value to be set to .bowerrc

Bower is deprecated and features like this one unfortunately won't be implemented


Does‘t support android studio 3.3.2

android studio 3.3.2 support kotlin 1.3.0 or higher，but plug version is 1.2.50,
I forced the kotlin version of the plugin to 1.3.0, the compilation could not pass.
please remove buildToolsVersion from build.gradle

Same issue

Please check if this can be internet issue. I mean due to slow internet proper packages might not be downloaded. I had this same error but after some time, with proper internet working on my laptop for building the project, it works....

I have the same problem and I can not solve it

First I put kotlin-gradle-plugin:1.2.51 as this and i got an error saying error in this file.
.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\build.gradle
In this file I edited as below. What I done is in here as comment.

buildscript {
ext.kotlin_version = '1.2.51' // change this to the version which have in our project build.gradle
repositories {
google()
jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1' //  change this to the version which have in our project build.gradle
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

}

After that I got an error in this file.
.pub-cache\hosted\pub.dartlang.org\map_view-0.0.14\android\src\main\kotlin\com\apptreesoftware\mapview
Then I changed the code as below.

Line 168: Change to val cameraDict = mapOptions!!["cameraPosition"] as Map<String, Any>
Line 171: Change to showUserLocation = mapOptions!!["showUserLocation"] as Boolean
Line 172: Change to showMyLocationButton = mapOptions!!["showMyLocationButton"] as Boolean
Line 173: Change to showCompassButton = mapOptions!!["showCompassButton"] as Boolean
Line 174: Change to hideToolbar = mapOptions!!["hideToolbar"] as Boolean
Line 175: Change to mapTitle = mapOptions!!["title"] as String
Line 177: Change to if (mapOptions!!["mapViewType"] != null) {
Line 178: Change to val mappedMapType: Int? = mapTypeMapping.get(mapOptions!!["mapViewType"]);

This method worked for me.
For more details check these https://github.com/apptreesoftware/flutter_google_map_view/issues/129#issuecomment-464087024
https://github.com/apptreesoftware/flutter_google_map_view/issues/140#issuecomment-443721165

ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.2.51 and higher. Project 'map_view' is using version 1.2.50.
Affected Modules: app
I want to know how to solve it.

ext.kotlin_version = '1.3.10'
repositories {
google()
jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

buildscript {
ext.kotlin_version = '1.3.10'
repositories {
google()
jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

}
ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher.
The following dependencies do not satisfy the required version:
project ':map_view' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.50
Affected Modules: app


souffle: 2.0.2 -> 2.2

Description of changes
Update souffle to 2.2. Here's a link to the changelog

This supercedes, and is largely based on, #135688
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg eval


Azure.Core 1.44.1 with bug on Dependency System.Memory.Data 6.0.0 for instruction BinaryData.Empty.ToString()

Unable to use NuGet package Azure.Core 1.44.1 with Dependency System.Memory.Data 6.0.0 on .NET 8 Application.
The previous version Azure.Core 1.43.0 with Dependency System.Memory.Data 1.0.2 is working well.
Suggestion: Update Dependency System.Memory.Data to version 8.0.1 for Azure.Core 1.44.1 NuGet package.
Steps to reproduce the bug:
Create a console app with .NET 8
Install NuGet package Azure.Core 1.44.1 (with Dependency System.Memory.Data 6.0.0)
Write this code line: string data = BinaryData.Empty.ToString();
Run...
You get: System.ArgumentNullException: 'Value cannot be null. (Parameter 'bytes')'

@m-redding, would it be possible to help understand this issue and advise?  Is the reported exception one of the known issues for BinaryData, and do we have a good workaround?  Thanks!

This is a duplicate of https://github.com/Azure/azure-sdk-for-net/issues/46444, you can look at the discussion there for more information. This is unfortunately a bug in the System.Memory.Data package, not Azure.Core. You can add a direct reference in your application to hoist the package to 8.0.1 and it will fix this problem


Support Private Github Repos

If I'm pulling a private Github repo into the playground, it works if my url for the package includes my github personal access token per https://docassemble.org/docs/development.html#githubprivate. If I just write my private package link, Docassemble can still query the appropriate branches, but it can't install them.

perhaps use the<EMAIL_ADDRESS>link instead -- that doesn't require the detail
GitHub packages have two "URLs." One is the one that begins with https://github.com.  The other is the one that looks like git@github.com:jhpyle/docassemble-somepackage.git.  You can find this "URL" using the "Code" button in GitHub when you are looking at a repository. You can use the latter format for cloning a private repo in the Playground "pull" interface.

We'll need to handle this in the setup script in puppeteer-utils.js. We'll need to parse out the GitHub repo info and replace it with that prefix and the suffix. This should supposedly work for public repositories as well.

Blocked by a docassemble bug that doesn't let you pull a private repo into an empty da Project. That's on the radar to be fixed, but we're not sure how long it will take. In the meantime there's this work around:

in the meantime you can get around it if you just create a "package" (doesn't matter what it's called or what it has in it), and then do the "pull."

I'm going to go ahead and do it because it's unclear when the patch will be out and we want people to be able to use this. It will slow down everyone's tests a fraction, but it's temporary.

Note: for a private repo, a developer needs to integrate the testing account with a GitHub account that has permissions for that repository.

Welp, the workaround we did is not necessary for updated docassemble servers:
https://docassemble.org/docs/changelog.html 1.3.9 - 2021-12-11

Fixed issue where GitHub SSH only worked during a Playground pull if there was an active package.

That said, not everyone is going to update to that for a while, so it may be worth keeping this temporary fix in place for now. Since one of our next steps will be to utilize the API for all this stuff, it may be worth just keeping this here and getting rid of it, along with other stuff, at v4.

1.3.9 commit that I believe created this API is at https://github.com/jhpyle/docassemble/commit/8b3ef3da4a1dfd2d91d9c1fdc390dbc84f4840f9#diff-4c8bf136c393acf44c18098d2b935b3a005636e57574530acffdf552432360faR18579. Should check how private repos are handled there.


Program of finding smallest element in an array using stack

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Description
(Write your answer here.)
Checklist

[ ] I've read the contribution guidelines.
[ ] I've checked the issue list before deciding what to submit.
[ ] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)

I have added my code in c++ folder but then why it is showing failed check in Java

closing


Update create project command

the update command for the current cli is
vue init webpack my-project
and not
vue create my-project

The dev branch is for @vue/cli 3.0, and its create command is available. To see it:
npx @vue/cli create --help

And there is still vue init webpack my-project in master branch, which is for vue-cli 2.0. Are you seriously?

It wasn't working on mine so I thought it was deprecated

😅

How can I delete this or now?


Support terraform init --reconfigure

We have a use case for a script (and occasionally by hand) that requires reconfiguring the terraform backend without copying state.
With terraform 0.9.4+, this can be accomplished by passing the --reconfigure flag to terraform init (See here).
It would be great if terragrunt exposed some cli flag that resulted in passing the --reconfigure flag to terraform init.  This could be done generically (e.g. --extra-init-argument xxxx) or specifically (e.g. --terragrunt-reconfigure-backend)
I can currently hack around this by calling terragrunt like this:
echo no | terragrunt --terragrunt-non-interactive plan

But that is not very elegant.
For reference, this is the prompt from terraform that passing --reconfigure will avoid.
Initializing the backend...
Backend configuration changed!

Terraform has detected that the configuration specified for the backend
has changed. Terraform will now reconfigure for this backend. If you didn't
intend to reconfigure your backend please undo any changes to the "backend"
section in your Terraform configuration.

Do you want to copy the state from "s3"?
  Would you like to copy the state from your prior backend "s3" to the
  newly configured "s3" backend? If you're reconfiguring the same backend,
  answering "yes" or "no" shouldn't make a difference. Please answer exactly
  "yes" or "no".

  Enter a value: no

Ah, good call. Supporting some sort of --terragrunt-init-arg XXX, where you can specify whatever you want for XXX, would make sense. PRs welcome!

Yeah, looks like 0.10 is adding an -upgrade flag as well.  A generic mechanism is probably best.

0.10.0 also added a several flags to the init command to control plugin installation.  Would be good if there were some way to use these.

Is there any plan to add this anytime soon.  The workaround of "echo no" listed above does not seem to work for me.

As of #261, you should be able to run terragrunt init and pass arguments to it, including --reconfigure. Is that not working for you?


Is it compatible with QLoRA?

Looking at this paper, it was impressive to see that we are increasing the length of context while maintaining GPU usage similar to LoRA. Is it compatible with QLoRA?

Hi,
Thanks for your question. I think it would be compatible. We will try to merge QLoRA in about 2 weeks. Thanks for your patience.
Regards,
Yukang Chen

Oh, that's great news! Can I ask you one more question? I understood that the 'replace_llama_attn function' works in 'llama_attn_replace.py' when fine tuning proceeds. In conclusion, the principle that works is that 'forward_flashattn' is 'transformers.models.llama.modeling_llama'.(https://github.com/dvlab-research/LongLoRA/blob/dc3508860ed20b2809772d08199cdd65868e599d/llama_attn_replace.py#L456) I'm wondering if "forward_flashattn" fucntion has all of the shift short attention function and flash attachment-2, which are the core feature of LongLoRA.
Thank you!!

Hi,
Yes. The code in forward_flashattn is the core. However, I need to clarify that for the code in  forward_flashattn, I modify it to fit the style of flash attention2, which might be a bit more difficult to understand than the code in forward_noflashattn.
forward_noflashattn also contains the shifting operation, but without flash attention 2. It is easier to understand.
Regards,
Yukang Chen

@yukang2017 which version of transformers do you recommend to use this with? It is not compatible with the latest transformers (there is an additional parameter added that the above monkey patch does not support).
I could only get it to work with transformers 4.31.0

Hi,
Thanks for your question. We originally develop this project in transformers==4.31.0
We update the code several days ago and test it on transformers==4.34.0 It also works. Please git clone again and try the new code. Thanks.
Regards,
Yukang Chen

Qlora似乎并不能直接使用lora+方法，因为lora+方法需要训练除了lora矩阵以外的其它参数。而因为量化的参数不能训练，需要手动将需要训练的参数转化为bf16精度，保存的时候也要手动保存这部分参数。

确实，而且flash-attention也和QLoRA不兼容，我还在调。

I think flash attn can work with QLORA, there is nothing different about this for LORA vs QLORA I think?
But yes, you need to manually convert the embed/norm layers into bf16 if you use that, but I think they can be trained/saved as normal even if the linear layers are quantized 4-bit for QLORA. Yes, it will need to be saved separately from the PEFT adapter, but that is true for the non-QLORA case also.

Hi,
We provide a version of QLoRA fine-tuning in the following. We are verifying its performance. We will report the performance of it latter.
https://github.com/dvlab-research/LongLoRA/blob/main/supervised-fine-tune-qlora.py
Regards,
Yukang Chen

Hi,
We evaluated the combination of QLoRA and LongLoRA on Llama-7b-chat fine-tuning. It works well. The fine-tuned lora weights are available at https://huggingface.co/Yukang/LongAlpaca-7B-qlora-weights
Regards,
Yukang Chen


Post call failing with 401

Before opening a new issue, please take a moment to review our community guidelines to make the contribution process easy and effective for everyone involved.
Description
Getting 401 for post calls from saga
Steps to reproduce
In my saga I am using below generator to make a post call and passing the right token, url and other details. Even same call is getting successful with postman.
export function* getCPSDetails() {
const requestURL = '';
const proposalID = yield select(makeSelectProposalID());
const payload = {
method: 'POST',
credentials: 'include',
mode: 'no-cors',
headers: {
'AuthenticationToken': '',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
"UserName": "",
"LocaleCode": "",
"AgreementNumber": "",
"ProposalID": ""
"ValidationType": ""
}),
};
(Add link to a demo on https://jsfiddle.net or similar if possible)
Expected behavior
should get a response
Screenshots
Response Headers
Access-Control-Allow-Origin: http://localhost:3000
Content-Length: 0
Date: Fri, 13 Dec 2019 11:39:49 GMT
Request-Context: appId=cid-v1:e8b53ae8-fd1d-4d01-a0c2-4662c2ad3d58
Server: Kestrel
WWW-Authenticate: Bearer
X-Powered-By: ASP.NET
Request Headers
Accept: application/json
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 136
Content-Type: text/plain;charset=UTF-8
Host: xxxxxxxserviceuat.azurewebsites.net
Origin: http://localhost:3000
Referer: http://localhost:3000/
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Versions

React-Boilerplate:v4.0.0
Node/NPM:v8.15.1
Browser:Chrome

Getting similar issues here

This doesn't look like a boilerplate issue. It can be literally any reason depending on your both client and server configuration.
My personal guess, the problem is with the OPTIONS request (PREFLIGHT).  That might cause 401 if OPTIONS request does not include token or since its cross origin request server might reject auth simply. Check your configurations. If the problem is really the actual request and not related to CORS or PREFLIGHT then we can open the issue again if you can provide a sample repository reproducing the error.


build(flux): update flux to v0.151.1

Closing in favour of https://github.com/influxdata/influxdb/pull/23190


problem with specific version of numpy

Setup.py specifies exact version of numpy.
'numpy==1.19.5'

is there a strong reason why? It causes problems with the conflict resolution and cannot be installed on python 3.10+ because that is not compatible with the numpy-1.19.5 at all.
Can we have instead this boundary?
'numpy>=1.19.5'

The reason for exactly 1.19.5 being specified is that I was attempting to maintain minimal support for python 3.6 as pyvisa does. It appears that numpy > 1.19.5 is not compatible with python 3.6 & 3.7 but if you specify >=1.19.5 and it is python 3.6, the latest numpy will attempt to be installed and it will fail.
However, I discovered that I can specify ==1.19.5 for python <3.8 and >=1.19.5 for python >= 3.8, which is what I did.
I also fixed an issue where I specified pyvisa-py>=0.5.1 but 0.5.1 has since been yanked since I last edited this and produces warnings/errors when installing. That should be fixed now by specifying pyvisa-py>=0.5.2.
Try it out and let me know how it works.


Standardize API and use deprecations

Functions are constantly being renamed, changed etc and it's better to have a constant API that contains deprecations which notify the user when certain functions will no longer be used.

I think this will only really be applicable when PyUnity gets into the 1.x series, as right now nothing is permanent.


Simple but impactful issue - the Flutter Firestore library has a push_id_generator.dart that generates a very different docID than other Firestore platforms (for instance, with timestamp embedding and "-" as a first char).
This seems to lead to issues when constructing streams from Firestore collections where documents are written from multiple platforms (say, Flutter and Cloud Functions) - given the '-' char, the flutter ID's are ordered before all others and lists built from a Firestore stream will look like this:
FlutterID
FlutterID
newFlutterID
CloudFunctID
CloudFunctID
newCloudFunctID
Am I missing something important about how to effectively use StreamBuilder?  I realize a work-around is to build a custom ID generator in Dart, but I figure this issue could affect everyone so I wanted to bring it up (and see if I'm missing something about Firestore streams).
Thanks for any insights!

@CosmicPangolin
The issue at https://github.com/flutter/flutter/issues/18956 has been closed and moved here. Future collaboration on this issue will be done here.

This is now resolved in the later plugin versions


An attention mechanism example

Based on the following paper https://arxiv.org/abs/1409.0473

Great, thanks!


Remove additional flex alt text

const FLEX_MESSAGE_ALT_TEXT in handlers/util asks the user to proceed action on their mobile phone, if their device does not support flex messages.
At this point of time, all devices, including desktop, supports flex messages. The only chance the user can see the alt text is probably the short quote in the chatroom list, which only displays the first few letters.

When implementing new submission flow, I removed FLEX_MESSAGE_ALT_TEXT and updates each of its occurrences. This is submitted as a separate PR (this PR) in order to make the main PR more focused.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.008%) to 87.343%

Totals

Change from base Build<PHONE_NUMBER>:
-0.008%

Covered Lines:
982

Relevant Lines:
1109

💛  - Coveralls


PSPP can not read the generated sav file

I'm using the example write.php from the master branch, to generate the file data.sav. When i try to open the file as it's generated in the PSPP software (GNU pspp version 1.0.1), the file can not be opened and i received the following output:
warning: `/home/lestcape/Documentos/aaa/data.sav' near offset 0x18c: File
specifies unexpected value -1.79769e+308 (-0x1.fffffffffffbp+1023) as SYSMIS,
instead of -1.79769e+308 (-0x1.fffffffffffffp+1023).
warning: `/home/lestcape/Documentos/aaa/data.sav' near offset 0x18c: File
specifies unexpected value 1.79769e+308 (0x1.fffffffffffbp+1023) as HIGHEST,
instead of 1.79769e+308 (0x1.fffffffffffffp+1023).
warning: `/home/lestcape/Documentos/aaa/data.sav' near offset 0x18c: File
specifies unexpected value -1.79769e+308 (-0x1.fffffffffffbp+1023) as LOWEST,
instead of -1.79769e+308 (-0x1.ffffffffffffep+1023) or -1.79769e+308 (-0x1.
fffffffffffffp+1023).
error: `/home/lestcape/Documentos/aaa/data.sav' near offset 0xdc: Missing
string continuation record.
As most of warnings are related with the writer info i remove the comments for that session:
        // 'info' => [
        //     'machineInteger' => [
        //         'machineCode' => 720,
        //         'version' => [23, 0, 0],
        //     ],
        //     'machineFloatingPoint' => [
        //         'sysmis' => -1.7976931348623157e+308,
        //         'highest' => 1.7976931348623157e+308,
        //         'lowest' => -1.7976931348623155e+308,
        //     ],
        // ],

The new resulting file is also not opened. I have not warnings now, but the error remaining and i get the following output after execute the example:
error: `/home/lestcape/Documentos/aaa/data.sav' near offset 0xdc: Missing
string continuation record.
Note:
When I remove the variable bbbb_bbbbbb12 from the writer, the resulting data.sav file can be opened in pspp. So, the problem seem to be related with something there.

Ok, i found the cause of this issue. Seem to be that we really need an empty record here.

You are right, and the next occurrence a few lines later should go.

I was the one who commented it out (Try the blame option to verify)
And I recently came to the same conclusion that is is needed there. I think SPSS is a little more foregiving so when I originally commented it out all still worked.

Ok, i create a pull, to revert this then... Thanks.


rook-ceph: bump to rook v1.1.1

Rook v1.1.1 was released last week so let's update the CSV file.
Also, adding the NFS CRD.
Signed-off-by: Sébastien Han<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[ ] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?
[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?

Updates to existing Operators

[x] Is your new CSV pointing to the previous version with the replaces property?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[ ] Have you tested an update to your Operator when deployed via OLM?

Your submission should not

[ ] Modify more than one operator
[ ] Submit operators to both upstream-community-operators and community-operators at once
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description about the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human readable name and 1-liner description about your Operator
[ ] Valid category name1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file a PR against this repo and explain your need
2 For more information see here

Closes: https://github.com/rook/rook/issues/3950

I'm not sure how to interpret the CI failure here:
$ eval $(scripts/ci/operators-env) && scripts/ci/test-pr $DISTRO_TYPE
Testing 'upstream-community-operators/rook-ceph' version '1.1.1'
/tmp/tmp.VWowFFa3Pn_test_pr/deploy ~/build/operator-framework/community-operators
No resources found.
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.

It's failing during docker build. I am trying to debug this. It is the same case with another PR https://github.com/operator-framework/community-operators/pull/696

@aneeshkp Addressed. PTAL.


Improve colour filter UX

User testing indicated the colour filter on the /images route could be friendlier to use.

A potentially more straightforward colour picker (but will need testing to confirm if it is indeed more user friendly): https://zpl.io/V48dnYJ
This structure gives users the option to choose a standard colour swatch, or use the colour slider if they're wanting a more granular choice.


Heading Issue when combined with list tag

Hello there,
I am a huge admire of this component, however I have found an issue when using this editor.
Here is the issue that I observed.
When List is applied and in list item heading are used UI is getting disturbed. Also the remaining heading are not applied as per the tag.

Can you show some screenshots and example HTML of the issue?

Thanks for considering issue, here is the screenshot link.
https://hub.mangoapps.com/msc/MzA2MDU1XzIyMzA2MDE


Scala-Steward: Update scalikejdbc, scalikejdbc-config from 3.5.0 to 4.0.0

Updates

org.scalikejdbc:scalikejdbc
org.scalikejdbc:scalikejdbc-config

from 3.5.0 to 4.0.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalikejdbc" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scalikejdbc" }
}]

labels: library-update, early-semver-major, semver-spec-major, commit-count:1

Lemme take over while Łukasz is busy with ide-probe...


added support for uploading  stream instead of buffer

Hi,
Strapi v4.1.1 added support for uploading files using Stream instead of Buffer. This fixes a longstanding memory leak issue
I have made the same modifications that have been made to the original S3 provider in Strapi. (Link to commit)

Yes, I did test it with Strapi 4.1.0  and Strapi 4.1.2  (pre and post the Strapi memory leak fix). Works on both versions 😃

Hi, do you know if this is backwards compatible for Strapi v3?

This problem persists for me in v4.3.4


session.list vs theoretically-same SQLQuery differences

This appears to be related to how the model.list with the where clause is created. The SQLQuery that gets created internally has the database quoting appended to it in a list, rather than just the params map getting passed in. I I have time, I'll submit a fix. Her is some code that would create the issue
                val query = sqlQuery("""
                    select * from ${model.tableName}
                    where date >= :startDate AND date <= :endDate;
                """.trimIndent(), mapOf("startDate" to startDate, "endDate" to endDate))

            val item = model.list(session, "where date >= :startDate AND date <= :endDate", mapOf("startDate" to startDate, "endDate" to endDate))

            println(item)

            val dataset = session.list(query, model.toData).sorted()

            println(dataset)

dataset will have items with valid data, itemwill be empty.

Partially fixed in my branch here

Fixed in #11

@Sylvyrfysh, thank you for the fixes. I have not looked at the master branch for a looong time. So was a bit confused when looking at the code. Then remembered that the master branch is still on 0.4.x.
I have been using the dev-0.5.0 branch with the new models which are much more convenient: https://github.com/vsch/kotlin-jdbc/blob/dev-0.5.0/README.md.
I also changed the scripts in that branch to look for model-config.json up the directory tree from selected location until a directory .idea is found, meaning most likely top of project reached.
If found, this file provides configuration for generating models with correct package information and location in the project. It is no longer necessary to select specific directories for specific tables when generating the model, then to edit the model for the correct package.
I define this file at the project root level and make sure all models which go to non-standard directories are added. To generate a model I only need to choose the tables and any sub-directory in the project to get the model generated in the right location.
I also fixed the scripts to properly get nullability from the database so manual editing to the generated model is minimized.
I was working on a project where the models are all over the place and I got tired of having to tip-toe around model generation and then edit it manually each time.
ℹ I will add the indent string setting to that file so that the script could be used without modification. The config file will provide the indentation for each project with default fall back to four spaces.
I think it is time to move version 0.4 from master to 0.4.0 branch and move dev-0.5.0 to master. I do not see going back to the old models and there are too many fixes and changes to bother with keeping both branches up to date.

Sounds good! Will you be able to move these patched to 0.5.0, or will you need patches for that as well? I'll move to 0.5.0 when I have the time, more important that I get this (small) project done and then I can move it to the new system.

@Sylvyrfysh, already patched in latest release.
What confused me originally was that I already changed the indent to a variable in the script in dev-0.5.0 branch.
I added the overload to helpers but the model list method has a new implementation that does not allow for where clause with varargs Pair params, only map.
The scrips in latest repo version override all script hardcoded values from the model-config.json file if they are defined there. Script configuration can now be provided through this file, eliminating the need to change the script.
Changing the script is problematic because it is shared across projects. It is only possible to have project specific model scripting when using model-config.json overrides, not by changing the script manually.


fmMock.enable() / fmMock.apply()

Whatever the method is called... Perhaps it should not be run automatically in the FMMock constructor.
It's a pretty big side-effect, so maybe calling it explicitly is warranted

This is solved by changing the class to regular functions. Now you must run FMMock.applyMock().


Support the v4 API

Lets track this in an issue. The GitLab API v3 is officially deprecated and will be supported until at least 9.3. Given the current release schedule (once per month), that means it will be unsupported 3 months from now.
I would like to be able to start consuming v4 functionality so I might start work on a v4 branch.
I think all current documentation links need to be updated to the v3 documentation as currently the links all point to the v4 documentation which causes confusion. Separately some effort should be made to start supporting v4 specific functionality (probably in a feature branch). Once both those things are completed, v3 could be spun out to a separate branch and v4 can be merged to master.
Below are the changes made between V3 and V4. A tickbox indicates that work has been completed on that change.
Completed

[x] Rename Build Triggers to be Pipeline Triggers API !9713. Fixed in #152.

POST /projects/:id/trigger/builds to POST /projects/:id/trigger/pipeline
Require description when creating a new trigger POST /projects/:id/triggers

[x] Removed GET /projects/:search (use: GET /projects?search=x) !8877. Fixed in #161.
[x] iid filter has been removed from GET /projects/:id/issues !8967. Fixed in #161.
[x] GET /projects/:id/merge_requests?iid[]=x&iid[]=y array filter has been renamed to iids !8793. Fixed in #161.
[x] Endpoints under GET /projects/merge_request/:id have been removed (use: GET /projects/merge_requests/:id) !8793. Fixed in #161.
[x] Project snippets do not return deprecated field expires_at !8723. Fixed in #161.
[x] Endpoints under GET /projects/:id/keys have been removed (use GET /projects/:id/deploy_keys) !8716. Fixed in #161.
[x] Update v3 documentation to point to archived v3 docs. Fixed in #160.
[x] Return basic info about pipeline in GET /projects/:id/pipelines !8875. Fixed in #163
[x] Renamed all build references to job !9463. Fixed in #166.
[x] Use visibility as string parameter everywhere !9337. Fixed in #167.
[x] Project filters are no longer available as GET /projects/foo, but as GET /projects?foo=true instead !8962. Fixed in #170.

GET /projects/visible & GET /projects/all are consolidated into GET /projects and can be used with or without authorization
GET /projects/owned moved to GET /projects?owned=true
GET /projects/starred moved to GET /projects?starred=true

[x] GET /projects returns all projects visible to current user, even if the user is not a member !9674. Fixed in #170.

To get projects the user is a member of, use GET /projects?membership=true

[x] Return HTTP status code 400 for all validation errors when creating or updating a member instead of sometimes 422 error. !9523. Doesn't require changes.
[x] Status 409 returned for POST /projects/:id/members when a member already exists !9093. Doesn't require changes.
[x] Remove GET /groups/owned. Use GET /groups?owned=true instead !9505. Fixed in commit 62634b8.
[x] Moved POST /projects/fork/:id to POST /projects/:id/fork !8940. Fixed in commit 577e19d.
[x] Renamed the merge_when_build_succeeds parameter to merge_when_pipeline_succeeds on the following endpoints: !9335

PUT /projects/:id/merge_requests/:merge_request_id/merge
POST /projects/:id/merge_requests/:merge_request_id/cancel_merge_when_pipeline_succeeds
POST /projects
POST /projects/user/:user_id
PUT /projects/:id

[x] Update endpoints for repository files !9637. Fixed in commit a0b1dcb.

Moved GET /projects/:id/repository/files?file_path=:file_path to GET /projects/:id/repository/files/:file_path (:file_path should be URL-encoded)
GET /projects/:id/repository/blobs/:sha now returns JSON attributes for the blob identified by :sha, instead of finding the commit identified by :sha and returning the raw content of the blob in that commit identified by the required ?filepath=:filepath
Moved GET /projects/:id/repository/commits/:sha/blob?file_path=:file_path  and GET /projects/:id/repository/blobs/:sha?file_path=:file_path to GET /projects/:id/repository/files/:file_path/raw?ref=:sha
GET /projects/:id/repository/tree parameter ref_name has been renamed to ref for consistency

[x] Removed the following deprecated Templates endpoints (these are still accessible with /templates prefix) !8853

/licences
/licences/:key
/gitignores
/gitlab_ci_ymls
/dockerfiles
/gitignores/:key
/gitlab_ci_ymls/:key
/dockerfiles/:key

[x] Moved DELETE /todos to POST /todos/mark_as_done and DELETE /todos/:todo_id to POST /todos/:todo_id/mark_as_done !9410
[x] Return pagination headers for all endpoints that return an array !8606
[x] Removed DELETE /projects/:id/deploy_keys/:key_id/disable. Use DELETE /projects/:id/deploy_keys/:key_id instead !9366
[x] Moved PUT /users/:id/(block|unblock) to POST /users/:id/(block|unblock) !9371
[x] Make subscription API more RESTful. Use POST /projects/:id/:subscribable_type/:subscribable_id/subscribe to subscribe and POST /projects/:id/:subscribable_type/:subscribable_id/unsubscribe to unsubscribe from a resource. !9325
[x] Labels filter on GET /projects/:id/issues and GET /issues now matches only issues containing all labels (i.e.: Logical AND, not OR) !8849
[x] Renamed param branch_name to branch on the following endpoints !8936

POST /projects/:id/repository/branches
POST /projects/:id/repository/commits
POST/PUT/DELETE :id/repository/files

[x] Renamed branch_name to branch on DELETE /projects/:id/repository/branches/:branch response !8936
[x] Remove public param from create and edit actions of projects !8736
[x] Remove subscribed field from responses returning list of issues or merge
requests. Fetch individual issues or merge requests to obtain the value
of subscribed
!9661
[x] Notes do not return deprecated field upvote and downvote !9384
[x] Return 202 with JSON body on async removals on V4 API (DELETE /projects/:id/repository/merged_branches and DELETE /projects/:id) !9449
[x] GET /projects/:id/milestones?iid[]=x&iid[]=y array filter has been renamed to iids !9096
[x] Drop GET /projects/:id/repository/commits/:sha/jobs !9463
[x] Simplify project payload exposed on Environment endpoints !9675
[x] API uses merge request IIDs (internal ID, as in the web UI) rather than IDs. This affects the merge requests, award emoji, todos, and time tracking APIs. !9530
[x] API uses issue IIDs (internal ID, as in the web UI) rather than IDs. This affects the issues, award emoji, todos, and time tracking APIs. !9530
[x] Change initial page from 0 to 1 on GET /projects/:id/repository/commits (like on the rest of the API) [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)
[x] Return correct Link header data for GET /projects/:id/repository/commits [!9679] (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9679)

Sounds good... I think this sums up our previous conversation pretty well. So fully agree on this approach and will also try to reserve some time for this in the coming months.
Unfortunately I cannot make any strong commitments as I have a few internal projects that currently take a lot of my time. But I'm sure I can free up at least some hours...

Could you create a v4 branch so I can submit merge requests against it?
Thanks

Done: https://github.com/xanzy/go-gitlab/tree/f-api-v4

Hi,
Do you add support of jobs?

If not done already, can I take a stab at
https://docs.gitlab.com/ee/api/todos.html

@eguevara that's not done yet, so by all means! 👍
Please do refer to the CE docs instead of the EE docs as I would like to keep this package compatible with the CE version.
And as guideline, please create a TodosService for this one and put the related code in a file called todos.go. That will keep things consistent.
Thanks!

@Viperoo support for the jobs API was merged to the f-api-v4 branch in #166

I was going to have a look at some of the outstanding changes for this.  Would you prefer merge requests for each task in the list or could some be lumped together?
Also, how about merging changes from master into the v4 branch?  I had an MR merged last week and it probably needs to end up in branch.  I can raise a second MR for that if needed.

Hallo, I have an issue with the way support for API v4 is being proposed. Please be aware that there are relevant scenarios where there is a need for both API v3 and v4 support at the same time.
As an example, go-gitlab is vendored inside HashiCorp's Terraform, where it is used to manage GitLab instances in a declarative way via a specific plugin. I am implementing a fully automated private cloud tenant provisioning/configuration system using Terraform at work and I know already that I'll be juggling with multiple GitLab instances, not all of them at the bleeding edge.
It seems to me that swapping out v3 and replacing it with v4 seals the destiny of go-gitlab as a thin API wrapper; supporting multiple API versions could make it an enterprise-class API library and widen its use.
Once the groundworks for multiple API version has been established, it will be possible to support v5, v6 etc. and phase out v3, v4 as GitLab releases go out of maintenance.
Thus, my proposal is to:

use explicit API versioning in the Client (e.g. a ClientV3, a ClientV4, or a common Client with an  "APIVersion" field)
then find a way to plug in API services according to version in order to reuse anything that has not changed from one version to the next;
use the Version API that was pulled into go-gitlab yesterday to negotiate the API version with the server; thus unless the user explicitly creates a "ClientVx", a factory func may contact the server and map the returned version number against the API support level (e.g. "8.13" -> "V3", "9.1" -> "V4" etc.)
Provide method implementations for both V3 and V4 APIs when they differ
where common parameters are marshalled differently (e.g. VisibilityLevel: "10" in V3, "private" in V4), provide custom marshalling based on context information, if not a different struct altogether with different annotations.

There might be other issues I'm not aware of; I just wanted to humbly put forward to you this caveat that single level API support is dramatically limiting in certain contexts, and these contexts are those in which I see automation via API most useful.

@dihedron I understand your question/issue, but I think the proposed solution is one that would make things very complex and hard to maintain.
I still think there is a solution for your problem, but it will require some thinking and testing. So let me get back on this one once I have done a little prototyping.

Cool! Let me know if I can help.

I walked true all the remaining tasks and updated/changed things were needed. So I think we now have finished all changes needed to support the V4 API. There are new endpoints that are not yet supported (they don't currently exist in this package), but all the existing endpoints should now work correctly with the V4 API.
I'm closing this issue and will do the needed git magic later today (one more PR to merge before moving everything to master).

Good job!


Restore configuration of RTC for STM32 f7 series

Hello,
I'm using the STM32 f7 series board and after update of embassy the support for RTC configuration for this board is missing. I already re-implement it based on code from repo for f4  board, which has implemented this functionality.
@Dirbaio I was wondering if it is something that you are interesting in?

yes, of course! PRs adding peripheral support are always welcome.


Feature: RunsOn CLI

New CLI

Introduce RunsOn CLI (roc).
Implement logs command, to automatically retrieve all logs linked to a GitHub Actions JOB ID / JOB URL. Includes both AppRunner logs and EC2 cloud-init logs. Stream mode (--watch) is available.

$ AWS_PROFILE=XYZ roc logs https://github.com/runs-on/runs-on/actions/runs/12312372848/job/34368864490 \
  --stack runs-on-stage --since 2h --watch

Implement connect command, to automatically connect to the instance where a job is running.

$ AWS_PROFILE=XYZ roc connect https://github.com/runs-on/runs-on/actions/runs/12312372848/job/34368864490
Connecting to instance i-03eae14dc5e7b4f78...

Starting session with SessionId: botocore-session-1734107008-fbfss77ft2nhqnexrci5nvs2ui
ssm-user@ip-10-1-175-154:/home/runner$

Would those be the runner logs we currently see in GHA?
That would be AMAZING

Currently it’s the AppRunner logs for the service, and EC2 instance logs for the agent. I did not plan to include GitHub logs for the job itself. Do you think it would be useful to you?

It would be extremely useful.
It would help us with problems, that I am not sure RunsOn needs to help with.
As a user, I'd love that you had that. But, as a PM/fan I don't think it is really a problem RunsOn is responsible to solve.

GitHub already provides a CLI to view those, have you tried it? https://cli.github.com/manual/gh_run_view


Adding functionality and tests for shared query and list handling

Originally used only in feathers-memory this list handling functionality (matching against a query and sorting) is also needed for the reactive extensions now. This adds those utility functions to the commons repository, adds full test coverage and fixes an issue that feathers-memory used to have. Also removes the Lodash dependency.

:boom: Looks great! :shipit:


Error " 'fromHexString' missing" when configuring touchpad

Nix fails to evaluate this config ...
programs.plasma.input.touchpads = [
  {
    enable = true;
    name = "PIXA3854:00 093A:0274 Touchpad";
    vendorId = "093a";
    productId = "0274";
    naturalScroll = true;
  }
];

... with the error:
error: attribute 'fromHexString' missing

at /nix/store/fbcw9dxpgfkv7h1pl6bm0llkpvpa1v2z-source/modules/input.nix:158:40:

  157|       touchName = touchpad.name;
  158|       touchVendor = builtins.toString (lib.fromHexString touchpad.vendorId);
     |                                        ^
  159|       touchProduct = builtins.toString (lib.fromHexString touchpad.productId);

As I understand, the code expects lib to contain a fromHexString function, but it is missing. Could this be because of I misconfigured plasma-manager and it gets evaluated with an invalid lib argument?
Is it possible that the code uses lib.trivial.fromHexString from the unstable channel? https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.trivial.fromHexString
That would make sense, because the flake configuration example uses the unstable channel. Is there a way to configure plasma-manager to use the unstable channel without having it as a default for all my packages?
Something like this does not seem to work :/
inputs = {
  nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
  nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
  home-manager = {
    url = github:nix-community/home-manager/release-24.05;
    inputs.nixpkgs.follows = "nixpkgs-unstable";
  };
  plasma-manager = {
    url = "github:nix-community/plasma-manager";
    inputs.nixpkgs.follows = "nixpkgs-unstable";
    inputs.home-manager.follows = "home-manager";
  };
};

What is your current nixpkgs-unstable commit?

This function was added like 2 weeks ago, so maybe running:
nix flake lock --update-input nixpkgs-unstable could fix it

My unstable channel was not up to date, now it is at cb9a96f23c491c081b38eab96d22fa958043c9fa, 3 (?) days old. Didn't fix the issue unfortunately

That's strange, it looks like plasma-manager gets the correct nixpkgs input:
> :lf .

> inputs.plasma-manager.inputs.nixpkgs.rev
"cb9a96f23c491c081b38eab96d22fa958043c9fa" # This is the 3 day old unstable commit

> inputs.plasma-manager.inputs.nixpkgs.lib.trivial.fromHexString
«lambda @ /nix/store/4cpakzyvfw1rmm9v5i3387x6jd2h1v86-source/lib/trivial.nix:1098:19»

Could the problem be that the code calls lib.fromHexString instead of lib.trivial.fromHexString?

Hm, home-manager does not seem to use the correct version:
home-manager.users.michael = {lib, ...}: {
  some.random.option = lib.version;
}

repl> nixosConfigurations.<conf>.config.home-manager.users.michael.some.random.option = "24.05.20240805.883180e"

If it was using the unstable nixpkgs, it would be "24.11.20240804.cb9a96f".
That means I configured home-manager incorrectly, I guess.
I configured my home-manager to use the unstable nixpkgs:
inputs = {
  nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
  nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
  home-manager = {
    url = github:nix-community/home-manager;
    inputs.nixpkgs.follows = "nixpkgs-unstable";
  };
  plasma-manager = {
    url = "github:nix-community/plasma-manager";
    inputs.nixpkgs.follows = "nixpkgs-unstable";
    inputs.home-manager.follows = "home-manager";
  };
};

And I include its module like this:
outputs = inputs @ {
  self,
  nixpkgs,
  nixpkgs-unstable,
  home-manager,
  plasma-manager,
  ...
}:  {
  nixosConfigurations.garuda = nixpkgs.lib.nixosSystem {
    system = "x86_64-linux";
    modules =
      [
        home-manager.nixosModules.home-manager
        {
          home-manager.sharedModules = [
            plasma-manager.homeManagerModules.plasma-manager
          ];
        }
      ];
  };
};

I set my stateVersion to 24.11:
config = {
  home-manager = {
    useUserPackages = true;
    useGlobalPkgs = true;

    users.michael = {...}: {
      home.stateVersion = "24.11";
    };
  };
};

Completely switching to unstable works, but I want to use the stable channel:
inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager = {
      url = github:nix-community/home-manager;
      inputs.nixpkgs.follows = "nixpkgs";
    };
    plasma-manager = {
      url = "github:nix-community/plasma-manager";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.home-manager.follows = "home-manager";
    };
};

And regarding your idea, I thought my home-manager was already unstable
home-manager = {
  url = github:nix-community/home-manager; # i.e. straight from master instead of  .../release-24.05
  inputs.nixpkgs.follows = "nixpkgs";
};

Or do you mean I have to have both a stable and unstable home-manager?

I meant that you should have both, one for normal usage, and unstable for plasma-manager

Like this?
inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager = {
      url = github:nix-community/home-manager/release-24.05;
      inputs.nixpkgs.follows = "nixpkgs";
    };
    home-manager-unstable = {
      url = github:nix-community/home-manager;
      inputs.nixpkgs.follows = "nixpkgs-unstable";
    };
    plasma-manager = {
      url = "github:nix-community/plasma-manager";
      inputs.nixpkgs.follows = "nixpkgs-unstable";
      inputs.home-manager.follows = "home-manager-unstable";
    };
  };

Didn't work

Yes, i thought it would work

I think that for it to work, the configuration needs to be in the used with the unstable version of the home manager module

I think the possible solution here would be using a standalone home manager configuration for plasma manager with the unstable home manager input

It is better to manually configure this, doing this workaround would be really hacky

@magnouvean maybe we should start doing branches for fixed releases, starting from 24.11 to avoid problems like this?

That would be a good solution. Hopefully it wouldn't take too much work though such that we could realistically maintain both branches. We should probaby take inspiration from home-manager for how they do this.

That would be a good solution. Hopefully it wouldn't take too much work though such that we could realistically maintain both branches. We should probaby take inspiration from home-manager for how they do this.

It would be relatively simple. We can create a github action that automatically backports to the current fixed release based on a label, that is basically what home-manager does (besides using a label), they ensure that the change is backwards compatible, and then if it is, it gets backported, if it is not, it gets only in the master branch


Kotlin runtime not completely excluded

We have an IntelliJ plugin written in Kotlin. Our build.gradle.kts looks like this:
plugins {
    id("java")
    id("idea")
    id("org.jetbrains.intellij") version "0.6.5"
    kotlin("jvm") version "1.4.21-2"
}

dependencies {
    ...
    implementation(kotlin("stdlib-jdk8"))
    ...
}

intellij {
    version = "IU-2020.1.2"
    setPlugins(...)
}

tasks.withType<KotlinCompile>().configureEach {
    kotlinOptions {
        jvmTarget = "11"
        apiVersion = "1.4"
        languageVersion = "1.4"
    }
}

When using Kotlin 1.4 with an older IntelliJ version containing Kotlin 1.3 (like above version 2020.1.2) the build complains about mixed versions:
Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    .gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.4.21-2/fc405f82531d86896a20e9aab54129dc59f86920/kotlin-stdlib-jdk8-1.4.21-2.jar (version 1.4)
    .gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIU/2020.1.2/13c0df9eec16f4c4e6e6a4fb86987e616b7b038f/ideaIU-2020.1.2/lib/kotlin-reflect-1.3.70.jar (version 1.3)
    .gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.21-2/813d63537c9df0ee0184f2fada6bc040b1328395/kotlin-stdlib-jdk7-1.4.21-2.jar (version 1.4)
    .gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.21-2/e9840ab2db3095cf168d5425899be9fc97f848ca/kotlin-stdlib-1.4.21-2.jar (version 1.4)
    .gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.21-2/3c1c0910bfba8bdb1a14303002d162b96a3aad11/kotlin-stdlib-common-1.4.21-2.jar (version 1.4)
Consider providing an explicit dependency on kotlin-reflect 1.4 to prevent strange errors
Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath

As you can see it only complains for the kotlin-reflect jar file. The 1.3 kotlin-stdlib jars (which exist in the same location within 2020.1.2) are not part of the classpath.
As far as I can see this is because the gradle-intellij-plugin has a mechanism to exclude the Kotlin runtime if necessary (see org.jetbrains.intellij.dependency.IdeaDependency#collectJarFiles). It uses IdeaDependencyManager#isKotlinRuntime to detect if a jar belongs to the Kotlin runtime. But this method checks using 'kotlin-reflect' == name while it uses name.startsWith('kotlin-stdlib'). In my cases name was 'kotlin-reflect-1.3.70' which explains why it is not detected and therefore not excluded.
Maybe this check should use startsWith as well? Maybe the same for the 'kotlin-runtime' check before?
Or is our setup wrong?

Quick update: Adding an explicit dependency to kotlin-reflect 1.4 as suggested by the build output makes no difference. The classpath still contains mixed versions.

Quick update: Adding an explicit dependency to kotlin-reflect 1.4 as suggested by the build output makes no difference. The classpath still contains mixed versions.

Any news on this?

Hi @mvilliger, sorry for the silence. No new so far. Your suggestion about startsWith sounds reasonable but I wonder if there any better solution for that, than just excluding kotlin jars by some exclusions list.

No problem. Thanks for your answer. Any better solution is of course welcome as well :)

But maybe it is better to first provide a fix for the current solution (short term) until we can come up with some better solution for the future?

makes sense, I'll take a look in couple days

I couldn't recreate the warning but the change seems reasonable anyway. I've pushed it. The snapshot will be available in couple hours I think

Thanks @zolotov I will test it the next days. Coming back to you.

@zolotov I can confirm that the issue is fixed in version 0.8.0-SNAPSHOT. Thank you very much!
And I just found #503 which might be related to this issue here and may be fixed as well?
Unfortunately we hit issue #606 with the new version which seemed to work in the version 0.6.5 we used before.
So this prevents us from upgrading for the moment.

Thank you! I'll investigate #606 before publishing 0.7.3

Hi @zolotov, does 99d2a48 fixes https://github.com/JetBrains/gradle-intellij-plugin/issues/612 as well?

@zolotov Thank you!

@L2jLiga thanks for checking, I'll look into that one too

I still experience this issue with 0.7.3. Is this expected?
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /Users/alex.plate/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.71/4defc79915cf4f78b49bbc4a8f1e80e87767a5b/kotlin-stdlib-jdk8-1.3.71.jar (version 1.3)
    /Users/alex.plate/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.71/9180d3aec3f0b2ea6ef0dcf01b464a6e2219e381/kotlin-stdlib-jdk7-1.3.71.jar (version 1.3)
    /Users/alex.plate/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.71/898273189ad22779da6bed88ded39b14cb5fd432/kotlin-stdlib-1.3.71.jar (version 1.3)
    /Users/alex.plate/.gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIC/LATEST-EAP-SNAPSHOT/64338e7ae817fccadb3c201ea67e4cf1efb9e4b2/ideaIC-LATEST-EAP-SNAPSHOT/lib/kotlin-reflect-1.4.32.jar (version 1.4)
    /Users/alex.plate/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.71/e71c3fef58e26affeb03d675e91fd8abdd44aa7b/kotlin-stdlib-common-1.3.71.jar (version 1.3)
    ```

@AlexPl292 likely yes, see https://github.com/JetBrains/gradle-intellij-plugin/issues/612

I'm still having this problem
w: Some JAR files in the classpath have the Kotlin Runtime library bundled into them. This may cause difficult to debug problems if there's a different version of the Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath
w: /home/jack/.gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIC/2021.2/b0727ceddea2b62b16825db9308e14a470198e7f/ideaIC-2021.2/lib/kotlin-stdlib-jdk8.jar: Library has Kotlin runtime bundled into it

# IntelliJ Platform Artifacts Repositories
# -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html

pluginGroup = org.bytecamp.program_repair.astor_plugin
pluginName = IntelliJ Idea Astor Plugin
pluginVersion = 0.2.2

# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
# for insight into build numbers and IntelliJ Platform versions.
pluginSinceBuild = 202
pluginUntilBuild = 212.*

# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
# See https://jb.gg/intellij-platform-builds-list for available build versions.
pluginVerifierIdeVersions = 2020.2.4

platformType = IC
platformVersion = 2021.2
# Bug: Using platformLocalPath does not work with java plugin https://youtrack.jetbrains.com/issue/IDEA-274934
#platformLocalPath = downloaded/ideaIC-2021.2
platformDownloadSources = true
#jreVersion =

# Opt-out flag for bundling Kotlin standard library.
# See https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library for details.
kotlin.stdlib.default.dependency = false

import org.jetbrains.changelog.markdownToHTML
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

fun properties(key: String) = project.findProperty(key).toString()

plugins {
    // Java support
    id("java")
    // Kotlin support
    id("org.jetbrains.kotlin.jvm") version "1.5.10"
    // gradle-intellij-plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin
    id("org.jetbrains.intellij") version "1.1.2"
    // gradle-changelog-plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
    id("org.jetbrains.changelog") version "1.1.2"
}

group = properties("pluginGroup")
version = properties("pluginVersion")
//
// Configure project's dependencies
repositories {
    mavenCentral()
}
dependencies {
    implementation("com.google.code.gson:gson:2.8.7")

    testImplementation(platform("org.junit:junit-bom:5.7.2"))
    testImplementation("org.junit.jupiter:junit-jupiter:5.7.2")

}

// Configure gradle-intellij-plugin plugin.
// Read more: https://github.com/JetBrains/gradle-intellij-plugin
intellij {
    pluginName.set(properties("pluginName"))

    if (properties("platformVersion") != "null") {
        version.set(properties("platformVersion"))
    } else {
        localPath.set(properties("platformLocalPath"))
    }
    type.set(properties("platformType"))
    downloadSources.set(properties("platformDownloadSources").toBoolean())
    updateSinceUntilBuild.set(true)

    plugins.set(listOf("java"))
}

// Configure gradle-changelog-plugin plugin.
// Read more: https://github.com/JetBrains/gradle-changelog-plugin
changelog {
    version = properties("pluginVersion")
    groups = emptyList()
}

tasks {
    // Set the compatibility versions to 1.8
    withType<JavaCompile> {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "1.8"
    }

    patchPluginXml {
        version.set(properties("pluginVersion"))
        sinceBuild.set(properties("pluginSinceBuild"))
        untilBuild.set(properties("pluginUntilBuild"))

        // Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest
        pluginDescription.set(
            File(projectDir, "README.md").readText().lines().run {
                val start = "<!-- Plugin description -->"
                val end = "<!-- Plugin description end -->"

                if (!containsAll(listOf(start, end))) {
                    throw GradleException("Plugin description section not found in README.md:\n$start ... $end")
                }
                subList(indexOf(start) + 1, indexOf(end))
            }.joinToString("\n").run { markdownToHTML(this) }
        )

        // Get the latest available change notes from the changelog file
        changeNotes.set(provider { changelog.getLatest().toHTML() })
    }

    runPluginVerifier {
        ideVersions.set(properties("pluginVerifierIdeVersions").split(',').map(String::trim).filter(String::isNotEmpty))
    }
    runIde {
        if (properties("jreVersion") != "null")
            jbrVersion.set(properties("jreVersion"))
        autoReloadPlugins.set(true)
    }
    buildSearchableOptions {
        if (properties("jreVersion") != "null")
            jbrVersion.set(properties("jreVersion"))
    }
    test {
        useJUnitPlatform()
        testLogging {
            events("passed", "skipped", "failed")
        }
    }
    publishPlugin {
        dependsOn("patchChangelog")
        token.set(System.getenv("PUBLISH_TOKEN"))
        // pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3
        // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more:
        // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel
        channels.set(listOf(properties("pluginVersion").split('-').getOrElse(1) { "default" }.split('.').first()))
    }
}


missing repos

My linux env doesn't have access to certain sites to get the repos...can you include them in the build?

What went wrong:
A problem occurred evaluating root project 'bulkload'.

Could not resolve all dependencies for configuration ':runtime'.
Could not resolve com.datastax.cassandra:cassandra-driver-core:2.1.6.
Required by:
:bulkload:unspecified
Could not GET 'https://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/2.1.6/cassandra-driver-core-2.1.6.pom'.
Connection to https://repo1.maven.org refused
Could not resolve org.xerial.snappy:snappy-java:1.0.5.
Required by:
:bulkload:unspecified
Could not GET 'https://repo1.maven.org/maven2/org/xerial/snappy/snappy-java/1.0.5/snappy-java-1.0.5.pom'.
Connection to https://repo1.maven.org refused
Could not resolve net.jpountz.lz4:lz4:1.2.0.
Required by:
:bulkload:unspecified
Could not GET 'https://repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom'.
Connection to https://repo1.maven.org refused

I'm resistant to doing that.  I think the more appropriate approach is to fix the maven/gradle/build environment to address these dependencies.


Add a Gitter chat badge to README.md

jpillora/debator now has a Chat Room on Gitter
@jpillora has just created a chat room. You can visit it here: https://gitter.im/jpillora/debator.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

manually merging


Add documentation to the Background and Audio subsystem

There were numerous public methods, signals, and variables undocumented, resulting in hard-to-understand class reference.
The worst offender are the signals accepting a Dictionary, without documentation, they are opaque.
For reference, this is Dialogic's online class reference: https://docs.dialogic.pro/class_index.html

Great stuff!


fix: update sqlx to 0.6

This will closes #10

Would it make sense to upgrade to 0.6.1 now that it is out? :)

Would it make sense to upgrade to 0.6.1 now that it is out? :)

The constraint has been changed to "0.6", so it will accept "0.6.1" and any other "0.6.x" version.
Since this crate is used as a lib, my understanding is that it should accept the lowest possible version ("0.6.0") and not have strict constraint to match applications' one. That is, if at some point in my app I have sqlx 0.6.5, I want the lib to use 0.6.5 (that is, unless there is a missing feature or breaking change, which doesn't seem to be the case here).

Ah yes, my bad :)

Oh thanks for this! I'll take a look at it very soon. Notifications for this project are turned off for some reason 😅

Thank you. I'll follow this up with a release imminently.


Can't get USB webcam working

I've tried using ustreamer with the cameras added to haproxy and not added. Either option doesn't work. I've tried adding, removing, readding, with haproxy, without haproxy. I've tried http://raspberrypi_IP address/cam_octoprint/?action=stream, tried /cam_octoprint/?action=stream, tried with ip address and port when not using haproxy. No idea what I'm missing here. Any thoughts?

I found a workaround in the cam env files where port number was listed. I ended up adding that to the ip.


Fix Request: cannot export to pdf due to this plugin

Hi there, thanks for bringing this plugin and i really love it.
However, when i tried to Exported to PDF as i often do, it tells me failed to export.
I checked console section is developer's mode, traceback mentioned this plugin.
A markdown document without any codeblock can be exported successfully.
Maybe it caused by other plugins other than this one, but i have no idea what's happening.
Sincerely hope you could help. Exported to PDF is a function i use much often to create handouts.
Thanks in advance!
Error screenshot:

Code that mentioned in the trackback of this plugin:
  let codeBlockFirstLine = view.editor.getLine(codeBlock.lineStart);

Same issue here, @stargrey any solution? Thank you so much!

@lethefrost @Maxlinn
Sorry for the long wait, this issue may be fixed, but export PDF cannot be linefeed, I found it has different width when export PDF, so I can't measure its height

thanks for this one too! sorry for the late reply!


Allow running Firezone in a non-root directory

I believe there should be a better option for this like contributing to Phoenix to allow a path to be changed at runtime (probably by recompiling the Router and Endpoint at runtime) or just checking their internals to see a better solution, but Plug that simply replaces the path components in Plug.Conn should still do the job.
A quick way to test it would be adding EXTERNAL_URL: https://localhost/vpn to https://github.com/firezone/firezone/blob/master/docker-compose.yml#L53 and running docker-compose up -d && open "https://localhost/vpn".
Closes #1137.

Pull Request Test Coverage Report for Build 81d18d8fcba7fff310cea9c2b01885eb12833894-PR-1175

7 of 11 (63.64%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 66.484%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

apps/fz_http/lib/fz_http_web/plug/path_prefix.ex
7
11
63.64%

Totals

Change from base Build f4cc03454eff68aa000f44b2101d779ed06c37dd:
-0.02%

Covered Lines:
1212

Relevant Lines:
1823

💛  - Coveralls

Thanks for this! Does this handle the websocket and font paths too?
I was actually thinking through this problem over the weekend. Any thoughts on handling this in the proxy with a rewrite rule to remove the path prefix from incoming URLs? We'd still need the route helpers configured to generate URLs containing the path prefix. Not sure how doable / easy it is to keep the path prefix for generated route helpers and omit the path prefix for routes in the router.

It should handle websockets too, I tested a few of them and planned to test more tomorrow (but would really love to see some Wallaby acceptance tests, thats one of PRs I prioritized for myself :).
Changing Caddy configuration is also an option but then you kinda force users to learn yet another thing to maintain the product, I would love to replace Caddy cert management with a Plug too (to have less moving parts and smaller attack surface).

It should handle websockets too, I tested a few of them and planned to test more tomorrow (but would really love to see some Wallaby acceptance tests, thats one of PRs I prioritized for myself :).

Wallaby would be great to add! I think you already saw this in the backlog -- https://github.com/firezone/product/issues/455

Changing Caddy configuration is also an option but then you kinda force users to learn yet another thing to maintain the product and really the solution will end up being the same (we still replace asset paths and remove prefix from the request path), just in two separate places.
Plus, I would love to replace Caddy cert management with a Plug too to have less moving parts and smaller attack surface.

I had considered going proxy-less in the early days, but I'm not sure terminating SSL in erlang is a good idea. Most production deployments will use some sort of proxy, especially when deploying via Kubernetes (Caddy is a popular option here).


Getting different numbers when running the motion metrics functions locally than when submitted to Waymo Servers

*Note this is for the 2022 challenge. We are working on the 2022 dataset and just as a sanity check we made the predictions the ground truth values given to us in the validation set (non-interative part). However when I use the function given to us, I get the following numbers:

On the validation dashboard though, I get these numbers

Can I get some insight as to what is going on? Is there any difference between how metrics are computed in the cloud vs in the function provided? Also I expected these metrics to be perfect since they are ground truth values, but seems like they are not. I believe it's because not all ground truth values are observed, so in that case there is a -1 for some timesteps which would create large errors depending on the coordinate system. But why are we even scoring for timesteps for which ground truth isn't even observed?

Hi thanks for raising this.  Could you tell me what email address you used to submit this? We will take a look at the submission.

<EMAIL_ADDRESS>

It was the submission that was done at this time 9/28/23 12:25 PM

Looking at your submission, it looks like there are predictions with all -1s in the trajectory for agents which have valid data in the ground truth.  For an example, in the scenario with ID=6bdceecbf2416202, the agent with ID 3579 has valid data for all time steps in the ground truth but your submission data is all -1 for the predictions.  The agent was verified to have valid data in both the tf.Example and the Scenario proto data.
Could you verify on your end that the ground truth data for this example matches the data in your submission?

Do you know which file out of validation-XXXXX-of_00150 that scenario exists in? It would help me find that particular scenario in the data.

Nevermind, I found it. You're right that there was a small bug in my submission. Let me resubmit and retry.

Good to hear you found it.  Note that you will likely get a non-zero overlap as the bounding box estimates of pedestrians is not always perfect and there is some overlap in the ground truth.

@scott-ettinger, we tried to make another submission just to ensure local and cloud match for sanity check purposes but we're getting some server failures

http://type.googleapis.com/util.ErrorSpacePayload='RPC::UNREACHABLE'
Do you think you can check what the issue is?

I'll take a look. Sorry for the trouble.

This was a temporary issue with the server.  Could you try your submission again?

@scott-ettinger thanks for the quick response in resolving the issue!
So now we've successfully submitted the ground truth predictions to the Waymo servers and the results look as expected:

However, these are the results I see when I ran locally:

It's good to see that minADE, minFDE, and missRate match what we expect. Overlap Rate and mAP seem to be a bit off though. You already mentioned that Overlap Rate is not expected to be zero since pedestrians might be really close that they seem to overlap. I'm not sure what's going on with mAP though. Looking closer at the results, there are some tf examples where mAP is 0, so this is why we don't get an average in 1.0 in my local results.

Could you tell me how you are running the metrics locally?

Yeah, so I import py_metrics_ops from the WOMD github repo and call the motion_metrics function. I do this for each tf_example separately (i.e. Batch size is 1). I then manually compute average (ignoring -1's in the output which indicate that there was no veh/ped/cyc in that scene so that metric was not computed). I don't think the averaging is the issue because I see instances where the single tf example doesn't have perfect mAP.
Below is the code I call:
    from waymo_open_dataset.metrics.ops import py_metrics_ops

    (min_ade, min_fde, miss_rate, overlap_rate,
     mean_average_precision) = py_metrics_ops.motion_metrics(
         prediction_trajectory=prediction_trajectory,
         prediction_score=prediction_score,
         ground_truth_trajectory=ground_truth_trajectory,
         ground_truth_is_valid=ground_truth_is_valid,
         object_type=object_type,
         object_id=object_id,
         prediction_ground_truth_indices=prediction_ground_truth_indices,
         prediction_ground_truth_indices_mask=
         prediction_ground_truth_indices_mask,
         config=config.SerializeToString(),
         scenario_id=scenario_id,
     )

Perhaps the issue is that one of the arguments I'm passing to this function is wrong. Let me walk through how I construct each of the inputs and please let me know if something is wrong.
The prediction_trajectory and  prediction_score are exactly what we submit to the server. The order of the agents  is
exactly the same order as provided in the tf_example.
I construct ground_truth_trajectory using the following code:
def extract_gt_trajectory(tf_example_original):
    """Extracts the ground truth trajectory for the all tracks. The
    returned trajectory is in the frame that the original
    data is provided in.

    tf_example_original: str -> tensor dict containing the original features
        from the Waymo Open Motion Dataset.
    Returns:
        gt_traj: shape [1, waymo_constants.NUM_OBJECTS, TG, 7]
            The 7 states variables are:
              [x, y, length, width, heading, velocity_x, velocity_y]
    |TG| is the number of steps in the groundtruth track. It includes the past,
    current, and future states.
    |length| is the length of the bounding box around the track in meters. This
    refers to the axis in the direction of the track.
    |width| is the width of the bounding box around the track in meters. This
    refers to the axis that is parallel to the axle's of the track.
    |heading| is the angle of the track in radians.
    """
    # Shape = [waymo_constants.NUM_OBJECTS, TG]
    track_x_smooth = tf.concat([
        tf_example_original["state/past/x"],
        tf_example_original["state/current/x"],
        tf_example_original["state/future/x"],
    ],
                               axis=1)

    track_y_smooth = tf.concat([
        tf_example_original["state/past/y"],
        tf_example_original["state/current/y"],
        tf_example_original["state/future/y"],
    ],
                               axis=1)

    track_length = tf.concat([
        tf_example_original["state/past/length"],
        tf_example_original["state/current/length"],
        tf_example_original["state/future/length"],
    ],
                             axis=1)
    track_width = tf.concat([
        tf_example_original["state/past/width"],
        tf_example_original["state/current/width"],
        tf_example_original["state/future/width"],
    ],
                            axis=1)

    track_heading = tf.concat([
        tf_example_original["state/past/bbox_yaw"],
        tf_example_original["state/current/bbox_yaw"],
        tf_example_original["state/future/bbox_yaw"],
    ],
                              axis=1)

    track_vx_smooth = tf.concat([
        tf_example_original["state/past/velocity_x"],
        tf_example_original["state/current/velocity_x"],
        tf_example_original["state/future/velocity_x"],
    ],
                                axis=1)
    track_vy_smooth = tf.concat([
        tf_example_original["state/past/velocity_y"],
        tf_example_original["state/current/velocity_y"],
        tf_example_original["state/future/velocity_y"],
    ],
                                axis=1)

    # Shape = [waymo_constants.NUM_OBJECTS, TG, 1]
    track_x_smooth = tf.expand_dims(track_x_smooth, axis=-1)
    track_y_smooth = tf.expand_dims(track_y_smooth, axis=-1)
    track_length = tf.expand_dims(track_length, axis=-1)
    track_width = tf.expand_dims(track_width, axis=-1)
    track_heading = tf.expand_dims(track_heading, axis=-1)
    track_vx_smooth = tf.expand_dims(track_vx_smooth, axis=-1)
    track_vy_smooth = tf.expand_dims(track_vy_smooth, axis=-1)

    # Shape = [waymo_constants.NUM_OBJECTS, TG, 7]
    gt_traj =  tf.concat([
        track_x_smooth, track_y_smooth, track_length, track_width,
        track_heading, track_vx_smooth, track_vy_smooth
    ],
                     axis=2)

   # Shape = [1, waymo_constants.NUM_OBJECTS, TG, 7]
    gt_traj = tf.expand_dims(gt_traj, axis=0)

    return gt_traj

The ground_truth_is_valid is generated in a similar way:
    # Shape = [waymo_constants.NUM_OBJECTS, TG]
    gt_is_valid = tf.concat([
        tf_example_original["state/past/valid"],
        tf_example_original["state/current/valid"],
        tf_example_original["state/future/valid"],
    ],
                     axis=1)
   # Shape = [1, waymo_constants.NUM_OBJECTS, TG]
    gt_is_valid = tf.expand_dims(gt_is_valid, axis=0)

The object_type and object_id are pretty straightforward:
    # Shape = [1, waymo_constants.NUM_OBJECTS]
    obj_ids = tf.expand_dims(tf_example_original["state/id"], axis=0)

    # Shape = [1, waymo_constants.NUM_OBJECTS]
    waymo_obj_types = tf.expand_dims(tf_example_original["state/type"], axis=0)

The prediction_ground_truth_indices is just an identity vector mapping, where waymo_constants.NUM_OBJECTS = 128
tf.reshape(tf.range(waymo_constants.NUM_OBJECTS, dtype=tf.int64), [1, waymo_constants.NUM_OBJECTS, 1])

prediction_ground_truth_indices_mask is just bunch of ones of the same shape as prediction_ground_truth_indices. The reason this works is because we later filter out all predictions that we are not required to predict. More info about this just below.
pred_gt_indices_mask = tf.ones_like(pred_gt_indices, dtype=bool)

We then filter out
   tracks_to_predict = tf.boolean_mask(
         tf.range(waymo_constants.NUM_OBJECTS, dtype=tf.int64),
         tf_example_original["state/tracks_to_predict"] == 1)

   # Shapes remain the same.
    pred_traj = tf.gather(pred_traj, tracks_to_predict, axis=1)
    pred_gt_indices = tf.gather(pred_gt_indices, tracks_to_predict, axis=1)
    pred_gt_indices_mask = tf.gather(
        pred_gt_indices_mask, tracks_to_predict, axis=1)
    pred_score = tf.gather(pred_score, tracks_to_predict, axis=1)

The config is taken straight from the WOMD codebase:
def get_challenge_config():
    """Returns the config used by the Official Waymo Challenge."""
    config = motion_metrics_pb2.MotionMetricsConfig()
    config_text = """
    track_steps_per_second: 10
    prediction_steps_per_second: 2
    track_history_samples: 10
    track_future_samples: 80
    speed_lower_bound: 1.4
    speed_upper_bound: 11.0
    speed_scale_lower: 0.5
    speed_scale_upper: 1.0
    step_configurations {
      measurement_step: 5
      lateral_miss_threshold: 1.0
      longitudinal_miss_threshold: 2.0
    }
    step_configurations {
      measurement_step: 9
      lateral_miss_threshold: 1.8
      longitudinal_miss_threshold: 3.6
    }
    step_configurations {
      measurement_step: 15
      lateral_miss_threshold: 3.0
      longitudinal_miss_threshold: 6.0
    }
    max_predictions: 6
    """
    text_format.Parse(config_text, config)
    return config

The scenario_id is just
tf_example_original['scenario/id']

One final comment. Based on the WOMD documentation here:
    - B: batch size. Each batch should contain 1 scenario.
    - M: Number of joint prediction groups to predict per scenario.
    - N: number of agents in a joint prediction. 1 if mutual independence is
        assumed between agents.
    - K: top_K predictions per joint prediction.
    - A: number of agents in the groundtruth.
    - TP: number of steps to evaluate on. Matches len(config.step_measurement).
    - TG: number of steps in the groundtruth track. Matches
        config.track_history_samples + 1 + config.future_history_samples.
    - BR: number of breakdowns.

In my setup:
B = 1 since I only pass in 1 scenario/tf example at a time
M = Number of agents to predict (at most 8) since each prediction group consists of just 1 agent so the number of groups is the same as the number of agents to predict.
N = 1 because we are not doing joint prediction
K = 6 because we output 6 predictions (for the ground truth, I pass in 6 identical trajectories and put all the probability mass on the 1st. This seemed to work fine as the Waymo servers gave me the expected results)
A = 128 (I'm assuming non-valid agents don't matter since we provide the mapping from the prediction agent to the ground truth agent)
TP: 16 since we predict 16 points. (8 seconds of future, 0.5 second intervals apart)
TG = 10 + 1 + 80 = 91

Let me know if the above is correct.
I apologize for the long post, but I hope this explains my setup. Please let me know if anything is not clear. And thank you in advance for the support!

Apologies for the late reply. It is difficult to determine what might be going wrong here.  We will take a look at the tf wrapper code to see if we find any issues.

Sure, let me know if I can provide any other information to assist in the process!

@scott-ettinger any updates on this?

Sorry for the delay. We weren't able to find the issue on our side. Are you able to use the validation server as a workaround until this is resolved?

Yeah, the validation server works fine for now, but what is the plan to resolve it? Is this still something you all are looking into or are you closing the case?

Thanks for your patience. This requires a bit of debugging. I will see if we can look into this further.

Just to add some more details to the issue. We noticed that computing the mAP between ground truth predictions fails (outputs 0.0 instead of 1.0) when there are invalid states in the ground truth track.
We can actually reproduce this locally if you look at the 6th scenario in the file waymo_open_dataset_motion_v_1_1_0/scenario/validation/validation.tfrecord-00149-of-00150. Note this is the 2022 dataset.
Specifically when there is an invalid state, this function returns null-opt: https://github.com/waymo-research/waymo-open-dataset/blob/master/src/waymo_open_dataset/metrics/motion_metrics.cc#L269. And this function is called during the calculation of mAP. The state is determined here: https://github.com/waymo-research/waymo-open-dataset/blob/master/src/waymo_open_dataset/metrics/ops/utils.cc#L354

I think the a local script that takes the submission file as input should be sufficient

require a tensorflow based solution is better in my project as I would not like to create Submission object/file if I want to use the output of the model directly to evaluate

Hi I am also experiencing the same issue. Can we draw the conclusion that this issue is from the tf ops wrapper for those metrics? So we should only use the minADE/FDE/MR in the local evaluation. If we want to know the mAP we should stick to the result reported by the waymo eval server?


Document batching logic better

https://www.prisma.io/docs/guides/performance-and-optimization/query-optimization-performance#solving-the-n1-problem is currently our only "documentation" of the batching optimization that Prisma Client and Engine are doing to some queries. In reality it is more a use case where that batching is very useful though.
We should have a page or section "Batching in Prisma Client" that explain how Prisma Client is automatically doing something to improve the performance.
Internal discussion: https://prisma-company.slack.com/archives/C016KUHB1R6/p1662657490157129

👋 we're cleaning up our backlog of issues and are closing everything older than two years. If you still feel that this issue is relevant, please feel free to re-open and our team will take a look. Thank you!


Fix exec in proxy

Description of the change:
Allows exec requests to go through the proxy without error
Motivation for the change:
It was impossible to make exec requests from Ansible code without circumventing the proxy
fixes #2204

@estroz no security concerns as far as I'm aware, obviously the user can execute arbitrary code in pods but as operator authors I think they should be allowed to (and could in Golang or any other language as well). You can still restrict the operator by not granting it pods/exec permission in the Role

test failures unrelated, just the 429 issue we've been seeing

Also I can confirm that removing the exec permission kills the ability for k8s_exec to do anything. Right now I'm using kubectl installed in an Operator image to work around the proxy, but this PR would be ideal to allow me to do everything in Ansible via the API.

build is passing, markdown just failed due to 429 flake


Square pattern

this branch contains square pattern using Javascript and some minor fixes.

@Reynadi531 added a variable as variable name SIZE

Thanks for contributing