FeedbackMessage: broken Mia-Platform console style

When the component FeedbackMessage is used with useFeedbackMessage, it interfere with the Mia-Platform console style and deletes/overwrites it.
To replicate the issue, you have to:

Have a piece of frontent (a SPA) that uses the component, with useFeedbackMessage, in Mia-Platoform console.
Make appear the feedback message
change section/SPA of the console

The expected result for your bug
It shouldn't interfere with other styles

I think we already faced a similar behavior, @ThisIsDemetrio should have investigated it in the past do you remember something?


Prepare SELinux packages in overlay for upstreaming

~Based on and blocked on #1672.~
The weekly updates updated SELinux userspace tools to version 3.6. We have two packages in overlay that were not yet updated - sys-apps/policycoreutils and sys-libs/libsemanage. This PR updates both packages to 3.6 too and tries to remake Flatcar modifications to the ebuilds, so they will still be useful for us and be eventually upstreamable.
The modifications were as follows:

Drop dependency on python:

I tried making it optional by putting it behind the python USE flag.
In case of policycoreutils, python dependency did come mostly through the Gentoo-specific addition of policycoreutils-extra tarball that has some scripts written in python. For this, I have added a vanilla USE flag, that would skip the extra Gentoo stuff.

Make /var/lib/selinux a symlink to /usr/lib/selinux/policy.

~I moved that modification to coreos-base/misc-files.~
This modification is split in two - tmpfiles stuff went to coreos-base/misc-files, overriding the path went to the profiles bash hook. More about this in commit messages and comments.

~One thing I'm not sure about is whether to drop python support SELinux only for generic images or for both generic and SDK images. Keeping python support for SELinux with current changes I have made to policycoreutils and libsemanage ebuilds results in needing to pull app-admin/setools, dev-python/networkx and sys-apps/selinux-python packages into SDK.~
We dropped python support for both generic and SDK images - we don't need the python tools.
CI: http://jenkins.infra.kinvolk.io:8080/job/container/job/sdk/1342/cldsv/ (more or less passed, kicked off another one, because I dropped one INSTALL_MASK).
--

sys-apps/policycoreutils: [PROD] [DEV]

from 3.5 to 3.6
bumped python compat to 3.10..3.11
moved the use of tmpfiles to coreos-base/misc-files
added vanilla and python USE flags (we enable vanilla and disable python)

vanilla tells the ebuild to use vanilla sources, disabling it pulls in some Gentoo extras (which use python)

moved the override of selinux policy modules directory into profiles bash hook

sys-libs/libsemanage: [PROD] [DEV]

from 3.5 to 3.6
bumped python compat to 3.10..3.11
added the enabled-by-default python USE flag (to be upstreamed)
changed dep on sys-devel/{bison,flex} to app-alternatives/{yacc,lex}
moved config generation into a patch (to be upstreamed)

so we can add out own patch that changes the compression setting there

sys-process/audit: [PROD] [DEV]

from 3.0.6-r1 to 3.1.1
EAPI 8
bumped python compat to 3.9..11
moved the use of tmpfiles to coreos-base/misc-files
added the io-uring USE flag

we probably could think about enabling it

dropped most of the modifications
release notes: https://github.com/linux-audit/audit-userspace/releases/tag/v3.1.1

dev-lang/swig:

from 4.0.2 to 4.1.1-r1
EAPI 8
replaced dep on dev-libs/libpcre with dev-libs/libpcre2
release notes: https://sourceforge.net/p/swig/news/2022/11/-swig-411-released/

--

[x] changelog
[x] image diff

CI passed.

LGTM. Thanks for working on this last bit of the SELinux automation: now all the SELinux upgrades (policies and core packages) will be done without effort. Allowing us to focus on the other SELinux related topics 😉 Thanks!

Sure thing! I hope that upstream will be willing to take our changes.

Some notes:

Regarding the OpenStack failure, it will disappear if you rebase on main but that's not needed of course.

Oh, cool. Good to know.

What about opening a ticket on Gentoo https://bugs.gentoo.org/ to get folks input, get a reference when we'll send the Python patch upstream and not forget about it?

Oh yeah, I want to upstream this stuff, obviously. But I was rather thinking about filing a github PR. Would a ticket on bugzilla be better?


Add peers protocol matching mechanism

Feature description
When a session is established between two nodes they should be able to know which protocols each node is supporting right after handshake.
If there's no matching protocols drop that node for now.
Main Reason for adding this feature
The other scenario is trying to communicate with a node, then getting unsupported protocol msg, then trying other protocol or query protocols.
this can be saved and be easier with that feature.

Is it anyone working on this issue? if not I'd like to work on it.

This issue is quite complicated since our existing protocols aren't modular enough to do protocol matching yet.
No one working on this issue though its spec isn't mature enough to start working on , please feel free to drop in architecture proposals for this feature.
I will try to put in some more info about what we have later. (Everything is in P2P package for now of course).
So, you can take it, but architecture and planning should be done first before implementation.

so I think is better go to another issue.

this can function as capabilities or services matching. eventually it can help to discover poets or make sure all nodes use the same version.

One additional thought from #2122 (a duplicate issue):

this raises the question, what exactly defines a protocol version? We may need to manually hardcode this each time it changes - but at the very least, it should change when message or serialization format change, and probably when consensus rules change too. (Nodes with incompatible config flags should also not try to talk to one another. This would be easier to compare programmatically, if we're not already doing that.)

As @y0sher pointed out, we do currently need to manually update ClientVersion and we haven't yet tried to release a backwards compatible version (although in practice multiple releases/builds are sometimes backwards compatible).
It's also interesting to consider our plans for network ID (https://github.com/spacemeshos/SMIPS/issues/26) and including something like a hash of the config params - in practice we need to match both the protocol build and these params across peers.

also related: #1918


[SPARK-27225][SQL] Implement join strategy hints

What changes were proposed in this pull request?
This PR extends the existing BROADCAST join hint (for both broadcast-hash join and broadcast-nested-loop join) by implementing other join strategy hints corresponding to the rest of Spark's existing join strategies: shuffle-hash, sort-merge, cartesian-product. The hint names: SHUFFLE_MERGE, SHUFFLE_HASH, SHUFFLE_REPLICATE_NL are partly different from the code names in order to make them clearer to users and reflect the actual algorithms better.
The hinted strategy will be used for the join with which it is associated if it is applicable/doable.
Conflict resolving rules in case of multiple hints:

Conflicts within either side of the join: take the first strategy hint specified in the query, or the top hint node in Dataset. For example, in "select /*+ merge(t1) / /+ broadcast(t1) */ k1, v2 from t1 join t2 on t1.k1 = t2.k2", take "merge(t1)"; in df1.hint("merge").hint("shuffle_hash").join(df2), take "shuffle_hash". This is a general hint conflict resolving strategy, not specific to join strategy hint.
Conflicts between two sides of the join:
a) In case of different strategy hints, hints are prioritized as BROADCAST over SHUFFLE_MERGE over SHUFFLE_HASH over SHUFFLE_REPLICATE_NL.
b) In case of same strategy hints but conflicts in build side, choose the build side based on join type and size.

How was this patch tested?
Added new UTs.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9132/
Test PASSed.

Test build #103754 has started for PR 24164 at commit 1426294.

Test build #103754 has finished for PR 24164 at commit 1426294.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 class ResolveJoinStrategyHints(conf: SQLConf) extends Rule[LogicalPlan]
case class HintInfo(strategy: Option[JoinStrategyHint] = None)
sealed abstract class JoinStrategyHint

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103754/
Test FAILed.

retest this please

Test build #103759 has started for PR 24164 at commit 1426294.

Test build #103759 has finished for PR 24164 at commit 1426294.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 class ResolveJoinStrategyHints(conf: SQLConf) extends Rule[LogicalPlan]
case class HintInfo(strategy: Option[JoinStrategyHint] = None)
sealed abstract class JoinStrategyHint

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103759/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9141/
Test PASSed.

retest this please

ok to test

test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9152/
Test PASSed.

Test build #103776 has started for PR 24164 at commit 1426294.

test this please

Test build #103777 has started for PR 24164 at commit 1426294.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9154/
Test PASSed.

Test build #103777 has finished for PR 24164 at commit 1426294.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 class ResolveJoinStrategyHints(conf: SQLConf) extends Rule[LogicalPlan]
case class HintInfo(strategy: Option[JoinStrategyHint] = None)
sealed abstract class JoinStrategyHint

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103777/
Test PASSed.

In the conflict case, we need to implicitly resolve it? In case of complicated queries, it seems to become difficult that uses understand the hint behaviours, I think.

We also need to update the document;
https://spark.apache.org/docs/latest/sql-performance-tuning.html#broadcast-hint-for-sql-queries

@maropu

In the conflict case, we need to implicitly resolve it

We'll need to log warnings for ignored and overridden hints, like you did in https://github.com/apache/spark/pull/24055. So would you mind holding that off and implement a more complete solution after this PR?

@maropu

We also need to update the document;
https://spark.apache.org/docs/latest/sql-performance-tuning.html#broadcast-hint-for-sql-queries

Thank you for pointing this out! I'll work on that.

cc @cloud-fan @hvanhovell @gatorsmile

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9295/
Test PASSed.

Test build #103937 has started for PR 24164 at commit e77c9f3.

Test build #103937 has finished for PR 24164 at commit e77c9f3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103937/
Test PASSed.

How about the Dataset Hint API? For example, df.hint("broadcast")?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9594/
Test PASSed.

@gatorsmile Added more tests. Please review.

Test build #104259 has started for PR 24164 at commit f198dfb.

Test build #104259 has finished for PR 24164 at commit f198dfb.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104259/
Test FAILed.

retest this please

Test build #104264 has started for PR 24164 at commit f198dfb.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9600/
Test PASSed.

Test build #104264 has finished for PR 24164 at commit f198dfb.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104264/
Test FAILed.

Test build #104300 has started for PR 24164 at commit d25822d.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9638/
Test PASSed.

Test build #104300 has finished for PR 24164 at commit d25822d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104300/
Test PASSed.

Test build #104392 has started for PR 24164 at commit 4a13ffe.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9725/
Test PASSed.

Test build #104401 has started for PR 24164 at commit 407c63f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9732/
Test PASSed.

Test build #104401 has finished for PR 24164 at commit 407c63f.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104401/
Test FAILed.

Test build #104392 has finished for PR 24164 at commit 4a13ffe.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104392/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9749/
Test PASSed.

Test build #104418 has started for PR 24164 at commit 6bd7f56.

@maropu I added "hint error handling point" in the hint resolving and hint-node elimination stage, with default behavior as logging warnings. You can refine them and probably add configuration-based error handling in your other PR.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9751/
Test PASSed.

Test build #104420 has started for PR 24164 at commit e533ac2.

Test build #104418 has finished for PR 24164 at commit 6bd7f56.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104418/
Test FAILed.

Test build #104420 has finished for PR 24164 at commit e533ac2.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104420/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9787/
Test PASSed.

Test build #104457 has started for PR 24164 at commit 7342fbd.

Test build #104457 has finished for PR 24164 at commit 7342fbd.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
 class MockAppender extends AppenderSkeleton

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104457/
Test FAILed.

Test build #104468 has started for PR 24164 at commit 0912997.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9798/
Test PASSed.

Test build #104468 has finished for PR 24164 at commit 0912997.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104468/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9804/
Test PASSed.

Test build #104474 has started for PR 24164 at commit 0912997.

Test build #104474 has finished for PR 24164 at commit 0912997.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104474/
Test FAILed.

Test build #104481 has started for PR 24164 at commit c0b217c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9811/
Test PASSed.

Test build #104481 has finished for PR 24164 at commit c0b217c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104481/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9827/
Test PASSed.

Test build #104498 has started for PR 24164 at commit 4a48286.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9829/
Test PASSed.

Test build #104500 has started for PR 24164 at commit a9634c4.

Test build #104498 has finished for PR 24164 at commit 4a48286.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #104500 has finished for PR 24164 at commit a9634c4.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104500/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104498/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9838/
Test PASSed.

Test build #104511 has started for PR 24164 at commit a9634c4.

Test build #104511 has finished for PR 24164 at commit a9634c4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104511/
Test PASSed.

thanks, merging to master!


msg.caller is always 2vxsx-fae (production)

I have initialized actor with identity of user authorized with Internet Identity

Submit "propose" transaction

Expected to have  newProposalWithProposer appended with Principal Id as above.. but its always a default one..

Are you sure that the fronted is in the context of your internet identity at the moment you are sending out propose?
Also, have you consulted an example app how it is being done there?
If all this fails, I suggest asking @krpeacock.

Solved the problem.. the mistake was in the code above.. identity should passed within agentOptions.. working code below..
    identity = authClient.getIdentity();
    actor = createActor(
        canisterId, {
            agentOptions: {
                identity: identity,
            }
        }
    );

another problem was on screenshot.. solved by rm -rf .dfx/local

Thanks! I'd close the bug now, to keep this bug tracker tidy, but for reasons unexplained to me I now longer have the permission to do so, and can only kindly ask you to press the close button below.


bug on crm while trying to open the selector for owner ( while creating a new account)

Catchable fatal error: Argument 1 passed to Oro\Bundle\DataGridBundle\Twig\DataGridExtension::getGridMetadata() must be an instance of Oro\Bundle\DataGridBundle\Datagrid\DatagridInterface, null given, called in /opt/local/apache2/htdocs/tests/crm-application/app/cache/prod/twig/10/66/490928cf785614100bc146d30cb15eb16eaabf3610924eaeb4e05d745a1d.php on line 38 and defined in /opt/local/apache2/htdocs/tests/crm-application/vendor/oro/platform/src/Oro/Bundle/DataGridBundle/Twig/DataGridExtension.php on line 78

Hi, @dardoguidobono!
fixed here https://github.com/orocrm/platform/commit/7c1b6bde0dd519501f276c2639a1f7ef8440827f
Thanks for report!


add PR_TEMPLATE AND LICENSE

--checklist
-i am swoc 23 contributor
pr template will ensure that
maintainer can check issue number, contributor can add screenshot
-- license is a important part as published by MIT LICENSE

Assign me @LegendSumeet


Android build failure

Element activity#de.appplant.cordova.plugin.printer.ui.SelectPrinterActivity at AndroidManifest.xml:13:9-200 duplicated with element declared at AndroidManifest.xml:12:9-205
Seems like the problem is stems from there being two activity properties with the same name in AndroidManifest.xml.
<activity android:exported="false" android:label="All printers" android:name="de.appplant.cordova.plugin.printer.ui.SelectPrinterActivity" android:theme="@android:style/Theme.Material.Settings" />         <activity android:exported="false" android:label="Printer" android:name="de.appplant.cordova.plugin.printer.ui.SelectPrinterActivity" android:theme="@android:style/Theme.Material.Settings" />

Seems to be a problem with the pre-created cordova sample folder. If you're encontering the same issue just create a new cordova project from scratch, and move the www/ folder to the new directory.


Removed link to the Wiki.

Removed links to the Wiki, and added info from the Wiki home page to a
new “kits and curricula” page, in preparation for removing the single existing
Wiki page.

Closing pull request since it is redundant with a request from Jayson. Please ignore.

Ah, sorry for the overlap on this -- but thanks for your blessing on the change.  I think since we have nothing else to put in the repos I was leaning to consolidate everything there and then as we move forward and iterate on activities, etc. hope a distinction between what goes on wiki, what stays in the repositories, and what goes in google docs will naturally become more obvious.


Plugin can't seem to find mono

Mac - El Capitan
Latest Mono from the mono project site in /usr/local/bin/mono
/usr/local/bin/mono is on the path
I get this:
"'/usr/bin/mono' could not be spawned. Is it installed and on your path? If so please open an issue on the package spawning the process."
There doesn't seem to be any way to set the location of mono manually?

Never mind, it was an F# linter that was causing the problem.


Unable to export multiple JAX models under a single vmfb file

This is not an actual bug – it is more of a feature/guidance request.
Context
I have multiple JAX models that I export using IREE's JAX frontend, all of the models having a single "main" function they run. The issue that I have is that I have too many of these models.
What I'm trying to achieve
I need to reduce the number of models generated. I've seen in this example that IREE is able to load a single function from a module, given an MLIR. Now this got me thinking – could I unify all of my N models (which each consist in that main function) under a single .vmfb file, having a module with N functions, each function representing one of my initial models?
I guess a possible flow would be:

Build JAX models
Generate MLIRs for each model
Parse the MLIRs (as strings) and build a unified MLIR
Export the unified MLIR to an IREE model

The issue with the above is that I was not able to generate MLIRs from the JAX models. Is it possible to generate MLIRs from IREE models?
Drawbacks
I realize that one drawback would be that there would be a single .vmfb file with an increased size, but I'm willing to trade memory for a smaller number of files.

(solving it at the jax->iree side is best, but it may still be worth it to eventually have an mlir-link like there is llvm-link that given a set of input mlir files does the module combining and symbol renaming and such)

Yeah, such a roll would be a useful escape valve for these kinds of cases
and probably not be very hard to write. I wrote something similar recently
as a pass, which isn't directly helpful but has the same bones as the thing
we are describing:
https://github.com/google/iree/blob/main/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/RTL/LinkRTLPass.cpp
. Main difference would be that I think this would be a real tool that took
things to link as CLI options.
It would be somewhat hard to make good, user level APIs via that path, but
as a break glass tool, I'd be supportive.
Also, I'm pretty sure that the new python API has enough in it to hack
something together. May try to drop something in to samples:
https://iree-python-api.readthedocs.io/en/latest/
On Thu, Sep 30, 2021, 7:44 AM Ben Vanik @.***> wrote:

(solving it at the jax->iree side is best, but it may still be worth it to
eventually have an mlir-link like there is llvm-link that given a set of
input mlir files does the module combining and symbol renaming and such)
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/google/iree/issues/7217#issuecomment-931388963, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADYVAHYOERBFWAK3FFD6ULUERZWNANCNFSM5FBS63BQ
.

On Thu, Sep 30, 2021, 7:55 AM Stella Laurenzo @.***>
wrote:

Yeah, such a roll would be a useful escape valve for these kinds of cases
and probably not be very hard to write. I wrote something similar recently
as a pass, which isn't directly helpful but has the same bones as the thing
we are describing:
https://github.com/google/iree/blob/main/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/RTL/LinkRTLPass.cpp
. Main difference would be that I think this would be a real tool that took
things to link as CLI options.
It would be somewhat hard to make good, user level APIs via that path, but
as a break glass tool, I'd be supportive.
Also, I'm pretty sure that the new python API has enough in it to hack
something together. May try to drop something in to samples:
https://iree-python-api.readthedocs.io/en/latest/

Actually looks like we are missing clone support. May try to add that
upstream today.

On Thu, Sep 30, 2021, 7:44 AM Ben Vanik @.***> wrote:

(solving it at the jax->iree side is best, but it may still be worth it
to eventually have an mlir-link like there is llvm-link that given a set
of input mlir files does the module combining and symbol renaming and such)
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/google/iree/issues/7217#issuecomment-931388963, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADYVAHYOERBFWAK3FFD6ULUERZWNANCNFSM5FBS63BQ
.

The lack of a good story for deployable multi-function programs is what's had me most skeptical about JAX. I think it's going to get better though :-) Could you clarify what you mean by "not able to generate MLIRs from the JAX models"? It should be possible to get the MLIR before it gets fed into IREE. I use that all the time for debugging model support. As others noted, the ideal would be to do this at generation, but I think you could hack something together without too much trouble.
You can use the save_temp_mhlo_input or save_temp_iree_input ImportOption to save out the MHLO IR or IREE input IR, respectively. I think the latter would probably be better, but I'm more familiar with the MHLO (https://github.com/google/iree/blob/88e2aaee5d/llvm-external-projects/iree-compiler-api/python/iree/compiler/tools/xla.py#L76). That triggers these save flags during import: https://github.com/google/iree/blob/88e2aaee5d/integrations/tensorflow/iree_tf_compiler/iree-import-xla-main.cpp#L260, which writes things off to a file. Those could then be linked together as you're describing (ideally as a compiler pass, but you could probably hack together a python script for this special case also). From there it can be handed of to the IREE compiler

The lack of a good story for deployable multi-function programs is what's had me most skeptical about JAX. I think it's going to get better though :-) Could you clarify what you mean by "not able to generate MLIRs from the JAX models"? It should be possible to get the MLIR before it gets fed into IREE. I use that all the time for debugging model support. As others noted, the ideal would be to do this at generation, but I think you could hack something together without too much trouble.
You can use the save_temp_mhlo_input or save_temp_iree_input ImportOption to save out the MHLO IR or IREE input IR, respectively. I think the latter would probably be better, but I'm more familiar with the MHLO (https://github.com/google/iree/blob/88e2aaee5d/llvm-external-projects/iree-compiler-api/python/iree/compiler/tools/xla.py#L76). That triggers these save flags during import: https://github.com/google/iree/blob/88e2aaee5d/integrations/tensorflow/iree_tf_compiler/iree-import-xla-main.cpp#L260, which writes things off to a file. Those could then be linked together as you're describing (ideally as a compiler pass, but you could probably hack together a python script for this special case also). From there it can be handed of to the IREE compiler

Coming back with a reply to this since I'm now experimenting. I first tried to use jax_to_hlo to try and unify the HLO's, which look something like this:
HloModule xla_computation_ordered_wrapper__16.23

primitive_computation_add.3 {
  parameter.4 = f32[] parameter(0)
  parameter.5 = f32[] parameter(1)
  ROOT add.6 = f32[] add(parameter.4, parameter.5)
}

jit__inner___22.7 {
  constant.9 = pred[] constant(false)
  constant.16 = f32[] constant(100)
  broadcast.17 = f32[3]{0} broadcast(constant.16), dimensions={}
  parameter.8 = f32[2,3]{1,0} parameter(0)
  constant.10 = f32[] constant(0)
  reduce.11 = f32[3]{0} reduce(parameter.8, constant.10), dimensions={0}, to_apply=primitive_computation_add.3
  constant.12 = s32[] constant(2)
  convert.13 = f32[] convert(constant.12)
  broadcast.14 = f32[3]{0} broadcast(convert.13), dimensions={}
  divide.15 = f32[3]{0} divide(reduce.11, broadcast.14)
  subtract.18 = f32[3]{0} subtract(broadcast.17, divide.15)
  ROOT tuple.19 = (f32[3]{0}) tuple(subtract.18)
}

ENTRY xla_computation_ordered_wrapper__16.23 {
  constant.2 = pred[] constant(false)
  parameter.1 = f32[2,3]{1,0} parameter(0)
  call.20 = (f32[3]{0}) call(parameter.1), to_apply=jit__inner___22.7
  get-tuple-element.21 = f32[3]{0} get-tuple-element(call.20), index=0
  ROOT tuple.22 = (f32[3]{0}) tuple(get-tuple-element.21)
}

If I understood correctly, the ENTRY is the one for which a compiled function is built using iree.compiler.xla.compile_str. Adding multiple ENTRY objects fails, since there should be only 1, so this didn't work for me.
I then tried to use the save_temp_iree_input, which has a very unfamiliar syntax to me, here's a snippet:
'#loc0 = loc(unknown)\n#map0 = affine_map<(d0, d1, d2, d3) -> (d2, d3)>\n#map1 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>\n#map2 = affine_map<(d0, d1) -> (-d0, -d1 + 1)>\n#map3 = affine_map<(d0, d1) -> (d0, d1)>\n#map4 = affine_map<(d0, d1, d2, d3) -> (d0, d3, d1, d2)>\n#map5 = affine_map<(d0, d1, d2, d3) -> (d3, d2, d0, d1)>\n#map6 = affine_map<(d0, d1, d2, d3) -> (d0, d2, d3, d1)>\nmodule  {\n  func @main(%arg0: tensor<2x3xf32> loc(unknown)) -> tensor<2x2xf32> attributes {iree.abi = "{\\22a\\22:[[\\22ndarray\\22,\\22f32\\22,2,2,3]],\\22r\\22:[[\\22ndarray\\22,\\22f32\\22,2,2,2]],\\22v\\22:1}"} {\n    %cst = constant dense<[[1.000000e+00, -1.000000e+00]]> : tensor<1x2xf32> loc(#loc1)\n    %cst_0 = constant dense<1.000000e+02> : tensor<2x2xf32> loc(#loc2)\n    %cst_1 = constant 0.000000e+00 : f32 loc(#loc3)\n    %0 = linalg.init_tensor [1, 1, 2, 3] : tensor<1x1x2x3xf32> loc(#loc4)\n    %1 = linalg.generic {indexing_maps = [#map0, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%arg0 : tensor<2x3xf32>) outs(%0 : tensor<1x1x2x3xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc4)\n    } -> tensor<1x1x2x3xf32> loc(#loc4)\n    %2 = linalg.init_tensor [1, 2] : tensor<1x2xf32> loc(#loc5)\n    %3 = linalg.generic {indexing_maps = [#map2, #map3], iterator_types = ["parallel", "parallel"]} ins(%cst : tensor<1x2xf32>) outs(%2 : tensor<1x2xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc5)\n    } -> tensor<1x2xf32> loc(#loc5)\n    %4 = linalg.init_tensor [1, 1, 1, 2] : tensor<1x1x1x2xf32> loc(#loc6)\n    %5 = linalg.generic {indexing_maps = [#map0, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%3 : tensor<1x2xf32>) outs(%4 : tensor<1x1x1x2xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc6)\n    } -> tensor<1x1x1x2xf32> loc(#loc6)\n    %6 = linalg.init_tensor [1, 2, 3, 1] : tensor<1x2x3x1xf32> loc(#loc3)\n    %7 = linalg.generic {indexing_maps = [#map4, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1 : tensor<1x1x2x3xf32>) outs(%6 : tensor<1x2x3x1xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc3)\n    } -> tensor<1x2x3x1xf32> loc(#loc3)\n    %8 = linalg.init_tensor [1, 2, 1, 1] : tensor<1x2x1x1xf32> loc(#loc3)\n    %9 = linalg.generic {indexing_maps = [#map5, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%5 : tensor<1x1x1x2xf32>) outs(%8 : tensor<1x2x1x1xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc3)\n    } -> tensor<1x2x1x1xf32> loc(#loc3)\n    %10 = linalg.init_tensor [1, 2, 2, 1] : tensor<1x2x2x1xf32> loc(#loc3)\n    %11 = linalg.fill(%cst_1, %10) : f32, tensor<1x2x2x1xf32> -> tensor<1x2x2x1xf32>  loc(#loc3)\n    %12 = linalg.tensor_collapse_shape %9 [[0], [1], [2, 3]] : tensor<1x2x1x1xf32> into tensor<1x2x1xf32> loc(#loc3)\n    %13 = linalg.depthwise_conv_2d_input_nhwc_filter_hwc {dilations = dense<1> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} ins(%7, %12 : tensor<1x2x3x1xf32>, tensor<1x2x1xf32>) outs(%11 : tensor<1x2x2x1xf32>) -> tensor<1x2x2x1xf32> loc(#loc3)\n    %14 = linalg.init_tensor [1, 1, 2, 2] : tensor<1x1x2x2xf32> loc(#loc3)\n    %15 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%13 : tensor<1x2x2x1xf32>) outs(%14 : tensor<1x1x2x2xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors\n      linalg.yield %arg1 : f32 loc(#loc3)\n    } -> tensor<1x1x2x2xf32> loc(#loc3)\n    %16 = linalg.tensor_collapse_shape %15 [[0, 1, 2], [3]] : tensor<1x1x2x2xf32> into tensor<2x2xf32> loc(#loc7)\n    %17 = linalg.init_tensor [2, 2] : tensor<2x2xf32> loc(#loc8)\n    %18 = linalg.generic {indexing_maps = [#map3, #map3, #map3], iterator_types = ["parallel", "parallel"]} ins(%16, %cst_0 : tensor<2x2xf32>, tensor<2x2xf32>) outs(%17 : tensor<2x2xf32>) {\n    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown), %arg3: f32 loc(unknown)):  // no predecessors\n      %19 = mulf %arg1, %arg2 : f32 loc(#loc8)\n      linalg.yield %19 : f32 loc(#loc8)\n    } -> tensor<2x2xf32> loc(#loc8)\n    return %18 : tensor<2x2xf32> loc(#loc0)\n  } loc(#loc0)\n} loc(#loc0)\n#loc1 = loc(callsite("convert.12" at "call.51"))\n#loc2 = loc(callsite("broadcast.48" at "call.51"))\n#loc3 = loc(callsite("convolution.24" at "call.51"))\n#loc4 = loc(callsite("broadcast.22" at "call.51"))\n#loc5 = loc(callsite("reverse.20" at "call.51"))\n#loc6 = loc(callsite("broadcast.23" at "call.51"))\n#loc7 = loc(callsite("gather.45" at "call.51"))\n#loc8 = loc(callsite("multiply.49" at "call.51"))\n\n'

How could I unify multiple objects resulted from save_temp_iree_input? I see declarations like #loc0, #map0 etc and specific calls like multiply.49 or call.51 and I think it would be pretty difficult to take care of re-definitions and so on.
I'm unsure how to continue with this one. Is there any kind of work already done for something like this I could leverage? Or any kind of documentation?
Thanks!

(I'd do this in MLIR instead - get the HLO proto into MLIR, then combine the MLIR modules which don't have any such restrictions on the number of public functions)

What Ben said as a stopgap. You could do this easily with an MLIR c++
utility. Also, zinenko is landing support in the python API now to enable
just this kind of gluing. Probably next week, we can get you a small python
script that uses the iree compiler API to do this merging.
We're also not ignoring this -- there is work being landed on the Jax side
to make this all more flexible, but it will be a bit more time.
On Tue, Nov 2, 2021, 7:55 AM Ben Vanik @.***> wrote:

(I'd do this in MLIR instead - get the HLO proto into MLIR, then combine
the MLIR modules which don't have any such restrictions on the number of
public functions)
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/google/iree/issues/7217#issuecomment-957752699, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADYVAAIOI6ZGUXN6PS6RZLUKACWBANCNFSM5FBS63BQ
.

So first of all, Stella's right. We should have real solutions for this soon. But since poking at this I think would also help you understand what's going on here, I'll still explain the hacky thing I would do if I had to have something working in the next hour.
First of all, you probably want to actually print the IR rather than having all the newlines escaped :-P

(I'd do this in MLIR instead - get the HLO proto into MLIR, then combine the MLIR modules which don't have any such restrictions on the number of public functions)

The second snippet is already in MLIR land. Here it is without all the weird escaped newlines:

Details
```mlir
#loc0 = loc(unknown)
#map0 = affine_map<(d0, d1, d2, d3) -> (d2, d3)>
#map1 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
#map2 = affine_map<(d0, d1) -> (-d0, -d1 + 1)>
#map3 = affine_map<(d0, d1) -> (d0, d1)>
#map4 = affine_map<(d0, d1, d2, d3) -> (d0, d3, d1, d2)>
#map5 = affine_map<(d0, d1, d2, d3) -> (d3, d2, d0, d1)>
#map6 = affine_map<(d0, d1, d2, d3) -> (d0, d2, d3, d1)>
module  {
  func @main(%arg0: tensor<2x3xf32> loc(unknown)) -> tensor<2x2xf32> attributes {iree.abi = "{\22a\22:[[\22ndarray\22,\22f32\22,2,2,3]],\22r\22:[[\22ndarray\22,\22f32\22,2,2,2]],\22v\22:1}"} {
    %cst = constant dense<[[1.000000e+00, -1.000000e+00]]> : tensor<1x2xf32> loc(#loc1)
    %cst_0 = constant dense<1.000000e+02> : tensor<2x2xf32> loc(#loc2)
    %cst_1 = constant 0.000000e+00 : f32 loc(#loc3)
    %0 = linalg.init_tensor [1, 1, 2, 3] : tensor<1x1x2x3xf32> loc(#loc4)
    %1 = linalg.generic {indexing_maps = [#map0, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%arg0 : tensor<2x3xf32>) outs(%0 : tensor<1x1x2x3xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc4)
    } -> tensor<1x1x2x3xf32> loc(#loc4)
    %2 = linalg.init_tensor [1, 2] : tensor<1x2xf32> loc(#loc5)
    %3 = linalg.generic {indexing_maps = [#map2, #map3], iterator_types = ["parallel", "parallel"]} ins(%cst : tensor<1x2xf32>) outs(%2 : tensor<1x2xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc5)
    } -> tensor<1x2xf32> loc(#loc5)
    %4 = linalg.init_tensor [1, 1, 1, 2] : tensor<1x1x1x2xf32> loc(#loc6)
    %5 = linalg.generic {indexing_maps = [#map0, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%3 : tensor<1x2xf32>) outs(%4 : tensor<1x1x1x2xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc6)
    } -> tensor<1x1x1x2xf32> loc(#loc6)
    %6 = linalg.init_tensor [1, 2, 3, 1] : tensor<1x2x3x1xf32> loc(#loc3)
    %7 = linalg.generic {indexing_maps = [#map4, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%1 : tensor<1x1x2x3xf32>) outs(%6 : tensor<1x2x3x1xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc3)
    } -> tensor<1x2x3x1xf32> loc(#loc3)
    %8 = linalg.init_tensor [1, 2, 1, 1] : tensor<1x2x1x1xf32> loc(#loc3)
    %9 = linalg.generic {indexing_maps = [#map5, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%5 : tensor<1x1x1x2xf32>) outs(%8 : tensor<1x2x1x1xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc3)
    } -> tensor<1x2x1x1xf32> loc(#loc3)
    %10 = linalg.init_tensor [1, 2, 2, 1] : tensor<1x2x2x1xf32> loc(#loc3)
    %11 = linalg.fill(%cst_1, %10) : f32, tensor<1x2x2x1xf32> -> tensor<1x2x2x1xf32>  loc(#loc3)
    %12 = linalg.tensor_collapse_shape %9 [[0], [1], [2, 3]] : tensor<1x2x1x1xf32> into tensor<1x2x1xf32> loc(#loc3)
    %13 = linalg.depthwise_conv_2d_input_nhwc_filter_hwc {dilations = dense<1> : tensor<2xi64>, strides = dense<1> : tensor<2xi64>} ins(%7, %12 : tensor<1x2x3x1xf32>, tensor<1x2x1xf32>) outs(%11 : tensor<1x2x2x1xf32>) -> tensor<1x2x2x1xf32> loc(#loc3)
    %14 = linalg.init_tensor [1, 1, 2, 2] : tensor<1x1x2x2xf32> loc(#loc3)
    %15 = linalg.generic {indexing_maps = [#map6, #map1], iterator_types = ["parallel", "parallel", "parallel", "parallel"]} ins(%13 : tensor<1x2x2x1xf32>) outs(%14 : tensor<1x1x2x2xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown)):  // no predecessors
      linalg.yield %arg1 : f32 loc(#loc3)
    } -> tensor<1x1x2x2xf32> loc(#loc3)
    %16 = linalg.tensor_collapse_shape %15 [[0, 1, 2], [3]] : tensor<1x1x2x2xf32> into tensor<2x2xf32> loc(#loc7)
    %17 = linalg.init_tensor [2, 2] : tensor<2x2xf32> loc(#loc8)
    %18 = linalg.generic {indexing_maps = [#map3, #map3, #map3], iterator_types = ["parallel", "parallel"]} ins(%16, %cst_0 : tensor<2x2xf32>, tensor<2x2xf32>) outs(%17 : tensor<2x2xf32>) {
    ^bb0(%arg1: f32 loc(unknown), %arg2: f32 loc(unknown), %arg3: f32 loc(unknown)):  // no predecessors
      %19 = mulf %arg1, %arg2 : f32 loc(#loc8)
      linalg.yield %19 : f32 loc(#loc8)
    } -> tensor<2x2xf32> loc(#loc8)
    return %18 : tensor<2x2xf32> loc(#loc0)
  } loc(#loc0)
} loc(#loc0)
#loc1 = loc(callsite("convert.12" at "call.51"))
#loc2 = loc(callsite("broadcast.48" at "call.51"))
#loc3 = loc(callsite("convolution.24" at "call.51"))
#loc4 = loc(callsite("broadcast.22" at "call.51"))
#loc5 = loc(callsite("reverse.20" at "call.51"))
#loc6 = loc(callsite("broadcast.23" at "call.51"))
#loc7 = loc(callsite("gather.45" at "call.51"))
#loc8 = loc(callsite("multiply.49" at "call.51"))
```

All those loc statements are aliases for debug locations pointing back to the MHLO file source. They're not load bearing. If you ran this file through iree-opt with no arguments, they'd all get stripped out (the debug info isn't printed by default). I actually can't right now because you've got a custom-printed op in there that I think may no longer exist, linalg.depthwise_conv_2d_input_nhwc_filter_hwc. The map statements are also aliases for references elsewhere in the module. I feel like there should be some way to not print any map aliases, but I don't know. Anyway, they shouldn't be hard to disambiguate with a regex. Then all you're left with is a single function called main which is scoped to itself.
| sed 's/func @/func @module1_/g' | sed 's/#map/#module1_map/g'

If you had function calls you'd need to also do something like sed 's/call @/call @module1_/g'. You could probably get away with sed -s /@/@module1_/, since I think that's the only way that @is used, but#` is also used for identifying a single result from an operation that returns multiple. Bear in mind that all of this is supremely hacky. Now everything has unique names. You want all the functions in one module, so you'll have to strip that out (this relies on the fact that MLIR will implicitly add a top-level module).
| sed -E 's/module\s+\{//' | sed -E 's/^\}//'

So putting it all together
#!/bin/bash

# Geoffrey's hacky linker script

set -euo pipefail

for (( i=1; i<=$#; i++ )); do
  ~/build/iree/default/iree/tools/iree-opt ${!i} \
    | sed "s/func @/func @module${i}_/g" \
    | sed "s/call @/call @module${i}_/g" \
    | sed "s/#map/#module${i}_map/g" \
    | sed -E 's/module\s+\{//' \
    | sed -E 's/^\}//'
done


HBASE-22939 SpaceQuotas - Bulkload from different hdfs failed when sp…

…ace quotas are turned on. (#553)
Signed-off-by: Sakthi<EMAIL_ADDRESS>(cherry picked from commit f31301dcf8e1e5d15a4b9939063e5514d810804b)
Change-Id: Ic88e96cc1b83351424463fef52579a35a4074822

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
2m 45s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 21s
branch-2.5 passed

+1 :green_heart:
compile
2m 47s
branch-2.5 passed

+1 :green_heart:
checkstyle
0m 41s
branch-2.5 passed

+1 :green_heart:
spotless
0m 41s
branch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
1m 45s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m  8s
the patch passed

+1 :green_heart:
compile
2m 40s
the patch passed

+1 :green_heart:
javac
2m 40s
the patch passed

+1 :green_heart:
checkstyle
0m 39s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
11m 48s
Patch does not cause any errors with Hadoop 2.10.2 or 3.2.4 3.3.4.

+1 :green_heart:
spotless
0m 39s
patch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
1m 56s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 20s
The patch does not generate ASF License warnings.

36m 34s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4749

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile

uname
Linux 10e1a828612f 5.4.0-124-generic #140-Ubuntu SMP Thu Aug 4 02:23:37 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 5f6998b955

Default Java
AdoptOpenJDK-1.8.0_282-b08

Max. process+thread count
60 (vs. ulimit of 30000)

modules
C: hbase-server hbase-endpoint U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

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

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
3m 56s
Docker mode activated.

-0 :warning:
yetus
0m  5s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
0m 12s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 40s
branch-2.5 passed

+1 :green_heart:
compile
0m 57s
branch-2.5 passed

+1 :green_heart:
shadedjars
4m  1s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 32s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 16s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 23s
the patch passed

+1 :green_heart:
compile
0m 57s
the patch passed

+1 :green_heart:
javac
0m 57s
the patch passed

+1 :green_heart:
shadedjars
3m 56s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 32s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
183m 49s
hbase-server in the patch passed.

+1 :green_heart:
unit
2m 48s
hbase-endpoint in the patch passed.

208m 41s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4749

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 5d2405566349 5.4.0-1071-aws #76~18.04.1-Ubuntu SMP Mon Mar 28 17:49:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 5f6998b955

Default Java
AdoptOpenJDK-11.0.10+9

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/testReport/

Max. process+thread count
2481 (vs. ulimit of 30000)

modules
C: hbase-server hbase-endpoint U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/console

versions
git=2.17.1 maven=3.6.3

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

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
3m 10s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.5 Compile Tests _

+0 :ok:
mvndep
1m  8s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
3m 22s
branch-2.5 passed

+1 :green_heart:
compile
1m  5s
branch-2.5 passed

+1 :green_heart:
shadedjars
4m 15s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 38s
branch-2.5 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
3m  0s
the patch passed

+1 :green_heart:
compile
1m  4s
the patch passed

+1 :green_heart:
javac
1m  4s
the patch passed

+1 :green_heart:
shadedjars
4m 23s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 33s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
241m 20s
hbase-server in the patch passed.

+1 :green_heart:
unit
3m 19s
hbase-endpoint in the patch passed.

269m 21s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4749

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux da827ff5cbf1 5.4.0-1081-aws #88~18.04.1-Ubuntu SMP Thu Jun 23 16:29:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.5 / 5f6998b955

Default Java
AdoptOpenJDK-1.8.0_282-b08

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/testReport/

Max. process+thread count
2478 (vs. ulimit of 30000)

modules
C: hbase-server hbase-endpoint U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4749/1/console

versions
git=2.17.1 maven=3.6.3

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

This message was automatically generated.


GatewayClass: Add omitempty to provisionedGateways

Fix the gatewayclasses CRD by annotating the CR's status.provisionedGateways field's json tag with the omitempty option.
Before this commit, attempting to apply the CRD produced the following error message:
The CustomResourceDefinition "gatewayclasses.networking.x-k8s.io" is invalid: spec.validation.openAPIV3Schema.properties[status].default.provisionedGateways: Required value

apis/v1alpha1/gatewayclass_types.go (GatewayClassStatus): Add omitempty to ProvisionedGateways.
config/crd/bases/networking.x-k8s.io_gatewayclasses.yaml: Regenerate.

/ok-to-test
/lgtm
/assign @robscott

Thanks!
/approve


Replace addToMessage function in funblocks.

PR contain fix for #854, but funblocks still does not work for me
ReferenceError: Blockly is not defined[Learn More] funblocks.js:208:11

    getWorkspaceXMLText http://<IP_ADDRESS>:8080/js/funblocks.js:208 containsUnsavedChanges http://<IP_ADDRESS>:8080/js/funblocks.js:216 isEditorClean http://<IP_ADDRESS>:8080/js/funblocks.js:220 updateUI http://<IP_ADDRESS>:8080/js/funblocks.js:367 cancelMove http://<IP_ADDRESS>:8080/js/codeworld_shared.js:703 discoverProjects_ http://<IP_ADDRESS>:8080/js/codeworld_shared.js:635 discoverProjects http://<IP_ADDRESS>:8080/js/funblocks.js:570 onAuthDisabled http://<IP_ADDRESS>:8080/js/codeworld_shared.js:581 init http://<IP_ADDRESS>:8080/js/codeworld_shared.js:601 onreadystatechange http://<IP_ADDRESS>:8080/js/codeworld_shared.js:40

 / UI Layout Callback Error
The center onresize_end callback is not a valid function.

This pull request introduces 1 alert when merging 60cc41e58c807f7c6a8bccf2eb78df44d266bbf1 into b72eed831429488bcd59a42b74aacb518edad5b8 - view on LGTM.com
new alerts:

1 for Useless assignment to local variable

Comment posted by LGTM.com


📰Poster - Clinically applicable deep learning for diagnosis and referral in retinal disease

AMC Seminar Sign Up

Link to previous seminar meeting minutes comments issue:

#245
1. Oral / Poster Selection

Select one of the following selections for Oral or Poster:

Oral should be prepared for 15 - 30 minutes, and no more than 45 minutes, including Q/A.
Posters should be prepared for 5 - 10 minutes, and no more than 15 minutes, including Q/A.

[ ] 🗣 Oral (15 MIN)
[x] 📰 Poster (5 MIN)

2. Paper Information

Please fill the follow table and provide all the information as many as possible, for sharing with others better. (delete the rows that you did not fill)

Paper
Information

Name
Clinically applicable deep learning for diagnosis and referral in retinal disease

Recommendation
An AI framework could be used in the real medical world.

Prior Knowledge
OCT, image processing

Year
2018

Publish
Nature Medicine

Author
DeepMind

3. After Party 🍻

Everyone will be welcome. You can join or not join as you want (not required by the AMC), and change your mind at any time.

After Party will be started right after all the meeting agenda had been fulfilled.
We will find a bar and drink beers and talk whatever we want. (we can expect that it will be related to meeting topics of the day)
The bill will be paid AA

[ ] 🍻 YES! I'll definitely join the After Party!
[ ] 🤔 Maybe. I'd like to decide later.
[x] 🛌 No, I'm afraid not this time.

4. New Friend

Whether you have a new friend comes with you to the club.

[ ] 👥 I'll bring a new friend
[x] 👤 There's no new friend from me

Artificial Intelligence & Machine Learning CLUB, 2018 - 2019 AI ML Club - AMC Member Manual

Clinically applicable deep learning fordiagnosis and referral in retinal disease.pdf


Inet/(TCP/UDP)Endpoints: Migrate from SystemPool to BitMapObjectPool

Problem
Use BitMapObjectPool as basic pool implementation, deprecate SystemPool, will introduce a dynamic pool later, sharing same interface as BitMapObjectPool for Linux and Darwin platform
Change overview
TCPEndpoints and UDPEndpoints, Migrate from SystemPool to BitMapObjectPool
Testing
Verified using unit-tests

After sync-up,  this PR is the transitional change.
#11371, we separate ObjectPool into static and dynamic parts
Then we will replace the static part with BitMapObjectPool implementation
The final APIs will be same as what 11371 proposed.
#11428 is the transitional plan and Inet will temporarily use BitMapObjectPool and soon use the unified implementation with the same dynamic implementation option as now.

It looks like the +328 or +632 byes memory usage on variety platforms are due to TCPEndPoint::sPool be linked.
     632         0       632  chip::Inet::TCPEndPoint::sPool

The TCP endpoint pool is not linked previously because there is no TCP usage.

@bzbarsky-apple @woody-apple @jepenven-silabs @jmartinez-silabs @LuDuda @Damian-Nordic ?


Renaming to match Arduino convention

Close #3
This renames the files to match the arduino conventions with the repository name.

Close #2 by adding arduino examples and library.properties

Thanks much!


feat(core): Added BasePipelineBehavior and Exception Logging

We believe it would be better to set up a try-catch structure according to the pipeline needs.


[WIP] Gazebo Optimisation (Brandon)

Implements both a connection to Gazebo plugin and also NSGA2 Multiobjective optimiser for scripts

Not a full review yet, I’ll do that later. But for starters, delete any commented out code and replace any cout lines with nuclear logs of the correct log level (info/warn/error etc)

Re-review please @TrentHouliston

@wongjoel did you need this anymore or is everything you need on the newer branch now?
I'm under the impression we will be sticking with Webots now. The league are using Webots for the forseeable future and I don't think it's worth maintaining two simulators.

@wongjoel did you need this anymore or is everything you need on the newer branch now?
I'm under the impression we will be sticking with Webots now. The league are using Webots for the forseeable future and I don't think it's worth maintaining two simulators.

I did a a quick read through and I believe we have everything we need for Webots from this PR in #540

Superseded by #540


Start the controlled vehicle from the middle of the expert trajectory

High Level Description
Currently we select different expert vehicles as ego agents during imitation learning rollout, and we take control from the starting point of the corresponding expert trajectory. However, this may make it difficult to sample data from later sections of the road during the early stages of training. Does SMARTS now support getting control from some middle points of a particular history trajectory?

I wrote a relatively crude implementation here, and it seems to work: https://github.com/zbzhu99/NGSIM_SMARTS/commit/02c5cff5dc2d83c2f42901044441c7bf2f517538

I wrote a relatively crude implementation here, and it seems to work: zbzhu99/NGSIM_SMARTS@02c5cff

This seems like a reasonable solution (although note that I did just add a comment on the diff about one thing that looked odd to me).
If it's helpful, we can add something like this to our history_vehicles_replacement_for_imitation_learning.py example, as well as add something like your get_vehicle_start_at_time() method to our codebase.


Extend RPC timeouts in CSDS tests

This PR extends the RPC timeouts in CSDS tests to be 10s (the default was 1s). The RPCs are expected to be successful. In normal cases, they will pass within milliseconds. However, recently, we are experiencing timeouts caused by slow macOS workers, hence we need this PR.

Let me take a closer look and see if we should expand this PR to more test cases, or simply extend the default RPC timeouts for xds e2e tests.

It seems one week ago, people attempted the same approach and caused MSAN and UBSAN to be flaky. Closing this PR for now until we find a direction. Related https://github.com/grpc/grpc/pull/29781, https://github.com/grpc/grpc/pull/29794.

Changing the slowdown factor was reverted.  Increasing the timeouts in the individual tests that were affected is fine.
The problem here is not the approach; it's that you're only fixing one of the tests.  Please fix all of the tests in xds_csds_end2end_test.  Thanks!

@markdroth PTALA. I updated all the timeout in this file. CSDS unit tests focus on the xDS content, and the availability of the CSDS service. The correctness of them won't be impacted by the increased timeout.

This is suspicious, because XdsConfigDumpEndpointDoesNotExist and XdsConfigDumpClusterDoesNotExist have 1000s timeout that should never be reached, and XdsConfigDumpClusterRequested expects to see DEADLINE_EXCEEDED (the subscribed resource is not available, hence the REQUESTED state).
Other tests can increase the RPC timeout without problem, the above ones can't. I guess more investigation is needed.


Fix schema built from SDL to return null for unknown types

Fixes #997 (and unblocks #998 and #999).
History background
The implementation of BuildSchema, SchemaExtender and ASTDefinitionBuilder roughly matches their counterparts from graphql-js v14.0.
However, during the lifetime of v14, the JS code underwent significant changes. In the final version 14.7, buildASTSchema(), extendSchema() and ASTDefinitionBuilder looks much different then they did in v14.0. For the context of this PR, the most important changes (https://github.com/graphql/graphql-js/commit/afc6b7c04708068e3733d8e85882e4b2e4ef58e5) were that  ASTDefinitionBuilder's constructor didn't accept typeDefinitionsMap param any more, and that the original single method buildType() was replaced with a new buildType() and getNamedType(). Each was used in a different context, and only the latter could throw the "Unknown type" error.
These changes to the reference implementation have never been reflected in graphql-php.
Implementation notes
The context is everything. Sometimes it's okay for the builder to return null instead of throwing "Unknown type" error – like in this case when it's requested to build a type that isn't defined in the SDL schema.
To handle this explicitly, I added the new maybeBuildType(string $name): ?Type  method to the builder.
graphql-js (v14.2+) builds typeMap with all types from SDL ahead. Then calling typeMap[typeName] returns either a type or undefined.
The new maybeBuildType() provides similar functionality for the lazy environment where we don't have such a map and where the individual types are built from the SDL schema on demand.
Additional notes
In v15, graphql-js has undergone even more significant changes and ASTDefinitionBuilder has been removed completely (https://github.com/graphql/graphql-js/commit/3948aa20d9c38c5d4aff06f1b3af2538b20f909a).
To ensure future compatibility with the reference implementation, it would be worth considering reimplementing schema builder and extender completely.

Awesome work! This solution is really simple and powerful.


Add option to remove all protocol state objects after protocol instance completes

Aside: I'm not certain of the state of ACA-Py on this issue and if this feature is actually needed. I'm entering this issue because I don't think it is in ACA-Py and I do think it is a required setting in some environments and is good practice. Perhaps someone could start this issue by checking the state of ACA-Py on this issue. Do all, some (which ones?) or no protocols support automatic deletion of protocol state objects after protocol completion?

Background: In some environments, such as when ACA-Py is used as a service for a "line of business" controller, ACA-Py such persist as little business data as possible -- leaving that to the controller.  While ACA-Py must retain some data (DIDs, AnonCred objects, connections, etc.), for the most part, it does not need to retain the state of an instance of a protocol after that protocol has completed. In the early days of ACA-Py we have frequently done that because it was easy -- we didn't have to collect that data in the database of the business controller.  However, as we start to use ACA-Py as "just a service", to reduce the data held in ACA-Py secure storage, it is good practice to only hold protocol state object data (which very likely contains business data -- including PII) while an instance of a protocol is running, and to delete it as soon as the protocol completes.  In this model, any data to be retained after the completion of the protocol is the responsibility of the controller.
Proposal: A new option be added to ACA-Py that when set triggers the deletion of all protocol state objects after the protocol instance has completed and provided the final results to the controller.  In implementing this, we need to evaluate the protocol state objects to determine if any are needed ongoing operation of the ACA-Py instance.  If any such items are found, we need to evaluate what to do in each case -- for example, creating a different object that retains only the data needed for the long term, such as done by the OOB/DIDExchange protocols, and the connection object that those protocols create.

Could I get an ACA-Py developer to volunteer to review the protocols we have in ACA-Py to document what each does with the protocol state object after completion and if there might be an issue with deleting the object?

Presentation exchange records are now also deleted at the end of an exchange, unless configured otherwise.


Update readme.md

no constants

Nice. Looks like cameraProps can now be passed in? Could include in example passing in flashMode as an example instead of removing from readme. Eg
cameraProps={{ flashMode: Camera.Constants.FlashMode.auto }}

@moaazsidat could you close this one? is duplicated by #240


Add Width Constraints with Annotations

This changes the InferWidths transform. InferWidths now collects extra constraints from WidthGeqConstraintAnnotation and runs with those extra constraints. Also makes InferWidths a Transform class instead of a Pass object.
This transform can be used to add width constraints that are introduced by later transforms like WiringTransform.
Related issue: https://github.com/freechipsproject/firrtl/issues/933

Also, please update the PR description to say that it affects the InferWidths transform, not that it adds a new transform.

Will commenting trigger mergify?

lol apparently


feat(upgrade): list single volume replica before upgrade

The o/p of kubeclt-mayastor upgrade
ashish@vm:~/code/rust/mayastor-extensions(single-replica)$ ./target/debug/kubectl-mayastor  upgrade

Volumes which make use of a single volume replica instance will be unavailable for some time during upgrade.
It is recommended that you do not create new volumes which make use of only one volume replica.

Below are the list of cordoned nodes. Since there are some cordoned nodes,
 the rebuild will happen on another nodes so please have enough available free space or else the rebuild will get stuck forever.
 node-0-64716

The list below shows the single replica volumes in cluster.
These single replica volumes may not be accessible during upgrade.
To skip this validation, please retry  with '--skip-single-replica-volume-validation` flag.
 ms-volume-claim

bors try

Do we also need to check for draining nodes?
Discussed this with @vishnuitta  and its updated in https://dcsw-bolt.atlassian.net/browse/GTM-441.
It was stated that we can have a warning in the console about the cordoned nodes and the rebuild will take time.
The concept of  150% free space in cluster needed for the volumes present on cordoned node is dropped.


Examples should use git install

When working on #1998 and #1997, I feel it's useful to be able to test from the git build rather than installing the published version (possibly old)
IMHO, we should move out from npm to yarn 3+ or pnpm 7+ and rework the directory structure. Why ? Npm and workspaces aren't yet there when we have to deal with monorepos (ie: workspace protocol rather than files, versioning, isolation...).

I'm investigating this
../../dist/commonjs/serverSideTranslations.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
../../dist/commonjs/serverSideTranslations.js
../../serverSideTranslations.js

and
Error occurred prerendering page "/en". Read more: https://nextjs.org/docs/messages/prerender-error
Error: Cannot find module '/home/sebastien/github/next-i18next/examples/simple/next-i18next.config.js'

@adrai  I won't probably put more work on it in its current form. But it was interesting. The reason why I investigated this:

I'd like to ensure that we can catch earlier bugs in publishing and give more confidence when reworking the repo

@adrai If you postpone the next release (v13)... There's actually something wrong, I'll get it sorted out. Reproduced in https://github.com/belgattitude/nextjs-monorepo-example/pull/2864 (inline with what cypress gives in this P/R).

Closed in favour of https://github.com/i18next/next-i18next/pull/2012


File dialog button text is missing

Godot version: 3.0
OS/device including version: ubuntu 17.10 (64 bit), windows 10(64 bit)
Issue description:
After project export "Open" button on file dialogs is empty
Steps to reproduce:
1.Export minimal project
2.Run
3.Button is empty
Minimal project:
filedialogbug.zip

Fixed by #16710

Sorry, thought it was fixed by recent PR merge.
Issue confirmed.


Add ‘since’ Feature to allow user to get only new records since a specified date

This is a feature available in pocket-to-SQLite and should be implemented here as well

closed with 5bb68fa326915bb6f48a20953f051eb6ba980a25


-fsanitize=undefined for Clang

It seems that -fsanitize=undefined does not work when compiling with Clang due to link errors, but does work with GCC.

You can use -fsanitize=undefined with Clang HEAD now.

I will close on 2015-06-29(+09:00) if no comment.

Sorry for the delayed response; I can confirm ubsan now works with Clang HEAD. Thank you!

:+1:


Fix a minor issue in the documentation

Fix a minor issue in the documentation

Thank you for the PR @Alrem!

Codecov Report

Merging #403 into master will decrease coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #403      +/-   ##
==========================================
- Coverage   92.62%   92.48%   -0.14%
==========================================
  Files         104      104
  Lines        5923     5844      -79
==========================================
- Hits         5486     5405      -81
- Misses        437      439       +2

Impacted Files
Coverage Δ

pyinfra_cli/inventory.py
96.15% <0.00%> (-2.57%)
:arrow_down:

pyinfra/operations/server.py
99.12% <0.00%> (-0.88%)
:arrow_down:

pyinfra/api/connectors/util.py
78.81% <0.00%> (-0.85%)
:arrow_down:

pyinfra/api/connectors/sshuserclient/client.py
48.61% <0.00%> (-0.71%)
:arrow_down:

pyinfra/api/deploy.py
80.00% <0.00%> (-0.71%)
:arrow_down:

pyinfra/api/connectors/winrm.py
59.74% <0.00%> (-0.52%)
:arrow_down:

pyinfra/api/host.py
92.59% <0.00%> (-0.27%)
:arrow_down:

pyinfra/api/util.py
84.26% <0.00%> (-0.24%)
:arrow_down:

pyinfra/api/operation_kwargs.py
95.23% <0.00%> (-0.22%)
:arrow_down:

pyinfra/api/operations.py
79.74% <0.00%> (-0.13%)
:arrow_down:

... and 22 more

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 441231e...9a68dfd. Read the comment docs.


India: 200 BTCs

Another candidate:
https://cointelegraph.com/news/india-police-officers-beat-exhorted-200-btc-from-businessman-local-sources-say

ah yes, I remember that one. Added via 2c1ae88


runtime: livelock in cpuProfile.add

What version of Go are you using (go version)?
go1.14.7, on linux/amd64
Does this issue reproduce with the latest release?
I've only seen this once, across a large fleet running for several years. The relevant pieces of code look the same in the latest release.
What operating system and processor architecture are you using (go env)?
The problem appeared on a linux/amd64 machine with two processors, each with 10 cores / 20 hyperthreads for a default GOMAXPROCS of 40.
What did you do?
The process collected a CPU profile (with runtime/pprof.StartCPUProfile / StopCPUProfile).
What did you expect to see?
I expected the process would continue running unimpeded.
What did you see instead?
The process stopped doing productive work, and instead consumed all available CPU resources. GDB with thread apply all bt showed 43 threads, all of which were in calls from runtime.sigtramp to runtime.sigtrampgo to runtime.sighandler to runtime.sigprof to runtime.(*cpuProfile).add.
All of them were in https://github.com/golang/go/blob/go1.14.7/src/runtime/proc.go#L3924, the call from runtime.sigprof to runtime.(*cpuProfile).add. Of those, 41 were at the resulting osyield call https://github.com/golang/go/blob/go1.14.7/src/runtime/cpuprof.go#L94 and 2 were at the atomic.Cas call https://github.com/golang/go/blob/go1.14.7/src/runtime/cpuprof.go#L93.
func (p *cpuProfile) add(gp *g, stk []uintptr) {
	// Simple cas-lock to coordinate with setcpuprofilerate.
	for !atomic.Cas(&prof.signalLock, 0, 1) {
		osyield()
	}

It looks to me like the locking in runtime.setprofilerate near https://github.com/golang/go/blob/go1.14.7/src/runtime/proc.go#L4010 isn't sufficient to protect against this, especially when disabling the profiler.
	for !atomic.Cas(&prof.signalLock, 0, 1) {
		osyield()
	}
	if prof.hz != hz {
		setProcessCPUProfiler(hz)
		prof.hz = hz
	}
	atomic.Store(&prof.signalLock, 0)

Consider the case where the thread that is trying to disable the profiler earns a SIGPROF delivery, and the signal arrives at the start of the call to setProcessCPUProfiler. The value in prof.signalLock will be 1, and the value in prof.hz will not yet be 0. When the signal handler runs on that thread, the check for prof.hz != 0 at https://github.com/golang/go/blob/go1.14.7/src/runtime/proc.go#L3923 will be true, allowing a call to cpuprof.add, which will then spin endlessly trying to grab prof.signalLock.
	if prof.hz != 0 {
		cpuprof.add(gp, stk[:n])
	}

Other threads will either earn their own SIGPROF deliveries which will also get stuck, or the work of waiting on the spinlock will earn additional process-targeted SIGPROF deliveries (because setitimer is active, generating process-targeted signals which the kernel best-effort delivers to the active thread). But because those threads are in the middle of handling signals already, the kernel (maybe?) will deliver them to any other eligible thread. This leads (it seems) to every thread in the process being stuck in SIGPROF handlers trying to obtain that lock.
I plan to send a CL that allows the lock-holder to communicate "please try later" vs "do not retry this lock".

Based on this, it looks like this is still an issue today? This code hasn't been touched in a while, so I wouldn't be surprised.
CC @prattmic too.

As pointed out by @ianlancetaylor and @rhysh on the CL, this should be fixed in 1.16+ with http://golang.org/cl/353931.


WIP: DO NOT MERGE!

This PR is to test the build in Travis--DO NOT MERGE.

https://stackoverflow.com/a/39162893/1467533
Try adding
env = PYTHONHASHSEED=2157

to pytest.ini.  That should make the tests pass even with the change you made in your previous commit (and would be an improvement!).

@matt-gardner no dice.  I think it sets the environment variable after python has been loaded, so PYTHONHASHCODE does not take effect.  Yikes, what a setup!

FWIW, you can specify environmental variables in .travis.yml:  https://docs.travis-ci.com/user/environment-variables/

@matt-peters, that's a good idea.

Yes, that's probably better than https://github.com/allenai/deep_qa/blob/master/build_tools/travis/test_script.sh#L13.  I'll try it out today if I have time.

Oh, wait, yeah, we already do that, and that's why it works.  Not sure that setting it in .travis.yml actually buys us anything.  CI passes; the issue is that it's opaque and you can easily miss things if you're setting up the environment for yourself, not in CI.  Having a failing test is a good idea here, but I'm not sure that moving it from where it is in the script into .travis.yml helps with clarity.


Add loading animation for artist chips

currently artist chips take long time to load, no indication that it is being loaded
add animation to indicate artist chips are loading

completed with commit https://github.com/taver-ca/Taver_Hackathon/commit/80cb7e6577ee5544a737e00c6dbff6f3e051be14


Memory access fault executing on multiple devices

What is the expected behavior

I can execute FFTs on multiple devices, with a separate plan per-device, without error.

What actually happens

If I execute FFTs on more than 1 device I get a memory access fault:

rocFFT: <IP_ADDRESS>6-23-2d35fd6  HIP driver: 321200  HIP runtime: 3212
Planning size 32 FFT on 2 devices...
Executing FFTs...
Memory access fault by GPU node-2 (Agent handle: 0x1c4c990) on address 0x2ac52d60d000. Reason: Page not present or supervisor privilege.
Aborted

If I restrict visibility to any single device using HIP_VISIBLE_DEVICES I get no such error:

rocFFT: <IP_ADDRESS>6-23-2d35fd6  HIP driver: 321200  HIP runtime: 3212
Planning size 32 FFT on 1 devices...
Executing FFTs...
Done.

How to reproduce
#include <iostream>
#include <hip/hip_runtime.h>
#include <hip/hip_complex.h>
#include <rocfft.h>

using namespace std;

int main() {
    rocfft_setup();

    int devices = 0;
    hipGetDeviceCount(&devices);

    char rocfft_version[80];
    rocfft_get_version_string(rocfft_version, 80);
    int driver_version, runtime_version;
    hipDriverGetVersion(&driver_version);
    hipRuntimeGetVersion(&runtime_version);
    cout << "rocFFT: " << rocfft_version
       << "  HIP driver: " << driver_version
       << "  HIP runtime: " << runtime_version << endl;

    size_t n = 32, nf = n / 2 + 1;
    size_t in_bytes = sizeof(float) * n;
    size_t out_bytes = sizeof(hipComplex) * nf;

    cout << "Planning size " << n << " FFT on " << devices << " devices..." << endl;
    void * d_in[devices], * d_out[devices], * d_work[devices];
    rocfft_plan plan[devices];
    rocfft_execution_info info[devices];
    for (int i = 0; i < devices; ++i) {
        hipSetDevice(i);
        hipMalloc(&d_in[i], in_bytes);
        hipMalloc(&d_out[i], out_bytes);
        rocfft_plan_create(&plan[i], rocfft_placement_notinplace,
            rocfft_transform_type_real_forward, rocfft_precision_single,
            1, &n, 1, NULL);

        size_t work_bytes;
        rocfft_execution_info_create(&info[i]);
        rocfft_plan_get_work_buffer_size(plan[i], &work_bytes);
        if(work_bytes > 0) {
            hipMalloc(&d_work[i], work_bytes);
            rocfft_execution_info_set_work_buffer(info[i], d_work[i], work_bytes);
        }
    }

    cout << "Executing FFTs..." << endl;
    for (int i = 0; i < devices; ++i) {
        hipSetDevice(i);
        rocfft_execute(plan[i], &d_in[i], &d_out[i], info[i]);
    }

    for (int i = 0; i < devices; ++i) {
        hipSetDevice(i);
        hipDeviceSynchronize();
    }

    cout << "Done." << endl;

    return 0;
}

Environment

Hardware
description

GPU
Vega 20

CPU
AMD EPYC 7352

Software
version

ROCm
v4.0.0

rocFFT
v1.0.8

Hi @sardonicpresence , thanks for this bug report and the handy reproducer.  I've been able to reproduce this issue.  Indeed, the plan system is not correctly handling multiple devices.
We'll try to get a fix in to the next release.  In the meantime, I don't think there's any easy workaround - you could have one process per device instead of trying to execute plans in multiple devices in one process.  Alternatively, if you could somehow ensure that no two devices in the same process will run identical plans (i.e. give different dimensions, directions, transform types to each device), that would also work around the problem.

93747544e78c8b8f8ba7119c052fe62c13ece8c2 fixes this in the develop branch.  It should be included in the next release.


date.getDate is not a function

It is giving me error as shown below.

Looks like the date object is lack of getDate method. Check if the model is a Date object. Also, an example on Plunker would be nice :smiley:

I am passing date object itself.

Could you provide any source code?

It seems it's missing some timezone setup. I get the same error

Any example? https://plnkr.co/

BTW, there was no timezone option when this issue was created.

I figured it out. As usual it's date converting stuff. I got my date from a C# WebAPI, and I had to convert it to a real javascript date
$scope.birthdate = moment($scope.user.birthdate).toDate();

If you like to use a string as the model value instead of Date object, try datetime-model="format"

Is there any way to make this play nice with momentjs?

I don't use momentjs. Any suggestion?

Yah I was thinking about it. Seems it would be a substantial rebuild. Ended
up finding a simpler directive that worked with it. But gosh yours is so
nice I was hoping for it to work as well. Thanks for the quick response.
On Wed, Jun 22, 2016, 1:10 PM eight<EMAIL_ADDRESS>wrote:

I don't use momentjs. Any suggestion?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/eight04/angular-datetime/issues/15#issuecomment-227812359,
or mute the thread
https://github.com/notifications/unsubscribe/ADbj0h0HP1jd_C80n3BcHWjk6bux5vIYks5qOWyegaJpZM4HHLUH
.

Thanks for your appreciate. If you have some idea about how they should work together, feel free to create a new issue.

@james-hoegerl mind sharing it? i also get the date.getDate getting data from a c# webApi

Anyways, when getting the data from a controller simply calling
new Date($scope.theDate)
will resolve the issue

@james-hoegerl
Starting from v5.0.0, the core parser and input mask are pulled out as custom-input. You might be interested to make it works with momentjs.


Windows spring-boot run command should be "mvnw spring-boot:run" instead "./mvnw spring-boot:run"

Moved from: okta/okta-cli/issues#60
by: @KostiantynDrozd-okta
When I created a spring-boot app with command okta start, I see message:
Run this application with:
    ./mvnw spring-boot:run

But command for windows to run looks like:
mvnw spring-boot:run
Do we need to change that message?

Is it possible to detect the OS and print out the appropriate message?

not really... currently the CLI just prints out whatever is in the directions field: https://github.com/okta-samples/okta-spring-boot-sample/blob/master/.okta/sample-config.yaml#L6
We might be able to do some quick templating though, and process the directions string as a mustache template 🤔

I would just change it to print out mvn spring-boot:run. Those that want to use the Maven wrapper should be smart enough to change the command.

Closing since the message now reads mvn spring-boot:run.
https://github.com/okta-samples/okta-spring-boot-sample/blob/main/.okta/sample-config.yaml#L12

Closing since the message now reads mvn spring-boot:run.
https://github.com/okta-samples/okta-spring-boot-sample/blob/main/.okta/sample-config.yaml#L12


Fix sender config issue with multiple clients defined in global scope

Purpose

When multiple HTTP clients are defined in global scope, config that is defined for the last client is taken into consideration with HTTP calls for all the clients

Fixes #15379
Approach

Use a separate sender config for each client instead of reusing the same sender config object

Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ x] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[x] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #15423 into master will increase coverage by 0.41%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master   #15423      +/-   ##
============================================
+ Coverage     22.52%   22.93%   +0.41%
+ Complexity     6562     5134    -1428
============================================
  Files          1898     1347     -551
  Lines         88680    69506   -19174
  Branches      12812     9417    -3395
============================================
- Hits          19977    15944    -4033
+ Misses        65546    51774   -13772
+ Partials       3157     1788    -1369

Impacted Files
Coverage Δ
Complexity Δ

...et/http/clientendpoint/CreateSimpleHttpClient.java
79.48% <100%> (ø)
3 <0> (ø)
:arrow_down:

...idea/psi/impl/BallerinaJoinStreamingInputImpl.java

...gins/idea/psi/impl/BallerinaSealedLiteralImpl.java

.../idea/psi/impl/BallerinaServiceBodyMemberImpl.java

...gins/idea/psi/impl/BallerinaValueTypeNameImpl.java

...rics/extension/defaultimpl/DefaultPolledGauge.java

...i/exception/UnsupportedAttributeTypeException.java

...io/ballerina/plugins/idea/BallerinaModuleType.java

...ery/api/exception/DuplicateAttributeException.java

...a/psi/impl/BallerinaSingleBacktickedBlockImpl.java

... and 542 more

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 e44cbf9...2b90b4a. Read the comment docs.


Fix TextField/CupertinoTextField hint style overflow not work.

For HintText or PlaceholderText, I notice that overflow always is TextOverflow.ellipsis when build Hint Text Widget, and TextWidget Use TextWidget's property overflow first, not overflow property inTextStyle. so InputDecoration hintStyle TextOverflow.fade not work
Build hint text widget code in input_decorator.dart

Overflow annotation in text.dart

Set overflow: TextOverflow.clip to hintStyle
Example Code
void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) =>
       const MaterialApp(
        home: Scaffold(
            body: Center(
              child: SizedBox(
                  width: 100,
                  child: TextField(
                    decoration: InputDecoration(
                      hintText: 'Long text to demonstrate',
                      hintStyle: TextStyle(
                          overflow: TextOverflow.clip
                      ),
                    ),
                  )
              ),
            )
        ),
      );
}

Before

After

List which issues are fixed by this PR. You must list at least one issue.
https://github.com/flutter/flutter/issues/113883
If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is [test-exempt].
[x] All existing and new tests are passing.

@ksballetba I just fixed this in InputDecorator the other day (https://github.com/flutter/flutter/pull/114378), but I missed the CupertinoTextField line.  Would you be able to merge master into this PR to pick up my change, then add a test for CupertinoTextField similar to the test in my PR?
Sorry for stepping on your toes here with my PR!

@ksballetba I just fixed this in InputDecorator the other day (#114378), but I missed the CupertinoTextField line. Would you be able to merge master into this PR to pick up my change, then add a test for CupertinoTextField similar to the test in my PR?
Sorry for stepping on your toes here with my PR!

Of course, I will merge master into this PR to pick up your change, then add a test for CupertinoTextField. Could you help to review the code change？


feat: add some very basic validation to Metric struct

Description
This PR adds a function Validate() (valid bool, reason string) to the Metric struct and uses that function in the metrics handler to check for some basic validation cases. clientId not existing and Data not existing or being empty object.
This prevents us from saving empty entries in postgres. Unit tests have been added for the Validate() function.
Verification steps
I've constructed some curl requests and expected responses so you can try out. For now the server returns the same data that is saved in the DB. This is handy in development.
Case 1
The happy case - full payload. (Excluding client timestamp - will look after this in a separate PR)
curl -X POST \
  http://localhost:3000/metrics \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 77100fc4-f06a-7098-69e4-dfdcaa207e98' \
  -d '{
  "clientId": "12345",
  "data": {
  	"app": {
    "id": "com.example.someApp",
    "sdkVersion": "2.4.6",
    "appVersion": "256"
	},
	"device": {
    	"platform": "android",
    	"platformVersion": "27"
	}
  }
}'

result:
{
    "clientId": "12345",
    "data": {
        "app": {
            "id": "com.example.someApp",
            "sdkVersion": "2.4.6",
            "appVersion": "256"
        },
        "device": {
            "platform": "android",
            "platformVersion": "27"
        }
    }
}

Case 2
app data is included but not device metrics. i.e. only a subset of all possible fields, but still valid.
curl -X POST \
  http://localhost:3000/metrics \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 2ba02c83-8ba8-7b3b-2ddf-c63de048cb8d' \
  -d '{
  "clientId": "12345",
  "data": {
  	"app": {
    "id": "com.example.someApp",
    "sdkVersion": "2.4.6",
    "appVersion": "256"
	}
  }
}'

result:
{
    "clientId": "12345",
    "data": {
        "app": {
            "id": "com.example.someApp",
            "sdkVersion": "2.4.6",
            "appVersion": "256"
        }
    }
}

Case 3
Client sends an empty object:
curl -X POST \
  http://localhost:3000/metrics \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 2fd4aa64-43ad-a168-3c57-3c31b250b0ba' \
  -d '{

}'

Result:
{
    "error": "Bad Request",
    "message": "missing clientId in payload",
    "statusCode": 400
}

Case 4
Data field is not included
curl -X POST \
  http://localhost:3000/metrics \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 3d3c1945-d191-55e4-0b52-eeffbdb64afc' \
  -d '{
  "clientId": "12345"
}'

result:
{
    "error": "Bad Request",
    "message": "missing metrics data in payload",
    "statusCode": 400
}

Case 5
Data field is there but empty object
curl -X POST \
  http://localhost:3000/metrics \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 3d3c1945-d191-55e4-0b52-eeffbdb64afc' \
  -d '{
  "clientId": "12345",
  "data": {

  }
}'

result:
{
    "error": "Bad Request",
    "message": "missing metrics data in payload",
    "statusCode": 400
}

@darahayes do you think it would be worthwhile converting your curl statements into integration tests?
Running http + httptest.Server.

Definitely. I'm going to create a ticket for e2e style tests that will behave in this way.


Missing copyright statement

I don't see a copyright statement (Copyright (c)  ) in either the README file or the LICENSE file (also, that file is spelled LICENCE - is that intentional)?  This is needed to give proper attributions for OSS usage.

Hi @delorenzo ,
I've added the copyright into the README file and renamed LICENSE file.
Could you please check if that fit your needs?

Yes that is perfect, thank you!  I'll mark this as closed.


Quality Improvements

Check List:

Fixes n/a
Unit tests : NA
Javadoc with a code example (on API only) : NA
PR meets the contributing guidelines

Following the contributing guidelines will make it easier for us to review and accept your PR.

use capital L for long numbers
use isEmpty on collection instead of size() == 0 and size() != 0 variants
remove leading 0 from numbers to make them decimal, not octet

Awesome, thanks for all these improvements

I have more... But more than 20 files is unacceptable PR (by me).

It really depends if the changes are complex, this PR had quite a few modified files but was really quick to review since it was kinda the same logical change applied on different part of the code.
Feel free to do bigger PR as long as they are not too complex to review, trust your own judgement.


Added config for showing stat overlay for worn equipment

Added a new config for the Item Stat plugin that will allow for stats to be displayed via the tooltip within the worn equipment tab of the interface. The default setting for this will be false, just since the majority of players likely won't enjoy having the tooltips showing up all of a sudden.

Similar to some of the other configs for this plugin, if "Enable equipment stats" is false, then the item stat tooltip will not show up within the worn equipment tab.

This almost looks like a bug to me since it is cancelling out the item stats with what you have worn.

@Adam- Not sure I'm 100% following with what you meant by saying it seems like a bug?
The overlay is grabbing the stats of both the currently equipped item, and the one you are hovering over, in order to do the stat comparison. If we keep ItemStats set to null, then we will always be showing the stats of the item we are currently hovering over. Since we are hovering over a currently equipped item, we need to skip the logic that is pulling stats from that currently equipped item, so that we can properly display the positive/negative stats from the hovered item (which happens to be the currently equipped).
I might 100% be missing something here though since I'm new to the codebase, so lemme know!

I think it is a bug because it is supposed to show you the difference in what you are hovering vs what you are wearing, but if you hover over what you are wearing it is always 0 difference.


Add idiom option and fix lint errors

--idiom
I added an option to the user to specify a language for your search.  Obviously, the default remains en-US.
See below:

=======
Lint erros
:nail_care:  On run npm test, the lint tool showed me the following errors:

This PR also fixes it.

@fernahh This is probably the best PR that I have ever received. Thanks a lot!
I have just added a comment so if you can check it before I merge that would be nice.

@rafaelrinaldi Really your suggestion was better. But, as alias I used -lc, because -l is used by --language.
What do you think?

@fernahh Awesome! Thanks for your contribution.

@rafaelrinaldi :beers:


add evaluation data for early stopping

fixes issue https://github.com/Azure/mmlspark/issues/435

@imatiach-msft @mhamilton723 Is there anything preventing this PR to be merged?

@ekerazha this PR doesn't work yet, it requires some additional changes (note the test is failing)


Site not accessible with www in url

So for some reason i cannot access "https://www.iracing-week-planner.tmo.lol" but "https://iracing-week-planner.tmo.lol" is working fine.
The initial Get request never returns.

Yep, that's intentional. iracing-week-planner is essentially a subdomain of tmo.lol. It's all hosted on cloudfront so setting up a redirect server just for redirecting a sub-subdomain is beyond the scope of what I want to do.