Overload mismatch when type of an argument has a contravariant type-var

Environment data

Language Server version: v2021.11.3-pre.1
OS and version: Windows 7 x64
Python version (& distribution if applicable, e.g. Anaconda): 3.8.12 Anaconda

Sample
from __future__ import annotations

from typing import Generic, TypeVar, overload

_T = TypeVar("_T")
_T_contra = TypeVar("_T_contra", contravariant=True)

class C(Generic[_T_contra]):
    ...

@overload
def f(x: C[_T], /) -> _T:
    ...

@overload
def f(x: C[_T], /) -> _T:
    ...

def f(x: C[_T], /) -> _T:
    ...

Expected behavior
No errors / warnings.
Actual behaviour

A more practial example would be
from __future__ import annotations

from collections.abc import Iterable
from typing import Callable, TypeVar, overload

_T0 = TypeVar("_T0")
_T1 = TypeVar("_T1")

@overload
def my_map(func: Callable[[_T0], _T1], iterable: Iterable[_T0], /) -> _T1:
    ...

@overload
def my_map(func: Callable[[_T0], _T1], iterable: Iterable[_T0], /) -> _T1:
    ...

def my_map(func: Callable[[_T0], _T1], iterable: Iterable[_T0], /) -> _T1:
    ...

I think this caused by the same as the bug described in this issue: https://github.com/microsoft/pyright/issues/2568.

I'd suggest that Pylance/Pyright treat the original sample as invalid, because there is no way to properly implement the function f.
And as a result of current behavior, with additional code like
class Ancestor: ...
class Parent(Ancestor): ...
class Child(Parent): ...

x: C[Parent] = globals()[""]
y = f(x)  # Inferred as `Parent`.
y0: Parent = f(x)  # Valid.
y1: Ancestor = f(x)  # Valid.
y2: Child = f(x)  # Still valid?

, assignments for y0, y1 and y2 are all considered valid, which is a supprise.
I think the key point is, in a function signature, a contravariant type-var must be properly restricted into an invariant type-var, just as the second sample shows.

I think this caused by the same as the bug described in this issue: microsoft/pyright#2568.

As a side note, I don't think it is wrong to emit a warning for the code there, because Iterable[T] | T is indeed ambiguous. So is the case in my original sample.

@eriictraut I found that microsoft/pyright#2568 has been closed, and see your reply there. But I think the problem I've faced is a bit different.
Here is my real code:
from __future__ import annotations

from collections.abc import Iterable
from typing import Any, Callable, TypeVar, overload

_UNSPECIFIED: Any = object()

_T0 = TypeVar("_T0")
_T1 = TypeVar("_T1")
_T2 = TypeVar("_T2")

@overload
def try_map(func: Callable[[_T0], _T1], iterable: Iterable[_T0], /) -> Iterable[_T1]:
    ...

@overload
def try_map(
    func: Callable[[_T0], _T1], iterable: Iterable[_T0], /, default_value: _T2
) -> Iterable[_T1 | _T2]:
    ...

def try_map(
    func: Callable[[_T0], _T1],
    iterable: Iterable[_T0],
    /,
    default_value: _T2 = _UNSPECIFIED,
) -> Iterable[_T1 | _T2]:
    """
    A function which is similar to the built-in `map` function, except
    for that the first argument may fail.

    When the mapping function fails on an input value, a default value
    will take place of the output value if it is provided, otherwise this
    input value is just ignored.
    """

    # Implementation here.
    ...

As you can see from the error messages, the implementation is considered not consistent with either overload.
To make things clear, I tried to replace Callable with a custom version, and the code would become:
from __future__ import annotations

from collections.abc import Iterable
from typing import Any, Generic, TypeVar, overload

_Input = TypeVar("_Input", contravariant=True)
_Output = TypeVar("_Output", covariant=True)

class Callable(Generic[_Input, _Output]):
    ...

_UNSPECIFIED: Any = object()

_T0 = TypeVar("_T0")
_T1 = TypeVar("_T1")
_T2 = TypeVar("_T2")

@overload
def try_map(func: Callable[_T0, _T1], iterable: Iterable[_T0], /) -> Iterable[_T1]:
    ...

@overload
def try_map(
    func: Callable[_T0, _T1], iterable: Iterable[_T0], /, default_value: _T2
) -> Iterable[_T1 | _T2]:
    ...

def try_map(
    func: Callable[_T0, _T1],
    iterable: Iterable[_T0],
    /,
    default_value: _T2 = _UNSPECIFIED,
) -> Iterable[_T1 | _T2]:
    """
    A function which is similar to the built-in `map` function, except
    for that the first argument may fail.

    When the mapping function fails on an input value, a default value
    will take place of the output value if it is provided, otherwise this
    input value is just ignored.
    """

    # Implementation here.
    ...

And error messages remain almost the same.
Then  I removed the contravariant part from _Input, and the errors were gone.
Sothe problem is with the contra-variance, right? But a type variable used in a function signature is always invariant itself, therefore I don't think a signature mismatch should exist here.
And what's more, _T0 serves as both the input type of Callable, which should be contra-variant, and the element type of Iterable, which should be co-variant, so it should really be invariant.

This is a separate issue. I agree this one is a bug. It will be addressed in the next release.

This issue has been fixed in version 2022.1.0, which we've just released. You can find the changelog here:  CHANGELOG.md


Vectorizing GaussInt

I tested for equivalence on some molecules locally, but you may wish to add a unit test to check against the original version.

Just ran a bunch of local tests. Seems fine to me, will merge this now and add a unit test along with unit tests for a few other functions soon (just realised that I didn't set up this repo for automated unit testing yet, will do in the next days).
Thanks for contributing to ESPsim!


fix(amplify-frontend-ios): update xcode project on pull

Description of changes
This PR introduces the necessary change to execute the amplify-app and update the Xcode project files when amplify pull --sandboxId <id> is executed.
Issue #, if available
https://github.com/aws-amplify/amplify-ios/issues/1132
Description of how you validated changes
Checklist

[x] PR description included
[x] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #7152 (6db2c0b) into master (b35d031) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #7152   +/-   ##
=======================================
  Coverage   51.53%   51.53%
=======================================
  Files         486      486
  Lines       25053    25053
  Branches     4915     4915
=======================================
  Hits        12912    12912
  Misses      11189    11189
  Partials      952      952

Continue to review full report at Codecov.

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


Fail to compile on Mono due to System.Collections.Concurrent

Hi,
I manage to compile the source code of the ProtoBuf generator on Mono on Mac OS but after I build the message source code I get a compilation error due to this line:
using System.Collections.Concurrent
Is it possible to add switch to not use this feature because AFAIK .NET 4 is not available on Mono at this point.

I'll see if we can get a conditional flag there.
Otherwise you can pretty safely remove that part of the code since you're not going to use it. The "generated" protocolparser.cs is always the same for any given version of this project, that is, not dependent on the proto specs you pass into the generator.
Although i do believe mono has supported .NET 4/c#4.5 for some time now. I've compiled it on Linux using mono(that is also where i develop it).
My guess is that there is at least a newer version included with Xamarin Studio.
Let me know if that fixes it or if I should get on the conditional flag solution.

Hi,
I've currently workaround this by doing what you suggested and removing the using statement as well as the experimental new class.
I'm know the .NET inside out but on the mono side I'm still pretty newbe, I've yet to understand why the Mono team decide on such different version numbers. Also I'm developing in Mono for Unity 4 and the Unity team is using very old Mono version so I'm afraid I'm stuck in this situation even if .NET 4 support exist for Mono.
I guess my need is an edge case, I'll understand if this not worth the effort.
Thank you,
Ido.

Do you know if Unity by default add any flag that I could use to exclude the code?
For example
#if !UNITY
using System.Collections.Concurrent;
#endif

Unity does add flags but I'm writing a plugin to Unity so it's not a Unity project by itself.
What do you think about opt-in the experimental class instead of opt-out of it?

I have same feature request for unity project.

I hope this is OK.
I rather make the newer .NET versions/features the default so the flag must be added for targeting older versions of the framework.

Sometimes it is hard to compile on mac and linux, it will be very useful if you can provide a release file like https://github.com/hultqvist/ProtoBuf/releases/download/2014-08-23/ProtoBuf-2014-08-23-bin.zip

@guileen I'll do that tonight when I'm back at my Linux machine :)
If possible I suggest using http://www.mono-project.com/download/#download-lin rather than what is supplied by the distro which can be quite old.

@guileen done, precompiled release is now at
https://github.com/hultqvist/ProtoBuf/releases/tag/2015-04-08


Add Sidebery integration

I'm curious to know your reasoning for adding TCR integration instead of the much more popular and feature rich Sidebery or even Tree Style Tabs?

I gotta be honest – I don't really care much about vertical tabs myself. The TCR integration exists because at some point a friend sent me some half-baked code from their setup for it, and I've just polished that for the v3-rework of Cascade.
If someone would want to make a working integration for Sidebery or/and TST I wouldn't mind putting it up, but it's also a lot of work I can't really justify for myself as of rn.

I am planning to update this Sidebery setup.
Would you then be interested in integrating it into Cascade?

Oh, yeah! That would be lovely actually. Feel free to reach out and share that once done and then we can make it into a full integration on the repo here. c:

I've decided to switch to TST, after updating most of the Sidebery setup I have come across multiple (small) bugs that were annoying my ocd brain.
TST has way less bugs (still a few kinks to figure out) and has a bigger community around it and I'm making quick progress in making a setup similar to the one above.
Would you still be interested in integration?

Yeah sure! I don't mind either way, and it's not going to be possible to please everyone anyway. So either implementation is fine in my book. ^—^

Ok so here is what I have so far:
userChrome.css
TST settings
Here are all the issues I'm not sure how to fix:

Only the first pinned tab is visible when the side bar is collapsed any others are hidden
-
-

If an unpinned tabs is playing audio/muted the icon is only visible when sidebar is expanded, not an issue for pinned tabs (not sure if this is meant to be a feature)
-
-

There is a weird overlapping effect with pinned tabs when switching to the new tab page, this only happens when switching from any other page to the new tab page only.
-

The right click menu on tabs doesn't match themes or css customisations, but I've opened an issue in the TST repo for this
- piroor/treestyletab/issues/3322

Also how do you expand the url bar to fill the space when horizontal tabs are disabled?

Other than that, animations are silky smooth and everything else works as expected!

Hmm, these are indeed some issues that would need to be ironed out. But apart from that it really does look nice!
Could you maybe raise a (drafted) PR for the changes? That way I could take a look and contribute with potential fixes straight to your fork.

Also how do you expand the url bar to fill the space when horizontal tabs are disabled?

I just set it to the full width, and completely hide the Tab Bar.
#TabsToolbar { display: none !important; }
#nav-bar { width: 100vw !important; }

Just to clarify, can you reproduce all the issues I mentioned?

I can, yeah.
I also now have issues with the sidebar not collapsing properly at all after I have restarted Firefox.

Weird, I just restarted Firefox multiple times and have not seen any additional issues

I'm on version 112.0.1, you?

It's getting weirder and weirder. I just updated to 112.0.1 whcich broke it.
The CSS for TST also is put in place, but it doesn't load for me rn.

I guess I'll go on a little bit of a debugging hunt! :D

Okay.. resetting everything and then slowly adding stuff back step by step at least gets me this far. Not quite what you have, but it's a lot better than what I had in the screenshot above.

A couple questions:

Are you on Windows
Are you still getting the issues I mentioned earlier
Could you share you're new css files

I'm not, no. Currently I'm on a Mac, but I can give the whole thing a shot at home on a Windows PC later today. But since the Sidebar doesn't collapse at all for me rn I can't reproduce the issues mentioned above. Juding by the behaviour I get I would assume that they still persist tho.
This is how things are with just the default Cascade Stuff, and the TST CSS added on top.
https://user-images.githubusercontent.com/35840154/233070187-a9bce523-0a80-4fe1-a4f8-152a5934d6c8.mov

The stuff from this file is in my userChrome.css file, and these are in the TST-Addon settings; right? It seems to look like that's the way is should be, both from your description and the code itself.

Only the first pinned tab is visible when the side bar is collapsed any others are hidden

For fixing this I'd opt to prompt the users to just disable the faviconisation for pinned tabs in the addon settings. That results in them just being treated like normal tabs displaywise.

Before:

After:

I like you're solution as it also stops the weird overlapping effect, but then there is no way to discern if a tab is pinned or not, could there be a way to keep pinned tabs distinct maybe using a separator?
Also I found a related bug to the overlapping effect, if you have bookmarks toolbar enabled, as well as pinned tabs, switching to the ntp causes them to overlap.
https://user-images.githubusercontent.com/78969986/233093983-33d8c39a-744e-4193-b930-8daa3713e192.mp4
In the clip I switched from the tst tab to a new tab.

Hmm.. I still cant reproduce the weird clipping behaviour at all. It might be something that happens only because of the windows config? I'll check on that later.
Regarding the pinned tabs – I'm struggeling a little to select the last pinned tab, as it won't work with :last-of-type or :nth-last-child etc. But we can always just take the first non-pinned tab via .tab.pinned + :not(.tab.pinned) and give it a border on top or something similar.

Proposal tox fix the centering:
.tab,
.tab.pinned {
-  height: 2.8em;
+  padding: .6rem 0;
}

It looks fine to me.

/*** Hide fake context menu, when right clicking empty area***/
ul[id="tabContextMenu"] {
  display: none;
}

This part of the CSS seems to have some unintended side effects that break the usability of the integration, as it still opens the context menu – it's just not visible. Resulting in a non-hovered yet hovered state.
https://user-images.githubusercontent.com/35840154/233112215-7e28e5b7-f0b0-451a-b501-2342c0e0a11a.mov

Ok we should remove that line then, I will also mention it in the issue I opened in the tst repo.

Another thing I've found is that if the cursor is right between two pinned tabs it does not count as hovered for the #tabbar as well. :/
https://user-images.githubusercontent.com/35840154/233141924-eb1786d6-46fb-47b9-aec7-e4873b372749.mov

I think that's happening because of this:
.tab,
.tab.pinned {
  padding: .6rem 0;
}

Without it I can't hover between tabs.

This fork of FlyingFox has the sound icon visible with autohide:

It also has buttery smooth animations, could we just copy these things over?

Oh! They are using the right-aligned setting for TST. That is such a smart move actually! We def. can build on that idea, yeah. And since FlyingFox also is MIT licensed, so we can take part of the code and work it into Cascade – ofc giving credits when we do so. c:

What's this bar on the right called? I'm trying to get rid of it however with no avail yet.
First i thought this was some sort of a sidebar however I came to the realization that it must be something else.

It is gone when the hover animation is triggered.

What's this bar on the right called? I'm trying to get rid of it with no avail yet.
First i thought this was some sort of a sidebar however I came to the realization that it must be something else.
It is gone when the hover animation is triggered.

I found out the answer! Its a splitter. After adding the code below to userChrome.css the issue is gone.
/* Hide splitter, when using Tree Style Tab. */
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] + #sidebar-splitter {
    display: none !important;
}

Is this still planed as an Integration? :monocle_face: I'd love to try out TST with cascade

Unfortunately I've been super busy with exams. I've also switched to this theme.
@andreasgrafen I've unassigined myself from this issue, but I'll keep it open if anyone else is interested in coming up with a solution.

I just happened to make a relatively aesthetic setup with sidebery and just wanted to share it.
Sideberry conf:
sidebery-data-2024.01.30-08.31.36.json
userChrome.css snippet:
#TabsToolbar { display: none !important; }
#nav-bar { width: 100vw !important; }

#browser { position: relative; }
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar-header { display: none; }

#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden]) {

  display: block;

  position: absolute;
  top: 0; bottom: 0;
  z-index: 1;

  min-width: 30px !important; max-width: 30px !important;

  border-right: none;

  transition: all 0.2s ease;

  overflow: hidden;

}

[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar,
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:hover {
  min-width: 10vw !important;
  width: 30vw !important;
  max-width: 250px !important;
}

[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar {
  height: 100%;
  max-height: 100%;
}

#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden]) ~ #appcontent {
  margin-left: 30px;
}
#main-window[inFullscreen][inDOMFullscreen] #appcontent {
  margin-left: 0;
}
/* Removes gap between active tab highlight and edge of bar */
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar-header,
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] ~ #sidebar-splitter {
    display: none;
}

Thank you for Cascade! I hope this helps!

I just stole most of the logic from the tcr integration and I am a CSS-noob, so take this solution with a grain of salt.


Sort failing due to serialization error

When I apply a sort, the response is throwing an error when trying to convert the hits back to concrete types.
After looking into the code, it appears that the _score is null when a sort is applied.  However, it fails to convert and throws an error.  If I set TrackScores to true, it works correctly (_score comes back as 0 in this case).  This happens on line 125 in https://github.com/elastic/elasticsearch-net/blob/master/src/Nest/CommonAbstractions/SerializationBehavior/StatefulDeserialization/ConcreteTypeConverter.cs
Here is the exception:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException was unhandled by user code
HResult=-2146233088
Message=Cannot implicitly convert type 'Newtonsoft.Json.Linq.JValue' to 'double'. An explicit conversion exists (are you missing a cast?)
Source=Anonymously Hosted DynamicMethods Assembly
StackTrace:
at CallSite.Target(Closure , CallSite , Object )
at Nest.ConcreteTypeConverter.GetConcreteTypeUsingSelector[T](JsonSerializer serializer, ConcreteTypeConverter1 realConcreteConverter, JObject jObject) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\StatefulDeserialization\ConcreteTypeConverter.cs:line 125        at Nest.ConcreteTypeConverter.GetUsingConcreteTypeConverter[T](JsonReader reader, JsonSerializer serializer, ConcreteTypeConverter1 realConcreteConverter) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\StatefulDeserialization\ConcreteTypeConverter.cs:line 83
at Nest.ConcreteTypeConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\StatefulDeserialization\ConcreteTypeConverter.cs:line 62
at Nest.DefaultHitJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in c:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\StatefulDeserialization\ConcreteTypeConverter.cs:line 24
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
InnerException:

@curtismbeard What version of NEST are you using, 2.x?

This should reproduce the error I think.
`
public interface IThing
{
    int Int { get; set; }
    string String { get; set; }
}

class ThingA : IThing
{
    public int Int { get; set; }
    public string String { get; set; }
    public string A { get; set; }
}

class ThingB : IThing
{
    public int Int { get; set; }
    public string String { get; set; }
    public string B { get; set; }
}
class ThingC : IThing
{
    public int Int { get; set; }
    public string String { get; set; }
    public string C { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
       var client = new ElasticClient(settings);

        if (!client.IndexExists(new IndexExistsRequest("multitype")).Exists)
        {
            client.CreateIndex("multitype");
            var response = client.Map<ThingA>(m => m.Index("multitype").AutoMap());
            if (!response.IsValid)
            {
                throw new Exception(response.DebugInformation);
            }
            response = client.Map<ThingB>(m => m.Index("multitype").AutoMap());
            if (!response.IsValid)
            {
                throw new Exception(response.DebugInformation);
            }
            response = client.Map<ThingC>(m => m.Index("multitype").AutoMap());
            if (!response.IsValid)
            {
                throw new Exception(response.DebugInformation);
            }
        }

        client.Index(new ThingA {A = "Somthing for A", Int = 1, String = "thinga"});
        client.Index(new ThingA {A = "Somthing for A", Int = 2, String = "thinga"});
        client.Index(new ThingB {B = "Somthing for B", Int = 3, String = "thingb"});

        var searchResponse = client.Search<IThing>(
            s =>
                s.Index<ThingA>()//search correct index
                    .Type("thinga,thingb,thingc")
                    .ConcreteTypeSelector((v, y) =>
                    {
                        switch (y.Type)
                        {
                            case "thinga":
                                return typeof (ThingA);
                            case "thingb":
                                return typeof (ThingB);
                            case "thingc":
                                return typeof (ThingC);
                            default:
                                throw new Exception(y.Type);
                        }
                    })
                    .Query(x => x.Term(trm => trm.String, "thingb"))
                    .Sort(srt => srt.Ascending(fld => fld.Int))
                    .Skip(0)
                    .Take(10));}}`

I will work on a simple example that reproduces the issue.  I am using 2.0.2.

I ran into this issue last night. This is definitely an issue with sorting results that need to serialize to different POC types. When you remove the sorting it returns results without an error. There is a ticket from yesterday that has a good example to reproduce the issue. I hope this is helpful, please let me know if there is anything I can do to help further troubleshoot.
https://github.com/elastic/elasticsearch-net/issues/1929

Thank you all for reporting this.  It'll be fixed in the next release.


Run without internet connection

Hi,
I have to work in an airgapped environment (without internet connection) where it is not possible to simply run "terraform init" or anything like this. We developed some helper framework to run terraform through a WebProxy but any call to terraform involves a lot of environment variables and a special setup of credential files for AWS and such. When I try using blast-radius I always get errors like "Failed to load backend" due to invalid credentials and the missing internet connection.
Is it somehow possible to run blast-radius off a pre created graph file? Something that does not involve any "terraform" call inside the docker container?
I already tried --graph like
docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro docker.registry.local/joerg/blast-radius --serve --graph global/my.graph global

but this gives the before mentioned errors. Interestingly it works with --json, --dot and --svg which gives me a huge JSON output
docker run --cap-add=SYS_ADMIN -it --rm -p 5000:5000 -v $(pwd):/workdir:ro docker.registry.local/joerg/blast-radius --json --graph global/my.graph global

Hi @joerg
One quick work-around, if you don't need docker, would be to intercept the call to terraform -- at present blast-radius only calls terraform graph, so something like this should work...
[...]$ cat > terraform <<EOF
#!/bin/bash
cat graph.json
EOF
[...]$ PATH="${PWD}:$PATH"
[...]$ export PATH
[...]$ blast-radius --serve

But a more fully baked solution would be nice, too. I expect to have time for a closer look in the next couple of days. Cheers :)


dev -> master

Coverage increased (+0.4%) to 69.343% when pulling 738d654d98633a8ca59b908952eeab4cb2b0946e on dev into ba74f3aa81597b3a6f99c6369f0a3fcf012ef1ee on master.


Provide non-changing link for lecture notes uploads

A user requested the following feature:
Many lecturers don't provide the lecture notes in their entirety at the beginning of a semester. In this case, students would benefit from non-changing URLs to the lecture notes stored in MaMpf, even when the notes are updated. This would allow them to bookmark the link such that access to the notes is quicker than having to go through the menus in MaMpf.

I think we already have this. E.g. take this link which points to the manuscript of my current lecture, no matter how often I update the manuscript. This link is also the one given in the media card in here - you just need to bookmark it. Maybe we can make bookmarking a little easier than copying th elink in a new tab and store the link.


When a group chat doesn't have a title, don't show the "NAME" field in details

For this, wouldn't you want to show this field so you have the option to name the group if you choose?
Maybe we could have a button saying "ADD NAME" and then show the text field?

@tneotia so I'd say this goes 2 ways. Right now, we can't edit the group name, server side. Though, I wouldn't be against being able to set a custom name to group chats, but just client side on the device (until the server supports it)

@zlshames this can be closed


dev.sotn.io Safe Preset Failed

Seed URL
https://dev.sotn.io/?p:safe,n,7cc,DownToGetClowned
Randomizer version:
3.1.0-2
Operating system and version:
Windows 10 Home
Version 20H2
Browser and version:
Google Chrome
Version 89.0.4389.82 (Official Build) (64-bit)
Emulator and version:
BizHawk
v2.6.1 x64
Bug description
A safe seed (tournament) was generated using the developmental build to create a PPF patch for a four-person race. The seed was not completable by Safe logic, and various other issues occurred. Here were the issues:

On the file select, instead of saying the seed name, it showed vanilla text at the top (TalicZealot's Autotracker shows "Input RICHTER to play as Richter Belmont).

The spoilers show different starting equipment than what you start with.

All items found (not items dropped) were from a VERY limited pool consisting mostly of Shurikens and Green Tea.

All items in the shop were the same within their type (all items were the same, all swords were the same, etc.). The one-time items in the shop were still functioning as intended, including the progression item.

Holy Glasses were nowhere to be found, even after using Richter skip with bat to explore the 2nd Castle. Three out of four players had performed all checks and were unable to find them. All other progression items seemed present, including all five Vlad relics.

All seeds were generated from a PPF file I generated. I double-checked and created a second PPF with the same settings, which yielded identical results.
How to reproduce:
Download the seed yourself using dev.sotn.io, selecting Safe Tournament (or using the provided link), and proceeding through the game.

Thanks for these reports. These should all be fixed in version 3.1.0 which is live on main. In the future, please create individual issues for each bug instead of consolidating them in one. This makes it easier to track the progress for each issue individual and that way things don't fall through the cracks.


.NET Core 2.2 deployment to Azure App Service

After every stable .NET Core release, it's pain to figure out if the deployment of that version to App Service has finished. The only way (at least I know of) being - deploy upgraded app and see if it runs or breaks.
https://github.com/Azure/app-service-announcements seemed like the place to look for that info for some time, but it looks neglected at the moment. They do remind everybody not to create issues, but don't create them themselves.
Can't we find some reasonable way where would you publish info about latest versions of .NET deployed to App Service?

@DamianEdwards @glennc @Eilon is it something you can follow up on or route?

@muratg - any thoughts on this?

I already got the right team on internal email thread, thanks for help @Eilon @muratg!

got the same problem  T.T.

Per offline discussion, it will be announced once the roll out is finished.
@shirhatti answered similar question on the blog post: https://blogs.msdn.microsoft.com/dotnet/2018/12/04/announcing-net-core-2-2/ (see discussion comments)

The Azure App Service deployment for the ASP.NET Core Module is currently in-process and we expect to be generally available across all regions before the end of December.

I am not sure if Azure App Service team plans to do just a blog post, or post on https://github.com/Azure/app-service-announcements. I let that decision and its communication to their team.
If you feel like that particular channel is neglected (I don't have enough background to have opinion here), I would suggest to send them the feedback (naively maybe via creating issue, although as you point out they may not like it, or via other appropriate channels - although I don't know what they would be).
Hope it helps!

FYI: https://github.com/Azure/app-service-announcements/issues/151 - .NET Core 2.2 availability on App Service.


Client and server time need to match each other

Otherwise, transactions from client and from server could be out of order in the undo/redo stack, meaning the latest action might not be undo-able without undoing the second-to-last action first, which is, of course, undesirable.
If all writes are done by server code (as planned), this issue goes away.

This is a temporary fix until the transactions2 package comes out, which will make all writes via a method, meaning we'll only ever be dealing with server time.


Respect GitHub's ratelimit headers for search API

GitHub supplies headers for handling the additional ratelimits for the search API. This respects those headers and identifiers when incomplete results are returned.

Closes #21


div displays but map doesn't

I think I've followed all of the docs but I can't seem to get the map to display even though the div does. I'm running Rails 3.2.1
I added @json = Location.all.to_gmaps4rails to my LocationsController
locations.rb has:
class Location < ActiveRecord::Base
attr_accessible :latitude, :longitude, :name, :address, :phone, :blurb
acts_as_gmappable
def gmaps4rails
"#{self.longitude}, #{self.latitude}"
end
end
added <%= gmaps4rails(@json) %> to my view
and added <%= yield :scripts %> to my footer. anyone else having this issue?

I guess you found the solution :)


[Card] Tiny Bug with overrides prop

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
overides prop should not be passed to DOM

Current Behavior
getting passed down

Proposed Solution
Change
function Card(props: CardsPropsT) {
  const {
    action,
    children,
    hasThumbnail,
    headerImage,
    thumbnail: thumbnailSrc,
    title,
    ...otherProps
  } = props;

  const {
    Action: ActionOverride,
    Body: BodyOverride,
    Contents: ContentsOverride,
    HeaderImage: HeaderImageOverride,
    Root: RootOverride,
    Thumbnail: ThumbnailOverride,
    Title: TitleOverride,
  } = props.overrides  // <----------------- THIS
...

TO
function Card(props: CardsPropsT) {
  const {
    action,
    children,
    hasThumbnail,
    headerImage,
    thumbnail: thumbnailSrc,
    title,
    overrides={}, // <----------------- TO THIS
    ...otherProps
  } = props;

  const {
    Action: ActionOverride,
    Body: BodyOverride,
    Contents: ContentsOverride,
    HeaderImage: HeaderImageOverride,
    Root: RootOverride,
    Thumbnail: ThumbnailOverride,
    Title: TitleOverride,
  } = overrides // <----------------- TO THIS
...

Steps to Reproduce

Link:

https://baseui.netlify.com/?selectedKind=Card&selectedStory=Headline %26 Text&full=0&addons=1&stories=1&panelRight=0&addonPanel=REACT_STORYBOOK%2Freadme%2Fpanel

Thanks for reporting @JoshRosenstein!
@MarkReeder can you take a look please?

Thanks Josh! Just merged the proposed fix, we'll cut a release soon enough (let us know if you need that expedited for any reason).

No problem. no need to expedite, Im just going through the codebase and studying yalls methods. I really like yalls methodology of having the overrides prop for each component (especially for a CSS-JS based UI, in order to target nested components styles without the use of selectors.) and keeping functional, stateless and state-full components separate.  Great work,

Hi Josh,
the new version is now on npm 👌


Search in Rotated Sorted Array

Difficulty
Medium
Problem Description
Its solution could be added
Link
https://leetcode.com/problems/search-in-rotated-sorted-array/

assign me

added the solution


Cirrus: Add text editors to cache-images

Occasionally people need to access the VM's for
troubleshooting/debugging.  Having an editor pre-installed makes life
easier and doesn't cost any extra test-time.
CIRRUS: REBUILD IMAGES
Signed-off-by: Chris Evich<EMAIL_ADDRESS>

@giuseppe PTAL :grin:

Sure, LGTM

/approve

LGTM

bot, retest this please
/lgtm

Thanks! :)
LGTM

Since this PR does not effect Fedora Cloud tesing, manually merging.


Re-fix #12095 again

Unfortunately some of the suggested changes to #12095 introduced
bugs which due to caching behaviour of sharedworkers were not caught
on simple tests.
These are as follows:

Changing from simple for loop to use includes here:

  register(port) {
    if (!this.clients.includes(port)) return;

    this.clients.push(port);

    port.postMessage({
      type: 'status',
      message: `registered to ${this.url}`,
    });
  }

The additional ! prevents any clients from being added and should
read:
    if (this.clients.includes(port)) return;

Dropping the use of jQuery $(...) selection and using DOM
querySelector here:

async function receiveUpdateCount(event) {
  try {
    const data = JSON.parse(event.data);

    const notificationCount = document.querySelector('.notification_count');
    if (data.Count > 0) {
      notificationCount.classList.remove('hidden');
    } else {
      notificationCount.classList.add('hidden');
    }

    notificationCount.text() = `${data.Count}`;
    await updateNotificationTable();
  } catch (error) {
    console.error(error, event);
  }
}

Requires that notificationCount.text() be changed to use textContent
instead.
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Sorry about that. I should use that suggest feature more carefully.

@silverwind no problem it's my fault - I should have double-checked.

Please send backport


[TVMC][microTVM] Add new micro context

This patchset adds a new micro context to TVMC under tvmc micro command, allowing tvmc to be used for compiling, build, flashing, and running models on microTVM target devices.
The following typical workflow is provided as an example:
$ wget https://github.com/tensorflow/tflite-micro/raw/main/tensorflow/lite/micro/examples/micro_speech/micro_speech.tflite
$ tvmc compile ./micro_speech.tflite --target="c -keys=cpu -link-params=0 -march=armv7e-m -mcpu=cortex-m7 -model=stm32f746xx -runtime=c -system-lib=1" --output micro_speech.tar --output-format mlf --pass-config tir.disable_vectorize=1 --disabled-pass="AlterOpLayout"
$ tvmc micro create-project /tmp/micro_speech ./micro_speech.tar zephyr -o project_type=host_driven zephyr_board=stm32f746g_disco
$ tvmc micro build /tmp/micro_speech zephyr -o zephyr_board=stm32f746g_disco
$ tvmc micro flash /tmp/micro_speech zephyr -o zephyr_board=stm32f746g_disco
$ tvmc run --device micro /tmp/micro_speech --options zephyr_board=stm32f746g_disco --print-top 6 --fill-mode random
MLF found, using micro target runner.
[[   3    2    1    0]
 [  35  -63 -100 -128]]

A Pre-RFC will be published soon associated to this patchset to start a discussion about that new context in TVMC.

@areusch I've removed the ugly "lookahead" hack and replaced it by a real parser in https://github.com/apache/tvm/pull/9229/commits/409ee6c768517df37300cb6fa529f716e31e7751
The change also now allows using -h or --help to list the platform options like:
gromero@amd:~/git/tvm$ tvmc micro create-project --force /tmp/x46 ~/scripts/sine.tar zephyr --help
usage: tvmc micro create-project project_dir MLF zephyr --project-option OPTION=VALUE [OPTION=VALUE ...] [-h]

optional arguments:
  --project-option OPTION=VALUE [OPTION=VALUE ...]
                        extra_files_tar=EXTRA_FILES_TAR
                          if given, during generate_project, uncompress the tarball at this path into the project dir.

                        project_type={aot_demo, host_driven}
                          type of project to generate. (required)

                        west_cmd=WEST_CMD
                          path to the west tool. If given, supersedes both the zephyr_base option and ZEPHYR_BASE environment variable. Defaults to '/usr/bin/python3 -m west'.

                        zephyr_board={mimxrt1050_evk, mps2_an521, nrf5340dk_nrf5340_cpuapp,
                                     nucleo_f746zg, nucleo_l4r5zi, qemu_cortex_r5, qemu_riscv32,
                                     qemu_riscv64, qemu_x86, stm32f746g_disco}
                          name of the Zephyr board to build for. (required)

                        config_main_stack_size=CONFIG_MAIN_STACK_SIZE
                          sets CONFIG_MAIN_STACK_SIZE for Zephyr board.

  -h, --help, --list-options
                        show this help message with platform-specific options and exit.

Which was done in https://github.com/apache/tvm/pull/9229/commits/99f701fd7efc8be34e1e142210ae07f360427898

@leandron in case you want to look at this too


xgboost.core.XGBoostError: [17:36:22] C:/Users/Administrator/workspace/xgboost-win64_release_1.4.0/src/learner.cc:956: Check failed: header == serialisation_header_:

how can i solve this problem?
python version:3.7.6
xgboost version:1.4.2
platform version:windows 10

Could you please provide a way for us to reproduce?  Or at least describe what you are trying to do, like where did you get the model and where are you loading it into?

Closing as this likely caused by loading a pickle with load_model.  Feel free to reopen if there's a reproducible example.


Do not attempt to run java -version on riscv cross-compile

Error from latest bulid
 Error executing 'java' does not exist in '/home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-linux-riscv-openj9/workspace/build/src/build/linux-riscv64-normal-server-release/images/jdk'.
I'd prefer a bit more generic support for cross-compiled builds but this is the only one we have at present so I'm happy with this "quick fix" on one platform for now.
@johnoliver Can you comment on the line in here please:
       # do not modify these strings as jenkins looks for them

When does jenkins look for these, and what are the implications if that portion is skipped on these builds?
Signed-off-by: Stewart Addison<EMAIL_ADDRESS>

The code comments say 'Jenkins looks for the strings around the java -version output'.  What do the build pipelines do if they can't find them (which they now won't)?

That was the question I targetted to @johnoliver in the initial post, but I'm not sure he's around so I'm tempted in the interests of cleaning up this build (worst case it won't be any worse than it is now I believe!) I'm keen to get this in today

OK, let's see what it does, approving.

Thanks - merged and verifying at https://ci.adoptopenjdk.net/job/build-scripts/job/openjdk11-pipeline/944
Hopefully @johnoliver will be able to comment as to what it's used for.


How to change the font size of the tooltip?

@luilliarcec You will need to consult the Tippy documentation to figure this out, as Tippy is controlling the CSS.


Fix duplicate line

odd things happened yesterday while merging? 🙀

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 37.05%. Comparing base (e18357e) to head (0f048f0).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #201      +/-   ##
==========================================
+ Coverage   37.03%   37.05%   +0.02%
==========================================
  Files          20       20
  Lines        1415     1414       -1
==========================================
  Hits          524      524
+ Misses        891      890       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add Function Argument Borrowing Inference

Just wanted to write this down as an issue so it isn't lost/forgotten.
Currently, Roc allows specifying borrowing rules, but only for lowlevel functions. This is great because it alleviates unnecessary refcount increments and decrements. Sadly, it only applies to low levels and not to any functions written in Roc. We need to expand this support in order to improve the performance of Roc.
A very concrete example of this: Every call to List.get will require a refcount increment before the call to List.get and will decrement the refcount and potentially deallocate in List.get. This is because List.get is a roc function unlike List.getUnsafe which is a low level.
To fix this, we need to implement function argument borrowing inference. For each given function argument, it should be marked as borrowed if it is only passed to other borrowing functions and guaranteed to never be return by the current function.
Note: Their are likely smart and more nuanced rules that can be built on top of this, especially around aggregate types and destructuring arguments, but this should be a solid starting point.

Note, some preliminary hacking to show the perf gains this can grant us has been done one the borrowing-hacks branch


Dataloader Hangs on Exit

🐛 Describe the bug
I am running into an issue where the dataloaders hang for 5 seconds per dataloader worker on exit. I have persistent_workers=True and pin_memory=True.
Here is a minimal example to reproduce the bug:
import torch
import torch.utils.data
import torchvision
import time
import atexit

torch.cuda.set_device(0)

def atexit_hook():
  print(str(time.time()) + " atexit ran")

atexit.register(atexit_hook)

num_workers = 4  # I tried setting this on [1, 2, 4, 8, 16]

dataloader = torch.utils.data.DataLoader(
    torchvision.datasets.MNIST(
            "~/datasets",
            train=True,
            download=True,
            transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]),
    ),
    pin_memory=True,
    batch_size=1024,
    persistent_workers=True,
    num_workers=num_workers,
)

for _ in dataloader:
    break

print(str(time.time()) + " finishing")

I varied the number of dataloader workers on [1, 2, 4, 8, 16]:
# Test bench

wget -O dl_bug_1.py https://gist.githubusercontent.com/ravi-mosaicml/3c552c3f6d4a6abf9621fa56353f0fbf/raw/0bf88f6b392b90f1b22223d8dfc9b8771850de39/dl_bug.py
wget -O dl_bug_2.py https://gist.githubusercontent.com/ravi-mosaicml/c277fe6ea49fd43de1db1687a5b868f8/raw/1a6ac44299504097694b9720db2df98f0e96bb70/dl_bug_2.py
wget -O dl_bug_4.py https://gist.githubusercontent.com/ravi-mosaicml/c0a1f2268d47f3e27d8e360adf604d22/raw/29190a9054d0874e082066807b4247aa280dc076/dl_bug_4.py
wget -O dl_bug_8.py https://gist.githubusercontent.com/ravi-mosaicml/901ad8423421aa5157acc52ac9b17889/raw/44454a6b52f6dc7b26d7bdf3d42bf289163fefc0/dl_bug_8.py
wget -O dl_bug_16.py https://gist.githubusercontent.com/ravi-mosaicml/225dfb4045cd847b7e095f83c6ed4e6a/raw/b1cf3e70dc339daf073f1c926c7c8e67f0c5948c/dl_bug_16.py
python dl_bug_1.py
python dl_bug_2.py
python dl_bug_4.py
python dl_bug_8.py
python dl_bug_16.py

Output:
+ python dl_bug_1.py
...
1658340836.637308 finishing
1658340841.6431446 atexit ran
+ python dl_bug_2.py
1658340844.0869184 finishing
1658340854.0987492 atexit ran
+ python dl_bug_4.py
1658340856.7868223 finishing
1658340876.8072598 atexit ran
+ python dl_bug_8.py
1658340879.3098278 finishing
1658340919.3564277 atexit ran
+ python dl_bug_16.py
1658340921.9546304 finishing
1658341002.0392313 atexit ran

When analyzing the results, there appears to be a near-perfect 5 second delay per dataloader worker between when the python script "finished" and when atexit ran. The python process terminated immediately after the "atexit ran" lines were printed.
The expected behavior would be that there is a small (constant) overhead at the end of training to shut down the dataloader workers. It should not scale linearly (at least not linearly in any meaningful way, since processes can be killed in parallel) with the number of DL workers.
Versions
Collecting environment information...
PyTorch version: 1.12.0+cu113
Is debug build: False
CUDA used to build PyTorch: 11.3
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.4 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.31
Python version: 3.9.13 (main, May 23 2022, 22:01:06)  [GCC 9.4.0] (64-bit runtime)
Python platform: Linux-5.4.0-120-generic-x86_64-with-glibc2.31
Is CUDA available: True
CUDA runtime version: 11.3.109
GPU models and configuration: GPU 0: NVIDIA A100-SXM4-40GB
Nvidia driver version: 510.47.03
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.2.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
Versions of relevant libraries:
[pip3] numpy==1.23.1
[pip3] torch==1.12.0+cu113
[pip3] torchvision==0.13.0+cu113
[conda] Could not collect

cc @SsnL @VitalyFedyunin @ejguan @NivekT

From the linked code, a 5 second wait would indicate that we are hitting the timeout, meaning that the dataloader worker did not terminate on its own before the join timed out. I don't think that this behavior is expected; I presume the dataloader workers should exit before the timeout is hit?
An a related note, I think this implementation could be refactored to wait up to 5 second total, not 5 seconds per worker. That would really help mitigate the UX of a hanging process at the end.

Does this problem happen if either persistent_workers or pin_memory is set to False?

Does this problem happen if either persistent_workers or pin_memory is set to False?

Good question; it appears only if both persistent_workers and pin_memory are True.
Test bench
set -exuo pipefail

wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py

python collect_env.py

wget -O dl_bug_2_no_pin_persistent.py https://gist.githubusercontent.com/ravi-mosaicml/2cb99ccc7fe488dfe32d33d719ee896c/raw/ca509eaf7b2117e6e94e83b21a0e8a4df4ac56a5/dl_bug_2_no_pin_persistent.py
wget -O dl_bug_2_no_persistent.py https://gist.githubusercontent.com/ravi-mosaicml/c5fb49925a4f2ba93b7ce421ae502c29/raw/027aadb9de9ff617f6de2343face604afbdaddaa/dl_bug_2_no_persistent.py
wget -O dl_bug_2_no_pin.py https://gist.githubusercontent.com/ravi-mosaicml/11dd7425be8cd839dc14f8468dfdedee/raw/fa9e2160a59dbeb2b698660dbe73a81a3532d11e/dl_bug_2_no_pin.py
wget -O dl_bug_2.py https://gist.githubusercontent.com/ravi-mosaicml/c277fe6ea49fd43de1db1687a5b868f8/raw/1a6ac44299504097694b9720db2df98f0e96bb70/dl_bug_2.py
python dl_bug_2_no_pin_persistent.py
python dl_bug_2_no_persistent.py
python dl_bug_2_no_pin.py
python dl_bug_2.py

Output:
...
+ python collect_env.py
Collecting environment information...
PyTorch version: 1.12.0+cu113
Is debug build: False
CUDA used to build PyTorch: 11.3
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.4 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.31
Python version: 3.9.13 (main, May 23 2022, 22:01:06)  [GCC 9.4.0] (64-bit runtime)
Python platform: Linux-5.4.0-122-generic-x86_64-with-glibc2.31
Is CUDA available: True
CUDA runtime version: 11.3.109
GPU models and configuration: GPU 0: NVIDIA A100-SXM4-40GB
Nvidia driver version: 510.47.03
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.2.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.2.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
Versions of relevant libraries:
[pip3] numpy==1.23.1
[pip3] torch==1.12.0+cu113
[pip3] torchvision==0.13.0+cu113
[conda] Could not collect
...
+ python dl_bug_2_no_pin_persistent.py
...
1659566171.54992 finishing
1659566171.550054 atexit ran
+ python dl_bug_2_no_persistent.py
1659566174.0618153 finishing
1659566174.0619712 atexit ran
+ python dl_bug_2_no_pin.py
1659566175.3909519 finishing
1659566175.391382 atexit ran
+ python dl_bug_2.py
1659566177.7272518 finishing
1659566187.736436 atexit ran

Thanks for confirmation. Let me take a deeper look on this. This might be related to the atexit function used to guarantee worker process can be exited properly.


[UI] Icon change for clearing the notification

Signed-off-by: suhail34<EMAIL_ADDRESS>Notes for Reviewers
This PR fixes #6560
Changed the icon for clearing the notification from tick mark to this :

Signed commits

[ ] Yes, I signed my commits.

Thanks, @suhail34!

Suggestion merged, @asubedy 👍

Thank you @leecalcote, the changes looks good here to merge. The video posted by @Harshit-Dandriyal, is not visible though.

Thank you @leecalcote, the changes looks good here to merge. The video posted by @Harshit-Dandriyal, is not visible though.

I think safari does not support mp4, because it is showing in my chrome. Let me do something here.

I've previously informed @Harshit-Dandriyal that his video recordings are not visible in Safari. Hopefully, @Harshit-Dandriyal will change encoding or change recorders so that others can freely collaborate with him. Otherwise, I won't be watching his videos either, I'm afraid.

I am starting to find other recorder then. 👍

Thanks for pointing out I didn't noticed that Is this Ok
https://user-images.githubusercontent.com/77241166/205497082-315b6626-c44d-49b7-9f7b-1c59a2a8aa1f.mp4

LGTM, Nice work @suhail34

Merge conflicts.... @suhail34

LGTM, Let's get you covered on DCO. wink

will this command get my all commits signed off
git rebase HEAD~8 --signoff

LGTM, Let's get you covered on DCO. wink

will this command get my all commits signed off git rebase HEAD~8 --signoff

Yes, this should.

I didn't made any changes in those file How do i revert

I didn't made any changes in those file How do i revert

@sahilsuman933 You can compare the changes with the current file and revert or simply create a new PR. Don't worry about the DCO. We will get you covered on it.

Yay @suhail34 :balloon:

Thanks for guiding learned a lot


PoC host assign and tls creation

adds logic to assign a generated host to a seen ingress, setup a certificate, wait for it to be ready and copy it to the target cluster ns and setup DNS based on status
Verification

clone this branch
run make local-setup
You will need some AWS credentials and a zone id (contact me if you don't have them already)
run kind export kubeconfig --name=mctc-control-plane --kubeconfig ./cp-config.yaml
create a clustersecret.yaml resource:

apiVersion: v1
kind: Secret
metadata:
  labels:
    argocd.argoproj.io/secret-type: cluster
  name: cluster1
stringData:
  name: cluster1
  server: https://<IP_ADDRESS>:<replace>
  config: |
    {
      "tlsClientConfig": {
        "insecure": true,
        "caData": "<replace>",
        "certData": "<replace>",
        "keyData": "<replace>"
      }
    }

replace the ca, cert, key and port with those in the config you exported via kind

run kubectl create -f clustersecret.yaml -n argocd
ensure you have setup a ./controller-config.env and ./aws-credentials.env these should have the following env vars
AWS_DNS_PUBLIC_ZONE_ID,ZONE_ROOT_DOMAIN,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY
run the controller (export $(cat ./controller-config.env | xargs) && export $(cat ./aws-credentials.env | xargs) && make build install run)
create the sample app  create -f samples/echo-service/echo.yaml
You should see something like this in the logs host assigned ensuring certificate in place secret ready. copy secret s6yxqyfx3awf53iasbk7a6.pb.hcpapps.net updated dNSRecordn  {[s6yxqyfx3awf53iasbk7a6.pb.hcpapps.net 60 IN A <IP_ADDRESS> [<IP_ADDRESS>] [{aws/weight 120}]]}  once you do give a minute to DNS to update.
curl -k https://<host in log>  should result in a response like
GET / HTTP/1.1

Host: s6yxqyfx3awf53iasbk7a6.pb.hcpapps.net
Accept: /
User-Agent: curl/7.85.0
X-Forwarded-For: <IP_ADDRESS>
X-Forwarded-Host: s6yxqyfx3awf53iasbk7a6.pb.hcpapps.net
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Forwarded-Scheme: https
X-Real-Ip: <IP_ADDRESS>
X-Request-Id: f772ec64fb7ac1e4b6da0d7755a8a755
X-Scheme: https

found a bug in this with multiple clusters. So adding a fix for that now

I'm working through the validation steps, and seeing this error when the controller tries to  create the dnsrecord:
2023-01-24T10:54:23Z    ERROR   Dropping key after max failed retries   {"key": "default/echo", "retries": 5, "error": "DNSRecord.kuadrant.io \"s6yxqyfx3awf53iasbk7a6.\" is invalid: metadata.name: Invalid value: \"s6yxqyfx3awf53iasbk7a6.\": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')"}
github.com/Kuadrant/multi-cluster-traffic-controller/pkg/multiClusterWatch.(*ClusterWatcher).processNextWorkItem

Also, the controller is trying to reconcile the argocd ingress.

did you set the ZONE_ROOT_DOMAIN?

yeah I haven't added any label selector yet so it is reconciling any ingress it sees

did you set the ZONE_ROOT_DOMAIN?

ah, no I missed the new envvar, cheers!

/lgtm Couple of questions, but nothing to stop us from merging :+1:


opendrive could not be correctly parsed

Hello CARLA Team,
I'm having an issue running the opendrive standalone example in the documentation
python3 config.py -x opendrive/TownBig.xodr
I get the following error
opendrive could not be correctly parsed
I'm using CARLA Patch Release <IP_ADDRESS>
on Ubuntu 18.04 inside Docker
I've tried using python3.6 and python3.7 but I get the same issue.
Thank You.

@HemaZ could you please check if you have the same problem in the nightly build? http://carla-releases.s3.amazonaws.com/Linux/Dev/CARLA_Latest.tar.gz

@HemaZ could you please check if you have the same problem in the nightly build? http://carla-releases.s3.amazonaws.com/Linux/Dev/CARLA_Latest.tar.gz

Nightly build is working great

@germanros1987 I've tried again using the nightly build and it returns the same error !!

I got the same error.
I'm using CARLA 0.9.11 from deb package on Ubuntu 18.04

I got the same error.
I'm using CARLA 0.9.11 from deb package on Ubuntu 18.04

Similar failure as in other reports, but from CARLA_0.9.11.tar.gz on Ubuntu 18.04
I verified with an independent viewer that the xodr can be parsed.

I'm confirming the same bug, ubuntu 18.04

I'm confirming the same bug, ubuntu 18.04; CARLA_0.9.11; the nightly build by the link is working

@bitekas Could you clarify if it worked or not for you? I got the same error in nightly build.

@HarnarayanSingh Yes, the nightly build is working for me.

I got the same error on Ubuntu 18.04, CARLA 0.9.10.
The nightly build returns another error: RuntimeError: rpc::rpc_error during call in function load_new_episode


Provide a way to offset line numbers in wrapped scripts

Many Scala tools write snippets of Scala code before execution: Mill, Ammonite, ScalaCLI, and others. In Scala 2, we could use a post-parser compiler plugin to fix up all the line numbers and positions, such that source locations reported by sourcecode.Line/sourcecode.File and downstream error messages surfaced by typer or runtime exceptions were properly attributed.
In Scala 3, this is no longer possible. Thus tools like Mill/Ammonite/ScalaCLI now need a three-pronged approach:

A custom Zinc reporter to fix error locations generated pre-typer
A compiler plugin to update locations generated by sourcecode.Line and sourcecode.File
An ASM bytecode rewriter to fix error locations in final bytecode to ensure locations are properly set in runtime exceptions.

This logic has been implemented at least three times, with @alexarchambault being the author of the Ammonite and CLI copies, and @bishabosha being the author of the Mill copy.
It would be nice if we could provide something built in to just make the Scala compiler subtract certain lines from the line number reporting automatically. Mill and Ammonite internally use magic comments (see below) to power the above triple code paths, and perhaps similar magic comments could be adapted to work generally across all Scala 3 tooling
//MILL_ORIGINAL_FILE_PATH=/Users/lihaoyi/Github/mill/ci/shared.mill
//MILL_USER_CODE_START_MARKER

The existing dotty.tools.SourceFile.headerPattern is similar, but ultimately the exact opposite of this use case:

headerPattern is meant to tell the compiler to ignore lines of code during compilation and add the ignored line count for error reporting,
what we need for this ticket is to include the lines of code during compilation and subtract the ignored lines for error reporting.

CC @odersky we discussed this briefly in lausanne

So the SourceFile abstraction does allow to encode an underlying file and an offset, but plugins cannot customise the source files

This also could be relevant for https://github.com/scalacenter/scastie/issues/532


instructions

Could you give instructions for setting up and running? Your videos are great but no clue how to get your strategies in gekko.

Any doc as requested?


Feature - Search by type

... so that I can filter and locate contacts base on different types

Fixed in commit 469e54a.


SWARM-762: Use mirror and full proxy configuration in Maven resolving…

… helper
Motivation
Maven resolving helper does not take mirror configuration into account
while it only uses the first proxy from the Maven configuration.
Modifications
AbstractSwarmMojo was modified to avoid passing the now redundant first proxy
entry. MavenArtifactResolvingHelper was changed to use the mirror
configuration and the correct proxy
Result
Swarm plugin will correctly use mirror and proxy configuration of Maven
settings.

Can one of the admins verify this patch?

ok to test

Thanks for providing a fix!
Greatly appreciated


File get renamed after download differently in every browser (colon).

When I trigger a download with a name containing a colon it gets renamed differently for every browser.
fileDownload(data, "file:name.json");
Chrome 53

file-name.json

IE 11

file_name.json

I know that colon cannot be saved in a file name but I expect file to be always named the same in every browser.

I think this is just nuances of handling special characters in different browsers. And it'll be the case for any file download mechanism. I don't think I can do anything to 'fix' this, but let me know if you have some ideas.


fix standard workflow to test jpackage

Standard workflows are now test jpackage in gradle.build

Looks good to me, thanks!


on an existing page, changing page type in modal remove draft/live abilities

on an existing page, changing page type in modal remove draft/live abilities. The buttons are not visibles

Fixed.


[DSIP-80] Rename field operator to modify_user_id

Search before asking

[x]  I had searched in the DSIP and found no similar DSIP.

Motivation
The field named "operator" in the project should be modified to "modify_user_id" for better clarity and easier maintenance

First modify the backend code uniformly
Then unify the  table fields in backend
Not involving the front-end UI, no adjustments needed

Design Detail
Incompatible changes

Rename backend code fields from operator to modifyUserId.
Rename tables fields from operator to modify_user_id.

These incompatible changes may affect users of secondary development based on API and Database.
Compatibility, Deprecation, and Migration Plan
No response
Test Plan
Test by UT.
Code of Conduct

[x]  I agree to follow this project's Code of Conduct

If this is to be optimized, all relevant frontend and backend codes and table field names need to be modified uniformly. You should create an DSIP first.

Not all operator fields are modify_user_id. It may represent the creator. You should distinguish between them.

Not all operator fields are modify_user_id. It may represent the creator. You should distinguish between them.

ok

I don't disagree with this issue, but this kind of change will bring some incompatible changes. Before making any of these kinds of changes to db schema and API schema, need to make a specification firstly, and list all the fields that need to be changes, otherwise this looks very much like a random personal alteration. In the future, if someone think some fields is not suitable, he might submit another pr to change again, will bring an incompatible changes again.

#16515 In fact, the ideas are similar. Whether to make changes can be discussed, and the operation can be postponed if there is not enough support. What do you think?

I don't disagree with this issue, but this kind of change will bring some incompatible changes. Before making any of these kinds of changes to db schema and API schema, need to make a specification firstly, and list all the fields that need to be changes, otherwise this looks very much like a random personal alteration. In the future, if someone think some fields is not suitable, he might submit another pr to change again, will bring an incompatible changes again.

#16515 In fact, the ideas are similar. Whether to make changes can be discussed, 和 the operation can be postponed if there is not enough support. What do you think?

In fact, the ideas are similar. Whether to make changes can be discussed, 和 the operation can be postponed if there is not enough support. What do you think?
This isn't similar to https://github.com/apache/dolphinscheduler/issues/16515, https://github.com/apache/dolphinscheduler/issues/16515 has been discussed  a long time ago, it is not a simple rename operation or code style change, It's a conversion of concepts between workflow and process.


Makefile: update the version of pandoc

Before it was just using the latest image build, which was
1.13.2-4.fc23. With this change it will more explicitly use a tagged
version.
Signed-off-by: Vincent Batts<EMAIL_ADDRESS>

LGTM

LGTM


fix broken link in references

 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.


Fix syntax highlighting

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


proposal: Go 2: remove byte alias and always use uint8

IMO, using byte alias doesn't hide the fact that the number is unsigned 8bit integer, and this doesn't change code readability. Rather, uint8 is more explicit and fits more with Go way.
On the other hand, I don't have a strong opinion on rune, that is an alias for int32. I think rune makes code readable to some extent.

and this doesn't change code readability. Rather, uint8 is more explicit and fits more with Go way.

I disagree with this in particular
 Directory of C:\Go\src\uint8s

09/16/2017  12:29 PM    <DIR>          .
09/16/2017  12:29 PM    <DIR>          ..
08/24/2017  09:50 PM            14,753 buffer.go
08/24/2017  09:50 PM            15,880 buffer_test.go
08/24/2017  09:50 PM            20,308 uint8s.go
08/24/2017  09:50 PM             2,837 uint8s_amd64.go
08/24/2017  09:50 PM               869 uint8s_decl.go
08/24/2017  09:50 PM               980 uint8s_generic.go
08/24/2017  09:50 PM             2,845 uint8s_s390x.go
08/24/2017  09:50 PM            39,028 uint8s_test.go
08/24/2017  09:50 PM             4,597 compare_test.go
08/24/2017  09:50 PM             1,332 equal_test.go
08/24/2017  09:50 PM             7,245 example_test.go
08/24/2017  09:50 PM               310 export_test.go
08/24/2017  09:50 PM             3,422 reader.go
08/24/2017  09:50 PM             7,049 reader_test.go

cat buffer.go
// Read reads the next len(p) uint8s from the buffer or until the buffer
// is drained. The return value n is the number of uint8s read. If the
// buffer has no data to return, err is io.EOF (unless len(p) is zero);
// otherwise it is nil.
func (b *Buffer) Read(p []uint8) (n int, err error) {
        b.lastRead = opInvalid
        if b.off >= len(b.buf) {
                // Buffer is empty, reset to recover space.
                b.Reset()
                if len(p) == 0 {
                        return
                }
                return 0, io.EOF
        }
        n = copy(p, b.buf[b.off:])
        b.off += n
        if n > 0 {
                b.lastRead = opRead
        }
        return
}

The purpose of the alias is to make it clear when one is using bytes as character string elements as opposed to small integers. It adds clarity to the code and should stay.

On the other hand, I don't have a strong opinion on rune, that is an alias for int32. I think rune makes code readable to some extent.

@hajimehoshi Your crazy. Rune means nothing to no-one. Everyone knows what byte means.

@fcntl please remember this issue tracker is governed by the code of conduct. Please refrain from ad hominem attacks in the future.

@fcntl
There's nothing crazy here. I think the idea had good intentions to simplify the language.
@hajimehoshi
I see from your repositories that you have quite a lot of experience with Go. Is there a particular section of code in stdlib or otherwise that made you think of this proposal? I more so would like to understand the reason you feel this change would make things more clear.

The purpose of the alias is to make it clear when one is using bytes as character string elements as opposed to small integers. It adds clarity to the code and should stay.

Thank you, I didn't know that intension. Should we follow the intentions strictly? As io.Reader is a general byte stream, I was wondering why byte is used in io.Reader. Not all streams are for characters.
There are some usages that aren't related to characters. e.g. https://golang.org/src/image/ycbcr.go#L167

I disagree with this in particular

@as I don't suggest to replace file names or comments, so the code would be:
cat buffer.go
// Read reads the next len(p) bytes from the buffer or until the buffer
// is drained. The return value n is the number of bytes read. If the
// buffer has no data to return, err is io.EOF (unless len(p) is zero);
// otherwise it is nil.
func (b *Buffer) Read(p []uint8) (n int, err error) {
        b.lastRead = opInvalid
        if b.off >= len(b.buf) {
                // Buffer is empty, reset to recover space.
                b.Reset()
                if len(p) == 0 {
                        return
                }
                return 0, io.EOF
        }
        n = copy(p, b.buf[b.off:])
        b.off += n
        if n > 0 {
                b.lastRead = opRead
        }
        return
}

I see from your repositories that you have quite a lot of experience with Go. Is there a particular section of code in stdlib or otherwise that made you think of this proposal? I more so would like to understand the reason you feel this change would make things more clear.

Thank you. No, there isn't. I forgot in what situation I started to feel like byte is not needed. I wasn't sure in which situation byte is preferable until @robpike commented above. I'm still not sure why io.Reader takes byte, not uint8.
Other discussion why I prefer uint8 to byte is:
https://www.reddit.com/r/golang/comments/6i6xks/gomp3_an_mp3_decoder_in_pure_go/dj5b02x/

I'm :-1: on this. byte is clear than uint8 which is an implementation detail and people usually know it.
The solution is to have both types be transparently interchangeable, so that you can use an unit8 where Read takes a []byte. Have you tried with Go1.9?

The solution is to have both types be transparently interchangeable, so that you can use an unit8 where Read takes a []byte. Have you tried with Go1.9?

Thank you for the opinion. byte is already the alias for uint8 before Go 1.9.

Ok, that's a good news for you? It means that you can use whatever type you want instead of the one used in the stdlib?
The fact that byte backend by a uint8 should be written in the documentation and it is here.
What would it change to switch the type in the stdlib given that they are interchangeable? Most peoples won't even notice it.

The fact that byte backend by a uint8 should be written in the documentation and it is here.
What would it change to switch the type in the stdlib given that they are interchangeable? Most peoples won't even notice it.

My intention is to make Go spec a little simpler. As everyone knows byte is exactly same as uint8, can't we say byte is redundant?
I didn't know when to use byte over uint8 and otherwise until @robpike mentioned, but does everyone know that?

Whether they know it or not, it has long been documented and is easy to understand.

Thanks, I found https://golang.org/pkg/builtin/#byte

byte is an alias for uint8 and is equivalent to uint8 in all ways. It is used, by convention, to distinguish byte values from 8-bit unsigned integer values.

I couldn't understand what is the difference between byte and uint8 here...

couldn't understand what is the difference between byte and uint8 here...

In practice there is no difference. Conceptually a value of type uint8 can hold an integer between 0 and 255. A value of type byte represents an opaque 8 bit piece of data. Obviously there's a lot of overlap between these two definitions, that's why they a aliases of one another.

I still feel like they are same even in terms of concepts, but I need to learn more. I appreciate your elaborating.

IMO, in a strict meaning, uint8 has direction forward to uint16, uint32. And it have direction signed/unsigned like uint8/int8 too. If you want to declare the direction for the name of function or variable, you will provide APIs like below, you will use uint8 instead of byte.
func ReadUint8() uint8 { ... }
func ReadUint16() uint16 { ... }
func ReadUint32() uint32 { ... }

If you just read buffer, you use byte instead of uint8. In many cases, ReadByte is enough to read stream.
func ReadByte() byte {}

We can choose their name by whether it has directionality or not.

@robpike has already said most of this very succinctly. I'm elaborating here to drive the point home once more:
@hajimehoshi First and foremost, byte and uint8 are simply type names for a predeclared type. We all know that this type represents the set of all unsigned 8-bit integer values represented in two's complement arithmetic - next to a bit probably the most basic data type in computing.
The only way to refer to this type is by giving it a name (there's no way to construct it from more basic things). In Go we decided from the start to give this type two names, byte and uint8. The reason was not to sow confusion but to have a choice: Sometimes we want to emphasize the byte nature (usually when we talk about the space consumed, or data); sometimes we want to emphasize the integer nature, a small number with which we do arithmetic. That is, the name is a simple (if primitive way) to express more meaning in the code.
We do this everywhere in programming: For instance we may call a struct{ x, y float64 } a Point rather than a Pair or a Tuple because we want to express the fact that we're dealing with a point in a 2D coordinate system (for instance). And so forth.
It just so happens that byte is often what we mean when have a 8 bit unsigned integer, so it's nice to give it a good name.
I'm not saying people are doing this consistently, or even should follow this as a hard and fast rule. Guidelines can only go so far - good naming requires experience and is more art than science. So to answer your question explicitly: No, there should be no rule to be followed strictly.
You yourself mention that you don't see a problem with int32 and rune. The exact same thing is going on there as with byte and uint8. It just may be the case that more often than not people do arithmetic with bytes than with runes, which perhaps colors your impression (I'm speculating here).
Finally, and especially now that the language supports type aliases as a first-class construct, there's really no complexity to speak of here, neither in the implementation nor the spec.
In closing, there doesn't seem to be anything to gain here by removing byte from the language. Most likely you will just find people defining type byte = uint8 all over the place. This doesn't seem to be worth it.
I'm against this proposal. There's bigger fish to fry.

I'm not saying people are doing this consistently, or even should follow this as a hard and fast rule. Guidelines can only go so far - good naming requires experience and is more art than science. So to answer your question explicitly: No, there should be no rule to be followed strictly.

Well, that's the point. As there is no strict rule here compared to rune, my suggestion was to unify them to uint8 and avoid bike-shedding. Now I started to be convinced, not fully yet, they have different context.

You yourself mention that you don't see a problem with int32 and rune. The exact same thing is going on there as with byte and uint8. It just may be the case that more often than not people do arithmetic with bytes than with runes, which perhaps colors your impression (I'm speculating here).

Right. Probably I'd be fine even if rune and int32 were not interchangeable and required explicit conversion. However, I'd not be happy if byte and uint8 were not interchangeable.

@hajimehoshi Before removing byte, I'd probably remove uint8. The byte type is just much more common. I'd use the uint8 type for variables really are integers but where we know that we only need small values and thus can save space. The byte type on the other hand is fundamentally the  smallest data type we can address directly with a pointer. We really want to keep that name, it's a good name.
As I said above, it's all about being able to chose a fitting name depending on context.

There is little support for this proposal.  Declined.


Bicep should automatically extract int64 parameters to generated parameter file during build

Per the ARM documentation, integers are only supported if they're 32-bit when expressed in-line. While int64 values are valid, they're not allowed in the module parameters and apparently have to be provided explicitly in a separate parameter file.
This is annoying as I haven't needed to create a separate parameter file as of yet and it would only really be populated with max and min int64 values (for specifying Service Fabric int64 partition range values).
Rather, it would be great if this were just an ARM implementation detail I didn't have to think about and that Bicep handled for me.. Allow me to pass them back and forth through my Bicep markup as I do any other parameter, but at build-time, generate the parameter file for me and substitute in the parameter keys to reference the values there.
Thanks!

This can be closed - I didn't realize I was running an older Bicep build on this system. After upgrading, I'm no longer getting this error at build.


[install]vs2015 installer playwright is error

Your question
sorry!my english is very poor!
so......................
`PS D:\ZhuytProject\TestPlaywright\packages\Microsoft.Playwright.1.28.0\build> .\playwright.ps1 isntall
使用“1”个参数调用“LoadFile”时发生异常:“系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)”
所在位置 D:\ZhuytProject\TestPlaywright\packages\Microsoft.Playwright.1.28.0\build\playwright.ps1:4 字符: 1

[Reflection.Assembly]::LoadFile($PlaywrightFileName) | Out-Null

  + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : FileNotFoundException

找不到类型 [Microsoft.Playwright.Program]。
所在位置 D:\ZhuytProject\TestPlaywright\packages\Microsoft.Playwright.1.28.0\build\playwright.ps1:5 字符: 6

exit [Microsoft.Playwright.Program]::Main($args)

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (Microsoft.Playwright.Program:TypeName) []，RuntimeException
FullyQualifiedErrorId : TypeNotFound`

你执行语句的位置错了，应该在项目的bin\Debug\netXX下，后面的netXX对应你的.nert版本

Closing since it seems stale, please re-file if you still have questions.


Does not work with Composer Autoload

It's great that this is on Packagist, but it's hard to use because Composer doesn't pick up the classes for autoload

Thanks. I looks like we don't use namespaces as blocks and not according to http://www.php-fig.org/psr/psr-1/ standard. I will change that.

Version 2.0 is published on https://packagist.org/packages/opencage/geocode, enjoy. Let us know if you have any issue or suggestions.


Delete init.py in tests directory

When trying to install this module in a global namespace, 'tests' is installed as a separate module that conflicts with other packages (if they have the same problem).
There are different ways to avoid this, but I'm trying the easy approach, and sending a pull request to see if the tests will still run in travis.

Tests passed in py3, but failed in py2

Probably makes sense to move the test package inside flask_pymongo

It is an alternative,
see https://pytest.org/latest/goodpractises.html

I've tested and I'm ok to merge this? 48 hours to lodge any objections?


Rotation Count in Array

Have you read the Contributing Guidelines on Pull Requests?
(YES)
Description
In an given sorted array we will have to find the number of count of rotation after which we have got this array. Here, we take into observation the element I which is greater than the element i+1.after we get this element we calculate the number of rotation that might have occurred .
Checklist

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

Related Issues or Pull Requests
#6814

Please Check PR @ankitaggarwal23 @HarshCasper

Please Check PR @ankitaggarwal23 @HarshCasper

Please Check the PR @ankitaggarwal23 @HarshCasper

Do check @HarshCasper @atarax665 @ankitaggarwal23

Kindly Don't Spam in the PR for review.


added some update to playground

Marge this PR. I will provide a complete overview of the playground after adding all the components .

mama(s) will look at this and try to merge if things look good by sunday this week. If not change my name to Ahnaf OPRIO, mama. sorry for bottlenecking yall cause I LOVE LOVE all the contributions being made (better than I could have even done Id argue) just super busy :<

@nnlgsakib Have you tested your code? I was reviewing your code on my local machine and faced this issue, I don't know why is this happening!

Did you run an install inside the playground to make sure it has access to all the packages in node_modules it needs?
Give me a list of steps you did

@nnlgsakib Have you tested your code? I was reviewing your code on my local machine and faced this issue, I don't know why is this happening!

This is not a problem. It shows because I used custom syntax rules. You cut that error and everything will be fine. This does not cause any problems in production mode
Example here: https://mama-lang-v2.vercel.app/

@nnlgsakib mama arketa bar merge conflicts gula thik koro please and ill merge

goddamnit i cant git checkout your branch or else i was just gonna resolve the conflict on that one package-lock.json :"(

@nnlgsakib still showing


Section05 FAQ + Tab and Accordion

Outsource FAQ section 60/40 FAQ with tabs and accordions component

done


New Game: Wild West Adventure

Wild West Adventure is an action-adventure game set in the Wild West. The player controls a cowboy character who completes missions, fights bandits, and explores various towns and landscapes.

@Sulagna-Dutta-Roy Please assign me this issue under gssoc'24.

Did you receive 150 points? I have assigned some Issues previously. Check your scores please @taneeshaa15

Kindly respond @taneeshaa15

@Sulagna-Dutta-Roy Assign me.

Did you receive 150 points? I have assigned some Issues previously. Check your scores please @taneeshaa15

Kindly respond @taneeshaa15


NIFI-12405 Fixed the problem that CaptureChangeMySQL uses BinaryLogClient to cause too many sessions

Summary
NIFI-12405
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-12405
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-12405

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 21

Licensing

[x] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[x] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[x] Documentation formatting appears as expected in rendered files

@wanghangyu817 Thanks again for this contribution. As it has been several months, and there is now a merge conflict, I am closing this pull request for now. Please feel free to reopen the pull request after rebasing against the current main branch when you are ready to address the feedback provided.


Signature pad isnt working in modal

Signature pad is not working in modal. I use Vue.js where i have at start v-if set on false in canvas and when i change v-if on true canvas show but doesnt work.

Is there any option how to do it ? I saw last issue with this title but there was not correct answer.

Can you create a repo with a minimal reproduction?

CreateOwnDocument.txt
Dialog.txt
I add you my two files here. I hope it will be enought.
I have component in vue Dialog its modal window witch i call in my file CreateOwnDoument.
When i have variable showSignDialog on true at start everythink is ok but when i set it on false at start signiture pad is not working

My guess is that switching it to true creates a new canvas element that doesn't have signature pad attached. Can you initialize signature pad after setting it to true?

I found the problem, i used 2 same canvas and they fought each other. So thank you for help.