Microsoft.EntityFrameworkCore.Analyzers - warning EF1000: Possible SQL injection vulnerability.

Microsoft.EntityFrameworkCore.Analyzers shows this warning:
Title: Possible SQL injection vulnerability.
ID: EF1000
Message: The SQL expression passed to '{0}' embeds data that will not be parameterized. Review for potential SQL injection vulnerability. See https://go.microsoft.com/fwlink/?linkid=871170 for more information.
Help link: https://bingdev.cloudapp.net/BingUrl.svc/Get?selectedText=The SQL expression passed to '{0}' embeds data that will not be parameterized. Review for potential SQL injection vulnerability. See https:%2F%2Fgo.microsoft.com%2Ffwlink%2F%3Flinkid%3D871170 for more information.&mainLanguage=C%23&projectType=&requestId=d3919894-237e-4175-9a44-a7b17ceb7df3&clientId=&errorCode=EF1000

The main problem is that I cannot find where is this warning in my code. Message does not tell anything about line number or file where this problem exists.
I search my whole project for {0} but I do not have it.
Is there some way to get more detailed message for this warning or is there some way to suppress this warning, not globally but at code level with some comment in case it is false warning.
Further technical details
EF Core version: 2.1.3
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE: Visual Studio 2017 15.8.6

@ajcvickers No, this warning is shown in solution explorer window under dependencies
|- Project Name
|--- Dependencies
|----- .NETStandard 2.0
|------- Analyzers
|--------- Microsoft.EntityFrameworkCore.Analyzers
|----------- EF1000: Possible SQL injection vulnerability.

Noting happens when I double click on EF1000: Possible SQL injection vulnerability. :disappointed:

@ajcvickers Can you post the full text in the context of all the other text around it?

@ajcvickers There are no any text around it. I can get more information only when I goes to properties of EF1000: Possible SQL injection vulnerability. and in property window I got this:
Category: Security
Default severity: Warning
Description:
Effective severity: Warning
Enabled by default: True
Help link: https://bingdev.cloudapp.net/BingUrl.svc/Get?selectedText=The SQL expression passed to '{0}' embeds data that will not be parameterized. Review for potential SQL injection vulnerability. See https:%2F%2Fgo.microsoft.com%2Ffwlink%2F%3Flinkid%3D871170 for more information.&mainLanguage=C%23&projectType=&requestId=30ad45c4-9af9-4c7a-9c3d-ff4856396d6a&clientId=&errorCode=EF1000
ID: EF1000
Message: The SQL expression passed to '{0}' embeds data that will not be parameterized. Review for potential SQL injection vulnerability. See https://go.microsoft.com/fwlink/?linkid=871170 for more information.
Tags:
Title: Possible SQL injection vulnerability.

It's not an error. It is Visual Studio's way to show all the warnings from given analyzer so that you can set severity of each of them using GUI tool.
FWIW, this is what is being talked about.

@smitpatel In my case there is also yellow exclamation mark and in properties window Message property with value The SQL expression passed to '{0}' embeds data that will not be parameterized. Review for potential SQL injection vulnerability. See https://go.microsoft.com/fwlink/?linkid=871170 for more information.
Something like this:
.
If this is not error or warning how to remove yellow exclamation mark?

The yellow exclamation mark on dependencies in VS is sign of dependencies are not available. If you run package restore and use correct SDK, yellow mark will go away. It is nothing specific about EFCore.Analyzers. It's more of telling that there is an issue with dependencies this project is referencing.

@smitpatel yellow exclamation mark stands at EF1000: Possible SQL injection vulnerability.. This image is only for illustration how yellow exclamation mark look like

@dalibor983 - Can you file issue with VS using VS feedback system?
More info: https://docs.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio-2017?view=vs-2017

I have similar problem:

I've checked the file and it does exist.
I've added EF Core Sql Server nuget package using Visual Studio Package Management UI into .NET Standard 2.0 Library and referenced the lib in .NET Core Web Application.

dotnet --list-sdks
2.1.401 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]

It is quite disturbing.

@ajcvickers: why it was closed? Not resolved, not answered imho...

@Liero We haven't been able to reproduce the yellow warning rectangle--I just used the steps you listed and still don't see it. But even if we could, since we're removing the analyzer in the 3.0 release anyway it's unlikely that there would be any additional action on our side other than to continue with that plan.

@ajcvickers: understood. meanwhile, the warning rectangle disappeared from my solution although I have done nothing with the packages. maybe PC restart helped....

@Liero

meanwhile, the warning rectangle disappeared from my solution although

Try to run some dotnet ef cli command in the project, I think warning rectangle will appear again.
For example try to run this while visual studio is opened and your project is loaded:
dotnet ef migrations list

i just unload project and reload project, the warning is disappeared.

I was getting this as well. The solution which worked for me was Installing net core 2.2 SDK and restart.

I updated one of the NuGet packages (Microsoft.VisualStudio.Web.CodeGeneration.Design 2.2.2 to 2.2.3) and it disappeared as well.

I got this warning too. What I did was to remove all files inside the obj folder in my project then build your project again.

I got this warning too!
I cleaned the affected project, deleted the obj folder and reloaded the project.

This is detailed issue, so your recommendation is needed?

This is detailed issue, so your recommendation is needed?

Solved by remove string format


refactor(events): rewrites everything to use rxjs

Short description of what this resolves:
This PR rewrites Events service based on Subject from rxjs.
Changes proposed in this pull request:
This allows to integrate Events service with other application logic easier. Additionally was added topic(name: string) method which provides observable for a specific topic. The main benefits:

easier unsubscribing with help of takeUntil
easier merging with other observables
adds all rxjs methods to application wide events (e.g., debounceTime, throttleTime, etc)

Ionic Version: 3.x
Fixes: #11770
BREAKING CHANGES:

removed unsubscribe method from Events (now you can use subscription returned by subscribe method)
removes possibility to subscribe multiple handlers to the same event (it has never been documented and contradicted JSDoc)
now you can unsubscribe all subscriptions by just calling complete on topic: topic('app:offline').complete()
added new public method topic which returns Subject

@manucorporat could you please review this?

Hi there! Unfortunately we will not be merging this. Thanks for the PR though!


Use jna.library.path to load library supporting Linux, OSX, Windows

Hi,
While running unit tests on MacOS 10.13.4, an issue (see below) occurred in loading the library. After reading JNA loadLibrary specification, I made a change with minimal impact that is successfully unit tested on Ubuntu 18.04, Windows 10, MacOS 10.13.4.
Could you please have a look at the PR?
regards,
Ralph
java.lang.Exception: Unexpected exception, expected<io.woo.htmltopdf.HtmlToPdfException> but was<java.lang.UnsatisfiedLinkError>
...
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library '/var/folders/02/mz02h42s0mb8jhlmwqyn4s4m0_lw0_/T/io.woo.htmltopdf/wkhtmltox/0.12.4/libwkhtmltox.so': Native library (var/folders/02/mz02h42s0mb8jhlmwqyn4s4m0_lw0_/T/io.woo.htmltopdf/wkhtmltox/0.12.4/libwkhtmltox.so) not found in resource path ([file:/Applications/IntelliJ%20IDEA.app/Contents/lib/idea_rt.jar, file:/Applications/IntelliJ%20IDEA.app/Contents/plugins/junit/lib/junit-rt.jar, file:/Applications/IntelliJ%20IDEA.app/Contents/plugins/junit/lib/junit5-rt.jar, file:/Library/Java/JavaVirtualMachines/zulu1.8.0_162.jdk/Contents/Home/jre/lib/charsets.jar, ...])
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:303)
Java: zulu1.8.0_162.jdk

Pushed MacOS libraries for wkhthmltopdf to master.

Thank you for supporting MacOS!


Winter has come for me: I ran play as root

Describe the bug
IDK if this is a bug ... or just a foolish attempt to workaround the "... role must run as root" situation. I tried several permutations of become and eventually ran prepare.yml and converge.yaml as the user called root
now I will burn in hell as I try to find out why:
Jul 09 07:14:29 ip-10-0-2-129.us-west-1.compute.internal httpd[8496]: httpd: Syntax error on line 360 of /etc/httpd/conf/httpd.conf: Could not open configuration file /etc/httpd/conf.d/zuul_web_ssl.conf: Permission denied>
Jul 09 07:14:29 ip-10-0-2-129.us-west-1.compute.internal systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE

Playbook
- name: prepare
  hosts: all
  become_user: fedora
  become_method: sudo
  gather_facts: yes

  roles:
    - role: robertdebock.bootstrap
    - role: robertdebock.cron
    - role: robertdebock.buildtools
    - role: robertdebock.epel
    - role: robertdebock.python_pip
    - role: robertdebock.openssl
      openssl_items:
        - name: apache-httpd
          common_name: "{{ ansible_fqdn }}"
    - role: robertdebock.selinux
    - role: robertdebock.httpd

---
- name: Install certbot for this domain
  hosts: all
  become: no
  gather_facts: yes

  roles:
    - role: robertdebock.certbot
      certbot_email<EMAIL_ADDRESS>      certbot_domains:
        - ci.sureify.app
      certbot_ci_mode: yes

Output
Show at least the error, possible related output, maybe just all the output.
Environment
-rwxr-xr-x. 1 apache apache 1777 Jul  9 07:25 /etc/httpd/conf.d/zuul_web_ssl.conf
https://softwarefactory-project.io/paste/show/2267/
httpd.conf - Ansible Managed
https://softwarefactory-project.io/paste/show/2269/
Ansible roles:
https://softwarefactory-project.io/paste/show/2268/

Control node/managed node is localhost: Fedora 36
Linux ip-10-0-2-129.us-west-1.compute.internal 5.17.13-300.fc36.x86_64 #1 SMP PREEMPT Mon Jun 6 14:29:43 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Control node Ansible version: [e.g. 2.9.1] (ansible --version)
config file = /home/fedora/ansible/ansible.cfg
configured module search path = ['/home/fedora/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/fedora/.local/lib/python3.10/site-packages/ansible
ansible collection location = /home/fedora/ansible/collections
executable location = /home/fedora/.local/bin/ansible
python version = 3.10.5 (main, Jun  9 2022, 00:00:00) [GCC 12.1.1 20220507 (Red Hat 12.1.1-1)]
jinja version = 3.0.3
libyaml = True

(Sponsoring at home as blaisep)

It doesn't like Fedora:
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: {{ _certbot_packages[certbot_system][ansible_os_family ~ '-' ~ ansible_distribution_major_version] | default(_certbot_packages[certbot_system][ansible_os_family] | default(_certbot_packages[certbot_system]['default'] )) + certbot_package }}: 'ansible_os_family' is undefined\n\nThe error appears to be in '/home/fedora/ansible/roles/robertdebock.certbot/tasks/main.yml': line 9, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: install certbot\n  ^ here\n"}

ok... Spring is on its way...
I deleted the zuul-tls-proxy config.
sudo su -
ran everything as root
Jul 09 16:16:34 ip-10-0-2-129.us-west-1.compute.internal systemd[1]: Starting httpd.service - The Apache HTTP Server...
Jul 09 16:16:34 ip-10-0-2-129.us-west-1.compute.internal httpd[27661]: Server configured, listening on: port 443, port 80
Jul 09 16:16:34 ip-10-0-2-129.us-west-1.compute.internal systemd[1]: Started httpd.service - The Apache HTTP Server.


Don't decrypt OpenEye license in pull requests

Attempt to address issue seen in #142.

Whoops.  Ran afoul of https://github.com/travis-ci/travis-ci/issues/495


Vault calls (via WebClient) are not recorded in telemetry

Calls to the Vault server(s) are not reported to OpenTelemetry. The Vault client uses Vertx's WebClient, which should automatically report when the Quarkus OpenTelementry extension is available.

This is likely because VertxVaultClient creates its own Vertx instance without all the standard Quarkus integrations.


Add more missing resources for diagnose and broker-client

The broker-client role needs to be able to update
serviceimports/status. The broker-admin role needs to have at least the same privileges as broker-client to be able to grant those permissions.

Check https://github.com/submariner-io/subctl/pull/1130 for verification before merging this.


pogs docs/code inconsistency

Not sure if this is a bug in the code or docs, but I found an issue with pogs deserialization.
I made up an example of all the passing / failing cases here (each commit has different cases):
https://github.com/abraithwaite/pogs_example/commits/master
Specifically, when including an embedded struct which is represented by a union in capnproto, the docs say to use the "which=" tag to specify the capnp object to use.  This doesn't work for me.  Looking at the code, it appears that codepath exists still on HEAD:
https://github.com/zombiezen/go-capnproto2/blob/e255c9f719103c5329bc65aac0adcf12137b7424/pogs/fields.go#L174-L223
What's the expected behavior?  I'm happy to submit a patch.
I think the issue might actually be somewhere here:
https://github.com/zombiezen/go-capnproto2/blob/e255c9f719103c5329bc65aac0adcf12137b7424/pogs/fields.go#L30-L46

The docs can probably be made clearer, but I don't understand your example.  There's no union in that repo's schema AFAICT.

My bad.  I'll try this with an actual union type.  I don't think we have a union type come to think of it.

Alright, I found what caused me to go off and try and reproduce this issue.
{code}
error: pogs: extract @0xe66193ff15e52403: can't extract User into main.User: has union field but no Which field
{code}
Is there any particular reason why it's required to have a Which field for deserialization?  If we have a field which is one of the unions, it seems reasonable to try and unpack that type, and throw an error if it's a different type instead of failing outright.
Should I open another issue and close this one?

So the way pogs expects this to be written right now is:
type User struct {
  Which struct{} `capnp:",which=phone"`
  Phone Phone
  Id int64
  Name string
}

It's a bit clunky, but I'm trying to make it symmetric with serialization, which wouldn't be able to tell what value to put in the union.  I could relax this for deserialization, I suppose.  It has been a while since I've reasoned through this, and there are subtle edge cases.

Maybe we should take this conversation elsewhere, but why wouldn't serialization be able to tell what to put in the Union, if only one of two fields is present?  I can understand if both are present it's ambiguous and then you need a determinant.
Also: it's unclear if named unions or multiple unions are supported.  We don't have any of these at the moment, but I'm willing to update the docs around these to be more accurate to the current implementation.

Sorry for delay, I was on vacation.  There are probably restrictions that can be relaxed, I just attempted to start off restrictive and loosen them over time.


RGB Color Generator

Hello @swapnilsparsh ! I would like to add an RGB color generator to your Repository , it will generate color depending on different RGB values. It will be appreciated if you could assign me this task . Thank you..

@SO1ee It's already there on the repo.


Add componentDidCatch() document and link

This is about the issue here: https://github.com/reactjs/reactjs.org/issues/120
Another thing that I noticed is that when I clicked on the link using "open in new tag", it works fine. But when I left-click it directly, it redirects me to the bottom of the blog post (as showed below), rather than the top. I thought it could be a bug?

Thanks Brian. I gotta admit that yours version is much better. This is my first time contributing to documentation. I'll try to be much more cautious next time. Thanks for your generous help again!

Of course, I'm always willing to learn from people! Thanks


Keep data records in list, not dictionary

That way data records are ordered sensibly.
Also add and 'origin' entry.

Implemented in commit 7697e2690e1a5c65450d51b110cc23e0edfd02e8


Var store quantize

Not sure if we want to set quantization higher than one by default in any fontmake-related codepath.

Not sure if we want to set quantization higher than one by default in any fontmake-related codepath.

I don't know, maybe an option in the public varLib.build/build_many methods that ufo2ft uses. But I'm not sure if one wants to use the same quantization for all the VarStores.
What did you have in mind for this? Make GPOS variable kerning tables smaller? Did somebody ask for this?

I think it's fine to have this option available in the fonttools varLib.varStore command-line tool only for now, one can already start experiment with it and if needed we can surface it to varLib's public api

I think it's fine to have this option available in the fonttools varLib.varStore command-line tool only for now (that one only touches GDEF VarStore as used in GPOS), one can already start experiment with it and if needed we can surface it to varLib's public api

Sounds good. Thanks.


Don't resolve laxar paths globally

If webpack can't resolve a module, we try to build the path by applying aliases from webpack's config: https://github.com/jpommerening/laxar-loader/blob/ae30693c328675d437d3011039f7db18baae066f/index.js#L134
However, these should only be replaced at the beginning of the path. It does not make sense to substitute includes/laxar-path-widgets with anything.

will be released with v0.4.0


feat(bootstrap-vue-plus): new resolver.

bootstrap-vue-plus

@sxzz  I have now started a new project, the name is bootstrap-vue-plus, the architecture and development of the repo is based on element-plus, and I plan to upgrade bootstrap-vue to adapt to vue 3. The third parties involved are declared in the license

You link https://bootstrap-vue-plus.com/ isn't working

@jd-solanki please visit bootstrap vue plus

@jd-solanki please visit bootstrap vue plus

I was referring to you website URL: https://bootstrap-vue-plus.com/

website is under development

Thanks for your contributions. We are sorry we no longer accept new resolvers:
https://github.com/antfu/unplugin-vue-components/blob/main/src/core/resolvers/_READ_BEFORE_CONTRIBUTE.md


Oscillator sub-sample scheduling

Related to #61
A bit more complicated than I thought here
also:

some fixes and tests on AudioBufferSourceNode and ConstantSourceNode
a new example amplitude_modulation

Let me know what you think

Impressive work, again. I will need more time to look at it carefully.
It is very satisfying to see this library maturing and improving week over week!

Alright, I'm ready to merge. Or do you plan on adding anything else?

Ok cool, go on! its good on my side, the possible improvements are quite clear and isolated I think, so we can handle them later


⚠ Bofrost.fr has degraded performance

In e1863d0, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1014 ms

Resolved: Bofrost.fr performance has improved in 6bbb9bd after 8 minutes.


Environment validation shows address of remote host which failed

Fixes issue ...
before:
WARN[2017-05-18 16:47:15.500]
Maximum number of open file descriptors (1000) is lower than required (10240).
You can change this value eg. ulimit -n 10000 or modifying /etc/security/limits.conf.

after:
WARN[2017-05-18 16:47:15.500]
Maximum number of open file descriptors (1000) is lower than required (10240) on (Remote executor on (swan:ovh10)).
You can change this value eg. ulimit -n 10000 or modifying /etc/security/limits.conf.

Summary of changes:

information about host that validator was running on

Testing done:

yes

run integration tests


[5.7] Module aliasing: validate source files / only allow Swift files for modules aliased

Module aliasing: validate source files / only allow Swift files for modules aliased
Resolves rdar://90661600

@swift-ci  smoke test

Cherry picked from https://github.com/apple/swift-package-manager/pull/4293

@swift-ci smoke test


Fix informer hasSyncFunc in validate-namespace-deletion webhook

How to categorize this PR?

/area quality
/kind bug
/priority normal
What this PR does / why we need it:
With https://github.com/gardener/gardener/pull/2832 we introduce a hasSyncFunc for Secret and Shoots. As far as I see there is no need for such wait for Secrets as I cannot see list or get for Secrets. The webhook seems to need hasSyncFunc for Project and Shoots (as it is doing list for shoots and projects).
Currently the gardener-admission-controller fails with:
$ k -n garden logs gardener-admission-controller-764647d74f-vs976
time="2020-09-23T08:16:13Z" level=info msg="Starting Gardener admission controller..."
time="2020-09-23T08:16:13Z" level=info msg="Creating new ClientSet for key \"garden\""
E0923 08:16:13.695908       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:16:14.837144       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:16:16.543679       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:16:20.245943       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:16:27.268387       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:16:43.921821       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:17:22.713198       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope
E0923 08:18:17.124085       1 reflector.go:178] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:136: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:garden:gardener-admission-controller" cannot list resource "secrets" in API group "" at the cluster scope

Release note:

NONE

/invite @timuthy @timebertt


Using GPUImageLookupFilter on live video

Hi,
I am able to use the GPUImageLookupFilter on still images with no problem but I am not able to apply the lookup filter to live video. Is it possible? If so how?
This is what I have for still images
var filteredImage:UIImage!
func lookupFilter() {
    let stillImageSource = GPUImagePicture(image: UIImage(named: "lookup"))
    let filterApplied = GPUImagePicture(image: UIImage(named: "lookupF"))
    let lookup = GPUImageLookupFilter()
    stillImageSource.addTarget(lookup)
    filterApplied.addTarget(lookup)
    lookup.useNextFrameForImageCapture()
    stillImageSource.processImage()
    filterApplied.processImage()
    lookup.imageFromCurrentFramebuffer()
    filteredImage = lookup.imageFromCurrentFramebuffer()
}

AKA is it possible to have the "stillImageSource" be a live video stream from the camera?
Thank you for any help!

Would also love to know. I already recorded a video and I need a live filter in my player

Any Idea how to use lookup filter to AVPlayer?


Passing an array of conditions to the where function in collection giving wrong results

Laravel Version: 6.2
PHP Version: 7.2.18
Database Driver & Version: MySQL & 5.7.26

Description:
Passing an array of conditions to the where function in collection giving wrong results

After getting my collection If I need to use some filter by using where on the collection it's going wrong with an array of conditions in where.

When I am using multiple where conditions in a collection in a normal way like ex: where('column', value).
$data = $articles->where('category_id' , 4)->where('featured', 1);
it is giving me the actual results
But Instead of multiple where if I use an array of conditions to where the function is giving me an empty collection.
$data = $articles->where(['category_id' => 4, 'featured' => 1]);
But the expected result was the same as the first one.

I may be mistaken but I don't think the collection 'where' method works like that.

@devcircus
Thank you for your thinking.
But in the collection I can use groupBy, multiple were as like eloquent.

My question is if it is working then why not array of conditions where will not work?

See the code below. When you pass an array, it sets the 'value' parameter to the boolean 'true' and the operator to '=' (which operates the same as '=='). So when you call $articles->where(['category_id' => 4, 'featured' => 1]); it gets translated into:
$articles->where(['category_id' => 4, 'featured' => 1], '=', true);
which searches each article for the key, ['category_id' => 4, 'featured' => 1], which doesn't exist.
So what I was saying is the Collection 'where' method doesn't work like you think it does.
    protected function operatorForWhere($key, $operator = null, $value = null)
    {
        if (func_num_args() === 1) {
            $value = true;

            $operator = '=';
        }

        if (func_num_args() === 2) {
            $value = $operator;

            $operator = '=';
        }

        return function ($item) use ($key, $operator, $value) {
            $retrieved = data_get($item, $key);
            $strings = array_filter([$retrieved, $value], function ($value) {
                return is_string($value) || (is_object($value) && method_exists($value, '__toString'));
            });

            if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) {
                return in_array($operator, ['!=', '<>', '!==']);
            }

            switch ($operator) {
                default:
                case '=':
                case '==':  return $retrieved == $value;
                case '!=':
                case '<>':  return $retrieved != $value;
                case '<':   return $retrieved < $value;
                case '>':   return $retrieved > $value;
                case '<=':  return $retrieved <= $value;
                case '>=':  return $retrieved >= $value;
                case '===': return $retrieved === $value;
                case '!==': return $retrieved !== $value;
            }
        };
    }

See the code below. When you pass an array, it sets the 'value' parameter to the boolean 'true' and the operator to '=' (which operates the same as '=='). So when you call $articles->where(['category_id' => 4, 'featured' => 1]); it gets translated into:
$articles->where(['category_id' => 4, 'featured' => 1], '=', true);
which searches each article for the key, ['category_id' => 4, 'featured' => 1], which doesn't exist.
So what I was saying is the Collection 'where' method doesn't work like you think it does.
protected function operatorForWhere($key, $operator = null, $value = null)
{
    if (func_num_args() === 1) {
        $value = true;

        $operator = '=';
    }

    if (func_num_args() === 2) {
        $value = $operator;

        $operator = '=';
    }

    return function ($item) use ($key, $operator, $value) {
        $retrieved = data_get($item, $key);
        $strings = array_filter([$retrieved, $value], function ($value) {
            return is_string($value) || (is_object($value) && method_exists($value, '__toString'));
        });

        if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) {
            return in_array($operator, ['!=', '<>', '!==']);
        }

        switch ($operator) {
            default:
            case '=':
            case '==':  return $retrieved == $value;
            case '!=':
            case '<>':  return $retrieved != $value;
            case '<':   return $retrieved < $value;
            case '>':   return $retrieved > $value;
            case '<=':  return $retrieved <= $value;
            case '>=':  return $retrieved >= $value;
            case '===': return $retrieved === $value;
            case '!==': return $retrieved !== $value;
        }
    };
}

@devcircus
Here is my database table design where I have data that belongs to category_id = 4 and also featured = 1.

My question is, will it becoming a key like '['category_id' => 4, 'featured' => 1]' as one, or will it searching for every data for both two key category_id and featured?

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself. If you have a question on how to use functionality provided by this repo you can try one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

However, this issue will not be locked and everyone is still free to discuss solutions to your problem!
Thanks.

I just came here to report the same thing. I realise it's not documented or implemented that where works in the same was as Eloquent but it's an easy mistake to make and could at least throw an error.
Is there a situation where $key being an array is valid? If not then presumably an InvalidArgumentException could be thrown?
Alternatively it could loop through the array and replicate the behaviour of the Eloquent Query Builder?
Right now it just sort of fails silently.


Error emitting raw JavaScript block comment empty line

If an empty line starts with *, the * is not being removed.
Steps To Reproduce
https://deck.net/4ec0292447f0403a1d09e1b9c58a77b3
public class Program
{
    public static void Main()
    {
        /*@
         * console.log('one');
         *
         * console.log('two');
         */
    }
}

Expected Result
    Bridge.define("Demo.Program", {
        $main: function () {

         console.log('one');

         console.log('two');

        }
    });

Actual Result
    Bridge.define("Demo.Program", {
        $main: function () {

         console.log('one');
         *
         console.log('two');

        }
    });

Same for single-line comments //@ produces @ if there is no trailing space: //@  like so.

@TriEdgeAI, thanks, added this case to the fix.


removed bin_descend and some other stuff

Ignorant comment: how does this impact READM.md? Rather, for the noob that I be, am I forced to generate CFG via IDA?

That depends on your goals and your use case for the lifted bitcode. Remill's lifted code is structured differently than McSema's, and Remill doesn't produce code that can be (directly) recompiled back into a runnable binary. Remill and McSema both use IDA, and so you will need IDA to use either/both of them, unless you have another way of producing the CFG protobuf formats they use.
README.md is probably out of date :-( ugh, documentation.

@pgoodman Thanks for your tips on remill vs mcsema. My goals are to do some data flow analysis; so as long as there is a sense of reality to the lifted code, I should be fine. Thanks for the response -- I will join the slack channel as I look at things closer.
re: protobufs, I do not currently have a solution :( I guess which is why I was wondering about bin_descend :-(
Appreciate your help.


Use Wasmtime patch for WASI HTTP tasks

Use Wasmtime patch for WASI HTTP tasks.
This should be backported to 2.0.

I appended a commit here which fixes the e2e tests, although there's still some SDK tests that are failing. Are those perhaps known to be flaky or are those also likely a cause of these changes?

Not sure, I queued the failing checks for a re-run.


Fedora 23 issue with libffi

Hello there!
I'm having an issue with using vagrant-gatling-rsync on Fedora 23 -- when running it, it crashes with the following error:
/opt/vagrant/embedded/gems/gems/ffi-1.9.10/lib/ffi.rb:6:in `require': libffi.so.5: cannot open shared object file: No such file or directory - /opt/vagrant/embedded/gems/extensions/x86_64-linux/2.2.0/ffi-1.9.10/ffi_c.so (LoadError)

The libffi package is installed, but provides libffi.so.6:
root@host# rpm -ql libffi
/usr/lib64/libffi.so.6
/usr/lib64/libffi.so.6.0.2
/usr/share/doc/libffi
/usr/share/doc/libffi/README
/usr/share/licenses/libffi
/usr/share/licenses/libffi/LICENSE

I am on the latest version of the plugin vagrant-gatling-rsync (0.9.0)
Thanks,
Tim

Tim,
I think this workaround may fix it: https://github.com/mitchellh/vagrant/issues/6721 .


Update Circle Config

Finally getting consistently green checkmarks on building the sample react-native app on both iOS and Android. Details here

@samgreen  Could you update the PR description with an explanation of what's been done in this PR

@samgreen Could you update the PR description with an explanation of what's been done in this PR?

bumping this


Add the supportability for LTSC

As far as I know, Microsoft Defender for Enpoint Plan 1 is supporting also Windows 10 Long Term Servicing Channel (LTSC) and Enterprise IoT.
In this article, only a generic statement is made that the product is supporting "Windows 10, version 1709, or later"
But because the LTSC/IoT version are "special" version and that not all the software and services are supporting them, I suggest to add a specific bullet point for those version like we did in the article related with Defender for Endpoint Plan 2
Article: https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/minimum-requirements?view=o365-worldwide
Windows 10 Enterprise
Windows 10 Enterprise LTSC 2016 (or later)
Windows 10 Enterprise IoT

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

ID: 3d966a60-ffac-d1b0-4a2c-34bd64edd5ce
Version Independent ID: da866056-2041-3c18-77c9-05fdd5fa7caa
Content: Overview of Microsoft Defender for Endpoint Plan 1
Content Source: microsoft-365/security/defender-endpoint/defender-endpoint-plan-1.md
Product: m365-security
Technology: mdep1
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

@mmoioli Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/8790
Once the author approves, the changes will be live.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @mmoioli Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Where are the position evaluation models?

paper says they are a function of the tactic predictor, but no details of what that means are provided.

@danehuang @prafullasd
Hi, do you have checkpoints or the code where the position evaluators live?

@danehuang @prafullasd
Hi, do you have checkpoints or the code where the position evaluators live?


add previewnet entry into service

add previewnet entry into service

You'll also need to change any mentions of crescendo to previewnet in the codebase.

I only found one instance of "crescendo" of which I updated in this PR. Is there other places I need to look outside of this repo?

Ok looks like it was already changed to previewnet everwhere else, except the services key wasn't so should be good: https://github.com/onflow/fcl-discovery/blob/master/helpers/constants.js#L8
Have you tested this?

Yes, tested it locally using flow port.


Don't close socket if preserveConnection is set in HocuspocusProvider

Sending the CloseMessage also has the effect of closing the socket according to its description.
I noticed that before patching this in the package, the socket would be closed when I called destroy on the provider even if it was supposed to preserve the connection. When using multiple providers on the same socket at once, it's important that no provider getting destroyed closes the whole socket. disconnecting the provider is not enough because it still has listeners on the document, socket, and elsewhere which is not acceptable.

The test could be fixed by either

setting preserveConnection to false in the test (it's true by default),
or changing the default to false,
or changing how many open connections the test expects,
or adding a socket.destroy() to the test


Add flag to ignore certain words from wordlist

Description
This pull requests adds the flag -iw.
The flag accepts a list of comma separated values, like the extension flag -e.
When loading a wordlist, it is checked for every word if it contains a value from the -iw flag.
This can be shown most easily with an example:
File words:
dologout
logarithm
login
logout
logoutnow
logs

Cmd: ffuf -u 'https://www.google.com:443/FUZZ?a=1&b=2' -w words -iw logout
Words that are loaded:
logarithm
login
logs

Why is this useful?
As the example above demonstrates it is, for example, possible to remove the word "logout" from wordlists.
This has the advantage, that when doing authenticated fuzzing, you are not logged out because the /logout endpoint is not called.
This is currently only possible by copying the wordlist and removing the unwanted words, which I find inconvenient.
I'm happy about feedback :)

Thanks for creating the PR.
I'm considering how to approach this. In the past I have been trying to avoid all features that can be handled "outside" of ffuf. I think this is important in order to avoid feature creep, and to be honest the amount of CLI flags available is making it harder to get a grasp of the tool and using it efficiently.
In my opinion, it would be a better fit for ffuf-scripts as a shell script (even though there's not much at the repo atm)
What do you think?

Hi, thanks for your feedback. I absolutely understand your mindset on this. Closing this PR.


docs: improve gtag documentation (remove mention of 'UA-')

Motivation
To make the gtag docs less confusing.
To quote the docs here: https://support.google.com/analytics/answer/9744165?hl=en-GB&utm_id=ad#use_existing_tags

Make a note of your GA4 property's name so you can find it later. If your Universal Analytics property name is "Example property (UA-nnnnnnn)", your GA4 property name will be "Example property (xxxxxxx)", without a "UA-" prefix, and where xxxxxxx is a new property number.

The docs as is suggest that gtag's should include "UA-" as universal analytics does.  This PR amends that to make it less confusing.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
n/a
Related PRs

Never used ganalytics myself, and the doc isn't very clear wrt what's the difference between GA4 and UA... Since we are using this tracking ID to send requests to the GA server, would both of them work? Or is it just that UA-xxxx is used for legacy projects while new projects would have xxxx and we expect new users to always use the latter?

Or is it just that UA-xxxx is used for legacy projects while new projects would have xxxx and we expect new users to always use the latter?

It's closer to this - if you're setting up a google tags property you simply won't have a "UA-" prefix - GA 4 properties have a different format.  Here's a screenshot of my own tag as an example:

We also have the thread https://github.com/facebook/docusaurus/issues/2407 where the discussion seems to have shifted to UA vs GA4 in terms of data privacy. Wondering if we should also put up a notice about the nuance between UA- prefix and the absence of one?

Maybe - I'm not too sure of the GDPR implications to be honest.  My sense is that Google want to deprecate UA and have people migrate to GA4 (I was prompted in Google Analytics which is what lead me to investigating using GA4).
The motivation of this PR is just docs really though; if someone is setting up a google tag they will not have a "UA-" prefixed property, so the aim is to make the docs reflect that.  To show you what UA vs GA4 looks like side by side consider the following:

The one above is UA and has a UA prefix
The one below is GA4 and does not have a UA prefix

I'm in favor of changing our doc's defaults, just asking about whether the old config still makes sense for UA users. My idea is to add an admonition briefly explaining that legacy UA IDs have the UA- prefix while GA4 ones don't, and maybe link to the official doc

whether the old config still makes sense for UA users.

Oh totally - the existing UA docs are fine. My sense is, that whilst Google are keen for people to upgrade to GA 4, UA will still be around for a decent time to come.

My idea is to add an admonition briefly explaining that legacy UA IDs have the UA- prefix while GA4 ones don't, and maybe link to the official doc

Feel free to tweak my PR. I'm going to be offline for a while I think; will be checking my phone a bit

The gtag stuff is always a bit messy for me🤦♂ A while back I learned that GTAG and GTM may be different (https://github.com/facebook/docusaurus/pull/5731). And now I'm trying to differentiate between GA3/UA, GA4, GTAG, GTM—X is a superset of Y, W is a successor of Z...
I guess we don't need more information since the tracking ID is given by GTAG anyways and existing users probably know what they are doing. My only question is whether we should synchronize the docs in the GA plugin

My only question is whether we should synchronize the docs in the GA plugin, and whether that plugin still works in GA4 (if not, we need to put up a notice / update the plugin)

The GA plugin docs are fine and don't need changing. From a Docusaurus perspective, GA and GA4 are different products. GA plugin does not support GA4 and vice versa.
It's likely that one day GA will disappear and GA4 will live on - but I would expect that to be a very long time in the future.


fix(mat-list): add bottom padding

Mat-list padding feature seems to be missing for bottom

Ref: https://material.io/design/components/lists.html?image=https%3A%2F%2Fmaterial.io%2Fdesign%2Fassets%2F1gTGgqK5WK9w0RAqKgixTdodljG3oI2I1%2Flist-spec-threeline-group.png#specs

I signed CLA

Closing this since it will be captured as part of future work integrating MDC web into Angular Material


Enable alternate color palettes and output formats

Building on #15, we'd be able to include implement svut_h.sv as a group of header files.
Why? I've prototyped a very nice color palette system (that uses a header file to define colors, another to define the palette (e.g. dark mode, light mode), and then the SVUT test macros.) While dark screens are all the rage, we also need to think about people who still work on white backgrounds, people who cant work with color (e.g. because the contrast is too low or due to colorblindness), etc.
This would also allow plugging in alternate output formats (Markdown, HTML, etc.) trivially by redefining one macro and including it in a file before loading svut_h.sv.
Using #15, a multi-file svut_h.sv would simply have the main header file include its subsidiary header files (with a ifndef wrapper) and they could be overridden by loading something different in front of svut_h.sv.
It sounds complicated, but it really isn't. Most people will include the standard header file.  That's it. Fully backwards-compatible with easy room for growth.

Closing due to not having the time to pursue


Warning in HA Core

Log server: "Entity None (<class 'custom_components.smartir.climate.SmartIRClimate'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <ClimateEntityFeature.TARGET_TEMPERATURE|FAN_MODE: 9>"
Home Assistant version
Core 2024.5.5
SmartIR version
1.17.9
SmartIR configuration
smartir:
climate:

platform: smartir
name: Home_AC
unique_id: home_ac
device_code: 1380
controller_data: zigbee2mqtt/ИК-порт/set

**Describe the bug**

Entity None (<class 'custom_components.smartir.climate.SmartIRClimate'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <ClimateEntityFeature.TARGET_TEMPERATURE|FAN_MODE: 9>, please report it to the author of the 'smartir' custom integration and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation

**Debug log**

```text

Add your logs here.

Additional context
Add any other context about the problem here.

Hi
I also am receiving the warnings.
This needs to be changed before 2025.1 released, so there is still time :)
Are there plans to update the climate component ? This is a crucial setup for me.
I may be able to help.
2024-06-09 11:42:15.772 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_OFF was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.OFF instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.790 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_HEAT was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.HEAT instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.809 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_COOL was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.COOL instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.814 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_DRY was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.DRY instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.820 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_FAN_ONLY was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.FAN_ONLY instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.825 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_AUTO was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.AUTO instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.840 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_TARGET_TEMPERATURE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.TARGET_TEMPERATURE instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.845 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_FAN_MODE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.FAN_MODE instead, please report it to the author of the 'smartir' custom integration 2024-06-09 11:42:15.857 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_SWING_MODE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.SWING_MODE instead, please report it to the author of the 'smartir' custom integration /

same here
2024-06-22 17:37:17.176 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_OFF was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.OFF instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.182 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_HEAT was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.HEAT instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.187 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_COOL was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.COOL instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.193 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_DRY was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.DRY instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.200 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_FAN_ONLY was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.FAN_ONLY instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.205 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] HVAC_MODE_AUTO was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.AUTO instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.211 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_TARGET_TEMPERATURE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.TARGET_TEMPERATURE instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.217 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_FAN_MODE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.FAN_MODE instead, please report it to the author of the 'smartir' custom integration
2024-06-22 17:37:17.223 WARNING (ImportExecutor_0) [homeassistant.components.climate.const] SUPPORT_SWING_MODE was used from smartir, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.SWING_MODE instead, please report it to the author of the 'smartir' custom integration

Same...

I have the same warnings, can anyone make a fix?


[APIView] TypeSpec APIView incorrectly skips PRs with changes to Shared/*.tsp

I recently created a PR which only made changes to a *.tsp file under the Shared folder:
https://github.com/Azure/azure-rest-api-specs/pull/23836
It appears that TypeSpec APIView skipped this PR, because it didn't think the Shared folder is part of a "project":
Find the root directory for specification/contosowidgetmanager/Contoso.WidgetManager.Shared/main.tsp.
Modified file path specification/contosowidgetmanager/Contoso.WidgetManager.Shared/main.tsp is not part of any project.
Modified files are not part of any TypeSpec project. Skipping the step to generate API review.

https://dev.azure.com/azure-sdk/internal/_build/results?buildId=2754895&view=logs&j=e37a1bb9-a190-5269-3a0e-37469dfbe682&t=09cb0672-20c5-5dce-4552-dad3f3e96fd3&l=16

The problem here is that there is no tspconfig.yaml file in that directory. the logic uses the presence of that file to determine if its a TypeSpec project directory. See here and here

A fix has been made for this. We will monitor APIView failures to ensure it was resolved.

Related PR with a fix:
https://devdiv.visualstudio.com/DevDiv/_git/openapi-alps/pullrequest/487625


Fix description of event 'destroyed'

Hey,
The event destroyed has some bad references on its documentation. This PR just fixes that.
Thanks.

Thank you for your contribution 👍


Add ability for logging to record tracing span log entries

In large environments with separate logging and tracing pipelines, identifying pertinent log information for a trace can involve searching in an entirely different store, which may be subject to its own sampling and rate limiting. For these situations, the log lines generate specifically whilst the traced action is executed are particularly high value in providing additional context.
This change adds trace emission options for the logging module, which allow enabling emitting logs from traces at a separately specified verbosity level, which can be changed the same was as we can with set_verbosity.
To fully specify log fields, add_span_log_fn is added as a macro to the tracing module, at a cost of losing the full abstraction over rustracing.
Fixes #58

@LloydW93 I'm not sure I understand the motivation behind #58 (see comment there) and what this PR tries to do


ci: drop native manylinux wheel for dual-tagged one

Summary

Followup to #3624. Drops the native manylinux wheel in favor of the statically linked musl one with a manylinux2014 tag.

CC @charliermarsh relevant for the next release


BitVec::iter().rev().take(N).rev() segfaults

The following code snippet just segfaults!
fn main() {
    use bitvec::vec::BitVec;

    // The argument of `take`. If above "SOME" threshold, it will panic!
    // If below "the" threshold, the assert will fail instead.
    //
    // It appears that the threshold for normal execution is 4,
    // but when executing the binary via `gdb` it is 6.
    const N: usize = 6;

    let mut bv: BitVec = BitVec::new();
    // Must be at least the 'register size', but may be much larger
    bv.resize(64, true);

    // Here the complete iter-rev-take-rev-sequence is mandatory to reproduce the error,
    // just the `collect` is here for convenience.
    let last_few: Vec<_> = bv.iter().rev().take(N).rev().collect();

    // Also notice, `bv` only contains `true`, but with `N` < 4, the `last_few` are all `false`!!!
    assert_eq!(&[&true; N], last_few.as_slice());
}

It seems that this is quite a corner case as several preconditions have to be meet. Also, I didn't check whether this error is specific to BitVec or applies to other types as well. All I can say is that access::BitAccess::get_bit or slice::iter::Iter::pop_front are the only unsafe pieces in the stack trace, so either (or both) of them seam to be unsound.
Also notice, as mentioned in above snippet comments, there are also cases where the program does not segfault but instead gives the wrong result. Maybe, indicating a more general bug somewhere in the code.

For reference here the complete stack trace:
Program received signal SIGSEGV, Segmentation fault.
(gdb) bt
#0  0x000055555556b069 in core::cell::Cell<T>::get (self=0x5555554e0ce8) at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/cell.rs:431
#1  0x000055555555c0b4 in <core::cell::Cell<usize> as radium::Radium<usize>>::load (self=0x5555554e0ce8) at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/radium-0.3.0/src/lib.rs:436
#2  0x000055555555bec0 in bitvec::access::BitAccess::load_value (self=0x5555554e0ce8) at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/bitvec-0.19.0/src/access.rs:326
#3  0x000055555555bee8 in bitvec::access::BitAccess::get_bit (self=0x5555554e0ce8, index=...) at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/bitvec-0.19.0/src/access.rs:192
#4  0x0000555555561ca1 in bitvec::slice::iter::Iter<O,T>::pop_front (self=0x7fffffffd378) at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/bitvec-0.19.0/src/slice/iter.rs:164
#5  0x0000555555561e71 in <bitvec::slice::iter::Iter<O,T> as core::iter::traits::iterator::Iterator>::nth (self=0x7fffffffd378, n=18446744073702025216)
    at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/bitvec-0.19.0/src/slice/iter.rs:496
#6  0x0000555555563cc3 in <core::iter::adapters::Rev<I> as core::iter::traits::double_ended::DoubleEndedIterator>::nth_back (self=0x7fffffffd378, n=18446744073702025216)
    at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/iter/adapters/mod.rs:98
#7  0x0000555555563d4e in <core::iter::adapters::Take<I> as core::iter::traits::double_ended::DoubleEndedIterator>::next_back (self=0x7fffffffd378)
    at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/iter/adapters/mod.rs:2289
#8  0x000055555556408e in <core::iter::adapters::Rev<I> as core::iter::traits::iterator::Iterator>::next (self=0x7fffffffd378)
    at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/iter/adapters/mod.rs:49

oops. I will comment again when I publish the fix to crates.io


docs: update installation instructions

add note about the node GM deployed
remove build sections
squash GM's steps
fix some misleading sentences

LGTM

tested /approve

/approve

/lgtm

tested it successfully


/ws with paths not supported?

It appears that specifying a path with websockets is not supported. This isn't explicit (the /protocols dir from the README is missing) but at all the examples I can find use a /ip4/x.x.x.x/tcp/XXXX/ws type format and the test file for go-ipfs specifies /ws/foo as an invalid test case.
e.g. the javascript library ws does allow you to specify a path:
new WebSocket('ws://www.host.com/path')

while this isn't meaningful on the websockets side, it can be useful when e.g. using nginx to upgrade a connection to a particular path. Was this a conscious decision?

 They can sort of handle them as long as they appear at the end of the address unfortunately, we'd want to support /ip4/x.x.x.x/tcp/XXXX/ws/a/b/c/ipfs/QmID. Really, we'd need to write this as /.../ws/[/a/b/c/d]/ipfs/QmID (or some escaping mechanism). However, any time anyone brings up a proposal to deal with internal paths paths (e.g., multiaddrs as arguments to multiaddr protocols) the conversation starts at "the syntax is to complicated" and ends with "we don't really need them, do we?".
So, no, we don't currently support paths.

got it, the current workaround is to use alternate ports with no path component -- works fine for us because we have complete firewall control, but that's not always the case


camera driver shouldnt require making changes in micropython

Hi Mauro,
I know you put this project a long time ago and you did a great job.
There is a very interesting way to structure the driver so people don't need to make any manual changes to micropython, it will just pick the new module where ever it is.
A good example of that is this TDT driver:   https://github.com/russhughes/ili9342c_mpy
It takes no time to setup and compile, I hope you like it! :)
Cheers and thanks for this fantastic driver!!

Done, thanks for the link.

I couldn't integrate one modification: for the PSRAM related I couldn't find a solution.
I couldn't switch off the CMake flag for the DBTree library and I got some problems with it (thus, I modified some other files).

@lemariva https://github.com/micropython/micropython/pull/8219 just got merged which removes the need to modify micropython for PSRAM changes.
As long as the sdk config sets CONFIG_SPIRAM_USE_MALLOC=y then micropython will now only claim 1/2 of the available PSRAM.  So with ESP32-CAM-MB its 4MB of PSRAM is split 2MB for the micropython heap and 2MB for esp32-camera or other idf components.
I included a modified version of your library(I expect to try and upstream the differences) in https://github.com/mocleiri/tensorflow-micropython-examples/ we are building https://github.com/mocleiri/tensorflow-micropython-examples/tree/main/boards/esp32/MICROLITE_SPIRAM_CAM without any DBTree changes.
Thank you for making this library as it enabled us to get the tensorflow lite for microcontrollers person detection example working.

@mocleiri thanks for posting this information. I've just updated the driver and works really nice.
Now it's possible to take HD photos with the camera. I added an argument fb_location to enable the use to select between PSRAM or DRAM. Summarizing:

The DBTree modifications were a problem with my disk format. I cloned the repository inside my encrypted drive (extended FAT) and then moved it to a Ext4 because of the symbolic links (those doesn't work under FAT). But something was still there.
The main.c file doesn't need any modification.

I'll check out your library, looks very promising!


IPFS walkthrough

Can we do this real quick today on the call?

@autonome Doesn't look like we'll have time for this, and I think I've done it myself anyhow this week.
However, if you still think it's worth doing, let me know.


feat(cli): add pixi config command

Implement #1022

Awesome!

ready for review

I just played around with this a little. One thing I found is that a broken value just shows "no config found" instead of showing an error when I run pixi config list. This may be something to improve in the config loading :)

I also couldn't figure out if lists work (e.g. cargo r -- config set default-channels 'bioconda,conda-forge,robostack'). Did you try that? Just curious. I know that conda config had some options for append and prepend, but I am not sure if it's used often enough to warrant more complexity. We could also do something like take a comma delimited list or so ...

Hey @chawyehsu awesome job! I just briefly did some tests on my end for functionality (without looking much at the code). Let me know what you think about the comments :) Looking forward to shipping this! 🚢

I found is that a broken value just shows "no config found" instead of showing an error when I run pixi config list. This may be something to improve in the config loading :)

If you mean "No configuration values found" then that's when all the options are default and no user defined ones. A different message could be used here but I'm not sure what's better.

it would be nice if pixi would print what file it actually changed

Sounds good, will add.

I also couldn't figure out if lists work (e.g. cargo r -- config set default-channels 'bioconda,conda-forge,robostack'). Did you try that? Just curious.

For default-channels, the only valid input format would be something like '["bioconda","conda-forge","robostack"]' which looks tedious but it's a strictly serialized list.

I am not sure if it's used often enough.

Me neither. For me I would prefer pixi config edit rather than pixi config set for editing complex options. And I can't find a friendly way to support editing object type of options like [mirrors], imagine pixi config set mirrors '<input>', what should <input> look like?

had some options for append and prepend

Do they support list type of options only?

Doc and test have been added. Also, two new subcommands mentioned above prepend and append are added for easier altering list keys.

Thanks a lot @chawyehsu, this looks good to me!


Executing macros from a txt file issue - need some guidance

Hello!  New to this sort of hobby computing and  been having a lot of fun with your work!  Thank you!  I have encountred one problem though.
I created a macro that I needed to execute, but it was too long to really use the webapp for.  So I put it into a text file.  I ran the command like (Linux) to start the macro.  NXBT connects and begins running the macro.
However, the Switch's change-grip menu pops up as the macro takes over, and, several button presses are input while in the grip order menu until an A press comes up.
This closes the grip menu and the macro goes on doing what it is supposed to do.  But, losing those button presses throws the macro off - and thus throws off the Post drawing by a number of pixels that it waste getting out of the grip order menu.
I know the instructions say I don't have to go to the grip order menu if NXBT is already connected.  But in order to put the cursor in the right place to start the post, I need a controller.  Which means the game will go to the grip order menu anyway.  I'm not sure what I'm doing wrong...
Thanks in advance!

Hey!
I personally haven't tried running long macros through the webapp, so I think you're going down the right route by sticking with the command line.
As far as the grip order screen: It sounds like you're having an issue similar to this one: #1
This is tricky because it seems like the grip order screen only pops up for some people. For me, I only got it once when I connected via NXBT for the first time and it was seamless every time after.
You could probably work around this yourself but manually adding a few extra commands to the beginning of the generated macro:
3.0s
A 0.1s
0.1s

Which just waits a moment, presses A to dismiss the popup, and the continues on as normal. I'm assuming this is what you need to do to proceed forward, you may have to tweak it a little.
I may go ahead and add something to the README to help others if they have this issue as well or maybe even add an extra flag to img2splat to optionally perform the workaround.

What helped me is removing the switch from the dock. For whatever reason I had this issue only if it was docked/connected to an external TV. In handheld mode, everything worked.

That might explain it! I've always undocked to run my macros.

Also had this issue while docked, got around it by adding a few a presses, something like this:
3.0s
A 1.0s
1.0s
A 1.0s
1.0s
A 1.0s
1.0s
I haven't tried undocked to see if the menu pops up. Should I be positioning the switch really close to my bluetooth antenna? I'm having like maybe 10 errors per print. I think I'll put it in cautious mode aswell. Wondering how consistent it's been for others.


JSON property names in schemas and documents

Is there any discussion / description / specification or why sneak_case was chosen instead of let's say camelCase for property names in JSON schemas? I would like to participate in a discussion, if there is! Thanks.

Details on that can be found here: https://github.com/hyperledger/aries-rfcs/blob/e5eec60332fa3761714c114197d0a33d0ae1e5e2/concepts/0074-didcomm-best-practices/README.md#snake_case-and-variants

Thank you! Did you have any public discussions around this design decision? If there is no, maybe it's a good place to start.

We want to avoid a religious debate about these conventions, and we want to leave developers the freedom to choose their own styles.

I find it really weird, aries is all about standardization and interoperability, but you left this fundamental part dynamic. Super weird.

The community tries to use snake_case in JSON key names, even though camelCase is slightly more common.

I think camelCase if quite more common, and many big companies / big apis / libraries adopt camelCase (actually I don't know any popular library adopting snake_case for the json property names). Anyway, you admit its more common, but...

However, it was felt that snake_case

you make your decision based on feelings

because it didn't raise the questions about acronyms that camelCase does (is it "zeroOutRAMAlgorithm", "zeroOutRamAlgorithm", or "zeroOutRAMalgorithm"?)

and questionable issues (camelCased is used everywhere, including variable names in programming, we all know how to handle these edge cases)

The main rule to follow with respect to case is: Use the same convention as the rest of the code around you, and in JSON that's intended to be interoperable, use snake_case unless you have a good reason not to. Definitely use the same case conventions as the other keys in the same JSON schema.

or use camelCase unless you have a good reason not to. You kinda want to give a freedom to prevent religious battles, but at the same time you understand that you want interoperability. But community will have to use a snake_case because documentation and source code use snake_case, it will become a standard and people who don't want to use snake_case wouldn't actually have a choice otherwise they can miss interoperability. So, freedom that you gave is almost a fake.
The reason why camelCase works better is because it's consistent with all other libraries community use and it stays natural with variable names in your code (because at the all property names are just mapped into variables), and you don't have to write separate transformation logic in your code. And the most important w3c DID spec use camelCase. And when I read your RFCs sometimes I see code with snake_case property names, and sometimes I see code with camelCase property names. Super weird.
p.s. sorry for opening a religious topic, but if not me, somebody else will do it some day anyway.

I agree with you @pleerock.
The lack of a strict standard, and the inconsistency in casing between property and protocol names is messy. Especially when properties from the DID spec are included in DIDComm messages.
But I think it would be better to have this conversation in the DIDComm Messaging repo. DIDComm is being extracted from Aries into a 2.0 standard, which Aries will eventually support. As DIDComm is messaging based on DIDs it would make sense to use the same conventions as DIDs.
If DIDComm doesn't move to camelCase it wouldn't make sense to use camelCase in Aries, that would be even messier IMO.

and it stays natural with variable names in your code

That depends on the language you're using. The Python convention is to use snake_case.

That depends on the language you're using. The Python convention is to use snake_case.

of course. I meant probably 90% percent of languages. But that is not my main point.
Thank you for your response, I'll create same issue in the DIDComm Messaging repo.


Adding query for all repos for an org or user

Description
Adds polling for the repos belonging to an org, and allows them to be used instead of a list of specific repos.
Fixes
#6
Type of PR

[ ] Bug fix
[X] New feature
[ ] Breaking change

Checklist

[X] Code follows this projects style guide
[X] I reviewed my code
[ ] Tested in deployment environment
[X] Tested in an alternate environment (please update here: tested locally)
[X] Required documentation has been updated
[ ] Other (explain: )

Additional information

Fixed a few suggestions. Not sure the encapsulation adds anything except potential for confusion around what should be passed in. This value will never change, so no reason to have it set manually instead of using a constant. I've added an _ to the start to indicate it's private.

Looks good, tested this on my device and everything works.


Mock coveralls tests

coveralls makes a call to npm to find out the github info of the modules, parses the content then makes calls to coveralls.
At least the npm call can be mocked from local to increase test execution speed.

solved https://github.com/nodezoo/nodezoo-coveralls/pull/7


Remote config

I deviated from the official Firebase remote config API with regard to namespaces to reduce duplication - see my RemoteConfigValues interface.  I'd be happy to roll a version of this code that exactly mirrors their API if you prefer.  The unit tests around fetch() are a little light (no error cases) but you have already exercised the RxHandler elsewhere.  If you feel you would like non-happy path tests I can add them.

Sorry for a such a long response.
Not sure what is the point in mirroring Firebase's API here.
The idea of this library is basically to provide lightweight rx-wrappers on Firebase, but not in doubling its logic.
so I keen to see just public static fetch methods here.


feat: [sc-36593] Implement Load Enumerations Request

Story details: https://app.shortcut.com/tiledb-inc/story/36593

We are missing the enumerationName optional property from the Attribute type. Other than that LGTM.


Update README.md

PR描述: edit README.md
详细描述:
Change some grammar errors.
"which"->"that"
"support"->"It supports"
", its"->". Its"
", the"->". The"
"of"->"with"
"support"->"It supports"
"Simple to use"->"It is simple to use"
关联issue:
fix #X

Thanks for your contibution.


MaxBody(0) seems to be causing server to leak connections

Question
I am flagging this as a question and not a bug because I haven't gathered sufficient proof yet, but I have a strong suspicion that maxBody=0 causes the target to leak connections.
I performed the same test multiple times against the exact same server and observed similar results: a ramp to 8000 req/s with a payload of 2 KB and a client timeout of 3s.
The charts below show the receive throughput measured from the target (not from vegeta), in one case with maxBody=-1, in the other case with maxBody=0. The "rt" series is the receive throughput, the "q" series is just an internal queue which has no influence on the results of the attack.

maxBody=-1

Running attack Ramp{5 intervals, 1600 hits/1s increments} for 20s
Attack completed
---- Results ----
duration     : 20.002541209s
bytes out    : {196608000 2048}
bytes in     : {0 0}
requests     : 96000
wait time    : 8.562478ms
rate         : 4799.390187323073
throughput   : 4797.336593801439
success %    : 100
status codes : map[200:96000]
errors       : []

maxBody=0

Running attack Ramp{5 intervals, 1600 hits/1s increments} for 20s
Attack completed
---- Results ----
duration     : 31.093824885s
bytes out    : {189184000 1987.8742027340836}
bytes in     : {0 0}
requests     : 95169
wait time    : 5.578920017s
rate         : 3060.704186505873
throughput   : 2518.9006235244256
success %    : 97.06417005537517
status codes : map[0:2794 200:92375]
errors       : [Post "http://thrpt-receiver.perf-thrpt-receiver": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]

In the second case, I do observe some failures at about the same threshold every time, and noticed that the wait time was about 5s, which is my server's IdleConnTimeout (this could also be a pure coincidence).
This particular server only returns HTTP headers and no body, so I suppose it is normal to see 0 byte in in both results, regardless of the value of maxBody(?)
I checked the code of the lib and confirmed that the response body was being closed correctly in a deferred statement, so I'm a bit puzzled about what may be happening here.

Sorry for not responding to this when you first posted it. I'm spending time maintaining Vegeta again. If you're still interested in looking into this, please re-open.


Unable to install Cockpit using ays

On my local machine (mac), with an up to date js8 (master), and having first prepared a valid cockpit.yaml, I get this:
ays blueprint

**** TRACEBACK ***
Traceback (most recent call last):
  File "/usr/local/bin/ays", line 333, in <module>
    cli()
  File "/usr/local/bin/ays", line 101, in blueprint
    atyourservice.execute_blueprint(role=role, instance=instance, path=path)
  File "/usr/local/lib/python3.5/site-packages/JumpScale/baselib/atyourservice/AtYourServiceRepo.py", line 267, in execute_blueprint
    bp.load(role=role, instance=instance)
  File "/usr/local/lib/python3.5/site-packages/JumpScale/baselib/atyourservice/Blueprint.py", line 86, in load
    recipe = self.aysrepo.getRecipe(aystemplate_name)  # will load recipe if it doesn't exist yet
  File "/usr/local/lib/python3.5/site-packages/JumpScale/baselib/atyourservice/AtYourServiceRepo.py", line 640, in getRecipe
    template = self.getTemplate(name=name, die=die)
  File "/usr/local/lib/python3.5/site-packages/JumpScale/baselib/atyourservice/AtYourServiceRepo.py", line 623, in getTemplate
    raise j.exceptions.Input("Cannot find template with name:%s" % name)
OurExceptions.Input: ERROR: Cannot find template with name:g8client ((type:input.error)

***ERROR***
  type/level: input.error/1
Cannot find template with name:g8client

you need to have .ays file in your repository directory
also It should be (a valid git repo) -- (run git init)
also It needs to have remote: so go to your github account and create a remote repo and execute the following from your ays repo directory
git remote add origin https://github.com/USERNAME/REMOTEREPO.git after replacing username with your github username and remoterepo with your remote repo

yes the .ays problem I fixed, let me fix the rest

trying to understand the error message, "Cannot find template with name:g8client", I can only confirm that the g8client schema.hrd and g8client actions.py are in the up to date (origin/js81) directory /Users/yves/Documents/GitHub/JumpScale/ays_jumpscale8/clients/g8client
Not sure where/how the code searches for the g8client template?
What else can I check?

I just discover that I also still have jumpscale_core8 directory in ~/opt/code/github/jumpscale, while I've been using in /Users/yves/Documents/GitHub/JumpScale for most of my work, that could be the problem? Sorry for my ignorance...

Is this still an issue we need to look into? Or is fixed with a clean installation?

this still an issue yes, can't get it right on my mac machine

should be fixed , update jumpscale_core8 repo and ays_jumpscale8 repo , and it should work


ERROR    Cannot set property Before, or unknown property.

fresh install of Ubuntu 16.04
working through the doc at: https://github.com/coreos/coreos-baremetal/blob/master/Documentation/getting-started-rkt.md
Client VMs
sudo ./scripts/libvirt create-rkt
Starting install...
Allocating 'node1.qcow2'                                                                         | 6.0 GB  00:00:00
ERROR    Cannot set property Before, or unknown property.
Removing disk 'node1.qcow2'                                                                      |    0 B  00:00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start node1
otherwise, please restart your installation.
Starting install...
Allocating 'node2.qcow2'                                                                         | 6.0 GB  00:00:00
ERROR    Cannot set property Before, or unknown property.
Removing disk 'node2.qcow2'                                                                      |    0 B  00:00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start node2
otherwise, please restart your installation.
Starting install...
Allocating 'node3.qcow2'                                                                         | 6.0 GB  00:00:00
ERROR    Cannot set property Before, or unknown property.
Removing disk 'node3.qcow2'                                                                      |    0 B  00:00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start node3
otherwise, please restart your installation.
Starting install...
Allocating 'node4.qcow2'                                                                         | 6.0 GB  00:00:00
ERROR    Cannot set property Before, or unknown property.
Removing disk 'node4.qcow2'                                                                      |    0 B  00:00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start node4
otherwise, please restart your installation.

Looks like this might actually be a bug with Ubuntu.
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1529079

I was able to get past the error.  Here is what I did.
sudo nano /etc/apt/sources.list
add xenial-proposed to the sources
deb http://us.archive.ubuntu.com/ubuntu/ xenial-proposed restricted multiverse main universe
sudo apt update
sudo apt install systemd/xenial-proposed
try creating the VM's again
sudo ./scripts/libvirt create-rkt
Starting install...
Allocating 'node1.qcow2'                                                                         | 6.0 GB  00:00:00
Creating domain...                                                                               |    0 B  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
Starting install...
Allocating 'node2.qcow2'                                                                         | 6.0 GB  00:00:00
Creating domain...                                                                               |    0 B  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
Starting install...
Allocating 'node3.qcow2'                                                                         | 6.0 GB  00:00:00
Creating domain...                                                                               |    0 B  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
Starting install...
Allocating 'node4.qcow2'                                                                         | 6.0 GB  00:00:00
Creating domain...                                                                               |    0 B  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
error gone bye-bye... I think...


add links to tutorials

Add links to FPiL and the metaprogramming book.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/add.20links.20to.20other.20lean.20tutorials.20to.20tpil4

I didn't notice there was already #54 - that fixes #28.


README is missing release instructions for Python packages

Done in https://github.com/foxglove/schemas/pull/94


How to get DecisionTasks output with multiple tasks on a single decision case.

I looked into EXCLUSIVE_JOIN, it gives output of executed decision case where only single task present in each decision case.
Example:
In Exclusive_Join it is mentioned that,
True: T1 -> T2 -> EJ; EJ will have T2's output.
False: T1 -> T3 -> EJ; EJ will have T3's output.
My workflow is
True: T1 -> T2,T3 -> EJ; I need both T2 and T3 tasks output here.
False: T1 -> T4,T5 -> EJ; I need both T4 and T5 tasks output here.
In "True" decision case I have T2 and T3 tasks executing and in "False" decision case I have T4 and T5 tasks executing.
I tried Exclusive_Join like this
{
"name": "simple_task",
"taskReferenceName": "Decision1_join",
"inputParameters": {
},
"type": "EXCLUSIVE_JOIN",
"decisionCases": {},
"defaultCase": [],
"forkTasks": [],
"startDelay": 0,
"joinOn": [
"T2",
"T3",
"T4",
"T5"
],
"optional": false,
"defaultExclusiveJoinTask": [],
"asyncComplete": false,
"loopOver": []
}
when tried "${Decision1_join.output}" in workflow outputParameter:

In true decision case I was always getting T2's output.
In false decision case I was always getting T4's output.

How to get multiple tasks output in a single decision case?

"joinOn": [
"T2",
"T3",
"T4",
"T5"

means, all T2, T3, T4, and T5 are forked from a decision. So, your usage is not correct per what you are expecting.
If you want the output of T2, T3 together (I assume that T3 gets executed after T2 completes) you need to pass the output of T2 to T3 and hold all the values to pass on to join. In this case, you will do joinOn only on the tasks T3 and T5 per your scenario.

"joinOn": [
"T2",
"T3",
"T4",
"T5"

means, all T2, T3, T4, and T5 are forked from a decision. So, your usage is not correct per what you are expecting.
If you want the output of T2, T3 together (I assume that T3 gets executed after T2 completes) you need to pass the output of T2 to T3 and hold all the values to pass on to join. In this case, you will do joinOn only on the tasks T3 and T5 per your scenario.

How to pass output of T2 to T3? If somehow we passed T2's output to T3 and reference "T3.output" in workflows outputParameter we will get both T2 and T3 whereas we are expecting only T3's output.

"joinOn": [
"T2",
"T3",
"T4",
"T5"

This representation may be wrong but I do need output of all the tasks that are executed in single decision case without sending one tasks output to other task.

I do need output of all the tasks that are executed in single decision case without sending one tasks output to other task.

Without passing one tasks output to another, you would not be able to get what you are looking for. Because, the total workflow execution is stateless. They are all completely distinct. Unless you piggyback the output from T2 to T3, you cant get the T2's output as part of your T3.

Also, consider the SET_VARIABLE system task which may be helpful to your use-case here.


Publisher: Do not show help dialog when pressing enter

Changelog Description
Do not show help dialog when pressing enter; avoid Help button taking focus
Additional info
Fix #5791
Testing notes:

Pressing enter key in e.g. variant field to create instance should not pop-up help dialog

Note that this already wasn't the case in Maya, but everywhere else it did occur. So in Maya it should show no difference in behavior.

Did tested in max 2023 and it fixes the issue with showing up help pop up window but introduces strange switching to the other publish pane....see the vid for more insight.
Need to be addressed.
Publisher_Enter_Confirm.mp4

@LiborBatek Ok, so this is due to the Help button not receiving focus but now the Create tab (top left) takes the focus and thus enter clicks that tab entry. When I disable the focus policy for the tabs themselves then the next focus is the "Save" icon bottom right. As such clicking enter "saves" the settings which I'm not sure is preferred either.
@iLLiCiTiT I feel like we're better off ensuring that the KeyPressEvents doesn't pass through to begin with from the Create Options Widgets and the Instance Publish Option widgets
Currently whenever actively being in any of the fields in this part of the UI:

And this one:

Actually applies the Enter key event to the focused object, like the Help button, the Tabs above it or the Controls below it. I'd actually argue however that if currently any of the entries in the screenshotted areas above are active that it should not pass through key events (or at least not enter keys?) We'd still want to be able to TAB out of it however?

Can we add the ignore logic to existing method in window?
if event.key() in {
    QtCore.Qt.Key_Return,
    QtCore.Qt.Key_Enter,
}:
    event.accept()
    return

Can we add the ignore logic to existing method in window?
if event.key() in {
    QtCore.Qt.Key_Return,
    QtCore.Qt.Key_Enter,
}:
    event.accept()
    return

As far as I know we can not put it on the Window itself - because children widgets as far as I know will still be first receiving the event before it hits the Windows' event upstream. We could install an event filter on the window which triggers for ALL children events but that'd just be slower / getting way more events than we'd like.
Basically the logic is this:

text field, press enter. does the text field process the event?
while not processed, does the parent process the event? (recursively going up the parents to the first one dealing with the event)

As far as I know we can not put it on the Window itself - because children widgets as far as I know will still be first receiving the event before it hits the Windows' event upstream

I've tried and it does not trigger the button... I think the default is triggered only if the event is not accepted at any child of the window hierarchy.

@iLLiCiTiT seems to work - like this?

Weird - If you open for example max and publisher, hit enter, then help window will appear. But after reset, enter won't open it anymore. Same thing in Houdini

That's because the active button then has changed to the reset button most likely (or some other field). Anyway, that goes to show that this new fix with the event capture on the window does not work and we should likely revert again to this commit https://github.com/ynput/OpenPype/pull/5838/commits/46064849e1cca25cfc0d47f236902fe87f44511f
@antirotor can you confirm that commit instead works as intended?

@antirotor can you confirm that commit instead works as intended?

it doesn't work either - I replicated the original change in new code:
    def keyPressEvent(self, event):
        # Ignore escape button to close window
        if event.key() == QtCore.Qt.Key_Escape:
            event.accept()
            return

        # Avoid enter key to activate the "help" dialog, fix #5791
        return super().keyPressEvent(event)

also it behaves differently when you click on different parts of the publisher window. On some parts, the help window won't pop-up, but on the others it will.

@antirotor can you confirm that commit instead works as intended?

it doesn't work either - I replicated the original change from 4606484 in the new code:
    def keyPressEvent(self, event):
        # Ignore escape button to close window
        if event.key() == QtCore.Qt.Key_Escape:
            event.accept()
            return

        # Avoid enter key to activate the "help" dialog, fix #5791
        return super().keyPressEvent(event)

also it behaves differently when you click on different parts of the publisher window. On some parts, the help window won't pop-up, but on the others it will.

Note that it was on a different class - not on the window. Did you do that? Best to just checkout that commit actually.

Note that it was on a different class - not on the window. Did you do that? Best to just checkout that commit actually.

Well, the original commit works, but not for the first time - when you open the Publisher and immediately hit enter, help will open. But once you click on anything inside or reset, enter will no longer open help window.

Note that it was on a different class - not on the window. Did you do that? Best to just checkout that commit actually.

Well, the original commit works, but not for the first time - when you open the Publisher and immediately hit enter, help will open. But once you click on anything inside or reset, enter will no longer open help window.

That sounds fine - maybe somewhat confusing, but more acceptable than pressing enter in the text fields doing it.
@iLLiCiTiT thoughts? Revert to that commit - other options?

This issue was resolved by merging https://github.com/ynput/OpenPype/pull/6107
closing.


Add basic CSS styles

Something to start with? Very subjective to taste, though.

@jacobhamblin thanks! I moved variables into a separate file.


monorepo + website

moves everything to website folder for monorepo setup
Adds Nextjs website with Jest testing to start adding any tests

i'd prefer to keep supabase/ out at the repo root since it will be shared by the cli/ module and the supabase command does not take paths. nbd if that'd be painful to work with though

nope that suits me ! dw about the UI - I will remove the dropdown


CIF Related

Implement CIF related functions and complete baseline testing on AISHELL.

@MrSupW Thanks for the contribution, it's really a big and amazing work! Since it's a lot of change, it will take several days to finish the whole review pipeline.
And please fist make sure:

all the lint is paased, so we get tidy and good style code.
please check if we could share some code with the preivous implementation, so we can reuse the common code blocks as much as possible.


Combine support for Decodable QuerySnapshot publisher

Here is a proposal for a Decodable publisher for the upstream QuerySnapshot.
Here is a code snippet using the publisher returned by getDocument()
    let noBooks = [Book]()
    db.collection("books").getDocuments()
       .decode(type: Book.self)
       .collect()
       .replaceError(with: noBooks)
       .assign(to: \.books, on: self)
       .store(in: &cancellables)

I reopened and changed the base branch to master. Make sure you resync the local branch.

Hi @ziadtamim - sorry for the long delay on this. I'm going through some old PRs and closing ones that we don't plan on merging anytime soon. It seems that patterns like async/await and Observable will be the future for async programming. Given this, I'm closing this PR. Please reach out if you'd like to re-open and discuss this PR more. Thanks for the contribution!


Fix: Navbar position

Description
The hero section content is not visible because the position of navbar is fixed.
Changing the position to sticky will do the job.

Stack
Project stack or language (eg. Frontend):
Working Environment
Operating System (eg Linux):
Browser (eg. Chrome):
Device (eg. Laptop or Phone):
Screenshots
Please add a screenshot if applicable

[Optional] Additional Context
Add any other context about the problem here.

Issue resolved


Ability to relabel a training sample.

UI:

Click re-label button.
Press 1-9 to re-assign.

See commit https://github.com/damellis/sensors/commit/127ec884cddbc328ce3e18e71b56fb771783af98.


Error Msg: Could not load requested bundle.

@darh @tjerman I have uploaded my extension onto the corredor container and deployed but the corredor logs are showing me error: could not load requested bundle.

version is 2020.6.
Also, I am preety confused about bundling of client scripts as it is mentioned in the document. We have to upload the bundled script inside each application folder like compose or just need to add the webpack dependency in package.json file.
Please help me on this.

@ranjanmanish95
Note that I will be referring to the documentation of the latest 2021.3 release. Corredor related things remain mostly the same but the documentation is quite better.
Client scripts need to be bundled in order for them to work properly with modules and such.
Corredor automatically creates bundles based on the (let's call it) "bundle directory" defined by the file structure.
As an example, if you wish to use an automation script inside Compose, you would place your scripts under the client-scripts/compose directory -- this creates a compose.client-scripts.js bundle.
In regards to the error message. If you look closely, you will see that it is trying to request the admin.client-scripts.js bundle (automation scripts dedicated for the admin web app). Since our built-in ext. nor (I'm assuming) your ext. does not define any client scripts for the admin web app there is no bundle available (the web app requests the bundle automatically).
It's a little lame how we show this error, but it's not not ok.

@Tomaž Jerman
Thanks for reaching out and guidance. This will help me a lot while
bundling the extensions.
Also just one query is that i want to write an automation script to fetch
and save the data into corteza using an already available api endpoint and
Compose API. So for that which scripts should i use?? (sink scripts or
normal server side).
And if i use sink scripts then do i have to add http configuration of the
server and corredor inside .env file??
Your guidance is much appreciated.
Thanks and regards
Manish Ranjan
On Mon, Apr 12, 2021 at 1:17 PM Tomaž Jerman @.***>
wrote:

@ranjanmanish95 https://github.com/ranjanmanish95
Note that I will be referring to the documentation of the latest 2021.3
release. Corredor related things remain mostly the same but the
documentation is quite better.
Client scripts need to be bundled in order for them to work properly with
modules and such.
Corredor automatically creates bundles based on the (let's call it)
"bundle directory" defined by the file structure
https://docs.cortezaproject.org/corteza-docs/2021.3/integrator-guide/automation-scripts/index.html#_file_structure
.
As an example, if you wish to use an automation script inside Compose, you
would place your scripts under the client-scripts/compose directory --
this creates a compose.client-scripts.js bundle.
In regards to the error message. If you look closely, you will see that it
is trying to request the admin.client-scripts.js bundle (automation
scripts dedicated for the admin web app). Since our built-in ext. nor (I'm
assuming) your ext. does not define any client scripts for the admin web
app there is no bundle available (the web app requests the bundle
automatically).
It's a little lame how we show this error, but it's not not ok.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cortezaproject/corteza-server-corredor/issues/16#issuecomment-817573159,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AICOBNW6AGMX7SEAOGYBM53TIKQRFANCNFSM42ELXBOQ
.

@ranjanmanish95
Sink scripts should be used when you wish to use Corteza "as a webhook"; when a request comes into a sink route, a corresponding automation script/workflow is triggered.
"Regular scripts" should be used when some operation should be invoked from Corteza, such as send an email when a record is created.
The above is not 100% true (sink scripts can also be invoked from Corteza, and "regular scripts" can be invoked from outside), but is close enough to help you better imagine it.
For your case, you define a regular script with a manual (explicit) trigger that would use a library like Axios to fetch the data from the external API.
The response can then be processed and saved to Corteza using Corredor helpers.

And if i use sink scripts then do i have to add http configuration of the
server and corredor inside .env file??

I am unsure what exactly you mean by this. How you configure your scripts to know what endpoint to use is completely up to you. You can define a separate .env (or similar config) file inside your extension that defines the endpoints. You can also have the endpoints baked in or provided via a Settings module (like we have done for the CRM and ServiceSolution extensions).

I will close the issue here; If there is anything else regarding the original issue feel free to reopen it.
If there are other things, feel free to open new issues/reach out on our forum.