Mega Feature: Add kro cli

Feature Description
Problem Statement:
Add a cli for kro and integrate it with kubectl.
Proposed Solution:

The cli should support a diff functionality using --dry-run:
kubectl kro apply -f <updatdRG>.yaml --dry-run
kubectl kro apply -f <updatedInstance>.yaml --dry-run

It should also show the chain dependent resources of an instance and their statuses:
NAME                                  STATE    SYNCED   AGE
webappInstance                        ACTIVE   True     42h
       ├── deployment                 ACTIVE   True     42h
       ├── service                    ACTIVE   True     42h
       └── ingress                    ACTIVE   True     42h

Alternatives Considered:

Additional Context:

Please vote on this issue by adding a 👍 reaction to the original issue
If you are interested in working on this feature, please leave a comment

We believe that the biggest benefits of having the CLI would be around schema validation, linting of the expression language, having an ability of doing a dry-run on the ResourceGroup as well as an ability to produce the complete CRD that would be generated by the ResourceGroup.
In addition, it would be beneficial if there would be a way to view the effects of changes to the ResourceGroup on the instances prior to the ResourceGroup changes being made. eg, there is a proposed change to the ResourceGroup it would be very helpful to know how that change would affect all the instances of that ResourceGroup.


Update docs to surface CLI filtering syntax

Following a user suggestion in Slack, I updated the docs to offer more pointers to users on how / when to use our filtering syntax.
Also fixed some formatting issues in the CLI docs.
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[x] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] If I have added an integration, I have updated the integrations table and the corresponding website section.
[ ] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

@fa9r added a section on using the Client methods as well.


need to add favicons to the site

Currently there are no favicons configured, we need to add them.

Already done.


SyntaxError from concurrent.futures

When I am using multiple workers or am running my tests in parallel (xdist + pytest)
Stacktrace (most recent call last):

  File "django/core/handlers/base.py", line 137, in get_response
    response = response.render()
  File "django/template/response.py", line 103, in render
    self.content = self.rendered_content
  File "django/template/response.py", line 80, in rendered_content
    content = template.render(context)
  File "django/template/base.py", line 148, in render
    return self._render(context)
  File "django/template/base.py", line 142, in _render
    return self.nodelist.render(context)
  File "django/template/base.py", line 844, in render
    bit = self.render_node(node, context)
  File "django/template/base.py", line 858, in render_node
    return node.render(context)
  File "django/template/loader_tags.py", line 126, in render
    return compiled_parent._render(context)
  File "django/template/base.py", line 142, in _render
    return self.nodelist.render(context)
  File "django/template/base.py", line 844, in render
    bit = self.render_node(node, context)
  File "django/template/base.py", line 858, in render_node
    return node.render(context)
  File "pipeline/templatetags/pipeline.py", line 59, in render
    return self.render_compressed(package, 'css')
  File "pipeline/templatetags/pipeline.py", line 44, in render_compressed
    paths = packager.compile(package.paths)
  File "pipeline/packager.py", line 99, in compile
    return self.compiler.compile(paths, force=force)
  File "pipeline/compilers/__init__.py", line 51, in compile
    from concurrent import futures

    """Execute computations asynchronously using threads or processes."""

    __author__ = 'Brian Quinlan (brian@sweetapp.com)'

>   from concurrent.futures._base import (FIRST_COMPLETED,
                                          FIRST_EXCEPTION,
                                          ALL_COMPLETED,
                                          CancelledError,
                                          TimeoutError,
                                          Future,
                                          Executor,
                                          wait,
                                          as_completed)
E     File "/Users/neo/.virtualenvs/***/lib/python3.4/site-packages/concurrent/futures/_base.py", line 355
E       raise type(self._exception), self._exception, self._traceback

runs fine with a single thread

+1

Related to #476.


Multi-Display Settings Widget

Can users get a widget that allows them to adjust multiple displays from one location?

Great idea, tracked in #1052


[ISSUE-1045] Fake Attach Feature for Non-LVM-Block-Mode Volumes

Purpose
Resolves #1045

Implement the fake attach feature for non-LVM-block-mode volumes.
Temporarily remove the forbidden 3rd-party action script from our github PR validation workflow to fix our github PR validation startup failure.

PR checklist

[ ] Add link to the issue
[ ] Choose Project
[ ] Choose PR label
[ ] New unit tests added
[ ] Modified code has meaningful comments
[ ] All TODOs are linked with the issues
[ ] All comments are resolved

Testing
We have manually verified that this fake attach solution for non-LVM-block-mode volumes can work both on HDD and NVME disks.
custom-ci passed: https://asd-ecs-jenkins.isus.emc.com/job/csi-custom-ci/1560/

do we need to update  fake-attach.md in docs ?

do we need to update fake-attach.md in docs ?

OK. I will update fake-attach.md accordingly before code merge.


Account activation check runs twice on one request

using rainlab user plugin very basically, i got Your account is already activated! message when landing on the page containing the component account from mail activation link.
by using debugbar,  i saw that the account.php component onRun method is executed 2 times. first time, the account is ativated and second time, process fail into Your account is already activated! exception
it is very disturbing stuff for user.
have you some idea why having this behavior ? seems there is a redirect but didn't find it by now
note: The activation mail link is well builded (with https and www so my .htaccess redirect seems not responsible)
environment:
https
oc build 419, rainlab user 1.3.4, Sweet Alert 1.1.0

Closing as it has been over a month since any activity on this occurred.


Missing Recipes / Compatibility Issue ?

I have setup a new minecraft server/client running FTB Revelation 2.2 and manually added NuclearCraft 2.10p to it (by dropping the jar file in the mods folder, both on the server and the client).
I just found that while the three plating (basic, advanced, elite) show up in JEI, the only way to get the basic is through dungeon chests.  The other two have no ways to get.
I also tried adding 2 graphite dust and 2 lead ingots in a crafting grid and it did not recognize the pattern.
Is there a way to troubleshoot these missing recipes?

Dyweni

Minecraft version:  1.12.2
Forge version:  <IP_ADDRESS>29
FTB Revelation version: 2.2.0
NuclearCraft version: 2.10p

Server Java version: 1.8.0_172
Client Java version: 1.8.0_171

Just tested Vanilla Minecraft 1.12.2 + Forge <IP_ADDRESS>30 + NuclearCraft 2.10p... it works.  Must be something with the FTB Revelation 2.2 modpack.

Figured it out.  Not an issue with NuclearCraft.
FTB Revelation 2.x modpacks have a line ('mods.unidict.removalByKind.get("Crafting").remove("plate");') which removes all plate recipes during startup, including NuclearCraft plate recipes.
If you comment out that line in the file 'scripts/01_unification.zs' in their modpack, the NuclearCraft plate recipes come back.

I have also encountered this issue, and I am aware it has been closed at this time of writing. Just wanted to add my own fix. I have found that commenting out the line in 'scripts/01_unifcation.zs' will also return other unwanted plate recipes and undo some of the unification work for combining all plate recipes from other mods.
I have attached my own version of the '01_unification.zs' file that can be used to maintain proper recipe unification and re-enable the nuclearcraft plate recipes. Just replace the old file with this one and it should work. The file to replace is in the instance of the version of FTB folder you are playing on, in the scripts folder:
/scripts/01_unification.zs
NOTE: github wont accept .zs files, so just change the file type from .txt to .zs after you've downloaded it.
01_unification.txt
For anyone curious, all I have added is these lines:
	//fix nuclearcraft plate recipes
recipes.addShapedMirrored(<nuclearcraft:part:0>,
[
[<ore:dustGraphite>, <ore:ingotLead>,],
[<ore:ingotLead>, <ore:dustGraphite>]
]
);
recipes.addShaped("Advanced Plate", <nuclearcraft:part:1>,
[
[<ore:dustRedstone>, <ore:ingotTough>, <ore:dustRedstone>],
[<ore:ingotTough>, <nuclearcraft:part:0>,  <ore:ingotTough>],
[<ore:dustRedstone>,  <ore:ingotTough>, <ore:dustRedstone>]
]
);
recipes.addShaped("Du Plate", <nuclearcraft:part:2>,
[
[<ore:dustSulfur>, <nuclearcraft:uranium:8>, <ore:dustSulfur>],
[<nuclearcraft:uranium:8>, <nuclearcraft:part:1>, <nuclearcraft:uranium:8>],
[<ore:dustSulfur>,  <nuclearcraft:uranium:8>, <ore:dustSulfur>]
]
);
recipes.addShaped("Elite Plate", <nuclearcraft:part:3>,
[
[<ore:dustRhodocrosite>, <ore:ingotBoron>, <ore:dustRhodocrosite>],
[<ore:ingotBoron>, <nuclearcraft:part:2>, <ore:ingotBoron>,],
[<ore:dustRhodocrosite>, <ore:ingotBoron>, <ore:dustRhodocrosite>]
]
);


Not able to replace values from another API response to current API even after callonce.

@ignore
Feature: Perform B2C redemption
Background:
* url baseUrl
* def apiComponents = read('../apiComponents.json')
* header Content-Type = 'application/json'
* json result = callonce read(("B2C_B2B_CouponCodeGeneration.feature@B2C_cart_redemption"))
* def couponCode1 = result.response["skuCoupons"][0]["coupons"][0]["couponCode"]
* def couponCode2 = result.response["skuCoupons"][1]["coupons"][0]["couponCode"]
* print "<<<<<<<<<<<<<<<<", couponCode1  # I am getting TIEJOELS
* print "<<<<<<<<<<<<<<<<", couponCode2  # I am getting 0A2NWIVY
Scenario: merchant verify.
* header x-client-type = "mpos"
* def body =
"""
{
"masId": "100001000073658",
"storeId": "100001000073658",
"tId": "xyzklj199",
"billAmount": 1000,
"couponCodes": "#(couponCode1),#(couponCode1)",
"skuData": [
{
"skuId": "10099666767689",
"skuQty": 3,
"skuPrice": 10.4
},
{
"skuId": "10000592",
"skuQty": 2,
"skuPrice": 10.5
}
]
}
"""
Given path '/coupons/v1/coupons/merchant-verify'
And request body
When method post
Then status 200

I am getting 400 because
{"masId":"100001000073658","storeId":"100001000073658","tId":"xyzklj199","billAmount":1000,"couponCodes":"#(couponCode1),#(couponCode1)","skuData":[{"skuId":"10099666767689","skuQty":3,"skuPrice":10.4},{"skuId":"10000592","skuQty":2,"skuPrice":10.5}]}
I even tried assigning the value via Examples in scenario outlines. Please suggest a way to this.

@rahulon001 please read this VERY carefully and try again: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue


Android have wrong orientation output

hi, i have wrong orientation issue on android side. i have recorded on portrait position and the output result is landscape. can you help me how to fix this?

I have the same problem, rtmp stream comes as landscape though original position is portrait

@adminant hi, if you know how to fix this please let me know

@adorufus Sorry, I don't know, I hope @pinkfish will fix this issue.
@pinkfish , could you help us?

It is do with the how the media encoder is encoding things.  I had it
around the other orientation to start with and it fails in the capture
part.  Right now it is putting in a hint on the encoder for the rotation
which should be working, although I also noticed it wasn't.
On Thu, 28 May 2020 at 05:17, adminant<EMAIL_ADDRESS>wrote:

@adorufus https://github.com/adorufus Sorry, I don't know, I hope
@pinkfish https://github.com/pinkfish will fix this issue.
@pinkfish https://github.com/pinkfish , could you help us?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pinkfish/flutter_rtmppublisher/issues/8#issuecomment-635302586,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATOMMM6YJEUHMFMJQTYWIDRTZI53ANCNFSM4NG4OKAA
.

Just checking in a fix, or a workaround anyway.  If you useOpenGL in the arguments when creating the stream it will make an opengl surface and this will rotate the output to be portait mode.

The 0.2.0 version should fix this (is you use opengl anyway).

@pinkfish sorry, but the playback view is so small (squared), can you help?

and when i start the video streaming. i got error message that says "cannot use a surface that wasn't configured". i hope you can help me @pinkfish

@pinkfish i see the flag in the RtmpCameraConnector, but there isnt a way i see to actually change that value from the flutter side


is iOS 7 supported?

I've been trying to debug a problem with my custom videojs player which only occurs on iOS 7 devices. Using this plugin, after an ad plays, the browser crashes when switching back to the main video. Everything proceeds normally in every other browser tested, including iOS 8 and iOS 6.
Then, testing the 'examples/simple/' setup in your repository, I'm finding that ads don't even play at all on iOS 7, whereas the ads play as normal in iOS 8 and iOS 6.
Is there anyway to get this plugin supported on iOS 7?

What devices are you using to test? I tested out the simple sample on an iPad 2 simulator running iOS 7.1 and tested the iPhone sample on a 5s running 7.1 and both are working for me. If you're using an iPhone be sure to use the iPhone sample to test.

The only physical test device I have running iOS 7 is an iPod Touch 5th gen
on 7.1.2.
Since there's very little in the way of explanatory documentation, why are
the differences in the 'iPhone' sample necessary for iPhones compared to
what's in the 'simple' example? The 'simple' example works fine on my
iPhone 5S running iOS 8.4.1. Is there one solution that works for all
browsers/devices?
On Wed, 19 Aug 2015 at 15:13 Shawn Busolits<EMAIL_ADDRESS>wrote:

What devices are you using to test? I tested out the simple sample on an
iPad 2 simulator running iOS 7.1 and tested the iPhone sample on a 5s
running 7.1 and both are working for me. If you're using an iPhone be sure
to use the iPhone sample to test.
—
Reply to this email directly or view it on GitHub
https://github.com/googleads/videojs-ima/issues/102#issuecomment-132613269
.

This is related to https://github.com/videojs/video.js/issues/1432. We detect taps on the video player to request ads, but on iPhone these tap events don't work as expected. For the iPhone example, instead of loading the video player on the page immediately, we load a div where the video player will be and fill in a video preview image. When the div is tapped, we load the video player and request ads.

Is the iPhone sample working for you on iOS7? Let me know so I can close this out or look into it further.

Yes, this is fine, thank you.

On 24 Aug 2015, at 16:39, Shawn Busolits<EMAIL_ADDRESS>wrote:
Is the iPhone sample working for you on iOS7? Let me know so I can close this out or look into it further.
—
Reply to this email directly or view it on GitHub.


Made the quick start the same as in the wiki

The wiki shows how it's supposed to be done, right?
Thank you for contributing to Doom!
Before you submit this PR, please make sure your PR is targeted at develop, not
master (unless this is a fix for a critical error). Then replace this message
with a description of your changes.

This is already reflected in the README on the develop branch, where bin/doom quickstart exists. It doesn't exist on the master branch (in fact, bin/doom doesn't exist on all there), so I can't accept this PR.
The wiki is currently outdated and will be replaced soon.


Fix #831 : Add develop branch to .travis.yml

This PR addresses GitHub issue: #831 .
Briefly describe the changes proposed in this PR:

Adds develop branch to .travis.yml

Once this is merged, merging master into develop again will synchronize the changes there so it can take effect.
Signed-off-by: Peter Ansell<EMAIL_ADDRESS>

Shouldn't this go directly into the develop branch?

If it only goes onto the develop branch, Travis may not see it consistently due to the default branch being master.
Even if you swap the default branch to develop, it would be smoother to have the same .travis.yml file on both branches, one less thing to worry about when merging.


Guy/connect nvme device with retry

add retry mechanism to connect nvme devices
We had an issue (in dual nodes tests) where client failed to connect nvme devices.
In this case we got an error: "write /dev/nvme-fabrics: connection timed out".
This error was ignored and we could't find the block device unless we tried (manually) to reconnect or create a new volume which triggered a new connection.
In this commit we resolve this issue by trying to reconnect in case we fail.
we have 5 attempts with backoff delay of 10ms which should be sufficient.
This PR comes after reverting the previous one that was supposed to resolve this issue: https://github.com/LightBitsLabs/discovery-client/pull/11 , but we failed on a scenario of DC connected to multiple DS while "we can't have more then one connection to the DS".
The root cause of this issue is that we used the existing retry logic of DC that reconnect to a random target (different DS) while in some cases, where the test passed, we reconnected to the same target. (need to get more investigation to understand this better and see if we have an issue with other error flows)
This PR is different (than the previous solution) by using a different retry mechanism that  only applies on the failed connect of nvme-device
how was this PR tested?
I ran test 442_dual_node_vm_installation_test multiple times with debug code on reconnect, most of the time we had 1-2 attempts.
Issue: LBM1-27816

Thanks, @guy-lb . Please see inline comments. Please also mention how you tested this. The following tests will be part of the PR check for the discovery-client and discovery-service in a bit, for now you can just run them manually:
    -> /home/muli/lightbits/src/systests/racktests/271_duros_discovery_service.py
    -> /home/muli/lightbits/src/systests/racktests/279_duros_discovery_client.py
    -> /home/muli/lightbits/src/systests/racktests/550_kill_cm_discovery_rest_services.py
    -> /home/muli/lightbits/src/systests/racktests/939_virtual_dynamic_rebalancing_discovery_client.py

and 442 if it passes reliably for you.

I ran test 442 multiple times. tests 279, 550, 939 passed as well, but unfortunately test 271 failed as the volume was not exposed to one of the clients (1/3). I will investigate it

I ran test 442 multiple times. tests 279, 550, 939 passed as well, but unfortunately test 271 failed as the volume was not exposed to one of the clients (1/3). I will investigate it

Thanks! 271 is pretty stable and normally always passes, there's a good chance this is a real issue.

we didn't find RC of this issue, it might be a connectivity issue or something else, either way this PR undoubtedly fixes this issue by handling a specific error flow.
regardless of this PR, test 271 rarely fails while trying to send nvme connect. it doesn't do it by DC. the test itself issues this command (271 tests the DS)

@yogev-lb @ronen-lb @ron-lb @bari-lb following the discussions we had, let's merge this PR and I will open a new minor bug to find RC.

@guy-lb is the plan to merge this before the code freeze? Because if we merge it we also need to bump the lb-csi VERSION file and mention this fix in our spec file ChangeLog

@guy-lb is the plan to merge this before the code freeze? Because if we merge it we also need to bump the lb-csi VERSION file and mention this fix in our spec file ChangeLog

@muliby-lb yes. I asked for review (hopefully I will get today) then I will merge it

PR check - 2 bugs which are not related to my changes:
test 939 - LBM1-28849: failed to open port - firewall may not be installed..
test 271 - LBM1-28718: test doesn't use DC. Failed to write to /dev/nvme-fabrics: Connection timed out


VFT: solution explorer / linked files / no option to remove linked file / delete deletes the physical file

In Visual Studio projects, user can add a linked file (a pointer to a file which is located outside the project folder hierarchy).
In a C# project when I right click on such item I can't pick Delete but Remove is shown instead.
In a F# project, Delete is shown and it actually deletes the physical file instead of just removing the link from the project file.
I'd expect Delete to not delete the actual file if it's a linked file, and possibly to have identical behaviour as in C# projects (show Remove instead of Delete).

This can be closed. F# and C# both show "Delete" and "Exclude from project" on both linked files/normal files.


How to update data?

As I check current updated data by @OGVENDETTA , I think you're focus on GL while JP data still not.
Could you guide me how to extract data from JP side?

This is for global. Unfortunately none of the tools or resources here will help you extract data from the JP side. You would have to seek assistance else where.

@OGVENDETTA  Thanks for your mention.


Add @vendethiel as a YAMLScript track maintainer

@exercism/staff ,
Please add @vendethiel (https://exercism.org/profiles/vendethiel) as a YAMLScript track maintainer.

@vendethiel You should receive an invite to join the org and the team now. You'll also get access to the #maintainers channel on Discord if your Exercism and Discord accounts are linked.
You can learn more about being a maintainer here
Thanks so much for your work, and welcome to the team :)

@ErikSchierboom can you also add @m-dango (https://forum.exercism.org/u/m-dango)?


Change location - customizing-the-developer-portal/advanced-customization

Description:
PR [1] mentions that these changes can be used to customize not only the Developer Portal, but also the Publisher. Therefore, the placing of the page [2] needs to be changed.
[1] https://github.com/wso2/docs-apim/pull/1902
[2] https://apim.docs.wso2.com/en/latest/develop/customizations/customizing-the-developer-portal/advanced-customization

@chanaka3d , please confirm the new steps introduced in [1].

The title needs to reflect that the same can be applied to publisher and admin apps as well.


Attribute name contains namespace

Parsing this html: https://en.wikipedia.org/wiki/Gregorian_calendar
generates an attribute somewhere during parsing, whose LocalName is xml:lang, and whose prefix and NamespaceUri are both null.
I'd expect the xml: to be returned in the prefix.
Is this a bug? Thanks.

I think its no bug. My browser shows the same behavior. For testing I took the following element: span[lang=la]. In HTML it was defined as <span lang="la" xml:lang="la">. xml:lang is a special attribute.

Authors must not use the lang attribute in the XML namespace on HTML elements in HTML documents. To ease migration to and from XHTML, authors may specify an attribute in no namespace with no prefix and with the literal localname "xml:lang" on HTML elements in HTML documents, but such attributes must only be specified if a lang attribute in no namespace is also specified, and both attributes must have the same value when compared in an ASCII case-insensitive manner.

OK, great. Thanks.
A totally unrelated question (but from the same wikipedia page). What does the !ie mean at the end of background-image:url("//en.wikipedia.org/static/1.26wmf23/skins/Vector/images/tab-break.png?2df0f")!ie;?
Does the css spec allow for such declarations? This part of the specification only says:
The format of a URI value is 'url(' followed by optional white space followed by an optional single quote (') or double quote (") character followed by the URI itself, followed by an optional single quote (') or double quote (") character followed by optional white space followed by ')'. The two quote characters must be the same.
It doesn't mention anything about suffixes such as !ie. Does another part of the specification cover this?

This is an old CSS hack afaik. It works for IE 6 / 7 and has the same effect as "!important", however, other browsers will identify it as invalid. Thus making the given declaration only valid for IE 6 / 7.

Got it. Thanks again. BTW I've noticed all the cool stuff coming in the feature branches - just wondering when the v0.9.2 integration will occur?

I merged the ones that will make it to v0.9.2 to devel yesterday, but it was too late (and I was too tired) to release it. I will look over it tonight. So I will release the v0.9.2 (and update master) either tonight or tomorrow!
The CSSOM (issues #145, #146) are unfortunately not finished yet. I started working on them, so I'm optimistic that they will make it in v0.9.3.

No worries. Thanks!


Analyzer complains about switch statements

This issue was originally filed by<EMAIL_ADDRESS>
What steps will reproduce the problem?

Write a multi-branch switch statement, like the following:

  void toggle() {
    switch(this.state) {
      case 'play': {
        this.state = this.pauseDisabled ? 'stop' : 'pause';
        break;
      }
      case 'pause': {
        this.state = 'stop';
        break;
      }
      case 'stop': {
        this.state = 'play';
        break;
      }
    }
  }

Analyzer complains about the first two branches not ending in a 'break', 'continue', 'return' or 'throw' statement.

What is the expected output? What do you see instead?
I'd expect the analyzer to detect that each branch ends in a 'break'.  It does not.
What version of the product are you using?
Chrome Dev Editor (0.18.3450).
On what operating system?
Windows 8.
What browser (if applicable)?
Chrome 39.

@gbracha This is fixed now, right? The spec now states:

If s is a non-empty block statement, let s instead be the last statement of the block statement.

Yep!


Fix for 5 CheckStyle 3.0.0 plugin warnings.

Fixed 5 CheckStyle warnings.
There are still 11 warnings left which are false positive (JavadocMethod	Unable to get class information for @throws tag 'FunctorException'.).
See also: https://github.com/checkstyle/checkstyle/issues/5088
Maven Checkstyle Plugin 3.0.0 uses CheckStyle 6.18.

Coverage remained the same at 87.386% when pulling 2a9a1105428fc37a1dea4b50baac3c5fce796b49 on sfuhrm:CheckStyleFixes into 8f9e66fbf060b219ca810e7b8d1153699e410237 on apache:master.

Hi @sfuhrm , thanks for your contribution.
I had a look running mvn clean site against master, and checkstyle report is empty. How did you get the warnings?
Note that the project's settings are defined in src/conf/checkstyle.xml, and at the pom.xml I believe it's using checkstyle 3.0.0 in master.

Hi @kinow
well I'm a little bit confused, neither
mvn checkstyle:checkstyle

nor
mvn clean site

bring an error. I'm closing this.
Thank you!


GSLUX-613: Basic map controls (zoom in/out/extent/fullscreen)

JIRA issue
https://jira.camptocamp.com/browse/GSLUX-613
Description
New buttons control Vue component embarks olControl

Zoom in/out
Zoom to extent
Fullscreen
Attribution (KO) => to be finished in another PR (working OK in v3 - KO in v4)
Location (display only) => to be finished in another PR

Plus:

Fix linter prettier

Screenshots

@tkohr Thx for the review.
CI is now fixed and here is the new task for the remaining button: https://jira.camptocamp.com/browse/GSLUX-623.


⚠ ClamAV has degraded performance

In 1d09736, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 42 ms

Resolved: ClamAV performance has improved in d086452 after 5 minutes.


Deno support

Hello! This is a great and clean project! Is Deno v2 support on the timeline? What are the problems to be solved to make it possible?

Hello, thanks 🙏
I tried but my lack of knowledge was a problem. For some reason I have troubles to scope the deno language service/plugin to a file and my editor is full of red errors 😅


use concurrency group at init

Purpose
This should help limit race conditions at initialization
To-do

Content

[ ] I have read and checked the items on the review checklist.

When I trigger another build:

Is this to avoid race conditions on the depot?

Yes


Suggestion: implement null-coalescing and null-soaking

Null-coalescing an null-soaking would be handy additions to the language.
For instance, instead of writing:
if ($null -ne $varThatMayBeNull) { $varThatMayBeNull } else { $fallbackValue }
#
if ($null -ne $varThatMayBeNull) { $varThatMayBeNull.Name } else { $null }

one might be able to write:
$varThatMayBeNull ?? $fallbackValue           # null-coalescing
#
$varThatMayBeNull?.Name                       # null-soaking, helpful with Set-StrictMode -Version 2+

Re null-soaking: With Set-StrictMode being OFF (the default), you can just use $varThatMayBeNull.Name - no special syntax needed; however, if Set-StrictMode -Version 2 or higher is in effect, $varThatMayBeNull.Name would break and that's where the null-soaking (?.) is helpful, to signal the explicit intent to ignore the $null in a concise manner.

Related:  implement ternary conditionals

Add a ternary too.

@mklement0 It seems the second sample works by design without "?".

@iSazonov: Good point, but it only works without the ? unless Set-StrictMode -Version 2 or higher is not in effect - I've updated the initial post to make that clear.

I think syntactic sugar is something powershell could use that other languages enjoy.  +1 on the proposal.

I use a similar pattern:
$word = ($null, "two", "three" -ne $null)[0]

@kfsone There is a small error in your example $a=(if ($b -ne $null) { $b } else { $c }). It should be $a=$(if ($b -ne $null) { $b } else { $c }) however the only version of PowerShell where $( ) was required was version 1. From v2 on, you can simply do:
$a = if ($b) { $b } else { $c }

As with the prior examples, that syntax only works if StrictMode is not being used. With StrictMode enabled, I believe PS also rejects attempts to access undefined variables.

@bgshacklett Don't you mean $word=($null,'two')['three' -ne $null]?

@TheIncorrigible1  No, if you copy and paste what I added above, you should see that the value of $word is set to "two". There's more detail in this Stack Overflow answer where I first saw the pattern:
https://stackoverflow.com/a/17647824/180813

While perlesque hack-arounds appeal to the 20-year ago me that wrote a shebang that registered and/or queried a RIPE-DB user or organization record, what I'm hoping for from powershell is something that encourages my colleagues to use the language rather than instill fear in them.
My litmus test is this: Would I want to read this via my tablet at 3am New Years morning while hung over with or ceo on the phone telling me how many millions of dollars we are losing a second.
(Aside: this was only a loose exaggeration of an actual experience until I worked at Facebook and came back from an urgent quick leak to be told that, in the 2 minutes I was gone, more people than the population of Holland had gotten an empty news feed. It wasn't my code and the mistake was a minute change in the semantics of return x vs return (x) in the c++ standard for very specific template cases, and "would you want to read this code with a 2 minute deadline, a full bladder and the fate of every clog wearing Dutch person's cat pictures on your shoulder???" didn't sound as cool)

Yup. There are some neat tricks possible in PS that are great in a pinch or if you need a one-time shorthand.
For maintainable code, ideally we should have explicit null-coalescing operators like C#. The main trouble there for me is -- what do we use for those? ? is already aliased to Where-Object (much as I'd love for that to be erased, it's in very common use).

@vexx32:
At least syntactically ?? should be fine, because we're talking about expression mode, whereas ?, as a command [alias], is only recognized in argument mode.
Not sure if reuse of the symbol causes confusion, but it wouldn't be the first time that a symbol does double duty in different contexts.
Surprisingly, using ?. and ?[] for null-soaking would technically be a breaking change, because PowerShell currently allows ? as a non-initial character in a variable name.
PS> $foo? = @{ bar = 1 }; $foo?.bar   # !! $foo? is a legal variable name
1

However, I hope this would be considered a Bucket 3: Unlikely Grey Area change.

I can't say I've ever seen anyone use ? in a variable name... Nor would I, because chances are it would be misread. But yeah, hopefully that should be perfectly useable.

I suspect it's a bit late to bring this up, but Bash has handled this (and some other cases) with its Parameter Substitution features: https://www.tldp.org/LDP/abs/html/parameter-substitution.html.
While it can be a bear to learn due to the sheer number of things that can be done with it, it's incredibly powerful. I understand that it would not be possible to use this exact notation due to the way PowerShell uses braces with variables, nor would it necessarily fit with the general feel of the language, but it seems like a useful data point.

There's one other operator to possibly consider:
$x ?= 12

which would set $x if it's not set (doesn't exist). This is part of the "initializer pattern" which is not common in conventional languages but for (dynamically scoped) languages like shells, make tools, etc. it's pretty common to have a script that sets a default if the user hasn't specified it. (Though in fact parameter initializers are pretty widespread.)
Extending this to properties:
$obj.SomeProperty ?= 13

would add and initialize a note property SomeProperty on the object if it didn't exist.
And - for fun - one more variation on initializing a variable using -or:
$x -or ($x = 3.14) > $null

$x ?= 12 sounds like a great idea.
It occurred to me that we probably should apply all of these operators not only if the LHS doesn't exist, but also if it _does exist but happens to contain $null (with [System.Management.Automation.Internal.AutomationNull]::Value treated like $null in this context).

add and initialize a note property SomeProperty

In that vein, $obj.SomeProperty ?= 13 makes sense to me only if  .SomeProperty exists and contains $null, given that you cannot implicitly create properties even with regular assignments (by contrast, for hasthables the implicit entry creation makes sense).
All operators discussed will need to be exempt from strict-mode existence checking.

I can't say I've ever seen anyone use ? in a variable name... Nor would I, because chances are it would be misread. But yeah, hopefully that should be perfectly useable.

$?

I'm wondering about the intent / reasoning behind why strictmode stops you from accessing a property which doesn't exist. Is the intent to catch typos like $x.pretnd? Is the intent to check assumptions like assert(x != null)? Is the intent to block accidentally propagating $null further on in your code?

the null-soaking (?.) is helpful, to signal the explicit intent to ignore the $null in a concise manner.

Is that not what . signals already in nonstrict mode? If you had wanted to be strict, you could have checked for .Name existing first, by not checking first, you already signalled explicit intent that checking wasn't important to you.
If StrictMode has a purpose where accessing a non-existent property and returning $null is forbidden, then won't the same reasoning apply to ?., and that should throw the same exception for the same reason. If not, why not?
With null-coalescing, you could write:
$result = Invoke-RestMethod -Uri 'https://example.org/api/test'
$test = $result?.Name

Will it quickly become recommended or idiomatic to always use ?. for every property reference, because it "behaves like . does, and won't throw exceptions for people using strictmode"?
Is the real desire to have a configurable strictmode with variable settings, so that e.g. you could have a declaration at the top of your script # StrictMode SkipMemberExistenceCheck, or an escape hatch attribute for indicating a block of unstrict code generally?

Thanks for the thoughts, @HumanEquivalentUnit.

Is the intent to catch typos like $x.pretnd?

I can't speak to the design intent, but that's what makes sense to me - analogous to what Set-StrictMode -Version 1 does for variables (only).
With variables it's about their existence, not whether the value happens to be $null, and checking for property existence follows the same pattern.
I think of it as the closest a dynamic scripting language can get to finding errors that a statically typed compiled language would report at compile time.

Is that not what . signals already in nonstrict mode? If you had wanted to be strict, you could have checked for .Name existing first

Yes, but in non-strict mode you forgo the aforementioned existence checks, and testing manually is obviously quite cumbersome - and invariably slower than a built-in feature.

by not checking first, you already signalled explicit intent that checking wasn't important to you.

The point is that, with Set-StrictMode -Version 2 or higher, you get:

the benefit of member existence checking by default
the option to opt out, on demand, concisely with  _ .?

you could have a declaration at the top of your script # StrictMode SkipMemberExistenceCheck, or an escape hatch attribute for indicating a block of unstrict code generally

Related: The current dynamic scoping of Set-StrictMode is problematic; see @lzybkr's RFC draft for implementing a lexical strict mode: https://github.com/PowerShell/PowerShell-RFC/blob/master/1-Draft/RFC0003-Lexical-Strict-Mode.md

the benefit of member existence checking by default

PS contains code which does member checking, and returns $null when they don't exist. That's a benefit by default, which you can also avoid by writing your own member existence test with $x.psobject.properties... if you choose to. StrictMode takes away that benefit and leaves the hinderence of having to write existence tests. Then instead of giving a nice way to write exactly a member existence test, ?. would give you a concise workaround to get what . always did. And if it matters that the member exists, you still have to code that separately.
But this does make me ask what about method calls:
$x.pretend     -> $null
$x.pretend()   -> Exception MethodNotFound
$x?.pretend  -> $null
$x?.pretend()   -> ____ what goes here? $null?

set-strictmode -version 2
$x.pretend -> Exception PropertyNotFoundStrict
$x.pretend()  -> Exception MethodNotFound
$x?.pretend  -> $null
$x?.pretend()   -> ____  ?

i.e ?. would behave the same as . for property lookups in non-strictmode, but would behave differently to . for method calls in non-strictmode, making it nuanced and not a drop-in replacement. Does that mean that when using ?. you would have no way at all to tell whether a method was invoked, or nothing at all happened? Properties can be backed by getter methods, but I think it's convention in DotNet for getters not to mutate internal state, but normal for method calls to mutate state. With ?. you would have no idea if you mutated an object's state?
I wonder if you can get the desired benefits, and better, by making ?? able to handle PropertyNotFoundException and MethodNotFound Exceptions directly from the expression on the left (but not other Exceptions raised inside methods), as well as handling $nulls, and not have ?. at all. e.g.
$varThatMayBeNull ?? $fallbackValue # null-coalescing
#
$varThatMayBeNull.Name ?? $fallbackvalue    # catching PropertyNotFoundStrict exception
$varThatMayBeNull.Name ??  # default fallback is $null
$varThatMayBeNull.Method() ??  # catching MethodNotFound Exception

# and potentially addressing the index case too
$varThatMayBeNull.first.second[3].Method() ??  # catching MethodNotFound Exception, or index not found Exception

And then, instead of ?. calling a member or accessing a property, it could be a concise way of asking if a member exists, returning a [bool].
With the same syntax addition of ?? and ?. you could handle more situations, with less confusing overlap.

StrictMode takes away that benefit and leaves the hindrance of having to write existence tests

One person's hindrance is another person's benefit:
It all depends on what you want to have happen by default:

If you're confident that there are no typos in your code - by all means, take advantage of the default behavior (strict mode OFF).

On a personal note: I tend to use Set-StrictMode -Version 1 to avoid typos in variable names, but I find -Version 2 or higher too annoying, primarily due to #2798 (which is a bug that is independent of this proposal).

If you want to make sure that you (a) you haven't misspelled property names and/or (b) your code doesn't accidentally operate on data types other than you meant to operate on, set strict mode to version 2 or higher.

Indeed, that currently makes it cumbersome to opt out of these checks on demand,
which is precisely why introducing null-conditional access is being proposed here: to make it easy to opt out on demand.

Explicitly testing for the presence of a member is really a separate use case that can be a necessity irrespective of the strict mode in effect.

As for method calls, which the OP doesn't cover:
Method calls (e.g., $varThatMayBeNull.Method()) and indexing (e.g., $var[$indexThatMayNotExist]) are two cases where even strict mode being off or at version 1 could benefit, given that both cases currently invariably cause an error.
The syntax for methods would be the same as for properties, but for indexing it presents a challenge - see the updated OP, which currently proposes the perhaps awkward [...?].
And, yes, I would make such access default to $null as well - again, you're explicitly signaling that it's fine if the object being accessed is $null.
While C# has no null-conditional indexing, it does allow null-conditional method calls.

It has null-conditional indexing, just not quite like how you're proposing. C# allows (I'm pretty sure, at least...) array?[0] which bypasses the usual "index into null array/collection" issue and just returns null.
But yeah, I agree that this is a good idea. It saves us going through exception handling, and it keeps code pretty clear and concise.

@vexx32, that is one aspect of null-conditional indexing: if array in array?[0] is null, the indexing operation is ignored.
I was talking about the other aspect of null-conditional indexing: the case where array in array?[0] is not null but it is the element at index 0 that doesn't exist.
It is the latter that cannot be ignored in C#, to my knowledge, yet I think it would be useful (as you seem to think too).
Can you think of terminology to give these two aspects distinct names?

The code from another JavaScript issue would go from $_.Description[0].Text to $_?.Description[0?]?.Text which I think is not pretty; and my other suggestion for how ?? could behave would take it to $_.Description[0].Text ?? which is nicer, and would - if possible to implement - handle failures at any lookup point in the chain all in one go, and still let you choose what you want to happen by default, and have a different fallback at will instead of being limited to only $null.
As an aside, would this ?. syntax have an analogue for static properties and methods, i.e. $t = [int]; $t::MaxValu; $t::Pars("1") ?
What would be the desired behaviour for array indexing with more than one index specified? $array[0,4?,1,2] where each one can be allowed to fail, or $array[0,4,1,2?] with only the entire lot allowed to succeed or fail?

I first have to take a step back, because I realize that I've conflated aspects that are worth separating, at least conceptually:

Null-conditional member or index access, as in C#:

If a value being accessed is $null, ignore attempts to access its members or index into it and evaluate to $null.

Existence-conditional member or index access, specific to PowerShell:

If a value being accessed is non-$null, ignore attempts to access non-existing members or indices that don't exist.

If you're confident that there are no typos in your code - by all means, take advantage of the default behavior (strict mode OFF) - and you'll have no need for .? (for property access

@mklement0 I think you're discussing from the view "one person using strict mode to improve their own code" and I from the view "someone else can run my code in strictmode, what changes would make my code work for them as well?" and that's leading me down different reasoning. With ?. it would be so convenient to use it instead of . and make code also work in strictmode that I may as well use it everywhere habitually; I lose nothing and gain compatibility. I fear all PowerShell code will uglify in that way because it "works" in more cases.
But it isn't a drop-in replacement, because it silences failed method call lookup in non-strictmode, and silences failed property lookups in strictmode - it adds a fiddly nuance to member lookup, an incredibly common operation. It doesn't help anyone who wants to benefit from strictmode checks by making that boilerplate easier. It doesn't help enough people in enough situations, for the complexity it adds.
PowerShell can do things C# doesn't, like setting automatic variables, or having a precedent for having exceptions be thrown and silenced behind the scenes. There's got to be a better approach which doesn't complexify member lookup at all, but simplifies strictmode safety check boilerplate so that people who do want to use the checks have easier lives and people who were annoyed by the checks have easier lives as well.

@HumanEquivalentUnit  How does it silence these things?   'PropActionFailed'

@mklement0 I think you're discussing from the view "one person using strict mode to improve their own code" and I from the view "someone else can run my code in strictmode, what changes would make my code work for them as well?"

Are we talking about "set -euo pipefail" (bash strict mode) equivalent?
a- Limit to variable look-ups (although I don't see why you think a simple null check on member lookups would be a bad thing, the actual member lookup is way more expensive than if (result is null))
b- Use [Strict] on scopes/codeblocks to tell the parser to treat them as such,
c- Strictness is based on scope: code that isn't marked strict isn't strict.
If I wrote strict code that fails when you use it, then one of us made a mistake. Either I referenced a missing variable in code I never tested or you've misunderstood my badly designed API that depends on the existence of variables that aren't passed in to my function and you failed to populate a variable I expect to be populated...
# My code

[Strict]
Function DebugMsg
{
  Param([String] $Message)
  if ($DEBUG) { Write-Host $Message }
}

# Your code
DebugMsg "Hello"  # you didn't define DEBUG, and by saying strict I expressed a contract whereby the variable MUST be defined.

🤔 Now that you mention it, a [Strict()] attribute would be an awesome way to implement strict mode in a scope-restricted way. That needs to be mentioned in that other issue thread on strict mode issues, I'll go dig that up and link back here...

@TheIncorrigible1 "How does it silence these things?" in non-strict mode $null.x is silent, $null.x() is an exception. With ?. as discussed, $null?.x is silent, $null?.x() is silent.
So you'd have a . which works like C#'s ?., except in strict-mode where it throws exceptions. Then you'd have a ?. which works in strict mode like C#'s ?. and like PowerShell's . works in in non-strict mode, but which works differently to PowerShell's . in non-strict mode for method calls. What a horrible combination, (and a combination where ?. is clearly better and more useful in more of those scenarios).

 'PropActionFailed'

Your method call might throw, or return $null and PropIWant might be missing, you'd still have to write:
$prop = try {
    $item?.Method()?.PropIwant ?? 'PropActionFailed'
} catch [someMethodException] {
    'PropActionFailed'
}

vs
$prop = $item.Method().PropIWant ?? 'AnythingFailed'

with my proposed ?? if it was possible, and no ?. and it covers the method failing.

If you want more adopters, you need to make it easier to read code, which I feel this suggestion does.

How often do you type . in PowerShell? How often do you want to explain to new users what the difference is between . and ?. and tell them they have to consider the difference every time they type a . forever?
"Oh, how did that come about?" "Well in C# . threw an exception for missing members, so they invented ?. which didn't. That was great, so they did that in PowerShell by default, the . doesn't throw. Then they invented strict-mode which makes . behave like C# and throw but only in that context, But the way to manually check members was really wordy and bothersome and nobody wanted to type it; instead of addressing that problem head-on and making that more convenient to benefit from the strictmode, they dodged that and aped C#'s ?. instead to gain a sneaky way out of the strictness that you asked for, which is mildly convenient for you, but sucks for everyone else. And you still have no member existence test, and benefiting from strictmode is still wordy and bothersome, but at least you don't have to suffer that because 'strictmode' has a 'normalmode' escape hatch now". Ick.

If I wrote strict code that fails when you use it, then one of us made a mistake.

although I don't see why you think a simple null check on member lookups would be a bad thing, the actual member lookup is way more expensive than if (result is null)

I don't think that would be bad, PS non-strictmode already does that, and I think that would be a desirable alternative to the proposed ?. - very different, useful in more situations.
But note that in PS you can do something C# cannot:
(1..3)[1kb..100kb]

and no exceptions in non-strictmode. Change the numbers and see how long it takes; judging by the performance and how I think it must work behind the scenes to index into arbitrary objects, it seems there actually are ~100,000 exceptions being raised and silenced, for our convenience. PS doesn't always make the "must be as fast as possible, push the inconvenience on the user" choice, and I like that about it.

@HumanEquivalentUnit There are many features in every language you may never use in your career and if you don't like the style, that's fine, you don't need to use those features.  I don't see why you're writing strict mode off; it's a good practice in scripts so you're consciously dealing with problems rather than letting the language swallow them (and in essence, having implicit empty catch blocks everywhere).  Again, you're still welcome to not use the features (e.g. I've never used Out-Default)

To continue to lay the groundwork for further discussion, let me summarize how the existing strict modes affect null-value-conditional and member-existence-conditional access (the terms introduced above):
The columns below represent the Set-StrictMode settings, and the column values indicate:

👍 ... allowed
🚫 ... prohibited (causes statement-terminating error)

As an aside: the fact the errors are only statement-, not script-terminating, relates to the larger discussion around PowerShell's error handling - see https://github.com/PowerShell/PowerShell-Docs/issues/1583.

Null-value-conditional access - $obj itself is $null:

Construct
-Off
-Version 1
-Version 2
-Version 3+

$obj
👍
🚫
🚫
🚫

$obj.Prop
👍
👍
🚫
🚫

$obj[42]
🚫
🚫
🚫
🚫

$obj.Method()
🚫
🚫
🚫
🚫

It is curious that with -Off and -Version 1, $obj.Prop is allowed, whereas $obj[42] isn't.

Member-existence-conditional access - $obj is non-$null, but the member / element being accessed doesn't exist:

Construct
-Off
-Version 1
-Version 2
-Version 3+

$obj.Prop
👍
👍
🚫
🚫

$obj[42] (indexable)
👍
👍
👍
🚫

$obj[42] (non-indexable)
👍
👍
🚫
🚫

$obj.Method()
🚫
🚫
🚫
🚫

It is curious that inherently indexable objects (e.g., arrays) allow access to nonexistent elements even with -Version 2, whereas scalars - where PowerShell provides indexing capabilities for the sake of unified handling with collections - do not.

The null-soaking (null-conditional or Elvis in C#) operator is almost mandatory when running in StrictMode Latest and trying to access a property that may or may not exist. Currently you have to resort to stupid tricks like this:
function Get-OptionalPropertyValue($object, [string] $propertyName) {
    if (-not ([bool] (Get-Member -InputObject $object -MemberType Properties -Name $propertyName))) {
        return $null
    }

    $object.$propertyName
}

$value = Get-OptionalPropertyValue $foo "bar" # if $foo.bar exists, $value will contain its data; else $value will be $null

What you really should just be able to do is write:
$value = $foo?.bar # if $foo.bar exists, $value will contain its data; else $value will be $null

Please guys, if you could get just null-conditional implemented and just for properties, it would save so many people so much pain.

I started having a look at this and found a few problems.
Lets consider ?? and ?=
$x ?= 1 and $x ?? 1 seem to be straightforward. But, since they are operators we need to support $x?=1 and $x??1.
The  problem with that is $x? and $x?? both validate variable names in PowerShell. The only way to disambiguate would be ${x}?=1 and ${x}??1.
And more over for conditional member access ?. and ?[], we would have to have ${x}?.name and ${x}?[0].
For these, $x ?.name and $x ?[0] will not be supported.
The other option is to introduce a breaking change and not allow ? in the variable name at all.
What do you think? @mklement0
/cc @rjmholt @daxian-dbw @JamesWTruher

I have never particularly liked nor understood why ? is a valid variable name. It opens the door for names like $Safe? which is generally more clear and less awkward when written as $IsSafe anyway.
I think that change has probably been a long time coming.

It opens the door for names like $Safe? which is generally more clear and less awkward when written as $IsSafe anyway

Interestingly I expressed the opposite sentiment. It's a classic Lisp tradition.
if ($usedAQuestionMark?)
{
    Write-Host "That's silly!"
}

Didn't the ternary operator have this same problem, where the resolution was to require spaces around the operator or curly braces around the variable name in order for it to properly work with variables that end with ??

The other option is to introduce a breaking change and not allow ? in the variable name at all.

👍  Given this is a major version change, I think it is worth a breaking change here.  I wish GitHub had better code search to see how PS variables end with a ?.   I suspect this wouldn't be that impactful but it would be nice to verify that against GitHub.

That ship has sailed long ago, and I wouldn't be surprised to see variables ending with ? in use in scripts today.
At this point if we simply prioritize parsing ? as part of an operator rather than as part of a variable name when it comes to these new operators, folks who use variable names ending in ? would need to use {} or spaces (where spaces are allowed) to use those variables with these operators.

It's strange to hear the phrase "that ship has sailed" in this context. This is a major version change. It's not unreasonable for this to change here, I think.

It's not unreasonable for a breaking change since this is a major version change; however, the bar for such breaking changes should remain very high, and I don't think this comes close to passing that bar, since users could use variables ending in ? just fine as long as they use the {} enclosures to identify the variable name.
Note that you can have a property name that ends in ? as well. Currently if you try to view such a property in PowerShell without wrapping the name in quotes, you'll get a parser error.
For example:
PS C:\> $o = [pscustomobject]@{
    'DoesItBlend?' = $true
}
PS C:\> $o.DoesItBlend?
At line:1 char:15
+ $o.DoesItBlend?
+               ~
Unexpected token '?' in expression or statement.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken

PS C:\> $o.'DoesItBlend?'
True

I'm a little surprised that doesn't parse today (why doesn't that parse?), but regardless, for such properties you need to enclose their name in quotes, in which case you could follow the quote with a ternary, null-coalescing, etc. operator without spaces and it would work just fine. I find this syntax very similar to ${x?}?.name, and I'm ok with the stance that you can use such variable/property names if you want, but such names may require extra syntax or spacing to work with ternary or null-* operators.

@KirkMunro Nothing stops people from using variable-bounds going forward if they want esoteric variable names.  I do agree with the others in that I wonder what the current usage of that behavior is currently in use.
People on PowerShell 7 are likely already enthusiasts and will be aware of the breaking changes.  People who are not, are still using <=v5.1 and will continue to for a long time.

@KirkMunro Sure, but removing it from the standard permissible variable characters doesn't prevent users from just doing ${Valid?} as the variable name anyway. Since they'd have to do that with these operators regardless, I think it'd be better to just have it consistent, rather than have ? become a character that's only sometimes considered part of a variable name.
That already is going to be a breaking change, and I'd think it best to at least be consistent about it and go all the way rather than introduce another level of ambiguity. 🙂

@adityapatwardhan I think it would be better for the language to remove ? as a valid variable character.  It would easily enable both null-soak/-coalesce and ternary operators in a familiar syntax which add a lot of ergonomics to the script authoring process.

@KirkMunro having "prioritized parsing" sounds like an open door for bugs.

@TheIncorrigible1: Any code can open the door for bugs if it's not implemented properly. I'm just talking about a simple single-character lookahead to identify if PowerShell runs into a ternary or null-* operator when it parses a variable name that is not enclosed in variable bounds and encounters a ? character. That's not complicated, and doesn't open the door for more bugs than any other code change does.

People on PowerShell 7 are likely already enthusiasts and will be aware of the breaking changes. People who are not, are still using <=v5.1 and will continue to for a long time; likely until msft removes it from Windows 10 (never).

@TheIncorrigible1: What basis/evidence do you have of that statement? PowerShell 7 is in preview, so today it's only used by enthusiasts. That's a given. But beyond preview, if PowerShell 7 or later offer compelling features that companies need, while supporting the functionality they need, they'll use those versions. That is especially true if PowerShell 7 gets installed with the OS. The only point that enthusiasts comes into play is in organizations that don't have a business need for what PowerShell 7 brings to the table.

That already is going to be a breaking change, and I'd think it best to at least be consistent about it and go all the way rather than introduce another level of ambiguity. 🙂

@vexx32 That's stretching it. It would be a breaking change if you had ?? in a variable name, but the likelihood of that is much more remote than having a variable whose name ends in a single ?. Other than that, how would the introduction of null-* operators while still supporting ? as a standard permissible variable character break scripts today?
In my experience breaking changes for nice-to-haves (which is what this seems to be) are by far more often than not rejected, and the discussion/arguments around them only serve to slow down the process of getting things done dramatically, to the point where things just stall or miss getting into a release, etc. The slow down is often necessary, because if you're proposing a breaking change evidence is needed to be able to assess the impact and justify such a change. It's hard to gather that evidence today. I'm just saying this because I'll choose getting features done now over arguing about a nice-to-have breaking change any day.
I never use ? in variable names, nor would I. I expect some folks do, though, because it can read very well in a script, and putting up unnecessary barriers to entry for PowerShell 7 just slows down adoption, especially when many people working with PowerShell aren't developers who are more accustomed to working through breaking changes.
Anyway, it is not my intent to slow down this process -- rather the opposite. But I've shared my thoughts and experience, so I won't comment further on whether or not we should push for a breaking change here.

Consider this contrived example:
$ValueIsValid? = @( $true, $false, $false, $true )

$ValueIsValid?[0]

This behaviour would already break with the proposed changes. I would prefer a consistent, clean break than a confusing break that needs a half-page explanation to list all the possible exceptions and when and where ? suddenly isn't valid, and where it still is.

@KirkMunro if PowerShell 7 or later offer compelling features that companies need, while supporting the functionality they need, they'll use those versions. That is especially true if PowerShell 7 gets installed with the OS.

Having worked in a few Fortune 50s with some employee bases being in the hundreds of thousands, even getting away from what was default on the OS was a challenge (i.e., moving to v5.x).  I have yet to see any place adopt Core; they'd rather just move to Python for cross-compatibility.  Enabling Windows optional features was also a pretty seldom task.
I think companies work with what they have and the knowledge base of their employees over seeking out new technology or language versions to solve their problems.  Some would be perfectly content staying on v2 forever and never touching the Win10/Server16 cmdlets that make life dramatically easier.
My point with all of this, is that these features are not in a vacuum.  If you make a language more ergonomic, it will see greater adoption by people being interested in the tool to solve the problems they have faster.  (See: C# and the growth in popularity with more/better language features)

Regarding variables ending in ? - that could be a significant breaking change because of the automatic variable $?.

@lzybkr I suspect the best case for dealing with that is a special case like what already exists for $^ and $$.

@lzybkr @TheIncorrigible1 As far as I remember, all of those variables are explicitly special-cased in the tokenizer. $^ already isn't a valid variable name. The tokenizer has special cases for all of those before it starts looking for standard variable names.

The only solution here is to use ¿:
$silly?¿=1

I dunno Steve, I'm firmly in the interrobang crowd on this one.
$silly?‽=1

@lzybkr - to my knowledge $? $$ and $^ are treated in a special way.
https://github.com/PowerShell/PowerShell/blob/8b9f4124cea30cfcd52693cb21bcd8100d39a796/src/System.Management.Automation/engine/parser/tokenizer.cs#L3001-L3004
To summarize, we have these four options

Big breaking change - not allow ? in the variable names.
Prefer ?.  as an operator. This means variable names ending with ? must use ${variablename} syntax. Still a breaking change.
Prefer old behavior. This means to use ?. and ?[], ${variablename}?.property must be used. No breaking change, but makes using the new operators clumsy.
Do not implement the new operators.

I personally, do not prefer the 1st and the last one.

This is a major version change. It's not unreasonable for this to change here, I think.

I think an important point to make is that the major version is being incremented to signal readiness to replace Windows PowerShell, which is to say it indicates compatibility, not breakage.

Are options 1 and 2 not the same? Or would variables still be permitted to use ? in the case that there is no null-coalescing or ternary operator following them?
If so, I think we may have a lot of trouble handling the tokenizing / parsing logic without a lot of backtracking. This might lead to performance degradations when variables end with ?.
Given that from what I can see, option 2 seems to be the general preference, I'm not really sure I understand the reluctance to make the breaking change here. Doing it that way will actively discourage use of ? in variable names anyway, simply by introducing scenarios that they aren't usable without enclosing the variable name.
I think this is a fairly minor change as breaking changes go, and having a break in the consistency of what can and can't be used in a variable name is probably the worse option, in my opinion.
These things should have clear rules that apply in pretty much all situations. Currently, this is the case. We're proposing to muddy the waters here and make the behaviour less clear. I can't see anything good coming from it, except perhaps that variable names containing ? become less used simply because they're harder to use in some scenarios -- which (effectively) brings us right back to option 1 by default, almost... so I don't see any particular reason not to take the break now and just avoid the ambiguous behaviour.

@vexx32 There is a slight difference between 1 and 2.
For #1 we disallow ? to be used in variable names all together. This means $x? = 1, $x?? = 1 $x?x?x = 1 will not parse.   For #2,$x? = 1is still valid but$x?.nameis equivalent to${x}?.name. This only breaks variable names with ?at the end, which are accessing members. So,$x? = 1, $x?? = 1 $x?x?x = 1 would still be valid.

Yeah, I'd be a little concerned about tokenizing overhead there. Might be worth implementing both possibilities and doing some benchmarks on a script that uses similar variables names reasonably heavily.
My preference is definitely option 1... a one-time breaking change is, to me at least, way more preferable to having to deal with the inconsistencies in how that can be parsed way into the future.

If so, I think we may have a lot of trouble handling the tokenizing / parsing logic without a lot of backtracking. This might lead to performance degradations when variables end with ?.

I share this concern about that possibility. Having ? as a sometimes-token-separator feels like a jagged line in the language to me.

If so, I think we may have a lot of trouble handling the tokenizing / parsing logic without a lot of backtracking. This might lead to performance degradations when variables end with ?.

It depends on how you implement it. As long as you take a lookahead approach rather than a tokenize and then back-up approach, you should be fine. You can look ahead at what characters are next when you encounter a ? in a variable name, and make a decision on how you want to "wrap up" the variable token based on what's next. That isn't a lot of trouble and shouldn't require backtracking or result in noticable performance degradations.

harder to find all variable references when scripters are mixing usage of $foo and ${foo}

That depends on whether the AST differentiates the variable name based on whether it saw the braces. I suspect that any tool that uses the PowerShell AST will have no trouble with braces here.

But for regex, it certainly means you have to be more aware: varname -> \{?varname\}?

@rjmholt I did a quick analysis over here.  A quick breakdown: Out of nearly 400,000 scripts with 22,000,000+ variable names (not unique), there were only ~70 unique variables that ended with ?.

Thanks, @TheIncorrigible1 - to me that makes it a Bucket 3: Unlikely Grey Area change, and burdening user with the need for {...} is highly unfortunate, paralleling the unfortunate need for $(...) around exit / return / throw statements in the context of && and ||.
To borrow the reasoning from that issue:
If we force the use of {...} around variable names just so you can use ?.:

New users will not expect the need for {...} and won't necessarily know that it is what is required when the following fails (possibly undetected, unless Set-StrictMode -Version 2 or higher is in effect): $o = [pscustomobject] @{ one = 1 }; $o?.one

Even once users do know about the need for {...}:

They will forget to use it on occasion, because of the counter-intuitive need for it.
When they do remember, this seemingly artificial requirement will be an ongoing source of frustration, especially since {...} is hard to type.

@rjmholt, quoting you  from https://github.com/PowerShell/PowerShell/issues/10967#issuecomment-561843650:

not breaking the way we parse existing valid syntax was the right way to go. Again, a change there isn't just a case of us making a decision to support a small number of wild programs out there — we've made numerous breaking changes in cases where we thought the pros outweighed the cons (not that I personally agree with all of them, or that those do or don't justify others). The issue is that changing some aspect of the tokenizer or parser means that two PowerShell versions will no longer generate the same AST for some scripts, so two PowerShells will "see" the same script differently. That means we can't even read the syntax the same way, so there's no PSScriptAnalyzer rule you can write to pick up possible issues around it; PSScriptAnalyzer will see a different syntax from one PowerShell version to the next.

Unlike C#, PowerShell can't pre-compile a different syntax to a compatible format for later execution, meaning that a syntactic change is tethered to the runtime. Once PowerShell makes a syntactic break, we reduce the number of scripts that can work against different versions, meaning users are forced to write two scripts, which is a serious issue for a shell and a scripting language. PowerShell is supposed to be dynamic enough to bend past all the differences with logic inside one script, but the syntax is the one non-negotiably static thing we have. And making a syntax change where both before and after are valid is especially pernicious, since there's no simple way to detect it, there's no warning for it and even after executing it in both environments, users might not know that a different behaviour occurred.

In general, I can appreciate that such changes can be very problematic and should only be made if the pros outweigh the cons, an important factor of which is how much existing code breaks.

we reduce the number of scripts that can work against different versions
meaning users are forced to write two scripts

We're talking about a new syntactic feature here (?.), so by definition scripts that use it cannot (meaningfully) run on older versions - unless you specifically add conditionals that provide legacy-version-compatible code paths, but that seems hardly worth it - you would then just stick with the legacy features.
Yes, the interpretation of $var?.foo in old scripts that used $var? as  a variable name would break, but:

? should never have been allowed as part of an identifier without enclosing it in {...}.

Since being able to do so is unexpected and probably even unknown to many, such variable names are exceedingly rare in the wild, speaking from personal experience, but @TheIncorrigible1's analysis provides more tangible evidence.

Even Ruby only allows ? (and !) at the end of identifiers, and there only of method identifiers, and I suspect that most Ruby users are aware that they should not assume that other languages support the same thing.

So, pragmatically speaking:

The vast majority code of existing will not be affected - a token such as $var?.foo will simply not be encountered.

If you write $var?.foo with the new semantics, then yes, running that on older versions would result in different behavior - but you should always enforce the minimum version required to run your code as intended anyway (#requires -Version, module-manifest keys).

All in all, to me this a clear case of a bucket 3 change: a technically breaking change that breaks very little existing code while offering real benefits (or, conversely, avoiding perennial headaches due to unexpected behavior).

@mklement0 we're keeping the Null-Conditional access experimental for PS7.0.  Perhaps you can open a new issue to continue this discussion for 7.1?

Sounds good, @SteveL-MSFT  - please see #11379.
I encourage everyone here to again show support (or, gasp, non-support) there.


cli: Enable rendering a single kubeconfig for a cluster

This commit expands the create kubeconfig command to allow selecting a single
hostedcluster by namespace/name for rendering.

/lgtm


allow for complete wat instead of shards

Speaking with @rom1504 I learned that dataset is ideally sized for model training if we can provide files containing an entire batch of 5000-10000 samples.
At this deduplication level this is achieved with 16 shards grouped together, as I already started to use. At the same time the shard download takes 90-130 seconds and became a significant part of the entire job duration at scraper. Getting a single download and performing 2 shards in one go will cut this time in half.
I would like the server to send, whenever possible, 2 shards at once from the same wat like this:
client                                                                 server
client.newJob()
                                      get shard 0 if shard 1 is unavailable
                                      or
                                      get shard 1 if shard 0 is unavailable
                                      or
                                      get both shards if both are available
client.jobComplete(linktocomplete)
                                      server register one or 2 jobs completed

that kind of information should also be available for the GPU node, so it knows if downloaded data correspond with single or double shard

Actually, I did something similar for @DefinatelyNotSam's workers on Discord. His worker, nicknamed "Cruncher" parses entire WARC files, and has a crawling@home plugin to help out our project (yet to go live). He reformats the WARC files to match the WAT file URLs and sends them via custom endpoints I developed.
In summary, this is what the endpoints I made do:

The URL to the WAT he's passing is sent to the server via /custom/lookup-wat
The endpoint returns the shard numbers, as well as the shard data for both the shards in that WAT.
Cruncher compiles the images and creates the same files other workers generate
Cruncher then marks the job as done via /custom/markasdone, which marks both the shards as done

I could definitely do something similar if this is what you'd like to achieve.

Yes, if I can get both shards into the worker and upload either combined or separate results I do not mind reutilizing the same endpoint as cruncher

Ah it won't be using the same endpoints, however, I'll design custom ones that work directly with client instances.


Do not fail on inputContent === null

fixes https://github.com/sevenclev/node-soap-graphql/issues/1

@sevenclev Can you publish a new version of the nam package which includes this fix?

Should be published now.


Allows loading the best answer for Task

Description
Fixes #1304
Notes (out of scope, known isues, hints for reviewing code, ...)  (optional)
...
Test cases

[ ] Case 1:

Given I am the usual user
When I go to this page
Then I see progress table with "View the best answer" buttons
And I click on the "Parcours diagonal et maximum (variante CT S1 déc. 2016)" task
Then I see "Chapter View" tab on "Parcours diagonal et maximum (variante CT S1 déc. 2016)" page
Then I click on "History" tab
And I see the tabs are disappeared

[ ] Case 2:

Given I am the usual user
When I go to this page
Then I see progress table with "Reload the best answer" buttons
And I click on the "Parcours diagonal et maximum (variante CT S1 déc. 2016)" task
Then I see "Chapter View" tab on "Parcours diagonal et maximum (variante CT S1 déc. 2016)" page
Then I click on "History" tab
And I see the tabs are disappeared

[ ] Case 3:

Given I am the usual user
When I go to this page
And I click on the "Tableaux/matrices" chapter
Then I see the page "Tableaux/matrices" with opened "Progress" -> "Chapter View" tab

[ ] Case 4:

Given I am the usual user
When I go to this page
Then I see progress table without "Reload the best answer" buttons

[ ] Case 5:

Given I am the demo user
When I go to this page
Then I see progress table, "Last Activity" are "Not started" and next columns are empty

Sorry, after writing the similar request on the progress matrix, I realize I have forgotten the permission aspect. Also, with the new permission required that "what happen on click" becomes even less clear for the users, so I will try to change that a bit.
So I have changed the issue description. Sorry 😕 for the extra work.

In the case 1: Given I am the usual user When I go to this page Then I see progress table with "View the best answer" buttons And I click on the "Parcours diagonal et maximum (variante CT S1 déc. 2016)" task Then I see "Chapter View" tab on "Parcours diagonal et maximum (variante CT S1 déc. 2016)" page Then I click on "History" tab And I see the tabs are disappeared
Why isn't there the "View the best answer" button anymore after I click on the "Parcours diagonal et maximum (variante CT S1 déc. 2016)" task ?

There are item and children fields and item doesn't have permission info:

Given I am the usual user
When I go to this page
I click on the first "view the best answer" button

Actual : I navigate to the activity, in the same progress table Expected: I navigate to the best answer of the observed user on the selected activity

I've add new test cases


Draft applications should be sorted with the earliest deadline first

Trello: https://trello.com/c/WOrGaxBH/104-show-draft-applications-on-supplier-dashboard
Ordering fail! The supplier should see the most urgent draft application at the top of the list.

I thought I'd done this ordering, and even wrote a test, but in fact I'd done the exact opposite 🤦♀

An extra commit to only show draft applications for live briefs.

A slight tweak - we now show draft applications for briefs that closed (or withdrawn/cancelled etc) within the last 2 weeks (so the supplier can see if they have missed the deadline).

Continued :+1:


Simplification of container.getOptions

Replace use of defined interface for type any to allow for support of any option across any container instead of restricting.
Fix Electron implementation since LoginItemSettings is at the app level not electron

codecov/project — 93.34% (-0.02%) compared to 129233f

I removed some lines of code


promql (histograms): Reevaluate weight of native histograms relevant for --query.max-samples

Proposal
Currently, each native histogram counts as one sample against the limit given by --query.max-samples. However, a histogram has a count, a sum, and an arbitrary number of buckets. We could move to the opposite end of the spectrum and count each of those as one sample. But maybe it makes sense to do something in between. This requires an evaluation of the memory impact of native histograms vs. conventional simple float samples.

@marctc plans to work on this next week.


Implement String#unpack

I split this issue off from #217.
We implement these in StringUnpacker.

[x] unpack1_spec.rb
[x] a_spec.rb
[x] at_spec.rb
[x] b_spec.rb
[x] comment_spec.rb
[x] c_spec.rb
[x] d_spec.rb
[x] e_spec.rb
[x] f_spec.rb
[x] g_spec.rb
[x] h_spec.rb
[x] i_spec.rb
[x] j_spec.rb
[x] l_spec.rb
[x] m_spec.rb
[x] n_spec.rb
[x] percent_spec.rb
[x] p_spec.rb
[x] q_spec.rb
[x] s_spec.rb
[x] u_spec.rb
[x] v_spec.rb
[x] w_spec.rb
[x] x_spec.rb
[x] z_spec.rb

Closing!! 🎉


Cyber RT共享内存出现时间戳跳跃

apollo v7.0.0
rate=100/s

rate=50/s

what did you do when you sent messages? The reason for this error is that the sending is blocked?
I will test it

请问这个是哪个日志文件打印出来的？

what did you do when you sent messages? The reason for this error is that the sending is blocked?

I send rawmessage with 6MB string.

请问这个是哪个日志文件打印出来的？

run the example talker and listener to send rawmessage.


can i use gradient drawable as indicator?

can i use gradient drawable as indicator?

maybe you can try use custom CustomLayoutId or TabProvider.hope useful to u.

@Nasrolahi, you can check my pull request at #301


MGNet pretraining goes wrong

Hi Yinyu:
I tried to pretrain MGNet with python main.py configs/mgnet.yaml --mode train and test it with python main.py configs/mgnet.yaml --mode test.
However, after 50 epochs of training, the learning rate quickly reduced to a seemingly unreasonable level of 1e-08 with the best chamfer_loss stuck at 5.67 after the 6th epoch.
log.txt
Also, the test results of the best checkpoint looks like below:
log.txt
Is there anything I missed?

Hi,
I think you should follow our paper to train it by stages, just as TMNet referred in our work. A general strategy is to first train the AtlasNet (by setting tmn_subnetworks=1 in mgnet.yaml). After it converges, loading the weights (by setting weight path in mgnet.yaml), and fix it to train the second stage.

I have trained with tmn_subnetworks set to 1. However, When I was trying to load the weights and fix them to train the second stage, I didn't find an option to fix the loaded weights.
Option 'train.freeze' seems to be able to control which submodule needs to be fixed. But it can't be used to fix the weights of the first stage.

Noticed that apart from the difference of optimizer settings (learning rate 1e-4 vs 1e-3, different scheduler) between the code and the paper, the batch_size settings are different too (2 vs 32). Can I go through README to reproduce the results of the paper or do I need another modification not mentioned in README?

Also, with tmn_subnetworks set to 1, the training loss and testing loss looks like below.

looks like there is some thing wrong with edge, face, boundary loss.

Hi,
Boundary loss will only work for points on open boundaries, which works at the second stage (tmn_subnetworks =2). So it will be 0s if tmn_subnetworks =1. The first stage means shape deformation and the second stage is for topology modification.
Edge loss is a regularization term to penalize extra-long edges. It will not change much during training.
Face loss is to classify whether a point on edges/faces should be removed.
We will update our README to make it more detailed after our deadline ends. Here is our training strategy, you can also follow the strategy in this work :
We first set 'tmn_subnetworks=1' and turn off the edge classifier by setting 'with_edge_classifier=False' in config.yaml for training (it is equivalent to AtlasNet). After converging, turn on the 'with_edge_classifier=True' to train the edge classifier in the first stage. The above are the modules in the first stage.
After that, we fix the above modules to train the second-stage decoder using this function. You can add a line
self.mesh_reconstruction.module.freeze_by_stage(2, ['decoder'])
at this place and remember to turn on 'with_edge_classifier=True' and 'tmn_subnetworks=2'.

Thanks a lot for your patience and detailed explanation! I'll try the steps and refer to the work.

Hi Yinyu:
I followed the three steps (MGN1, MGN2, MGN3) and got the following results:

It seems that the third step didn't improve the chamfer loss at all. Where did I do wrong?
The test Avg_Chamfer of stage 3 is 9.70. Not as good as the 8.36 of your paper and the 8.14 of the downloaded MGNet checkpoint.
Another question is if the Avg_Chamfer provided by your test code is the same metric in your paper? The paper mentioned that an ICP algorithm is applied to the output which is not in the code.

I tried another run. Looks like the learning rate of the first step starts to go down 30 epochs later accidentally. Which results in a better chamfer score after the first step:

However, the test chamfer becomes worse after the third step, which is strange. The best chamfer I got is 9.07 which is after the second step of training. This is still not so close to your results.
May I get some more tips about the training process? Is there something wrong with my procedure?

@pidan1231239 Sorry about asking not related question.  I want to know how did you visualize the training process? Is this written in the source code?

I used weights and biases. Added a few lines of code.

Thank you for your fast reply! I will also give it a try

No problem!

Hi, have you reproduced the results reported in the paper? I'm also trying to do it but only got 0.103016 (average chamfer distance).

The downloaded checkpoint can achieve 0.008187 Chamfer loss, which is before ICP alignment and probably not the exact code for the final evaluation.
In my best try, the loss can lower down to 0.01028, with batch size changed to 32 like in the paper. However, I used two GPUs in the second stage and one in others because of the memory limitation. Don't know if there is something I missed.

Noticed that apart from the difference of optimizer settings (learning rate 1e-4 vs 1e-3, different scheduler) between the code and the paper, the batch_size settings are different too (2 vs 32). Can I go through README to reproduce the results of the paper or do I need another modification not mentioned in README?

Hi, the author didn't reply to this question. I am also curious about whether we should follow the batch size and learning rate in the paper or in this GitHub. The batch size, lr and epoch number are all different.


Selectable List

Selectable List
Overview / Summary
Create a component that will provide for the display of a list of selectable items, decorations, and buttons.
Expected use cases
This component will be used whenever a styled list of selectable items needs to be displayed
Where should this component live
This component should be created in the component library.
Images

// Pseudo-markup

  <SelectableItem
    selected=false
    label="Standard (5-9 Days)"
    name="shippingMethod"
    displayValue="Free"
    value=0
  />
  <SelectableItem
    selected=true
    label="Priority (3-5 Days)"
    name="shippingMethod"
    displayValue="$5.99"
    value=5.99
  />
  <ButtonItem
    icon="+"
    label="Add a new address"
    onClick="handleButtonClick"
  />
  <ListHeaderItem
    label="Other payment methods"
  />

Data
Props
propTypes: {
  items: PropTypes.arrayOf(Reaction.CustomPropTypes.selectableListItems)
  name: PropTypes.string,
  // Thinking this list doesn't include a form or submit, but could be wrapped in one instead
}

Render Criteria
This component should be rendered when a styled radio input type needs to be displayed
UI States
Normal
Shipping Method List: https://app.zeplin.io/project/5afc82f5e8d73e250ff9d855/screen/5b02f470eefa9c371dd3c488
Address Book: https://app.zeplin.io/project/5afc82f5e8d73e250ff9d855/screen/5b02f47091739e0f56ec179a
Payment Methods List: https://app.zeplin.io/project/5afc82f5e8d73e250ff9d855/screen/5b02f472d8279f0922723c78

:tada: This issue has been resolved in version 0.29.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fix readme link to official doc site and new samples repo.

What this PR does:
fix readme link to official doc site and new samples repo.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?: NONE

Codecov Report

Merging #495 (260f550) into develop (287bbeb) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #495   +/-   ##
========================================
  Coverage    54.92%   54.92%
========================================
  Files          662      662
  Lines        77433    77433
========================================
+ Hits         42530    42532    +2
+ Misses       31278    31275    -3
- Partials      3625     3626    +1

Impacted Files
Coverage Δ

pkg/kube/inject/watcher.go
48.14% <0.00%> (-6.18%)
:arrow_down:

pilot/pkg/model/addressmap.go
63.23% <0.00%> (-4.42%)
:arrow_down:

pkg/istio-agent/xds_proxy.go
60.52% <0.00%> (-1.74%)
:arrow_down:

pilot/pkg/xds/adstest.go
66.66% <0.00%> (-1.52%)
:arrow_down:

pilot/pkg/bootstrap/server.go
53.11% <0.00%> (-0.46%)
:arrow_down:

.../pkg/serviceregistry/kube/controller/controller.go
72.53% <0.00%> (-0.16%)
:arrow_down:

pkg/istio-agent/xds_proxy_delta.go
53.36% <0.00%> (ø)

...g/serviceregistry/kube/controller/endpointslice.go
74.13% <0.00%> (+0.68%)
:arrow_up:

pilot/pkg/xds/discovery.go
85.89% <0.00%> (+0.96%)
:arrow_up:

pkg/wasm/cache.go
89.52% <0.00%> (+1.04%)
:arrow_up:

... and 5 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Get user info on login/signup

Add the possibility to get user info when logged in
Using a method and/or in the nlAuth event
document.addEventListener('nlAuth', async (e) => {
  if (e.detail.type === 'login' || e.detail.type === 'signup') {
    console.log(e.detail.user) // contains pubkey, npub, name, nip05, avatar
  }
})

There is already some info in e.detail - localNsec and relays for nostr connect, method, and now I added pubkey - so you don't have to call getPublicKey(). But adding user profile is not a great idea - it would introduce a potentially long delay after user clicks 'ok' - we'd have to fetch the profile before nlAuth could be delivered.

All infos I need is returned in a console log emitted by (I think) initNostrLogin() method. Isn't it possible to reuse these infos without fetching again?

Well after user logged in and reloaded the page the info is in the local cache. But on the first login, this info isn't loaded yet. We could "return it if it's there", but you won't be able to rely on it, and would still have to fetch the profile yourself to make sure, or would accept the info being available "sometimes". I would say fetching profile in the app is a better approach to make the experience consistent.

Sorry for the elementary question. Related to the above, how is the user name and picture fetched in the nostr.band web app? I want to have a top menu, but I don't know how to access those updated values after login. At the moment I'm constantly checking localstorage for an update, which I can get the updated info from, but I'd like to know how it should be done. Thank you.

If I understand this correctly, nostr-login fetches the user after the initial auth and gets extra info such as name and picture. This info is then populated into the button etc. Sorry for the basic question, but where can I access this updated user info from? and how do i know when I can access it? I want to create a new user menu.


array_key_exists() on objects is deprecated

Fix for array_key_exists() in PHP 7.4.
In GridFieldFilterHeader, the ArrayList::canFilterBy() method is called. E.g. for the method SiteTree::DependentPages this functionality is used. Link to an internal page in the CMS, save, go to the other page, you will get the deprecation notice.
Fix same as in 4.6.0
https://github.com/silverstripe/silverstripe-framework/commit/ec6a35354383cc18db9562af7b25841bfb2cd673

I've noticed that you've created this pull request from one of the "core branches" rather than a branch specifically intended for this pull request. This can cause problems if we ask you to target this PR at a different branch. No action is needed at the moment, this is for your information.
In the future please create a new branch for each individual pull request. See our guide about contributing PRs

Thanks for the feedback! Will do in future PR's :)


show long text left/right: It can't show the complete dialog if it contains a too long word

Describe the bug
show long text left/right: It can't show the complete dialog if it contains a too long word
Steps to reproduce the behavior
1.Navigate to https://makecode.com/_5zU5reCF1F5y
2.Click button A
Actual behavior
show long text left/right: It can't show the complete dialog if it contains a too long word

Additional context
1.OS: Windows(rs6)
2.arcade version: 1.5.26
3.Microsoft MakeCode version: 6.13.54

This is fixed now.

Still not fix. Test version:
arcade version: [1.12.30]
Microsoft MakeCode version: [8.5.41]


generate emoji regex from Twitter internal

I've noticed you've switched to use a regex that generated in twitter internal c6611fd74ca57f8bc5eb937df4fd045241cd22ca, can you please provide the source code that we can be able to regenerate it?
I need to regenerate this regex for pcre which does not support \uxxxx.

@n8downs could you take a look into this?

The regex generator was open-sourced in https://github.com/twitter/twemoji-parser/commit/66059e5da13a0407a49bdbe4b1980e00fcc92b62.


Add model classes and migrations

Implement model classes, including associations and validations per the schema developed in planning.
Add migrations to create all tables per the schema.

This was reviewed by the entire team in person.
:+1:


How to build datawire/aes image

I want to rebuild docker.io/datawire/aes:1.14.2 image, but some steps are missing in builder/Dockerfile of project emissary-1.14.2 ,
such as the last steps are missing in Dockerfile :

/bin/sh -c #(nop) COPY file:880b110d55146460f003f325aef03f97e3b1d82af94bf80b82605d245ce3e126 in install-ssh
/bin/sh -c sh install-ssh
/bin/sh -c #(nop) COPY dir:6222e79e3c380587996705fe312ad868475e8e6213ee0a0b3db7121d656d9995 in /ambassador
/bin/sh -c #(nop) COPY file:ac671ccd2c2bf2591ed1734a0a6962e5cc6de0334034ff4102cc4037dd0ea499 in /usr/local/bin
/bin/sh -c ln -s /usr/local/bin/busyambassador-edge-stack /ambassador/sidecars/amb-sidecar &&         ln -s -
/usr/local/bin/busyambassador-edge-stack /usr/local/bin/app-sidecar &&         ln -s /usr/local/bin/busyambassador-edge-stack - /usr/local/bin/aes-plugin-runner &&         ln -s /usr/local/bin/busyambassador-edge-stack /usr/local/bin/aes-injector &&         ln -s /usr/local/bin/busyambassador-edge-stack /usr/local/bin/consul_connect_integration &&         ln -s /usr/local/bin/busyambassador-edge-stack /usr/local/bin/traffic-manager &&         ln -s /usr/local/bin/busyambassador-edge-stack /usr/local/bin/local-devportal &&     touch /ambassador/.edge_stack

And how to compile the "busyambassador-edge-stack" file ?

Hi @NeferpitouS3 , just to confirm are you using this image here?

yes, is the "busyambassador-edge-stack" file of this image compiled by the current project?

Yes, apologies for the delay.  That's correct.


Allow typescript formatter to inherit options from config files

What does this implement/fix? Explain your changes.
Currently the typescript formatter is using CRLF line endings on OS X. There appears to be no way to change this configuration (tried .editorconfig, tsconfig.json, tslint.json, tsfmt.json and setting the default in Atom, all to no avail)
Does this close any currently open issues?
Wasn't able to find a matching issue, but with the neutering of the latest atom-typescript plugin, better support for typescript here is sorely needed. This should allow tslint.json, tsconfig.json and .editorconfig files to provide formatting options.
Any other comments?
...
Checklist
Check all those that are applicable and complete.

[x] Merged with latest master branch
[ ] Added examples for testing to examples/ directory
[x] Travis CI passes (Mac support)
[ ] AppVeyor passes (Windows support)

@Glavin001 is there anything I can do to help move this along?

Any progress on this?

@Glavin001 sorry for leaving this for so long, but everything appears to be working now. I made sure to actually run the post processors.
It's been refactored, but for reference NewLineCharacter is from the configuration of the current version of typescript you're targeting

@Glavin001 I'm unsure as to why the Travis CI tests are failing, it doesn't seem to related to my change...


[FEATURE] Post factory executed event with possibility to change the cache settings before it be inserted in cache

Problem
I need to set the cache duration after the factory is executed (based on the result of the factory) but before the result from factory be inserted in the cache.
Solution
Maybe accepts a action with the some context in method (GetOrSetAsync) as a parameter, that will be called after a factory runs but before the result of the factory be inserted in the cache.

Hi @viniciusvarzea and thanks for using FusionCache!
What you are looking for is already implemented and is called Adaptive Caching.
Hope this helps.

Hi @viniciusvarzea , did it work?

@jodydonetti you are the best! It works


WIP: EIA 923 coalmine exploration

Here is my initial stab at cleaning up the coalmine_eia912 and filling in missing MSHA ids.

These notebooks are now stored in the private catalyst-cooperative/interview-solutions repo.


Short solution needed: "How to exit git log" (git)

Please help us write most modern and shortest code solution for this issue:
How to exit git log (technology: git)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

How to exit git log


PADD Finance

KCC application grant

Developers who applied for the program should provide their KuCoin UID in their PR, and KCC will contact them via the email address linked with the UID.


Cargo clippy

Adds cargo-clippy CI job and fixes the one warning we get.

bors merge

bors retry


Merger batching fix

This is largely what was in #1222 . The interesting addition is closing the substreams once they've finished as explained here

Are there any more comments on this @warrd and @kenoir ? Is it ok to be merged?

Are there any more comments on this @warrd and @kenoir ? Is it ok to be merged?