Logical $and does not support multiple $or expressions

Describe the bug
 A clear and concise description of what the bug is.
In an $and logical expression, according to the docs, multiple expressions can be contained and they must all evaluate to true to satisfy the condition. However, if more than one $or expression is contained in $and, all apart from the first will be ignored.
Version
 The Fuse.js version where this bug is happening.
6.2.0
Is this a regression?

Don't know
🔬Minimal Reproduction

Data:
[
  {
    "title": "Old Man's War",
    "author": {
      "firstName": "John",
      "lastName": "Scalzi",
      "age": "61",
    }
  }
]

Main:
const options = {
  keys: [
    "title",
    "author.firstName",
    "author.lastName",
    "author.age",
  ]
};

const fuse = new Fuse(list, options);

return fuse.search({
  $and: [
    { title: 'old' }, // Fuzzy "old war",
    {
      $or: [
        { 'author.firstName': "j" },
        { 'author.lastName': "Sa" },
      ]
    },
    {
      // This should return no result, since nobody has age === 62
      $or: [
        { age: "'62" },
        // ...
      ]
    },
  ]
})

Result:
[
  {
    "item": {
      "title": "Old Man's War",
      "author": {
        "firstName": "John",
        "lastName": "Scalzi",
        "age": "61"
      }
    },
    "refIndex": 0
  }
]

Additional context

If you move the expression:
    {
      $or: [
        { age: "'62" },
        // ...
      ]
    }

before the first $or, you'll see it gets correctly picked up and no result is returned.
Related to #411.

TITLE == old AND (OR AGE == 62) -- could be understood as TITLE == old
AND (true OR AGE == 62) which would evaluate to true.  It looks to me
like a single $or is understood as having an implicit true.
Can you replicate with a $or which two parts, one of which always
evaluates to false?

@cshoredaniel I do not think it works as you describe, since if you move the second $or expression up in the $and array it gets correctly picked up.
Also, mine was only a simple example but indeed using more statements in the $or condition holds the same results.

Thank you for the info.  That kind of eliminates my hypothesis.

Thanks for flagging. Will take a look.

Your setup is incorrect. You need to enable extended search, and the age path should be author.age.
Thus it'll be the following:
  const options = {
    useExtendedSearch: true,
    keys: ['title', 'author.firstName', 'author.lastName', 'author.age']
  }

  const fuse = new Fuse(list, options)

  const result = fuse.search({
    $and: [
      { title: 'old' }, // Fuzzy "old war",lt
      {
        $or: [{ 'author.firstName': 'j' }, { 'author.lastName': 'Sa' }]
      },
      {
        // This should return no result, since nobody has age === 62
        $or: [{ 'author.age': "'62" }]
      }
    ]
  })

Regardless, even with the correct setup, the bug still occurs. Just about to publish a fix for this 😄

@krisk thanks for looking into this. I am testing your new solution but it does work properly since the score is not calculated and, therefore, there is no sorting. If you include the option flag includeScore: true in the example you posted above you will see this. I believe unit tests missed this particular.

I tested the build 6.3.1 and unfortunately it has other issues. Now in the search includes some results that have no overlap whatsoever with the searched word and have a score of e.g. 1.3376100250904978e-8. These appear at the top and even setting a threshold value of 0.5 does not get rid of them.
Moreover, when it finds a perfect match the result holds a very high value too (e.g. "score":1.4901161193847673e-8). I am happy to provide more information if needed. Thanks for your hard work.

Thanks @belvederef for looking into this!

Moreover, when it finds a perfect match the result holds a very high value too (e.g. "score":1.4901161193847673e-8). I am happy to provide more information if needed. Thanks for your hard work.

That evaluates to 0.0000000149, so, a pretty low value to me 😄 . Score won't always necessary be 0 (more info on scoring theory). The threshold is against the fuzziness score, and not the relevance score (which is used for overall sorting computation).
Could you send me example list and your fuse setup? Thanks!

 I overlooked the e-8 and got confused because the searched keyword did not appear in that result at all. Here is a repo that reproduces the issue https://github.com/belvederef/fuse-449.
If you start the project and navigate to http://localhost:5050/api/predicate?search=child to search the word child, you will see the results are all messed up.

Preview of the results
child
http://dbpedia.org/ontology/child

displacement (ÃÂ¼ÃÂ³)
http://dbpedia.org/ontology/displacement

acceleration (s)
http://dbpedia.org/ontology/acceleration

top speed (kmh)
http://dbpedia.org/ontology/topSpeed

id
http://www.w3.org/ns/activitystreams#id

weight (g)
http://dbpedia.org/ontology/weight

width (ÃÂ¼)
http://dbpedia.org/ontology/width

organization
http://www.w3.org/ns/org#organization
Indica l'Organization in cui l'Agent ÃÂ¨ un membro.

member
http://www.w3.org/ns/org#member
Indica la Person (o un altro Agent) coinvolto in una relazione di Membership. ÃÂ l'inverso di `org:hasMembership`.

transitive sub-organization
http://www.w3.org/ns/org#transitiveSubOrganizationOf
La version transitive de la propriÃÂ©tÃÂ© subOrganizationOf, renvoie une reprÃÂ©sentation de toutes les organisations qui contiennent celle-ci. Notez que ceci est une super-propriÃÂ©tÃÂ© de la relation transitive donc elle pourrait contenir des assertions additionnelles mais cet usage n'est pas recommandÃÂ©.

equal (0..*)
http://purl.org/goodrelations/v1#equal
This ordering relation for qualitative values indicates that the subject is equal to the object.

architect
http://dbpedia.org/ontology/architect

However, if you change the fuse.js version in the package.json to 6.2.0, the results are correct.

Preview of the results
child
http://dbpedia.org/ontology/child

childMaxAge
http://schema.org/childMaxAge
Maximal age of the child.

childMinAge
http://schema.org/childMinAge
Minimal age of the child.

children
http://schema.org/children
A child of the person.

architect
http://dbpedia.org/ontology/architect

numChildren
http://schema.org/numChildren
The number of children staying in the unit.

child organisation
http://dbpedia.org/ontology/childOrganisation

children features
http://www.geonames.org/ontology#childrenFeatures
Links to an RDF document containing the descriptions of children features

left child
http://dbpedia.org/ontology/leftChild

right child
http://dbpedia.org/ontology/rightChild

parent-child property
http://purl.org/linked-data/cube#parentChildProperty
Specifies a property which relates a parent concept in the hierarchy to a child concept.

Apologies if this is not the simplest setup. let me know if you have any questions.

It seems to be working as expected. The search query is also looking for 'Property$', which is matching all those items.
The reason why it appeared as if it was working in the previous version is because of the original bug.
Perhaps you can fine-tune the fuzzy searching by increasing minMatchCharLength.

@krisk thanks for looking into this! You are absolutely right, the seemingly messed up results were caused by my attempt at filtering the results. E.g. in my case I want to find matches but only among all the entries that have a property type ending with the string Property. One way I could make it work for this use case was using the extended search with a low value (0.00001) so that the logical operators would do their job at filtering the data but would not affect the score of the results.
I would see this as a pretty common use case and it ties in with the work described in #411. This could be specified in a new property in options that gets merged with the global fuse.js options, so that you could do at query time:
fuse.search({
  // logical operators for matching
},
{
  filters: {
    // logical operators for filtering not affecting the score
    $and: {
      { type: 'Property$' },
      { $or: [...] },
      // etc.
    }
  }
})


Automatic update of PLaSK to 2024.06.18

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

[X] Does your manifest conform to the 1.5 schema?

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

This package installs and launches normally on a Windows 10 VM.


Any need/interest on the design docs?

Hi all,
I'm working on a project closely related to some of the needs mentioned in this vector calculus design doc. I know some of this is several years old, so can anyone share an update on where this stands? If it's a solved problem, can you send links to solid libraries? If not, what are the biggest needs?
Thanks!

Alex

Hi Alex! You're right that this list hasn't been maintained or updated on a long time. Our main site is at https://pangeo.io/
The main tool in our ecosystem that meets these needs is probably xgcm. See https://xgcm.readthedocs.io/en/latest/ufunc_examples.html for examples.

Thanks @rabernat! I'll take a look at xgcm. Also, I'm really enjoying Pangeo and would love to contribute to the project if I could. I know many of the packages mentioned (xarray, numpy, geopandas) on Pangeo have their own issues and roadmap sections; is there a good place to find the same thing for Pangeo in particular?

is there a good place to find the same thing for Pangeo in particular?

I wish! 🙃  But no, we do not have that level of coordination. If you want to get involved, a good place to start might be to join the weekly telecon.

Great place to start, thanks @rabernat!


Combining multiple reports into a single GitHub issue

In https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/599 I learned that it is possible already to merge multiple reports into a single reports by apply a smart concatenation of multiple GHA steps. Very cool!
Here an example of how the resulting combined report looks like:
https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/601
I had some possible improvement ideas, related to this "combined reports" scenario:
Custom report title
The top-level title in the GitHub issue is always "Issue Metrics" right now. That is not really an issue if the GitHub issue only contains a single report, as the title of the GitHub issue itself can be used to provide a customized description of what the report is about.
However when a single GitHub issue contains multiple reports, this becomes more tricky.
Therefore we could add a configuration value REPORT_TITLE, roughly like this:

field
required
default
description

REPORT_TITLE
false
"Issue Metrics"
A custom title that will be printed at the very top of the report. Note: Most useful when combining multiple reports into a single issue.

Custom output file
The issue_metrics GHA always writes to the file issue_metrics.md.
When combining multiple reports into a single issue it would be helpful to write to different filenames, so that those files can then be concatenated into a single file, which is then written to a GitHub issue.

field
required
default
description

OUTPUT_FILE
false
issue_metrics.md
A custom output file that the report will be written to. Note: Most useful when combining multiple reports into a single issue.

Always print the title and the search query
As shown in https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/601, an empty report will only say "no issues found for the given search criteria".
It would be helpful to always print the title, as well as the search query that was used.
That helps will debugging and identifying what the specific report was meant to be about.
### Tasks
- [ ] https://github.com/github/issue-metrics/pull/157
- [ ] https://github.com/github/issue-metrics/pull/160

@zkoppert looking forward to your feedback on this.
If you were considering to integrate a multi-report feature into the core functionality of issue-metrics itself, then some of the ideas above wouldn't be that useful any more.

Yeah, these are great ideas!! I think that these are ready to implement as you described them here. I'll start by tackling the last one of always printing the title and search query.

Awesome!
I will also try myself on one of the other ones. They sound like they shouldn't be too hard to implement but of course the devil is in the detail :) I think I will need with creating tests, as I wasn't clear from a first read of the repo what the testing approach is. So likely I will push the functionality with a minimal test, and then ask for review and help with further tests.

FYI here's an example of how we combine reports for Orchard Core. As you can see, not too complex, we just concat files in PowerShell.


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative/serving-writers knative/eventing-writers
/assign knative/serving-writers knative/eventing-writers
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/hack 9b2ed84...51a42b2:
  > 51a42b2 Update community files (# 146)
  > 81ef5cc Update community files (# 145)
  > cfb3eb8 Enable opting out Preemptible/Spot GKE Worker Nodes (# 144)
  > 9dd1ec1 Look at package name when checking whether the shell package can be used (# 142)
  > f1822b1 Disable Logs/Metrics on GKE and Run Preemptible Nodes (# 138)
  > 32375dc remove clusteradmin grant (# 141)
  > 987528e Temporarily fix the unit tests for library.sh (# 143)
  > da09733 print commit hash (# 140)

/lgtm
/approve


README: Trident-mode for live browser interaction

Hi !
I think it is necessary to link those two projects so this is my proposal. I'd be ok to add this on another doc than the readme (github's wiki?), but it's more efficient to have it there.
But… I submit it without testing it (yet?).
cheers !

I put a link to trident-mode on the project page instead: https://common-lisp.net/project/parenscript/


Docker tag pointed to the same image causes the update

Is there an existing issue for this?

[X] I have searched the existing issues

Package ecosystem
Docker
Package manager version
No response
Language version
No response
Manifest location and content before the Dependabot update
/probe/Dockerfile
dependabot.yml content
version: 2
updates:
  - package-ecosystem: 'gomod'
    directory: '/'
    schedule:
      interval: 'weekly'
  - package-ecosystem: 'gomod'
    directory: '/tools'
    schedule:
      interval: 'weekly'
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
  - package-ecosystem: "docker"
    directory: "/probe"
    schedule:
      interval: "weekly"

Updated dependency
From: registry.access.redhat.com/ubi8/ubi-minimal:8.7
To: registry.access.redhat.com/ubi8/ubi-minimal:8.7-1085
What you expected to see, versus what you actually saw
Expected behavior:
No PR should be raised since tags are pointing to the same image. PR should be raised only if minor version is updated, i.e. 8.7 -> 8.8 (without hyphen).
Actual behavior:
PR has been raised.
Native package manager behavior
$ docker pull registry.access.redhat.com/ubi8/ubi-minimal:8.7
8.7: Pulling from ubi8/ubi-minimal
c7e856e03741: Pull complete
Digest: sha256:dc06ba83c6f47fc0a2bca516a9b99f1cf8ef37331fd460f4ca55579a815ee6cb
Status: Downloaded newer image for registry.access.redhat.com/ubi8/ubi-minimal:8.7
registry.access.redhat.com/ubi8/ubi-minimal:8.7
$ docker pull registry.access.redhat.com/ubi8/ubi-minimal:8.7-1085
8.7-1085: Pulling from ubi8/ubi-minimal
Digest: sha256:dc06ba83c6f47fc0a2bca516a9b99f1cf8ef37331fd460f4ca55579a815ee6cb
Status: Downloaded newer image for registry.access.redhat.com/ubi8/ubi-minimal:8.7-1085
registry.access.redhat.com/ubi8/ubi-minimal:8.7-1085

Images of the diff or a link to the PR, issue, or logs
stackrox/acs-fleet-manager#854
Smallest manifest that reproduces the issue
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7

Looks related to #6169

I created a workaround for this particular problem at #6748, but there may still be issues with registry APIs that don't provide digests. The future proof solution would be that Red Hat Container Registry API starts providing digests. Any ideas where that feature can be requested?

The future proof solution would be that Red Hat Container Registry API starts providing digests. Any ideas where that feature can be requested?

I reached out to an acquaintance in RedHat engineering and he responded:

From what I've been told: This is due to the way registry.redhat.io works -- it's a proxy in front of a data store, not a real registry. This should get fixed in May thanks to https://access.redhat.com/articles/6999582.

Since this is on upstream's roadmap to fix, we can either close now or float as open until their fix lands... I'd probably lean towards closing now so that we don't forget to close later (GitHub Issues really need a "snooze" / "remind me" button 😁), but don't feel strongly on this.

Nice!
I think we can close once #6748 lands since it fixes this problem anyways and I think it's good to introduce regardless of upstream changes.

Thanks for the prompt responses and the workaround implemented. Feel free to close this issue when it feels right for you 🙂.


Ignore Idea project files

I think this should be done locally by using your personal global ignore file (for instance $HOME/.config/git/ignore), not by adding every editor's local files in every repositories 🙂

@dohzya is right. This does not belongs here, IDE/editor preference is a per developer decision, not a project configuration. Git supports this via global settings. Tanks anyway.


used svelte to create the website

We do not need svelteKit. lets use pure svelte here. also you can not delete the old files. until a full migration is complete. so keep both files old and new. I added you an editor for the repo. make a new branch and work from there.


plusBeta flag added to .yo-rc.json when scaffolding project using v1.13.0-beta.20

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
macOS
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[ ] 💥 Microsoft Edge
[ ] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[X] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

browser version: N/A
SPFx version: 1.13.0-beta.20
Node.js version: 14
etc

Describe the bug / error
After scaffolding a React web part using generator 1.13.0-beta.20, in the .yo-rc.json file, the generator includes the plusBeta: true flag, even though the plusBeta switch wasn't used.
Steps to reproduce

Scaffold a React web part using v1.13.0-beta.20 with all default values for yo prompts

Expected behavior
No plusBeta flag in .yo-rc.json

Thanks @waldekmastykarz - the defaulting to beta in the beta builds is by design.  We need to clean up the --plusbeta flag use with the new beta model.


Invalid configuration generated with using protocol HTTPSPROXY

When enabling protocol HTTPSPROXY generated configuration results in the following error when connecting via TLS:
error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number
This is a result of the proxyProtocolStack being set to [ "TLS", "PROXY", "HTTP", "TCP" ], so TLS wrapping proxy wrapping HTTP wrapping TCP.
To Reproduce
Create a listener as such:
apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
  name: http
  namespace: emissary
spec:
  port: 8443
  protocol: HTTPSPROXY
  securityModel: SECURE
  l7Depth: 0
  hostBinding:
    namespace:
      from: SELF

If using AWS NLB enable proxy protocol by setting the following annotation:
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
When attempting to connect to Emissary via https you will receive error error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number.
Steps to reproduce the behavior:
Expected behavior
With proxy protocol enabled at the NLB and configured via protocol HTTPSPROXY a successful connection should be established.
Versions (please complete the following information):

Ambassador: 2.2.2
Kubernetes environment: AWS EKS 1.21

This is due to the fact that HTTPSPROXY is set to proxyProtocolStack [ "TLS", "PROXY", "HTTP", "TCP" ] which generates configuration:
"listener_filters": [
  {
    "name": "envoy.filters.listener.tls_inspector"
  },
  {
    "name": "envoy.filters.listener.proxy_protocol"
  }
]

The filters are in the incorrect order. Therefore proxyProtocolStack should be [ "PROXY", "TLS", "HTTP", "TCP" ]

The work around for now is to not set the protocol too HTTPSPROXY but rather explicitly set the protocolStack as shown above. However the documentation seems to point people to using protocol instead.

Based on conversation in community slack channel it appears that maybe different LB wrap TLS before proxy. I know with Ambassador 1.9 the order of the listeners was always proxy_protocol before tls_inspector so made assumption that that was the common scenario.

Reading the RFC
In both cases, the protocol simply consists in an easily parsable header placed by the connection initiator at the beginning of each connection

This to me seems to indicate that proxy wrapping TLS is the correct order and any other LB that differ from that are the one offs. So at the very least I think the default for HTTPSPROXY should be as noted here and updated in the PR.

Thanks for the contribution @cyrus-mc ! I've assigned the PR review to a maintainer and will rely on the test automation to catch regressions.


Improve efficency of execution order

The above image on the right displays how factotum executes steps, the numbers and colours indicate what is run with what. In this case the total run-time can be decreased considerably if  4 didn't wait for 2 to complete. This happens because 2 and 3 are in the same running batch, which waits for both to finish.

Excellent description of the problem!


Target velocity based engine with throttling

Motivation
Inspired by the controls of the game Galaxy on Fire 2, this PR introduces a target velocity based ShipEngine, which constrains the ship speed instead of accelerating indefinitely (till the max velocity cap, rather) like the current approach. The ship speed constraint is determined by scaling the maximum possible speed with the throttle, making slowing down and fine maneuvering much easier. With this system, stopping the ship is as simple as setting the throttle to zero.
This PR is based on the continuous input system introduced in #286, and should be merged after it. This PR changes ShipEngine and Engine only. The extraneous changes in this PR which have already introduced in #286 should disappear after it is merged.
Changes

The engine now accelerates only to maintain constant speed
The acceleration property in Engine has been increased to make the controls feel more responsive, in line with the intentions of this PR.

Usage
Increase or decrease the throttle to see a corresponding increase or decrease in ship speed.

Can one of the admins please verify this patch?


Overload resolution ambiguity

Hello :wave:
After upgrading from 1.3.6 -> 2.0.0-M3, I am getting a function ambiguity issue when invoking any of the log levels (info, warn, etc...) with a String as the only argument.
One of the ways to get around this is to cast the string to Any (Object in Kotlin) to give the compiler a hint.

This may not be a priority if Kotlin is not supported (or if this is intended behavior) - but I thought I'd share.
PS: I love the size, performance, and simplicity of this lib - keep up the great work! :+1:

I will look at that. tinylog 2 should also be easy to use under Kotlin.

After trying several things, I decided to provide a separate logging API for Kotlin, Scala and Groovy. This is the only way I can deal with the features and specialties of all three programming languages.
Here is a preview version for Kotlin: tinylog-kotlin-2.0-SNAPSHOT.zip
Some examples that are working now:
Logger.info("Hello World!")
Logger.info("Hello {}!", { "Mister" })
Logger.info { "Hello $name!" }
Logger.info(exception) { "Hello $name!" }

@pmwmedia can you think of a reason this might come up again, in a library project? I think I'm going insane :)

@danielwilson1702 Which Kotlin and IntelliJ version are you using?

Sorry for the delay! Kotlin is 1.3.61 and IntelliJ is Android Studio 3.5.3 (actually can't tell how the hell to see a specific IntelliJ version). I think it must be something about marking the project as a library. Whilst the app module in the library project also throws the error, remote consumers of the library are fine.
Dependencies in the library gradle file are specified like so:
    api 'org.tinylog:tinylog-api-kotlin:2.0.1'
    api 'org.tinylog:tinylog-impl:2.0.1'

I will try and make a sample if it helps.

 It was confused a little by the fact that the lib consumer is a Java project, so while he uses org.tinylog.Logger without issue, my library project was also trying to use that when he should be using org.tinylog.kotlin.Logger. Now all my problems are gone (doh)


Can't get number of columns on resize

Hey ZitRos. Thanks for providing this wonderful thing. I'm using this in my electron + react project :)
I'm trying to get the number of columns with this.xMasonry.columns. It works great on load. But I'm having trouble trying to get the number when user resized the window as there's no callback method on resize. Is there a way to retrieve the number when the column count changed?

Hello Gaddafi and congrats on the first issue! Thank you for reporting this, interesting catch.
Currently XMasonry does not provide anything like onResize callback. My very first idea was that introducing onResize prop may lead to some bad effects as infinite looping when used improperly. But I agree definitely, there should be something to let the UI know that the number of columns/sizes has changed.
The possible use case I can think of, is, for example, giving the proper widths to blocks to reach the desired look. I am wondering if this is your case.
Anyway, on your opinion, what will be the best option to implement? onResize callback sounds good. If I would think about implementing onResize, I will put XMasonry React Component instance as a first argument.

Thank you!
I'm using images in my xblock. To reduce the messy effect with the slow loading image, I'm specifying the height to the image container based on the image ratio (provided by my API). So, in order to calculate the height, I need to get the current width of the xblock element. But since I can't get the value, I'm using containerWidth / columnCount. Works great, except when the column count changed.
I'm not sure what's good for the implementation. I'm sure u have better context than me. If you're worried about the improper used of onResize, maybe it'd be would be enough to just exposed the number. As long as we can get the column count (or column width) when the number changed, that would be great. What do u think?

If I were you, having the ratios of the images I will go with fixed CSS ratio approach, exactly as it is in the Articles Demo on XMasonry demo pages. Doesn't it work for you?

Yeah, I saw that. But I prefer to use img rather than background-image for the photos - for performance reason, and also so that user can drag/drop photos out of the app.

No problems - just fix the ratio of the image container using fixed CSS ratio, and specify width: 100% in the image itself!

Won't work in my case because every image have different ratio.

Why?

Oh wow I don't know why I forgot that I can pass the padding-top as an inline style.
I just implemented your solution and it works great! Thank you for your time - and sorry for turning this into a CSS/JS lesson 😅

No worries! I am happy that we solved this :) Good luck!


Kafka support

We should see if we can somehow support kafka. What is necessary for this.

You can use the subscription feature to publish event to kafka.
So nothing really blocks you from using Kafka.
<?php

namespace App\Share\Infrastructure\EventSourcing;

use Patchlevel\EventSourcing\Attribute\Projector;
use Patchlevel\EventSourcing\Attribute\Subscribe;
use Patchlevel\EventSourcing\EventBus\Message;
use Patchlevel\EventSourcing\Projection\Projection\RunMode;
use RdKafka\Conf;
use RdKafka\Producer;
use RdKafka\Topic;

#[Projector('kafka', runMode: RunMode::FromNow)]
class KafkaProcessor
{
    private Producer|null $producer = null;

    private Topic|null $topic = null;

    public function __construct(
        private EventSerializerTransportSerializer $serializer,
    ) {
    }

    #[Subscribe('*')]
    public function publish(Message $message): void
    {
        $this->init();

        $json = $this->serializer->encode($message);

        $this->topic->produce(RD_KAFKA_PARTITION_UA, 0, $json);
        $this->producer->flush(1000);
    }

    private function init(): void
    {
        if ($this->producer || $this->topic) {
            return;
        }

        $conf = new Conf();
        $this->producer = new Producer($conf);
        $this->producer->addBrokers("kafka:9092");

        $this->topic = $this->producer->newTopic('app');
    }
}


Debugging Vue.js in WebStorm and in the browser (Chrome)

The plugins integrated in the OpenMCT framework, and typically the imagery plugin we have to debug in #103 , are composed of multiple Vue.js projects, i.e. single file .vue files combining Javascript, HTML and CSS templates. Debugging such projects using the usual workflow based on the usage of breakpoints and step by step execution requires some additional settings in WebStorm or browser and in the openmct project settings when building the project itself. We address here how to build up such a setup.
References for the setup based on Chrome and WebStorm
https://www.digitalocean.com/community/tutorials/how-to-debug-components-state-and-events-with-vue-js-devtools
https://blog.jetbrains.com/webstorm/2018/01/working-with-vue-js-in-webstorm/
https://github.com/vuejs/vue-loader/issues/620
Other References on the topic
https://v2.vuejs.org/v2/cookbook/debugging-in-vscode.html?redirect=true
https://cli.vuejs.org/guide/cli-service.html

The main requirements to bring up the debugging setup are the following:

Install and setup the Vue.js development/debug plugin on WebStrom or the browser.
Build the Open-MCT framework project in development mode.

Build the Open-MCT in development mode
We are using openmct as a dependency of yarp-openmct, downloaded from its remote repository as specified in the package.json dependency file:
https://github.com/ami-iit/yarp-openmct/blob/cb36bfb865e9cc301c5dba3182d9811172dee460/package.json#L14.
The openmct package installation builds the source code bundling it through the webpack tool into a series of .js and .js.map files under the <yarp-openmct-root>/node_modules/openmct/dist folder.
$ npm install

><EMAIL_ADDRESS>prepare <openmct-root>
> npm run build:dev

><EMAIL_ADDRESS>build:dev <openmct-root>
> webpack
...
Version: webpack 4.46.0
...
Entrypoint openmct = openmct.js
...

The installation runs by default a production build
https://github.com/nasa/openmct/blob/master/package.json
{
  "name": "openmct",
  "version": "2.0.3-SNAPSHOT",
  "description": "The Open MCT core platform",
  "devDependencies": {...}
  "scripts": {
    ...
    "prepare": "npm run build:prod"
  },
  ...
}

The resulting source code mapping in the dist bundle doesn't allow WebStorm (or the browser debugger tools) to properly map the execution point back to the expanded source code. For that we need to run a development build, which requires changing the package.json manifest.

Clone the openmct repo.git clone https://github.com/nasa/openmct.git

Change the openmct's package.json for a development build generation.{
  "name": "openmct",
  ...,
  "devDependencies": {...}
  "scripts": {
    ...
    "prepare": "npm run build:dev"
  },
  ...
}

Run the installation from the openmct root path.npm install

Change the yarp-openmct's package.json to make it point to your local openmct clone repository.{
  "name": "yarp-openmct",
  ...
  "dependencies": {
    ...
    "openmct": "file:<path-to-openmct-local-repo>",
    ...
  },
  ...
}

Run the installation from the yarp-openmct root path.npm install

In <yarp-openmct-root>/node_modules, the folder openmct which used to hold the Open-MCT "dist" files is replaced by a sym-link to your local clone repository.

Install the development/debug plugin on WebStorm

Install or make sure that Vue.js plugin is installed. Open the WebStorm->Preferences dialog, go to menu Plugins, tab Installed.

Make sure that Webpack configuration files detection is enabled. Open the WebStorm->Preferences dialog, go to menu Languages & Frameworks->Webpack.

With this mode activated, WebStorm auto-detects the relevant webpack configuration file for each JavaScript file. WebStorm will first look for a webpack configuration file in the folder where this JavaScript file is located, then in its parent folder, and so on. When you open a webpack project (e.g. OpenMCT, which bundle can be found in <openmct-root-path>/dist/openmct.js), WebStorm analyzes it, resolves the located data, and displays a warning that lets you decide whether the project is trustworthy or not.

Refer to WebStorm documentation in https://www.jetbrains.com/help/webstorm/2021.2/using-webpack.html for further details.


dart sdk file don't get unzipped

Steps to Reproduce

...
...
...

Logs

it shows error like no such directory though I have downloaded it thrice

Without details, it's impossible for us to debug issues. Please file a new issue and fill in all of the information requested in the template, including the commands you are running, exact error messages, and your platform.


react/no-unused-prop-types when use props in nested function in functional component

This code
import React from 'react';
import PropTypes from 'prop-types';

function TestComponent(props) {
    function getA() {
        return props.a;
    }
    function getB() {
        return props.b;
    }
    function getCD() {
        return props.c + props.d;
    }
    return (<div>
        {getA()}
        {getB()}
        {getCD()}
    </div>);
}

TestComponent.propTypes = {
    a: PropTypes.string.isRequired,
    b: PropTypes.string.isRequired,
    c: PropTypes.string.isRequired,
    d: PropTypes.string.isRequired,
};

export default TestComponent;

will raise errors
  22:8  error  'a' PropType is defined but prop is never used  react/no-unused-prop-types
  23:8  error  'b' PropType is defined but prop is never used  react/no-unused-prop-types

for all props except used in last function.

This should certainly be fixed; but you may want instead to destructure the props in the signature, which would avoid this problem.

This was fixed by: https://github.com/yannickcr/eslint-plugin-react/pull/1218
To confirm, I ran your exact test-case on master and it now passes as valid!


isObject should be defined to narrow the type automatically

isObject should be defined to narrow the type automatically, like:
type NonObject = string | number | boolean | symbol | null | undefined;
const isObject = <T extends object>(maybeObject: NonObject | T): maybeObject is T =>
    typeof value === 'object'; // or whatever isObject's test really is, maybe check for array?
// then
if (isObject(propsOrFieldName)) { // propsOrFieldName is inferred as FieldAttributes<Val> }

ref: https://stackoverflow.com/questions/54192291/generic-type-narrowing-via-the-is-operator-and-conditional-types
Originally posted by @johnrom in https://github.com/jaredpalmer/formik/pull/1555

closing as the PR is already merged 💯


2582 fwreznetz 613 add csv import interface for app server ip addresses in UI

Closes #2582

@SolidProgramming can you have a look at the conflicts, please?

I still got the error when first visiting settings modelling (goes away when first saving)
but all my settings regarding naming conventions where gone after saving

@tpurschke
  public async Task TestSelectAppServersFromArea()
  {
      List<ModellingAppServer> expectedResult =
      [
          new(AppServerInside1) { TooltipText = userConfig.GetText("C9002") },
          new(AppServerInside2) { TooltipText = userConfig.GetText("C9002") },
          new(AppServerInside3) { TooltipText = userConfig.GetText("C9002") }
      ];
      await AppRoleHandler.SelectAppServersFromArea(TestArea);
      ClassicAssert.AreEqual(expectedResult, AppRoleHandler.AppServersInArea);
  }

yeag it fails on my install too


Is the recorder able to record the component text or xpath or auto_id?

The recorder is able to record component text. An element has path (like xpath) based on the names and the types of its ancestors. It does not use auto_id.


FindRow in "Library - Report Dataset" (131007) yields a different result on BC14 than on BC18

When writing the 2nd edition I ran into this issue and reported it on the BC yammer group as following (on April 23, 2021 at 11:55 AM):
Has there been a change in the implementation of the FindRow method in Library - Report Dataset?
I am asking as I was using the return value to verify if the relative offset between two columns in my dataset was changed. In my book it did that like this:
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
var
        Row: array[2] of Integer;
begin
        Row[1] := LibraryReportDataset.FindRow('Customer_No_', No);
        Row[2] := LibraryReportDataset.FindRow('Customer_Lookup_Value_Code', LookupValueCode);
        Assert.AreEqual(13, Row[2] - Row[1], 'Delta between columns Customer_No_ and Customer_Lookup_Value_Code')
end;

This worked as a charm. Now that I am working on the second edition and run this code on BC18 Row[1] and Row[2] always get the value 0 assigned, so, the AreEqual errors.
In the last (almost) two years I did not take the time to dive into this only to pick it up again today, writing:
Testing reports hasn't been a focus to me in the recent past, only as part of the training I provide. And the workaround has been to not check the row offsett between tags in the XML formatted dataset. For example (see also test example 8 in chapter 8 of my book):
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
begin
   LibraryReportDataset.AssertElementWithValueExists('Customer__No__', No);
   LibraryReportDataset.AssertElementWithValueExists('Customer_Lookup_Value_Code', LookupValueCode);
end;

The major flaw in this approach is that I do/can not test the relation between the two tags, i.e. Customer__No__ and Customer_Lookup_Value_Code. They could be in the dataset, but unrelated. So, the workaround is a not very robust approach. I would rather tests like above (the initial code example).
Contrary to my intial statement it appears that Row[1] and Row[2] are found, but have the same value, in my case 66.

66, because my test creates a new customer with No. starting with GL (the no. series from MS tests library) and that will be in place 66 of Cronus customers
so the delta between the two is 0

But on BC14 (just retested it) Row[1] and Row[2] are not the same. In my example Row[1] = 3 and Row[2] = 16, making the delta between the two 13
But on BC18 and beyond (and maybe also on BC15 and higher) row is apparently not the meaning of row in BC14.

It seems like on BC18 row is the row in the dataset which holds a record context
Where on BC14 each element (field) has its own row

So, on BC 18 I should not tests on a delta of 13, but a delta of 0 to be sure that am checking two related tags, i.e. two fields of the same record.

The fix on BC18 (and beyond) would be:
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
var
    Row: array[2] of Integer;
begin
    Row[1] := LibraryReportDataset.FindRow('Customer_No_', No);
    Row[2] := LibraryReportDataset.FindRow('Customer_Lookup_Value_Code', LookupValueCode);
    Assert.AreEqual(0, Row[2] - Row[1], 'Delta between columns Customer_No_ and Customer_Lookup_Value_Code')
end;

But to not deviate too much ffrom code release with the book we could make a combination of the release code and the fix:
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
var
    Row: array[2] of Integer;
begin
   // LibraryReportDataset.AssertElementWithValueExists('Customer__No__', No);
   // LibraryReportDataset.AssertElementWithValueExists('Customer_Lookup_Value_Code', LookupValueCode);

    Row[1] := LibraryReportDataset.FindRow('Customer_No_', No);
    Row[2] := LibraryReportDataset.FindRow('Customer_Lookup_Value_Code', LookupValueCode);
    Assert.AreEqual(0, Row[2] - Row[1], 'Delta between columns Customer_No_ and Customer_Lookup_Value_Code')
end;

Additional issue: column naming in report 101 and the copy (50000) of it are not exactly the same. Customer__No__ (101) vs. 'Customer_No_ (50000)

Henrik Helgesen saw a flaw in the new code:
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
var
    Row: array[2] of Integer;
begin
    // LibraryReportDataset.AssertElementWithValueExists('Customer__No__', No);
    // LibraryReportDataset.AssertElementWithValueExists('Customer_Lookup_Value_Code', LookupValueCode);

    Row[1] := LibraryReportDataset.FindRow('Customer_No_', No);
    Row[2] := LibraryReportDataset.FindRow('Customer_Lookup_Value_Code', LookupValueCode);
    Assert.AreEqual(0, Row[2] - Row[1], 'Delta between row for columns Customer_No_ and Customer_Lookup_Value_Code')
end;

What if Row[1] and Row[2] are both -1, meaning that the row was not found?
To tackle that the code should be changed to:
local procedure VerifyCustomerWithLookupValueOnCustomerListReport(No: Code[20]; LookupValueCode: Code[10])
var
    Row: array[2] of Integer;
begin
    // LibraryReportDataset.AssertElementWithValueExists('Customer__No__', No);
    // LibraryReportDataset.AssertElementWithValueExists('Customer_Lookup_Value_Code', LookupValueCode);

    Row[1] := LibraryReportDataset.FindRow('Customer_No_', No);
    Assert.AreNotEqual(-1, Row[1], 'Row was not found for Customer_No_');
    Row[2] := LibraryReportDataset.FindRow('Customer_Lookup_Value_Code', LookupValueCode);
    Assert.AreNotEqual(-1, Row[2], 'Row was not found for Customer_Lookup_Value_Code');
    Assert.AreEqual(0, Row[2] - Row[1], 'Delta between row for columns Customer_No_ and Customer_Lookup_Value_Code');
end;


Create zenodo archive for EIP Infrastructure data

The archive is in the Zenodo sanbox.
I also added a conda environment.yml file.

These tests are passing locally. I'm not sure why they aren't passing in the CI :/


multi gpu error

It's a strange error when i inference model efficientb5 unet with tensor with shape 43128800, seems torch.cat([x, blocks.popitem()[1]], dim=1) error,    i print shape  as upper image, but it shows only in some batchs,  i'm sure input tensor shape is all same (batch3128800)  anyone help?

@NPU-Franklin Franklin created a PR (#11 ) to support multi GPUs. I do not have multi cards therefore I cannot test it. But maybe you can give it a try.


Use type environment for type inference

Currently, the type inference pass is embrassingly pure. It just uses whatever information is locally available about a node to assign it a type, if possible. This is why the hello world example we have right now has explicit type annotations on variable names.
The end-goal here is to achieve full-blast type inference (as well as type-checking). Thus a natural first step is to actually look up the types previously determined of variables, and store that information in an environnment. Something like the following should work:
main(led : & Int) =
  loop
    after 50 , led <- 1
    wait led
    after 50 , led <- 0
    wait led

Logically, this is a very straightforward, but should also force us to restructure our code with respect to a state monad (similar to the one I have in Codegen.Codegen at the moment). We can later expand upon this state to actually perform type inference and checking later on.

Closed by #40


Stucks on the push process - MFALambdaInputs

I tried to set my Develop ENV to Production yesterday.
Under Develop I could push everything.
Because the NodeJS version also has the update in it, there is a lot to push at Production.
-v = 4.12.0
What is new: Social Auth.
`
Current Environment: production

Category
Resource name
Operation
Provider plugin

Auth
userPoolGroups
Create
awscloudformation

Function
createProfile
Create
awscloudformation

Function
analytics
Create
awscloudformation

Auth
aivyusers
Update
awscloudformation

Api
aivy
Update
awscloudformation

Function
estest
Update
awscloudformation

Function
zscoreCalculationLambda
Update
awscloudformation

Function
pullNewExternalJobs
Update
awscloudformation

Function
initBackend
Update
awscloudformation

Function
getMatchingCareers
Update
awscloudformation

Function
getNearbyJobOffer
Update
awscloudformation

Function
aivyusersPostConfirmation
Delete
awscloudformation

Analytics
aivyapp
Delete
awscloudformation

Function
addglobalcta
No Change
awscloudformation

Function
googleTalentSolution
No Change
awscloudformation

Function
addPartnerCompanies
No Change
awscloudformation

Function
addStepstoneJobs
No Change
awscloudformation

Function
addAldiJobs
No Change
awscloudformation

Storage
aivyUserContent
No Change
awscloudformation

? Are you sure you want to continue? Yes

The following types do not have '@auth' enabled. Consider using @auth with @model
- Bug
- ExamConfig
- Career
- Event
- EventOrganizer
- Article
Learn more about @auth here: https://aws-amplify.github.io/docs/cli-toolchain/graphql#auth
GraphQL schema compiled successfully.
_UPDATE_COMPLETE    storageaivyUserContent                AWS::CloudFormation::Stack Sat Jan 11 2020 13:52:44 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS authaivyusers                         AWS::CloudFormation::Stack Sat Jan 11 2020 13:52:44 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS storageaivyUserContent                AWS::CloudFormation::Stack Sat Jan 11 2020 13:52:44 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS aivy-rn-app-production-20190802143852 AWS::CloudFormation::Stack Sat Jan 11 2020 13:52:40 GMT+0100 (GMT+01:00) User Initiated
⠼ Updating resources in the cloud. This may take a few minutes...
UPDATE_IN_PROGRESS aivy-rn-app-production-20190802143852-authaivyusers-NG1VIYNC0PC7 AWS::CloudFormation::Stack Sat Jan 11 2020 13:52:45 GMT+0100 (GMT+01:00) User Initiated
⠇ Updating resources in the cloud. This may take a few minutes...
UPDATE_IN_PROGRESS SNSRole   AWS::IAM::Role        Sat Jan 11 2020 13:52:54 GMT+0100 (GMT+01:00) Requested update requires the creation of a new physical resource; hence creating one.
UPDATE_COMPLETE    MFALambda AWS::Lambda::Function Sat Jan 11 2020 13:52:52 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS MFALambda AWS::Lambda::Function Sat Jan 11 2020 13:52:52 GMT+0100 (GMT+01:00)
⠙ Updating resources in the cloud. This may take a few minutes...
UPDATE_IN_PROGRESS SNSRole AWS::IAM::Role Sat Jan 11 2020 13:52:55 GMT+0100 (GMT+01:00) Resource creation Initiated
⠧ Updating resources in the cloud. This may take a few minutes...
UPDATE_COMPLETE SNSRole AWS::IAM::Role Sat Jan 11 2020 13:53:11 GMT+0100 (GMT+01:00)
⠇ Updating resources in the cloud. This may take a few minutes...
UPDATE_COMPLETE    UserPool AWS::Cognito::UserPool Sat Jan 11 2020 13:53:17 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS UserPool AWS::Cognito::UserPool Sat Jan 11 2020 13:53:15 GMT+0100 (GMT+01:00)
⠴ Updating resources in the cloud. This may take a few minutes...
UPDATE_IN_PROGRESS UserPoolClientRole AWS::IAM::Role        Sat Jan 11 2020 13:53:26 GMT+0100 (GMT+01:00) Requested update requires the creation of a new physical resource; hence creating one.
UPDATE_IN_PROGRESS MFALambdaInputs    Custom::LambdaCallout Sat Jan 11 2020 13:53:24 GMT+0100 (GMT+01:00)
⠇ Updating resources in the cloud. This may take a few minutes...
UPDATE_IN_PROGRESS UserPoolClientRole AWS::IAM::Role Sat Jan 11 2020 13:53:27 GMT+0100 (GMT+01:00) Resource creation Initiated
⠋ Updating resources in the cloud. This may take a few minutes...
UPDATE_COMPLETE UserPoolClientRole AWS::IAM::Role Sat Jan 11 2020 13:53:41 GMT+0100 (GMT+01:00)
⠹ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE    HostedUIProvidersCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUICustomResource          AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUIProvidersCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00) Resource creation Initiated
UPDATE_COMPLETE    UserPoolClientLambda            AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUICustomResource          AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS HostedUIProvidersCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS UserPoolClientLambda            AWS::Lambda::Function Sat Jan 11 2020 13:53:46 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUICustomResource          AWS::Lambda::Function Sat Jan 11 2020 13:53:45 GMT+0100 (GMT+01:00)
⠼ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS HostedUIProvidersCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:53:51 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS HostedUICustomResourcePolicy          AWS::IAM::Policy Sat Jan 11 2020 13:53:51 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS HostedUIProvidersCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:53:50 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS UserPoolClientLambdaPolicy            AWS::IAM::Policy Sat Jan 11 2020 13:53:49 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUICustomResourcePolicy          AWS::IAM::Policy Sat Jan 11 2020 13:53:49 GMT+0100 (GMT+01:00)
⠹ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS HostedUICustomResourceLogPolicy       AWS::IAM::Policy Sat Jan 11 2020 13:54:08 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUIProvidersCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:05 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUICustomResourcePolicy          AWS::IAM::Policy Sat Jan 11 2020 13:54:05 GMT+0100 (GMT+01:00)
UPDATE_COMPLETE    UserPoolClientLambdaPolicy            AWS::IAM::Policy Sat Jan 11 2020 13:54:05 GMT+0100 (GMT+01:00)
⠸ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS HostedUICustomResourceLogPolicy          AWS::IAM::Policy Sat Jan 11 2020 13:54:09 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS HostedUIProvidersCustomResourceLogPolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:08 GMT+0100 (GMT+01:00)
UPDATE_IN_PROGRESS UserPoolClientLogPolicy                  AWS::IAM::Policy Sat Jan 11 2020 13:54:08 GMT+0100 (GMT+01:00)
⠋ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS HostedUIProvidersCustomResourceLogPolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:09 GMT+0100 (GMT+01:00) Resource creation Initiated
⠦ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS HostedUIProvidersCustomResourceInputs    Custom::LambdaCallout Sat Jan 11 2020 13:54:27 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUICustomResourceInputs             Custom::LambdaCallout Sat Jan 11 2020 13:54:26 GMT+0100 (GMT+01:00)
UPDATE_COMPLETE    UserPoolClientLogPolicy                  AWS::IAM::Policy      Sat Jan 11 2020 13:54:23 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUIProvidersCustomResourceLogPolicy AWS::IAM::Policy      Sat Jan 11 2020 13:54:23 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUICustomResourceLogPolicy          AWS::IAM::Policy      Sat Jan 11 2020 13:54:23 GMT+0100 (GMT+01:00)
⠏ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE    HostedUICustomResourceInputs          Custom::LambdaCallout      Sat Jan 11 2020 13:54:31 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUICustomResourceInputs          Custom::LambdaCallout      Sat Jan 11 2020 13:54:31 GMT+0100 (GMT+01:00) Resource creation Initiated
UPDATE_IN_PROGRESS IdentityPool                          AWS::Cognito::IdentityPool Sat Jan 11 2020 13:54:31 GMT+0100 (GMT+01:00)
CREATE_COMPLETE    HostedUIProvidersCustomResourceInputs Custom::LambdaCallout      Sat Jan 11 2020 13:54:30 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS HostedUIProvidersCustomResourceInputs Custom::LambdaCallout      Sat Jan 11 2020 13:54:30 GMT+0100 (GMT+01:00) Resource creation Initiated
⠋ Updating resources in the cloud. This may take a few minutes...
UPDATE_COMPLETE IdentityPool AWS::Cognito::IdentityPool Sat Jan 11 2020 13:54:32 GMT+0100 (GMT+01:00)
⠦ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE    OAuthCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:54:34 GMT+0100 (GMT+01:00)
CREATE_IN_PROGRESS OAuthCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:54:34 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS OAuthCustomResource AWS::Lambda::Function Sat Jan 11 2020 13:54:33 GMT+0100 (GMT+01:00)
⠦ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS OAuthCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:39 GMT+0100 (GMT+01:00) Resource creation Initiated
CREATE_IN_PROGRESS OAuthCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:38 GMT+0100 (GMT+01:00)
⠼ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE OAuthCustomResourcePolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:53 GMT+0100 (GMT+01:00)
⠋ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS OAuthCustomResourceLogPolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:56 GMT+0100 (GMT+01:00)
⠦ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS OAuthCustomResourceLogPolicy AWS::IAM::Policy Sat Jan 11 2020 13:54:58 GMT+0100 (GMT+01:00) Resource creation Initiated
⠴ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE OAuthCustomResourceLogPolicy AWS::IAM::Policy Sat Jan 11 2020 13:55:12 GMT+0100 (GMT+01:00)
⠏ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS OAuthCustomResourceInputs Custom::LambdaCallout Sat Jan 11 2020 13:55:15 GMT+0100 (GMT+01:00)
⠧ Updating resources in the cloud. This may take a few minutes...
CREATE_IN_PROGRESS OAuthCustomResourceInputs Custom::LambdaCallout Sat Jan 11 2020 13:55:18 GMT+0100 (GMT+01:00) Resource creation Initiated
⠋ Updating resources in the cloud. This may take a few minutes...
CREATE_COMPLETE OAuthCustomResourceInputs Custom::LambdaCallout Sat Jan 11 2020 13:55:18 GMT+0100 (GMT+01:00)
⠸ Updating resources in the cloud. This may take a few minutes..._
`
From this moment nothing more happens. I got the message yesterday about the NodeJS version. I have adjusted it manually.
I'm not sure what it could be.
I checked the console on Cloudfront.
It's not breaking up there either.
Unfortunately, I don't see what they're going to try to do next.
If i add a new ENV - all is fine and the push is working.

Is there any option for me to check why it is stucking? A log?

i tried now
amplify update auth
with the default settings without social auth.
It stucks too...

I just tried to update the NodeJS for the production without a merge of develop.
I get the error message (see picture)
The tables given here are only available in Develop. Production should not even know them. I also used amplify env production -restore

it stucks on nestedStack:
MFALambdaInputs

@kaustavghosh06
I guess you are my person for this right?

Lambda: MFALambdaInputs

@davidbiller Which region are you trying to deploy to?
One workaround is changing the require('cfn-response') to require('./cfn-response') in your auth Cloudformation template for the resource/lambda function you're getting an error for.

@kaustavghosh06 eu-central-1
at the moment the cloudFormation is stucking on update process since 1 hour...

@davidbiller Yes, the update process should complete in sometime and then you can try out the suggested workaround.
I wasn't able to reproduce the issue in eu-central-1 for a newly added auth resource. Can you check your Cloudformation template located in amplify/backend/auth/<cloudformation-template>
directory and see if you have following block correctly:
MFALambda:
  # Lambda which sets MFA config values
  # Depends on MFALambdaRole for role ARN
    Type: 'AWS::Lambda::Function'
    Properties:
      Code:
        ZipFile: !Join
          - |+
          - - 'const response = require(''cfn-response'');'
            - 'const aws = require(''aws-sdk'');'
            - 'const identity = new aws.CognitoIdentityServiceProvider();'
            - 'exports.handler = (event, context, callback) => {'
            - ' if (event.RequestType == ''Delete'') { '
            - '   response.send(event, context, response.SUCCESS, {})'
            - ' }'
            - ' if (event.RequestType == ''Update'' || event.RequestType == ''Create'') {'
            - '   let totpParams = {};'
            - '   try {'
            - '     totpParams = {'
            - '       UserPoolId: event.ResourceProperties.userPoolId,'
            - '       MfaConfiguration: event.ResourceProperties.mfaConfiguration,'
            - '       SmsMfaConfiguration: {'
            - '         SmsAuthenticationMessage: event.ResourceProperties.smsAuthenticationMessage,'
            - '         SmsConfiguration: {'
            - '           SnsCallerArn: event.ResourceProperties.smsConfigCaller,'
            - '           ExternalId: event.ResourceProperties.smsConfigExternalId'
            - '         }'
            - '       },'
            - '       SoftwareTokenMfaConfiguration: {Enabled: event.ResourceProperties.totpEnabled.toLowerCase() === ''true'' ? true : false}'
            - '     };'
            - '   } catch(e) {'
            - '     response.send(event, context, response.FAILED, {e});'
            - '   };'
            - '   identity.setUserPoolMfaConfig(totpParams).promise()'
            - '     .then((res) => {'
            - '       response.send(event, context, response.SUCCESS, {res});'
            - '     })'
            - '     .catch((err) => {'
            - '       response.send(event, context, response.FAILED, {err});'
            - '     });'
            - ' }'
            - '};'
      Handler: index.handler
      Runtime: nodejs10.x  // Check for this
      Timeout: '300'
      Role: !GetAtt
        - MFALambdaRole
        - Arn
    DependsOn: MFALambdaRole

@kaustavghosh06
i changed the import:
`
MFALambda:
# Lambda which sets MFA config values
# Depends on MFALambdaRole for role ARN
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: !Join
- |+
- - "const response = require('./cfn-response');"
- "const aws = require('aws-sdk');"
- "const identity = new aws.CognitoIdentityServiceProvider();"
- "exports.handler = (event, context, callback) => {"
- " if (event.RequestType == 'Delete') { "
- "   response.send(event, context, response.SUCCESS, {})"
- " }"
- " if (event.RequestType == 'Update' || event.RequestType == 'Create') {"
- "   let totpParams = {};"
- "   try {"
- "     totpParams = {"
- "       UserPoolId: event.ResourceProperties.userPoolId,"
- "       MfaConfiguration: event.ResourceProperties.mfaConfiguration,"
- "       SmsMfaConfiguration: {"
- "         SmsAuthenticationMessage: event.ResourceProperties.smsAuthenticationMessage,"
- "         SmsConfiguration: {"
- "           SnsCallerArn: event.ResourceProperties.smsConfigCaller,"
- "           ExternalId: event.ResourceProperties.smsConfigExternalId"
- "         }"
- "       },"
- "       SoftwareTokenMfaConfiguration: {Enabled: event.ResourceProperties.totpEnabled.toLowerCase() === 'true' ? true : false}"
- "     };"
- "   } catch(e) {"
- "     response.send(event, context, response.FAILED, {e});"
- "   };"
- "   identity.setUserPoolMfaConfig(totpParams).promise()"
- "     .then((res) => {"
- "       response.send(event, context, response.SUCCESS, {res});"
- "     })"
- "     .catch((err) => {"
- "       response.send(event, context, response.FAILED, {err});"
- "     });"
- " }"
- "};"
Handler: index.handler
Runtime: nodejs10.x
Timeout: "300"
Role: !GetAtt
- MFALambdaRole
- Arn
DependsOn: MFALambdaRole
`

When I created a new ENV with the same code yesterday, it worked. I have discovered today that it is because of this. Before i changed the code it was:
'const response = require(''cfn-response'');'
and
Runtime: nodejs10.x

@davidbiller I see, the above code which I pasted above works  - and this is what the CLI generates for you.
What did you change the code to?

@kaustavghosh06
MFALambda: "const response = require('cfn-response');" to "const response = require('./cfn-response');"

The problem was not the code generated after auth update, but the code that was already in the cloud. I manually set it to NodeJS 10 before CLI PUSH. With this, CloudFormation could not complete because there were errors.

@davidbiller how did you do that?

@davidbiller how did you do that?

What exactly?

The problem was not the code generated after auth update, but the code that was already in the cloud. I manually set it to NodeJS 10 before CLI PUSH. With this, CloudFormation could not complete because there were errors.

@davidbiller this one.

@SalahAdDin you can do this in the lambda console like:


XMLHttpRequestOverride: remove getResponseXML and responseXML, drop xmldom

XMLHttpRequestOverride contains a property responseXML, which appears to have a meaningful value given only the appropriate response content type (application/xml or text/xml). This suggests that the property is only useful when dealing with XML responses, which would form a smaller proportion to JSON or HTML responses, amongst others.
To support this property however, XMLHttpRequestOverride implements getResponseXML(), a thin wrapper around xmldom. This package has a significant size (134kB for 0.8.5) relative to what it is being used for, obliges a dependent to maintain it even if it does not process XML, and is currently maintained only by one active author.
Given that the few applications who actually depend on this property would in all likelihood explicitly bring in a package to parse and manipulate the response, I would consider it reasonable to propose the removal of XMLHttpRequestOverride.responseXML and its supporting cast. Dependents on this property will not be too inconvenienced, as they can trivially build an XML document from responseText, even reproducing getResponseXML() to do so.
Most other users of this package would stand to benefit by no longer depending on - and having to maintain - a package of little relevance to them.

Hey, @LoneRifle. Thanks for the proposal.
I think that us depending on xmldom was incorrect, to begin with. This library is not a polyfill but it acts like one by taking the responsibility of parsing XML response bodies.
What we should do is rely on whichever XMLHttpRequest implementation is present in the environment. It's a shame we cannot do Override extends XMLHttpRequest because this syntax will get transpiled by TypeScript into code that won't run in the browser (works fine in Node.js). It'd be much better to have a class extension instead of a stub, similar to what we do with NodeClientRequest extending http.ClientRequest.
Overall, I agree with this direction.

Drop xmldom.
Rely on XMLHttpRequest.prototype.responseXML directly, if it's possible. I'd expect responseXML to be a getter, so setting response or responseText should suffice on our side.

As a side note, I'm introducing quite a number of breaking changes in #292, so I'd address this proposal after that.

Released: v0.18.3 🎉
This has been released in v0.18.3!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/interceptors@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.


Metatrader 5 compilation errors

I followed instructions from this repo as well as https://github.com/darwinex/dwx-zeromq-connector
When trying to compile I get errors in zmqMsg.mqh

I also have the following installed

Any Ideas will be appreciated

Hi,
you have a bug in the ArrayResize - missing the )

@5xcor thanks for getting back to me, which line? This is not my code, this is from the zeromq library

Got same issue - any suggestions?

Well looking to code found some name conflicts
Easiest way to fix just replace data() with zmq_msg_data(this)
Work for me

duplicate of #40 and already fixed.

Please create a release including this fix, latest release is from October 2017 and I ran into this.
A lot of people like myself go straight to the releases page because its supposed to have fully working code, avoiding downloading the current code because it could be on development and not properly tested yet.


API definitions were duplicated within each collection in new PostMan Sync

Somehow, all my API definitions were duplicated using the new PostMan Sync.  Not every API was duplicated but now I have many duplicates within each collection.  Collections themselves were not duplicated.
For example, in one collection:

There are about 10 more APIs in this collection.  Every API is duplicated.  I think when it occurs, every API in the collection is duplicated.  These collections are not shared.
But there are some collections where no items were duplicated.

Did you notice this problem today? Both the "Delete Share" requests seem were created on Feb 2, about 2 seconds apart.
Also, if you imported the collection from a file, can you mail it to<EMAIL_ADDRESS>

I don't know when it appeared,  I just noticed about 5 days ago.  Around Feb 2 that time I was dumping and imported all settings.  So likely this occurred then.  I think we should close this and I will keep and eye out to see if it recurs.


fix dispatcher variable initialization: use the staticEventDispatcher…

DISCLAIMER: I am not familiar with the compiler, so this is a solution which is very much focussed on the wood, not the trees. However it seems to make sense in the context of my project (a large flex port), but it could be that I am missing something that is causing this functionality to behave in a buggy way, which is what I am offering a solution for, and that a simple tweak elsewhere might demonstrate how this is supposed to work in its existing form. It does have the benefit of being a super simple change however.
This fixes an issue where a [Bindable] globals class containing static variables never fires ValueChangeEvents because dispatcher is always null. An excerpt from the globals.js (generated) file WITHOUT the change:
/**
 * Compiler generated
 * Static Binding support
 * @private
 * @type {org.apache.royale.events.EventDispatcher}
*/
globals._bindingEventDispatcher;

Object.defineProperties(globals, /** @lends {globals} */ {
/**
 * @export
 * @type {org.apache.royale.events.EventDispatcher}
 */
staticEventDispatcher: {
  get: function() {
  		return globals._bindingEventDispatcher
    	|| (globals._bindingEventDispatcher = new org.apache.royale.events.EventDispatcher());
    }
  },
/**
 * @type {XML}
 */
Policies: {
  get: function() {
    return globals.Policies_;
  },

  set: function(value) {
    	var oldValue = globals.Policies_;
    	if (value != oldValue) {
      		globals.Policies_ = value;
      		var dispatcher = globals._bindingEventDispatcher;
      		if (dispatcher) dispatcher.dispatchEvent(org.apache.royale.events.ValueChangeEvent.createUpdateEvent(
      			globals, "Policies", oldValue, value));
      }
    }
  },
...

The problem here is that dispatcher is set to globals._bindingEventDispatcher which is never initialized, so the event is never dispatched. After the fix, the setter function looks like:
  set: function(value) {
    	var oldValue = globals.Policies_;
    	if (value != oldValue) {
      		globals.Policies_ = value;
      		var dispatcher = globals.staticEventDispatcher;
      		if (dispatcher) dispatcher.dispatchEvent(org.apache.royale.events.ValueChangeEvent.createUpdateEvent(
      			globals, "Policies", oldValue, value));
      }
    }
  },

Now dispatcher is initialized using the staticEventDispatcher getter function which does a lazy init on the underlying variable, and the events are dispatched.

@aharui @joshtynjala @greg-dove Can one of you review this PR?

@aharui @joshtynjala @greg-dove Can one of you review this PR?


Cannot add !important property to css style

When trying to render a div with m("div", style: { display: "inline-flex !important"} ,"...") ,
the browsers ignore the display property.
Is there a specific way to enforce the "important" attribute on css style generated with Mithril ?

You can use a "config" function to work-around this issue :
m("div", config: function(element,isinit,context) {element.style.cssText += ';display: inline-flex !important;';}, ...)

There's nothing about Mithril that should affect !important. Here's a little playground where you can try applying different styles to an element inline and in a stylesheet. I don't have any problems applying importance: https://jsfiddle.net/barney/7vcnf4uy/

@ghpu That's an HTML/DOM issue. You don't need !important, because DOM-level changes take precedence over any CSS you might have. Mithril, in this case, sets el.style.display = "inline-flex !important", which won't work as intended. Try just doing this:
m("div", style: { display: "inline-flex"} ,"...")

In fact, I was trying to add "!important" as inline style, to try and override some class styles already containing "!important" keywords.
My context is that I made a widget with mithril, and then inject it in a web page already containing some styles. Using a reset css (which contains a lot of !important keywords), I must then force some css to override reset css styles.

@ghpu did you manage to get it to work in the end? The fiddle still works: https://jsfiddle.net/barney/7vcnf4uy/

@ghpu Welp...that should say style: "display: inline-flex !important". That will trigger setAttribute instead of style.whatever. My bad.


More specific faces for a fine grained control in themes

I've asked @protesilaos to add tree-sitter support to his modus-themes. In the discussion below, he mentioned that:

My intent was to reduce the overall colouration produced by the default
tree-sitter faces.  These tweaks give us good results, though there
still are some cases where tree-sitter exaggerates the styles it uses,
such as by combining types with constants to produce ad-hoc (anonymous)
faces.  We cannot do anything about anonymous faces at the theme level.
As such, we may get an extra bold weight[1] when we would rather not
have it and/or a different colour than the one desired.
[...]
What we want is for each construct to get its own face.  If some combined result is desired, and if the existing faces are not suitable, then new faces need to be defined.

Please see more in a discussion in the GitLab issue.
Please note, that I'm by any means expert on theming nor AST parsing. Is that something that could be addressed? Or perhaps a different approach should be considered?

Hello there!

Please note, that I'm by any means expert on theming nor AST parsing. Is that something that could be addressed? Or perhaps a different approach should be considered?

I am not familiar with the inner workings of tree-sitter.  So please consider the following a general remark on using Emacs faces.
Basically, when we have a construct that gets its attributes with something like :inherit (face-1 face-2) we get an implicit face-1+2 which the user/theme cannot customise.  Sometimes this is okay, though it generally is better to avoid that practice: either not blend faces or define a face-3 and use it instead.
While using tree-sitter, I encountered this issue in a few scenaria, such as a type+constant combination.  I can share specific snippets if you need them.


reverse the spin

Awesome repo BTW :-)
Can you easily reverse the spin, so that it starts from the top?
This is how slot machine work in my country so it will feel more natural.

Hey @trade74, thanks! Please check the site, the spin animation is now set to inverted, let me know if it feels more natural now :)

Yes feels more natural now, looks awesome :-p


Where is Class ColoreProvider?

I've googled it, the only result were the docs but this class simply doesn't seem to be implemented yet. Subsequently, I can't import it nor find it anywhere in my import NuGet package.

Aka: How can I work without it if possible?

Ok, it's in the v6.00 pre release


How to Find Podcasts That Have Been Deleted

subtitle: Fighting bitrot by clawing podcasts back into existence
description: TLDR, https://megaphone.spotify.com/ rehosts all mp3s
category: tutorial
I have been a guest on a lot of podcasts, but surprisingly for an immutable medium, podcasts don't stay around forever.  I know I'd love to look back on myself 30 years from now and laugh at how naive I used to be, so step 1 is keeping that around.
I have been re-syndicating my own appearances on other people's podcast on my mixtape, which I at least completely control. This serves dual purposes of fighting bitrot and allowing people to subscribe to this one feed to find me on all podcasts. Today I discovered that my one episode with Jeff Meyerson (RIP)'s Software Engineering Daily had been accidentally overwritten and lost to history. This was of course disappointing and I flailed around for a bit looking for the episode.
To save you time, I found it.
Here's what I ended up doing that worked:

Go to Spotify for the podcast (Screw Spotify for ignoring RSS and erecting closed gardens around podcasts) and search (more like scroll, because Spotify didnt implement search lol) for my episode: https://open.spotify.com/show/6UCtBYL29hwhw4YbTdX83N
Hit play on the episode and sniff the devtools to find the backed up mp3 URL

paste that mp3 url into the browser and download the backed up episode. ( I did try using youtube-dl to do this but ran into inscrutable ERROR: unable to download video data: <urlopen error [Errno 8] nodename nor servname provided, or not known> errors

Ironically, all this is only possible because Spotify hates supporting the indie web and podcast ecosystem so much that it rehosts all the mp3 in order to deny podcasters their analytics (so you have to go to Spotify to get their numbers). Screw you, and thank you Spotify.

https://twitter.com/johnspurlock points out that you can go into Spotify's settings and just tell them you host with a company that supports passthrough (like libsyn or captivate), and they will pass through the requests for analytics


feat(resolver): print detailed error messages for oxc_resolver

System Info
None
Details
The current implementation doesn't cover all error messages thrown by oxc_resolver:
https://github.com/web-infra-dev/rspack/blob/f3b27b9d7ad425ea97c06c35d088437558d022db/crates/rspack_core/src/resolver/resolver_impl.rs#L406-L433
Notice it only catches 2 errors and falls back to a generic error. oxc_resolver actually throws a lot more errors: https://github.com/web-infra-dev/oxc/blob/7d85492a03e34fec11e27eae42db28a7c3f12e16/crates/oxc_resolver/src/error.rs#L6
It would be nice to cover and print nice error messages for all of them.
Reproduce link
No response
Reproduce Steps
To get started, try Rspack with the experiments.rspackFuture.new_resolver = true configuration and then introduce any of the oxc_resolver errors in your setup.

hi~ I need some help :), I try to deal with oxc_resolver: : ResolveError: : IOError errors, found the inside of the rspack Error: : Io is the need to accept theio: : Errortypes, like this:
   oxc_resolver::ResolveError::IOError(error) => ResolveError(
      format!("IOError"),
      Error::Io {
        source: error.0.as_ref().unwrap(), // or error.into()
      },
    ),

But I found that oxc lacked such an implementation:
https://github.com/oxc-project/oxc/blob/7d85492a03e34fec11e27eae42db28a7c3f12e16/crates/oxc_resolver/src/error.rs#L124
like this:
impl Into<io::Error> for ResolveError

Is that true? Or is there another solution?

https://github.com/oxc-project/oxc/blob/7d85492a03e34fec11e27eae42db28a7c3f12e16/crates/oxc_resolver/src/error.rs#L124

Feel free to add the From / Into trait in oxc_resolver as well, and link it with oxc_resolver = { path = "..." } in rspack_core/Cargo.toml.
Otherwise give me your work-in-progress branch and I'll add the trait.

thx~ , I'll submit some code to oxc_resolver later

I'll have a try

I have successfully debugging oxc_resolver locally, but after all, this needs to update the oxc-project/oxc code, so I want to leave a TODO here, and first handle ResolveError::IOError, Later I will go to oxc-project /oxc to submit a pr and come back to solve this TODO

I have successfully debugging oxc_resolver locally, but after all, this needs to update the oxc-project/oxc code, so I want to leave a TODO here, and first handle ResolveError::IOError, Later I will go to oxc-project /oxc to submit a pr and come back to solve this TODO

I can make a quick release after your PR in oxc 😁


fix(KONFLUX-3986): fix CSV header generator

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Issue ticket number and link
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/test ?+

/test ?

/test max-concurrency-basic

/test max-concurrency-basic

/retest

/test max-concurrency-basic

I went through the logs for the failed max-concurrency-basic job, it seems to be failing because of this error:
W0809 11:34:08.923017   12322 utils.go:436] failed to register SprayProxy: failed to set up SprayProxy credentials: env var QE_SPRAYPROXY_HOST is not set - this issue will be reported to a dedicated Slack channel
Error: error when bootstrapping cluster: failed report an error (failed to register SprayProxy: failed to set up SprayProxy credentials: env var QE_SPRAYPROXY_HOST is not set) to a Slack channel: not_authed

The fix is to add the missing environment variables: https://github.com/openshift/release/pull/55086/files#diff-1541bd2395301eaeb1f30d8c0b2e914691b0295d1349e7cf24eadfada18fab7b

/pj-rehearse ack

/retest

/test max-concurrency-basic

Just had a quick check on the latest successful run. CSV headers are now aligned with the values in max-concurrency.csv.
/lgtm


Introduce new parameters to limit the schemas, databases, tables loaded into cache

@MichalisDBA - it seems would be easier to apply this restriction by user roles.

New parameter added
INCLUDE_SCHEMAS=HR,DB2REST


Create joke_provider.py

I have made a joke provider bot plz do have a look.
Type of change

[ ] Added new project
[ ] Bug fix
[ ] New features
[ ] Enhanced documentation

Changes proposed in this pull request

Project name :

Short description :

Checklist

[ ] The code is Python 3 compatible
[ ] I have added relevant comments in my file to make code understandable
[ ] I have added my project in a folder which includes all the necessary files

I have made this project under issue # 313.plz do have a look


We need to decide if trailing slashes are optional on requests

See https://github.com/matrix-org/matrix-doc/issues/1944
See https://github.com/matrix-org/matrix-doc/pull/2061
See https://github.com/matrix-org/matrix-doc/pull/2097#discussion_r291971533
Personally, I'm of the opinion that it should be optional (ie: can be included or excluded).

my thoughts on this are as per https://github.com/matrix-org/matrix-doc/pull/1849#discussion_r309628715

my thoughts are, fairly strongly, that there should be exactly one way to do it. Having two ways to do anything leads us to the situation where:

most clients do it one way, some do it the other
a new server implementation is written and tested against the common clients, but never against the less common clients which do it the other.
some clients are compatible with some some servers some of the time. oh hai xmpp.

Being a happy developer of a client that generates paths directly from Swagger spec (and we have at least one case of doing the same for servers) I obviously would like that the Swagger definition is strictly followed. That makes the case in #2061 somewhat stand out: Swagger mandates required: true for all path parameters so the only reasonable way to incorporate this change is, exactly as the proposal section in it states, to make a separate endpoint (another, unreasonable, way would be to say that keyId is required but can be empty which is very confusing).
I agree with Rich that for the sake of consistency across the ecosystem we have to follow exactly one way, and no trailing slashes seems to be a de-facto accepted convention requiring the least number of adjustments. I would also prefer to declare endpoints with trailing slashes as generally a no-go zone within Matrix API, to simplify tracking down bugs in clients where the last parameter on the path is empty.


Random encounters generation fail with min & max filters

When applying a filter with min = 1, max = 1
and a party of 5 adventurers with level 4, the encounter builder fails to generate a valid encounter.
This is a strange behaviour, because with a party of 4 and level 4, it generates correctly.

Found the issue, we should implement "ranges" not only static values. For example with a party of 5 we have an encounter budget of 100xp for a given difficulty, but creatures are only at 80 or 140. 80 is still in the range for the difficulty but we aimed at only reaching the specific value


Overlays do not work with pkgsCross

With this overlay:
self: super:
{
    thing = self.stdenv.mkDerivation
    {
        name = "thing";
        phases = [ "buildPhase" "installPhase" "fixupPhase" ];
        buildPhase = ''
            echo 'int main(){return 0;}' > main.c
            cc -o thing main.c
        '';
        installPhase = ''
            mkdir -p $out/bin
            cp thing $out/bin/
        '';
    };
}

I'm able to build thing for the buildPlatform:
$ nix-build -E 'with (import ./default.nix {}).extend (import ./overlay.nix); thing'
these derivations will be built:
  /nix/store/shh03gv6jdw3kj0cmh4s31xyjs89sa9q-thing.drv
these paths will be fetched (0.01 MiB download, 0.04 MiB unpacked):
  /nix/store/6c47azxacncswc1pllzj28zfzqw40d7c-stdenv-linux
copying path '/nix/store/6c47azxacncswc1pllzj28zfzqw40d7c-stdenv-linux' from 'https://cache.nixos.org'...
building '/nix/store/shh03gv6jdw3kj0cmh4s31xyjs89sa9q-thing.drv'...
building
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing
shrinking /nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing/bin/thing
strip is /nix/store/xdii8qvch5h8chyp0z2is2qzky565w68-binutils-2.35.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing/bin
patching script interpreter paths in /nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing
checking for references to /build/ in /nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing...
/nix/store/5acq7bj7dfmqk43va43120s8s7r5abs8-thing

However, thing is missing from pkgsCross.aarch64-multiplatform:
$ nix-build -E 'with (import ./default.nix {}).extend (import ./overlay.nix); pkgs.pkgsCross.aarch64-multiplatform.thing'
error: attribute 'thing' missing, at (string):1:63
(use '--show-trace' to show detailed location information)

Does pkgsCross not work with overlays or am I doing something wrong?

The problem seems to be with pkgs.extend in particular. While this fails:
$ nix-build -E 'with ((import ./default.nix {}).extend (import ./overlay.nix)); pkgsCross.aarch64-multiplatform.thing'
error: attribute 'thing' missing, at (string):1:65
(use '--show-trace' to show detailed location information)

This works:
$ nix-build -E 'with (import ./default.nix {overlays = [(import ./overlay.nix)];}); pkgsCross.aarch64-multiplatform.thing'
...
/nix/store/dpldk940gwlvqkz1j2swvy5i2ih9qgi2-thing-aarch64-unknown-linux-gnu

You found the correct solution:
# nix-instantiate -E 'with import <nixpkgs> { overlays = [ (import ./overlay.nix) ]; }; pkgsCross.aarch64-multiplatform.hello'
warning: you did not specify '--add-root'; the result might be removed by the garbage collector
/nix/store/an8rfx207ymfmnzywjjx1hbzijand4ri-thing-2.10-aarch64-unknown-linux-gnu.drv

There is a second one:
# nix-instantiate -E 'with import <nixpkgs> { }; (pkgsCross.aarch64-multiplatform.extend (import ./overlay.nix)).hello'
warning: you did not specify '--add-root'; the result might be removed by the garbage collector
/nix/store/an8rfx207ymfmnzywjjx1hbzijand4ri-thing-2.10-aarch64-unknown-linux-gnu.drv

Ah this isn't a bug at all; I just misunderstood how extend works:
extend = f: self.appendOverlays [f];

I was expecting extend to do something like import ./default.nix {overlays = ((import ./default.nix {}).overlays) ++ [(import ./overlay.nix)];} instead of using self.
Sorry for the noise.


Course Update Request: Focus on Operational Aspects

The course is specified in three parts. I am more interested in the operational part rather than the scientific part, and I am sure there are many people who think the same way. Could you update it accordingly?

I'm not sure I understand, what would the update look like?


Is fastReduction from gcs.go supposed to be equivalent to the modulo operation?

From what I understand, the fastReduction is supposed to be equivalent to the modulo operation, while experimenting, I found that it is not the case.
fastReduction(6573390126540650161, 13343827) = 4754995 while<PHONE_NUMBER>540650161 mod 13343827 = 438473

No they aren't meant to be equivalent, but they have a similar distribution, which is all we need for our use case.

That's what I noticed, as I read about GCS using modulo I was curious whether this was intentional.
Thanks.


Compiled code 'is' not working correctly with types

I should be able to write 'type(ListOf(int)).ElementType is int` and have it work, but it doesn't. I have to use Int64 instead.

actually the problem is that if I print ElementType i get 'int', but it's actually Int64.

I can't reproduce this. The behavior for me is as follows: let x be a ListOf(int) or a ListOf(Int64). Then type(x) gives ListOf(Int64), x.ElementType gives Int64, and (if x isn't empty) type(x[0]) gives int.
What behavior do we want?


Update folder path for storing optimization profile and add test to validate loaded assemblies and libraries on startup

PR Summary
Two changes in this PR:

Update folder path for storing optimization profile
Add test to validate loaded assemblies and libraries on startup

Assemblies loaded on startup impact startup time. Sometimes we merge a commit that uses a new type that adds loading a new assembly on startup. We need to catch these and decide if it's worth the impact or delay loading when possible.
Assemblies that are loaded during startup are affected by the profile optimization automatically generated in powershell. The StartupProfileData-xxxx files record assemblies that are potentially used right after powershell starts. With such a file being available, powershell will eagerly load those assemblies using multiple CPU cores, even though some assemblies are not really needed for the current use case.
So, to accurately test the loaded assemblies at startup, we need to remove StartupProfileData-NonInteractive before run pwsh -noprofile -command ...
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[ ] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[ ] Not Applicable or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@SteveL-MSFT  Please update your review.


Guest Network: IP addresses and Router Tab

Bugfix: Don't show egress tab for shared and l2 networks in the Guest Network view
Implement two tabs for the guest network view:

Public IP addresses tab: Button to acquire a public IP (optional: button also release it) Use a-table with pagination (see AutogenView as an example; components/view/ListView.vue component). Show only in case of isolated networks (or check old UI).

Router tab - list of router that belong to a network, either in a-table or a-list, use router-link to allow users/admin to route to the router resource view. Show this only for isolated and shared networks. Check if users are allowed the listRouters API (example from the PR v-if="'listPrivateGateways' in $store.getters.apis"). Reference: https://github.com/apache/cloudstack-primate/pull/143

@Pearl1594 ^^


No issue template for general issues like bug/enhancement/etc

Details (optional)
There is no issue template for general issues like bug/enhancement/etc for this repo.

https://github.com/cncf/glossary/tree/main/.github/ISSUE_TEMPLATE
https://github.com/cncf/glossary/issues/new/choose

Hey @jihoon-seo , i can work on this one! 🙂

Hey @jihoon-seo @JasonMorgan  , what are some of the main things we would be having in a bug report?
The main points i have thought of are:

Description of the bug
Working environment (e.g. operating system, browser, device)
Adding any screenshot (if needed)
Any other comments or context related to the topic

Anything else that could be added?

Hi @verma-kunal , I think we need to check current issue-templates and need some decisions by maintainers (remove, update, add). Could you let me handle this issue first? I will leave some tasks that you can contribute soon :)

Sure @seokho-son , sounds good! 🙂


Feature/query bindings

What is this pull request?
Implement Swig bindings for queries.
Why do you implement it? Why do we need this pull request?
Swig requires simplified builder interface due to its internal limitations.
How to use the features provided in the pull request?
Python:
import iroha
import time

query_builder = iroha.ModelQueryBuilder()
crypto = iroha.ModelCrypto()
proto_query_helper = iroha.ModelProtoQuery()

me_kp = crypto.generateKeypair()
time = int(round(time.time() * 1000))
start_counter = 1
creator = "me@iroha"

query_unsigned = query_builder.queryCounter(start_counter).creatorAccountId(creator).createdTime(time).getAccount("lolkek@iroha").build()
print(proto_query_helper.signAndAddSignature(query_unsigned, me_kp).toString())

Java:
import java.math.BigInteger;
import java.util.*;

public class x {
  static {
    try {
        System.loadLibrary("iroha");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load. \n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[]) {
    ModelQueryBuilder query_builder = new ModelQueryBuilder();
    ModelCrypto crypto = new ModelCrypto();
    Keypair me_kp = crypto.generateKeypair();
    ModelProtoQuery proto_query_helper = new ModelProtoQuery();

    long time =<PHONE_NUMBER>000L;
    long start_counter = 1;
    String creator = "me@iroha";

    UnsignedQuery query_unsigned = query_builder.queryCounter(BigInteger.valueOf(start_counter)).creatorAccountId(creator).createdTime(BigInteger.valueOf(time)).getAccount("lolkek@iroha").build();

    System.out.println(proto_query_helper.signAndAddSignature(query_unsigned, me_kp).toString());
  }
}

Details/Features
List of features / major commits

Add proto builder for queries
Make proto query interface parseble for Swig
Add missed includes for Swig

Codecov Report

Merging #777 into trunk/shared_model will increase coverage by 0.04%.
The diff coverage is 27.27%.

@@                  Coverage Diff                   @@
##           trunk/shared_model     #777      +/-   ##
======================================================
+ Coverage               41.19%   41.23%   +0.04%
======================================================
  Files                     430      430
  Lines                   13884    13893       +9
  Branches                 7468     7474       +6
======================================================
+ Hits                     5719     5729      +10
+ Misses                   1577     1568       -9
- Partials                 6588     6596       +8

Impacted Files
Coverage Δ

..._model/backend_proto/shared_proto_queries_test.cpp
17.14% <0%> (-3.55%)
:arrow_down:

...red_model/backend/protobuf/queries/proto_query.hpp
48.64% <44.44%> (+25.11%)
:arrow_up:

shared_model/builders/protobuf/queries.hpp
95% <66.66%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


HtmlLibraryManagerImpl No library configured at /apps/clientlibs/granite/jquery

Hi all, when we open a page we can see in our log file these WARN:
02.11.2017 16:18:12.398 WARN [0:0:0:0:0:0:0:1 [1509650292355] GET /en_US.html HTTP/1.1] com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl No library configured at /apps/clientlibs/granite/jquery
02.11.2017 16:18:12.398 WARN [0:0:0:0:0:0:0:1 [1509650292355] GET /en_US.html HTTP/1.1] com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl No library configured at /apps/clientlibs/granite/utils
02.11.2017 16:18:12.399 WARN [0:0:0:0:0:0:0:1 [1509650292355] GET /en_US.html HTTP/1.1] com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl No library configured at /apps/clientlibs/granite/jquery/granite
If I uninstall ACS commons, the warns disappear
AEM 6.3.0 and ACS Commons 3.9.0
Thanks in advance

Please test with the latest release. If the issue persists, please provide a package which can be used to reproduce the issue.

I can't reproduce this. Here's what I did:

Started AEM 6.3 GA in author mode.
Installed acs-aem-commons-content-3.11.0.zip
Loaded http://localhost:4502/content/we-retail/us/en.html

There are no WARN messages in the logs for HtmlLibraryManagerImpl

I did find some other warnings, just not these. See #1166

As discussed in AEM-Tech Slack, this is unrelated to Commons.


chore: forward-port leanprover-community/mathlib#18412

This was incorrectly marked as forward-ported in #2110. You can see that by looking at the status page and noting that no commits in mathlib4 contain the diff from the highlighted commits on the left.

https://github.com/leanprover-community/mathlib/pull/18412

bors merge


EditorScript 's compile errors are not logged in Console

When writing an script to run in the editor bugs like undefined vars are not logged and when trying to run only feedback is a reminder to use tool keyword, same happens if you try to inherit another class instead of EditorScript.
Error logs are in godot's command window (if std-out is enabled)

Does this still happen in 2.1-beta?

Yes

Not critical for the upcoming 2.1, so moving to the next milestone.

That would be really nice to fix anyway. Having to keep a terminal open while debugging tool scripts is not a very nice experience.

Moved to milestone 3 to make sure this is not missed, can probably be cherypicked for 2.2


Delete DEI.md

Removing this DEI.md file in favor of using the Guide and Template files for helping people create their own DEI.md files.
Signed-off-by: Matt Germonprez<EMAIL_ADDRESS>

Added DCO even though it still says it's failing.


Use Notification Daemon API instead of local notification manager

Use notifications daemon API instead of local notification manager

Remove all logic of local notification management

Only include notification widget display functionality

Fixes minor bug  mentioned on https://github.com/OpenVoiceOS/skill-ovos-homescreen/issues/7

haven't tested, but visually looks good

Opposite of Jarbas: haven't reviewed the code, but I'm testing it on the last "stable" image (pre-adventures in keyboardland) on the Mk2 devkit.
The skill loads and registers. Everything is displaying and updating. Timeout and the home button are both working as expected. Rebooted the unit and it's still behaving.