fix: add ipv6Check regex for private address

Title

fix: add ipv6Check regex for private address
Description

Solves #2623
Change checklist

[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation if necessary (this includes comments as well)
[x] I have added tests that prove my fix is effective or that my feature works

Will this handle other types of IPv4-Mapped IPv6 addresses made from private ipv4 addresses?
E.g.
<IP_ADDRESS> -> ::FFFF:0a00:1 - should be detected as private
<IP_ADDRESS> -> ::FFFF:8efa:4aee - should be detected as public

Will this handle other types of IPv4-Mapped IPv6 addresses made from ipv4 addresses?
E.g.
<IP_ADDRESS> -> ::FFFF:0a00:1 - should be detected as private <IP_ADDRESS> -> ::FFFF:8efa:4aee - should be detected as public

aaah yes, I realised that the pattern is not perhaps right given your explanation in the github issue

Hmm this was a bit tricky, it seems like the multiaddr function removes the leading zeros, so for the
example
::ffff:0a00:1
we actually match against
::ffff:a00:1
the same can be for 1 or many leading zeros,
It feels like this regex problem should have been solved many times other by someone else already

Agreed, it doesn't sound like this should be a new problem..  Our version comes from the private-ip module, which hasn't seen an update to these patterns for years.

I did a little bit of a not-like looking regex now where I explicitly try to match against some local ones. It works but might not be ideal

Agreed, it doesn't sound like this should be a new problem.. That said, our version comes from the private-ip module, which hasn't seen an update to these patterns for years.

this one might be right, but the problem is that toString() on a multiaddrs yield a format where leading 0s are removed which I guess does not work well with this pattern

thanks for making the changes! did not have time to continue this week

No problem - I wanted to get it in the next release, thanks for finding the issue and opening the PR!


[Bug Report] DatePicker (week type) first week of year and last week of year don't display correctly.

Element UI version
2.4.11
OS/Browsers version
mac os x 10.14.2 / chrome 71
Vue version
2.5.21
Reproduction Link
https://jsfiddle.net/mmx38qxw/7141/
Steps to reproduce
choose 2018/12/31

What is Expected?
date-table panel 2018-12:
the last row is active
date-table panel 2019-1:
the first row is active
What is actually happening?
date-table panel 2018-12:
the last row is active
date-table panel 2019-1:
the first row isn't active

https://github.com/ElemeFE/element/blob/f3bf6ee15832ff55234efd9ddf98d2ea731f7081/packages/date-picker/src/basic/date-table.vue#L324-L325
I think the year check on L325 should be removed.

Then you should make a PR.
Note, the year check should not be removed, but it should handle edge cases like this one.

Then you should make a PR.
Note, the year check should not be removed, but it should handle edge cases like this one.

Maybe we should check newDate with this.value.
If they are equal, their line should be active.
I'll make a PR soon.

fixed https://github.com/ElemeFE/element/pull/13883


flutter build --build-number=x --build-name=y doesn't update build.gradle anymore

When I run
 flutter build apk --release -t lib/main_origin.dart --build-number 19 --build-name 0.9.3

versionCode and versionName in android/app/build.gradle should be updated with these values.
The last time I used this and it updated successfully was a few weeks ago already on master or dev channel.
Now these options don't seem to have any effect.
[✓] Flutter (Channel master, v0.7.2-pre.18, on Mac OS X 10.13.6 17G65, locale en-AT)
    • Flutter version 0.7.2-pre.18 at /Users/zoechi/flutter/flutter
    • Framework revision 2b14ac1efc (24 hours ago), 2018-08-27 22:17:22 -0700
    • Engine revision af42b6dc95
    • Dart version 2.1.0-dev.1.0.flutter-ccb16f7282

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    • Android SDK at /usr/local/opt/android-sdk
    • Android NDK at /usr/local/opt/android-sdk/ndk-bundle
    • Platform android-28, build-tools 28.0.1
    • ANDROID_HOME = /usr/local/opt/android-sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 23.1.2
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 26.0.3
    • Dart plugin version 182.3569.4

[✓] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

• No issues found!

Yup, android/app/build.gradle needs manual update.

Hey zoechi,
At the moment I am in the situation, of creating a CI Pipeline for build and deployment with flutter. For this, I am using Fastlane and Travis CI. The expected behavior should be, after a check in, the Travis build starts, calling "flutter build apk" and "flutter build ios". Now the versioncode should bump. And push the new versioncode to the repository. But calling "flutter build apk --release -t lib/main_origin.dart --build-number 19 --build-name 0.9.3" does not update the versioncode.
Can you explain this little bit more detailed please ?
Niklas

Have you tried with a new project (flutter create foo)?
Some related files in android/ have changed not too long ago, and you would need to update your existing files there.
You can also just delete ios/ and android/ and run flutter create . and re-apply manual changes.

I have a project with the new structure in the android/app/build.grade that reads from local.properties. The problem is, that local.properties does not get updated. As well checked if the final apk has the correct values. But they are the same as in local.properties.
I as well tried creating a new project with flutter create foo. There the android/app/build.gradle seems the same and local.properties does not get updated either.
Commands I tried:
flutter build apk --build-name 1.2.3 --build-number 99
flutter build apk --build-name=1.2.3 --build-number=99

Flutter (Channel beta, v0.11.9, on Mac OS X 10.14.1 18B75, locale en-CH)

What i did, what worked is. Remove the version number from the pubspec.yml. Then the commands above are working. In Ci i use this script to bump the version:
major=$(<ci/majorversion.txt)
minor=$(<ci/minorversion.txt)
patch=$(<ci/patchversion.txt)
version=$(<ci/versioncode.txt)
echo "$major"
echo "$minor"
echo "$patch"
echo "$version"
patch=$((patch + 1))
version=$((version + 1))
echo "$patch"
echo "$version"
echo $patch > ci/patchversion.txt
echo $version > ci/versioncode.txt
echo $(<ci/patchversion.txt)
echo $(<ci/versioncode.txt)```

I can reproduce. This worked for me but doesn't anymore in a new project.
@pboos can you please create a new issue. This one is closed since a while.


prepare for ZF3, replaced 'invokables'

replaced invokables in favour of aliases and factories, according to the migration guide

This was accomplished with the 1.4.0 release.


callback when player is played/paused through notification area

A new callback to listen to player state change from notification area.   onNotificationPlayerStateChanged is similar to existing onPlayerStateChanged except that onNotificationPlayerStateChanged is called when a user interacts through the notification area. This is useful to change the app UI based on user interaction in the notification area.

@luanpotter The changes are done :)

Dear @luanpotter your requested changes are done, is there any special reason you've not merged this yet?!

@luanpotter I fixed any minor bugs on ios notification side and this is the final push for ios notifications. Can you please merge this and then I will start on the android side.


HAI-1367 Fixes for kaivuilmoitus form cable report and placement contract fields

Description
Changed entering existing cable report identifiers and placement contracts to be case insensitive.
Added placeholder text and better helper text to cable report field.
Jira Issue: https://helsinkisolutionoffice.atlassian.net/browse/HAI-1367
Type of change

[x] Bug fix
[ ] New feature
[ ] Other

Instructions for testing

Try entering cable report identifiers (for example JS0000001 and js0000002) and check that both are accepted
Try same for placement contracts (for example SL0000001 and sl0000002)

Checklist:

[ ] I have written new tests (if applicable)
[ ] I have ran the tests myself (if applicable)
[ ] I have made necessary changes to the documentation, link to confluence
or other location:

Other relevant info
Please describe here if there is e.g. some requirements for this change or
other info that the tester/user needs to know.

Tested and it works as described.


User provided rules should be marked as "Cleanup Rules" when necessary

User has to mark rules as "Cleanup Rules" which prevents it from being considered a "Seed Rule". A Seed rule has to be instantiable using the substitutions provided in piranha arguments.
Moving forward, we will not allow developers to declare seed rules that are not initializable with piranha arguments. Piranha will panic in these cases.
Note we were already following this practice in demos and also internally.

Actually this change is "semantics altering". We now enforce that, all rules that are not marked as "cleanup rules" (in the input toml file) will be considered as "seed rules" and therefore should be instantiable using the input substitutions provided by the user . Basically, we will not allow un-instantiable seed rules.

Note I eliminated try_instantiate. Now we have instantiate only.
rules.rs is where the meat of the change is .

Updated the current find_propagate test for Java to have "holes".
Adapted the current test case.
Added a new test case that panics because substitutions for seed rule is not provided by user.


Added Kera's information to the community.json file

Hackathon Git Labs Project PR 🎉🎉
👉 Please remove the below and replace with your own values, leaving the headers where they are. 👈
PR contains:

Adding Kera's information to the community.json file
Thank you for creating this amazing resource - have shared in with my hack team 😊

Breaking changes

None

Screenshots

None

Looks good Kera, merged!


Page names with unicode throw logger errors

Issue Summary
Noticed this in the logs in a more or less rudimentary installation of Wagtail:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/logging/__init__.py", line 994, in emit
stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 19: ordinal not in range(128)
...
File "/usr/local/lib/python3.6/site-packages/wagtail/wagtailcore/models.py", line 1520, in publish
     logger.info("Page published: \"%s\" id=%d revision_id=%d", page.title, page.id, self.id)
     Message: 'Page published: "%s" id=%d revision_id=%d'
     Arguments: ('Geschäftsstelle', 19, 95)

This suggests to me that wagtailcore/models.py and other places should use Unicode format strings for full Python 3 support.
Steps to Reproduce

Create a page with umlauts or other funny characters
Edit it, and see bug in the logs

Technical details

Python version: 3.6
Django version: 1.10.6
Wagtail version: 1.9

@loleg next major Wagtail version will be Python 3.X only so this may be a non-issue in the future.

Good to know - I think we can close this. Thanks.


Text object operations not working

Example:
"This is text"
with cursor at 'T', execute di"
Expected result:
""
Actual result:
"This is text"
Running VS Code 1.2 on Win7.
vimStyle 0.3.9
Only thing unique about my settings.json is configuring a proxy.

Current version does not support text object command.
https://github.com/74th/vscode-vim/blob/master/quickref.md

Oh, sorry.  I guess I misread the quickref.  I saw the commands listed, but didn't notice the lack of VimStyle classes.  My bad.

New version 0.5.0 supports di" .


PrimeFaces: Some not being transformed correctly

Hey @rmannibucau its me again.
We had this reported in Primefaces: https://github.com/primefaces/primefaces/issues/9657
It was not transforming javax.el to jakarta.el even though our pom.xml has the correct transforms.
https://github.com/primefaces/primefaces/blob/ae87e9e33205f8a0d108780963544fed61f86a34/primefaces/pom.xml#L938-L1168
However if I moved this line to the bottom of the list it then started shading javax.el correctly to jakarta.el
<relocation>
       <pattern>/javax.faces</pattern>
       <shadedPattern>/jakarta.faces</shadedPattern>
       <rawString>true</rawString>
</relocation>

Previously that had been declared right above javax.el like this..
<relocation>
       <pattern>/javax.faces</pattern>
       <shadedPattern>/jakarta.faces</shadedPattern>
       <rawString>true</rawString>
</relocation>
<relocation>
       <pattern>javax.el</pattern>
        <shadedPattern>jakarta.el</shadedPattern>
</relocation>

I am not sure if that gives you a hint or not but I can't explain why that fixed it.  Now we are down to 2 classes left not being shaded and we have no idea why.
PrimeApplicationContext.java (is not shading javax.validation): https://github.com/primefaces/primefaces/blob/master/primefaces/src/main/java/org/primefaces/context/PrimeApplicationContext.java
JpaLazyDataModel (is not shading javax.persistence):
https://github.com/primefaces/primefaces/blob/master/primefaces/src/main/java/org/primefaces/model/JpaLazyDataModel.java
And we have no idea why or where to begin debugging?

Hi @melloware ,
The relocation is a chain so order matters so sounds very possible and unrelated to this project technically (could be to maven shade to enable a kind of routing relocation - case vs for)


Updated width and height documentation

Description
Height and width utility class documentation doesn't show examples for every available height and width class.
https://switchcomm.atlassian.net/browse/DT-16
Added height and width examples, changed the way the elements look, to avoid visual issues with small examples
Pull Request Checklist

[x] Ask the contributors if a similar effort is already in process or has been solved.
[x] Review the contribution guidelines.
[x] Use staging as your pull request's base branch. (All PRs using production as its base branch will be declined).
[x] Ensure all gulp scripts successfully compile.
[x] Update, remove, or extend all affected documentation.
[x] Provide a description what is being changed, extended, or removed.
[x] Link to any issue(s) this request is resolving.
[x] Ensure no private Dialpad links or info are in the code or pull request description (Dialtone is a public repo!).
[x] Request a review from Joshua Hynes, Ted Goas, or David Becher.

Similarly for fixed heights, they're off by one (the examples start at 0):

The 3 above the bar means that the example "3" here:

1

2

3

4

5

6

7

8

9

10

11

12

Gives you a height of 25%, not meaning that specific bar is 30% height.
Or should I put the percentage above the example?

The description of this section says:

Use d-h{n}p to set a percentage height for an element.

So I read the numbers to be the number you'd use in the class name. So I guess they should be 10, 20, 25, etc? Or am I reading it wrong?

The original documentation had numbers to illustrate the examples, that's why I was leaving as it was.

Just put the numbers above the bars because in the fixed examples, the first heights were to low to fit numbers inside them.

The description of this section says:

Use d-h{n}p to set a percentage height for an element.

So I read the numbers to be the number you'd use in the class name. So I guess they should be 10, 20, 25, etc? Or am I reading it wrong?

You may be reading it wrong. It looks like Julio is following how some of the other documentation does this.

It just seems confusing now that we're showing all the height classes instead of an example subset. Why have 2 different sets of numbers?

Well, there's also precedent for us showing the class with the example if that's the route we want to take: https://dialpad.design/utilities/spacing/padding/

Based on what I'm seeing on other documentation, our options seem to be this:

Keep as-is and use numerical annotations to show the relationship between the mark-up and the visualization
Replace the numbers with the classes (d-h0, d-h1, etc.) so the class and the visualization match

I don't have an opinion other than this: when you step back, how much of an actual big deal is this @dbecherdialpad ? My hypothesis is someone will come to this page to see the classes, grab the one they need after scanning the page and without really reading/grokking the content, and close the page. Just my theory.

I don't think it's a big deal. TBH I don't think people really need an example of every single height class.

My hypothesis is someone will come to this page to see the classes, grab the one they need after scanning the page and without really reading/grokking the content, and close the page.

I agree which is the only reason I bring it up, I think it would be easter to grok if the DT classes themselves were more prominent rather than having to match up the numbers with the code block.

I don't think it's a big deal. TBH I don't think people really need an example of every single height class.

My hypothesis is someone will come to this page to see the classes, grab the one they need after scanning the page and without really reading/grokking the content, and close the page.

I agree which is the only reason I bring it up, I think it would be easter to grok if the DT classes themselves were more prominent rather than having to match up the numbers with the code block.

I'm confused. I thought part of the reason we're doing this is because you had a problem not listing all the class options: https://github.com/dialpad/dialtone/issues/330

I literally didn't even remember creating that issue, but as I recall the problem was more about the table at the top, and how it was not super obvious you had to scroll to see the percent based ones. We've since fixed that issue and it looks like we moved the percentage based classes to the top.
Now that I see it again though, it does make some sense to have examples for all the percentage options at least, I just personally think it's more clear to have the class name in the examples rather than numbers.

I literally didn't even remember creating that issue, but as I recall the problem was more about the table at the top, and how it was not super obvious you had to scroll to see the percent based ones. We've since fixed that issue and it looks like we moved the percentage based classes to the top.
Now that I see it again though, it does make some sense to have examples for all the percentage options at least, I just personally think it's more clear to have the class name in the examples rather than numbers.

Cool. Let's try it.
CC: @juliodialpad For reference, here's a place we show and style the class in the example: https://dialpad.design/utilities/spacing/padding/

Looks much better to me this way.

Can we style the percentage class names? Look at the mono font style and weight in the padding documentation.
Should we include the class name in all the visualizations on this page rather than just the first one?
@dbecherdialpad is this heading in a better direction fro you?

yep this looks great

Any remaining comments here or can be approved to merge?

Should we include the class name in all the visualizations on this page rather than just the first one?

I think that's a good improvement we could make later. Let's merge this one.


time problem and right match size

hello! I have run your code,when I use KNN exactMatch metchod and bruteMatch.And I found time using exactMatch is more slower than using  bruteMatch .the other problem is when I use fastApproxMatch to match,and  result is show have no match.Thank you

Hey there! This is not surprising. My results do not suggest that the multi-index hashing technique is faster than brute matching unless the threshold is small AND the number of keypoints is HUGE. For most real-time computer vision solutions, brute matching, especially when done efficiently (see my CUDAK2NN project) is actually much faster.
It's also not surprising that fastApproxMatch can return no matches, depending on your threshold and image. Once again, brute matching is often the way to go, especially if you can use CUDA.

ok，thank you,I will have a try to run your cudak2nn!

hello,I am comming, I have run your cudak2nn with cudaAKAZE, I get the random problem cudaError_t err = err != cudaSuccess I cannot find what is the mater,can you help me? Thank you !


UserManager depends on IHttpContextAccessor and It behaves incorrectly when lifetimes don't match up

TL;DR; is that UserManager depends on a per-request instance dependency, IHttpContextAccessor, and it can construct itself successfully even if it's (the UserManager) is registered as singleton.
What Happened?
I was seeing System.OperationCanceledException while working with ASP.NET Core Identity (see https://github.com/tugberkugurlu/AspNetCore.Identity.MongoDB/issues/15 for more context). After  digging into the issue for a while, I discovered this line: https://github.com/aspnet/Identity/blob/rel/1.1.0-preview1/src/Microsoft.AspNetCore.Identity/UserManager.cs#L46 which made sense and I started belamng my reverse proxy causing requests to be aborted in the middle of the operations. However, it didn't take long to understand it was not the case at all.
The actual problem was related to the fact that I was registering the UserManageras singleton (see https://github.com/tugberkugurlu/AspNetCoreSamples/blob/a4004c851dfbf84fa92891b0d8ef54fa822c6ff6/haproxy-redis-auth/src/Startup.cs#L113) and whereas it was relying on a per-request dependency in a very wrong way 😞 (see https://github.com/aspnet/Identity/blob/rel/1.1.0-preview1/src/Microsoft.AspNetCore.Identity/UserManager.cs#L98)
So, as expected, the CancellationToken property of UserManager entered into the canceled state right after the first request finished, which caused all subsequent calls to the store implementation to receive an already cancelled cancellation token.
What Should Happen Instead
It should have blown up at the startup complaining about the fact that a single instance registration is relying on an instance which is registered with a shorter-lived scoped (per-request).
I am not sure whether it's OK to classify this is a bug but to me, it seems like it really needs fixing ASAP because it's so annoying to debug and understand when you hit this 😞

The IHttpContextAccessor implementation should have singleton scope since it uses AsyncLocal to obtain the current context - see https://github.com/aspnet/Hosting/issues/793
So, using UserManager also with singleton scope is compatible with the IHttpContextAccessor scope.
However, UserManager seems to capture the context as a readonly field(https://github.com/aspnet/Identity/blob/rel/1.1.0-preview1/src/Microsoft.AspNetCore.Identity/UserManager.cs#L98), meaning that it should have per request scope.

The IHttpContextAccessor implementation should have singleton scope

Thanks, I can remember that thread now. That makes sense.

meaning that it should have per request scope.

At least for now but I believe the way that UserManager acquires IHttpContextAccessor impl is wrong. It should have been done through the ctor as a param.
The other annoying thing is that why UserManager cares about request abort. It should just receive a CancellationToken through as method params and rely on that. So, the consumer should be responsible for retrieving the RequestAbort cancellation token and pass it down. I feel now that integrating UserManager with IHttpContextAccessor couples the cancellation approach too much.

So there has always been an implicit assumption that the mangers are scoped.  @divega do you see any problem with this assumption?  We haven't really tried to enable things like singleton lifetimes..

Yes, we assume the managers are scoped and I don't think we ever intended them to be used with a different lifetime. Just a few thoughts:

We are limited on what we can express regarding the intent for specific types to be registered as services only with specific lifetimes and with validating when things are not instantiated with the wrong lifetime (e.g. when a singleton depends on a scoped services). This seems to be good feedback for the DI repo.
Some time ago we intentionally removed  CancelationToken arguments from methods on the managers and started relying only on IHttpContextAccessor for cancellation. A bit more information from @tugberkugurlu on why that hurts (besides the coupling feeling too strong) could be really helpful.
Unfortunately I can't recall why we made IHttpContextAccessor optional and moreover why we only did it for UserManager in 167bb54c8d7aaafa12983164f8033cc25d0af39e (it is still required for RoleManager and SignInManager). @HaoK do you remember?

https://github.com/aspnet/Identity/issues/655 drove why we made it optional

Its required for SIgnInManager for sure, since that can't work without an HttpContext.  We could(should?) have made it optional for RoleManager as well.

@HaoK thanks for refreshing my memory. Let's chat about this in person in triage. From reading #655 and linked issues it seems to me that if it is was valid to use UserManager (and probably RoleManager) without an IHttpContextAccessor then we could have considered having CancellationToken parameters back.

Sure but in that issue it seems more that we don't really care too much if the functionality is lost, so there's certainly no good reason to add a billion overloads to pass around cancellation tokens on the manager APIs.

We could do something cheap like a new setter on the managers to set your own CancellationToken which would get used instead of the HttpContext's as a cheap way to enable this fringe scenario...  but I don't think many (any?) people would use this feature if we added it...

Some time ago we intentionally removed CancelationToken arguments from methods on the managers and started relying only on IHttpContextAccessor for cancellation. A bit more information from @tugberkugurlu on why that hurts (besides the coupling feeling too strong) could be really helpful.

@divega It's not much of an issue from the consumption point of view when you know UserManager uses it. However, it's not intuitive at the first place. I was surprised to see UM was caring about request abort. So, it's not a strong case to request it to be removed. However, I would love to hear what made you guys to remove CancelationToken arguments from methods on the managers.


Missing machine.PWM

In particular I'm using the stm32 stubs and notice they're missing machine.PWM
https://github.com/Josverl/micropython-stubs/blob/main/stubs/micropython-latest-stm32-merged/machine.pyi
ref: https://docs.micropython.org/en/latest/library/machine.PWM.html

It took me way too long to realise that stm32 port doesn't actually implement or provide machine.PWM. So yeah, stubs are correct!

Hi Andrew,
Sorry for not noticing earlier, but that is exactly what I wanted to solve with the stubs.
But I've been in the same place of confusion over what works where and how.
Happy to hear that this time it worked out


Highlight SearchText In Result

Highlight SearchText In Result for project Filterable ListView with Images

This looks great, thanks!


Panic in lro wait operation

When calling the WaitOperation method and not adding a timeout, the method panics.
Example:
op, err = clients.Lro.WaitOperation(ctx, &longrunningpb.WaitOperationRequest{
  Name:    op.GetName(),
  Timeout: nil,
})

This is due to this line:
https://github.com/alis-exchange/go-alis-build/blob/ab5ea55116cef4944667e5f8938320e74ac02a8b/lro/lro.go#L110
I would suggest that there is a default timeout set if not specified? Or, at least, making it clear that the field is required, and failing with an error message if not provided. My opinion would be that the default timeout is best.

Thanks for picking this up Ruan. I have taken your suggestion of using a default timeout and implemented the necessary changes.


Step missing for "Assign a service admin role to a user"

Under section Assign a service admin role to a user
Between step 2 and step 3, please add step 2.5 something like the following:

Under Account > Roles, select to navigate "Manage Roles"

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

ID: 1c1dd41e-5994-2eb5-f659-af836a1a3fc1
Version Independent ID: f70008c9-ea14-96f1-8b29-d94bb510b680
Content: Use service admin roles to manage your tenant - Power Platform
Content Source: power-platform/admin/use-service-admin-role-manage-tenant.md
Service: power-platform
GitHub Login: @jayasreekumar
Microsoft Alias: jkumar

@softwarecraft
Thanks for the suggestion. Text revised.


[WHLSL] Local variables should be statically allocated

Migrated from https://bugs.webkit.org/show_bug.cgi?id=188402:
At 2018-08-08T03:03:55Z<EMAIL_ADDRESS>wrote:
The interpreter conforms to the spec; the Metal compiler doesn't (necessarily). For example, a call to foo() should return 1:
thread int* bar(bool flag)
{
    int x = 0;
    if (flag)
        x = 1;
    return &x;
}

int foo()
{
    thread int* x = bar(false);
    thread int* y = bar(true);
    return (*x) * (*y);
}

The interpreter gets this right; when a VariableDecl is visited in Evaluator.js it only allocates a buffer for that variable if there wasn't one already. The compiler doesn't get it right; local variables are emitted in local scope and therefore the Metal compiler can choose to store them however it likes. They could be independent, or another function bar2() could alias its local variables with bar() if bar and bar2 are never both called.
Metal Shading Language only permits constant variables to be static if they are declared in global scope. It doesn't permit statically declared variables in local scope.
When functions are inlined this isn't a problem; all variables can be "statically" allocated by having them as local variables declared at the top of a shader function. However, not all functions can be (efficiently) inlined in the MSL output if they don't have reducible control flow. An inefficient solution would "statically" allocate all variables in the main shading functions and pass references to them to non-inlined functions. This awful approach could be mitigated by conservatively finding local variables that references are never created for, but it is far from ideal.
It is worth noting that successive executions of the same function cannot rely on previous values stored at the same local variable because local variables are always zero-initialized when they are declared. The compiler and the interpreter behave correctly on the following program:
thread int* bar(bool flag)
{
    int x; // x is zero initialized twice
    if (flag)
        x = 1;
    return &x;
}

int foo()
{
    thread int* x = bar(true);
    thread int* y = bar(false);
    return (*x) * (*y);
}

The result of foo() should be 0.
Given that local variable values do not persist between calls, the largest benefit of statically allocating local variables is that references to local variables can be returned from a function, or passed out via "out" parameters. Many programming languages do not permit this, so a possible mitigation would be to disallow it.

At 2018-09-06T00:50:56Z<EMAIL_ADDRESS>wrote:
(In reply to Thomas Denney from comment #1)

Created attachment 348987 [details]
WIP

This patch doesn’t yet support function arguments having their address taken, and I haven’t done any work on array references yet. It also contains my modified version of the standard library for faster parsing, so this is very much WIP.

At 2018-09-06T00:49:45Z<EMAIL_ADDRESS>wrote:
Created attachment 348987
WIP

At 2018-09-11T03:16:11Z<EMAIL_ADDRESS>wrote:
Created attachment 349372
Patch

At 2018-09-11T00:10:03Z<EMAIL_ADDRESS>wrote:
Created attachment 349358
WIP

At 2018-09-11T00:11:10Z<EMAIL_ADDRESS>wrote:
(In reply to Thomas Denney from comment #3)

Created attachment 349358 [details]
WIP

This most recent patch is basically complete, but I’m going to wait on the two dependencies of this bug to be resolved before I put this up for review.

At 2018-09-19T21:25:39Z<EMAIL_ADDRESS>wrote:
Comment on attachment 350096
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=350096&action=review
Cool patch.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:29

const entryPoints = [];

This is a fairly self-contained block of code. I'd recommend moving it to its own function.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:30

class OnlyVisitFuncDefsThatAreEntryPoints extends Visitor {

How about "gatherEntryPointDefs" since visitors visit everything?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:41

const allVariablesAndFunctionParameters = new Set();
const functionsThatAreCalledByEntryPoints = new Set();
class FindAllVariablesAndFunctionParameters extends Visitor {

This is a fairly self-contained block of code. I'd recommend moving it to its own function.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:53

           node.func.visit(new FindAllVariablesAndFunctionParameters(node.func));

Doesn't this have exponential runtime because it doesn't dedup functions?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:59

       node._func = this._currentFunc;

A more descriptive name, please

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:68

       node._func = this._currentFunc;

       if (!this._currentFunc.isEntryPoint)

           allVariablesAndFunctionParameters.add(node);

Why does visitVariableDecl() have a super call but visitFuncParameter not?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:83

program.add(ptrToGlobalStructType);

This doesn't seem right, because the parser will never put a PtrType at the global level, so we probably shouldn't do that either.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:100

let counter = 0;
const varToFieldMap = new Map();
for (let varOrParam of allVariablesAndFunctionParameters) {

   const fieldName = `field${counter++}_${varOrParam._func.name}_${varOrParam.name}`;

   globalStructType.add(new Field(varOrParam.origin, fieldName, varOrParam.type));

   varToFieldMap.set(varOrParam, fieldName);

}

for (let func of functionsThatAreCalledByEntryPoints) {

   if (func.returnType.name !== "void") {

       const fieldName = `field${counter++}_return_${func.name}`;

       globalStructType.add(new Field(func.origin, fieldName, func.returnType));

       func.returnFieldName = fieldName;

   }

}

This is a fairly self-contained block of code. I'd recommend moving it to its own function.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:139

       get func()

       {

           return this._func;

       }

Not sure if this is necessary if all callers are local to the class.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:157

           const possibleAndOverloads = program.globalNameContext.get(Func, functionName);

           const callExpressionResolution = CallExpression.resolve(node.origin, possibleAndOverloads, functionName, [ this.globalStructVariableRef ], [ ptrToGlobalStructTypeRef ]);

It's kind of unfortunate we have to reverse-engineer what would have happened earlier in the compiler. Can we run this stage earlier so we don't have to do this?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:171

               return super.visitVariableRef(node);

Isn't this an error?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:180

               return new Assignment(node.origin, this._dereferencedCallExpressionForFieldName(node, node.type, varToFieldMap.get(node)), node.initializer.visit(this), node.type);

Nodes need to get assigned (zero-filled) even if they don't have an initializer. We should add a test for this.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:183

           else if (node == this.variableDecl)

               return node;

I'd move this first

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:199

                   const anonymousVariable = new AnonymousVariable(node.origin, type);

What is the purpose of the anonymous variables? Why not assign directly into the global struct?

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:208

                   exprs.push(this._dereferencedCallExpressionForFieldName(node.func, node.func.returnType, node.func.returnFieldName));

Neat.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:210

               node.argumentList = [ this.globalStructVariableRef ];

Are you sure it's wise for them all to be using the exact same VariableRef? Seems like we should store a creation lambda instead of the raw variable itself.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:220

           if (node.value && this._func.returnFieldName)

If these don't match, seems like this should be an error.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:223

           return new CommaExpression(node.origin, [

               new Assignment(node.origin, this._dereferencedCallExpressionForFieldName(this._func, this._func.returnType, this._func.returnFieldName), node.value, this._func.returnType),

               new Return(node.origin) ]);

Indentation

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:240

       if (node._newParameters)

This pollutes the FuncDef nodes. I'd prefer a side-table.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:250

       if (node.func.returnFieldName)

           node._returnType = node.resultType = TypeRef.wrap(program.types.get("void"));

Cool.

Tools/WebGPUShadingLanguageRI/EBufferBuilder.js:-33

constructor(program)
{

   super();

   this._program = program;

}

What? What's the point of this class if you can never construct it? I don't see any other constructors or static functions.

Tools/WebGPUShadingLanguageRI/Func.js:57

set parameters(newValue)

Not a great variable name.

Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:51

   function createFieldType()

   {

       return field.type.visit(new Rewriter());

   }

   function createTypeRef()

   {

       return TypeRef.wrap(type);

   }

Do we need these?

Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:101
nativeFunc = new NativeFunc(

           field.origin, "operator." + field.name + "=", createTypeRef(),

           field.origin, "operator&." + field.name, new PtrType(field.origin, addressSpace, createFieldType()),
           [

               new FuncParameter(field.origin, null, createTypeRef()),

               new FuncParameter(field.origin, null, createFieldType())

               new FuncParameter(

                   field.origin, null,

                   new PtrType(field.origin, addressSpace, createTypeRef()))
           ],
           isCast, shaderType);

       setupImplementationData(nativeFunc, ([base, value], offset, structSize, fieldSize) => {

           let result = new EPtr(new EBuffer(structSize), 0);

           result.copyFrom(base, structSize);

           result.plus(offset).copyFrom(value, fieldSize);

           return result;

       setupImplementationData(nativeFunc, ([base], offset, structSize, fieldSize) => {

           base = base.loadValue();

           if (!base)

               throw new WTrapError(field.origin.originString, "Null dereference");

           return EPtr.box(base.plus(offset));
       });
       program.add(nativeFunc);

diff really made a mess of things, didn't it

At 2018-09-13T01:51:52Z<EMAIL_ADDRESS>wrote:
rdar://problem/44403028

At 2018-09-19T07:24:12Z<EMAIL_ADDRESS>wrote:
Created attachment 350096
Patch

At 2018-09-21T02:10:04Z<EMAIL_ADDRESS>wrote:
Comment on attachment 350175
Patch
Rejecting attachment 350175 from commit-queue.
Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-02', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 350175, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit
Logging in as<EMAIL_ADDRESS>Fetching: https://bugs.webkit.org/attachment.cgi?id=350175&action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=188402&ctype=xml&excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 350175 from bug 188402.
Fetching: https://bugs.webkit.org/attachment.cgi?id=350175
Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Myles C. Maxfield']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Parsed 14 diffs from patch file(s).
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/WebGPUShadingLanguageRI/All.js
patching file Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js
patching file Tools/WebGPUShadingLanguageRI/CallExpression.js
patching file Tools/WebGPUShadingLanguageRI/EBufferBuilder.js
patching file Tools/WebGPUShadingLanguageRI/Func.js
patching file Tools/WebGPUShadingLanguageRI/FuncDef.js
patching file Tools/WebGPUShadingLanguageRI/Prepare.js
patching file Tools/WebGPUShadingLanguageRI/Rewriter.js
patching file Tools/WebGPUShadingLanguageRI/SPIRV.html
patching file Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js
Hunk #1 FAILED at 20.
1 out of 1 hunk FAILED -- saving rejects to file Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js.rej
patching file Tools/WebGPUShadingLanguageRI/Test.html
patching file Tools/WebGPUShadingLanguageRI/Test.js
Hunk #1 succeeded at 8081 (offset 164 lines).
patching file Tools/WebGPUShadingLanguageRI/index.html
Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Myles C. Maxfield']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Parsed 14 diffs from patch file(s).
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/WebGPUShadingLanguageRI/All.js
patching file Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js
patching file Tools/WebGPUShadingLanguageRI/CallExpression.js
patching file Tools/WebGPUShadingLanguageRI/EBufferBuilder.js
patching file Tools/WebGPUShadingLanguageRI/Func.js
patching file Tools/WebGPUShadingLanguageRI/FuncDef.js
patching file Tools/WebGPUShadingLanguageRI/Prepare.js
patching file Tools/WebGPUShadingLanguageRI/Rewriter.js
patching file Tools/WebGPUShadingLanguageRI/SPIRV.html
patching file Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js
Hunk #1 FAILED at 20.
1 out of 1 hunk FAILED -- saving rejects to file Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js.rej
patching file Tools/WebGPUShadingLanguageRI/Test.html
patching file Tools/WebGPUShadingLanguageRI/Test.js
Hunk #1 succeeded at 8081 (offset 164 lines).
patching file Tools/WebGPUShadingLanguageRI/index.html
Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Myles C. Maxfield']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
2a2836e6631..dee36913aef  master     -> origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 236296 = 2a2836e6631fd50250fbec7774a49ee368daa97b
r236297 = 560dda40a46c0fea73db1cb6365debaee9273c3a
r236298 = 9ff9defcd0e9c7e3712bd2f28cc498e9e99f7902
r236299 = dee36913aefb932eb3d82e2b3510193dac0212ff
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Full output: https://webkit-queues.webkit.org/results/9290392

At 2018-09-20T06:33:31Z<EMAIL_ADDRESS>wrote:
Created attachment 350175
Patch

At 2018-09-20T02:49:41Z<EMAIL_ADDRESS>wrote:
(In reply to Myles C. Maxfield from comment #8)

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:53

           node.func.visit(new FindAllVariablesAndFunctionParameters(node.func));

Doesn't this have exponential runtime because it doesn't dedup functions?

Damn, good catch.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:157

           const possibleAndOverloads = program.globalNameContext.get(Func, functionName);

           const callExpressionResolution = CallExpression.resolve(node.origin, possibleAndOverloads, functionName, [ this.globalStructVariableRef ], [ ptrToGlobalStructTypeRef ]);

It's kind of unfortunate we have to reverse-engineer what would have
happened earlier in the compiler. Can we run this stage earlier so we don't
have to do this?

Annoyingly we need types for this stage, which are only fully annotated in the Checker stage. An earlier version of this patch tried doing this allocation but I couldn’t get it working reliably.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:171

               return super.visitVariableRef(node);

Isn't this an error?

No, anonymous variables can be wrapped in VariableRefs.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:199

                   const anonymousVariable = new AnonymousVariable(node.origin, type);

What is the purpose of the anonymous variables? Why not assign directly into
the global struct?

I’m going to add a comment into the code explaining why not, because it has now caught me out several times. Consider the case foo(foo(a, b), c). We initially evaluate c, and then evaluate foo(a, b) per the RTL calling convention. To evaluate foo(a, b) we evaluate b, then a, and place them in the global struct for the call to foo. However, this would mean that if c had previously been placed in the global struct then the outer foo wouldn’t see the value of evaluating c, but the value of evaluating b. Therefore all the arguments have to be evaluated into anonymous variables, then copied into the global struct, and then the function has to be called. The existing Metal code generator (MSLStatementEmitter.visitCallExpression) and interpreter (Evaluator._evaluateArguments) both respect this behavior and there are tests that catch this.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:210

               node.argumentList = [ this.globalStructVariableRef ];

Are you sure it's wise for them all to be using the exact same VariableRef?
Seems like we should store a creation lambda instead of the raw variable
itself.

There’s nothing in the compiler/interpreter at the moment that memoizes the evaluation or compilation of a node, so it would always be re-evaluated/re-compiled wherever it occurs, but this change seems harmless.

Tools/WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:240

       if (node._newParameters)

This pollutes the FuncDef nodes. I'd prefer a side-table.

Cool, will do.

Tools/WebGPUShadingLanguageRI/EBufferBuilder.js:-33

constructor(program)
{

   super();

   this._program = program;

}

What? What's the point of this class if you can never construct it? I don't
see any other constructors or static functions.

There is a default constructor (equivalent to constructor () { super(); }), and there are no construction sites that actually passed in the program object any more, nor is this._program used anywhere in the class.

Tools/WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:51

   function createFieldType()

   {

       return field.type.visit(new Rewriter());

   }

   function createTypeRef()

   {

       return TypeRef.wrap(type);

   }

Do we need these?

createFieldType() isn’t necessary (it works fine to continue using field.type) and createTypeRef is literally just used as a utility function 3 times (as you noticed, diff had a bad time with this file — I didn’t write these functions). I’ll get rid of them.

At 2018-09-21T06:55:22Z<EMAIL_ADDRESS>wrote:
Comment on attachment 350175
Patch
Rejecting attachment 350175 from commit-queue.
<EMAIL_ADDRESS>does not have committer permissions according to https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.

At 2018-09-21T21:02:29Z<EMAIL_ADDRESS>wrote:
Created attachment 350419
Patch

At 2018-09-21T21:46:10Z<EMAIL_ADDRESS>wrote:
Comment on attachment 350421
Patch
Clearing flags on attachment: 350421
Committed r236361: https://trac.webkit.org/changeset/236361

At 2018-09-21T21:03:16Z<EMAIL_ADDRESS>wrote:
Comment on attachment 350419
Patch
Rejecting attachment 350419 from commit-queue.
<EMAIL_ADDRESS>does not have committer permissions according to https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.

At 2018-09-21T21:07:04Z<EMAIL_ADDRESS>wrote:
Created attachment 350421
Patch

At 2018-09-22T10:03:00Z<EMAIL_ADDRESS>wrote:
*** Bug 189107 has been marked as a duplicate of this bug. ***


Add undo button for if we accidentally mistype something while doing a demo

Oops, accidentally filed this on the wrong repo. My bad


Dev to Main Sync

Developer Name: @kotesh-arya  @Shenoy07 @Aryex82 @Achintya-Chatterjee @Aanchal-Tiwari
PR Number(s):- #496 #486 #498 #509 #507
Backend changes

[ ] Yes
[x] No

Frontend Changes

[x] Yes
[ ] No

Database changes

[ ] Yes
[x] No

Breaking changes (If your feature is breaking/missing something please mention pending tickets)

[x] No
[ ] Yes:-

Deployment notes(Any special instructions for the deployment)

[x] No

Tested in staging

[x] Yes
[ ] No

Media to show changes
Add Sync Users Nicknames button

Add Onbarding>31D checkbox
Working in staging.webm

Don't merge this PR before all the developers verify their changes in staging and update this PR accordingly

Merging this PR. Verified from @kotesh-arya, all the backend changes are merged.


Provision nodes with kubeadm

Probably after kubeadm starts supporting multi-master & dedicated-etcd-nodes setup.
Relevant PR(which may or may not be merged): https://github.com/kubernetes/kubernetes/pull/44793

I'm curious about what this will add to kube-aws given the docs about it. @mumoshu What are your thoughts on what kube-aws gains from this?

@c-knowles Thanks for chiming in 👍
My thought is written in #675 - In short, I expect the amount of code for configuring apiserver and kubelets and so on to be reduced when we completely moved to kubeadm.
What do you think?

I think it seems aligned in some aspects like self hosting. If we are sticking with CloudFormation then kubeadm doesn't seems like 100% a natural fit based on what the docs say. It depends on your view around how much we bake in and how many moving parts on node initialisation.

Probably adopting kubeadm should prevent issues like #793 in longer term
cc @danielfm

Probably after kubeadm starts supporting multi-master & dedicated-etcd-nodes setup.

kubeadm has supported external etcd clusters pretty much from the get go.
There is no out-of-the-box HA, no, but in situations where you can copy files around and have a loadbalancer, that's not a problem.

Probably adopting kubeadm should prevent issues like #793 in longer term

That and much more is exactly why kubeadm should be used as the basic building block in a cluster.
See my blog post about this here: http://blog.kubernetes.io/2017/01/stronger-foundation-for-creating-and-managing-kubernetes-clusters.html
I think this should work fine, at least to start speccing out. Do you mind attending the kubeadm adoption working group meeting later today?
cc @justinsb
See:
https://groups.google.com/forum/#!topic/kubernetes-sig-cluster-lifecycle/HHr7WphU_xE
https://groups.google.com/forum/#!topic/kubernetes-sig-cluster-lifecycle/v2TzSHwYe9I
https://docs.google.com/document/d/1KdXsLYiJYJdiRbtgZsx6qbHF4g_K-gAScB9Zs4avgzg/edit#heading=h.aly6m9xjbivl
https://docs.google.com/document/d/1SAoA_GDIioQ1rAt8VhwWqPAgHTQpJ6TVnjJUKDqyVA4/edit#heading=h.mpsw4vcdaazw

Thanks a lot for the kind follow-up, @luxas!

but in situations where you can copy files around and have a loadbalancer

What files should be copied? Also, you meant that the files should be copied from the node running the kubeadm master to nodes running kubeadm followers(I'm not entirely sure if the terminology is correct)
Would you mind guiding me about one more thing: How kubeadm should be run in Container Linux?
Is there a statically-linked binary of kubeadm which can be run outside of a container in Container Linux? Or should be docker-run a kubeadm process within a privileged container, or anything else?

Do you mind attending the kubeadm adoption working group meeting later today?

I wish I could, but unfortunately no. It is 2-3 am in my timezone, which isn't acceptable to me(It is just impossible for me to wake up at such time - in an Nth non-rem sleep after I've finally put my son to sleep 😴
I'd really appreciate it if I could virtually attend WG meetings like that asynchronously via recorded videos, meeting notes, etc.

So, should we at least sync the following files among controller nodes?

The config file provided to kubeadm when the --config flag is used instead of the configuration through flags
/etc/kubernetes/admin.conf which contains the admin credentials generated on kubeadm init without the --token flag.

However, not specifying --token would require us to coordinate kubeadm init runs among multiple controller nodes. Otherwise, admin credentials would conflict among different instances of kubeadm masters among controller nodes.

Would there be anything else?

Also, can we instruct kubeadm to run pods like apiserver and scheduler in rkt pods rather than in docker containers like we do currently? How?

@mumoshu Thanks for writing this up.
I think the most productive way here would be to schedule a meeting or something and talk this through, then follow up on this thread and post the TL;DR; results/outcomes.
Very unfortunate on the timezones! However, I'm in the GMT+2 timezone, so we should be able to sync 1:1 at least I think... I can act as a proxy to the others in the kubeadm adoption working group later.

@luxas Thanks for the suggestion 👍 I'm still catching things up so let's talk after that.

According to the info gathered until now, this issue can be solved with or without it, but anyway I've submitted a feature request to add dedicated etcd nodes support for kubeadm in https://github.com/kubernetes/kubeadm/issues/491.
Also note that, at first glance, I took it as kubeadm would allow us to provision every kube-aws node after https://github.com/kubernetes/kubeadm/issues/261 is addressed. However, it doesn't seem to include dedicated etcd nodes bootstrapped by kubeadm as of today.

Isn't kubeadm model implies SSHing into already up and running nodes and installing packages/updating configs? It doesn't play well with autoscaling groups. It also need to support coreos.

@mumoshu kubeadm supports external etcd. That should probably work for your case (setting up etcd yourself, delegating k8s bootstrap to kubeadm). Regarding high availability -- it is totally possible to set up HA clusters with kubeadm if you can a) move the certificates for the cluster to all your masters b) set up a LB in front of the API servers. I think you have those capabilities, so you should be good to go.
@redbaron kubeadm handles bootstrapping of Kubernetes on a machine that exists. You can install / set up kubeadm in a boot script or afterwards by executing commands via ssh, or whatever. How do you currently set up k8s after the machines are created?

It also need to support coreos.

We just don't provide packages for CoreOS, but you can indeed use kubeadm on CoreOS.
Please read the design doc here about technical details: https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.8.md


Problem with labels-multi-atlas.sh

Hi,
When trying to segment an image, I get an error in the labels-multi-atlas.sh script saying:
Histogram1D::CDFToBin: Must be between 0 and 1
Error: normalize command returned non-zero exit status 1
It seems to be in the section: #weight atlas locally
Do you have any idea as to why I get this error?
Thanks!

Hi,
Thank you for spotting this!
There is a typo in line 422 of Modules/Image/include/mirtk/Histogram1D.h :
"if (p < .0 || p > .1) {"
should be:
"if (p < .0 || p > 1.0) {"
It will be updated soon.
Antonis


[0.19.2-prerelase] KOGITO-7325: Merge kie-editors-standalone reports into one file

cherry-pick of #1014 with but with yarn instead of pnpm

Same issue as in #1014 looking for fix :)

@yesamer this one too please :)


scrolling on MacOS with Touch Bar

hi, I've been running xrdp server (latest GitHub builds updated monthly) on Ubuntu 16.04.2 for months and everything is working great except scrolling which in remote browser or file manager seems to be very very fast and erratic (tiny scroll down is not smooth and causes much larger scroll to be performed).
Is there some 'settings' or compile time options that needs to be specified ?
Thanks tin advanca !!!

Duplicate of neutrinolabs/xorgxrdp#150


feat(metrics): ability to set custom timestamp with setTimestamp for metrics

Summary
By default, the current timestamp is set while creating metrics. This PR provides an opportunity to provide custom timestamp with metrics
Changes

Followed the Python implementation of the same feature for feature parity
Create setTimestamp function to set the timestamp
Validate the timestamp, if not a valid timestamp then log a warning
Set the timestamp, if not a valid value set this to Zero for Cloudwatch to skip
Write unit tests for the function, had to slightly change the date mock to test the new feature
Add a section for the feature inside the doc

Issue number: #3153

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Hey @arnabrahman, just dropping this issue here (#3302) in case you're looking for something else to work on.
It's in the same area as this one and should be fairly simple. If not interested, feel free to chose another (if any)


Internal Debug Support

More or less a copy and paste from Cxbx-Reloaded's checking for any duplicated OOVPAs and "expanded?" errors. Which also include modification from C++ codes to C. And include error counts for XbSymbolDataBaseTestOOVPAs function.
Currently, there are total of 36 errors for D3DDevice_xxxxx symbols.
We also need to include support for verifying different symbol matching same address as well. TBA
NOTE: There may be a chance of add parameter support later on down the path for different test and so on. In theory, it may will be a separate function.

PS: We can remove the original debug code from Cxbx-Reloaded. Which I will do that.

Looks good to me.
Please tell when you're ready so it can be merged

To be honest, we can merge it since the OOVPA progress I'm doing are still work in progress. Yet has benefit for XbSymbolCacheGenTest program to fix OOVPAs sooner.
I'll eventually make a new PR later on for ability to check symbols against duplicated address(es) only from xbe scan.
At least there's a notice for those going to use XbSymbolDataBaseTestOOVPAs function.


Error Connecting to Innova Devices

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Setup a device in the UI.

Expected behavior
I sucessfully connect to the device and am able to select a room to put it in.
Screenshots
If applicable, add screenshots to help explain your problem.

|Additional context
Add any other context about the problem here.
I looked it the logs for integrations and I am getting this error.
Error getting status http://<IP_ADDRESS>/api/v/1/status ((TimeoutError(),))
and then:
Error retrieving unit status
Thank you in advance for the help.

What happens if you try to open the url (http://<IP_ADDRESS>/api/v/1/status) in a browser?
Do you get an error?

Hey there, thanks for the help! I figured out that the issue was from me blocking internet access to the units through my router' s firewall. I guess I have to block some ports in order to be able to fully close down the network...

Hi All,
I have two fancoil, one is correctly installed and works with HA, the other one worked for two weeks and then i had the same error  of this topic and also the same log info.
can someone kindly help me how to fix this?
i have already checked the rules on router and everything seems ok.
thanks a lot

I have an innova webserver connectted to innova 3in1 HP and 5 airleaf.
The address to access via browser to manage its is http://192.168.1.xx/v/2.3.2/device.html
How to use the integration ?
If I put 192.168.1.xx on host of integration, response is "Failed to connect".

Hi,
Thank you for your useful app. I installed it today, and I had a similar issue when I wanted to add my device. The device was connected to the Wi-Fi, but it was in sleep mode. I turned on the device and tried again to add it to home assistance. The issue was resolved and I added it successfully.


[Master] Provide the VM onboarding function in guest_register API

The current guest_register API in zCC is originated live migration actually and
it can't fulfill the requirement of onboarding although it intends to.
This PR is to retrofit it to be a general API which can fulfill both migration and onboarding's
requirement, and even future requirements as well.
This PR is for master branch and the related PR is https://github.com/openmainframeproject/python-zvm-sdk/pull/65

please fix the conflict.

Ok, I'll resubmit it with change for @bjhuangr 's comment.

there are a lot of conflict, please update the conflict and please update the PR title
the PR title and commit message are helpful to review @SeanHQF

there are a lot of conflict, please update the conflict and please update the PR title
the PR title and commit message are helpful to review @SeanHQF

Done except the conflicts. The major discussions are in the related PR https://github.com/openmainframeproject/python-zvm-sdk/pull/65, can you pls check that there?
And after those comments are addressed, I'll submit the code here with latest update.
thanks

@jichenjc @bjhuangr Comments addressed (get_definition_info kept for I didn't find way to replace it), updated with master latest and all checks passed as attached (tox -v). Pls help to review and merge, thanks!
master-all.log

@zhengxiaomei123 pls also help to review, thanks!


chore(ci): add github action to bump version & publish package

Changes

adds a new github action with steps to bump the version in package.json and subsequently publish the package to npm
bump minimum node version to >= v16.x
updates some emojis 🤪

Codecov Report

Merging #924 (e6c905d) into main (3c637af) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #924   +/-   ##
=======================================
  Coverage   41.73%   41.73%
=======================================
  Files          47       47
  Lines        1428     1428
  Branches      286      286
=======================================
  Hits          596      596
  Misses        787      787
  Partials       45       45

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@Delawen okay so i removed the trigger for it to run automatically on release, based on your suggestion


Request: Documentation on how to run a BigBen cluster in Kubernetes

First of all, thank all the maintainers for the hard work. I have a single node BigBen running in our dev k8s cluster, so far it has been working reliably for us. We now would like to set up a 3 node BigBen cluster in our production k8s cluster to support real traffic, but there is no documentation about this. So, as the title describes, what should I do to set up a 3 node Bigben cluster in k8s? If you guys already have this worked out, it would be really nice if you guys can share that with me. Or else, if you could point me in the right direction, it would save us a bunch of time.

@sandeepmalik Any thoughts?

HI @OUCHUNYU , this is indeed strange. I thought I had documented the cluster operation but after looking at the ReadMe I realized I had not documented it properly. I will update the documentation (as soon as I get the write access again, which I am awaiting). But this is how you run it in the cluster mode:
Take a look at the bigben.yaml (https://github.com/walmartlabs/bigben/blob/master/app/src/main/resources/bigben.yaml)
There's an hz section in there. All you need to do is set up the member ips (comma separated) (and change the port if using a different port).
hz:
network:
members: IP1,IP2,IP3
You don't need to list all the IPs (the more the better) but at least provide a couple of IPs (seeds) at least.
You can also provide this setting through the system property as -Dhz.network.members="IP1,IP2,IP3" as well.
After that call the cluster API (GET /events/cluster) to ensure that cluster is property formed and a master is chosen.
Hope this helps.


Added output to the avm/res/network/private-endpoint module

Description
Added networkInterfaceIds output to the avm/res/network/private-endpoint module
Fixes #2990
Closes #2990

Pipeline Reference

Pipeline

Type of Change

[ ] Update to CI Environment or utilities (Non-module affecting changes)
[X] Azure Verified Module updates:

[X] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:

[X] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
[ ] Breaking changes and I have bumped the MAJOR version in version.json.
[X] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[X] I have run Set-AVMModule locally to generate the supporting module files.
[X] My corresponding pipelines / checks run clean and green without any errors or warnings

@microsoft-github-policy-service agree company="Xebia"


Cannot find module 'material-ui' from...

I am trying to build my app.jsx using the last version of react and material-ui via gulp:
Error: Cannot find module 'material-ui' from '/home/kkkeeeddd/dev/Cyberia/cyberia/frontend/src/js'
at /usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:46:17
at process (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:173:43)
at ondir (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:188:17)
at load (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:69:43)
at onex (/usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:92:31)
at /usr/lib/node_modules/browserify/node_modules/resolve/lib/async.js:22:47
at FSReqWrap.oncomplete (fs.js:99:15)

Looks like the bug was fixed with the npm release..
Thanks!


Check DenoGres or Kysely query builder

https://denogres.deno.dev/docs/getting-started

Or check this example
https://github.com/michalvavra/fresh-sqlite-example using SQLite and kysely query builder

A working Postgres Driver for Kysely
https://gist.github.com/omar2205/cd42feccf25cff845b50ec2397eba18f

Thanks for the suggestions. I'll probably end up using Kysely since I'm so familiar with knex and I won't have to figure out how to work with another half finished ORM.

🙏 Thanks again for these suggestions. Closing to clean up for now.


Documentation update - Global pipeline conditions

Component
other
Describe the bug
The Global pipeline conditions section in the documentation is described as follows

I tried adding a when array and it worked, as follows

As described by non-global when

System Info
{"source":"https://github.com/woodpecker-ci/woodpecker","version":"next-3158980d"}

Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Checked that the bug isn't fixed in the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]
[X] Check that this is a concrete bug. For Q&A join our Discord Chat Server or the Matrix room.

The "when block" refers to one when-condition block... you are using a list of when blocks witch are OR (one must match)
So if the wording is unclear it should be improved

@NPCDW Would be awesome if you could try to improve the wording a bit


Cannot attach sound or light in 0.7.8

Hi, just tried the module, and it's great, just what I need! In your mini-tutorial you show that you can attach an ambient light by selecting it via the rectangle tool and then attach it. my problem: The rectangle tool seems no longer be there (using Foundry 0.7.8) - deactivated all modules to double check it's not a module that kills it - but no rectangle tool in vanilla either... Help appreciated!

To be able to attach measure templates, lights, sounds and journals you need the select-tool-everywhere module, as of writing this there is no select tool in those controls.

It's the second sentence in the description. You can also attach via macro if that's more your thing.

 Sorry for that!


location.replace(hash) vs location.hash = hash

Using location.hash = hash; instead of location.replace(hash); inside onMapMove allowed me to keep my use case working: a map in a page opened by another page using an anchor.
I don't know if this breaks anything, but it seems more convenient.

This works for me as well. Thanks @VictorVelarde !

Long time ago... I guess this should be closed


Not Found prisma.gz

😿 I'm in Bali, Indonesia, but I can't find that file, so prisma doesn't work. Do others work well? 🤔
prisma      | Error: Not Found https://prisma-builds.s3-eu-west-1.amazonaws.com/master/4f8eb5bd9628db47402dc855ad0b6c7cfc915d46/debiandebian-openssl-1.1.x/prisma.gz
prisma      |     at o.default.retries (/usr/local/lib/node_modules/prisma2/build/index.js:2:2803664)
prisma      |     at processTicksAndRejections (internal/process/task_queues.js:94:5)
prisma      |     at async RetryOperation._fn (/usr/local/lib/node_modules/prisma2/build/index.js:2:2806524) {
prisma      |   attemptNumber: 1,
prisma      |   retriesLeft: 1
prisma      | }
prisma      | Error: Not Found https://prisma-builds.s3-eu-west-1.amazonaws.com/master/4f8eb5bd9628db47402dc855ad0b6c7cfc915d46/debiandebian-openssl-1.1.x/prisma.gz
prisma      |     at o.default.retries (/usr/local/lib/node_modules/prisma2/build/index.js:2:2803664)
prisma      |     at processTicksAndRejections (internal/process/task_queues.js:94:5)
prisma      |     at async RetryOperation._fn (/usr/local/lib/node_modules/prisma2/build/index.js:2:2806524) {
prisma      |   attemptNumber: 2,
prisma      |   retriesLeft: 0
prisma      | }
prisma      | Failed to generate Photon client: Error: Not Found https://prisma-builds.s3-eu-west-1.amazonaws.com/master/4f8eb5bd9628db47402dc855ad0b6c7cfc915d46/debiandebian-openssl-1.1.x/prisma.gz
prisma      |     at o.default.retries (/usr/local/lib/node_modules/prisma2/build/index.js:2:2803664)
prisma      |     at processTicksAndRejections (internal/process/task_queues.js:94:5)
prisma      |     at async RetryOperation._fn (/usr/local/lib/node_modules/prisma2/build/index.js:2:2806524) {
prisma      |   attemptNumber: 2,
prisma      |   retriesLeft: 0
prisma      | }

After removing docker image and running it again, it worked fine.


Resize the space between projects, put projects names at the same lev…

…el, fix report bug button.

Fix report bug button:
Normal state:

On Hover state:

Resize the space between projects:

Put project names on the same horizontal line:

Resize organizations' logos.

Add all projects (even the ones without a logo).


Release of electron is on page2

My build process broke because the release of electron (v0.36.2) I'm using is now on page2 of the release list (ie.  https://api.github.com/repos/atom/electron/releases?page=2. )
I know the obvious fix is "upgrade it!", but a) I'm using some native modules that require v36 and b) it failed silently, so was difficult to figure out what happend.
I didn't see an obvious way to pass in an additional argument to grs. Any ideas?

This is actually a problem with the https://github.com/xeodou/grs repo. The request that grsmakes doesn't take an option to change the page number. Ideally grs would either need to take a page number or recursively lookup if it can't find it on the first page.

I don't understand why it needs to request https://api.github.com/repos/atom/electron/releases at all. We're passing in the repo + release string which is what it needs to download the release.

I could see the reason for the request would be to set an access token for private repos, but it could be completely bypassed if its a public repo (speculating).


Overlay Renders extra padding on Mobile platforms

I am making a custom overlay for popup menu and got this issue. They are different in android and desktop(windows). I got the expected overlay in desktop but with little extra height in android as in image below.

Here's the code I created the custom widget for overlay

import 'package:black_market/src/constants/my_constants.dart';
import 'package:black_market/src/products/presentation/product_post_screen.dart';
import 'package:flutter/material.dart';

class CustomOverlayMenu extends StatelessWidget {
  const CustomOverlayMenu({
    Key? key,
    required this.animation,
    required this.preferredHeight,
    required this.menuList,
    required this.overlayReset,
  }) : super(key: key);
  final Animation<double> animation;
  final double preferredHeight;
  final List<String> menuList;
  final Function overlayReset;
  @override
  Widget build(BuildContext context) {
    return Positioned(
      right: 10,
      top: preferredHeight,
      child: FadeTransition(
        opacity: animation,
        child: Material(
          elevation: 1,
          borderRadius: const BorderRadius.all(
            Radius.circular(kBorderRadius),
          ),
          color: kAccentColor,
          child: SizedBox(
            width: 120,
            child: ListView.builder(
              shrinkWrap: true,
              itemBuilder: (_, index) => InkWell(
                borderRadius: index == 0
                    ? const BorderRadius.vertical(
                        top: Radius.circular(kBorderRadius),
                      )
                    : index == menuList.length - 1
                        ? const BorderRadius.vertical(
                            bottom: Radius.circular(kBorderRadius),
                          )
                        : BorderRadius.zero,
                splashColor: kSplashColor,
                highlightColor: kHightLightColor,
                hoverColor: kHightLightColor,
                onTap: () {
                  if (index == 0) {
                    Navigator.pushNamed(context, ProductPostScreen.productPostScreen);
                    overlayReset();
                  }
                },
                child: Padding(
                  padding: const EdgeInsets.all(8),
                  child: Text(
                    menuList[index],
                    style: const TextStyle(
                      fontSize: 15,
                      fontWeight: FontWeight.w400,
                      color: kPrimaryColor,
                    ),
                  ),
                ),
              ),
              itemCount: menuList.length,
            ),
          ),
        ),
      ),
    );
  }
}

and used that in here
void _showOverlay() {
    OverlayState? overlayState = Overlay.of(context);
    overlay1 = OverlayEntry(
      builder: (context) {
        return CustomOverlayMenu(
          animation: _curveAnimation,
          preferredHeight: widget.preferredSize.height,
          menuList: _menuList,
          overlayReset: _resetOverlay,
        );
      },
    );

    overlayState?.insertAll([overlay1!]);
  }

here's flutter doctor
C:\Users\user>flutter doctor
Doctor summary (to see all details, run
flutter doctor -v):
[√] Flutter (Channel stable, 3.0.4, on
    Microsoft Windows [Version
    10.0.19044.1826], locale en-US)
[!] Android toolchain - develop for Android
    devices (Android SDK version 33.0.0)
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install
      "cmdline-tools;latest"`
      See
      https://developer.android.com/studio/co      mmand-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses`      to accept the SDK licenses.
      See
      https://flutter.dev/docs/get-started/in      stall/windows#android-setup for more
      details.
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows
    (Visual Studio Community 2022 17.1.6)
[√] Android Studio (version 2021.2)
[√] IntelliJ IDEA Community Edition (version
    2021.3)
[√] VS Code (version 1.70.1)
[√] Connected device (4 available)
[√] HTTP Host Availability

! Doctor found issues in 1 category.

Hi @htoopyaelinn56, Thanks for filing the issue. I tried running the below code sample and I was able to reproduce the issue on the latest stable and the master channel.

flutter doctor -v (mac)
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-IN)
    • Flutter version 3.0.5 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (5 days ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.67.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • sdk gphone arm64 (mobile) • emulator-5554 • android-arm64  • Android 11 (API 30) (emulator)
    • macOS (desktop)           • macos         • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)              • chrome        • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.1.0-0.0.pre.2186, on macOS 12.4 21F79 darwin-arm, locale
    en-IN)
    • Flutter version 3.1.0-0.0.pre.2186 on channel master at
      /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 458c7b9c65 (8 days ago), 2022-08-10 03:19:07 -0400
    • Engine revision 75e17f1a6f
    • Dart version 2.19.0 (build 2.19.0-81.0.dev)
    • DevTools version 2.16.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 33.0.0-rc4
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.46.0

[✓] Connected device (3 available)
    • sdk gphone arm64 (mobile) • emulator-5554 • android-arm64  • Android 11 (API 30)
      (emulator)
    • macOS (desktop)           • macos         • darwin-arm64   • macOS 12.4 21F79
      darwin-arm
    • Chrome (web)              • chrome        • web-javascript • Google Chrome
      104.0.5112.79

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

From the screenshots it looks like something is insisting on applying the SafeArea padding in the pop-up. Not sure, what it is, though. You could try wrapping the CustomOverlayMenu in a MediaQuery that removes the top padding:
MediaQuery.removePadding(
    context: context,
    removeTop: true,
    child: CustomOverlayMenu(...),
);

Thanks @goderbauer. MediaQuery.removePadding solves it.

ListView by default adds padding from MediaQuery.

By default, ListView will automatically pad the list's scrollable extremities to avoid partial obstructions indicated by MediaQuery's padding. To avoid this behavior, override with a zero padding property.

Either remove padding as suggested above or provide EdgeInsect.zero to the list view itself.
This is WAI.


Reusability: Can we take roles into a separate package, or should I fork?

I don't know how much sense this will make to you, but I'll try my best explaining what I want in detail.
Personally, I find the package here pretty good to start with and I've used this package in version 2.0 for quite a while now. There are some things I want to address which would require quite some changes to this package, but I'm not sure if we should not collaborate instead of me just forking off and brewing my own soup.
I like the concept of having roles for everything, and this is also the part I would like to reuse in my package. Roles having nested roles, where each of them has a list of children containing the inherited roles. Even though I would not only include the immediate children, but also nested - but let's start from the beginning.
There are some limitations I hit which I need to do address in a different way.
I need to save the assignment of a role, which currently is stored in the property roles in the user document, in a separate collection to keep up with my performance requirements. Here's a list of reasons and features I need:

Performance. The current implementation get's very heavy if you have a lot of resources where you want to grant or revoke access to a per-resource-basis.
Publish a limited set of permissions published to the client. As the first point (Performance) already introduced, I have a pretty big list of resources. Not every permissions the user has is needed at any given time. I need to be in control which roles are published and which not.
Attributes to an assignment. In some cases I need to save some metadata to an assignment. These could be saved in a collection introduced to address the previous two items of this list.
Grouping resources. I have use-cases where I need to give users a role for a resource of a different type. Not hard, as my first idea was to just prefix the id with the document type. But I also need to be able to quickly find all roles a user has for a certain resource-type. A resource-group would make life a lot easier there.
Search for the same role on multiple resources. Think of it as if the write-permission on a folder would grant you access to its files. The files are too many and tend to change rapidly. Some users now get permission on a per-file-basis, some for the folder, some for the full hard-drive.

To keep the first reason valid, I would also need to store the hierarchy of roles in the parent-roles, which would be the only change I see for the roles collection.
So, how does this sound? I think it justifies a separate package, but - at the same time - I would like to cooperate with you on a common basis so users could easily choose one of our packages, even if they only share the roles and all the methods there.
If you say that the differences of our ideas are not compatible, I'd go and brew something on my own and keep it separate from yours.

Not sure if this is helpful but while we call the base object a "user", the API doesn't really care except that we hard-coded Meteor.users.update in places.  If we were to make the underlying Mongo Collection configurable, you could invert the normal use of the Roles package to make it document-centric as opposed to user-centric.
So if you could update the target collection, you could conceivably use of the Roles package to control access to a document resource by storing the user IDs on the resource record itself.
The usage would look something like this:
// Requires API change in Roles
Roles.setTargetCollection = Mongo.myDocuments

// Just regular javascript
Roles.addUsersToDocuments = Roles.addUsersToRoles
Roles.userCanAccessDocument = Roles.userIsInRole

Roles.addUsersToDocuments(docObj, UserIDs, optionalScope)
const hasAccess = Roles.userCanAccessDocument(docObj, userIDToCheck, optionalScope)

Would this cover your use case?

Thanks for the response of you two, really appreciate that you take yourself time for this.

So the second point I do in my publish endpoint where I limit which permissions get published with a simple filter on the array. The issue is only that Meteor does not auto-merge those together if you have multiple publish endpoints publishing different sets of permissions.

If we would extract all the permissions a user has into an extra collection, we could avoid this problem.

For third, I already do that with new schema where you have a document per assignment. So you can add stuff there. I add auditing information there, for example when and who assigned a permission.

Good point there. If we go the way of saving the assigned roles in a separate collection (one document per role assigned) this looks tempting but might in fact be not the best place if we want to keep this flexible.

Personally I think that per-resource permissions belong to the document itself. [...] For example, in my case I have permissions on a post and then permissions on comments, and some permissions from a post tr to comments.

The reason to me is that I also will have quite an amount of people who will have global permission (how would you store this?) and some documents where the amount of users would exceed 100 people. If I'd take your approach, this could easily grow up to 200 and more. This would again leave me with the same performance problems as I have of today. And you would have the hassle of adding a bunch of permissions to a new comment on creation.
As I talk about resource groups, this would be very hard to handle in your suggestion alanning, because I'm not talking about only one type here. I'd had to define multiple target collections then ...

I'll create a PR where I extract the roles from the user-document into a separate collection. This should work by keeping the API the same. Later on I'll find a way for realizing the other improvements I suggested and think of ways to get them working, but the extraction of roles from the user is a major requirement to me as I have an N:N relation here where both of the N's wouldn't be low numbers in the long run.

The more I think about it, I get on the idea to extend a collection by a set of methods provided by this package. This could cover the approach alanning was suggesting here.
This would then allow users to create permissions per resource, saved on the resource. The field for scope then would most likely be used as a reference to the user (if it now is the user itself or his group). In this approach we'd have to drop that the system grants permission if the scope is not set.
On the other side, our system of permissions is quite fine-grained, which makes it quite flexible but again performance-heavy if we'd take this approach, I feel ...
I'd now start with creating a document per assignment in a new collection called role-assignment.

@alanning @mitar have you had any time to take a look at it yet?

Frankly, and sadly, I will not have time to look into this in foreseeable future. :-(

Thanks for saying it out.
@alanning how is it on your side?
I'll soon start putting my version into production. After some rethinking of things back and force, I came to the conclusion that we don't need any additional changes to realize everything I initially asked in this ticket.
I separated it into different PRs to keep it readable and keep the scope of each change low while still fitting one single scope.
I've lived with a custom package to gain the benefits of 2.x, and I'd be open to keep this repository going by releasing my changes as a 3.x and providing support as far as I can. Feel free to respond if you feel you won't have time to review or help me driving the package into the direction you'd like to see it going. Also tell me if you think this goes off too far. In this case, please provide me with details and I'll see how far I can bend to get both ideas aligned.

Hi.
I see that your PRs are still waiting. You published your version on atmosphere?
Thanks!

@alanning @mitar since both of you don't have much time at hand, would you help me moving this package over to https://github.com/Meteor-Community-Packages and give me access to publish new versions of this package on Atmosphere so people who use an older version would get an information about the update?

Hi @SimonSimCity, happy to help get the package set up in Meteor-Community-Packages.  I would keep this repo open and point to that version in this repo's readme.
It looks like you are not a member of the Meteor-Community-Packages group, would you be able to become one?
https://github.com/orgs/Meteor-Community-Packages/people
Also, I'd highly recommend that the package we create in that repo be based on the v2 branch.  This repo can live on as the v1 maintenance branch.

Actually I am - maybe it's hidden for you as well 😊
I'd start off publishing the current v2 branch as a second major version followed by my changes as a v3. Publishing my version as v2 doesn't make sense since the v2 branch is stable and different enough to justify a major release.
Please let me know if I can assist you in moving the repo. Also let me know how I can publish a new version on atmosphere.

Hello,
So where are you?
The new version is online?
Thanks!

@alanning @mitar I can start publishing a new version, but I need access to the package administration on Atmosphere. When I get this, I'll start publishing the new versions.

Why not publish the new version under a new name? Like ostrio:flow-router-extra?

@alanning @mitar it's now almost half a year waiting on your response ... If I don't get access by the end of this month, I'll see forking as the best option to continue. This package can then work on in v1, maybe the unpublished v2 and I'll continue supporting a v3 which includes all the changes I've made.

I am leaving to @alanning to decide about the future of the project. I do not feel comfortable enough to give access for something which feels mostly by @alanning.

I would suggest that we move this project to https://github.com/Meteor-Community-Packages and then leave to @SimonSimCity to merge his changes into the project and continue with it, given ownership of the repository. I think his proposal is good and it seems both @alanning and me do not have really time to deal with this project.
If @alanning agrees, then let's do that?
@SimonSimCity would that be something you would do?

Great solution!

@mitar yes! Nice to see this moving! Let me know if there's anything I can help you here. Would be nice to get it moving before the end of this month.

I can also help with this a bit. I think we should:

Release v2 with my changes.
Release v3 with your changes.

Let's wait for @alanning to OK this plan.

@mitar @SimonSimCity Sounds good!
Reference for further discussions:
https://github.com/Meteor-Community-Packages/organization/issues/25

I think this has been resolved. Let's move discussion to other issues.
@SimonSimCity feel free to push your stuff to master branch. There is now also v1 and v2 branches with older versions.

Done, I'll release a v3 soon.


Fix compatibility with Swift 5.3 and older toolchains

Fixes #347

@swift-server-bot test this please

This looks good, but why did we change it from swift --version originally?

swiftc -print-target-info should be the correct way for an IDE to retrieve Swift compiler information. Once we drop all 5.3- support, we can revert this PR.


Fix donate other

This fixes the bug reported by @piamancini where the interval would not go back to the initial interval of the presets after opening the "Other".

Looks good. Glad you cleaned up the component.


Add coloured tag for sticky comments.

Fixes #184.

The code looks good, but it doesn't look like it's working for me

Any ideas?

This is for sticky comments (feature that was added quite recently).

 is what stickied posts look like. I just pushed that to my repo.
By the way, some files seem to not have a newline at the end of them, which means whenever I write a file that I have edited, it also touches the bottom of the file to add the newline.

Oh neat, I didn't know there were comment stickies!
I have automatic newlines turned off through pycharm, but it doesn't matter to me one way or the other.


Cannot read property 'add' of undefined on workbox-webpack-plugin v5

Library Affected:
workbox-webpack-plugin v5.0.0-alpha.0 & 1 & 2
Browser & Platform:
all browsers
Issue or Feature Request Description:
When building I get the error:
 ERROR  Failed to compile with 1 errors2:48:35 PM

Cannot read property 'add' of undefined

 ERROR  Build failed with errors.

This only happens when I include any of the workbox plugins
I'm using Vue CLI but not the PWA plugin because I need some of the features/fixes from v5.0.0-alpha.2

Can you provide some more info? The easiest approach would be if you could upload a reproduction of your failing build to GitHub, or zip it into an archive and link to it.
If you can't do that for some reason, can you provide the full logged output of the webpack build command, and let me know which version of webpack you're using?

> Executing task: npm run build:web <

><EMAIL_ADDRESS>build:web /home/lukas2005/Dokumenty/Projects/Anchor/web
> vue-cli-service build --mode production.web

starting webConfig

⠙  Building for production.web...clean-webpack-plugin: /home/lukas2005/Dokumenty/Projects/Anchor/web/dist/**/* has been removed.
Starting type checking and linting service...
Using 1 worker with 2048MB memory limit
⠇  Building for production.web...

 ERROR  Failed to compile with 1 errors                                                                                10:30:56 PM

 error

Cannot read property 'add' of undefined

 ERROR  Build failed with errors.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build:web: `vue-cli-service build --mode production.web`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build:web script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/lukas2005/.npm/_logs/2019-08-21T20_30_57_100Z-debug.log
The terminal process terminated with exit code: 1

I'm using Vue CLI 3.10.0 which appears to be using Webpack 4.28.4

How are you extending/overriding the webpack.config.js that vue-cli-service build ends up using to include the v5 version of workbox-webpack-plugin?

I just added the plugin in the vue.config.js file:
const workbox = require("workbox-webpack-plugin");

const path = require("path")

module.exports = {
	configureWebpack: {
		plugins: [
			new workbox.GenerateSW({
				//importWorkboxFrom: 'disabled',
				//swSrc: path.join("src", "sw.ts"),
				swDest: "service-worker.js"
			})
		]
	}
}

Thanks—I can reproduce the issue now.
The code that fails is https://github.com/GoogleChrome/workbox/blob/f36e6bdc8859fed77ea59adab439d00d8e48cc90/packages/workbox-webpack-plugin/src/lib/get-manifest-entries-from-compilation.js#L67-L71, and it fails when assetName is css/app.e2713bb0.css.map.
I'm not 100% sure why this failure happens, but I'm assuming it's because of something having to do with how the CSS sourcemaps are generated, and how that interacts with the list of assets that webpack knows about.
I'll just put in an additional check to guard against this condition.