[SPARK-26742][K8S] Update Kubernetes-Client version to 4.1.2

What changes were proposed in this pull request?
Changed the kubernetes-client version to 4.1.2.  Latest version fix error with exec credentials (used by aws eks) and this will be used to talk with kubernetes API server. Users can submit spark job to EKS api endpoint now with this patch.
How was this patch tested?
unit tests and manual tests.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@dongjoon-hyun @ifilonenko @erikerlandson

Hi, @Jeffwan . Thank you for your first contribution.

ok to test

Test build #102431 has started for PR 23814 at commit 3433f32.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/8012/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/8012/

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/testing-k8s-prb-make-spark-distribution-unified/8012/
Test FAILed.

Test build #102431 has finished for PR 23814 at commit 3433f32.

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/102431/
Test FAILed.

Test build #102438 has started for PR 23814 at commit d344445.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/8018/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/8018/

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/testing-k8s-prb-make-spark-distribution-unified/8018/
Test FAILed.

Test build #102438 has finished for PR 23814 at commit d344445.

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/102438/
Test PASSed.

I am trying to resolve integration test failure and submit revision later.

@Jeffwan I am already updating the version here: https://github.com/apache/spark/pull/23514

Good to know. I didn't see PR links in original ticket and thought no one working on it.  @skonto. Could you help upgrade to v4.1.2?  There's several bug fixes important for spark to talking to kubernetes. We want to leverage this latest version. Once that's included, I can close this PR.

@Jeffwan I didnt see the ticket because my PR is a bit older but I needed that new version with the k8s updated model for long :) Anyway I can rebase mine if yours is merged. How do you want me to help? What doe snot work for you?

@shaneknapp What version of K8S do the integration tests run against?  I notice from the compatibility matrix given by the Fabric8 folks that 4.1.1 and above requires K8S 1.9.0 or later.  If the integration tests are running against an older K8S version that could explain the test failures.
@Jeffwan @skonto A side effect of this change is that this will make the minimum supported K8S version 1.9.0.  Personally I think this is fine since 1.9 is already EOL and not receiving updates from the K8S community but we would need to make sure this is updated in the docs appropriately

I would also note that a workaround for the AWS EKS issue is that user can first manually log in with AWS and then pass the OAuth token explicitly to spark-submit i.e.

(The above from a recent discussion on the #spark-operator K8S slack channel - https://kubernetes.slack.com/archives/CALBDHMTL/p1549469998419600?thread_ts=1549416963.416700&cid=CALBDHMTL)

@rvesse Right, 1.9.0 is already sunset. Should be safe to use it now. The walkround will definitely work but token expired 20mins later. User doesn't like to refresh token frequently. This is not just for EKS, all the authentication using plugin to retrieve token will be impacted.  For long term, I think we need to have this patch

@skonto It takes me sometime to reproduce integration test failure in my env, not sure what's broken there. Will update thread later.

@shaneknapp What version of K8S do the integration tests run against? I notice from the compatibility matrix given by the Fabric8 folks that 4.1.1 and above requires K8S 1.9.0 or later. If the integration tests are running against an older K8S version that could explain the test failures.

right now we're testing against:
minikube v0.25.0
k8s 1.10.0
i have a "plan" in the not-so-distant-future to get us updated to:
minikube v0.34.1
k8s 1.13.2 (or newer)

@Jeffwan @skonto A side effect of this change is that this will make the minimum supported K8S version 1.9.0. Personally I think this is fine since 1.9 is already EOL and not receiving updates from the K8S community but we would need to make sure this is updated in the docs appropriately

sgtm

FYI, upgrading to 4.1.2 also fixes SPARK-25590, so that one could be closed when this change goes in.

re: kube version support, our originally proposed policy was to support current version and previous, and so technically supporting 1.12 and 1.13 is now sufficient, although supporting more is obviously even better.
cc @liyinan926 @mccheah

Might make sense to match the k8s community and patch releases - 1.11 is still getting actively patched (for a total of 9 months since it came out). With the 3 month release cycle, we should maybe target 3 versions and deprecated 1.11 support only after 1.14 comes out (https://github.com/kubernetes/sig-release/tree/master/releases/release-1.14#tldr); which is the same schedule that k8s upstream follows.

fyi i can't help out on this for the next ~2 weeks, as we're moving back in
to our lab after a major remodel.
it shouldn't be too much trouble to test against different k8s versions as
we can pass that in as an arg when starting minikube.
it will be a PITA to ensure that all of the pods, etc, are properly
configured to allow the tests to run.  for example, i'm currently testing
against minikube v0.33.4 and kubernetes 1.13 and running in to service
account/api access issues (which i will revisit once the dust settles here
in meatspace).
i would hesitate to have regularly scheduled integration tests for this
matrix, however, as we have limited physical resources available (number of
ubuntu build nodes).
if someone would like to open a jira for this, we could move the
conversation there.
On Thu, Feb 21, 2019 at 11:30 AM Anirudh Ramanathan <
<EMAIL_ADDRESS>wrote:

Might make sense to match the k8s community and patch releases - 1.11 is
still getting actively patched (for a total of 9 months since it came out).
With the 3 month release cycle, we should maybe target 3 versions and
deprecated 1.11 support only after 1.14 comes out (
https://github.com/kubernetes/sig-release/tree/master/releases/release-1.14#tldr);
which is the same schedule that k8s upstream follows.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/spark/pull/23814#issuecomment-466133447, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABiDrATByFF-7idydGPKgpqDDshDoDC7ks5vPvO4gaJpZM4a_ZuQ
.

I think supporting two out of the three mentioned here: https://kubernetes.io/docs/setup/version-skew-policy like 1.12 and 1.13 would be good enough. But that means running tests twice, I will create a jira @shaneknapp.

That version skew policy document talks about skew between various components in a k8s system. The release cycle maintains 3 releases at all times - for example, right now, 1.11, 1.12 and 1.13 are all actively maintained.
Here is the relevant doc:
https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md
I am the current 1.11 release czar for k8s and will be cutting a release till 1.14 goes out. I don't mind going back to a policy with 2 releases supported if there's a good rationale for it but we would be discontinuing support for an actively parched and maintained version of K8s.

Should be okay to backport into 2.4 I think. There's probably more EKS users than anyone running k8s 1.8 :)
cc/ @skonto @erikerlandson

@foxish EKS is on 1.10 & 1.11 btw. So in general I guess the versioning is more critical when we do a release and trying to cover versions people actually use for good or bad at that point in time.

jira here: https://issues.apache.org/jira/browse/SPARK-26973

Merged to master. 2.4 is still on older major versions of the client, so I hesitate to back-port it directly. If it's essential, that probably needs another look and PR.

Just wanted to point out that this was merged without a successful run of the integration tests. Now all integration tests are failing.
I see in the discussion that the new version is supposed to be compatible with k8s 1.9, and that seems to be the version running on jenkins (minikube 0.25 says it ships with k8s 1.9). Might be a bug in 4.1.2. Perhaps we should revert this until we figure out what's going on.
Anyway, I filed SPARK-26997; I might revert this patch if we don't figure out what's wrong soon.

Oh, I apologize, I now see those K8S tests are separate and failing. I'll revert it if it's not obvious how to fix-forward.

we're running minikube 0.25.0 w/k8s 1.10.0

this bug is fucking weird and i just started looking in to it today.

pls to be reverting this merge for now thx

we're in the middle of moving back in to our lab after a massive remodel, so my available time is limited until the middle of next week

Ok, I'll revert the patch.

Sorry about that.. I have not figured it out and notice github doesn't show failures.. I will try to fix it soon.

It does show failures: https://github.com/apache/spark/pull/23814#issuecomment-464534840
Maybe it should be a little bit louder, though, like the regular PR builder failures.
Anyway, people are looking at this as part of SPARK-26997, so if you have more info, please post it there.

@vanzin @srinathshankar there is a compatibility matrix for the fabric8io client and the k8s support. 4.1.2 is not listed there so I am wondering if 1.10 is supported any more.

@vanzin @srowen there is a compatibility matrix for the fabric8io client and the k8s support. 4.1.2 is not listed there so I am wondering if 1.10 is supported any more.

i believe this is the case.  i'm currently confirming this, and then looking in to upgrading minikube to something more recent.  our current version, v0.25.0 is only able to support up to k8s 1.10.0.
a minikube upgrade is not trivial.

It's super weird to drop compatibility in .z releases, but hey, I'm not an RM on that project... :-/

we're definitely incompatible w/4.1.2.
i'll need to do a pretty serious upgrade on our end, and hope that minikube is keeping up w/k8s mainline in a reasonable fashion.
more here:
https://issues.apache.org/jira/browse/SPARK-26997?focusedCommentId=16779599&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16779599

TL;DR:  i got this to work!  we can deploy the infra changes next week, get this merged and move on.
https://issues.apache.org/jira/browse/SPARK-26997?focusedCommentId=16779881&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16779881

@shaneknapp Thanks! Good to know it's a minikube issue. I was not sure integration failures and get stucked there.  Anyone working on these items now? If not, I will have a try to make it work
https://issues.apache.org/jira/browse/SPARK-26997?focusedCommentId=16780802&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16780802

@Jeffwan we're tracking work here:  https://issues.apache.org/jira/browse/SPARK-26742
once we decide which version of k8s to test against, i can get the infra deployed simultaneously with the merging of both this PR and https://github.com/apache/spark/pull/23993.


Custom CSV parser & formatter

Is there a reason JSForce has its own CSV parser/formatter rather than using an existing one like fast-csv or csv-parse? Are there any custom, Salesforce-specific transformations in this parser?
PS: I'm currently not using it because the usage of the CSV parser in JSForce waits for all records to be returned and then parses the CSV rather than doing it in a streaming-fashion, which takes up too much memory for large data sets, but I've been having some trouble with some records coming back from the Bulk Query API with generic csv parsers so wondering if there are any quirks of the CSV returned from SF that you've noticed. @stomita

Actually the historical reason. At that time we couldn't find the satisfying CSV parser lib in npm so implemented it (I remember some parser has a problem during dealing with CJK text). I'm not sure if fast-csv resolves the problem or not but worth to try.

JSForce waits for all records to be returned and then parses the CSV rather than doing it in a streaming-fashion,

Yes, this is true, and this is also why we selected to implement our own CSV parser instead of using existing parsers (at that time there was no good streaming parsers I could find), but we didn't have a time to fully implement it. Now it seems the fast-csv has the feature so we might think of it.

As you may know the raw CSV text response of bulk query can be obtained in stream by bulk.query(soql).stream(), which will bypass the built-in CSV parser.
conn.bulk.query('SELECT Id, Name FROM Account')
  .stream()
  .pipe(fs.createWriteStream('./accounts.csv'));

Actually the historical reason

Ah, I see. Makes sense.

Now it seems the fast-csv has the feature so we might think of it.

To clarify, does this mean you're considering using fast-csv as a streaming parser or synchronous parser after all the data is already in memory like JSForce does now? I'd suggest using its streaming parser.

As you may know the raw CSV text response of bulk query can be obtained in stream by bulk.query(soql).stream(), which will bypass the built-in CSV parser.

I actually did not know that. I'll migrate my code over to this. Thanks!


aten::_thnn_fused_gru_cell // CPU fallback could not cover it

Sorry, open the issue by accidental touch.


feat: 🎸 added dependent fields to circular dependency error

:tada: This PR is included in version 1.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Bugfix ucgate

Summary
The inverse() of the UCGate class is defined by simply inverting the existing decomposition, but the inverse of the global phase was missing.
Details and comments
The existing tests did not cover the inverse() function of the UCGate class, so I also included a new test.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the fix! Could you also add a releasenote? 🙂

Thanks, @israelferrazaraujo. This PR also makes Isometry decomposition phase correct  #4687.

Thanks for the fix! Could you also add a releasenote? slightly_smiling_face

Hi @Cryoris,
I have added the release notes.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
440 unchanged lines in 23 files lost coverage.
Overall coverage increased (+0.03%) to 84.045%

Files with Coverage Reduction
New Missed Lines
%

qiskit/assembler/assemble_circuits.py
1
99.44%

qiskit/circuit/library/data_preparation/state_preparation.py
1
95.72%

qiskit/circuit/library/generalized_gates/linear_function.py
1
98.36%

qiskit/extensions/quantum_initializer/diagonal.py
1
89.86%

qiskit/extensions/quantum_initializer/squ.py
1
82.02%

qiskit/extensions/quantum_initializer/uc_pauli_rot.py
1
93.9%

qiskit/extensions/quantum_initializer/uc.py
1
88.19%

qiskit/quantum_info/operators/predicates.py
1
59.78%

qiskit/quantum_info/synthesis/one_qubit_decompose.py
1
97.21%

qiskit/dagcircuit/dagdepnode.py
2
69.51%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
56312

Relevant Lines:
67002

💛  - Coveralls

LGTM thanks a lot for the contribution!

It's good to contribute to Qiskit. I hope to do more in the future.


Fixed some font issues and Added a "in memory of" section

Going to change font size to scalable font, but need to know how to test locally since the scalable font is percentage based on the size of the window.

The actual content of the message is nice. However, the font update is not displaying correctly.
I think it's probably due to the line height being set explicitly.
Also, good work finding a font that makes comic sans look professional lmao

Forgot to delete the scaling part. Fixed it now it should work


Created a reset modal for subreq

Summary
This pull request creates a confirmation modal when a user attempts to reset a sub-requirement.

[x] Implemented modal for confirmation of main/transfer credits
[x] Added modal to reset action

Remaining TODOs:

[ ] I could not for the life of me figure out how to avoid the "transform" in the style after traveling up and down component trees from the other modals
[ ] Need the ability to have a unique id for transfer credit or else deleting them will require many changes across 5 functions that may have deeply nested event handlers (possible merge conflicts)
[ ] Possible media query for mobile devices to change the size of the modal for mobile devices

Desktop:

Phone:

Test Plan
Keep testing if the reset functionality works on everything (maybe except transfer credits for now)
Notes
The v-model modal functionality might be useful in the future.

Fixed the above and resolved merge conflict.


Allow for E_NOTICE on new page creation (and some other small cleanup)

Make this against the release/8 branch, or hold off on it for now.

If that's what you want. I figured this would be easier on you for merging later. I'll start pulling against 8.0


Fixes#1, findCallers() Not Finding Function Callers in Simulink Functions

Summary

Closes #1
The function was not searching through descendant subsystems if they were atomic subsystems
I believe the descendant subsystems should be searched regardless of whether they are atomic or not
Removed the condition which was checking if the descendants were atomic units

Testing Performed

Tested on the FCC inner loop Filter Simulink Function
Originally, when running findCallers() on the pink Filter Simulink Function, no callers were found
Now, findCallers() returns the three Function Callers located in the three Feedback Simulink Functions

I confirmed that this is buggy behaviour. Accepting fix.


Calendar View

Implement Calendar view based on Figma design below
https://www.figma.com/file/hUluYT2dbw4VormTKyluEl/WebReg-shared?node-id=2098%3A190

Calendar View:
https://drive.google.com/file/d/1Dtu9yustLg7cbTBUEZN9m4vfcoXfjUtP/view?usp=sharing

Calendar View:
https://drive.google.com/file/d/1Dtu9yustLg7cbTBUEZN9m4vfcoXfjUtP/view?usp=sharing


O11Y-3814: Support Dart 2 and Dart 3

Which problem is this PR solving?
An open source community member opened a PR to bump some of our dependencies. Included in the change are the use of dependencies that are not compatible with dart v3. Workiva is not ready for dart v3. We need to adjust/widen dependency ranges to support dart v2 and dart v3.
Supporting Information
Related PR: https://github.com/Workiva/opentelemetry-dart/pull/138
Acceptance Criteria

otel-dart supports dart v2 and dart v3 and its unit tests run against both versions
open source pull request is merged

How Has This Been Tested?
Dart unit tests.
Checklist:

[x] Unit tests have been added
[x] Documentation has been updated

The tests speak for themselves.
QA +1 ⛄
@Workiva/release-management-pp


Add Device Discoverer

Create a view that allows you to select a provider and put all devices of that provider into Bind Mode.
When input from a device comes in, some kind of feedback should be presented to the user to tell them what device there was activity on.
This would be useful for example with Interception, when you are not sure which device is which.

That would be great. Right now an alternative would be HIDMacros Monitor.


[2.1] OCDSKit - release->compiledRelease functionality - make a function or class

I have made a pull request to ocds kit for the absolute minimum library functions needed for kingfisher.
https://github.com/open-contracting/ocdskit/pull/80
This covers point 1. above but needs a version not on pypi to work.
As to point 2:
I think this functionality should be part of the cli and not the library as the library should not really be aware of the JSON streams.  Whatever happens with this, at least all the ocids will need to be cached, so you can pick up if there is a gap for a particular ocid or you will need to just trust the input is sorted.  The dates being ordered is not necessary as ocdsmerge currently forces order on release date anyway.

Re: 1: Unless you are passing a dict as the schema to OCDS Merge, it will cache the merge rules on its own, so that optimization is no longer needed in OCDS Kit or other tools.
Re: 2, I'll open an issue on OCDS Kit to explain better.


Add documentation from sqlite_ecto, to resolve #135

Addition of sqlite_ecto documentation in docs directory as Markdown, updated for sqlite_ecto2 as discussed in #135.

Coverage remained the same at 84.138% when pulling fef42a60f6d6ef7c3097a6e6d4de0538d5a78a9a on taufiqkh:docs into 05a7a5279a9f6134115af5d7b9f3b0aff274ef32 on scouten:master.

Coverage remained the same at 84.138% when pulling fef42a60f6d6ef7c3097a6e6d4de0538d5a78a9a on taufiqkh:docs into 05a7a5279a9f6134115af5d7b9f3b0aff274ef32 on scouten:master.

This is very nice work. Thank you!


docs: fix typo

this could make or break the project tbh

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 21.075%

Totals

Change from base Build<PHONE_NUMBER>6:
0.0%

Covered Lines:
3952

Relevant Lines:
19945

💛  - Coveralls


Fetch a char from string to equal the same string(char) return false

icr(0.22.0) > "hello!"[-1] == "!"
 => false
icr(0.22.0) > "==="[0] == "="
 => false
icr(0.22.0) > "==="[0].to_s == "="
 => true
icr(0.22.0) > "==="[0] == "=".chars[0]
 => true

2.4.1 :001 > "hello!"[-1] == "!"
 => true
2.4.1 :002 > "==="[0] == "="
 => true

Is this logic correct?

Yes, Char will never be equals to String.
https://play.crystal-lang.org/#/r/29tu

But You can override this behavior with:
https://play.crystal-lang.org/#/r/29ty

Reminder that overriding such behaviour globally is likely to break other shards or the stdlib. If you want to compare a character use char literals.

@RX14 I suppose that's related to Frameworks. Rails actively override core things and it's OK.
IMHO, Crystal like a Ruby just the foundation for frameworks like Rails.

@akzhan and rails breaks things. From what I've heard it's not even rare.

@RX14 Crystal follows Ruby idea to metaprogramming. And it's great.
And yes, I dislike some defaults of Crystal (like String.underscore behavior), So ability to fix it for own code is beautiful.

It will inevitably lead to problems with 3rd party code. If you're only using your own code, that's okay. But when you rely on 3rd party shards, I wouldn't change behavior of stdlib.

@straight-shoota Yes, it is. But Crystal is foundation. A lot of people will use higher level frameworks.
P.S.: I'm used Rack not Rails. And Rails is great concept built extending and overriding Ruby.

Rails has such an important status in the Ruby ecosystem that 3rd party libraries just have to deal with the monkey patches from rails, because they are everywhere ;)

thanks @akzhan. Maybe It's better to update this behavior to document. 😄

Update this benchmark to fast-crystal
$ crystal build --release code/string/equal-substring-of-char.cr -o bin/string/equal-substring-of-char
$ ./bin/string/equal-substring-of-char

Crystal 0.22.0 (2017-04-22) LLVM 4.0.0
         "==="[0] == '=' 252.73M (  3.96ns) (±12.75%)       fastest
    "==="[0].to_s == "="  19.65M ( 50.88ns) (± 2.72%) 12.86× slower
"==="[0] == "=".chars[0]  16.97M ( 58.91ns) (± 3.48%) 14.89× slower

Thanks @icyleaf.
btw, take a look at #4586. Looks like we need tests for gsub vs tr.


Implement the undo command to support multiple undos

Dependencies: #87
Format: undo
*NOTE:

Just type and enter undo twice if you want to go back to two actions ago.

Refer to issue #86

Complete multiple undos


Composite projects: support strict dependencies

Google (and Bazel rules_typescript) use a special-purpose TypeScript compiler. One of the reasons for this is we want to enforce strict dependencies.
Strict dependencies means you may only import or reference symbols declared in a project you explicitly declare to be an input. This is an essential property in a large monorepo as a defense against accidental coupling between projects.
For example we might have three directories, A B and C:
alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat A/a.ts
export const a = 'hello';
alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat A/tsconfig.json
{
    "compilerOptions": {
        "composite": true
    }
}

alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat B/b.ts
import {a} from '../A/a';

export function sayHello(f: string) {
    console.log(a + f);
}
alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat B/tsconfig.json
{
    "compilerOptions": {
        "composite": true,
    },
    "references": [
        {"path": "../A"}
    ]
}

alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat C/c.ts
import {a} from '../A/a'; // SHOULD FAIL HERE
import {sayHello} from '../B/b';

sayHello('world');
console.error(a);
alexeagle@alexeagle:~/Projects/repro_strict_deps$ cat C/tsconfig.json
{
    "references": [
        // NO REF TO A
        {"path": "../B"}
    ]
}

Let's say we work on library B. We decide we no longer need to depend on A, so we remove the dependency, but this breaks users such as C. This is a serious impediment to good code practices because our dependency on A leaked to users who reference its symbols without declaring their own dependency. In a big monorepo, the breakage of removing a dependency can prevent ever cleaning them up
We would like to propose a strictness setting when used with Project References, such that imports (or ambient references) from transitive dependencies should be disallowed.
/cc @evmar @josephperrott

Possibly dumb question, isn't this just rootDir: "./" ?

I'm not sure how rootDir would help here. In project C I want TypeScript to allow the import from B but not from A. I tried adding rootDir: "./" in C/tsconfig.json and can still repro that it allows dependencies on A even though the project reference isn't declared.

I wanted to do something similar, and I also ran into this issue with project references in our Ninja-TypeScript integration for Chromium. My attempt was to use noResolve, which seemed to work initially, until I discovered that project references don't work with a different outDir. E.g. TSC will resolve to the original source files, but uses the .d.ts generated in the outDir:
front_end/common/common.js:
import * as Platform  '../platform/platform.js';

front_end/platform/platform.js:
export const foo = 42;

If you then have your tsconfig.json generated in gen/front_end/common/tsconfig.json which points its files to ../../../front_end/common/common.js and its project references to ../platform, it will use the gen/front_end/platform/platform.d.ts, but only after resolving to front_end/platform/platform.js. Then TSC gets confused, as front_end/platform/platform.js is not part of ../plaform (gen/front_end/platform/) and complains that it can't find the import:
front_end/common/Color.js:30:27 - error TS7016: Could not find a declaration file for module '../platform/platform.js'. '/front_end/platform/platform.js' implicitly has an 'any' type.

30 import * as Platform from '../platform/platform.js';
                             ~~~~~~~~~~~~~~~~~~~~~~~~~

Note that the declaration file does exist in gen/front_end/platform/platform.d.ts and I have verified that if I make changes to platform.d.ts it does properly fail the compilation on gen/front_end/common/tsconfig.json (when using noResolve: false).
This seems very similar to the issue described in #27572


Missing comma

There is a missing comma. I edit it
Exercise 2.b by using fork

Hey @AliKarimirad, I think this edit makes sense but the style of these lectures (e.g. the two sentences on either side) is to keep punctuation to a minimum and use direct sentences. So unless we need to set apart two distinct ideas, probably should not use the comma.


Is this project dead?

Your concept is amazing and I wish to use it, will you continue to support it?

Short story: Yes, please feel free to use it and raise issues if necessary, I do plan to support this project.
Initially, I created this project to use in one of the projects I was working on my day work, but before that I got shifted to another project. So I could never test it in production environment, making me not inclined to release it as production ready. But if someone wants to use it in production and provide me feedback, I plan to support it as long as I am allowed to by organisation I work for. So, this status may change if someday I move to organisation that may not allow open source contribution.


Missing JDK 17 packages from deb/rpm repos.

Some while ago the Adoptium (then AdoptOpenJDK) team published official DEB/RPM repos:
https://medium.com/adoptopenjdk/adoptopenjdk-rpm-and-deb-files-7003ba38144e
These work fine up to 16, but there are no packages for 17.

We are in the process of setting up the Adoptium repository but it's not quite ready yet. The work is being tracked under #linuxNew with a few other sub-tasks in this repository, so I'm going to close this as a duplicate.


Preventing before_save callback from being called twice after a child create

PR for #3631

@arthurnn, can this be merged? Seems like a reasonable fix from what I can tell.

Missing a changelog.
Will merge after is added.

@arthurnn https://github.com/mongoid/mongoid/pull/4066 adds a changelog for this.

thanks merged via https://github.com/mongoid/mongoid/commit/d0c460a7fe5601d52bccedf228242ff6f5665ba0


Sharepoint Add Folder error

When i m trying to create a folder on Sharepoint using OneDrive Business API i m getting following error.
odata.error
value=Invalid JSON. More than one value was found at the root of the JSON content. JSON content can only have one value at the root level, which is an array, an object or a primitive value.
My API request is
POST /_api/web/folders
{'__metadata':{'type':'SP.Folder'}, 'ServerRelativeUrl':'/Shared Documents/PB35(Test Consulting Pty Ltd)'}}
It was working fine earlier but suddenly breaks.
Please suggest

@anildbest83 that doesn't look like a call to the OneDrive Business API - it looks like the SharePoint REST API. If you want to switch to the OneDrive Business API, which we support here, I'd suggest you take a look at our documentation.
I can, however, offer a general statement about what you're seeing. The JSON you provided above seems to a superfluous } at the end - it's possible that's confusing the deserializer.

@ificator thanks for your reply, yes it is SharePoint Rest API. Do you know where i can post questions related to it?

@ificator your suggestion work perfectly but the same thing working before not sure how, anyway thanks.


[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

Version
3.0.5
Reproduction link
http://excuse
Node and OS info
Node 8.11.1
Steps to reproduce
excuse
What is expected?
运行不了
What is actually happening?
报上面的错误

https://cli.vuejs.org/config/#runtimecompiler

我用的vue-cli3, 没有vue.config.js  也没有 webpack配置文件，怎么弄呢？

What if you wanted the runtime compiler only for jest tests?

i had the same question , and resolved it ! change your webpack.config.js or App.vue like this :

webpack.config.js

resolve: {      alias: {        vue: 'vue/dist/vue.esm.js'      } }

App.vue

new Vue({   el: '#app',   router,   render: h => h(App) })

that render: h => h(App) thing was also what I was missing

that render: h => h(App) thing was also what I was missing

if pass in  render: h => h(App) , it ignores router. I am new to Vue but that is not the solution.
I am following the tutorials ,exact code. Blank page.

You have to pass the router to your Vue instanciation :
import Vue from 'vue'
import App from './App'
import store from './store'
import router from './router'

console.log('[i] Starting client app')

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  store,
  router,
  components: { App }
}).$mount('#app')

You have to pass the router to your Vue instanciation :
import Vue from 'vue'
import App from './App'
import store from './store'
import router from './router'

console.log('[i] Starting client app')

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  store,
  router,
  components: { App }
}).$mount('#app')

This solution work out for me. Thank you!

请自行创建 vue.config.js 文件

Fixed by this way.

请问在那个目录先创建vue.config.js 其内容改为什么？

I  also encountered this problem when I converted the vue-cli 2.0 project into vue-cli 3.0.
I change
new Vue({
el: '#app',
router,
store,
components: {App},
template: ''
})
to
new Vue({
render: h => h(App),
store,
router,
components: { App }
}).$mount('#app')
It resolved my issue

Hi everybody,
getting close to a solution:
so problem is related to syntax for vue 3.0 + ? Is it different than vue 2.0 ?
So could you please show a syntax that translate how to make use of multiple templates and components ?
e.g
import Vue from 'vue'
import App from './App.vue'
import Rating from './components/Rating'
new Vue({  el: '#app',  template: '<Rating/>',  components: { Rating }})

if I try:
new Vue({
  render: h => h(App, Rating),
  Rating,
  template: '<Rating :grade="3" :maxStars="5" :hasCounter="true"/>',
  components: { App, Rating}
}).$mount('#app')

I cannot see the rating component.
what is that
render: h => h(App), and then mounted ?
I found former sytax more readable, espeically for more complex structures.
P..s.
could you help to pintpoint a tutorial that shows how to migrate to new syntax?
I created quite quickly a demo by putting everything in one index.html, including scripts and html. I would like to break down into templates and components, for the sake of maintanance, and attempting to use vue cli.
But feeling it consumes quite much of time to solve this hiccups.
Thank you for point at practical resources

I also add useful resource:
https://codewithhugo.com/writing-multiple-vue-components-in-a-single-file/

You have to pass the router to your Vue instanciation :
import Vue from 'vue'
import App from './App'
import store from './store'
import router from './router'

console.log('[i] Starting client app')

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  store,
  router,
  components: { App }
}).$mount('#app')

This solution work out for me. Thank you!

great! thank you

For me, the solution was:
create a new file "vue.config.js" in the root folder and add
module.exports = {     runtimeCompiler: true }

the problem has been solved at vuejs-templates/webpack#215
Simple way, change
import Vue from 'vue'
to
import Vue from 'vue/dist/vue.js';
It resolved my issue

This literally saved my day after over 3 hours of knocking my head! Thanks @db12138 .

i had the same question , and resolved it ! change your webpack.config.js or App.vue like this :
1. **webpack.config.js**

resolve: { alias: { vue: 'vue/dist/vue.esm.js' } }
1. **App.vue**

new Vue({ el: '#app', router, render: h => h(App) })
TIps:
if you created your app by @vue/cli, please add code to your vue.config.js like this:
module.exports = { runtimeCompiler: true, }

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

configuration has an unknown property 'runtimeCompiler'. These properties are valid:
object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry?, externals?, infrastructureLogging?, loader?, mode?, module?, name?, node?, optimization?, output?, parallelism?, performance?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, serve?, stats?, target?, watch?, watchOptions? }
For typos: please correct them.
For loader options: webpack >= v2.0.0 no longer allows custom properties in configuration.
Loaders should be updated to allow passing options via loader options in module.rules.
Until loaders are updated one can use the LoaderOptionsPlugin to pass these options to the loader:
plugins: [
new webpack.LoaderOptionsPlugin({
// test: /.xxx$/, // may apply this only for some modules
options: {
runtimeCompiler: …
}
})
]

Or just add
new Vue({
  store,
  router,
  render: (h) => {
    return h();
  },
}).$mount('#app');

And you can get rid of your App.vue file as well as the vue template compiler to reduce build size
For some reason the render function is required or it tries to use an unexisting template and throws this warning

On the vue.config.js file put:
module.exports = {
runtimeCompiler: true
}

Hey, I'm using ant-design-vue and vue-router, this problem came up when I try to use router-view. adding vue.config.js file doesn't help me out to fix the issue. btw router doesn't work at all.
any idea how to fix it?
main.js
import router from '../router/main.js'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

./router/main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use( VueRouter )

// const TodInfo = require( '../src/components/tod/TodInfo.vue' )
// const Login = require('../src/components/util/BucheonLogin.vue')

const TodInfo = {template: '
Foo
'}
console.log(TodInfo)

const router = new VueRouter( {

    mode: 'history',
    routes: [
        // {
        //     path: '/',
        //     name: 'login',
        //     component: Login
        // },
        {
            path: '/todinfo',
            name: 'todinfo',
            component: TodInfo
        }
    ]
} )

export default router

App.vue

     ..
       ..
      ..
      ..
        <router-view></router-view>
        data
    ..

Hey, I'm using ant-design-vue and vue-router, this problem came up when I try to use router-view. adding vue.config.js file doesn't help me out to fix the issue. btw router doesn't work at all.
any idea how to fix it?
main.js
import router from '../router/main.js'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

./router/main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use( VueRouter )

// const TodInfo = require( '../src/components/tod/TodInfo.vue' )
// const Login = require('../src/components/util/BucheonLogin.vue')

const TodInfo = {template: '
Foo
'}
console.log(TodInfo)

const router = new VueRouter( {

    mode: 'history',
    routes: [
        // {
        //     path: '/',
        //     name: 'login',
        //     component: Login
        // },
        {
            path: '/todinfo',
            name: 'todinfo',
            component: TodInfo
        }
    ]
} )

export default router

App.vue

     ..
       ..
      ..
      ..
        <router-view></router-view>
        data
    ..

the problem has been solved at vuejs-templates/webpack#215
Simple way, change
import Vue from 'vue'
to
import Vue from 'vue/dist/vue.js';
It resolved my issue

This literally saved my day after over 3 hours of knocking my head! Thanks @db12138 .

Thank you! :)

i had the same question , and resolved it ! change your webpack.config.js or App.vue like this :

webpack.config.js

resolve: { alias: { vue: 'vue/dist/vue.esm.js' } }

App.vue

new Vue({ el: '#app', router, render: h => h(App) })
TIps:
if you created your app by @vue/cli, please add code to your vue.config.js like this:
module.exports = { runtimeCompiler: true, }

Thanks, it can work.

If anyone encounters this warning in running unit tests with vue-test-utils, it turns out I needed to supply a localVue in mount of shallowMount which includes the template compiler:
// SomeComponent.spec.js

import { mount } from '@vue/test-utils';
import Vue from 'vue/dist/vue.common.js';
import SomeComponent from './SomeComponent.vue';

const wrapper = mount(SomeComponent, {
  localVue: Vue,
});

...

I expected webpack to take care of using the correct vue because I set the correct alias, but vue-test-utils needed some help here.

Use NODE_ENV to switch it or rewite the module path in jest config

@LinusBorg This is regards to: What if you wanted the runtime compiler only for jest tests?
Do you have an example of this? I've been trying to figure out how to get the compiler-included build to run in my jest tests but can't seem to get it to work. Thanks for the help, I know it's from awhile ago.

@ebwittenberg in the jest config you can re-map theVue import like this:
moduleNameMapper: {
    ...
    '^vue$': 'vue/dist/vue.common.dev.js',
    ...
},

Doing so, jest will use that path to resolve Vue for testing. This version includes the template compiler.

What is the solution if I my projects in Nuxt.js. I am doing a Nuxt.js project and facing the same problem. What is the solution for Nuxt.js?

i had the same question , and resolved it ! change your webpack.config.js or App.vue like this :

webpack.config.js

resolve: { alias: { vue: 'vue/dist/vue.esm.js' } }

App.vue

new Vue({ el: '#app', router, render: h => h(App) })
TIps:
if you created your app by @vue/cli, please add code to your vue.config.js like this:
module.exports = { runtimeCompiler: true, }

What is the solution if I my projects in Nuxt.js. I am doing a Nuxt.js project and facing the same problem. What is the solution for Nuxt.js?

I created project by @vue/cli.    I solved my problem use this:
module.exports = { runtimeCompiler: true, }


Updating a cell with less-important data

This is a question about best practice on updating a cell on a less important data.
Let's pretend we have a quite heavy model: couple of images, some large data and so on, and one minor info counter, that counts something.
Simplified:
@interface RecipientModel : NSObject <IGListDiffable>

@property (nonatomic, readonly) NSString *compositeName;
@property (nonatomic, readonly) UIImage *profileImage;
// ... striped for brevity
@property (nonatomic) NSUInteger msgCount;  // can be set from outside, that's why it is readwrite

+ (instancetype)__unavailable new;
- (instancetype)__unavailable init;

//... striped

@end

I want to update msgCount on some events (that happens on e.g. didSelectItemAtIndex: and/or some external notification). My instincts tell me that I should not invalidate complete model instance (because loading other data, images and stuff may be expensive). I would prefer updating this model (and cell) with this irrelevant info and avoid all heavy machinery. Also, this counter should not be part of the diff-ing mechanism.
What is the preferred way to do this?
Currently I'm using [_adapter reloadObjects:@[viewModel]]; via delegation from section controller to view controller - is it expensive using it like this? Is there a better way?
Sorry for wasting your time if it is a dummy question.
New issue checklist

[x] I have reviewed the README and documentation
[x] I have searched existing issues and this is not a duplicate

General information

IGListKit version: HEAD (e9e09d...)
iOS version(s):latest
CocoaPods/Carthage version:latest
Xcode version:
Devices/Simulators affected:
Reproducible in the demo project?  This gets into some fun architecture stuff. I could geek out on this stuff all day 🤓
In this case, I would create an object who's responsibility is announcing certain changes, hand that object to each section controller that cares (via init, aka dependency injection), and add the section controller as a listener for changes.
Whether you do this via NSNotificationCenter, KVO, a custom one-to-many delegate, or w/e is totally up to you. But this way you are sending scoped events (e.g. not global) to each section controller.
This is exactly how we handle this situation in Instagram. Great question 😄

Yeah, thx. I'll do as you've suggested. I'll inject counter watcher and (in this case) observe property change.
Btw. I'm getting collection view "Inconsistency exception" (with the latest HEAD e9e09d), that I did not experience before... Still investigating, but have to ask if it is maybe experienced on your side too? If (when) I get more info, I'll get back... Closing till then.

@iostriz Hmm haven't seen anything like that on our end. If you continue to hit it would you mind opening a new issue and maybe a sample project so we can track?

Hmmm... Now I have a concrete question that goes with the title. So, instead of opening a new issue, I'm reopening this one.
Is it possible to modify the cell appearance (sectionController) from other places but - (UICollectionViewCell *)cellForItemAtIndex:(NSInteger)index?
For example, this works:
- (UICollectionViewCell *)cellForItemAtIndex:(NSInteger)index
{
    RecipientsCell *cell = [self.collectionContext dequeueReusableCellWithNibName:@"RecipientsCell" bundle:nil forSectionController:self atIndex:index];
    cell.model = _model.contact;
    [cell setInfo:@"aaa"];
    return cell;
}

but this I can't get to work:
- (void)listAdapter:(IGListAdapter *)listAdapter willDisplaySectionController:(IGListSectionController<IGListSectionType> *)sectionController cell:(UICollectionViewCell *)cell atIndex:(NSInteger)index
{
    RecipientsCell *c = (RecipientsCell *)cell;
    [c setInfo:@"42"];
}

// or this

- (void)listAdapter:(IGListAdapter *)listAdapter didEndDisplayingSectionController:(IGListSectionController<IGListSectionType> *)sectionController cell:(UICollectionViewCell *)cell atIndex:(NSInteger)index
{
    RecipientsCell *c = (RecipientsCell *)cell;
    [c setInfo:@"4242"];
}

Is this intentional?

@iostriz if you're still seeing this, let's open a new issue
cellForItemAtIndex: is the correct place to configure cells

Thanks Jesse.


feat: add support for auto semantic release

This PR adds support to create new semantic release versions when new changes are merged into the master branch.
This enforces standard commits messages to create new releases.
See here:
https://github.com/semantic-release/commit-analyzer/blob/master/lib/default-release-rules.js

How does this work on a go repo? @AyodejiO

How does this work on a go repo? @AyodejiO

This just creates the next release tag upon merging to master. Uses the commit rules here to determine the next SEM version. I expect the go pkg to get auto updated when there's a newer sem version.


Use for local environment only

Is your feature request related to a problem? Please describe.
When installing I would like a way to set a config or register the service provider for when the sit is local only. We would use these docs for local development to help new developers understand our business logic and some of the choices we made.
Describe the solution you'd like
Similar to Larval Telescope where you can register the service provider for local development environment.
Describe alternatives you've considered
None.
Additional context
None.

Added to future development list #6

This is removed from the roadmap. You can use Laravel gate for that.
https://larecipe.binarytorch.com.my/docs/2.0/authorization


Unlock stylelint version

This fails for some internal stylelint reason. The message is:
"result.apply is not a function"
Stack:
    at node_modules/@stylelint/postcss-css-in-js/extract.js:267:13
    at Array.some (<anonymous>)
    at isStylePath (node_modules/@stylelint/postcss-css-in-js/extract.js:257:33)
    at CallExpression (node_modules/@stylelint/postcss-css-in-js/extract.js:347:41)
    at NodePath._call (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:55:20)
    at NodePath.call (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:42:17)
    at NodePath.visit (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:90:31)
    at TraversalContext.visitQueue (node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:112:16)
    at TraversalContext.visitSingle (node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:84:19)
    at TraversalContext.visit (node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:140:19)

That's why I closed the Dependabot PRs, e.g. #1833, #1862. Was hoping they'd fix this upstream

That's why I closed the Dependabot PRs, e.g. #1833, #1862. Was hoping they'd fix this upstream

@swissspidy , yep, understood. But maybe that's not happening and we need to file a bug?

Yeah sounds like it

Upstream issue: https://github.com/stylelint/stylelint/issues/4793
One suggested workaround there is to use stylelint --syntax "css-in-js"
Let's try that?


Mint: 2018-05-27 -> 0.0.3

Motivation for this change

Allow computed properties on store
Added decode syntax for decoding primitive structures
Always default meta charset to UTF-8

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg  build mint

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: mint
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: mint
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: mint
Partial log (click to expand)
gcc "${@}" -o '/nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3/bin/mint'  -rdynamic  `command -v pkg-config > /dev/null && pkg-config --libs libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs libcrypto || printf %s '-lcrypto'` -L/build/source/tmp/lib/duktape/src/.build/lib -L/build/source/tmp/lib/duktape/src/.build/include -lduktape -lm -lz -lpcre -lm -lgc -lpthread /nix/store/dbhbcd92a35gmq0bk15lhq2kjvwh0hcb-crystal-0.24.2/lib/crystal/ext/libcrystal.a -levent -lrt -ldl -L/usr/lib -L/usr/local/lib _main.o
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3
shrinking /nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3/bin/mint
strip is /nix/store/21ymadblbmsbb2bk4q7gl4kjasp8zmgd-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3/bin
patching script interpreter paths in /nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3
checking for references to /build in /nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3...
/nix/store/3rjc364g41vzwic1r7jm6zi1h487lyp4-mint-0.0.3


CI Updates

As title

This updates the makefile such that the targets can be used on the command line when developing and during the GHA when doing continuous integration (CI).
Also, we fold the pre-commit GHA into the main testing, rather than having this a seprarate task.

LGTM

Thank you for the review, I added two more snippets to update some dependencies and also making a note about the need for pip install virtualenv.

@skupr-anaconda ❤


Add support for publishing and installing cross compiled crates

This is probably a niche use-case, but it is also a small PR. I plan to distribute an EFI application cross compiled with the x86_64-unknown-uefi target. But I would like to be able to give instructions to install and use these applications (via qemu) that are similar to installation of a normal binary available on cargo.io (i.e., you don't have to clone the source repo manually). So this PR adds an xpublish and xinstall command, tested using the mythril crate: https://crates.io/crates/mythril.

Thanks!

Published as version 0.5.18


Referencing an external nuget.config file

I'm looking at the Nuget installer ps1 and it looks like this line implies that you can reference a file outside of the current git repository. Would I just reference that as an absolute path?
if($nugetConfigPath -and ($nugetConfigPath -ne $env:Build_SourcesDirectory))

Yes, I don't see why that wouldn't work.

Confirmed this works by using C:\pathtomy\nuget.config

:+1:


Release Google.Cloud.Dialogflow.Cx.V3 version 1.4.0

Changes in this release:

Commit 6b21a68:

docs: clarified some LRO types
docs: fixed some wrong update mask descriptions

Commit 29077ad: chore: Configure Dialogflow CX for Ruby clients
Commit ac367e2: feat: Regenerate all APIs to support self-signed JWTs
Commit 992c711: feat: added support for DLP templates; expose Locations service to get/list avaliable locations of Dialogflow products

Created release for Google.Cloud.Dialogflow.Cx.V3-1.4.0


Bug 1855088: generate unique (Cluster)RoleBinding names

Description of the change:
Make ServiceAccount name part of the input for (Cluster)RoleBinding name generation.
This is done by passing permission object, of StrategyDeploymentPermissions type,
which contains ServiceAccountName and Rules fields.
Motivation for the change:
When same permission rules were defined for different ServiceAccounts,
OLM would generate same name for (Cluster)RoleBinding related to this rules.
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1855088
Closes #1625
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /docs
[ ] Commit messages sensible and descriptive

Note: this PR only addresses (Cluster)RoleBinding that are created when there are identical permissions rules.
OLM will still create just one (Cluster)Role, which will then be bound to multiple ServiceAccounts.
I would call this accidental optimization :)
Not sure if this needs to be addressed or not.

/ok-to-test

/retest

/lgtm

/retest

/retest

The last commit:

should address @njhale concern about collision on ClusterBinding, as well as some other possible collisions/edge cases.
fully addresses #1625 - it will create distinct roles for each ServiceAccount, even if the rules are the same.
brings back ServiceAccount name into (Cluster)Role name, as that was fairly convenient when troubleshooting

Looking forward to feedback. Cheers.

/lgtm

Looks like ci/prow/e2e-aws-olm tests are failing for different reasons between the runs:
 [Fail] Install Plan with deprecated version CRD Test [It] upgrade CRD with deprecated version
FAIL! -- 117 Passed | 1 Failed | 1 Pending | 3 Skipped

[Fail] CSV [It] API service resource not migrated if not adoptable
FAIL! -- 117 Passed | 1 Failed | 1 Pending | 3 Skipped

 [Fail] Catalog [It] delete gRPC registry pod triggers recreation
FAIL! -- 117 Passed | 1 Failed | 1 Pending | 3 Skipped

/cherry-pick release-4.5

/retest


Doesn't support latest graphene-django v3.0.0b1

Latest beta version of graphene and graphene-django gives this error:-
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 392, in check
    all_issues = self._run_checks(
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/management/base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/checks/registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 588, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 581, in urlconf_module
    return import_module(self.urlconf_name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/baniya_be/baniya_be/urls.py", line 22, in <module>
    from graphql_jwt.decorators import jwt_cookie
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/graphql_jwt/__init__.py", line 1, in <module>
    from . import relay
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/graphql_jwt/relay.py", line 5, in <module>
    from . import mixins
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/graphql_jwt/mixins.py", line 8, in <module>
    from .decorators import csrf_rotation, ensure_token, setup_jwt_cookie
  File "/Users/BfutureP/Desktop/BfutureP/Baniya-BE/.venv/lib/python3.8/site-packages/graphql_jwt/decorators.py", line 10, in <module>
    from graphql.execution.base import ResolveInfo
ModuleNotFoundError: No module named 'graphql.execution.base'

Hey @BfutureP . v3.0.0b1 is the very first version of django-graphene 3 series. It is not properly tested and highly likely to being stable. It's a bit early for other packages to adapt theyselves.

The issue is with graphql-core compatibility, which already has stable release (3.1.1).
Even if that wasn't the case, beta release is about the right time for other packages to adapt, as it's still time to raise an issue in case the package depends on API that is no longer available.
Also, missing support might be a blocker for a real-world project to adapt and test beta releases.

@wodCZ

beta release is about the right time for other packages to adapt

It's not the case this time. Maybe the version should be renamed as alpha, i think it would be better, but again it's really far from being mature at this moment.

@wodCZ

beta release is about the right time for other packages to adapt

It's not the case this time. Maybe the version should be renamed as alpha, i think it would be better, but again it's really far from being mature at this moment.

Have you tested it? graphql-core contains some very important performance improvements and we've certainly not found it to be alpha quality. What specifically leads you to make this claim?

@qeternity I'm one of the contributors of that beta version and yes i tested it 🙂

I've been following this issue for several months, and am surprised it hasn't been solved. Can anyone recommend alternatives to this library?

I am having this issue as well, would love to know an alternative


Feature/ethereum support

@RootSoft I've added a new provider with basic Ethereum methods. I had to reorganise the code a bit as the abstract provider doesn't fit Ethereum methods. This seems to be similar to what other implementations do. Feel free to change that or suggest a different approach.
I would also update the README once we confirm the final implementation.

Thanks for the Pull Request @3ph !
Tested it out using metamask and got Ropsten working as well.
There's indeed not a 1-on-1 mapping between the different providers.
I've made some changes at the providers side:

Removed WalletConnectProviders
Removed setCustomProvider, Algo & Eth instances in favor of specifying your own provider / new implementations.
Cleaned up the providers folder

Can you Allow edits from maintainers. so I can push the commit to your PR for review?
You can also check the branch here: https://github.com/RootSoft/walletconnect-dart-sdk/tree/ethereum
Please review it as well and let me know if there could be any improvements.

@3ph allow edits so we can get this going!! :)

Hey @RootSoft. Sorry I was away. "Allow edits from maintainers" is already enabled though.
I'll check out the branch tomorrow when I get a bit more organised.

@RootSoft Checked out your branch, looks good! Are you able to push the commit here or do you want to merge your branch?

@3ph I've merged my branch with yours.
Another discord user is also testing it out later this week.
If no additional comments are made, I will publish a new version at the end of this week.

Any example for signing transactions for Ethereum? I am not able to find can you share it here.


Consolidate cookie handling.

Move this logic into a function:
https://github.com/smartfile/django-session-jwt/blob/master/django_session_jwt/middleware/session.py#L104
This will make it easier to emulate this library in tests. For example by modifying session cookie used by Django's test Client.

Also, once this change is done, update the documentation about how to incorporate this into the test Client. Also, write a test that utilizes this method (current tests all POST to the login view).


added left:0 to node that tips get appended to

this fixes an issue where hidden tooltips were causing horizontal overflow and thus unneeded horizontal scrollbars when appended to body.
#135 could also be a solution where you specify the element to append to and add overflow stylings to ensure the scrollbar doesn't appear when not actually needed.

Apologies for the very late response.  Going to close this as #135 has been merged and this now contains conflicts.


Version tag on .ergo files

At some point it might be prudent for everyone to start putting a comment on top of Ergo files saying which version of Ergo they compiled their code with — since Ergo is changing, we might eventually have bugs caused by incompatibilities and the version comment would help sort that out.

Syntax proposal: ergo version "1.2.3"
Semantics proposal: if the version matches exactly then continue without saying anything. Otherwise, print a warning and then continue.

Cicero uses https://semver.org, we should align with that too if we can.

Please explain what to do?
Also please assign this issue to me .


Implementation Options for Network API Service

Implementation Options for Network API Service
A: Fully Vendor implemented
B: Partly Vendor implemented with SB implementations for popular open source entities such as OVS, VPP implemented by OPI rather than vendor.
C: Similar to B, but makes the vendor specific code a plugin into OPI Service. It can coexist with B.

@pathreya thank you for the contribution, any reason you decided to close this ? let me know if you need any help

Hi Boris
I got the commit message wrong. I’ve resubmitted the pull request after rectifying it.
Thanks
Prasad
From: Boris Glimcher @.>
Date: Friday, 29 July 2022 at 5:38 PM
To: opiproject/opi-api @.>
Cc: Narayana Prasad Raju Athreya @.>, Mention @.>
Subject: [EXT] Re: [opiproject/opi-api] Implementation Options for Network API Service (PR #62)
External Email

@pathreyahttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pathreya&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=JjvbTN8I-at8tSoQqEaIYrN1WZozW9HfVaZok0E4nephY6xDaYFNXdzuwjzNSFdo&s=N8AEHjBGVgEYJtIMMPaG94h_gGEvB5esMF1x3H-2QDU&e= thank you for the contribution, any reason you decided to close this ? let me know if you need any help
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199202148&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=JjvbTN8I-at8tSoQqEaIYrN1WZozW9HfVaZok0E4nephY6xDaYFNXdzuwjzNSFdo&s=4SXF23_xftSNfpMH0X6vxkDIHsdccOrDi8aC1DC1ftw&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2I7YE42T2XOQWL7Z47ORCLVWPCVFANCNFSM55AQE64A&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=JjvbTN8I-at8tSoQqEaIYrN1WZozW9HfVaZok0E4nephY6xDaYFNXdzuwjzNSFdo&s=xRal-etnqYfXyq_sbd40dIzCFcN4vqLnK_NwOB1DVXY&e=.
You are receiving this because you were mentioned.Message ID: @.***>

@pathreya sure
next time you don't have to create new pull request, you can just git commit --amend and then git push again

Hi Boris
Thanks for tip. I used the github fork + pull-request scheme. I was trying it for the first time and the user-fork repo ended up with the incorrect commit. So I rewrote history on the forked repo. I wasn’t sure of the connection between the pull request and changes to history on the user-fork. So I closed the pull request as a safer option.
Do you commit directly into opiproject to create pull requests? Otherwise I am not sure how I can amend commits which come from the forked tree.
Prasad
From: Boris Glimcher @.>
Date: Friday, 29 July 2022 at 5:58 PM
To: opiproject/opi-api @.>
Cc: Narayana Prasad Raju Athreya @.>, Mention @.>
Subject: [EXT] Re: [opiproject/opi-api] Implementation Options for Network API Service (PR #62)
External Email

@pathreyahttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pathreya&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=1R5Lr6pLurCc4C0__hQEWgHFtDd4xSdJGreirZ-a50I&e= sure
next time you don't have to create new pull request, you can just git commit --amend and then git push again
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199219354&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=tEE0xdzFRjOCUtnLla8aURbkbS6ZyzGZpX2DRJjRZdU&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2I7YEZTDPLQS6XAWY5KNNTVWPE5ZANCNFSM55AQE64A&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=R2vZGITJYtivUUcQnEPwFasFUbm0wq43moiQCzP_kpw&e=.
You are receiving this because you were mentioned.Message ID: @.***>

No, no one should ever commit directly to the opiproject repos.  In fact
you'd find you have no authority to do so.  Once you rewrite history for
your PR commit(s) only under your PR branch (via git commit --amend), you
need to force push it back to your fork:
git push -f
The PR will automatically update with the new version of the commit(s) you
amended, and add a note to the PR saying it was force pushed.
Thanks
On Fri, Jul 29, 2022 at 7:44 AM pathreya @.***> wrote:

Hi Boris
Thanks for tip. I used the github fork + pull-request scheme. I was trying
it for the first time and the user-fork repo ended up with the incorrect
commit. So I rewrote history on the forked repo. I wasn’t sure of the
connection between the pull request and changes to history on the
user-fork. So I closed the pull request as a safer option.
Do you commit directly into opiproject to create pull requests? Otherwise
I am not sure how I can amend commits which come from the forked tree.
Prasad
From: Boris Glimcher @.>
Date: Friday, 29 July 2022 at 5:58 PM
To: opiproject/opi-api @.>
Cc: Narayana Prasad Raju Athreya @.>, Mention @.>
Subject: [EXT] Re: [opiproject/opi-api] Implementation Options for Network
API Service (PR #62)
External Email

@pathreya<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pathreya&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=1R5Lr6pLurCc4C0__hQEWgHFtDd4xSdJGreirZ-a50I&e=>
sure
next time you don't have to create new pull request, you can just git
commit --amend and then git push again
—
Reply to this email directly, view it on GitHub<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199219354&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=tEE0xdzFRjOCUtnLla8aURbkbS6ZyzGZpX2DRJjRZdU&e=>,
or unsubscribe<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2I7YEZTDPLQS6XAWY5KNNTVWPE5ZANCNFSM55AQE64A&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=R2vZGITJYtivUUcQnEPwFasFUbm0wq43moiQCzP_kpw&e=

.
You are receiving this because you were mentioned.Message ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/opiproject/opi-api/pull/62#issuecomment-1199236132,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD3DVUGB3LZRRGCMC56CJSDVWPG3FANCNFSM55AQE64A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Got it.
Thanks
Prasad

From: Steven Royer @.>
Sent: 29 July 2022 20:22
To: opiproject/opi-api @.>
Cc: Narayana Prasad Raju Athreya @.>; Mention @.>
Subject: [EXT] Re: [opiproject/opi-api] Implementation Options for Network API Service (PR #62)
External Email

No, no one should ever commit directly to the opiproject repos. In fact
you'd find you have no authority to do so. Once you rewrite history for
your PR commit(s) only under your PR branch (via git commit --amend), you
need to force push it back to your fork:
git push -f
The PR will automatically update with the new version of the commit(s) you
amended, and add a note to the PR saying it was force pushed.
Thanks
On Fri, Jul 29, 2022 at 7:44 AM pathreya @.***> wrote:

Hi Boris
Thanks for tip. I used the github fork + pull-request scheme. I was trying
it for the first time and the user-fork repo ended up with the incorrect
commit. So I rewrote history on the forked repo. I wasn’t sure of the
connection between the pull request and changes to history on the
user-fork. So I closed the pull request as a safer option.
Do you commit directly into opiproject to create pull requests? Otherwise
I am not sure how I can amend commits which come from the forked tree.
Prasad
From: Boris Glimcher @.>
Date: Friday, 29 July 2022 at 5:58 PM
To: opiproject/opi-api @.>
Cc: Narayana Prasad Raju Athreya @.>, Mention @.>
Subject: [EXT] Re: [opiproject/opi-api] Implementation Options for Network
API Service (PR #62)
External Email

@pathreya<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pathreya&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=1R5Lr6pLurCc4C0__hQEWgHFtDd4xSdJGreirZ-a50I&e=>
sure
next time you don't have to create new pull request, you can just git
commit --amend and then git push again
—
Reply to this email directly, view it on GitHub<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199219354&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=tEE0xdzFRjOCUtnLla8aURbkbS6ZyzGZpX2DRJjRZdU&e=>,
or unsubscribe<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2I7YEZTDPLQS6XAWY5KNNTVWPE5ZANCNFSM55AQE64A&d=DwMCaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=NBRPFy-_22_EAZP8MDClegZ0ne3wkm_Sak_WlgEjM7hZL6GBYU9Gy7MFBQfibir-&s=R2vZGITJYtivUUcQnEPwFasFUbm0wq43moiQCzP_kpw&e=

.
You are receiving this because you were mentioned.Message ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/opiproject/opi-api/pull/62#issuecomment-1199236132https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199236132-253E&d=DwQFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=YCCTPxaQswLcKYcB6e9qyzGzYcp3H5q-PzRRbI_P-TIbHbzps7ClkzjtobQq_AXe&s=DY0WOTuC91hKzd086AwbagTlWGOjQOgmikU6ZcY6xzw&e=,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD3DVUGB3LZRRGCMC56CJSDVWPG3FANCNFSM55AQE64Ahttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AD3DVUGB3LZRRGCMC56CJSDVWPG3FANCNFSM55AQE64A-253E&d=DwQFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=YCCTPxaQswLcKYcB6e9qyzGzYcp3H5q-PzRRbI_P-TIbHbzps7ClkzjtobQq_AXe&s=-hqhTNPnp55vpBcfPelGW1A2GQZG0VM7ajWHIoYyuBQ&e=
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_opiproject_opi-2Dapi_pull_62-23issuecomment-2D1199450569&d=DwMFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=YCCTPxaQswLcKYcB6e9qyzGzYcp3H5q-PzRRbI_P-TIbHbzps7ClkzjtobQq_AXe&s=XI1-vM41cwaXHh2ZBw1vwAzmcW1gPtQo92AYI7SuOIQ&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_A2I7YEYI6PMJS262HOMKIETVWPVZTANCNFSM55AQE64A&d=DwMFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=RCw0B_bXeBHj8OOlpjUu9zpmdF7sQ401oo770tafM-g&m=YCCTPxaQswLcKYcB6e9qyzGzYcp3H5q-PzRRbI_P-TIbHbzps7ClkzjtobQq_AXe&s=vpCztxek45M99Neh5WoHSYA2RV0jNYjK0pAqxlhvo5g&e=.
You are receiving this because you were mentioned.Message ID: @.***>


Issue with screeshot

Android 12
Maybe related to permissions or some kind of FS inotify or inter-apps communications bus.
Maybe this is not an issue with Arity 1.29 as I didn't use the feature before : once captured a 2D function picture, the capture won't show in the gallery (Pictures/Screenshot) (latest Aves from D-Droid or native G-photo). Although, it shows in file explorer (Simple File Manager).
Once rebooted, the screenshot shows everywhere expected.
This is not a huge issue, as we can immediately find the capture in file explorer.

Not sure if I understand correctly. For me it works well. The screenshot is saved in Pictures/screenshots.
After taking the screenshot simply open the gallery app and the image should be there.
I removed the feature that the gallery is opened automatically. Maybe that is what you mean.

No Wol, I didn't even know the gallery opened automatically. Maybe this is only an issue in my own phone. Don't worry. Let's close and wait anybody reporting the same.
Although, what's strange is when I take a picture with the camera I don't need to reboot for it to show in the gallery. But it is not the same directory (DCIM vs Pictures/Screenshots). As I said this may be a permission setting or issue only in my phone. But something I can't figure is when I reboot then the captures done before reboot show in gallery, not the post-reboot ones ????
Don't worry and feel free to close.

If the explorer finds it immediately but your gallery app does not then that is an issue of your gallery app. Maybe try a different gallery app.
The old version did not store in Pictures/screenshots it stored directly on /screenshots
But due to Google storage access framework bullshit this is no longer possible. Therefore I moved it to Pictures folders

Have you tried the new higher resolution options (in settings) for 3d graphs?
The impressing 3d graphing capability led me to the decision that this app earns an extended life :-)

Wahoo, nicer than this isn't it?


Main page is inaccessible

Cannot access:
http://stevedonovan.github.com/Penlight/

Must be my end then. Thanks for your time!


Minor Issues on all Widgets

After we pushed a few stuff something which shouldn`t be changed got changed:
<---- left picture is how it was___________________right picture how it is now ----->

This is the chart widget, but the transfer widget has also the same problems.
<---- left picture is how it was___________________right picture how it is now ----->

literally every widget got changed. I think the last update with the new warning message changed a few things.

It changed everything because you want a lot of information in small height window. Go check your mockup .

@pimato  What are we doing with this one?

After adding the new Create DAI Button there are still some flaws in the UI implementation:

The Button should have the same padding-right and padding-top as in the CHART widget.

fixed with commit: 0272c11fd53792b09d74150fb6cdff72b58273d9 and 57e807dae5b243b36edb8398252969464bcf4954


Link triggering a popover has its title attribute removed

I understand that a generated Bootstrap tooltip should have its title attribute removed because it substitutes to it.
However, regarding popovers which purpose can be much more different, IMHO, there's no point removing the title attribute which brings meaning/explanation to the trigger.
At least, an option should be available.
But perhaps am I missing something?

@patrickhlauke Any thoughts on this?

isn't title also displayed at the top of the popover, as popover title? that wouldn't really make it useful for adding meaning/explanation, i think. @davidloubere got an example in mind?
also, purely from a UX point of view, if title was left intact (either all the time, or cancelled out when popover is displayed and then reinstated when it's closed), you'd get some strange double functionality of native tooltip showing the title when hovering over the trigger with the mouse (or setting kbd focus on it in Edge), and then having the same text appear as part of the bootstrap popover when opened (and potentially still showing the native one, if you didn't cancel it while popover is open).

It is indeed. Nonetheless, regarding popovers that embeds interactive/dynamic content (such as links, forms etc.), my point is that when a popover has not yet been displayed, you can't always presume/infer what will happen when the trigger is clicked.
See my example attached (as seen on http://producthunt.com).

At least looking at the bootstrap documentation (http://getbootstrap.com/javascript/#popovers and http://v4-alpha.getbootstrap.com/components/popovers/), I don't think that's an intended use of popovers.
In fact, this kind of use would likely cause other issues at the moment, such as focus/tab order ones, since the popover is added at the end of the HTML document itself, and focus is not programmatically moved to the popover/retained inside it/returned to the triggering element once closed.

Agree but I don't see much difference with tooltips TBH and I thought popovers were intended to achieve more complex tasks. Whatever.
Still, it would be great if the option to enable or not displaying the ttile argument was available. :)
Thx for your time.

trigger: 'click' popovers should not remove title from the link. Also, I'd like to have a possibility to keep title on the link and not set title of the popover, e.g. with title: '' option.

Closing as stale. @twbs/js-review please reopen if you want to revisit this.


Tutorials and Doc

Here I updated all the tutorials adding some extras lines. I also restructured the documentation

Is it correct that PR wants to merge on master branch?


Problem with scroll when resizing event

Check that this is really a bug

[x] I confirm

Reproduction link
https://jquense.github.io/react-big-calendar/examples/index.html?path=/docs/addons-drag-and-drop--example-2
Bug description
As we can see in example we have problem with scroll, there are some "lags" and "shifting"/"jumps" (hard to explain) when we want to resize event to top or bottom. And due to this fact, we cannot smoothly with good experience resize an event.
Expected Behavior
No response
Actual Behavior
No response
react-big-calendar version
1.8.1
React version
18
Platform/Target and Browser Versions
Google Chrome
Validations

[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a react-big-calendar issue and not an implementation issue

Would you like to open a PR for this bug?

[X] I'm willing to open a PR

hey @cutterbl I have made some git bisecting to investigate this issue, here is what I find out:
last working version for this problem was v1.6.4
commit that introduced this issue was d1c5085b004bb3c606a682b488a92585e50b12b4 #2230
issue only happens when event is larger than calendar height (or user tries to resize event to make it bigger than calendar height)
I'm not familiar wit codebase but problem is in updateParentScroll function because it sets top edge of event to top of calendar view-port
There is also a duplicate issue filed for this bug #2437
hope this info will help to fix this problem

@cutterbl @AmitRDesai #2230 really should have been behind the enableAutoScroll flag. The resulting implementation is somewhat un-intuitive, seeing as the scroll to top is very sensitive. Most controls increase scroll to top/bottom speed as you drag closer to the edge, whereas the scroll speed here is static (unsure there is a way to realistically/correctly implement this in pure JS).
I'm having a bit of trouble threading the enableAutoScroll prop through from the Calendar component to this one, but it would be much appreciated if there was a way to disable this behavior. As it's currently implemented, the sensitivity/jumpiness means that the predictability is preferred over having the auto-scroll behavior zoom your even to the top (or worse, quickly adjusting the event's size during the scroll to the top).
For now, I'm relying on yarn patch to comment out the previous behavior.


Re: error on forgot-password route

Link to reproduction
No response
Environment Info
Payload: beta.108
Node.js: 22.8.0
Next.js: 15.0.0-canary.160

Describe the Bug
This is related to my previous reported issue, #8155.
It was fixed in the latest release - v3.0.0-beta.108 with #8244.
This now works when the user is logged out, but there's the edge case for when the user is logged in, it shows this error:

The log from the terminal:

Other routes such as create-first-user are correctly redirecting to the main admin dashboard if the user is logged in.
Reproduction Steps

Install a new instance of the blank template using npx create-payload-app@beta test
Select the blank template
Run it and create a user
While logged in, go to /admin/forgot

No customizations or changes to the config have been made. Run the template as-is.
Adapters and Plugins
No response

I believe the error is originating from here.
I'm investigating, definitely a RSC issue, will hopefully write up a PR with a fix for this later today. Hang tight!

Fixed in https://github.com/payloadcms/payload/pull/8374


"too small" error (mutagen.id3._util.ID3NoHeaderError: ./x.mp3: too small)

Hi,
using this commend:
spotdl https://open.spotify.com/track/4t7d7uBcYbCdyqhG3KLJl0?si=2AI9AmKkS56NWoZZb755aA
I get the following error:
Fetching Song...
 87%|█████████████████████████████████████████████████████████████▊         |ETA: 00:10, 1.31min/songTraceback (most recent call last):
  File "/home/filip/.local/bin/spotdl", line 11, in <module>
    sys.exit(console_entry_point())
  File "/home/filip/.local/lib/python3.6/site-packages/spotdl/__main__.py", line 100, in console_entry_point
    downloader.download_single_song(song)
  File "/home/filip/.local/lib/python3.6/site-packages/spotdl/download/downloader.py", line 274, in download_single_song
    download_song(songObj, self.displayManager, self.downloadTracker)
  File "/home/filip/.local/lib/python3.6/site-packages/spotdl/download/downloader.py", line 170, in download_song
    audioFile = EasyID3(convertedFilePath)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/easyid3.py", line 169, in __init__
    self.load(filename)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/_util.py", line 185, in wrapper
    return func(*args, **kwargs)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/_util.py", line 156, in wrapper
    return func(self, h, *args, **kwargs)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/id3/_file.py", line 152, in load
    self._header = ID3Header(fileobj)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/_util.py", line 185, in wrapper
    return func(*args, **kwargs)
  File "/home/filip/.local/lib/python3.6/site-packages/mutagen/id3/_tags.py", line 59, in __init__
    raise ID3NoHeaderError("%s: too small" % fn)
mutagen.id3._util.ID3NoHeaderError: ./Corine - Pourquoi pourquoi - Lazare Hoche Remix.mp3: too small

Can anyone help me?

I have also been getting this error, it is an issue with mutagen. In quodlibet/mutagen#502 lazka states:

There is no check that the call to ffmpeg actually worked: https://github.com/spotDL/spotify-downloader/blob/5441b0cdb0e89d9d003e6f68240fa5e45f627144/spotdl/download/downloader.py#L154
So likely ffmpeg failed.

Downloading the latest release build of FFmpeg fixed this for me.


Wav2Vec ImportError: Please build Cython components with: pip install --editable . or python setup.py build_ext --inplace

🐛 Bug
Hi, thanks for your nice work! When I pretrain wav2vec model by using aishell1 dataset, an import error occurred and the error information is the following
2020-05-08 14:44:42 | INFO | fairseq_cli.train | model wav2vec, criterion BinaryCrossEntropyCriterion
2020-05-08 14:44:42 | INFO | fairseq_cli.train | num. model params: 511808 (num. trained: 511808)
2020-05-08 14:44:42 | INFO | fairseq_cli.train | training on 4 GPUs
2020-05-08 14:44:42 | INFO | fairseq_cli.train | max tokens per GPU = 1500000 and max sentences per GPU = None
2020-05-08 14:44:42 | INFO | fairseq.trainer | no existing checkpoint found /root/zengchang/models/checkpoint_last.pt
2020-05-08 14:44:42 | INFO | fairseq.trainer | loading train data for epoch 1
Traceback (most recent call last):
  File "train.py", line 11, in <module>
    cli_main()
  File "/root/zengchang/fairseq/fairseq_cli/train.py", line 355, in cli_main
    nprocs=args.distributed_world_size,
  File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 171, in spawn
    while not spawn_context.join():
  File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 118, in join
    raise Exception(msg)
Exception:

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/root/zengchang/fairseq/fairseq/data/data_utils.py", line 220, in batch_by_size
    from fairseq.data.data_utils_fast import batch_by_size_fast
ModuleNotFoundError: No module named 'fairseq.data.data_utils_fast'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/torch/multiprocessing/spawn.py", line 19, in _wrap
    fn(i, *args)
  File "/root/zengchang/fairseq/fairseq_cli/train.py", line 324, in distributed_main
    main(args, init_distributed=True)
  File "/root/zengchang/fairseq/fairseq_cli/train.py", line 104, in main
    extra_state, epoch_itr = checkpoint_utils.load_checkpoint(args, trainer)
  File "/root/zengchang/fairseq/fairseq/checkpoint_utils.py", line 157, in load_checkpoint
    epoch=1, load_dataset=True, **passthrough_args
  File "/root/zengchang/fairseq/fairseq/trainer.py", line 296, in get_train_iterator
    epoch=epoch
  File "/root/zengchang/fairseq/fairseq/tasks/fairseq_task.py", line 181, in get_batch_iterator
    required_batch_size_multiple=required_batch_size_multiple,
  File "/root/zengchang/fairseq/fairseq/data/data_utils.py", line 223, in batch_by_size
    'Please build Cython components with: `pip install --editable .` '
ImportError: Please build Cython components with: `pip install --editable .` or `python setup.py build_ext --inplace`

To Reproduce
The command I ran is the following
python train.py /disk1/speech/aishell1 --save-dir /root/zengchang/models/ --num-workers 6 --fp16 --max-update 400000 --save-interval 10 --no-epoch-checkpoints --arch wav2vec --task audio_pretraining --lr 1e-06 --min-lr 1e-09 --optimizer adam --max-lr 0.005 --lr-scheduler cosine --conv-feature-layers '[(64, 10, 5), (64, 8, 4), (64, 4, 2), (64, 4, 2), (64, 4, 2), (64, 1, 1), (64, 1, 1)]' --conv-aggregator-layers '[(64, 2, 1), (64, 3, 1), (64, 4, 1), (64, 5, 1), (64, 6, 1), (64, 7, 1), (64, 8, 1), (64, 9, 1), (64, 10, 1), (64, 11, 1), (64, 12, 1), (64, 13, 1)]' --skip-connections-agg --residual-scale 0.5 --log-compression --warmup-updates 500 --warmup-init-lr 1e-07 --criterion binary_cross_entropy --num-negatives 10 --max-sample-size 150000 --max-tokens 1500000 --skip-invalid-size-inputs-valid-test

Environment

fairseq Version 0.9.0 from Pypi
PyTorch Version 1.4.0
OS (e.g., Linux): CentOS 7.6
How you installed fairseq (pip, source): pip
Build command you used (if compiling from source):
Python version: 3.7.6
CUDA/cuDNN version: 10.0

Additional context
Do you have any idea about this error.
I also tried to install fairseq from source, but there is error like the following
(zeng) [root@iZbp12wrkn96xlow3hmb2wZ fairseq]# pip install --editable .
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
Obtaining file:///root/zengchang/tools/fairseq
  Installing build dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /root/anaconda3/envs/zeng/bin/python3.7 /root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-gw98n38u/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com -- setuptools wheel cython
       cwd: None
  Complete output (44 lines):
  Traceback (most recent call last):
    File "/root/anaconda3/envs/zeng/lib/python3.7/runpy.py", line 193, in _run_module_as_main
      "__main__", mod_spec)
    File "/root/anaconda3/envs/zeng/lib/python3.7/runpy.py", line 85, in _run_code
      exec(code, run_globals)
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/__main__.py", line 26, in <module>
      sys.exit(_main())
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
      command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 104, in create_command
      module = importlib.import_module(module_path)
    File "/root/anaconda3/envs/zeng/lib/python3.7/importlib/__init__.py", line 127, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
    File "<frozen importlib._bootstrap>", line 983, in _find_and_load
    File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 728, in exec_module
    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
      from pip._internal.cli.req_command import RequirementCommand, with_cleanup
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 16, in <module>
      from pip._internal.index.package_finder import PackageFinder
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", line 21, in <module>
      from pip._internal.index.collector import parse_links
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_internal/index/collector.py", line 14, in <module>
      from pip._vendor import html5lib, requests
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_vendor/requests/__init__.py", line 114, in <module>
      from . import utils
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_vendor/requests/utils.py", line 25, in <module>
      from . import certs
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_vendor/requests/certs.py", line 15, in <module>
      from pip._vendor.certifi import where
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_vendor/certifi/__init__.py", line 1, in <module>
      from .core import contents, where
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip/_vendor/certifi/core.py", line 12, in <module>
      from importlib.resources import read_text
    File "/root/anaconda3/envs/zeng/lib/python3.7/importlib/resources.py", line 11, in <module>
      from typing import Iterable, Iterator, Optional, Set, Union   # noqa: F401
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/typing.py", line 1357, in <module>
      class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
    File "/root/anaconda3/envs/zeng/lib/python3.7/site-packages/typing.py", line 1005, in __new__
      self._abc_registry = extra._abc_registry
  AttributeError: type object 'Callable' has no attribute '_abc_registry'
  ----------------------------------------
ERROR: Command errored out with exit status 1: /root/anaconda3/envs/zeng/bin/python3.7 /root/anaconda3/envs/zeng/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-gw98n38u/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com -- setuptools wheel cython Check the logs for full command output.

Updated:
I uninstalled cython and downloaded cython source code from pypi, then used the command pip install --editable . to install cython on the server. After that, I used pip install --editable . command to install fairseq from source code and it successed. However, when I running the training command, the error still exists.

Hi, I'm facing the same issue.  What was the resolution to this?

Hi, I'm facing the same issue. What was the resolution to this?

Assuming cython source code directory is /path/to/cython/directory, fairseq source code directory is /path/to/fairseq/directory.
Run the following commands step by step.
mv /path/to/cython/directory /path/to/fairseq/directory
cd /path/to/fairseq/directory/cython
pip install --editable .
cd /path/to/fairseq/directory
pip install --editable .

This way can solve my problem. Good luck!

It didn't work for me

It didn't work for me (fairseq-1.0.0a0+1bba712)
Update:
I fixed it by uninstalling numpy and reinstalling fairseq. It seems that there is an incompatibility between versions
@salvacarrion
What version did you install. Could you share some more details?

Hi, I'm facing the same issue. What was the resolution to this?

Assuming cython source code directory is /path/to/cython/directory, fairseq source code directory is /path/to/fairseq/directory.
Run the following commands step by step.
mv /path/to/cython/directory /path/to/fairseq/directory
cd /path/to/fairseq/directory/cython
pip install --editable .
cd /path/to/fairseq/directory
pip install --editable .

This way can solve my problem. Good luck!

Hi, thanks for your solution. While I run pip install --editable . in /path/to/fairseq/directory/cython, an error occurs:
ERROR: Command errored out with exit status 1: /home/hadoop-aipnlp/cephfs/data/anaconda3/envs/fairseq/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/hadoop-aipnlp/cephfs/data/zhaolulu/Cython-0.25.2/setup.py'"'"'; __file__='"'"'/home/hadoop-aipnlp/cephfs/data/zhaolulu/Cython-0.25.2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.

Or you could run python setup.py build_ext --inplace from the root fairseq directory to build the Cython components. This worked for me as I faced similar issue.

I uninstall numpy and install v1.23.0. Then the problem is resolved
pip uninstall numpy
pip install numpy==1.23.0

Thank you! It work for me!