Expose options for clean-css and html-minifier-terser

Stacked with #8
This adds cssOptions and htmlOptions parameters that allow configuration of the underlying minify calls.

Hey @casselc, really appreciate you adding all these changes! I will definitely merge these changes, but I just want to ask your opinion on a change before I do.
I feel that the naming of the build option makes it a bit hard to know what it is going to do without looking at the documentation. What's your opinion on changing it to something like includeBuildExtension or includeExtension?

Renaming is no problem, do you think filter should be renamed to something like excludeExtension to match? After looking more at how html-minifier-terser works, this PR is still a little rough around the edges. Working on a revision that also exposes the terser config, but trying to make sure I have the different minification scenarios thought through.

One of my regrets was allowing the name to be filter. I had the same thought of renaming it but am considering not because it would involve a breaking change to projects I know who are using it. Maybe with the significant amount of changes we can consider a 2.0 release which would make this a non issue.
Admittedly I'm a bit concerned about exposing the CSS and HTML options, due to them becoming hard dependencies. But I won't let perfect be the enemy of the good.
Great work overall, love the thought that's going into this! Can't wait for the finished pull request!

Hey @casselc,
I would love to commit this pull request to the main repository. If you don't have time to finish off this PR I can incorporate it into the main repo and do so myself. I think the changes here would greatly benefit the project.


Add the option to use ARM64

Helps solve an issue here: https://github.com/byu-oit/appeng-questions/discussions/60


Naver.Vaccine version 2<IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Path is normal. What is wrong?

/AzurePipelines run


Remove bad test (the build's commit can't be reached anymore due to branch deletion)

Fix #728

Pull Request Test Coverage Report for Build 2128

0 of 3 (0.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 52.458%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

repairnator/repairnator-core/src/main/java/fr/inria/spirals/repairnator/Utils.java
0
1
0.0%

repairnator/repairnator-pipeline/src/main/java/fr/inria/spirals/repairnator/process/git/GitHelper.java
0
2
0.0%

Totals

Change from base Build 2125:
-0.03%

Covered Lines:
2753

Relevant Lines:
5248

💛  - Coveralls

@btellstrom could you review this PR for me? If everything is ok for you, could you merge this PR in the master branch?


Chore: require valid JSDocs

Looks like our CSS whitespace isn't getting linted... is this something we can turn on too?

Let's handled CSS linting in T163831.


DOCS Suggest a tool to help people generate their change logs for mod…

…ules.

thanks @ezero for brining this tool to my attention last hackfest ;)


Support colon after @ts-nocheck and @ts-check

The following directive is recognized:
// @ts-nocheck foo
"test" - 1

(playground link)
However if the comment directive is followed by a colon it is not recognized: the following code results in a type error:
// @ts-nocheck: foo
"test" - 1

(playground link)
This is pretty unintuitive considering that the @ts-ignore and @ts-expect-error comment directives support trailing colons (the following work as expected):
// @ts-ignore: this is ignored because ...
// @ts-expect-error: we expect this to fail because ...

The error occurs due to the difference in syntax between the @ts-nocheck and @ts-ignore/@ts-expect-error directives in TypeScript. @ts-nocheck is a standalone directive that disables type checking for the file or section of code. The @ts-ignore and @ts-expect-error directives are used to ignore or expect specific errors in the following lines or blocks of code, requiring the use of a colon. When @ts-nocheck is followed by a colon, TypeScript does not recognize it as a valid directive, resulting in the type error.


Template for package READMEs

Feature request
Create a "template" file to use for all package readmes using special global variables that are replaced on compile time. This should help normalize some of the extra documentation that goes with all packages.
Example template.md:
%DESCRIPTION%

![NPM Version](https://img.shields.io/npm/v/%NAME%)
![NPM Downloads](https://img.shields.io/npm/dt/%NAME%)

Last published %DATE%

## Installation

`%NAME%` can be installed...

```shell
npm i %NAME%
```

<!-- this is where the individual README.md content goes -->

%README%

## Contribute

...

Future work:
Example programs should be committed to this repository and run during the npm test phase but not published to npm. This could even further automate the documentation by adding a %EXAMPLE% super global variable that is replaced by the full example program on compile time.

Unfortunately, %README% cannot be used as a template variable since sed/awk do not support multiline replacements.

Due to some limitations with sed, any instance of : appearing in a template variable will be converted to ;.


ArelExtensions::Predications#in treats ranges as enumerables

ArelExtensions::Predications#in uses a case statement to determine how to handle the other parameter. Unfortunately it looks for Enumerable before Range, and ranges are also enumerable, so it generates the wrong SQL.
> User.arel_table[:created_at].in("2019-01-01", "2019-01-02").to_sql
# => "`users`.`created_at` IN ('2019-01-01', '2019-01-02')"
> User.arel_table[:created_at].between("2019-01-01", "2019-01-02").to_sql
# => "`users`.`created_at` BETWEEN '2019-01-01' AND '2019-01-02'"

I see that this is already fixed on master, so I hope it will be released soon :)


lib: Add RPI3 Neuron CDS to leviathan supported devices

This is a CDS device, similar to the RT RPI 300
that has been recently added in the previous merged
commit.
Change-type: patch
Signed-off-by: Alexandru Costache<EMAIL_ADDRESS>Added as requested in internal thread https://www.flowdock.com/app/rulemotion/r-resinos/threads/_kUatH1oNk-uYMhQSwmzHphpnKq

@balena-ci I self-certify!


Security hardening: Linux Enable Position Independed Execution (PIE)

Security hardening: Enable Position Independed Execution (PIE) for binaries
Enables support for ASLR in openssl binaries without relying on distribution defaults
CLA: trivial
By default Openssl does not enforce the PIE hardening standard to support ASLR for binaries such as openssl

Testing done on Amazon Linux 2023

sudo yum groupinstall "Development Tools"

git clone https://github.com/openssl/openssl.git

cd openssl
./Configure --strict-warnings
make
# Before the change
file apps/openssl
apps/openssl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=34e964300b23f31cb2929cfa1c0518f6f17ff1a6, for GNU/Linux 3.2.0, not stripped

# After the change
file apps/openssl
apps/openssl: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=09cbc286669091977aa38614c03399b257fcf45a, for GNU/Linux 3.2.0, not stripped

Some OS distributions enable PIE by default, e.g. Ubuntu https://wiki.ubuntu.com/ToolChain/CompilerFlags, and the OS distribution of openssl is generally built with PIE enabled, however, the default from OpenSSL does not implement the PIE hardening feature enabling ASLR functionality for the openssl binaries.
This change is modeled after https://github.com/openssl/openssl/pull/11238 which enabled PIE for Android builds.

Please do not add merge commits.

I am not  sure about this - we aim to support fairly old or special systems, are we sure it won't break on these?

My apologies I did not intend to merge the master commits in this PR. Please let me know what I can and should do to repair.

I am not sure about this - we aim to support fairly old or special systems, are we sure it won't break on these?

I'll need to rely on The OpenSSL project to decide on this question.

In your case git reset --hard HEAD~ && git push --force should repair it.

Hmm... you can even see this CI failure which is related.

We can see that this is causing some issues on m68k.
I think this is a good idea and we should do this. We may need to exempt a few older architectures and platforms, but I don't see a big issue with doing that.
The fuzzer CI failure is a bit odd:
2023-11-02T15:46:47.9142079Z /usr/bin/ld: final link failed: No space left on device
2023-11-02T15:46:47.9367251Z clang-15: error: linker command failed with exit code 1 (use -v to see invocation)

I don't think we should make this mandatory: old platforms, folks who don't want it, etc.
My suggestion would be for this to be a separate configuration target or done as a configuration option (enable-pie or disable-pie) or documented in the INSTALL.md (or similar).  I.e. make it available but not mandatory.

I don't think we should make this mandatory: old platforms, folks who don't want it, etc.
My suggestion would be for this to be a separate configuration target or done as a configuration option (enable-pie or disable-pie) or documented in the INSTALL.md (or similar). I.e. make it available but not mandatory.

I agree.
I think it should definitely be enabled by default on primary platforms.

OTC: This should be a build-time option. Which can be on by default for selected platforms after they are tested to work.

@crlorentzen
If you want this PR to be accepted you will have to add it as a configurable build option
Refer to INSTALL.md 'Enable and Disable Features' for examples of existing ones.
You would need to edit configdata.pm.

Looking for configdata.pm I find configdata.pm.in and I am not sure what is needed there.
Requesting feedback now as I cannot devote time to this at the moment, but don't want to lose information if I can return to this in the futue. Plus, maybe someone else is also interested in understanding the process.
I see the Configure script will require the addition of pie as a disableable and then a default disabled
after those changes one would add to 00-base-templates.conf something like
...
bin_cflags       =>
  sub {
    my @flags = ();
    if (!defined($disabled{pie}) {
      push(@flags, "-fPIE");
    }
    return (" ", @flags);
  },
bin_lflags       =>
  sub {
    my @flags = ();
    if (!defined($disabled{pie}) {
      push(@flags, "-pie");
    }
    return (" ", @flags);
  },
...

Then remove the changes made to 10-base-templates.conf.
Does the above sound correct?

I mis-remembered how you change it..
You edit
Configure +
install.md
You have the right idea for the conf file.
The decision as to whether the option is on by default may be up for debate..

This Pull request is now a commit to add the enable-pie flag suggested by the OTC

We will need a CLA to be signed as we cannot accept this contribution with CLA: trivial.
As this is disabled by default there should be a CI run in runchecker-merge.yml added that enables this.

@t8m Understood about CLA: trivial. Will look at signing and providing that document.
Also took a stab at the run-checker-merge.yml requirement

Closing and Re-openning per guidance to recheck CLA database

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

Bump; Requesting OTC review and feedback on how to proceed getting this change to allow PIE as part of the Openssl Configuration process.

Fixed typo and added CHANGES.md entry.

I think I successfully fixed the CHANGES.md conflict

Unfortunately there are still conflicts in CHANGES.md and there is a merge commit which is not allowed.

eventually I may be able to get back to trying to make this acceptable

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

Thank you @t8m, rebased and fixed conflicts in CHANGES.md. Moving the change information to "Changes between 3.3 and 3.4 [xx XXX xxxx]" since it didn't make for 3.3.

@t8m can you reconfirm?

24 hours has passed since 'approval: done' was set, but as this PR has been  updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Squashed and merged to the master branch. Thank you for your contribution.


Unknown Axios Error

User was attempting to replicate commands identical to Charles and I, which were successful on two respective Jetsons

Sounds like it’s likely to be a network/firewall block of our API or some of the google services. Can they access Roboflow on a web browser on the jetson?

they can curl https://api.roboflow.com successfully on their jetson

Maybe on the GCP download?

Closing this issue as stale.


Added LinearBorder, an OutlinedBorder like BoxBorder

Makes it easy to create bordered rectangle OutlinedBorders, where the border is defined by 0-4 edges.
A DartPad demo of the code can be found here: https://dartpad.dev/?id=34adb8b46d34c933751bf8b21d06686f&channel=master
Fixes https://github.com/flutter/flutter/issues/68368

Hey, this seems relatively similar to an old idea I have. I have had a similar idea for a while, but it was rejected by Hixie and others. Their response was that new borders are more suited for a standalone package than Flutter framework.
There is even a design doc I made for this issue: https://github.com/flutter/flutter/issues/109954
// Currently:
Border.all(width: 3, color: Colors.white)
Border(left: BorderSide(width: 3, color: Colors.white))

// Proposal:
Border.all(width: 3, color: Colors.white)
Border(leftWidth: 3, color: Colors.white)

// Alternative proposal (.only is not currently used):
Border.only(leftWidth: 3, color: Colors.white)

This is another comment I made somewhere:

Border.all(width: ...) and Border(top: BorderSide(width: ...)) could be simplified into Border.all(width: ...) and Border(topWidth: ...) (API being similar, there is not a nested class which confuses). The Border would support lerp to every other border. Therefore, BoxDecoration wouldn't need to exist, and Container could include a shape parameter to avoid exceptions when using color while also avoiding an additional nesting level with ShapeDecoration.
So..

Border(topWidth: ...) (pro: consistency, lerp, animation)
BoxDecoration: gone (shape: RoundedRectagleBorder() replaces it)
Container(color: Colors.red, shape: RoundedRectangleBorder()) (no crash)
Container(decoration: ShapeDecoration(gradient: ...)) (still valid, but unused 95% of the time)

I still think you could make something like LinearBorder(topWidth, bottomRight, leftWidth, rightWidth) and LinearBorder.proportional(topWidth, bottomRight, leftWidth, rightWidth), and then just kill Border because it would be redundant.

The point of departure for LinearBorder from Border is that LinearBorder is an OutlinedBorder, which is what most of the Material components require. An OutlinedBorder's outline is defined by just one BorderSide, i.e. one line width and color.  This is because most components allow one to separately specify a component's shape and its outline. It would be possible to work around this by allowing each LinearBorderEdge to specify an override for the overall  BorderSide property. That adds some complexity for what doesn't seem (to me) like a common use case. If I'm mistaken and we here about it from developers, I'm open to adding that feature.

You propose
shape: const LinearBorder(
  start: LinearBorderEdge(size: 1, ),
  bottom: LinearBorderEdge(),
)

I propose
shape: const LinearBorder(start: 1,  bottom: 1, align: Align.center)

Regarding the BorderSide situation, yes, but you could "bring it inside", like that:
shape: const LinearBorder.something(start: 105,  bottom: 25, align: Align.center, color: Colors.red)

Each LinearBorder edge can have a relative size (size is a percentage of the available width/height) and alignment (alignment only matters if size < 1).  I'm not sure how your proposal would enable one to specify a different size and alignment for each edge.

Uh, now I got it. I was thinking about animation only, but it has a practical use case. I feel it is too much, but I understand it.

Don't you think a 4 sided border with borderRadius would be more used (specially in context of buttons) than a border without CornerRadius with alignment? I can see use cases for both, but even in Material I think the first one would be more used.

The common cases I'm aware of are adding a simple underline or a vertical bar to a button. In many cases the appearance of these edges are animated and sometimes they don't span the available width/height. I'll grant you that other variations are possible and may be desirable. Of course we already support various continuous outlined shapes - https://api.flutter.dev/flutter/painting/OutlinedBorder-class.html.

Yeah, I'm just sad the more-useful Border wasn't approved :( This one is useful, but I don't think a lot of people would be as happy as the other change.

That's not what this shape is for, although it's pretty interesting looking. Perhaps you could define a good approximation to a family of shapes like that with a pair of rounded rectangles, for the inner and outer borders.

I have the code, but greg and the team thought it was better for a standalone package outside Flutter :(

Yeah, I'm just sad the more-useful Border wasn't approved :( This one is useful, but I don't think a lot of people would be as happy as the other change, specially the ones working with designers (most? lol).

@bernaferrari FYI, I see this border as a bit different than yours because it doesn't need to blend around the corners: it is about having disjointed sides, and not about having, say, a rounded rect with different thickness sides, where in the intersections is is harder to have nice transitions for all of the possible settings, even if some combinations can look quite nice.
It also is different in that it is something we need in order to implement some Material Design specs, so for that reason it needs to be in the Flutter repo itself instead of in a package. If it were just something nice we were adding, then it might very well belong in a separate package instead, just like yours.

Hi, this was very much needed. Thanks to all who contributed. I have a question. Can I use this to apply left,bottom and right borders while having 2 rounded corners? So basically a rounded rectangular shape without the top straight line?

@aytunch No, this doesn't support rounded corners.


[Bug]: Recursive Retriever drops TextNode objects

Bug Description
The recursive retriever iterates over the Nodes in the _query_retrieved_nodes method, however as currently implemented it drops any TextNodes and only queries the IndexNodes.
The relevant code is here: https://github.com/jerryjliu/llama_index/blob/fdf0d7ff194f6fc9c6ecb2c5a43e2c122a7e8dca/llama_index/retrievers/recursive_retriever.py#L78C1-L86C48
# dedup index nodes that reference same index id
new_nodes_with_score = []
for node_with_score in nodes_with_score:
    node = node_with_score.node
    if isinstance(node, IndexNode):
        if node.index_id not in visited_ids:
            visited_ids.add(node.index_id)
            new_nodes_with_score.append(node_with_score)
nodes_with_score = new_nodes_with_score

nodes_with_score is overwritten by the new_nodes_with_score list, which will only include IndexNode objects due to the if statement.
Version
0.8.29
Steps to Reproduce
Instantiate a RecursiveRetriever object which has both IndexNode and TextNode objects in the index and call retrieve.
Relevant Logs/Tracbacks
No response

This is not correct, the error is the code which appears before the line
for node_with_score in nodes_with_score:
The nodes_with_score list has all of the TextNodes filtered out.


feat: Add support for "Prefer Cross-Fade Transitions" into AccessibilityInfo

Summary
This PR adds prefersCrossFadeTransitions to AccessibilityInfo in other to add support for "Prefer Cross-Fade Transitions", exposing the iOS settings option as proposed here https://github.com/react-native-community/discussions-and-proposals/issues/.   452.
I believe this would be especially helpful for solving https://github.com/facebook/react-native/issues/31484
TODO

[ ]  Submit react-native-web PR updating AccessibilityInfo documentation.

Changelog
[iOS] [Added] - Add support for "Prefer Cross-Fade Transitions" into AccessibilityInfo
Test Plan
On iOS 14+

Access Settings > "General" > "Accessibility" > "Reduce Motion", enable "Reduce Motion" then enable "Prefer Cross-Fade Transitions".
Open the RNTester app and navigate to the Accessibility page

tracked on https://github.com/facebook/react-native/pull/ 34406


My account is falsly listed as a bot

Hi, my twitch account arctlco is listed as a bot, this may be because my account was hacked a few months ago.
Please remove it from your list, as I've been falsly banned from a ton of channels...

cat list.txt |grep arctlco
i dont see your name.  perhaps did you change your name?
if your changed your name it got removed
...but if you got hacked
arctlco	1,675	Fri, 18 Aug 2023 02:01:24 GMT

1675 channels in august 2023 is a lot...


Feature/dev 110 docker python3

Coverage decreased (-0.005%) to 87.652% when pulling 95e9e853f5ecbb032b89da0b79a388f5cd13cfc5 on feature/DEV-110-Docker-Python3 into 7d1e15faf81b919b9b17909fd3fd7c36d8de4698 on development.


Is it possible that when we define a kuberhealthy check (not the pod, just when we define the check), we can specify the volume mounts for the pod Kuberhealthy will create?

Hi @akarimWork could you expand a bit more on what you are looking to accomplish?  Are you looking to mount some type of persistent storage to the kuberhealthy checker pods?


adding some unit-testing and refactor the way we access authenticators

Fixes #573
Description
I couldn't find what could be causing the problem with the undefined endpoint. Anyway, a couple of unit tests were added to make sure that the endpoint is handled correctly inside the UAL script.
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have cleaned up the code in the areas my change touches
[x] My changes generate no new warnings
[x] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings
[x] I have removed any unnecessary console messages

seems good, just one comment about eslint


What "register" is mentioned?

"...the client loads the structure with values that indicate the preferred base address for the register"

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

ID: 1575acfe-5f19-453b-6e85-ae1fc70920c0
Version Independent ID: d6d8372a-2759-ddab-6932-1b97fa82c633
Content: KSPROPERTY_RTAUDIO_SETWRITEPACKET
Content Source: windows-driver-docs-pr/audio/ksproperty-rtaudio-setwritepacket.md
Product: windows-hardware
GitHub Login: @DOMARS
Microsoft Alias: windowsdriverdev

Thanks, @emuzychenko for pointing this out.
@DOMARS can you define the register or link to the topic that does?

Additionally, first link to KSRTAUDIO_SETWRITEPACKET_INFO points to KSRTAUDIO_HWREGISTER description. There are several RTAudio-related pages with such bug. Definitely, the person who created these pages, initially copied them from KSRTAUDIO_HWREGISTER page.

@emuzychenko - Thanks for catching this. The summary text was incorrect and was missed in review. The new summary reads:
Before sending the request, the client loads the structure with values that include the packet number, packet length and other information.
The link to KSRTAUDIO_SETWRITEPACKET_INFO is also fixed.
Thanks again for seeing these errors and help making our docs better.


Where is the rate-distortion optimization in the source code? (continued)

Hello,
I asked this question some time ago: "Where is the rate-distortion optimization in the source code?" https://github.com/cisco/openh264/issues/2635
but unfortunately it was closed before a full answer was given.
In which file can we find this SAD/SATD computation?
@huili2 : what do you call "MD criteria"?
Thanks in advance.

@thompon  sorry as I did not get reply in time, so I closed that one.
MD criteria is what "chooses the prediction mode" by its methodology. RDO is one key method with high computational complexity, thus it is not used for now. In Openh264, simpler SAD/SATD is used as criteria, in many files including ASM files. You can also find some example codes in sample.cpp like WelsSampleSatd16x16_c().
You may need read the code for more information as it is not concluded as one function.

ok. thank you very much.


Adds configuration for rabbitmq_shovel plugin including static shovels

This is a simple rebase and conflict-resolve of #211


[NO-TICKET] Add simple styling for docs

Description
Sync documentation styling with web-client-sdk and js-server-sdk
Motivation and Context
Unify project configuration

Proper documentation is no our roadmap. This is just placeholder for now.


Calendar scrolling to wrong month

How to reproduce :

Start example app
Switch to vertical mode
tap on top screen

Then calendar will move to start date (1970 in my case)

here solutions  http://stackoverflow.com/questions/8951357/uitableview-scroll-to-top-when-tapping-status-bar-at-top-of-the-screen

Hi there:
This post metions that 'scroll to top' when tapping statusbar is an 'expected' behavior. I didn't see there is anything wrong in this case.

OK, I think scrollToTop shouldn't be a feature for a calendar. I'll fix it.

Done,https://github.com/f33chobits/FSCalendar/commit/12b08b0e40fa04525715abe4f6c81469c96d4357


[Blocking][jvm-packages] fix the early stopping feature

added direction parameter and also fix the judge criterion
closes https://github.com/dmlc/xgboost/issues/3631
closes https://github.com/dmlc/xgboost/issues/3140

also @yanboliang , can you take a look?

BTW, do we need to port metrics_expected_direction to python xgboost?

@yanboliang Python XGBoost already has a list of metrics to be maximized:
https://github.com/dmlc/xgboost/blob/3564b68b988c373bb5a01812471e3f37a50ccd3c/python-package/xgboost/callback.py#L191-L201

Can I suggest that we make early stopping a policy-based API with some sort of callback? So instead of just a count and a direction, we supply an object which receives the metrics up to the current round, and whatever other information might be useful, and we have a default implementation that is just the normal early stopping after X rounds without increase/decrease. I ask because I suspect there might be circumstances where you care about more than just an absolute number of rounds, or you might for efficiency reasons want to stop training even while still decreasing, just because the returns appear to be diminishing. Externalising the decision and making it configurable would future-proof the API somewhat.
So, just something like IStopping with boolean shouldStopAfter(float[][] metrics) in the simplest case, but arguments could be made for more context. Making these objects stateful across training runs also simplifies the logic in the early stopping case, as you can just maintain the min/max as you go, and a count of how long ago it was.

@deepxg it's a good suggestion. However, I think it is out of the scope of this PR:

0.81 (the coming version) is a minor release version so it should not have break changes of previous API

and the current implementation is to keep consistent with all other language bindings...

we might evaluate and work on your suggestion in a more comprehensive way which covers all language bindings in the coming releases

@yanboliang ping for review?

I think @deepxg have a good point, we should consider it in the roadmap. Thanks.


[FEATURE] Resources created in state index and de-provisioning mapping

Is your feature request related to a problem?
Right now we have a resources created field in the state index but there are a few ways on how we want to store this information.
What solution would you like?
We can either map the ID of what was created to the type/name of the workflow step that created it or to the object name itself.
Option 1 [Preferred]:
"resources_created": [
        {
            "type": "create_index_step",
            "id": "FobagIsBjjuFSw4Sfl3c"
        },
        {
            "type": "register_model",
            "id": "FobagIsBjjuFSw4Sfl3c"
        }
    ]

Option 2:
"resources_created": [
       {
           "type": "index",
           "id": "FobagIsBjjuFSw4Sfl3c"
       },
       {
           "type": "model",
           "id": "FobagIsBjjuFSw4Sfl3c"
       }
   ]

I think it makes sense to map the created objected to the step that created it, in order to avoid adding another category of things like model/index/agent.
However two things we need to consider are:

The order of the created objects in terms of de-provisioning order. Especially if some things depend on each other. For example do we need to delete the agent first before deleting the model that uses it. We can also potentially get this order from the use case template's nodes and edges themselves and delete in reverse order.

How will we map each workflow step that created the resources to the workflow step that deletes the resources. We should probably have a way to match the create request to the equivalent delete request when we add workflow nodes/steps.

There could be a global delete map that looks something like this, this would be however another thing to maintain when adding new steps:
create_api:delete_api
 "deletion_map": {
            "create_index_step": "delete_index_step",
            "register_model": "delete_model",
        },

Current Solution:
"resources_created": [
        {
            "workflow_step_name": "create_connector",
            "resource_id": "fZTmz4sBVvQ80zEwkC2z"
        }
    ]

Additional Context
Right now we have some implementation of updating the resources created field in CreateConnectorStep. We should decide if we want to add more information here by fetching the resource name from some enum.
Additionally we can abstract the method in CreateConnectorStep to be used by all steps easily as mentioned in this comment: https://github.com/opensearch-project/opensearch-ai-flow-framework/pull/148#discussion_r1393484371

The order of the created objects in terms of de-provisioning order. Especially if some things depend on each other. For example do we need to delete the agent first before deleting the model that uses it. We can also potentially get this order from the use case template's nodes and edges themselves and delete in reverse order.

Just a thought, if we rely on the deprovision API to ascertain the order of deletion from the nodes and edges provided by the use case template, then we'll probably need to include the workflow step id to the resources created along with the workflow step type. This would allow us to determine which specific step is responsible for creating the resource, and then determine what order this step appears in the graph. I think this would be helpful in cases where we have multiple instances of the same step type.
Perhaps something like this :
"resources_created": [
        {
            "workflow_step_id" : "workflow_step_1",
            "workflow_step_type": "create_index_step",
            "id": "FobagIsBjjuFSw4Sfl3c"
        },
        {
            "workflow_step_id" : "workflow_step_2",
            "workflow_step_type": "register_model_step",
            "id": "FobagIsBjjuFSw4Sfl3c"
        }
    ]

A few thoughts here:

I think trying to recreate the workflow step in reverse order is over-complicating things:

not all steps will create a resource
all we really want to do is delete all of them
unless the DELETE API fails on a dependency then order won't matter (follow up Q: do any DELETE APIs fail?)

More information is better, again the goal is to eventually call a DELETE API
Conceptually speaking you can think that each workflow node that creates a resource has an imaginary "delete node" following it that can take its output as input and do its job. e.g., "CreateIndexStep" should have a corresponding "DeleteIndexStep"
So I wonder if we can't just create a "delete workflow template" on-the-fly as we're creating the resources.  When I call CreateIndexStep, then a DeleteIndexStep gets added to the deletion template.   When I create an Agent, the DeleteAgent step gets added to the deletion template.   We can add the nodes sequentially in the forward direction (order doesn't matter in JSON) but add the edges to set the predecessors in the opposite direction.

WDYT?

I think it is important to be transparent to the user regarding what this plugin will be creating behind the scenes when the user creates a workflow. This is critical for users to know what is going on and to keep track of how the different resources are connected and interacting with one another, as well as what the implications are should they choose to de-provision it.
I think it is almost equally important to show the associated resources, regardless of if they were created from provision, or just hooking up some existing resource. For example, a user may re-purpose some knn index, or external model connector. It would still be useful to provide that information so the user understands the impacts when those resources change or be deleted, it may cause problems with the workflow (not feasible to dynamically warn the user, but by statically providing the associated resources, it gives the user more transparency).
Perhaps we have 2 categories of resources within the state index:

Created resources - created via provision, will be deleted when de-provisioning
Associated resources - created externally and just used within the workflow somewhere, won't be deleted when de-provisioning.

This allows us to both 1/ show everything (created from or just associated with) a workflow, and 2/ have validation logic when de-provisioning to let users be aware of what will be deleted should they proceed

Perhaps we have 2 categories of resources within the state index:
Created resources - created via provision, will be deleted when de-provisioning
Associated resources - created externally and just used within the workflow somewhere, won't be deleted when de-provisioning.

Maybe these could be configured within the step type itself - e.g., create connector step would have a connector created resource tied to it somehow, query index step would have a knn index associated resource tied to it somehow

Do you suggest having something like adding a variable to each step that highlights the resource it creates (create_connector -> connector) (register_model -> model) and so on?

Perhaps we have 2 categories of resources within the state index:
Created resources - created via provision, will be deleted when de-provisioning
Associated resources - created externally and just used within the workflow somewhere, won't be deleted when de-provisioning.

Maybe these could be configured within the step type itself - e.g., create connector step would have a connector created resource tied to it somehow, query index step would have a knn index associated resource tied to it somehow

Do you suggest having something like adding a variable to each step that highlights the resource it creates (create_connector -> connector) (register_model -> model) and so on?

Either the resource it creates or an associated resource if it is just utilizing some existing one.

A few thoughts here:

I think trying to recreate the workflow step in reverse order is over-complicating things:

not all steps will create a resource
all we really want to do is delete all of them
unless the DELETE API fails on a dependency then order won't matter (follow up Q: do any DELETE APIs fail?)

There could be cases where we can't delete a model because some agent is using it (not 100% sure on current API response in those cases but its possible. Also for example if you delete a running detector before stopping it, it will fail, so you have to have some order of stopping then deleting). Keeping some order of deletion could be helpful so we don't have to think about edge cases, but not an absolute must if we can handle those separately.

More information is better, again the goal is to eventually call a DELETE API
Conceptually speaking you can think that each workflow node that creates a resource has an imaginary "delete node" following it that can take its output as input and do its job. e.g., "CreateIndexStep" should have a corresponding "DeleteIndexStep"
So I wonder if we can't just create a "delete workflow template" on-the-fly as we're creating the resources.  When I call CreateIndexStep, then a DeleteIndexStep gets added to the deletion template.   When I create an Agent, the DeleteAgent step gets added to the deletion template.   We can add the nodes sequentially in the forward direction (order doesn't matter in JSON) but add the edges to set the predecessors in the opposite direction.

WDYT?

Making some internal deletion template makes sense to me so we keep an order of what we want to delete, for adding more detail like you mention we might want to add some variable in each step with the resource name. so its easy for the user to understand and read connector like Tyler mentions above vs just create_connector_step

Perhaps we have 2 categories of resources within the state index:
Created resources - created via provision, will be deleted when de-provisioning
Associated resources - created externally and just used within the workflow somewhere, won't be deleted when de-provisioning.

Maybe these could be configured within the step type itself - e.g., create connector step would have a connector created resource tied to it somehow, query index step would have a knn index associated resource tied to it somehow

Do you suggest having something like adding a variable to each step that highlights the resource it creates (create_connector -> connector) (register_model -> model) and so on?

Either the resource it creates or an associated resource if it is just utilizing some existing one.

I am okay with that, just wanted to keep to the tenant of as little work as possible for onboarding new steps, this is super small though so probably not a big deal, just meant the less domain knowledge we need to add on each new step is the best but adding a variable for the resource name is very low effort if thats what we go with

Perhaps we have 2 categories of resources within the state index:
Created resources - created via provision, will be deleted when de-provisioning
Associated resources - created externally and just used within the workflow somewhere, won't be deleted when de-provisioning.

Maybe these could be configured within the step type itself - e.g., create connector step would have a connector created resource tied to it somehow, query index step would have a knn index associated resource tied to it somehow

Do you suggest having something like adding a variable to each step that highlights the resource it creates (create_connector -> connector) (register_model -> model) and so on?

Either the resource it creates or an associated resource if it is just utilizing some existing one.

I am okay with that, just wanted to keep to the tenant of as little work as possible for onboarding new steps, this is super small though so probably not a big deal, just meant the less domain knowledge we need to add on each new step is the best but adding a variable for the resource name is very low effort if thats what we go with

Understood - I think its reasonable that for any new steps onboarded, adding resource-related details (if applicable) is a requirement. I still think separating into 2 parts (created or just associated) will be needed, or at least some way to discern the two so the de-provision / delete APIs can work as expected.

In terms of having another id in the resources_created field, I think we are over complicating the API response her. We can simply add the response receive and the same response which we are storing in the WorkflowData here.
So, the status API should return
"resources_created": [
        {
            "type": "create_index_step",
            "index_name": "xyz"
        },
        {
            "type": "register_model",
            "model_id": "abc",
            "model_status": "CREATED"
        }
    ]

We already have a workflowID to map the resources created for that specific provisioning and user can use the same to retrieve the information.

@amitgalitz In terms of having another id in the resources_created field, I think we are over complicating the API response here. We can simply add the response received and the same response which we are storing in the WorkflowData here.
So, the status API should return
"resources_created": [
        {
            "type": "create_index_step",
            "index_name": "xyz"
        },
        {
            "type": "register_model",
            "model_id": "abc",
            "model_status": "CREATED"
        }
    ]

We already have a workflowID to map the resources created for that specific provisioning and user can use the same to retrieve the information.

Are you okay with doing something like:
We can do something like you mentioned I just think its always easier to query an index and parse an API response when the key's are constant and not different for every item in the array.
thoughts @ohltyler @dbwiddis @owaiskazi19 ?
"resources_created": [
        {
            "workflow_step_name": "register_model",
            "resource_name": "model_id",
            "id": "L85p1IsBbfF"
        }
    ]

@amitgalitz In terms of having another id in the resources_created field, I think we are over complicating the API response here. We can simply add the response received and the same response which we are storing in the WorkflowData here.
So, the status API should return
"resources_created": [
        {
            "type": "create_index_step",
            "index_name": "xyz"
        },
        {
            "type": "register_model",
            "model_id": "abc",
            "model_status": "CREATED"
        }
    ]

We already have a workflowID to map the resources created for that specific provisioning and user can use the same to retrieve the information.

Are you okay with doing something like: We can do something like you mentioned I just think its always easier to query an index and parse an API response when the key's are constant and not different for every item in the array. thoughts @ohltyler @dbwiddis @owaiskazi19 ?
"resources_created": [
        {
            "workflow_step_name": "register_model",
            "resource_name": "model_id",
            "id": "L85p1IsBbfF"
        }
    ]

We can just query the resources_created field to get all the responses of the provisioning field.

No strong opinion on that part. My only suggestion is we need a separate field in the state index to persist associated resources - ones not created from provision, but associated with some existing resource.
I think however we are generating the resources_created field, we can do the same for a resources_associated field. WDYT?

Are you okay with doing something like:
"resources_created": [
        {
            "workflow_step_name": "register_model",
            "resource_name": "model_id",
            "id": "L85p1IsBbfF"
        }
    ]

I'll say yes in general, as I need two pieces of information to properly deprovision these resources:

the type of resource
the id of the resource

It's nice to have the step that created it as well.
Might need another entry for "dependent resource" such as if the model ID is associated with a connector, I need to delete the model first and then the connector (I think?).
For the specific example with a model_id, I'm not sure that's the correct resource name/type.  Is it a connector-based model ID?  Local? Remote?
More information is better.

After some additional conversation the current solution I'll go ahead with is having a mapping more similar to what @owaiskazi19 suggested:
The first key will be the workflow_step_name and the second will be the resource_type that was created.
I do agree about potentially having associated resources as a separate field and dependent resources but this wont be apart of the first implemented solution.
"resources_created": [
        "create_index_step": {
            "index_name": "xyz"
        },
        "register_model": {
            "model_id": "abc",
        }
    ]

@amitgalitz I think this can probably be closed given work in #231 and related PRs.  I know we are still considering adding a timestamp for creation time but otherwise the existing implementation is sufficient.


it's great. The new tutorial have come. Express the highest respect for those who work hard. as you ...

it's great. The new tutorial have come. Express the highest respect for those who work hard. as you ...

thanks


Incompatible with Optifabric

latest.log
Not compatible with Optifabric

kyrptconfig 1.4.6-1.19 via cmdkeybind
...
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector spoofDisplayOnlyKeyBinds(Lnet/minecraft/class_304;)Ljava/lang/String; in net.kyrptonaught.kyrptconfig.json:displaykeybind.GameOptionsMixin from mod kyrptconfig failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap kyrptconfig-refmap.json

I can second this. Happening to me too with cmdkeybind-1.5.4-1.19 and optifabric-1.13.5/OptiFine_1.19_HD_U_H8. Have not been able to find a fix.

i can third this. the 2 mods cant be launched together.

i dont mean to rush but is this issue being worked on?

I am taking a look at it. Unfortunately optifine is a horribly invasive mod and is great at making other mod developer's lives miserable. I can't even find a way to look at their source code accurately. They're using a different patching system other than mixin,
I have keybindings that I don't want to save to the options.txt file. I have a mixin to prevent this. The crash is from my mixin failing to work. Why? Something involving the options saving has been completely flipped by optifine, What is it? No idea, can't read the source code.

I got it, semi painful. Here is a test build. This does have some new features not present in 1.5.4
cmdkeybind-1.6.0-1.19 PRERELEASE.zip
.

I got it, semi painful. Here is a test build. This does have some new features not present in 1.5.4. This may crash with some of my other mods cmdkeybind-1.6.0-1.19 PRERELEASE.zip

Thx for update this works.


More error information for: type '_SyncIterable' is not a subtype of type 'List'

I received an error which directed me to open an issue so the team can provide 'substantially more information in this error message', even though I discovered what the error was:
Performing hot reload...
Syncing files to device Android SDK built for x86...

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following assertion was thrown building SearchPage(dirty, dependencies: [_LocalizationsScope-[GlobalKey#46f5f], _InheritedTheme], state: _SearchPageState#9ce6a):
type '_SyncIterable<Widget>' is not a subtype of type 'List<Widget>'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=BUG.md

The relevant error-causing widget was:
  SearchPage file:///C:/AndroidStudioProjects/cjk_dict/lib/main.dart:13:13
When the exception was thrown, this was the stack:
#0      _SearchPageState.build (package:cjkdict/main.dart:62:28)
#1      StatefulElement.build (package:flutter/src/widgets/framework.dart:4334:27)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
#3      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
#4      StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
Reloaded 1 of 478 libraries in 1,580ms.

The error was a missing .toList() call after the closing bracket of ListTile.divideTiles(). I received the same error with a longer stack trace when rebuilding the app with the title text shown as an error on the emulator screen.
A simplified version of my code that produced the error is below:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SearchPage(),
    );
  }
}

class SearchPage extends StatefulWidget {
  @override
  _SearchPageState createState() => _SearchPageState();
}

class _SearchPageState extends State<SearchPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: TextFormField(
          decoration: const InputDecoration(
            icon: Icon(
              Icons.search,
            ),
            hintText: '汉字, romanization, english...',
          ),
        ),
      ),
      body: ListView(
        children: ListTile.divideTiles(
          context: context,
          tiles: [
            ListTile(
              title: Row(
                children: <Widget>[
                  RichText(
                    text: TextSpan(
                      children: <TextSpan>[
                        TextSpan(
                          text: '汉',
                        ),
                        TextSpan(
                          text: '字',
                        ),
                      ],
                    ),
                  ),
                  SizedBox(
                    width: 16.0,
                  ),
                  Expanded(
                    child: Text('Han Zi / kanji / hanja'),
                  ),
                ],
              ),
              subtitle: Text(
                  'Chinese: ・chinese character(s)\nJapanese: ・chinese character writing system'),
            ),
          ],
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.18.0-12.0.pre, on Mac OS X 10.15.4 19E287, locale en-GB)
    • Flutter version 1.18.0-12.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision c2b7342ca4 (21 hours ago), 2020-05-06 23:16:03 +0800
    • Engine revision 33d2367950
    • Dart version 2.9.0 (build 2.9.0-5.0.dev 9c94f08410)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4.1, Build version 11E503a
    • CocoaPods version 1.9.1

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

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

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

[✓] Connected device (5 available)
    • SM M305F      • 32003c30dc19668f          • android-arm64  • Android 10 (API 29)
    • Taha’s iPhone • 00008020-001059882212002E • ios            • iOS 13.4.1
    • macOS         • macOS                     • darwin-x64     • Mac OS X 10.15.4 19E287
    • Web Server    • web-server                • web-javascript • Flutter Tools
    • Chrome        • chrome                    • web-javascript • Google Chrome 81.0.4044.138

• No issues found!

The error was a missing .toList() call after the closing bracket of ListTile.divideTiles(). I received the same error with a longer stack trace when rebuilding the app with the title text shown as an error on the emulator screen.

This is a user error and not an issue with Flutter, see https://api.flutter.dev/flutter/material/ListTile/divideTiles.html

I realize this is a user error, but according to the error message itself the error thrown needs to be made more descriptive. Should it perhaps be reopened as an enhancement request?


An error appears in the console when opening and closing the grouping panel

Description
Console error with text "e.component._onPanelDone is not a function" there is when grouping panel is opened/closed in any list that has a grouping panel
Steps

Go to any section where the list has a grouping panel
Open grouping panel / closed grouping panel

Actual result:
An error appears in the console
Expected result:
The error does not appear in the console
Environment

Browser:
- [ ] Chrome version XX
- [ ] Firefox version XX
- [ ] Safari version XX
- [ ] IE version XX
- [ ] Edge version XX

Others:

Connected feature ID
vm_list_groupby, storage_list_groupby, volsnapshot_list_groupby, image_list_groupby, firewall_rules_view_groupby, sshkey_list_groupby, account_list_groupby
Screenshot

To test:
vm_list_groupby, storage_list_groupby, volsnapshot_list_groupby, image_list_groupby, firewall_rules_view_groupby, sshkey_list_groupby, account_list_groupby


ui_layout_system removal detection fix

Objective
If a Node component is removed from a UI node entity and then reinserted before ui_layout_system runs again, it will be deleted from UiSurface when the remove_entities method is called. But then subsequent queries will still find the UI node's components and ui_layout_system will try to retrieve the deleted taffy node from the entity_to_taffy map and panic.
Example that panics on set_window_children:
use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());
    commands
        .spawn(NodeBundle::default())
        .remove::<Node>()
        .insert(Node::default());
}

Also since RemovedComponents events aren't retained and the UI doesn't update without a window, deleted nodes will not be cleaned up even once a new window is opened.
There are similar issues with the ContentSize and Children removal detection.
Solution
Do the removal detection and clean up first, before any other updates.

This is ready now, the children update just needed to run after upsert_nodes because other it would try to update children for parents who weren't yet added to the taffy tree.

closed in favour of #9772


fix sort compare function in strategies

i am use mongoose 3.8.23 (a old version) the related mongodb native is "1.4.28".
we have 10host replset mongodb, whatever strategy we use the load is extremely un-balance.
after we dig in, we find the sort compare function return a boolean not a number so it will result in unsorted after call sort
e.g
b= [1,2,10,3,78,8,90,11,3,20,7,4,2]
b.sort(function(x,y){return x>y})
// b = [ 90,1,11,2,2,3,3,4,7,8,10,20,78]

after fix that the load is balanced to DBs.
But i can not found the 1.x.x related branch, and there is no  strategies in 2.x.x
so i do PR in this branch.
if there are some proper place to do the PR just let me know.

you want to merge against the master branch.

@christkv  Thanks you will do it on master branch


Update .d.ts definitions

Working on the new way of reporting errors I realized, that peg.d.ts is not true. It contains several definitions that was never exist and has a lack of types, that I plan update in my new PR.
So I decided to fix definitions first. This lead to some uncompatible changes in the GrammarError definition, but, judging that fact that it was incorrect, nobody could use it. So we can do that uncompatible change, because that is a bug fix

I'm happy to take this as a stopgap, but we have a working typescript pass in the build now, which generates .d.ts files then throws them away.  I'd like to turn on type checking, then use the output of typescript if we can get it compatible-enough with what we've had in the past.

We also need a way to test this file, at least for syntax.  Maybe we should add a .ts file to the examples directory?

I doubt that automatic inferring could infer that:
https://github.com/peggyjs/peggy/blob/f5fca4e00257f2350bda201690bde7fabb234215/lib/peg.d.ts#L478-L497
That code proves that you can do only that things:
let visit = visitor.build({
  simple_and() { return 1;  },
  simple_not() { return ""; },

  // no error, but this is because that method can be used by other methods
  not_exist1() { return false; },
});
let res1 = visit({ type: "simple_and" });// res1 type is a number - inferred from "simple_and"
let res2 = visit({ type: "simple_not" });// res2 type is a string - inferred from "simple_not"
let res3 = visit({ type: "not_exist2" });// error: unknown node type

Simplified example on typescript playground (strange, but it reports errors that my tsc (version=4.2.4) do not complained. Easy fixable, although)

I performing tests by changing tsconfig.json and by checking what SonarLint VSCode plugin shows me as types of imported peggy library (I imagine that I'm write a plugin for peggy):
 tsconfig.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tsconfig.json b/tsconfig.json
index fe8a4420..3f17e71e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,7 +4,7 @@
     "module": "commonjs",                           /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
     // "lib": [],                                   /* Specify library files to be included in the compilation. */
     "allowJs": true,                                /* Allow javascript files to be compiled. */
-    "checkJs": false,                               /* Report errors in .js files. */
+    "checkJs": true,                                /* Report errors in .js files. */
     // "jsx": "preserve",                           /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
     "declaration": true,                            /* Generates corresponding '.d.ts' file. */
     "declarationMap": false,                         /* Generates a sourcemap for each corresponding '.d.ts' file. */
@@ -14,8 +14,8 @@
     "removeComments": true,                         /* Do not emit comments to output. */

   /* over time we will enable these */
-    // "strict": true,                              /* Enable all strict type-checking options. */
-    // "noImplicitAny": true,                       /* Raise error on expressions and declarations with an implied 'any' type. */
+    "strict": true,                                 /* Enable all strict type-checking options. */
+    "noImplicitAny": false,                         /* Raise error on expressions and declarations with an implied 'any' type. */
     // "strictNullChecks": true,                    /* Enable strict null checks. */
     // "strictFunctionTypes": true,                 /* Enable strict checking of function types. */
     // "strictBindCallApply": true,                 /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
@@ -34,5 +34,5 @@
     "skipLibCheck": true,                           /* Skip type checking of declaration files. */
     "forceConsistentCasingInFileNames": true        /* Disallow inconsistently-cased references to the same file. */
   },
-  "include": ["./lib/**/*.js", "./test/**/*.spec.js", "./benchmark/*.js"]
+  "include": ["./lib/**/*.js"]
 }

Making tests will be a good idea, but I still have no idea where to start. Opinions?

Updated TS Playground link which I think does what you want

I think that this one is better to merge first

I've rebased, fix one minor thing from the previous PR (the first commit) so final review is expected.

I'm adding a few tests using dts-jest that can land after this.  One thing I've found so far is that generate('string') returns any instead of a Parser


Issue with multidimensional array

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
This is good:
PS> $test=@{ 'A' = @( @("Text 1", "Text 2"), @("Check 1", "Check 2") ) }
PS> foreach ($key in $test.Keys) { foreach ($item in ($test[$key])) { "Test $($key) with item: $($item[0]) $($item[1])" } }
Test A with item: Text 1 Text 2
Test A with item: Check 1 Check 2
But with only one element into the first level array:
PS> $test=@{ 'A' = @( @("Text 1", "Text 2") ) }
PS> foreach ($key in $test.Keys) { foreach ($item in ($test[$key])) { "Test $($key) with item: $($item[0]) $($item[1])" } }
Test A with item: T e
Test A with item: T e
Expected behavior
PS> $test=@{ 'A' = @( @("Text 1", "Text 2") ) }
PS> foreach ($key in $test.Keys) { foreach ($item in ($test[$key])) { "Test $($key) with item: $($item[0]) $($item[1])" } }
Test A with item: Text 1 Text 2

Actual behavior
PS> $test=@{ 'A' = @( @("Text 1", "Text 2") ) }
PS> foreach ($key in $test.Keys) { foreach ($item in ($test[$key])) { "Test $($key) with item: $($item[0]) $($item[1])" } }
Test A with item: T e
Test A with item: T e

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      7.2.1
PSEdition                      Core
GitCommitId                    7.2.1
OS                             Microsoft Windows 10.0.22000
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

The @() syntax only ensures that it's contents are in an array. If it's contents are already in an array, it will do nothing.
In this scenario you want a unary comma:
$test=@{ 'A' = ,@("Text 1", "Text 2") }
foreach ($key in $test.Keys) {
    foreach ($item in ($test[$key])) {
        "Test $($key) with item: $($item[0]) $($item[1])"
    }
}


New RStudio Version (2022.07.0) Breaks --ds-tab-gradient-dark on MacOS

Hi Riley,
Using RStudio 2022.02.0, --ds-tab-gradient-dark works as expected:

However, on the latest build (2022.07.0, and possibly earlier builds) this behavior changes:

I guess they must've swapped something only in the Mac version of RStudio because the Windows version on the latest build works fine - I haven't tried Linux.
Thanks for the cool work!

I mistook it for --ds-tab-gradient-light before, it's actually --ds-tab-gradient-dark and is fixed easily by adding .GND-IWGDKS to the following section in the css file:
/* Source editor tab overflow gradient */
.rstudio-themes-flat
  .rstudio-themes-dark-grey
  :-webkit-any(.GGBOEFPDDS, .GD15MCFCCS, .GCHYANPCES, .GEL-OVUBOR, .GND-IWGDKS) {
  background: var(--ds-tab-gradient-dark) !important;
}

@grcatlin I'll get this fixed, thanks for the help. Most of RStudio's css is generated by GWT, and the styled gradients often break with updates.


Is there nested menu support?

❔ Question
I've been looking for nested menu support both in Spectrum and Aria. No mentions found.
🔦 Context
Nested menus are as necessary as nested lists.

The foundation is present: https://react-spectrum.adobe.com/react-stately/useTreeData.html
So theoretically is possible.

hi @osequi, nested menus are not supported yet, but it's something we absolutely plan to address down the line

hi, any news on nested menus? 😃

Hi guys, same question. Maybe someone can suggest at least a temporary workaround for this? It feels like its possible to use useTreeState for this, as it has an "expanded" keys collection. Is there a particular blocker why I won't be able to implement this using current functionality, even if it's not supported out of the box?

Any update on this?

Apologies about the delayed response, the team still hasn't picked up nested menus due to other component priorities. We're are also still waiting on some additional design/a11y support for certain facets of nested menu items. I honestly can't say whether or not useTreeState would be sufficient for an implementation of nest menus without trying it myself (my gut feeling is that it should be enough though).
For now you can reference https://github.com/adobe/react-spectrum/projects/1 to see what the team is currently working on.

Looks like @LFDanLu is currently working on nested menus. 🎉
https://github.com/orgs/adobe/projects/19/views/4?pane=issue&itemId=21692197

Hey, any updated on this?

Yep, you can follow the PRs
https://github.com/adobe/react-spectrum/pull/5415
https://github.com/adobe/react-spectrum/pull/4976
they are getting to be close :)


Remove setting of feedback overlap

Note that I've also switch logging from verbose to basic, since that seems more appropriate for production.


how to receive calls when app is close or background?

hello @shivanshtalwar0
I have implemented the Janus plugin for the audio and video call feature. All the feature is working fine but I want to add one more feature when the application is closed or the background incoming call is not working what I do. have you implemented anything else for this.

Well this is something you have to implement with the help of callkeep this project is merely a package that offers connectivity to janus server and apis to help you implement its plugin functionalities


Consider using true consistent hashring impl in Receive

I just noticed that our receive hashring was never... hashring (:
Our mod hash is quite naive and has problems to shard our data when changes occur. Every time new replica is added or removed series shards are jumping across replicas. IF we want more dynamic system we need to fix this.
cc @spaparaju @squat @jmichalek132  @onprem
AC:

Use some hashring implementation (e.g https://github.com/serialx/hashring) to fix this.

Read more about the problem here: https://www.toptal.com/big-data/consistent-hashing
The key challenge is how to distribute hashring without key value store. I assume we can do it using our https://github.com/observatorium/thanos-receive-controller
PS: Once we fix this we could play with different thanos-receive-controller semantics: We could reshape hashring on every pod restart with little impact!

Just to for correctness: our hashring is a hashring, however it's not a consistent hashring! I totally support this; it's one of the main improvements I suggested during last year's Thanos Receiver kubecon talk. This would be a big help to help us horizontally scale receiver sets without having metrics bounce around everywhere.

Hm, I don't think module hash can be called hashing, but nevertheless, I think we are on the same page! (((:

PS: Once we fix this we could play with different thanos-receive-controller semantics: We could reshape hashring on every pod restart with little impact!

Hi guys! I can improve this module. I have recently developed an efficient infrastructure with hash rings.  Even there are several research papers on the same.
My basic approach would be

Use xxhash (extremely fast) to encode the entities (server-id/name) for buckets (analogy of servers in a cluster) by pivoting them in a circle with the necessary replication factor and routing the balls (entities that we want to route ). The hashing implementation that we can leverage is https://ai.googleblog.com/2017/04/consistent-hashing-with-bounded-loads.html

Our mod hash is quite naive and has problems to shard our data when changes occur. Every time new replica is added or removed series shards are jumping across replicas.

This type of load rebalancing takes a lot of memory. I know the right tool to mitigate the issue. introducing jump consistent hashing. https://arxiv.org/pdf/1406.2294.pdf

I am looking forward to working on this project for GSoC 2022. I am new in thanos : ) With the right guidance from you guys, I am sure that I can pull it off.
What do you think about the small fragment of the proposal that I just proposed? Please do let me know. Thank you!

+1 for @bisakhmondal's idea. Using xxhash seems like a good choice.
I personally don't know @bisakhmondal, but I believe they can be a suitable contributor for this idea.

Sounds promising (: Make to apply through GSoC website.

Hi all. I am Excel, and I im interested in contributing to this project for GSoC '22. I have joined the community, and have been looking into Thanos too. I am thinking of attending the event that was posted on the community to get up to speed with Thanos  general.
Is this alright? And are there any prerequisites I need to complete to increase my chances, or to write a good proposal? Thank you!


ros_comm: 1.12.15-1 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository ros_comm to 1.12.15-1:

upstream repository: git@github.com:ros/ros_comm.git
release repository: https://github.com/ros-gbp/ros_comm-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.9.7
previous version for package: 1.12.14-0

message_filters
* add 'template' to resolve compile error (#1685 <https://github.com/ros/ros_comm/issues/1685>)

ros_comm

No changes

rosbag
* fix roslib not being imported (#1818 <https://github.com/ros/ros_comm/issues/1818>)
* remove deadcode (#1786 <https://github.com/ros/ros_comm/issues/1786>)
* record: fix signed int overflow (#1741 <https://github.com/ros/ros_comm/issues/1741>)
* fix topic message count for rosbag indexed v1.2 (#1648 <https://github.com/ros/ros_comm/issues/1648>)
* fix wrong error handling in migration. (#1639 <https://github.com/ros/ros_comm/issues/1639>)
* fix waitForSubscribers hanging with simtime (#1543 <https://github.com/ros/ros_comm/issues/1543>)

rosbag_storage
* fix brief description comments after members (#1920 <https://github.com/ros/ros_comm/issues/1920>)
* check for fclose returning 0 in rosbag_storage (#1750 <https://github.com/ros/ros_comm/issues/1750>)
* fix infinite loop in rosbag buffer resize (#1623 <https://github.com/ros/ros_comm/issues/1623>)
* add rosbag::Bag::isOpen (#1190 <https://github.com/ros/ros_comm/issues/1190>) (#1789 <https://github.com/ros/ros_comm/issues/1789>)

rosconsole
* don't use 0 as null pointer in macros (#1730 <https://github.com/ros/ros_comm/issues/1730>)

roscpp
* close sockets when server responds with HTTP/1.0 (#1284 <https://github.com/ros/ros_comm/issues/1284>)
* fix a bug that using a destroyed connection object (#1950 <https://github.com/ros/ros_comm/issues/1950>)
* remove extra n in ROS_DEBUG (#1925 <https://github.com/ros/ros_comm/issues/1925>)
* do not display error message if poll yields EINTR (#1868 <https://github.com/ros/ros_comm/issues/1868>)
* TransportTCP: Allow socket() to return 0 (#1707 <https://github.com/ros/ros_comm/issues/1707>)
* add Timer::isValid() const (#1779 <https://github.com/ros/ros_comm/issues/1779>)
* transport_tcp: enable poll event POLLRDHUP to detect dead (#1704 <https://github.com/ros/ros_comm/issues/1704>)
* unregisterService returns result of execute("unregisterService") (#1751 <https://github.com/ros/ros_comm/issues/1751>)
* fix string check (#1771 <https://github.com/ros/ros_comm/issues/1771>)
* resolve memory leak (#1503 <https://github.com/ros/ros_comm/issues/1503>)
* fix Exception boost::lock_error thrown from shutdown method (#1656 <https://github.com/ros/ros_comm/issues/1656>)
* TopicManager: avoid deadlock (#1645 <https://github.com/ros/ros_comm/issues/1645>)
* service: use WallTime/WallDuration for waiting (#1638 <https://github.com/ros/ros_comm/issues/1638>)
* fix bug in statistics decision making if one should publish (#1625 <https://github.com/ros/ros_comm/issues/1625>)
* fix race due unprotected access to callbacks_ in roscpp client (#1595 <https://github.com/ros/ros_comm/issues/1595>)
* remove nullptr access from Timer().hasStarted() (#1541 <https://github.com/ros/ros_comm/issues/1541>)
* add const specifier to NodeHandle::param(param_name, default_val). (#1539 <https://github.com/ros/ros_comm/issues/1539>)
* fix stamp_age_mean overflow when stamp age very big (#1526 <https://github.com/ros/ros_comm/issues/1526>)
* use an internal implementation of boost::condition_variable with monotonic clock [kinetic-devel] (#2011 <https://github.com/ros/ros_comm/issues/2011>)
* fix compiler warnings about unused variables (#1428 <https://github.com/ros/ros_comm/issues/1428>) (#1576 <https://github.com/ros/ros_comm/issues/1576>)

rosgraph

No changes

roslaunch
* fix NameError in launch error handling (#1965 <https://github.com/ros/ros_comm/issues/1965>)
* allow empty ssh password for remote launching (#1826 <https://github.com/ros/ros_comm/issues/1826>)
* fix missing args (#1733 <https://github.com/ros/ros_comm/issues/1733>)
* fix $(dirname) for roslaunch-check. (#1624 <https://github.com/ros/ros_comm/issues/1624>)
* make roslaunch-check respect arg remappings with command line argument (#1653 <https://github.com/ros/ros_comm/issues/1653>)
* respawn if process died while checking should_respawn() (#1590 <https://github.com/ros/ros_comm/issues/1590>)
* normalize strings to utf-8 before setting as environment variable (#1593 <https://github.com/ros/ros_comm/issues/1593>)
* exclude unused args check if pass_all_args is set (#1520 <https://github.com/ros/ros_comm/issues/1520>)

roslz4
* check for XXH_malloc NULL return (#1778 <https://github.com/ros/ros_comm/issues/1778>)

rosmaster
* use thread local storage for caching instances of ServerProxy (#1732 <https://github.com/ros/ros_comm/issues/1732>)
* fix issue occuring during alternating calls of getParamCached and setParam (#1439 <https://github.com/ros/ros_comm/issues/1439>)
* fix docstring in unregisterSubscriber (#1553 <https://github.com/ros/ros_comm/issues/1553>)
* set correctly typed @apivalidate default return values (#1472 <https://github.com/ros/ros_comm/issues/1472>)

rosmsg

No changes

rosnode
* explicitly handle socket.timeout in rosnode ping (#1517 <https://github.com/ros/ros_comm/issues/1517>)

rosout
* fix use-after-free issue in rosout (#1764 <https://github.com/ros/ros_comm/issues/1764>)

rosparam

No changes

rospy
* remove not existing NodeProxy from rospy __all__ (#2007 <https://github.com/ros/ros_comm/issues/2007>)
* fix dictionary changed size during iteration (#1894 <https://github.com/ros/ros_comm/issues/1894>)
* do not raise socket exception during shutdown (#1720 <https://github.com/ros/ros_comm/issues/1720>)
* add missing comma in the list of strings (#1760 <https://github.com/ros/ros_comm/issues/1760>)
* fix error handling for Topic constructor (#1701 <https://github.com/ros/ros_comm/issues/1701>)

rosservice
* catch exeption when searching for services and a single service fails (#1519 <https://github.com/ros/ros_comm/issues/1519>)

rostest

No changes

rostopic
* publisher/subscriber lists have correct type now (#1780 <https://github.com/ros/ros_comm/issues/1780>)

roswtf
* do not try to run online checks if there are no roslaunch uris (#1848 <https://github.com/ros/ros_comm/issues/1848>)
* print exception content to show better idea why loading plugin failed (#1721 <https://github.com/ros/ros_comm/issues/1721>)

topic_tools
* transfom: create publisher before subscriber, because callback may use the publisher (#1669 <https://github.com/ros/ros_comm/issues/1669>)
* mux: do not dereference the end-iterator (#1579 <https://github.com/ros/ros_comm/issues/1579>)
* fix topic_tools environment hook (#1486 <https://github.com/ros/ros_comm/issues/1486>)

xmlrpcpp
* close sockets when server responds with HTTP/1.0 (#1284 <https://github.com/ros/ros_comm/issues/1284>)
* add bool assignment operator (#1709 <https://github.com/ros/ros_comm/issues/1709>)
* add const indexer for xmlrpc (#1759 <https://github.com/ros/ros_comm/issues/1759>)

@tfoote Since this is the first release of ros_comm into Kinetic since 2 years it might be good to mention in the sync announcement.


Fix: listbox 'multiple' type

Without this change the only valid types for 'multiple' are either false or undefined.
Fixes: https://github.com/huntabyte/shadcn-svelte/issues/428

That is not the case:

I suspect the issue lies elsewhere. Probably someone is trying to do:

In which case there is a simple fix:

Can no longer replicate this typing error in the identical codespaces (of shadcn-svelte and bits-ui) as last time 🤔. Probably down to some part of the tooling getting confused. Thanks for looking into this though!


Look into Cypress for End to End testing

https://www.cypress.io/ would be really cool to have for automated testing, maybe now isn't the time really implement but maybe a testing branch with some research into the implementation would be great!

lol
I haven't seen that this issue has almost a year open.
I will PR a basic template to start using cypress and a basic test.
We can define and implement other scenarios later.


Is there an Hammer edition for Raspberry Pi OS?

And any other Linux desktop distribution... (FreeBSD, Debian, etc.).

We're already producing .deb files which might help you, take a look at the binaries on a release:
https://github.com/Wavesonics/hammer-editor/releases/tag/v1.7.0
I plan on producing snap and flatpaks in the future, but I just don't know how to do it yet, and its not very high on the priority list at the moment.
If anyone knows how to package for those other formats and wants to contribute it would be greatly appreciated!


Update Readme.md

There is a small mistake in the Readme file. Instead of "intersecton" I think it has to be "intersection".

Thanks for the update, closing this.


feat(cli)  [WIP]

This is a tracking PR for getting the CLI up to speed.
tauri init

[x] init creates tauri.conf.js
[x] init creates src-tauri folder
[x] force overwriting
[x] logging
[x] JSDoc
[x] internal sanity checking

tauri dev

[x] parse tauri.conf.js
[x] compile rust crates
[x] start rust main()
[x] create UI window
[ ] use pax to transpile the JS and use our own tiny_http server
[ ] create a webpack server if none specified
[ ] editing the source reloads
[ ] webpack + babel sources

tauri build

[x] parse tauri.conf.js
[x] start bundler
[x] mac
[ ] win (looks like rough sailing at the moment)
[ ] linux
[ ] debug

For the record, this is Merge Monday. I am doing this. It may break on Linux and MacOS. But we'll fix it.


Date display error

The date on the dashboard seems to be wrong. It shows 2 hours in the future for users from Japan.

He @trestoJP. It's duplicate of https://github.com/nemgrouplimited/symbol-desktop-wallet/issues/545.
I will ping devs regarding this issue.
Thank you.

Fixed in https://github.com/nemgrouplimited/symbol-desktop-wallet/releases/tag/v0.13.5


[cluster-test][enhancement] Rename cluster test S3 bucket and refactor mgmt tool usage in cluster test.

Create a new S3 bucket or rename current S3 bucket (toro-cluster-test-flamegraphs) for cluster test.
Refactor genesis_helper.is in CT to use internal implementation of mgmt tools instead of mgmt tool cli. See comments in #5425 Internally insert_waypoint instead of call create_and_insert_waypoint for each validator, then this should fix #5504.
Remove the entire usage of config_builder in CT if we don't want to support the case without LSR/Vault in the future. This should make the CT code base cleaner.
Right now util_cmd() runs k8s jobs and all jobs should be deleted immediately after completion.

@snakech @andll


fix: remove imports from markdown-it

Removed imports from markdown-it:

normalizeReference replaced with md.utils.normalizeReference
StateInline replaced with md.inline.State
remove unused second argument in load() function

After that markdown-it can be removed from peerDependencies

@hilookas plz look at this PR

Thx!


Document Search API import and tests

The docsearch API has been imported and ported from readthedocs-ext and test has been added.
Its still not ready to merge.
I am working on more tests.

@safwanrahman going to go ahead and close this for now, because I don't want to change how our production search works currently. We should port these tests to the prototype branch, but otherwise I believe this work should be replaced by the ES6 stuff :)


Make Nuke Env as a reusable workflow

currently nuke environment is in pr close move it out of pr close as we dont want to nuke the env entirely in pr close
when we have pr based deploys, we would like to only delete certain resources like stateless app containers and frontend but rds wont be.
rds will be reused across prs.

completed https://github.com/bcgov/quickstart-aws-containers/pull/29


npm-register returning 404 even though package is in official npm registry

We are encountering a problem with npm-register 2.5.2 where we try to install a new package that exists in the official npm registry, but npm-register logs a 404:
measure#request=2928ms method=GET user-agent="npm/3.10.10 node/v6.12.1 darwin x64" status=404 path=/promise-retry request_id=0.6060019690578522
and npm complains the package isn't in the registry:
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--save" "promise-retry"
npm ERR! node v6.12.1
npm ERR! npm  v3.10.10
npm ERR! code E404

npm ERR! 404 no such package available : promise-retry
npm ERR! 404
npm ERR! 404  'promise-retry' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jbye/npm-debug.log
------------------------------------------------------------

Restarting npm-register does not resolve the problem.

Looks like the same issue as Issue 96
Leaving this open until the issue gets fixed.
Applied their solution like this
vim /usr/lib/node_modules/npm-register/lib/npm.js
Change line 54 to pkg = JSON.parse(req.body)
restart npm-register

Found that I had a server still on version 2.2.0 and it had the JSON.parse but 2.5.2` does not.


js_util library should be removed for dart 2.0

The dart:js_util has only deprecated functionality and is available through package:js_util.
It should be removed for dart 2.0.

Uh, I don't think it can?
https://github.com/dart-lang/sdk/blob/master/pkg/js/lib/js_util.dart#L1-L8:
// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// Allows interoperability with Javascript APIs.
library js_util;

export 'dart:js_util'

/cc @jacob314

It could be marked deprecated though.


chore: remove irrelevant code and config

Codecov Report
Attention: Patch coverage is 0% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 51.82%. Comparing base (6ab45bd) to head (d6c9876).
Report is 36 commits behind head on main.

Files
Patch %
Lines

httpfilter.go
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main      #33       +/-   ##
===========================================
+ Coverage   39.10%   51.82%   +12.72%
===========================================
  Files          16       18        +2
  Lines         808      984      +176
===========================================
+ Hits          316      510      +194
+ Misses        468      443       -25
- Partials       24       31        +7

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


Reduce amount of web-sys features

There's currently a discussion going on about web-sys: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942487
To summarize, web-sys has around 1.2k features which causes our tooling to generate a 256k Provides: line of virtual packages. This package caused issues in tooling used by debian downstreams, including kali linux and tails.
Any chance the number of features can be reduced to a reasonable amount?

Thanks for the report, but the features of the crate are a feature of how the crate works, so this isn't going to change.

(The reason for the large number of features is because compilation would be exceptionally slow otherwise, because web-sys is quite large)

Maybe instead of doing it on a per-function basis, per-category like in winapi would be an option?

@sdroege It already is per-category. Specifically, it's per-type, since WebIDL segregates features based on type.
So, for example, if you enable the Element feature you will get access to all of the Element methods.
The problem is that there are thousands of types for WebIDL. The web is huge!


Prevent embark to crash when there is no config for ens

Overview
TL;DR
Prevent embark to crash if there is no config file for ens
Cool Spaceship Picture

I agree with @jrainville's suggestion as it is more in line with how we handle other modules

@jrainville @emizzle I have updated the PR, let me know what you think


Renew/Replace certificate.

Hi, It would be helpful to have a process for replacing/renewing the certificate.

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

ID: a61a7e9a-44bf-7bdc-f810-87e2fd6792e1
Version Independent ID: 71d11105-b83e-952e-d107-1ff9a7c8d107
Content: Use existing NPS servers to provide Azure MFA capabilities
Content Source: articles/active-directory/authentication/howto-mfa-nps-extension.md
Service: multi-factor-authentication
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@peternield Thanks for your feedback! We will investigate and update as appropriate.

@peternield Thanks for the feedback! I have assigned the issue to the author to investigate and update as appropriate.

@peternield I have added this to my backlog to get added to an upcoming docs update. Will have to get details from the product group as I do not have detail on this today.

#in-process

Sorry for the delay @peternield.
The response from the product group I have received is:
Every time you re-run the PowerShell referenced here https://docs.microsoft.com/azure/active-directory/authentication/howto-mfa-nps-extension#run-the-powershell-script a new certificate is created.

Thanks John. Please add this detail to the documentas as it is currently not clear how this cerrtificate should maintained/renewed.
Cheers, Peter.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: John Flores<EMAIL_ADDRESS>Sent: Wednesday, June 27, 2018 11:06:10 AM
To: MicrosoftDocs/azure-docs
Cc: peternield; Mention
Subject: Re: [MicrosoftDocs/azure-docs] Renew/Replace certificate. (#8020)
Sorry for the delay @peternieldhttps://github.com/peternield.
The response from the product group I have received is:
Every time you re-run the PowerShell referenced here https://docs.microsoft.com/azure/active-directory/authentication/howto-mfa-nps-extension#run-the-powershell-script a new certificate is created.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/8020#issuecomment-400490647, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJZmGiwqBP_b9CjDuDHEjyW-sG38EGPBks5uAr5igaJpZM4TwTdE.

Resolved by https://github.com/MicrosoftDocs/azure-docs-pr/pull/45186


cattle-node-agent and rancher-agent:v2.3.3 not found.

Hello K3s Team
I Create a k3s-agent into rapberry pi3. but your document support install.
Failed to pull image "rancher/rancher-agent:v2.3.3": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/rancher/rancher-agent:v2.3.3": failed to unpack image on snapshotter overlayfs: no match for platform in manifest sha256:ad0b39814ba3f6e1e5e16e1c2b46f02c8056298a45f5feacf833126f66fb3fd6: not found
Operating Systems
K3s should run on just about any flavor of Linux. However, K3s is tested on the following operating systems and their subsequent non-major releases.
Ubuntu 16.04 (amd64)
Ubuntu 18.04 (amd64)
Raspbian Buster (armhf)
pi@node2:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
root@node2:/home/pi# systemctl status k3s-agent
● k3s-agent.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-01-07 08:01:15 GMT; 28min ago
Docs: https://k3s.io
Process: 17661 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
Process: 17662 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
Main PID: 17663 (k3s-agent)
Tasks: 74
Memory: 347.0M
CGroup: /system.slice/k3s-agent.service
├─17663 /usr/local/bin/k3s agent
├─17683 containerd -c /var/lib/rancher/k3s/agent/etc/containerd/config.toml -a /run/k3s/containerd/containerd.sock --state /run/k3s/containerd --root /var/li
├─17903 /var/lib/rancher/k3s/data/c96e02c5a53589ce1b73ea475296dfd2297b0806ff82f2ea452f1ed6f56463e0/bin/containerd-shim-runc-v2 -namespace k8s.io -id 6dccfb2d
├─17924 /pause
├─18017 /bin/sh /usr/bin/entry
├─18064 /bin/sh /usr/bin/entry
├─18324 /var/lib/rancher/k3s/data/c96e02c5a53589ce1b73ea475296dfd2297b0806ff82f2ea452f1ed6f56463e0/bin/containerd-shim-runc-v2 -namespace k8s.io -id db7d83c7
├─18344 /pause
├─19203 /var/lib/rancher/k3s/data/c96e02c5a53589ce1b73ea475296dfd2297b0806ff82f2ea452f1ed6f56463e0/bin/containerd-shim-runc-v2 -namespace k8s.io -id bfa01504
├─19224 /pause
├─19464 nginx: master process nginx -g daemon off;
├─19484 nginx: worker process
├─20168 /var/lib/rancher/k3s/data/c96e02c5a53589ce1b73ea475296dfd2297b0806ff82f2ea452f1ed6f56463e0/bin/containerd-shim-runc-v2 -namespace k8s.io -id 0f30e832
├─20188 /pause
└─20253 /bin/sh /usr/bin/entry
Jan 07 08:28:44 node2 k3s[17663]: E0107 08:28:44.093834   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:28:55 node2 k3s[17663]: E0107 08:28:55.093209   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:29:06 node2 k3s[17663]: E0107 08:29:06.094162   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:29:19 node2 k3s[17663]: E0107 08:29:19.093958   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:29:32 node2 k3s[17663]: E0107 08:29:32.094468   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:29:46 node2 k3s[17663]: E0107 08:29:46.033309   17663 remote_image.go:113] PullImage "rancher/rancher-agent:v2.3.3" from image service failed: rpc error: code
Jan 07 08:29:46 node2 k3s[17663]: E0107 08:29:46.037245   17663 kuberuntime_image.go:50] Pull image "rancher/rancher-agent:v2.3.3" failed: rpc error: code = NotFound de
Jan 07 08:29:46 node2 k3s[17663]: E0107 08:29:46.039059   17663 kuberuntime_manager.go:803] container start failed: ErrImagePull: rpc error: code = NotFound desc = fail
Jan 07 08:29:46 node2 k3s[17663]: E0107 08:29:46.040427   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
Jan 07 08:30:00 node2 k3s[17663]: E0107 08:30:00.096434   17663 pod_workers.go:191] Error syncing pod 042bc94d-4fcb-44f1-a93c-80c745a83e32 ("cattle-node-agent-jphtl_cat
k3s Team please fix it this problem & otherwise how to fix it.
Thanks!!..

Hello. K3s supports armhf and arm64. The issue is that at this time the rancher-agent does not support armhf. Let us know if you have any other questions.

Re-opening. We'll use this issue to track the issue. Once rancher/agent has an armhf image we can validate.

Hello K3s Team
what is the status about the K3s supports armhf for agent connection?

Closing due to age - please make a new issue if this is still a problem.


Accessibility / VoiceOver reading order should be left to right (or numeric order), not top to bottom

For locales with left to right reading order, if the accessibility setting, VoiceOver, is enabled, the reading order of the calendar days should be left to right or in numeric order (or from the first day in the calendar forward). This is potentially an issue for users with a vision impairment that, for example, rely on swiping through app features.
To replicate this issue on the simulator, do the following:
Steps assume Xcode 8.x...

Download, build and run the latest SwiftExample project/app (as of 11/1/2016).
Click InterfaceBuilder or LoadView.
From the Xcode menu, select Open Developer Tool > Accessibility Inspector.
Place the simulator and Accessibility Inspector side by side (see video below).
From the top left drop-down menu on the Accessibility Inspector, select your running simulator.
Click the Inspection icon if it's not already selected (circle with an i in the center).
Click the crosshairs icon (if you hover over it, you'll see the tooltip, Start inspection follows point).
Click on any day on the calendar to inspect it. (A light green rectangle should display around the day.)
Under QuickLook on the Accessibility Inspector, use the left or right arrows to navigate.

Result:
Notice that the traversal direction is top to bottom (or bottom to top). This corresponds to the same reading order in VoiceOver. If you are able to deploy the SwiftExample on a device, you can enable VoiceOver and swipe through the days to confirm the reading order is the same.
Here is a video demonstrating the issue.
For our current project, providing a fully accessible calendar is a hard requirement, so we will have to modify (fork) FSCalendar to ensure the days are read in numeric order (or from the first day in the calendar forward)...unless this can be changed soon or at least made an option.

Thanks @h-bomb. I didn't know about VoiceOver before. The UICollectionViewFlowLayout is the reason for the top-to-bottom order of the cells, which also makes the date calculation a bit complicated.

Hi @WenchaoD - thanks for the quick response. Yes, that is what I suspected. I've been researching how to change the reading order and will let you know what I discover, but if you happen to have an idea, would much appreciate the info! I believe I will need to implement one or more methods in UIAccessibilityContainer to achieve the desired behavior.

This is fixed by entirely rewritten the behaviors of UICollectionViewFlowLayout. Would appreciate if you try in development branch.

Hi @WenchaoD - Thank you for providing this fix. In my preliminary testing efforts, I did find a few issues - all assume VoiceOver is enabled:
(1) Assuming month view, if you set calendar.placeholderType = .none, on the first load of the calendar, after right swiping from the last day of the week, e.g. Sat, the next right swipe selects the first placeholder and reads the hidden number in the day cell instead of selecting (and reading) the first day of the month. This seems to only happen after the first load of the calendar. On subsequent swipes, the first placeholder is no longer selected and the first day of the month is correctly selected.
(2) This may need to be reported as a separate VoiceOver issue since it is not related to the navigation / selection / speaking order issue. If you swipe right from the last navigation bar item to the next item (in the calendar), notice that the header date (e.g., January 2017) switches to the minimum date, e.g.: December 1969.
(3) Not sure if this is related, but selecting the LoadView option in the sample swift app crashes the app.
Other than these issues, the navigation / traversal / speaking order of the week days is now left to right, instead of top to bottom, so that's great!
Please let me know if you need additional details or a video demonstrating any of the issues above.

Closing fixed issue.


wkio: allow trailing commas

LINESTRING(-93.579699278759 42.012212046647, -93.579699278759 42.012990414418, -93.578910704098 42.012990414418, -93.578910704098 42.012212046647, )
LINESTRING(-93.579619455495 42.012507272707, -93.652889371462 42.012507272707, )
LINESTRING(-93.652889371462 42.012315183723, -93.616254413478 42.012315183723, -93.579619455495 42.012315183723, )

I think re.sub(r',\s*)', '') or equivalent will be sufficient, as long as it doesn't tank performance. Otherwise, filter through sed as necessary.

I think re.sub(r',\s*)', '') or equivalent will be sufficient, as long as it doesn't tank performance. Otherwise, filter through sed as necessary.


Address metalness brightness

Metalness gets too bright at 0.5

The combination of these two lines causes the specular to peak at mid metalness.
vec3 color = mix( surf.specularColor, surf.color, metalness );
color *= mix( F, vec3( 1.0 ), metalness );

Investigate rough metal darkness

seems to be caused by the ggx function returning rays under the surface
Try other GGXVNDF implementation

NOTES

wi: incident vector or light vector (pointing toward the light)
wo: outgoing vector or view vector (pointing towards the camera)
Eval: Get the color and pdf for a direction
Sample: Get the direction, color, and pdf for a sample
eta: Greek character used to denote the "ratio of ior"
f0: Amount of light reflected when looking at a surface head on - "fresnel 0"

khronos-MetalRoughSpheres
Notice the gold balls getting brighter in the mid range and the dark metalness.

Account for BRDF multiscattering:
https://google.github.io/filament/Filament.html#materialsystem/improvingthebrdfs/energylossinspecularreflectance
https://dl.acm.org/doi/10.1145/2897824.2925943
https://jo.dreggn.org/home/2016_microfacets.pdf

https://youtu.be/DQeP363Xmn4?t=1787