New locale resolution algorithm to use full preferred locale list, include scriptCode in Locale.

This change depends on the LGTM-ed change: https://github.com/flutter/engine/pull/6518
This PR adds the scriptCode to the list of preferred locales as well as provides a new locale resolution algorithm that considered the preferred locale list instead of just the default (first) locale.
Locale Resolution algorithm:
I would like to have opinions on overhead vs time complexity of dart data structures.
The algorithm I use first places all of the app's supported locales into a series of hashmaps, keyed by "substring-hashes" of their properties. For example, consider the Locale zh-Hant_TW. This locale is broken into zh, zh-Hant, zh_TW, and zh-Hant_TW. Each of these four go into a corresponding hashmap that maps unique "substrings" to the first instance of that combination.
With this system, both zh-Hant_TW and zh-Hant_HK map to the same locale when only considering languageCode and ScriptCode and acts as if we chose the first occurrence.
Then, we loop over all preferred locales and match against the 4 hashmaps in order of most specific to least specific. To emulate the behavior of selecting a more specifically matched but less preferred locale, we delay matching by only a languageCode and nothing else until the next locale in the user's preferred locale is considered and does not have a better match. In the case of the default (first) locale, since the default locale is usually highly preferred over any secondary locale, we make an exception to the above rule and allow matches by only language code to resolve instantly.
Breaking changes
This PR potentially introduces breaking changes to the localization bindings API.
The localeResolutionCallback breaking change (from supporting List<Locale> instead of a single Locale) has been avoided by providing a higher priority localeListResolutionCallback that is called before the current one if it is provided.
However, there are other places (see binding.dart) where the API is likely going to have to change to pass the List around instead of the single locale on the observers and callbacks there.

This is dramatically lacking in tests. In particular, the locale resolution algorithm is going to need extensive tests. I recommend pulling tests from examples in the literature of edge cases that such algorithms must handle.

(Please include links in the tests to the relevant places where you found each case, so that future people updating the tests can study each case and determine how to adjust the algorithm to not break the particular test. I expect this will be especially relevant once we add variant and extension support.)

Yes, I haven't written them yet. This is meant to be a WIP PR to see if the direction I am going with the resolution is appropriate. The final version will have many more tests.

At first glance, this doesn't take into account that the distance between two locales depends on the exact configurations. Here are the rules from CLDR, for comparison.

One of the goals behind this algorithm is that it remain lightweight. I am aware of the weighting and distance metrics system such as the one in: http://unicode.org/reports/tr35/#LanguageMatching
The concern is that since this code is performance critical and increases startup and first frame times as well other places after interaction, a complex algorithm could add non-trivial runtime, especially for mature apps that support a large number of locales.
We provide the localeListResolutionCallback to allow users who require more expensive but accurate resolution to apply custom resolution as their app requires. The one provided here represents a "good enough" fallback that balances accuracy with performance.

One of the goals behind this algorithm is that it remain lightweight. I am aware of the weighting and distance metrics system such as the one in: http://unicode.org/reports/tr35/#LanguageMatching
The concern is that since this code is performance critical and increases startup and first frame times as well other places after interaction, a complex algorithm could add non-trivial runtime, especially for mature apps that support a large number of locales.
We provide the localeListResolutionCallback to allow users who require more expensive but accurate resolution to apply custom resolution as their app requires. The one provided here represents a "good enough" fallback that balances accuracy with performance.

Clearly trading off speed for accuracy is often the right choice. And the addition of an escape hatch to allow people to get more accurate results is great.
It should also be documented more carefully the kinds of problems people can get if that escape hatch is not used. In particular, a matching process that doesn't take into account the 'distances' between particular locales will give suboptimal results. For example, you always want a request of "iw" to match "he" precisely, and vice versa; desired en-IN needs to match closer to en-GB than to en (= en-US); es with a region in the Americas needs to match closer to es-419 than to es (= es-ES). Arabic with a Magreb region should match more closely to one another than to those with regions outside, etc.
It also help to understand your user scenarios. In the typical case, the locale matching is called once per app startup, so if it takes a few microseconds it is lost in the noise. But it sounds like that might not be the situation that you're concerned with. Can you explain a bit more?

Why is en the same as en-US? I don't see that in the IANA language subtag registry.

The problem with the TR#35 algorithm is that it requires reading data (=I/O, which is slow, certainly more than microseconds) and a three-way nested for loop (O(LMN), also likely to be slow). I agree that we want correctness here, but surely we can find a better path to correctness than TR#35's algorithm...

I think at this point, a reasonable way to continue on with this is to land a simpler/fast algorithm for now, as we have a few significant bugs that should be fixed asap. I agree that the more accurate and complex algorithm should also be implemented, but it seems unlikely that it can be completed to satisfaction rapidly. The algorithm described here I think can be considered strictly better than the even more rudimentary algorithm we had before.
I will begin implementing a full algorithm resolution, but in the mean-time, an intermediary algorithm should help bridge the poor localization we currently have to the fully implemented one in the future.
The bug I am referencing is: https://github.com/flutter/flutter/issues/22642 and is caused by a simple lack of script codes at all in our system.

Gary and I discussed this. Our current plan is:

Collect a bunch of test cases from examples in the Unicode specs, the W3C specs, etc (if you have any examples you care about, let us know here). These would be in the form { ordered list of preferred locales, ordered list of supported locales, expected selected locale }.
Write a unit test that verifies those test cases.
Once we have an algorithm that passes those unit tests, land it.
Write a doc that discusses all the specced and implemented algorithms of Android, iOS, Unicode, W3C, etc, and how they handle things. Develop unit tests to show how these algorithms handle cases that aren't handled by the simple algorithm.
Come up with an algorithm that handles all the unit tests and is still simple. Land that.
Implement the full TR#35 algorithm e.g. in package:i18n, so that people who want to use that can do so.

Why is en the same as en-US? I don't see that in the IANA language subtag registry.

That comes from Unicode, not IANA. The principle is that subtags can be omitted for the default case. So "en-Latn-US", "de-Latn-DE", "fr-Latn-FR" are considered equivalent to "en", "de", "fr", resp.
Where necessary for disambiguation, of course, the fields can't be omitted. You need to write "de-AT" and "fr-CA". This was standard industry practice — Unicode formalized it with specific equivalence data in CLDR.

Gary and I discussed this. Our current plan is:

Collect a bunch of test cases from examples in the Unicode specs, the W3C specs, etc (if you have any examples you care about, let us know here). These would be in the form { ordered list of preferred locales, ordered list of supported locales, expected selected locale }.
Write a unit test that verifies those test cases.
Once we have an algorithm that passes those unit tests, land it.
Write a doc that discusses all the specced and implemented algorithms of Android, iOS, Unicode, W3C, etc, and how they handle things. Develop unit tests to show how these algorithms handle cases that aren't handled by the simple algorithm.
Come up with an algorithm that handles all the unit tests and is still simple. Land that.
Implement the full TR#35 algorithm e.g. in package:i18n, so that people who want to use that can do so.

That sounds like a good plan; I can pull together test cases we use in google and elsewhere. Note that the CLDR algorithm is not set in stone; we can make improvements — and if this work comes up with better mechanisms we could certainly consider that.
Also "three-way nested for loop (O(LMN), also likely to be slow)". In practice, it doesn't have to be. Code in ICU builds a tree structure so that you check the language, stop there or pick up a script subtree, check for the script in that subtree, and stop there or pick up a list of regions => values. So you do have 3 hash lookups, but not O(LMN).

That sounds like a good plan; I can pull together test cases we use in google and elsewhere. Note that the CLDR algorithm is not set in stone; we can make improvements — and if this work comes up with better mechanisms we could certainly consider that.

Would greatly appreciate any tests you can find. There doesn't seem to be a big spread of canonical test cases online, at least not that I know of.

Interesting about the CLDR fallback thing. I didn't know that. Can you point me to the relevant part of the spec and/or CLDR data? I'd love to read up more on that.

cc @cbracken I was informed you might have opinions on what certain edge cases should resolve to.

cc @goderbauer for review

I strongly agree on not using "preferred". I would feel even better about
replacing "default" by something like "basic".
No major application supporting internationalization should use this
algorithm as is, without using the hook to use a more sophisticated
algorithm: for example, no Google code should use it. So fine to include it
for simple applications, but we should be careful not to use a name that
suggests to people that it is sufficient for general production work.
Mark
On Wed, Nov 7, 2018 at 11:09 PM Gary Qian<EMAIL_ADDRESS>wrote:

@GaryQian commented on this pull request.
In packages/flutter/lib/src/widgets/app.dart
https://github.com/flutter/flutter/pull/23583#discussion_r231696711:

/// perfect match can supercede the languageCode-only match if it exists.

///
/// When a preferredLocale matches more than one supported locale, it will resolve
/// to the first matching locale listed in the supportedLocales.
///
/// When all [preferredLocales] have been exhausted without a match, the first countryCode only
/// match will be returned.
///
/// When no match at all is found, the first (default) locale in [supportedLocales] will be
/// returned.
///
/// This algorithm does not take language distance (how similar languages are to each other)
/// into account, and will not handle edge cases such as resolving de to fr rather than zh
/// when de is not supported and zh is listed before fr (German is closer to French
/// than Chinese).
static Locale fallbackLocaleResolution(List preferredLocales, Iterable supportedLocales) {

I agree that this is not quite a "fallback" but
"selectPreferredSupportedLocale" seems to give off the impression that our
algorithm is superior because it is "preferred". It also may cause
confusion where they think our algo is "preferred" over the user-provided
callbacks.
I would feel better about a name along the lines of
defaultLocaleListResolution() to maintain consistency with the naming of
localeListResolutionCallback and localeResolutionCallback
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/23583#discussion_r231696711, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJKyMO61FuRdTfm-7I5XFnGEAPp5ohxxks5us1obgaJpZM4X8ri-
.

Sorry, I overlooked this earlier.
This is not in IANA, it is in Unicode (CLDR/LDML). You can see
http://cldr.unicode.org/index/cldr-spec/language-tag-equivalences, and the
equivalence is implicit in LDML by the way the data structures are set up.
But people shouldn't have to dig that out: there should be clear statement
LDML spec for when two locale identifiers are considered equivalent.
I filed a ticket on that and will see if it can be expedited.
Mark
Also expanded https://goo.gl/kizkrm with more background info. Still a work
in progress...
On Mon, Oct 29, 2018 at 10:38 PM Ian Hickson<EMAIL_ADDRESS>wrote:

Why is en the same as en-US? I don't see that in the IANA language subtag
registry.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/23583#issuecomment-434089999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJKyMIi1R0e2NjU0YqiDhnGTAyp4jXO2ks5up3U8gaJpZM4X8ri-
.


MacBook(Trackpad) in single scroll triggering multiple times.

In slick slider mouse scroll, It is working fine. But if the user is scrolling with a trackpad (MacBook) it is almost impossible to scroll a single image at a time.in a single scroll, it scrolls multiple slides.
So my question is: Is there a way to check if the user is scrolling by trackpad, and then changing the behavior of the scrolling, so it becomes less sensitive, and thereby easier to scroll a single slide at a time?
Slick version 1.9.0

very relevant question

very relevant question

Just decrease the speed and it will work perfectly!


Complication Support

Complication Support For The watchOS Version.

Completed In Release: v1.0
Commit: https://github.com/markydoodled/Timetable/commit/ed2f636eefba12a174c683fbe9c4dfa714151cf0


Update lost metadata

See below:
>>> c = Box(box_intact_types = [list])
>>> c.a = [1,2]
>>> c.a
[1, 2]
>>> c.update({'b': [3,4]})
>>> c.b
<BoxList: [3, 4]>

Thanks for the find and the report!
Resolving in 3.4.3 https://github.com/cdgriffith/Box/pull/99


Support sending notifications in PaymentActionRequired webhook

10.0 will support automatically sending mail to customers to alert them when a SCA payment requires confirmation. This is great, although the webhook uses Mail::to which restricts us to one message channel. It would be even more useful for this to support Notifications instead of Mailables, so for example I can notify customers by mail and SMS.
As an added benefit the notifications can be queued, although #687 may handle this differently.
In the meantime I can of course just override the method in my own controller but it does require me to repeat the actual webhook handling logic.

I was actually thinking of replacing that with a notification. Will look into this!

Will be in the next release. You will be able to define a custom notification class as so:
CASHIER_PAYMENT_NOTIFICATION=App\Notifications\ConfirmPayment


Split Parser into command-specific classes #137

Closes #137
This PR continues from #247
This PR will adopt the simpliest method of implementing #137 which is to split all parsing code for different commands into their own classes. Commands like List, Exit and Clear does not perform any parsing and thus are not affected.

v1
@MightyCupcakes submitted v1 for review.

[v1 1/6] Extract common parser constants/methods to seperate classes
[v1 2/6] Extract AddCommandParser from Parser class
[v1 3/6] Extract EditCommandParser from Parser class
[v1 4/6] Extract DeleteCommandParser from Parser class
[v1 5/6] Extract SelectCommandParser from Parser class
[v1 6/6] Extract FindCommandParser from Parser class

(:books: Archive)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/1/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@chao1995
Regarding the commit message - yes newcomers wont know about it but I think it is important because this point was raised up during a discussion and reviewing process and would be lost if it is in included in the commit.
I will add in your point about SRP in the commit message though as it will provide more context for new developers

v2
@MightyCupcakes submitted v2 for review.

[v2 1/6] Extract common parser constants/methods to seperate classes
[v2 2/6] Extract AddCommandParser from Parser class
[v2 3/6] Extract EditCommandParser from Parser class
[v2 4/6] Extract DeleteCommandParser from Parser class
[v2 5/6] Extract SelectCommandParser from Parser class
[v2 6/6] Extract FindCommandParser from Parser class

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v1 and v2)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/2/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@chao1995 any input for this iteration?

v3
@MightyCupcakes submitted v3 for review.

[v3 1/6] Extract common parser constants/methods to seperate classes
[v3 2/6] Extract AddCommandParser from Parser class
[v3 3/6] Extract EditCommandParser from Parser class
[v3 4/6] Extract DeleteCommandParser from Parser class
[v3 5/6] Extract SelectCommandParser from Parser class
[v3 6/6] Extract FindCommandParser from Parser class

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v2 and v3)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/3/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@yamgent @chao1995 let's review fast. This is a high priority PR.

@MightyCupcakes you need to update docs in the next iteration. Otherwise docs will not match the code when this PR is merged.

v4
@MightyCupcakes submitted v4 for review.

[v4 1/7] Extract common parser constants/methods to seperate classes
[v4 2/7] Extract AddCommandParser from Parser class
[v4 3/7] Extract EditCommandParser from Parser class
[v4 4/7] Extract DeleteCommandParser from Parser class
[v4 5/7] Extract SelectCommandParser from Parser class
[v4 6/7] Extract FindCommandParser from Parser class
[v4 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v3 and v4)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/4/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Some feedbacks on the images.
DeletePersonSdForLogic.png

LogicClassDiagram.png

Agreed with changes suggested by @chao1995.

v5
@MightyCupcakes submitted v5 for review.

[v5 1/7] Extract common parser constants/methods to seperate classes
[v5 2/7] Extract AddCommandParser from Parser class
[v5 3/7] Extract EditCommandParser from Parser class
[v5 4/7] Extract DeleteCommandParser from Parser class
[v5 5/7] Extract SelectCommandParser from Parser class
[v5 6/7] Extract FindCommandParser from Parser class
[v5 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v4 and v5)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/5/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Minor change for LogicClassDiagram.png.

@MightyCupcakes I updated the review, as I realized that the code is actually creating the Command in the parse() method, not in the constructor method. Your sequence diagram need to show that more clearly.

v6
@MightyCupcakes submitted v6 for review.

[v6 1/7] Extract common parser constants/methods to seperate classes
[v6 2/7] Extract AddCommandParser from Parser class
[v6 3/7] Extract EditCommandParser from Parser class
[v6 4/7] Extract DeleteCommandParser from Parser class
[v6 5/7] Extract SelectCommandParser from Parser class
[v6 6/7] Extract FindCommandParser from Parser class
[v6 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v5 and v6)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/6/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

I tweaked the diagram a bit. File attached.

LogicComponentClassDiagram.pptx

v7
@MightyCupcakes submitted v7 for review.

[v7 1/7] Extract common parser constants/methods to seperate classes
[v7 2/7] Extract AddCommandParser from Parser class
[v7 3/7] Extract EditCommandParser from Parser class
[v7 4/7] Extract DeleteCommandParser from Parser class
[v7 5/7] Extract SelectCommandParser from Parser class
[v7 6/7] Extract FindCommandParser from Parser class
[v7 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v6 and v7)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/7/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v8
@MightyCupcakes submitted v8 for review.

[v8 1/7] Extract common parser constants/methods to seperate classes
[v8 2/7] Extract AddCommandParser from Parser class
[v8 3/7] Extract EditCommandParser from Parser class
[v8 4/7] Extract DeleteCommandParser from Parser class
[v8 5/7] Extract SelectCommandParser from Parser class
[v8 6/7] Extract FindCommandParser from Parser class
[v8 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v7 and v8)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/8/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@chao1995 @yamgent @damithc I guess it's annoying if @CanIHasReview keeps re-requesting reviews every iteration :-P

@pyokagan

I guess it's annoying if @CanIHasReview keeps re-requesting reviews from reviewers who already gave approvals every iteration :-P

Yes, that is a downside. As you suggested on slack, a more reasonable middle ground is to re-request reviews only from those who have not given approval yet and get everyone's approval one more time just before merging.

@pyokagan

I guess it's annoying if @CanIHasReview keeps re-requesting reviews from reviewers who already gave approvals every iteration :-P

I actually prefer it requests review from me again (because that means I miss something in my review). So it's not annoying to me.
But perhaps the downside is that the more reviewers you request, the slower the iteration might be.

@MightyCupcakes I think you can go ahead with the next iteration as rest of the reviewers have approved a previous version of this PR. Especially because we need to merge this urgently.

v9
@MightyCupcakes submitted v9 for review.

[v9 1/7] Extract common parser constants/methods to seperate classes
[v9 2/7] Extract AddCommandParser from Parser class
[v9 3/7] Extract EditCommandParser from Parser class
[v9 4/7] Extract DeleteCommandParser from Parser class
[v9 5/7] Extract SelectCommandParser from Parser class
[v9 6/7] Extract FindCommandParser from Parser class
[v9 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v8 and v9)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/9/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

@chao1995 any comments?

@damithc No comments from me.

@MightyCupcakes can proceed to the next iteration

v10
@MightyCupcakes submitted v10 for review.

[v10 1/7] Extract common parser constants/methods to seperate classes
[v10 2/7] Extract AddCommandParser from Parser class
[v10 3/7] Extract EditCommandParser from Parser class
[v10 4/7] Extract DeleteCommandParser from Parser class
[v10 5/7] Extract SelectCommandParser from Parser class
[v10 6/7] Extract FindCommandParser from Parser class
[v10 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v9 and v10)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/10/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v10

Updated commit messages of [v10 2/7] to [v10 6/7]. Removed instances of current and other unnecessary words.
Moved closing bracket in AddCommandParser to the same line as the last parameter.

@MightyCupcakes
I'm not entirely satisfied with the commit message format. In future, let's try to stick to this flow:
{current situation}
{why it is bad}
{what is being done about it}

e.g.
Parser class contains code for parsing all command types.
This makes the Parser class bloated and can be considered
a violation of the Single Responsibility Principle. The solution
is to extract code for parsing each command into a separate
*CommandParser class. However, that can result in bidirectional
links between those classes and the Parser class because some
of the constants and utility methods in Parser class will be used
by those classes as well.

Let's extract reusable constants into a new CliSyntax class and
utility methods into a new ParserUtil class so that such
bidirectional links can be avoided.

v11
@MightyCupcakes submitted v11 for review.

[v11 1/7] Extract common parser constants/methods to seperate classes
[v11 2/7] Extract AddCommandParser from Parser class
[v11 3/7] Extract EditCommandParser from Parser class
[v11 4/7] Extract DeleteCommandParser from Parser class
[v11 5/7] Extract SelectCommandParser from Parser class
[v11 6/7] Extract FindCommandParser from Parser class
[v11 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v10 and v11)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/11/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v12
@MightyCupcakes submitted v12 for review.

[v12 1/7] Extract common parser constants/methods to seperate classes
[v12 2/7] Extract AddCommandParser from Parser class
[v12 3/7] Extract EditCommandParser from Parser class
[v12 4/7] Extract DeleteCommandParser from Parser class
[v12 5/7] Extract SelectCommandParser from Parser class
[v12 6/7] Extract FindCommandParser from Parser class
[v12 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v11 and v12)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/12/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

v13
@MightyCupcakes submitted v13 for review.

[v13 1/7] Extract common parser constants/methods to seperate classes
[v13 2/7] Extract AddCommandParser from Parser class
[v13 3/7] Extract EditCommandParser from Parser class
[v13 4/7] Extract DeleteCommandParser from Parser class
[v13 5/7] Extract SelectCommandParser from Parser class
[v13 6/7] Extract FindCommandParser from Parser class
[v13 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v12 and v13)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/13/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.

Well there is no harm in standardizing everything to make it clear that it is from one single PR.

The design can be improved by applying the Single Responsibility
Principle as follows: limit the Parser's responsibility to determining
which type of command is being parsed and move the responsibility
of parsing each type of command to a separate *CommandParser class.

There is a little disconnect between this and the following paragraph. I would modify the paragraph by appending some explanation about the bi-directional dependency like so:

The design can be improved by applying the Single Responsibility
Principle as follows: limit the Parser's responsibility to determining
which type of command is being parsed and move the responsibility
of parsing each type of command to a separate *CommandParser class.
However, this will result in bidirectional links between these various
*CommandParser classes and the main Parser class because some
of the constants and utility methods in Parser class will be used
by the various *CommandParser classes as well.

If you have no problems, I can push out a new iteration with the new commit message right away to save on the round trip time.

There is a little disconnect between this and the following paragraph. I would modify the paragraph by appending some explanation about the bi-directional dependency like so:

Good point. Yes can do so. May be add a blank line to separate what is common to all commits from what is specific to this commit (in the spirit of 'make similar things CLEARLY similar and different things CLEARLY different' -- things that look similar but slightly different are a source of errors).

If you have no problems, I can push out a new iteration with the new commit message right away to save on the round trip time.

Sure.

v14
@MightyCupcakes submitted v14 for review.

[v14 1/7] Extract common parser constants/methods to seperate classes
[v14 2/7] Extract AddCommandParser from Parser class
[v14 3/7] Extract EditCommandParser from Parser class
[v14 4/7] Extract DeleteCommandParser from Parser class
[v14 5/7] Extract SelectCommandParser from Parser class
[v14 6/7] Extract FindCommandParser from Parser class
[v14 7/7] Update developer's documentation

(:books: Archive) (:chart_with_upwards_trend: Interdiff between v13 and v14)

Checkout this PR version locally
git fetch https://github.com/se-edu/addressbook-level4.git refs/pr/272/14/head:BRANCHNAME

where BRANCHNAME is the name of the local branch you want to fetch this PR to.


Solution of issue #620 New Home-Page style

Resolved issue #620
Added better navbar
carousel
animated images
better web design
better fonts
and tried to resolve the issue with page-responsive behaviour.

Issue is not assigned to you @ATOMworkplace


[LTO] Support LLVM LTO for IRGen and frontend

This commit adds -lto flag for frontend to enable LTO at LLVM level.
When -lto=llvm given, compiler emits LLVM bitcode file instead of object
file and adds index summary for LTO.
In addition for ELF format, emit llvm.dependent-libraries section to
embed auto linking information
This is pulled out from https://github.com/apple/swift/pull/32237
CC: @compnerd @gottesmm

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@gottesmm I addressed commented points. Could you review again?

I added some cases around clang importer things

@gottesmm sorry for pinging you. Could you take a look again?

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - 41f730b648bc95d81575978d7e0c5ef5d6c987cb

Build failed
Swift Test OS X Platform
Git Sha - 41f730b648bc95d81575978d7e0c5ef5d6c987cb

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - c1ca57ff45d18459ce837777416c56f97074e7b3

Build failed
Swift Test OS X Platform
Git Sha - c1ca57ff45d18459ce837777416c56f97074e7b3

I think this PR is ready to merge. Could you merge this?

The tests didnt trigger on the windows builder - this seems to be causing a windows test failure:
https://ci-external.swift.org/job/oss-swift-windows-x86_64-vs2019/1968/
https://ci-external.swift.org/job/oss-swift-windows-x86_64-vs2019/1968/consoleText


Bad tutorial

How are supposed to "Copy the files" into the project? One by one?  Incredible amount of work.
Find a better way to show your point of this tutorial.

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

ID: 3275e223-a9cc-1efb-07ec-01c8501d7a46
Version Independent ID: 538673ca-22c5-2a5c-97c0-1552ae9f7b79
Content: Migrate your app from Xamarin.Forms to .NET MAUI - .NET MAUI
Content Source: docs/get-started/migrate.md
Product: dotnet-mobile
Technology: dotnet-maui
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @smiller7812
The usual way is to drag your files/folders into solution explorer in Visual Studio.
I've just completely simplified the article, following a request from the product team, to link to their migration doc in the .NET MAUI wiki.


fix: remove .js extension for .tsx files

Summary
This PR fixes the build in the examples that use React, by removing the .js extension for .tsx file imports.
Test Plan

[x] pnpm run build succeeds

Just checking, we don't need to add an eslint override for this since there's already this, right?
https://github.com/wallet-standard/wallet-standard/blob/3029519b32ed2fdd265b24a23b99c8f213f4ab1b/.eslintrc#L33-L43


feat: added nvim v0.10.0 deprecated API support

Changes made

[x] If the version is v0.10.0 or higher use the new API.

vim.api.nvim_win_set_option and vim.api.nvim_buf_set_option are combined into vim.api.nvim_set_option_value from v0.10.0 onwards.

[!NOTE]
For height and width it can be used vim.o.lines and vim.o.columns if we want to drop the vim.api.nvim_get_option or vim.api.nvim_get_option_value.

Reference

Deprecated API changes from v0.10.0 onwards

Tested this. It works and fixes buf errors that arise using current version.


all sorts of messed up experimentation, nothing pops out as workable

Looks like the interface is improved by removing a layer of type from it


Running tests with VS2017's test tools

This is in part more of a question than a bug report. Has anybody ever tried running tests with Visual Studio's test tools?
If I try to run them (i.e. the FSharp.Core.UnitTest project), it says there are zero tests. It seems like it tries to find tests in the source, perhaps it doesn't understand F#, or Visual Studio's own test runner doesn't understand NUnit tests to begin with?
Just wondering. I usually use NCrunch (and still working on getting a solid configuration, which isn't trivial for a certain class of tests), but I wanted to do some comparisons with other test runners.

@abelbraaksma Have you installed the VS test runner for NUnit?

Closing old discussion, as after you do:

NUnit test runner
Solution build

You can use the test tools. I also group tests into playlists so that it's easier to handle.

@cartermp, I agree, while it would be nice if VS could somehow hint at this, the feature "an sich" works.


Can't activate any of the built-in node drivers

Version - 2.2 master 11/27
Steps to reproduce (least amount of steps as possible):

Go to node drivers page
Try to activate Exoscale/OpenStack or Rackspace

Result:  Stuck in downloading

Version - 2.2 master 11/4


allow no wal

nice to be able to have an IAVL tree that doesn't need the disk

IAVLTree w/ no DB already does this.

Can we close this?


pyside6 not detected

>>> import Qt
ImportError: No Qt binding were found.

At:
  Qt.py(1984): _install
  Qt.py(2036): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1149): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1176): _find_and_load
  <string>(2): <module>
>>> import PySide6

not sure what is causing it yet. this is inside adobe substance painter that was recently updated to PySide6. Qt.py works fine in the older one that uses PySide2

with QT_PREFERRED_BINDING=PySide2
other QT libraries are not scanned
[Python] Qt.py [info]: Order: 'PySide2'
[Python] Qt.py [info]: Trying PySide2
[Python] Qt.py [info]: ImportError: No module named 'PySide2'

my bad for assuming that this env var prioritises one binding over others but it seems it replaces the list entirely instead of just changing the order. I expected a plural name in the env var for providing a list (QT_PREFERRED_BINDINGS).
I can work with this. once QT_PREFERRED_BINDING is a list Qt.py works fine :-)
thank you.


All logic relying on os.path.sep is wrong on Windows

Provide environment information
Python: 3.8.2
gdown: main
What OS are you using?
Windows 10
Describe the Bug
All the logic using os.path.sep is incorrect on Windows, because Windows paths treat / the same as a \. However, gdown only uses os.path.sep (which is \ on Windows) meaning that it treats perfectly valid paths incorrectly.
The underlying issue is that gdown assumes that the primary path separator is the only path separator, which is not true.
Example of an incorrect usage of os.path.sep to detect directory paths.
Expected Behavior
Support paths with both / and \ on Windows.
To Reproduce
No response

@RunDevelopment I don't own Windows computer so am not able to play around the difference of / and \. Can you propose a fix for it?

As I see it, #313 needs to be fixed before I can propose a fix. You just said that you have no way to verify that any fix I propose works. So there should at least be a test so a Windows CI runner can verify that my fix is correct.
So I'm currently working on #313.


what: gives odd output

addmittedly
**`what`:**

is an odd input.  but, mistletoe's output is

**what:**
\n

while commonmark's dingus' output is

what:

Hi @greg-minshall, It looks like this kind of problem was fixed in v0.8.2 (see #70). Maybe you use an older version?

yes.  v.0.8.1.  (current, at least as of a day or so ago, on arch "aur".)  thanks!

OK, so hopefully v0.8.2 from https://pypi.org/project/mistletoe/ will arrive into the AUR soon as well. :) I guess the community around Arch Linux manages that update process, somehow...


More shared_ptr ambiguity fixes

MSVC 2012 is strange ;)

moved another using std::tr1::shared_ptr into the namespace.
encasulated an include statement into a ifndef
expanded an #if statement by (_MSC_VER >= 1700) beacause VC 2012
defines __cplusplus = 199711L but delivers C++11 libs.

Now it builds fine here too.

Should this be closed?

Good question. The osl_pvt.h change is irrelevant now, but I wonder if the oslconfig.h change is still helpful to us. I don't have a Windows machine to know if _MSC_VER >= 1700 (which I think corresponds to MSVS 2012?) is tantamount to assuming it's C++11 enough for our purposes.  Do you know?

We've long since switched to C++11 as minimum. Closing.


[FEATURE REQUEST] Continue playing audio on phone when screen off

I am trying to set up a camera to use as a baby monitor. It's setup in hassio but need constant sound to hear for crying. Is there a way to extend this to keep audio going after turning off the phone screen?

On iOS if you chose the PiP and move the window to the side it will continue to play with the screen locked

I've tested several ways. None of them worked on my phone. There needs to be more research on this.

On iOS 18 (beta) the sound still plays when locked


Fix: Fixed issue with open terminal as admin not working

Resolved / Related Issues
Items resolved / related issues by this PR.

Closes #11443
Related #11281
Related #11034

Validation
How did you test these changes?

[x] Built and ran the app
[ ] Tested the changes for accessibility

If you get a chance, can you convert this to use the new rich commands?

We may use that to add Open in terminal to context menu

Let's start with the shortcut, it should already be shown in the context menu because of the shell extension.


Make the default UI palette more intuitive

And in time, allow the palettes to be saved in local storage.

The default UI theme is fine. Opened issue #24 for making UI themes editable.


where to import the Pruner class from?

readme shows a Pruner class but it doesn't exist in the codebase?

It supposed to be your Pruner class which can interact with IntegralGroup objects.
We are preparing update of the library, it will include some vanilla prunes and more examples.


Wrong link to subscribe to IRTF mailing lists

Describe the issue
When using "venue:" in markdown, the link to subscribe to the CFRG mailing list is wrong. I assume this applies to all IRTF RGs but I have not checked. When using
venue:
group: "Crypto Forum"
type: "Research Group"
mail<EMAIL_ADDRESS>arch: "https://mailarchive.ietf.org/arch/browse/cfrg/"
github: "sfluhrer/ml-kem-security-considerations"
latest: "https://sfluhrer.github.io/ml-kem-security-considerations/draft-sfluhrer-cfrg-ml-kem-security-considerations.html"
or
venue:
group: "Crypto Forum"
type: "Research Group"
mail<EMAIL_ADDRESS>arch: "https://mailarchive.ietf.org/arch/browse/cfrg/"
github: "sfluhrer/ml-kem-security-considerations"
latest: "https://sfluhrer.github.io/ml-kem-security-considerations/draft-sfluhrer-cfrg-ml-kem-security-considerations.html"
The following non-existing link is used:
Subscribe at https://www.ietf.org/mailman/listinfo/cfrg/.
The correct link is
https://mailman.irtf.org/mailman/listinfo/cfrg
Code of Conduct

[x] I agree to follow the IETF's Code of Conduct

@emanjon, This is a kramdown-rfc issue.


Roll Engine from e99aba6a3807 to 2a2fcb3d1b35 (2 revisions)

https://github.com/flutter/engine/compare/e99aba6a3807...2a2fcb3d1b35
2021-11-24<EMAIL_ADDRESS>Roll Skia from e051cd35e4d5 to 17667b00b942 (3 revisions) (flutter/engine#29929)
2021-11-24<EMAIL_ADDRESS>Roll Dart SDK from 1f763cc94608 to a9ec4963f933 (1 revision) (flutter/engine#29928)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


error in generateImage

Hi, Im still having the issue. I will send you the image of the error and how is my code.

Hi you can send your api key give me for test
@.***

Hey, I cant see your email

Hey, I cant see your email

<EMAIL_ADDRESS>

I already sent you an email.

@Aaron1338 i try with your api key it work

Request

Response

I will try it, thank you!


storage backend

Hi,
does advisor server have any way to persist trails to a storage back-end?
If such an option isn't available atm could you point me to the source code best suited to extend with such capabilities?

The data is stored in database, actually in sqlite from Django.
You may update the implementation of API server to store data in other storage or change the Django storage backend.

@tobegit3hub
Thanks for your answer. Changing the Django storage backend was straight forward. :-)


Unable to install the plugin after Xamarin.Android.Support.Compat 27.0.2 update

Bug Information
Version Number of Plugin: 3.1.3
Other version info below:
Microsoft Visual Studio Professional 2017
Version 15.7.1
VisualStudio.15.Release/15.7.1+27703.2000
Microsoft .NET Framework
Version 4.7.02556
Installed Version: Professional
C# Tools   2.8.0-beta6-62830-08. Commit Hash: e595ee276d14e14bfb3eb323fb57f2aa668bddea
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Merq   1.1.17-rc (cba4571)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Mono Debugging for Visual Studio   4.10.5-pre (ab58725)
Support for debugging Mono processes with Visual Studio.
NuGet Package Manager   4.6.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.
ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info
ResourcePackage Extension   1.0
ResourcePackage Visual Studio Extension Detailed Info
Visual Basic Tools   2.8.0-beta6-62830-08. Commit Hash: e595ee276d14e14bfb3eb323fb57f2aa668bddea
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Visual F# Tools 10.1 for F# 4.1   <IP_ADDRESS>.  Commit Hash: 16ecf5a30ad868d183c58e4a71a71c23d4ed3ba9.
Microsoft Visual F# Tools 10.1 for F# 4.1
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
VisualStudio.Mac   1.0
Mac Extension for Visual Studio
VSColorOutput   2.5.1
Color output for build and debug windows - http://mike-ward.net/vscoloroutput
Xamaridea.VisualStudioPlugin   1.0
VS + Xamarin + IDEA = Love
Xamarin   <IP_ADDRESS>2 (396b18cef)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin Designer   4.12.264 (fc37cd02e)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.
Xamarin.Android SDK   <IP_ADDRESS> (HEAD/342b2ce96)
Xamarin.Android Reference Assemblies and MSBuild support.
Xamarin.iOS and Xamarin.Mac SDK   <IP_ADDRESS> (7e782c1)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.
Steps to reproduce the Behavior
Install MvvmCross 6.0.1 or update the Xamarin.Android.Support.Compat packages to 27.0.2
Try to install the Media plugin which still uses Xamarin.Android.Support.Compat <IP_ADDRESS>
Expected Behavior
The plugin should install just fine
Actual Behavior
Install fails with  Error NU1107	Version conflict detected for Xamarin.Android.Support.Compat. Reference the package directly from the project to resolve this issue.
ConnectDrive.Droid -> MvvmCross.Droid.Support.V7.RecyclerView 6.0.1 -> Xamarin.Android.Support.v7.RecyclerView 27.0.2 -> Xamarin.Android.Support.Compat (= 27.0.2)
ConnectDrive.Droid -> ConnectDrive.Common -> Xam.Plugin.Media 3.1.3 -> Xamarin.Android.Support.Core.Utils <IP_ADDRESS> -> Xamarin.Android.Support.Compat (= <IP_ADDRESS>).
Screenshots

So, you should manually install Support.COmpat and Core.Utils 27.0.2 manually

NuGet isn't very smart so you have to do things manually if there is twisted and tangled version numbers and dependencies


Support multiple extensions

I think this library would be a lot better if we could choose to generate images in multiple extensions and let the browser choose the format that it supports.
Currently, either original extension of an image is used, but when a condition is met, it can be changed to WebP. Native NextJS image loader will detect support for an image format and serve the image in the best possible format to a user. This can be replicated, by usage of picture element:
<picture>
    <source srcset="path.AVIF 1x, path.AVIF 2x" type="image/avif">
    <source srcset="path.WEBP 1x, path.WEBP 2x" type="image/webp">
    <img srcset="path.JPG 1x, path.WEBP 2x" src="path.JPG" width="200" height="112.5">
</picture>

Hi @NiedziolkaMichal,
It would be nice, but the way the library operates is incompatible with the suggestion.
I use the implementation of Next.js' original image component as much as possible and would have to move to a complete custom version of it to support the suggested approach.
Currently, the WEBP support is excellent across browsers (https://caniuse.com/webp), with 97% coverage.


createSelfSignedCert running out of stack

Describe the bug
The createSelfSignedCert function from SSLCert.cpp crashes many times before occasionally generating the certificate.
How To Reproduce
Steps to reproduce the behavior:

Compile and upload REST-API.ino.
Watch the 'Guru Meditation' errors...

Expected Behavior
Self-signed certificate generation that works reliably.
Actual Behavior
'loopTask' Stack is overrun most of the time for 1024bit key, and always for 2048bit key
ESP32 Module
Please provide specifications of your module

RAM/PSRAM: 520Kb/None
Flash Size: 4MB
Other special properties:

Software (please complete the following information if applicable)

IDE and Version:  Arduino 1.8.9
OS: N/A
Client used to access the server: N/A

Additional context
There appears to be many mbedtls structures allocated on the stack in 'cert_write' function, which may contribute to the problem, or simply mbedtls need space on stack to work with.
Workaround for reliable self-signed certificate generation seems to be running it in separate task with huge stack (i.e. 16Kb), just for this purpose, and than deleting the task afterwards.

Thanks for the report and the analysis! When I implemented and tested it, I did experience the issue sometimes, but it was not as severe as you describe it.
I'll have a look at it. Maybe the time has come to make a background worker task for the server mandatory, as this would help to solve many other problems as well (like blocking handler functions etc.). Adjusting the stack size of the main task does not seem a good solution to me and is hard to do with the Arduino environment, anyway.

Likewise I'm experiencing stack overflow generating both 2048 bit & 1024bit keys.
1024bit key crashes much more quickly than 2048, which suggests an issue towards the end of the process?

I have just run into this bug. It happens every time for me in my application. Happy to share information if anyone would like.

We're now using this library in Meshtastic ( https://github.com/meshtastic/Meshtastic-device ) and the bug described in this issue is 100% reproducible there. I used the work around by the original poster and that got me unblocked.

Hi,
I can confirm the same issue of stack overflow..
I use it in a more complex setup w.r.t. the rest api example sketch, but nevertheless it should work...
In my case, the overflow happens even with 1024 bits cert.
I had no time to check the code, so I have no idea if it is due to a recursive function call, or to a lot of allocations on the stack (or few huge stack allocations or else).
Regards.


Identify changes in common attributes

[ ] deprecated theorems and definitions; may need some integration with #5 for the common case "abc renamed to cde, the old name is restored as a deprecated alias";
[ ] simp
[ ] attributes created with register_simp_attr

It looks like at least simp works.


Error getting sign_in/signin route

Pre-check
It is not working with subdomains. My app not found routes for sign_in or signin with this code:
constraints(Subdomain) do
devise_for :users, path: '', path_names: { sign_in: 'signin', sign_out: 'signout' }, controllers: { :registrations => 'registrations', passwords: "passwords", sessions: "sessions", invitations: "invitations"}
end
I have to add this in order to get the signin:
constraints(Subdomain) do
devise_scope :user do
get '/signin', to: 'devise/sessions#new'
post '/signin', to: 'devise/sessions#new'
get '/signout', to: 'devise/sessions#destroy'
post '/signout', to: 'devise/sessions#destroy'
end
end
Environment

Ruby [2.3.0]
Rails [4.2.5]
Devise [3.4.0]

Hi! Thanks for the issue report.
Could you please provide us a sample application or a clear set of steps that we would have to do that reproduces the issue in isolation?
That would help us find the issue.
Thanks.

Finally I solved. It was an app problem. Thanks

Awesome! Thx. 😄


Fix Commands for new ESX, fixed chat suggestions

Changed register methods for the new ESX.  They no longer rely on es.
Fixed the command suggestions.

Fixed #5

Since @Elipse458 stated he does not want to support the newest es_extended I suppose it would be okay to fork or rebrand it to add the wanted es_extended support.
Since he changed the license to Do What The F*ck You Want To Public License this should be okay.
Still wanna ask @Elipse458, would it be okay to fork/rebrand this tool?

@BrutalBirdie as the license says

I plan on following @Elipse458 with his updates and continuing the new support.


Cli command for Toaster doesn't create toaster.tsx

CLI command installs both toast.tsx and use-toast.ts but doesn't install toaster.tsx

Facing same issue

As a temporary alternative, you can follow 'Manual Installation' section.
https://ui.shadcn.com/docs/components/toast

I'm actively working on a fix for this. For now follow the manual installation. Thank you.

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


WIP [need feedback] - Campaign thermometer

updated models
updated repository
updated views
added new ImpactType enum
added migration

Resolves #250

Are two _CampaignImpact.cshtml partial views necessary? Their content is identical except for the model type.

@MisterJames Can you rebase and remove conflicts?

@mheggeseth no, the two aren't required and I'm actually wanting to head in a different direction here as well. However, for now this is just enough to meet the requirement. I actually used existing plumbing to pull this together.
In the longer term I would like to see a more permanent solution that could be used inside and ouside of the site, along the lines of #327.

@dpaquette is there any chance you would have a minute to look at this? I am running into the same issue again with the migration (removing a column and table, then several errors after migrations run the second time).

@BillWagner I have a migration on this branch that removes a table. It seems to run fine the first time, but subsequent runs produce EF errors. It may be related to a bug in EF migrations, but I haven't yet got solid proof yet. Please don't merge this guy yet!

I think the problem is because there was another migration that was merged to master.  Try following:
-Checkout and update master.
-Delete and recreate your database by re-running the app.
-Checkout your branch and rebase with master
-Delete your migration and the model snapshot
-Recreate your migration
In theory everything should work.

@MisterJames @dpaquette Once we know what does work, can you send me notes (in whatever short form works) and I'll add it to the contributing.md for all our projects.

@dpaquette So there were two small things I had to do differently:

Checkout and update master.
Delete and recreate your database by re-running the app.
Take a copy of the AllReadyContextModelSnapshot.cs file
Checkout your branch and rebase with master
Delete your migration and replace the model snapshot with the one from master
Recreate your migration
Run the app

If you have also made changes to the sample data generator and would like to see that data, from this point you would need to delete your DB and re-run the app. This would re-create your db and all migrations should work.  This is also a good thing to do (del + regen) before shipping anything up to a PR, just to ensure that any developers that pull your code for the first time can have a seamless experience.
@BillWagner should be good to go here, with the above directions, for some guidelines.

Yah! :shipit:


Fetch tags before releasing

Coverage remained the same at 100.0% when pulling 321a83022927a410770ba6f4120f37c1077ce8d2 on fetch_tags into 4bf51d2a4ebca9110319d2f4ad94ad82a4185082 on main.


Section Title now shows below the image

Fixes #414

The merge commit seems to be messed up.
I recreated Adnan's changes in 19db98191, so this is merged.


[MBL-1695] PPO address formatting

📲 What
This PR adds the pieces to get delivery addresses from GraphQL, and formats that into a user-readable address string, for presentation in PPO.
🛠 How

GraphQL schema was updated to include the address fields. These fields are in a structure, and are not provided in a formatted string.
The text was formatted using the same structure that Android is doing into a readable string. These strings are already presented in the cells as appropriate.
Tests were added to cover formatting.

✅ Acceptance criteria
Tests should pass.

Feel free to merge/take this over while I'm out!


Is stream_framework a standalone or it uses django app.

i am new to this, can you guide me on deployment to aws ec2.
Does this example have celery to a-sync job?

it would be great if you could give some more information of what you want to build and what your current application looks like. this way we can give you bit more detailed suggestions for your case.

Our current webapp is written in php, now we are adopting service oriented architecture to power web and mobile apps.
we can use twitter style feed as separate unit using stream framework, but need to confirm the dependency. Is it standalone or we library for django framwork.

stream_framework is not a standalone program but a library to build
activity streams and news feeds. If you are not familiar with the Celery
stack and don't have an existing infrastructure (eg. Redis/Cassandra and
RabbitMq) I suggest you to have a look at getstream.io, a hosted API
service built on top of stream_framework.
On Mon, Jan 5, 2015 at 4:28 PM, X17<EMAIL_ADDRESS>wrote:

Our current webapp is written in php, now we are adopting service oriented
architecture to power web and mobile apps.
we can use twitter style feed as separate unit using stream framework, but
need to confirm the dependency. Is it standalone or we library for django
framwork.
—
Reply to this email directly or view it on GitHub
https://github.com/tbarbugli/stream_framework_example/issues/10#issuecomment-68723090
.

@tbarbugli
found this in django packages. https://www.djangopackages.com/packages/p/stream-framework/
Is it compatible with python 3 as it showing red mark for production / stable.

unfortunately not yet, one of our dependencies (cqlengine) does not support python 3. If you are not going use Cassandra it should be trivial to run on Python 3. The package is stable and used in production by many users (authors included)

@tbarbugli  we are currently using Redis as suggested by Thierry. Actually, we are experimenting in order to learn the SOA and thought building a independent feed system would align with our goal. In my understanding , We need

django > stream_framework
django - celery > rabbitmq
redis

@tbarbugli  lastly, is it the same project you're using at getstream.io or the advanced / modified version of it.

at getstream.io we use the version of stream_framework published on PyPI

@tbarbugli https://github.com/tbarbugli/stream_framework_example/blob/master/requirements/base.txt
i couldn't find rabbitmq as dependency.

you are looking at python requirements. RabbitMQ is not a library, but a server you should install and configure in order for Celery to store fanout tasks. During development you can use celery without rabbitmq with the CELERY_ALWAYS_EAGER setting.

thanks a lot for insight. i will setup the app and will ping you if run into trouble.
PS: will definitely try getstream.io and let my friends know about the seamless service.

@tbarbugli quick performance insight.
we are using stream framework for two verbs : follow user & favorite item
The activity feed gets generated as soon as the user logs into dashboard based on timestamp, we are not much concerned with notification system. How much stability can we achieve on stream framework. Any recommendation on the configuration side to increase performance.

stream framework and the server components used (redis/cassandra, celery, rabbitmq) are battled tested, you should not expect stability problems from them.

@tbarbugli  How much scalable is it, users ? will give us timeline to build upgrade or switch to service.

@tbarbugli  Is there any inbuiilt api to the framework for this example to retrieve data in json/xml.

no it is up to the user to decide how to interface feeds. For this I suggest you to look at django restful framework.

@tbarbugli  where does the fixtures loads the samples data. as i am unable to view in sqlite.

fixtures are defined in core/fixtures, for sake of simplicity we embedded a ready sqlite db in the repo

@tbarbugli any issues while upgrading Django==1.5.5 to 1.7

we are migrating the project from sqlite to mysql. while using python manage.py migrate

Migrating forwards to 0003_auto__del_field_follow_deleted_at__add_field_follow_created_at.

core:0001_initial

AttributeError: 'module' object has no attribute 'ProgrammingError'


fix: Convert WikiClustering to fast

Checklist for adding MMTEB dataset

Reason for dataset addition: Closes #742

[x] I have tested that the dataset runs with the mteb package.
[x] I have run the following models on the task (adding the results to the pr). These can be run using the mteb -m {model_name} -t {task_name} command.

[x] sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
[x] intfloat/multilingual-e5-small

[x] I have checked that the performance is neither trivial (both models gain close to perfect scores) nor random (both models gain close to random scores).
[x] If the dataset is too big (e.g. >2048 examples), considering using self.stratified_subsampling() under dataset_transform()
[x] I have filled out the metadata object in the dataset file (find documentation on it here).
[x] Run tests locally to make sure nothing is broken using make test.
[x] Run the formatter to format the code using make lint.
[x] I have added points for my submission to the points folder using the PR number as the filename (e.g. 438.jsonl).

Yea some of these conversions @isaac-chung does not add a lot of speed for smaller models (the bootstrapping takes some time), but we would really imagine seeing it for larger models.


Installation error Failed to cd directory '/root/Tools'

I am trying to install the tool in 2 diffrent ubuntu server.
I am getting same error in both pcs. tried installing multiple times. cant seem to find the soultion for this.
Reproduction:
follow the installation steps on fresh installed linux:
git clone https://github.com/six2dez/reconftw
cd reconftw/
./install.sh

same error on both machines. can you help in this?

Due to this error when i start recon it instantly stops after 5 minutes with this same error.

Infoga has been removed from repo a few minutes again, update the tool and run it again

Thanks. i replaced install.sh and reconftw.sh from your changed files.
now the error is gone thanks for this bro. i was stressed due to this from yesterday. thanks again. :)


Add configuration file and keep launcher setting persisted

This is pretty basic but actual data persistence on Avalonia required ReactiveUI which this repo doesn't have, also it would be really overkill.
Newer .net has System.Text.Json built-in so I have to update target framework and save config in json format.
Fix: #4

btw, if there are any others way to save and reinitialize setting. You can tell me to implement it because I don't know much about Avalonia and this solution is my only idea.


Can't resolve '../moment' in multiple locale files at runtime.

All of a sudden started getting the following error for each file in nativescript_toolbox/moment/locale:
ERROR in ../node_modules/nativescript-toolbox/moment/locale/nn.js
Module not found: Error: Can't resolve '../moment' in '/home/bear/dev/app90dr/node_modules/nativescript-toolbox/moment/locale'
 @ ../node_modules/nativescript-toolbox/moment/locale/nn.js 7:50-70
 @ ../node_modules/nativescript-toolbox/moment/locale sync ^\.\/.*$
 @ ../node_modules/nativescript-toolbox/moment/index.js
 @ ./pages/person/person-page.ts
 @ . sync (root|page)\.(xml|css|js|ts|scss)$
 @ ./app.ts

It looks like it's caused by factory(require('../moment'))  on line 7.  It might need to be '../../moment'.
Any ideas?

Nevermind.  Seems like this project is abandoned.  Just imported moment library directly and it works fine.  Closing.


feat(HLS): Add support to HLS-AES128 low latency

Closes https://github.com/shaka-project/shaka-player/issues/4981

Note: This fix depends on https://github.com/shaka-project/shaka-player/pull/4952, that's why it is feat instead of fix

@theodab It's just that a lot has changed since then... the main problem was that partial segments couldn't be read partially. But that has changed with the PR I mentioned.


Can I call  wasm_runtime_full_init many time?

Can I call  wasm_runtime_full_init many time ?
Should t cause the program to crash ?
In my program, I set :
#define WASM_GLOBAL_HEAP_SIZE (1024 * 1024 * 12)
#define WASM_MODULE_INSTANCE_HEAP_SIZE (10241024)
#define WASM_MODULE_INSTANCE_STACK_SIZE (10241024)
#define WASM_ERROR_BUFF_SIZE (128*2)
If the number of wasm instance is too large, call wasm_runtime_instantiate will failed,
there will be a error:"WASM module instantiate failed: Exception: allocate memory failed".
So, I want to call wasm_runtime_full_init  again to alloc a larger memory for WASM_GLOBAL_HEAP, is that correct?

No, you can't call wasm_runtime_full_init twice before you call wasm_runtime_destroy
If you are using Alloc_With_Pool mode during first initialization, then all the data are in the provided memory buffer (which is usually a global buffer), so if you call wasm_runtime_full_init again and provide a new buffer, then all the data such as the wasm_module are no longer useful as they are not in the new buffer.
There are two approaches for your case:

When you encounter an allocate memory failed error, call wasm_runtime_destroy to de-init the runtime, and then you can call wasm_runtime_full_init again to give a new buffer, you will need to do all the things again such as load the module from file
Also, you can use Alloc_With_Allocator mode then you can use all the memory provided by the system

    init_args.mem_alloc_type = Alloc_With_Allocator;
    init_args.mem_alloc_option.allocator.malloc_func = malloc;
    init_args.mem_alloc_option.allocator.realloc_func = realloc;
    init_args.mem_alloc_option.allocator.free_func = free;

Also we have some documents for how to reduce the footprint of the wasm module, please refer to build_wasm_app for more details.


Issue #296 - Job/Recipe Type Sorting

It looks like this PR is sorting by name+version, however the change should be to sort by title+version. The problem is that the system name field does not always match the title display field, which causes the results to appear out of order to the user since title is the value being shown.

It looks like the sorting is being done client-side, but the corresponding services support server-side sorting. Will this work when the user selects other sort columns and the results are paged?

It looks like this PR only addresses jobs tables, but I believe the same issue exists for recipes as well?

@wardcr all good points.  Working these out now...

Okay, I was asking about the recipes because of the addition to the stateService for job types...I was expecting to see a similar block for recipes.

I see now.  That is due to poor naming conventions on my part.  The stateService modifications were to bring the jobTypesFailureRates grid up to speed with the other grids.  I should probably name that object accordingly instead of just generically calling it "jobTypesParams".

The latest commit should address the issues mentioned by @wardcr.  The sorting of job types and recipe types and datagrid sorting won't conflict due to the fact that sorting for these 2 data types in those grids only relates to the order in which they appear in the filter dropdown.  It doesn't affect the sort order of the jobs and recipes themselves - that is still controlled by the datagrid column controls.


I got 2 permaban accounts after using this Programm for 2 days.

I got 2 permabans account after using this Programm for 2 days.  The reason in the window is " Using third-party programs".
Dont use this anymore guys if u want to stay on your account.

I've been using this for bout a year now with no issues, maybe russian server has extra protection like korean?

I've been using this for bout a year now with no issues, maybe russian server has extra protection like korean?

I also played on the Russian server with this program for about a year and everything was fine, but now, while my main account is in a monthly bath, I bought a smurf account of LVL 30 and played on it under the same program, which I downloaded from here with the latest version and that one such account was permanently banned after 2 days "for using third-party programs", that the second Smurf account was banned in the same way after 2 days for the same reason. Since I didn't use anything else except League of Legends and this program, I have no idea then what other software could have blocked me. I am now afraid to turn it on when playing on my main account.

idk if they are botted or not but its usually because of botted accounts they cant say anything so they just write third party programs there is a banwawe so even if u buy accounts they just get banned but idk if its botted or not

That is, you assume that accounts that have been raised to level 30 only on bots will be banned over time, right?

ye actually i got an account to smurf 5 hours ago or smth like that and it was banned after 2 games so :D

hmmm.... interesting.. so need to buy already played accounts to play when your main isnt active :P

So in the end, is it safe?

So in the end, is it safe?

I can't say for sure. But in my case with a ban of 2 new accounts with only this program running, I couldn't think of anything else but it. We need to check, anyway.

I've been using this for bout a year now with no issues, maybe russian server has extra protection like korean?

I also played on the Russian server with this program for about a year and everything was fine, but now, while my main account is in a monthly bath, I bought a smurf account of LVL 30 and played on it under the same program, which I downloaded from here with the latest version and that one such account was permanently banned after 2 days "for using third-party programs", that the second Smurf account was banned in the same way after 2 days for the same reason. Since I didn't use anything else except League of Legends and this program, I have no idea then what other software could have blocked me. I am now afraid to turn it on when playing on my main account.

"I bought a smurf account of LVL 30 and played on it under the same program"
You have answered your question yourself.


Update pyFAI

Maybe this fixes Acq's segfault?

That didn't go through, unfortunately... Will check later.

@CJ-Wright Does acq need PyFAI? (If so, just curious why.)

I think acq may have some backup code that requires pyfai. I'm not certain though. I will take another look.


Lean4 can produce "outdated RPC session" errors from widgets

I don't know what I did to get in this situation (if it was just "leave vim open for awhile without interacting"), but I've seen Lean4 produce tooltips that say the RPC session is outdated, and the fix was essentially having to kill the client or vim.
Presumably if there's some session timeout we should be re-establishing the session when this happens?

Let me explain the current logic: whenever you update the infoview (by moving the cursor), or execute the :Lean(Term)Goal commands, we try to get a valid session id, either by reusing an existing one or opening a new one.  (If we've received an outdated RPC session error, then the corresponding session is marked closed and a new session will be opened the next time.)  This session id is fixed for the entire time the :Lean(Term)Goal popup is open, or until the infoview is updated again (by moving the cursor).  The reason is that the shown goal state contains RPC references (=numbers), which are only valid for this specific session id.
A session id becomes invalid if the worker process for the file is restarted.  (E.g. by executing :e, or by changing the imports, or because lean crashed.)  (It can also become invalid if we fail to send the keepalive notification, but I doubt that's happening here.)

Thanks! Very helpful. I don't know which of those scenarios was involved the time I saw this but will try and see if I can make this happen again.

Relatedly (or unrelatedly), I couldn't find a reason to delay every infoview update, but now I've found something that doesn't work without it -- namely, when first loading a Lean 4 buffer, if you don't move the cursor in the Lean buffer and then go interact with a widget in the infoview, you can get a:
{
  code = -32602,
  message = "Cannot decode params in RPC call 'Lean.Widget.InteractiveDiagnostics.infoToInteractive({\"p\":\"155\"})'\nRPC reference '155' is not valid",
  <metatable> = {
    __tostring = <function 1>
  }
}

Moving the cursor first fixes things, as does putting util.wait_timer(100) in Pin:__update. It doesn't seem right to wait on every update though, this seems to be some startup related race condition.

namely, when first loading a Lean 4 buffer, if you don't move the cursor in the Lean buffer and then go interact with a widget in the infoview, you can get a:

I cannot reproduce this in the latest main version.  If I open the following file and switch to the infoview without moving the cursor, then I can successfully open the popup on 42:
#check 42

Interesting! It only happens on tactic goals.
Try
#check 42
example : 2 = 2 := by rfl

and compare starting with your cursor over r.

Interesting! It only happens on tactic goals.

Okay, I still can't reproduce it.  I've put rfl on a new line and ran nvim +3 test.lean and widgets still work.

Odd. Seems to be a bit non-deterministic though -- here's me doing it 10 times, 2 times work fine, 8 don't:
https://user-images.githubusercontent.com/329822/148658376-19782bdd-c8ba-468a-84b3-883c131f0c00.mov

This is certainly super weird.  I first thought this could be because we accidentally restart the Lean server on startup (by accidentally doing something like :e).  But then Lean would complain that the RPC session is closed (because we always access RPC objects using the same sess object (of type Subsession) where we got them from, and the sess object contains the session id).
I just see that we're storing the sess object as a field in Pin now, that's certainly not a good idea (fortunately nothing accesses the field).  rpc.open should be called as often as possible (without passing RPC objects from one session to another one), because it will reestablish the connection if necessary.  The name probably doesn't imply it, but rpc.open will reuse an already-running session if there is one (so in the common case it's pretty much a hashtable lookup from filename to session object, no LSP requests done).

Mmmh, this could also be a race condition in the Lean server code.  https://github.com/leanprover/lean4/blob/1637d75d3f03d9f14595a0f44d691686bd38785f/src/Lean/Server/Rpc/RequestHandling.lean#L47-L68
    let sesh ← seshRef.get

    let t ← RequestM.asTask -- [decode RPC params]

    let t ← RequestM.bindTask t -- [run RPC function handler]

    RequestM.mapTask t fun
      | Except.error e => throw e
      | Except.ok ret => do
        let act := rpcEncode (α := respType) (β := respLspType) (m := StateM FileWorker.RpcSession) ret
        let (retLsp, sesh') := act.run sesh
        seshRef.set sesh'

Reading this correctly, the final seshRef.set sesh' will discard all updates that happened in the meantime.  So if we have two concurrent RPC requests, then only one of them will have the RPC references registered.  (And the other one return RPC references that either dangle or point to an incorrect object.)
@vtec234 Is this analysis correct?  Or is there some kind of synchronization that prevents this behavior?

Were you able to repro or is it still just me?

I just see that we're storing the sess object as a field in Pin now, that's certainly not a good idea

I haven't refactored much there yet but I'll get there.

Were you able to repro or is it still just me?

I didn't try hard, but if Wojciech confirms my suspicions, then that race condition is the most likely explanation for the bug and also straightforward to fix.

rpc.open should be called as often as possible

45b336e1a2f2a50e2ec6ee8a8c96906113505be5

Going to close this now that the upstream PR is merged -- will reopen or something if I can reproduce the original outdated RPC session error. Thanks for diagnosing!


Compatibility problem

When I migrated from Unity 4.x to 5.x I experienced different behavior
In 4.x this code assert returns true
            var container = new UnityContainer()
                .RegisterType(typeof(ISomething1), typeof(Service), new HierarchicalLifetimeManager())
                .RegisterType(typeof(ISomething2), typeof(Service), new HierarchicalLifetimeManager());

            var a = container.Resolve<ISomething1>();
            var b = container.Resolve<ISomething2>();

            Assert.IsTrue(a.Equals(b));

but in 5.x assert returns false. To get the same behavior I need to write something like this:
            var container = new UnityContainer()
                .RegisterType(typeof(Service), new HierarchicalLifetimeManager())
                .RegisterType(typeof(ISomething1), typeof(Service))
                .RegisterType(typeof(ISomething2), typeof(Service));

            var a = container.Resolve<ISomething1>();
            var b = container.Resolve<ISomething2>();

            Assert.IsTrue(a.Equals(b));

Is this expected behavior?

Yes, it was covered in migration wiki

I missed this information from wiki. Thank you for help.


After zoom in, anomaly history chart show empty data

When using mouse to zoom in, anomaly chart on detector result page becomes empty, but it doesn't have this issue if date range is changed using date picker

We are using older version of Elastic charts. Kibana 7.8 is using 19.2.0, which changed the zoom in API interface. Will upgrade Elastic charts to 19.2.0 and fix the zoom API.


Remove set-env due to CVE-2020-15228

@artursouza @msfussell do we need to setup branch protection for this repo? It seems I can merge here without an approving review.


Programmatically call the next step button

Hi, Guys!
Excellent job with the library!
I was just wondering if is there any way to trigger the next step cycle programmatically. I have a list in one of my steps and I'd like the user to go to the next step as soon as s/he clicks on one of the list items (i.e. not clicking on the next step button).

Nevermind, I just noticed the method stepperLayout.proceed()
Thanks!

Hi @christianlacerda,
How can I access stepperLayout.proceed() from Fragment?
Thanks

Hi @vzool,
You should have your activity implementing an interface in order to get the stepperLayout reference, something similar to: (getActivity()(HasStepperLayout)).stepperLayout().proceed()
Hope, it helps!

Aha, nice!
I put the full snippet here which explains as a reference for anyone will need this:
// The Activity

public class FormActivity extends Activity implements StepperLayout.StepperListener{

      // Make it `public` to easy access and avoid using `static`
      // Because it could lead to Memory Leak and unpredicted crashes

      public StepperLayout mStepperLayout;

      // ...
}

// The Fragment

public class FragmentA extends Fragment implements Step {

   FragmentA(){

      // Access StepperLayout by casting through `getActivity()`

      ((FormActivity)getActivity()).mStepperLayout.setCurrentStepPosition(0);
   }

   // ..
}

Thanks for your help

Look here: https://github.com/stepstone-tech/android-material-stepper/issues/100


(#1480) Fix desktop shortcut in Chocolatey

Prior to version 1.0.0 of Chocolatey the Install-DesktopLink helper function
could be used to create shortcuts. This function has been deprecated and now
removed from Chocolatey as of version 1.0.0
This commit refactors the chocolateyInstall.ps1 script to use the supported
Install-ChocolateyShortcut function to provide the functionality.
Additionally, package parameters have been introduced to allow folks installing
from the chocolatey package to opt-out of having a desktop icon created for them.
This additional functionality, including usage, has been documented in the nuspec
file description, so that it is available for people looking at the package on the
Chocolatey Community Repository.
Fixes #1480

 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.:x: steviecoaster sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Marking this draft so I can thoroughly test the changes here and make sure I've got everything right. Once I'm happy I'll remove draft status so it can go through review.

Tested, and working. Marking ready for review


Why do you convert PATH_INFO? Is there some RFC?

https://github.com/ruby-grape/grape/blame/c6ad84a4b793a21ec8189fd5121749fb20e81f6f/lib/grape/router.rb#L13-L14

TBH, I don't know but Rails does the same and even more.
Even though, its a literal copy/paster of journey

I found the answer
https://en.wikipedia.org/wiki/URI_normalization
https://datatracker.ietf.org/doc/html/rfc3986


Cut for v0.9.0 release

Signed-off-by: dongwangdw<EMAIL_ADDRESS>

There is an error but it does not seem to be caused by this change. I wonder should we first solve the issue then merge this one?


all storage logs in one file instead of dated filestamp files.

I'd like to have Laravel (Laravel 5) write all the logs to one file, and truncate them at the end of the day, is this possible? I don't see anything in the documentation provided on the website.

Yes.

It's document in the config file.

I changed the value to 'daily' /app/config/app.php and ran a few requests against the localhost
no new storage log files are being created.
And which config file? /vendor/config?

Did you clear the config cache?

It's documented in app.php, and daily isn't want you want. That'll create multiple files.

I did run
./artisan config:clear && ./artisan config:cache
and appologies, I had changed it to 'log' => 'single'  , not 'daily' as I had stated earlier, it was previously daily
From the app.php
	/*
	|--------------------------------------------------------------------------
	| Logging Configuration
	|--------------------------------------------------------------------------
	|
	| Here you may configure the log settings for your application. Out of
	| the box, Laravel uses the Monolog PHP logging library. This gives
	| you a variety of powerful log handlers / formatters to utilize.
	|
	| Available Settings: "single", "daily", "syslog", "errorlog"
	|
	*/

It would actually work better if it goes to RSYSLOG daemon running on the server, I know the two are not the same, but rsyslog and syslog are used interachangeably by people. Will this work?
My overall goal is have Loggly index everything, if I can use rsyslog for this logging , and it won't slow down the actual web requests, it would be a smart solution to what I need achieved.


Dont allow assignment of self  as manager

Currently on the Employee Update Page under manager's tab the an employee can assign himself as manager. Add proper validation to check this and do not display current employee's name under manager's dropdown.

Added Code to modify the mangers list choices so the current employee is not listed in the drop-down.


fix: specs that got added

Related to https://github.com/rubyforgood/human-essentials/issues/4199
Some more specs got added :(
Type of change

Refactor

How Has This Been Tested?
Passes current suite

whoever looks first, these are just some additional tests that got added and still use preseeded data. the fix is just find and replace type stuff.


Issue on ios

Bug Information
Version Number of Plugin: 2.0.2
Device Tested On: Samsung Galaxy Note 4
Simulator Tested On: iphone X
Version of VS: 7.3.3 build 17
Hey, i have an issue on ios when i'm trying to add my circle image at the center of my layout.
Here's my code :
var stck = new StackLayout {
	Children = {
		new CircleImage{
			Source = source,
			WidthRequest = 64, MinimumWidthRequest = 64,
			HeightRequest = 64, MinimumHeightRequest = 64,
			BorderThickness = 1, BorderColor = Color.Black,
		},
		new StackLayout{
			Children = {
				new Label{ Text = " " },
				new Label{
					Text = user.User_Name_First, HorizontalOptions = LayoutOptions.Center,
					HorizontalTextAlignment = TextAlignment.Center
				},
				new Label{ Text = " " },
			},
		},
	},
	Margin = new Thickness(10),
};

Here's the rendering on ios simulator :

Here's the rendering on Galaxy Note 4 :

Add HorizontalOptions = Center


implement_remove_physical_storage cross repo test

https://github.com/ManageIQ/manageiq-api/pull/932 was merged


[$250] skeleton view goes over the edges of the screen reported by @parasharrajat

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Login to the app on mobile app.
Navigate to any report that shows skeleton view.

Expected result:
Skeleton view should have right padding like the left edge of 20px.
Actual:
There is not padding at the right edge of the Skeleton view, it seems to go over the edge.
Workaround:
unknown
Platform:

Where is this issue occurring?

iOS
Android
Mobile Web

Version Number: 1.2.27-4
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

Expensify/Expensify Issue URL:
Issue reported by: @parasharrajat
Slack conversation:
https://expensify.slack.com/archives/C049HHMV9SM/p1668532881726039
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0104a6f656912f7483
Upwork Job ID:<PHONE_NUMBER>543803904

Proposal :-
We need to increase width to 100% in SkeletonViewLines.js and pass styles.mr5 to SkeletonViewContentLoader
https://github.com/Expensify/App/blob/652a51ac2bfbe3164b807dc5efaa4e0156ae0bdf/src/components/ReportActionsSkeletonView/SkeletonViewLines.js#L18
Like This
 <SkeletonViewContentLoader
    height={CONST.CHAT_SKELETON_VIEW.HEIGHT_FOR_ROW_COUNT[props.numberOfRows]}
    style={styles.mr5}
>
    <Circle cx="40" cy="26" r="20" />
    <Rect x="67" y="11" width="20%" height="8" />
    <Rect x="67" y="31" width="100%" height="8" />
    {props.numberOfRows > 1 && <Rect x="67" y="51" width="50%" height="8" />}
    {props.numberOfRows > 2 && <Rect x="67" y="71" width="50%" height="8" />}

</SkeletonViewContentLoader>

Web :-

Native :-

mWeb :-

@shawnborton Can you please review this issue?

Yup, that looks good. But do we know why this happened in the first place? There must have been a regression at some point right?

@shawnborton  I looked up and and found that this initial commit in SkeletonViewLines.js https://github.com/Expensify/App/commit/0bfe1bac6fcbc0f2a304cab6811a5031d40e12da had the similar issue on android / IOS. So I believe it wasn't a regression. It might have been overlooked during development.
The issue is there is no initial marginLeft we are setting cx="40" for the eclipse which move eclipse on x-axis and when we give width to Rect to "90%"  it creates issue in native platform so we can increase width to "100%" and give marinRight 20 to parent view to achieve the desired Goal of spacing at the right side so it doesn't overflow. My Proposal https://github.com/Expensify/App/issues/12744#issuecomment-1317041426

Thanks for the proposal @syedsaroshfarrukhdot. Your proposal looks good to me. I had worked on the original implementation. I wonder how I missed this.
@grgia All yours.
🎀 👀 🎀
C+ reviewed

Offers sent to all! https://www.upwork.com/jobs/~0104a6f656912f7483

Thank You. Just Accepted The Offer Will Be Making A PR Today.

@MitchExpensify @grgia The PR was deployed to production 3 days back but the title wasn't updated

@MitchExpensify @grgia This is ready for payout tomorrow. Also eligible for 50% bonus to complete within 3 days.

@MitchExpensify Quick bump on the payout, and here's the offending PR that added the bug. I worked on it so I have it handy.

Sorry for the delay @mananjadhav, I've been sick the last few days. Paying now

Thanks @MitchExpensify. I've linked the offending PR.

@grgia @MitchExpensify Quick bump here.

Created an issue for the regression test!

I am not sure if we follow a template to post the comment and discussion?

there is no template

@grgia Seeing as we only have those two checks to complete before closing this, mind handling that once done? I'm heading ooo so if you could cover closing this issue once they're checked off it'd be great!

Done! Commented on PR and discussion started

Nice! Closing out


tar added as prereq for build on Fedora, more details about Bazel ver…

Summary
Improves documentation about how to build Kong Gateway (Bazel version in general, Fedora in particular)

 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.

 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.

@fffonion shall we close this PR?


Repeated comments

t$xvideos
Currently, the bot takes a random page between 1 and 40, and select the first comment of a random video. If the command is used frequently in a short period of time, it might give us repeated comments.

[ ] ~Increase the page range~ (not possible)
[x] ~Find a way to select random comments of a video (not only the first one)~

Solved

Failed pattern matching
** (MatchError) no match of right hand side value: []
lib/commands.ex:70: Thonk.Commands.get_comment/0
lib/commands.ex:33: Thonk.Commands.xvideos/1


Calling setProvider does not update the provider (and wallet) instances in future calls to workspace

    const provider = anchor.Provider.env();
    anchor.setProvider(provider);
    const program = anchor.workspace.MyProgram as Program<MyProgram>;

    const secondWallet = new anchor.Wallet(Keypair.generate());
    const secondProvider = new anchor.Provider(
      provider.connection,
      secondWallet,
      anchor.Provider.defaultOptions());

    // Switch to second provider to use a new wallet.
    await anchor.setProvider(secondProvider);
    const programOverride = anchor.workspace.MyProgram as Program<MyProgram>;

    console.log('Provider1 wallet: ' + provider.wallet.publicKey.toBase58());
    console.log('Program1 wallet: ' + program.provider.wallet.publicKey.toBase58());
    console.log('Provider2 wallet: ' + secondProvider.wallet.publicKey.toBase58());
    console.log('Program2 wallet: ' + programOverride.provider.wallet.publicKey.toBase58());

This code outputs the following:
Provider1 wallet: AA1vAe1S2PYgopUjYQNcXpd5m1fZUmxc713HV1QyAKKP
Program1 wallet: AA1vAe1S2PYgopUjYQNcXpd5m1fZUmxc713HV1QyAKKP
Provider2 wallet: GsSJgNmbg76WikPPw6M9HWDBsJnsEU8zLnms48XwuS9D
Program2 wallet: AA1vAe1S2PYgopUjYQNcXpd5m1fZUmxc713HV1QyAKKP

I would expect the programOverride to also use the newly set provider.

Curious if this is still an issue, will reopen if so.

Yes it does, with new interest bearing tokens, I need to specify commitment: finalized EVERYWHERE  if not, random things fail...
Would be awesome to set this as default in somewhere (maybe there is and I don't know where :D)
Using
        "@coral-xyz/anchor": "0.29.0",
        "@coral-xyz/spl-token": "0.29.0",


Remove padding-left for a radio button group

ActiveAdmin has a line padding: 0 0 0 20%; and I guess this width: 80%; responds to it, but I think you can just remove the padding at the left.
What do you think?  Oh, and thanks for this cool gem!

Padding-left for radio buttons makes sense, as does no margin for inline hints.
In the future, would you mind opening separate pull requests, as these are two unrelated changes?
Thanks for your PR. If you could make the small change to .inline-hints, I'm happy to merge this.

@ball-hayden Done!  I fixed the last commit and filed it as #2.


Repeated modal popups when stopping debugging

Issue Type: Bug
repro

In https://github.com/kieferrm/js-debug-sample
Using a debug console, start debugging cluster.js
When the breakpoint is hit, try to stop debugging

Bug
This results in a sequence of 8 or so modal popups. You have to dismiss them one at a time
Here's the text from one of the errors
Error processing attach: Error: Could not get debug session delegate ID 14
    at t.DelegateLauncher.launch (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:73:40100)
    at t.Binder.captureLaunch (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:73:118764)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:94:5)
    at t.Binder._launch (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:73:118327)
    at async Promise.all (index 11)
    at t.Binder._boot (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:73:117587)
    at t.default._onMessage (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:15:2463780)

VS Code version: Code - Insiders 1.50.0-insider (cca20eba8974b1d6b6a9b71bf4e60a29c8f26648, 2020-09-12T00:56:22.923Z)
OS version: Darwin x64 19.6.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz (16 x 2400)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
32.00GB (10.14GB free)

Process Argv
--crash-reporter-id cc7f0c9b-aa2b-4a45-8baa-81ffda32679e

Screen Reader
no

VM
0%

I don't get this; can you enable trace: true and share the resulting log file?

Which log file?

After adding trace: true to the launch.json, it'll print the location of the log file on disk to the Debug Console

Ok, I trued with the following config:
        {
            "name": "Launch Program",
            "program": "${workspaceFolder}/cluster.js",
            "request": "launch",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "type": "pwa-node",
            "trace": true
        }

But don't see the error. I still see the error when using the debug terminal. Is there a way to collect logs from there?
I also updated the instructions to make it clear you need a breakpoint on const mm = require('./micromatch'); in cluster.js

Interesting. I still didn't get this locally, but for logs there you can add that in the debug.javascript.terminalOptions user setting

Here's the log file (but it appears to be corrupted since I can't seem to uncompress it)
vscode-debugadapter-5.json.gz

Thanks -- the key was hitting "disconnect" rather than ctrl+c in the terminal which is what I was doing. Should be a simple fix.


Downloading Sub only videos without sub

Hey, can you add downloading Sub only videos without subbing?
This other program already does it, it can download Sub-only VODS without account or sub but its abandoned since a long time and it doesnt have a nice UI like yours. So I guess you could take a look at the code how he did it maybe?
Thanks.
https://github.com/TwitchRecover/TwitchRecover

(it's doesn't relate to your idea xalyy, but I just don't want to create a new topic for this thing, so this is addressed to Franiac)
Can you please bring back the download button if the video is currently streamed live? I just need to download some streams, which, unfortunately, are deleted by the streamer after they are ended. So I need to download them while they are still going live. I hope it's not related to the new API, so can you please return this feature? Thanks in advance if you will do!

@xalyy How can you even think about something like this? Why do you think you should be able to watch or even download videos that others pay for and the content creator deliberately put behind a paywall? This is actually some criminal energy and straight up illegal. I know the private Twitch API can be "hacked" in order to download this stuff, but it does not make things more legal or smack paying/honest users less in the face. I strongly urge you to rethink your decisions and never post an issue about this again. Rightfully earned the "WTF" label...

@xalyy How can you even think about something like this? Why do you think you should be able to watch or even download videos that others pay for and the content creator deliberately put behind a paywall? This is actually some criminal energy and straight up illegal. I know the private Twitch API can be "hacked" in order to download this stuff, but it does not make things more legal or smack paying/honest users less in the face. I strongly urge you to rethink your decisions and never post an issue about this again. Rightfully earned the "WTF" label...

Yeah no thanks, not going to pay for twitch thots if I can get it for free.
Piracy FTW brother.

And that's a ban...


Another try at fixing system call #, recovering from mistaken add of 9sys.h

Signed-off-by: Ronald G. Minnich<EMAIL_ADDRESS>

Pulling Alvaro's LGTM over from the other broken commit.

LGTM


fix(curriculum): Fix a type in line -> inline in basic css challenge

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #41846

I also added .idea/* into git ignore for WebStorm

@ShaunSHamilton thank you! I think it will be useful for WebStorm user. Let me know, I can remove it.