Large / high quality images is rendered fully black on Android

If i have take a large image and add it as asset or take a picture with the camera that is big then if using asset for instance it would look like below:
                      Image.asset(
                        "assets/water_img.jpg",
                         fit: BoxFit.none,
                      ),

If I use boxfit.none I can see the image but it's really zoomed in so I only see like 1/20 of the image. If i remove the fit entirely or try to use another boxfit option, anyone, the image will be entirely black. I tried resizing the image and what I found was that when the image had width 3071 pixels or lower the image could be seen, but as soon as I set 3072 pixels or higher in width the image is just all black.
I tried the resizing with the image plugin and with copyResize(image, 3071); for instance.
I'm using a motorola device version 8.0.0 and the latest flutter beta channel version. Migrated to androidx but the problem was seen before migration aswell. Did not see this poblem in january-february but not sure exactly when it started.
This is my flutter dotctor output:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v1.3.8, on Microsoft Windows [Version 10.0.17134.648], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.3)
[√] VS Code (version 1.32.3)
[√] Connected device (1 available)
• No issues found!
Anyone else had this problem running on physical device only?
Any help or input appreciated, thanks!

Hi, just want to check if this is still a problem for you.

I have the same issue
 Flutter (Channel stable, v1.9.1+hotfix.5, on Mac OS X 10.15 19A602, locale zh-Hans-CN)

Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of ' flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.


Add @terrytangyuan to core approvers

Quick summarization on my contributions so far:

Approver and maintainer for MPI-Operator which is one of the core repositories comprising Kubeflow.
Approver for kubeflow/common and XGBoost-Operator (incubating).
Been active in reviewing PRs and proposals in several kubeflow projects, participating community discussions, presenting at conferences (e.g. KubeCon 2019), and mentoring other members of our team to contribute (a couple of them have become members/approvers).

References:

A list of code/proposal reviews can be found here.
A list of PRs merged can be found here.

This change is

@terrytangyuan We don't actually use this group anymore (kubeflow/community#264); I just deleted it (this PR reminded me that it should not exist). Could you delete the entry in this file for core-approvers? As well as the entry for examples-approvers?
The use of approver teams predates switching to PROW and OWNERS files.
More generally the goal is not to become an approve of everything. We want to maintain fine grained OWNERS. People should strive to become OWNERS of of the code they contribute to; either as committers or reviewers.

Sounds good. Closing this now.


📖 Add Ollama to VSCode Offering

User Story
As a… AP product engineer
I need/want/expect to… offer LLMs to our users
To satisfy user needs
Value / Purpose
No response
Useful Contacts
No response
User Types
No response
Hypothesis
If we... add ollama
We will provide functionality our users desire
Proposal
We are about to launch a vscode tool as part of the AP offering, a long-requested feature. As proposed by @Gary-H9, we could set up a restricted release with ollama or similar tool rolled into the vscode environment. That said, as this is a sandbox, it would be highly undesirable to allow access to actual AP data. Therefore, the proposal is as following:

A restricted vscode release that deploys either in the AP or the DPAT EKS cluster with
Custom role that allows access to only one bucket
All users of the restricted release have access to the same bucket and everyone is able to see its contents (to prevent people loading up restricted data in it..
With minimal support

Additional Information
No response
Definition of Done

[ ] Add ollama to the visual studio code release
[ ] Test locally

TBC:

[ ] Add ollama to a vscode release
[ ] Release in development
[ ] Test functionality

Container for VS Code running locally as expected.
Added installation of Ollama to Dockerfile in analytical-platform-visual-studio-code.
Tested ollama serve and ollama run llama2, working correctly.
Next steps:

Generate SHA256 checksum for ollama binary and add check to Dockerfile in order. There isn't one available from Ollama currently, Jacob W has requested this from them.
Add link and description of ollama to analytical-platform-visual-studio-code documentation, along with command for getting SHA256 for ollama binary.
Add test for ollama version to container-structure-test.yml
Update AP docs to include link to Ollama website/Github repo, and include instructions for ollama serve and ollama run <model_name>.
Raise PRs.

User documentation updated and PR  created

Steps above completed, ticket it done


Add support for sections with multiple-room/time schedules

The system doesn't handle a course section with multiple rooms reserved for different time periods. DATA 101 B, Fall, 2021 is an example. It reserves NH 253 (MWF, 3:30-4:30) and SB 354 (MW, 3:30-5:20). Here's the CSV entry from Colleague:

Computer Science
21/FA
########
2021
DATA-101-B
DATA
101
B
100
3
3
0

32
32
34
NH 253     SB 354
MWF     MW
3:30PM - 4:20PM     3:30PM - 5:20PM

Editing any one of the section instances of this course in Schedulizer blows away the other classroom booking. The only workaround for this that I could find is to edit the CSV (to reserve both rooms at the same times for that section) before uploading it to Schedulizer, If we really wanted the two-hour bookings on MW, then we'd have to add another DATA 101 lab section of some sort.
This is a pathalogical case. If it's hard to fix, we could simply fix it manually the first time and promise not to submit such a course in future.

Upon further investigation, these "multiple-room/time" load, display and export properly, but they don't edit properly. E.g., editing the classroom part of the DATA 101 B section above (in NH 253) will edit the classroom line but will delete lab line (in SB 354).


Make errors more visible

Specifically, reporting errors is lacking a bit at the moment. golicense exits with status 1 correctly in the case of a disallowed or unknown license, but it's really hard to get a quick overview of what package failed if you have a lot of dependencies, since it doesn't print something like a summary when it's finished. It requires the user to go back in the terminal/log and look for an emoji/special colour to find the offending package (is there a better way?). This can be a tedious exercise when logs are several thousand lines long and you don't have a key on your keyboard for \u26a0 (⚠).
It doesn't help that golicense seems to detect when a tty is present and switch to plain mode, so you can't run something like golicense | ripgrep '\x{26a0}', as far as I can tell.
I propose adding a summary at the end for failing packages.

I can see the XLSXOutput already implements a summary, so I'm simply going to implement a summary for the terminal output too.
Ref: https://github.com/mitchellh/golicense/blob/master/output_xlsx.go#L50-L155


🐛 [Stream Firestore to BigQuery] When will you be supporting multi-db??

Step 2: Extension name
Stream Firestore to BigQuery
What feature would you like to see?
When will you be supporting multi-db??
How would you use it?
We have multi-db instances with Firestore and we need to export the data

I believe this is blocked as multi-db isn't supported for v1 functions, and extensions only support v1


Dictionary not found

I see this message when I open TextAdept
.textadept/modules/spellcheck/init.lua:118: Language not found: en_GB
I have placed the en_GB hunspell file in ~/.textadept/dictionaries/
I also don't see a spelling option in the Tools menu. This happens with both v10.8 and nightly.

I see this message when I open TextAdept
.textadept/modules/spellcheck/init.lua:118: Language not found: en_GB
I have placed the en_GB hunspell file in ~/.textadept/dictionaries/

Did you also place the .aff file in addition to the .dic file?

I also don't see a spelling option in the Tools menu. This happens with both v10.8 and nightly.

This module only works with 11.0 beta 2 or a recent 11.0 beta nightly.

I placed the .aff file alongside the .dic file. If I remove the dictionaries directory completely I get the same message in TextAdept instead of it falling back to its default.
I'm using 11.0 beta 2, according to the About window. I'm using the AppImage.

I placed the .aff file alongside the .dic file. If I remove the dictionaries directory completely I get the same message in TextAdept instead of it falling back to its default.

Instead of placing dictionaries in ~/.textadept/dictionaries/, place them in ~/.textadept/modules/spellcheck/. Textadept looks for Hunspell dictionaries there. I was able to do this with an en_GB dictionary downloaded from https://cgit.freedesktop.org/libreoffice/dictionaries/tree/en

I'm using 11.0 beta 2, according to the About window. I'm using the AppImage.

What is "AppImage"?

Yeah that worked, thanks!
I made a mistake when I said AppImage, I meant I was using the precompiled binary as opposed to compiling it myself.


Make index.html with "Hello world"

Can @elijaholan make sure Nick, Georgia and Ethan accept invites and work with him? Elijah is scrum master then.


X EMPIRE

Someone can help me? I sent 80,000 X empire to my Xempire address at Coeinx on November 10, but in the transfer of the Telegram Wallet to Coeinx there was no place to put memecoment, my X never arrived, I looked at the history of the transaction and the transfer network hit that last address of yours, can you help me? Can I contact you otherwise?

@pixelplex

Bro, I don't understand anything. I have spoken to the support team. They said they will refund me.


tfds.load does not download data to my directory

Issue type
Support
Have you reproduced the bug with TensorFlow Nightly?
No
Source
source
TensorFlow version
2.15.0
Custom code
No
OS platform and distribution
Ubuntu 20.04.6 LTS
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
I tried to use several datasets from Tensorflow using tfds.load, and sometimes the data downloads to my directory and sometimes the data DOES NOT download to my directory; I am using Kaggle. When the data does not download to my directory, I can still use the data, it is distributing and I am contacting to understand why I can use the data without it downloading to my PC.
An example command is below:
ds_train = tfds.load('bccd', split='train', shuffle_files=True)
Standalone code to reproduce the issue
The data from tfds datasets does not download to my Kaggle directory.

Relevant log output
No response

If tfds.load from the TensorFlow Datasets (TFDS) library is not downloading data to your directory as expected, you can try troubleshooting the issue using the following steps:

Check Internet Connection: Ensure that your internet connection is working properly. TFDS downloads datasets from the internet, so a stable internet connection is necessary.

Update TensorFlow and TensorFlow Datasets: Make sure you have the latest versions of TensorFlow and TensorFlow Datasets installed. You can upgrade them using pip:
pip install --upgrade tensorflow tensorflow-datasets

Specify Data Directory: By default, TFDS stores downloaded datasets in the directory specified by the ~/tensorflow_datasets environment variable. You can override this default behavior by specifying the data_dir parameter in tfds.load. For example:

import tensorflow_datasets as tfds
Specify custom data directory
tfds.load('dataset_name', data_dir='/path/to/custom/directory')

Check Permissions: Ensure that you have the necessary permissions to write to the directory where you want to save the datasets.

Check Firewall and Proxy Settings: If you are behind a firewall or using a proxy server, ensure that they are configured correctly to allow downloads from the TFDS servers.

Try Different Dataset: If the issue persists with a specific dataset, try downloading a different dataset to see if the problem is dataset-specific or more general.

I hope all these helps

Thank you both for your very helpful responses! I was missing the data_dir path specification for the tfds.load function, I went to the tfds.load description page but it was not apparent that I should do this. I can see both the downloads folder and the dataset_name folder under specified data_dir path. Thank you again for your help. I will make this comment as closed.  All the best!


Sessions.getByBearerToken(): check format before hitting db

Closes #1262

This looks like a reasonable change to me. :+1:
I see that the PR is marked as a draft. Is there work that's still left to do for this PR?


Generated Dockerfile doesn't work with Maven plugin

The IntelliJ plugin generates a Dockerfile that contains the line referencing target.war.
...
ADD target.war $JETTY_BASE/webapps/root.war

This works for deploying to App Engine through IntelliJ because it is configured to build target.war.
However, it breaks mvn appengine:deploy command for users who then want to deploy the project using the appengine-maven-plugin becasue Maven build the application archive based on {maven module name}.war pattern.

as discussed, this probably breaks Gradle too when used like this

@meltsufin good catch.  This is nasty and should be fixed as part of our flex re-work in January.

What about normalizing the name of the archive at staging?  conceivably we
could also let the user specify the final staged archive name/path.
On Mon, May 22, 2017 at 5:23 PM, Etan Shaul<EMAIL_ADDRESS>wrote:

Documenting an offline discussion with @chanseokoh
https://github.com/chanseokoh about a problem we'll run into when
templatizing the artifact name in the Dockerfile:
Currently the user can generate a Dockerfile from the facet. At generation
time, there is no knowledge of which deployment source the user will choose
when deploying the module. Its possible that for a maven project (with a
custom configured artifact name) the user will then deploy from a native IJ
deployment source leading to errors due to a mismatch between the
Dockerfile archive name and the actual archive name.
A possible first step solution is to disallow native deployment sources
when a build system is detected. This way we can more confidently generate
the Dockerfile using the mavenized archive name. (caveat: what about
multiple build systems in a single project..).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1151#issuecomment-303223852,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HUg_aerXKo_RTo5uOUaz4gu8KdYCks5r8fy_gaJpZM4LG1id
.

We do currently normalize the name of the archive for staging (we rename it to "target.war/jar"), if I understood you correctly. Doing this, however, lead to the bug described here.
Wouldn't specifying the name also lead to this same issue?

Document a couple of offline discussion points with @patflynn:

However we decide to support this, we need a migration strategy for users with exiting Dockerfiles with the normalized "target.jar/war" names.
A potentially first step way to handle build system naming differences is, in the facet config, to give the user the option to change the target artifact name in the Dockerfile, defaulting it to a best guess.

A potential first step to handle build system naming differences is, in the facet config, to give the user the option to change the target artifact name in the Dockerfile, defaulting it to a best guess.

Will you allow changing the target name later in the facet config or in the deploy config? If so, I think you need to detect if the Dockerfile is the one you actually generated and not a user-supplied one.

no, only at generation time. at least at first.

I'm having trouble understanding the steps to repro this. Is it one of the following?

You start out with a project that you've added the App Engine facet to through IntelliJ, then you add the App Engine Maven plugin and try running mvn appengine:deploy
You start out with a Maven project that has the App Engine Maven plugin added, then you try adding the facet through IntelliJ (and generate a Dockerfile), then you try running mvn appengine:deploy

Start with an project in IntelliJ, setup flexible support, set app.yaml to a custom runtime, create a Dockerfile and deploy (deploying is optional, but just confirms that it works).
Now, leave the IDE and try to deploy the project via the maven plugin (using the Dockerfile you previously generated). You should be able to reproduce this now.

Ok thanks, I've reproduced the issue in a local project.
I've started digging into our options here and I have a quick question: is it acceptable for a user to have to maintain the following statement in their Dockerfile?
ADD my-project-1.0-SNAPSHOT.war /webapps/root.war

If it's common for a user using this workflow to manage this (e.g. as versions increase, they update this), then why don't we completely step out of their way and stage the WAR/JAR as-is, without renaming to target.jar/war? If they opt for a custom runtime, we could simply stage the artifact they're building and the Dockerfile without renaming/modifications and assume their Dockerfile has the right name for the WAR/JAR that's being built.
Staying down the path of using this target.war/jar naming scheme for a custom runtime may be tricky.
From what I've seen so far, it's easy to configure the maven-war-plugin to output a different WAR name (e.g. target.war), but other plugins may depend on the <artifact>-<version>.war scheme and might not be configurable in the pom.xml (e.g. the appengine-maven-plugin).
If we can rely on the user to manage their Dockerfile correctly in this scenario, then the fix is simple.

I think the last time I talked to Etan about this we came to the same
conclusion.   I think it's a reasonable first iteration.
other options are:

give the user some control over what the staged war/jar file will be
called
support templatizing the source Dockerfile so that the artifact name can
be filtered in at staging time.

This brings to mind this sample I wrote a while back:
https://github.com/patflynn/kplay/blob/master/spring-boot-basic/src/main/docker/Dockerfile
I've seen various java docker build demos where people did similar things,
so I wouldn't be surprised if this becomes a common use-case.
On Wed, Jun 7, 2017 at 8:23 PM, Nate Kibler<EMAIL_ADDRESS>wrote:

Ok thanks, I've reproduced the issue in a local project.
I've started digging into our options here and I have a quick question: is
it acceptable for a user to have to maintain the following statement in
their Dockerfile?
ADD my-project-1.0-SNAPSHOT.war /webapps/root.war
If it's common for a user using this workflow to manage this (e.g. as
versions increase, they update this), then why don't we completely step out
of their way and stage the WAR/JAR as-is, without renaming to
target.jar/war? If they opt for a custom runtime, we could simply stage
the artifact they're building and the Dockerfile without
renaming/modifications and assume their Dockerfile has the right name for
the WAR/JAR that's being built.
Staying down the path of using this target.war/jar naming scheme for a
custom runtime may be tricky.
From what I've seen so far, it's easy to configure the maven-war-plugin
to output a different WAR name (e.g. target.war), but other plugins may
depend on the -.war scheme and might not be
configurable in the pom.xml (e.g. the appengine-maven-plugin).
If we can rely on the user to manage their Dockerfile correctly in this
scenario, then the fix is simple.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1151#issuecomment-306963070,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5Hb8zgugW9tIL3QwxavjcilkuaNPzks5sBz7lgaJpZM4LG1id
.

I don't think templatizing the Dockerfile will work for us either because I don't see a way to pass Docker build parameters to the invocation underneath the appengine-maven-plugin. It could work for us, but it won't solve the problem that other plugins can't use the Dockerfile.
I think the best long-term solution is to give the user control over what archive name is used in the generation of the Dockerfile. But currently, it's impossible for someone to use both our plugin and the appengine-maven-plugin off the same Dockerfile. In the short-term, if the user is using a custom runtime, what do you think about:

Changing the staging code to copy the artifact over without renaming
Modify the Dockerfile if it references the old target.jar/war to reference the artifact that's currently being deployed (so old clients don't break)
Change the template of newly generated Dockerfiles to have an obvious call-to-action to change the artifact name (e.g. ADD YOUR_ARTIFACT_NAME.war /webapps/root.war)

Modify the Dockerfile if it references the old target.jar/war to reference the artifact that's currently being deployed (so old clients don't break)
This is a little tricky. The only time we really know the artifact name for sure is at deployment. We could add a migration (which happens when the project loads) that detects this "legacy" artifact name and then updates it to the templatized variable (after showing the user a little dialog).
Change the template of newly generated Dockerfiles to have an obvious call-to-action to change the artifact name (e.g. ADD YOUR_ARTIFACT_NAME.war /webapps/root.war)
Agree. We can also have some sort of UI in the facet to configure the Dockerfile artifact reference which would then replace the template variable. Something like a text field underneath "Runtime: custom" which allows the user to type the name in. It could default (shown with some placeholder text) to "auto detected" or something like that (see the next paragraph for what this means).
If the user doesn't update the artifact name then the template variable will remain in place (and other tools won't work with it - but at least the message will be clearer). However, for IJ, at deployment time we will know the artifact name so we can dynamically replace the name at staging time (only for the staged Dockerfile).
Just throwing out ideas. I think we were all saying a lot of the same thing.

We could add a migration (which happens when the project loads)

Couldn't we do it at deployment time instead and without a prompt? Presumably if the Dockerfile references a target.jar/war, then we probably generated it and the user didn't modify it. We could silently migrate the file so other plugins will work for them without disruption.

We can also have some sort of UI in the facet to configure the Dockerfile artifact reference

Yeah, we definitely agree that having additional UI to configure this is ideal. How important is a short-term fix though? I could spend some time on the full proposal instead of coming up with a short-term fix if it's not important.

Couldn't we do it at deployment time instead and without a prompt?
Yeah, I think that makes sense.
I could see doing this in a couple phases (doing the UI portion later) as long as the first iteration has some clear messaging (probably in the facet) guiding the user to update the Dockerfile. I don't want to get into a situation where users have to first do a failed deployment before correcting the issue.

Let's get in a room and discuss this.
On Thu, Jun 8, 2017 at 1:05 PM, Etan Shaul<EMAIL_ADDRESS>wrote:

Couldn't we do it at deployment time instead and without a prompt?
Yeah, I think that makes sense.
I could see doing this in a couple phases (doing the UI portion later) as
long as the first iteration has some clear messaging (probably in the
facet) guiding the user to update the Dockerfile. I don't want to get into
a situation where users have to first do a failed deployment before
correcting the issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-intellij/issues/1151#issuecomment-307166138,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HVAKNpzKXJQpHKeyCqVb4vMPntLuks5sCCnEgaJpZM4LG1id
.

To follow up on our conversation offline, we're going to:

Change newly generated Dockerfiles through IJ to use the ADD *.jar and ADD *.war syntax
Stop renaming the built artifacts to target.jar/war and leave their names as-is

This will break existing users who have a Dockerfile that has the ADD target.jar or ADD target.war commands because the built artifact will no longer be renamed. However, any migration scheme we could think of isn't ideal because this is a source migration and it would be difficult to tell whether a Dockerfile needs to be migrated or not.
To combat this, we will make our release notes clear that anyone in this scenario will need to update or regenerate their Dockerfiles.

FYI, this is what the error will look like to a user who has a custom Dockerfile referencing a target.war after this change:

Step 2/2 : ADD target.war /webapps/root.war
lstat target.war: no such file or directory
ERROR
ERROR: build step<EMAIL_ADDRESS>failed: exit status 1
ERROR: (gcloud.app.deploy) Error Response: [2] Build failed; check build logs for details
Failed to deploy '[2017-06-09 08:42:49] appengine-flexible:war. Project: .... Version: auto': Deployment failed with exit code: 1
Please make sure that you are using the latest version of the Google Cloud SDK.
Run ''gcloud components update'' to update the SDK. (See: https://cloud.google.com/sdk/gcloud/reference/components/update.)

moving to the next milestone, as we discussed


Normalize registry bib data?

Normalized structure would probably look at least like this:

A bibitem for a sub-registry itself (e.g., bundle)
An item for each sub-sub-registry within the sub-registry (e.g., bundle/admin-record-types)
“includes” relations from bibitem in (1) to each bibitem in (2)
“includedIn” relation from each bibitem in (2) to bibitem in (1)

If sub-registry will ever contain only one sub-sub-registry, then it might seems like a duplication. However, if we want to keep it normalized we should probably do the above.
Ping @ronaldtse?

I agree with this structure. Basically all leaf nodes are bibitems, every non-leaf node is a registry (or a dataset).

To avoid making category errors, all of them are bibitems—but the types are different: for non-leaf registry nodes it’s “dataset”, while leaf nodes can be something else (“standard”, etc.).
Also, as I understand, in relaton-data-iana we don’t have the actual leaf nodes (registry items). All we have for now is registries: sub-registries (e.g. foo) and sub-sub-registries (foo/bar). A registry item would be foo/bar/baz, but we don’t have those as separate items.

@strogonoff ah sorry for the poor terminology. Lack of sleep!
We could have bibitems for all of the nodes, but as discussed with @rjsparks, we only need to have bibitems for registries and sub-registries.

Understood. @andrew2net do you think you could implement this change? According to our chat with Nick, it probably shouldn’t break anything.

@andrew2net, I corrected ticket description and title after the discussion.


please add opacity slider

@ilyankou - please add your amazing opacity slider to the bottom-left corner, above the scale

Jack,
I added a slider, but also did the following aesthetic changes:

I changed the borders (width from 2 to 1), and differentiated town boundaries (gray) vs zones (black), to make it look better (in my humble opinion, of course), and because it was very hard to distinguish when both types were black 2px-wide.

I added this line map.fitBounds(choroplethLayer.getBounds()) so that as soon as the choropleth is loaded, the map expands if it has space. It won't expand if you put it in a small iframe. Let me know if you want this removed (it just appeared too small on my big screen).

Looks fabulous -- thanks!


ENYO-6099: VirtualList to set focus correctly after an update

Checklist

[x] I have read and understand the contribution guide

[x] A CHANGELOG entry is included

[ ] At least one test case is included for this feature or bug fix

[x] Documentation was added or is not needed

[ ] This is an API breaking change

Issue Resolved / Feature Added
When you call .scrollTo({index, focus: true}) on a VirtualList after it has updated (after componentDidUpdate), the children may not have re-rendered yet, meaning the dom is not available and focus will not be set on the specified index, once the children are rendered and scrolled into view.
Resolution
We can utilize the this.handleUpdateItems method of VirtualList in order to set focus after the list has been updated and the dom is available. We simply set the value of the index to be focused in the previous call to this.focusByIndex.

LGTM


snapshot-controller container in controller pod fails when CRDs are not installed

What steps did you take and what happened:
Install chart with crd.volumeSnapshot=False, wait for container snapshot-controller to crash with the following error:
E1012 16:05:19.347196       1 main.go:89] Failed to list v1 volumesnapshots with error=the server could not find the requested resource (get volumesnapshots.snapshot.storage.k8s.io)
E1012 16:05:19.347240       1 main.go:207] Exiting due to failure to ensure CRDs exist during startup: timed out waiting for the condition

What did you expect to happen:
Ability not to add snapshot-controller to pod
The output of the following commands will help us better understand what's going on:

kubectl logs -f openebs-lvm-controller-0 -n kube-system -c openebs-lvm-plugin
Not relevant
kubectl logs -f openebs-lvm-node-[xxxx] -n kube-system -c openebs-lvm-plugin
Not relevant
kubectl get pods -n kube-system

NAME                       READY   STATUS             RESTARTS   AGE
lvm-localpv-controller-0   4/5     CrashLoopBackOff   10         29m
lvm-localpv-node-5qcn5     2/2     Running            0          31m
lvm-localpv-node-8lcs7     2/2     Running            0          31m
lvm-localpv-node-ggtgs     2/2     Running            0          31m
lvm-localpv-node-kqcxs     2/2     Running            0          31m
lvm-localpv-node-qfb82     2/2     Running            0          31m
lvm-localpv-node-qnx2l     2/2     Running            0          31m
lvm-localpv-node-vgch4     2/2     Running            0          31m

kubectl get lvmvol -A -o yaml
Not relevant

Anything else you would like to add:
volumeSnapshot CRDs are only conditioned on crd.volumeSnapshot while there is alos crd.enabled which is not interpreted anywhere...
Environment:

LVM Driver version: 1.3.0
Kubernetes version (use kubectl version): Not relevant
Kubernetes installer & version: Not relevant
Cloud provider or hardware configuration: Not relevant
OS (e.g. from /etc/os-release): Not relevant

Would it make sense to add lvmController.snapshotController.enabled and lvmController.snapshotter.enabled to condition the addition both containers to controller pod ? If so, I can drop a PR about it

@emiran-orange Is this to disable the snapshot feature? I am not sure if we want that to be configurable.
The crd.volumeSnapshot=False would be considered valid combination if the cluster already has the snapshot crds. It's not desirable to disable the crd installation if crds are not present in the cluster already.

@Abhinandan-Purkait Thanks for the highlight.
Disabling the snapshot feature was what I had in mind but I understand your position.
I'm working on a soft mutitenant cluster it seems that I can achieve the same by not defining any volumesnapshotclass

@Abhinandan-Purkait
I noticed that volumeSnapshot CRDs are only conditioned on crd.volumeSnapshot while there is also crd.enabled which is not interpreted anywhere...
Is it on purpose ?

Okay. crd.enabled is a helm macro, which helm understands, that's the reason you aren't seeing it in any template. That is there to disable installation of all crds.  FYI we have some other crds that we use for LVM. Setting crd.enabled to false will not install any crds that are a part of this helm chart. Hope that answers your question.

Thanks for your time and sorry for the disturbance of this (non)issue.


How to export test results while using CLI

I ran tests using cli .. by this command

botium-cli run --config path/to/botium.json --convos path/to/files

the results are shown in the terminal .. how can I export this results in txt file?

I tried this .. but it just change the format appears in the terminal .. i want to export it in a txt file to save it for later compare

You can add "> output.txt" to the commandline to redirect the output to a file.

I tried this .. but it just change the format appears in the terminal .. i want to export it in a txt file to save it for later compare

will test myself and maybe provide fix for it

Tested it and it works:
botium-cli run > out.txt

Will write the test report to out.txt
For plain text reports, the TAP-format is maybe the best choice.
botium-cli run tap > out.txt

Output file looks like this:
1..1
ok 1 Botium Test-Suite give me picture
# tests 1
# pass 1
# fail 0


[CSGen] Replace getInterfaceType() -> mapTypeIntoContext() for VarD…

…ecl with getType
In ConstraintGenerator::visitDeclRefExpr instead of using
getInterfaceType() for unknown type and later mapping it into
context, let's use getType() which does that interally, that
allows to detect presence of error types in resulting type and
abort constraint generation.

@swift-ci please smoke test

@swift-ci please smoke test Windows platform


Fix issue 20070 - std.conv.toImpl matches two functions when using st…

…atic arrays as inout(T)

Please target stable.

@thewilsonator, thanks, done.


Draft | Run mention intermittent failing test in loop

Pull Request
🤨 Rationale

👩💻 Implementation

🧪 Testing

✅ Checklist

[ ] I have updated the project documentation to reflect my changes or determined no changes are needed.

Closing the PR as the fix is updated as part of the other PR: #2403


How to login with the account having 2-factor authentication turned on?

Describe the bug
400 Bad Request when trying to login, account having a 2-step authentication turned on.
To Reproduce

Turn 2-step authentication
Login from the terminal

Expected behavior
The application should log me in.
Error messages and tracebacks
$ instaloader --login=sntsh.k
Session file does not exist yet - Logging in.
Enter Instagram password for sntsh.k:
Fatal error: Login error: 400 Bad Request

Instaloader version
4.1.1
I still receive the OTP on my phone.

Thanks for this suggestion. Login with 2FA is not implemented yet in Instaloader.

It's implemented in 4.2rc2. Upgrade with
pip3 install --pre --upgrade instaloader


cannot read file immediately after write file

is it possible to add flush after writing/appending file and just before closing the file?  This is because on linux, the system might cache stuff in page.  It might need to wait 30 seconds to expire and flush page into disk for ext4.
http://stackoverflow.com/questions/25382434/file-flush-needed-after-process-exit
https://lwn.net/Articles/322823/

Thank you for submitting this ticket!
This issue tracker primarily serves as the tool to report and track bugs, defects, and development tasks.
For general question, code review request, build problem, or other related discussion, please post it to either:

the official PhantomJS users mailing-list
Stack Overflow (with phantomjs tag)

If you have not read it yet, please check also a few tips on Effective Q&A.


fix(lint/useAltText): props false positive

Summary

Fix #3660
Test Plan

Added test case.

Thanks for your review/comment!

We don't know if props will contain an incorrect value, so we play it safe and raise a diagnostic.

Perfectly understand this part but should we raise a diagnostic even if alt is provided outside the props? Could be override inside the props by an empty string i guess ? (trying to understand)

even an empty string is an incorrect value

I've seen this test case as valid and I was wondering if it was a mistake or not
  <input type="image" alt="" />


Windows Store App 8.1

Hi again, ran into an issue with a windows store 8.1 project. Here is my exception :

Could not load file or assembly 'Sockets.Plugin, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The bound assembly has a version that is lower than that of the request. (Exception from HRESULT: 0x80132000)":"Sockets.Plugin, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null

I then updated the plugin to version 1.2, and now
"The empty PCL implementation for Sockets was loaded. Ensure you have added the Sockets nuget package to each of your platform projects."
Here is my code so you can get a taste of what I am attempting.
  public MainPage()
        {
            this.InitializeComponent();
            Init();
        }

        async void Init()
        {
            try
            {
                Client = new WebSocketClient();
                Client.MessageReceived += OnMessage;
                await Client.OpenAsync("ws://echo.websocket.org");
                await Client.SendAsync("Hello");
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }

        private void OnMessage(IWebSocketMessage obj)
        { }

Howdy,
Just to confirm -

First, you added Websocket.Portable to both core and platform projects, and you got the first error
Then you updated sockets-for-pcl manually (that may not be a good idea, not sure), and got the second error? Did you update in both projects?

Assuming this is pretty much a bare bones project, are you able to share?

Yes on both counts.
https://github.com/NVentimiglia/WebSocket.Portable/tree/WSA_Example

Alright, I'll see if I can take a look tonight :+1:

I took a look, the issue should be the direct project reference to Websocket.Portable.Core from your sample app.
Even though your sample app can obviously reference the main websocket project because they live in the same solution, it needs to be treated like any other real app and use Websocket.Portable through the NuGet package. By referencing it directly, you cut out all the bait/switch magic and whatever happens from there on is probably going to be Bad. Keep in mind, you don't need to worry about specifically installing sockets-for-pcl in a project that you install Websocket.Portable into, because sockets-for-pcl is listed as a dependency in the nuspec and that gets handled automagically.
I expect if you do the below, it will work:

Uninstall sockets-for-pcl from the WSA app
Delete the reference to your Websocket.Portable.Core project in the WSA app
Install Websocket.Portable into the WSA app; this will install sockets-for-pcl too
Build, run, celebrate :tada:

Let me know how you go.

Hi, first of all thank you both. This issue reported by @NVentimiglia arose from an investigation of another issue that i am having regarding Windows Store Apps and Realtime.Co Portable Messaging Framework (that uses Websockets).
I too had the first error - "The bound assembly has a version that is lower than that of the request.." - and i too replaced the 1.1.70 assembly version with a correct one (this was itself another issue reported to @rdavisau ). I had the second issue too - "The empty PCL implementation for Sockets was loaded" - and it makes sense, since i probably added the PCL version, which is, like @rdavisau said only a "bait", a placeholder for each platform implementation - and after i got this corrected, i still have a problem, which i described to @NVentimiglia earlier:
"I have a Cocossharp Solution with a shared project where exactly the same code is used to perform Connection and Subscription to Realtime.co both in Windows Phone 8.0 and Windows Store (Windows 8.1). In Windows Phone 8.0 i managed to Connect, Subscribe, Send messages, etc. But in the Windows Store project, even the first Connect fails, after a certain time, with an exception "Websocket has encountered an error".
I added both "Internet (Client & Server)" and "Private Networks (Client & Server)" capabilities in the app manifest; disabled Windows Firewall just in case, nothing worked."
This error: ""Websocket has encountered an error" after a simple connection to Realtime.Co service is the one i'm after, and i dont think it will be solved by these current issues.
@rdavisau: are you aware of anything specific regarding Windows Store apps that can be interfering with a normal websockets behaviour?
Thanks once again!

@rdavisau

Removed rda.Sockets
Removed direct reference
Added Websocket.Portable via nuget

Got this error when I tried to connect

Could not load file or assembly 'Sockets.Plugin, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The bound assembly has a version that is lower than that of the request. (Exception from HRESULT: 0x80132000)":"Sockets.Plugin, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null

Updated rda.Sockets via nuget

Would no longer throw an exception, but, would stop running. It would never complete connect. Is there any way I could reference my other project directly for better debugging ?

@nfplay
I think the root of this issue is demonstrated in my simple websocket.portable example application. Once we get the example project working on WSA, everything should work fine.

@rdavisau
I did a little more investigation on the never ending method.
My plugin stops working when I try to ReadByte() on the handshake.
https://github.com/NVentimiglia/WebSocket.Portable/blob/master/WebSocket.Portable.Core/_Implementation/TcpConnection.cs#L78
I tried replacing this method with a stream reader but no change. (The stream reader was taken out because it sometimes would over-read, causing a scenario very similar to this one).

I will take a look - it's definitely possible to debug/step through code in your NuGet package, I think the main requirements are that your source/binary are consistent (that is, the binary was built with the source you have on hand) and that you have your debugging symbols too.
I will check how you go about it tonight but in case you're looking at things now, you might try to turn on first chance exceptions and see if something is being missed there.

Ok awesome. I will be out until tuesday. I dive back in then.

So I created a new Windows Store app and installed WebSocket.Portable, then added the code from your WSA_Example project. There were no typeload exceptions, so I think the issue you had before would be related to some lingering bad references in the .csproj file. Just installing WebSocket.Portable directly works, no need to fiddle with sockets-for-pcl stuff. As for the example, I sees that it never comes back from the Connect call, as you described above.
For whatever reason, I can't get WebSocket.Portable to build at the moment, having issues with package restore etc. Once you have built it, you should be able to follow this to enable stepping into the WebSocket.Portable code which should make things a lot easier!

@NVentimiglia - did you end up getting any further with this?

Got distracted, my last attempt failed. I will try again sunday.

Still no success. I have uploaded a windows universal application and it fails connecting to echo.websockets.org. No exceptions. I have tried loading in the Sockets.Plugin modual and disabled "Just My Code". Here is a sample app.
https://github.com/NVentimiglia/WebSocket.Portable/tree/master/Examples/WebSocket.Universal/WebSocket.Universal

@NVentimiglia I looked at your sample. The address parameter you pass into ConnectAsync should be "echo.websocket.org" instead of "ws://echo.websocket.org". This bug is causing your code to hang.

Thanks, I confirmed that it now connects. However whenever I try to read a byte it hangs. No exception is raised.
  private async Task TestRda()
    {
        var socket = new Sockets.Plugin.TcpSocketClient();

        await socket.ConnectAsync("echo.websocket.org", 80, false);

        //Never Ending
        var b = socket.ReadStream.ReadByte();

        Debug.WriteLine("TestRda");
    }

@NVentimiglia I've debugged into this issue. I found that there is a problem with the sockets-for-pcl library within the ConnectAsync call.
   return _backingStreamSocket                         .ConnectAsync(hn, sn, spl)                         .AsTask().WrapNativeSocketExceptions();
if you change the above statement to:
'
return _backingStreamSocket
.ConnectAsync(hn, sn, spl)
.AsTask()
'
it should fix your issue.  I have not looked into the reason why WrapNativeSocketExceptions() causes this issue. If you find know, please share.

Ok, right on. When do you expect to have a patch ?
https://github.com/rdavisau/sockets-for-pcl/blob/master/Sockets/Sockets.Implementation.WinRT/TcpSocketClient.cs#L63

@rdavisau do you know why WrapNativeSocketExceptions() would cause an issue with ConnectAsync

This is conjecture, but maybe the await is being associated with the wrapping task and not the connect task.  A cold task if you will.
http://stackoverflow.com/questions/24237266/why-awaiting-cold-task-does-not-throw
Try this ? Or something like this.
   public Task ConnectAsync(string address, int port, bool secure = false)
    {
        var hn = new HostName(address);
        var sn = port.ToString();
        var spl = secure ? _secureSocketProtectionLevel : SocketProtectionLevel.PlainSocket;

        return _backingStreamSocket
                    .ConnectAsync(hn, sn, spl)
                    .WrapNativeSocketExceptions()
                    .AsTask();
    }

or even a old school try / catch.
Reading MSDN
https://msdn.microsoft.com/en-us/library/vstudio/ms229049(v=vs.100).aspx

This practice should be used only in situations where the original exception is not meaningful to the person who receives the exception, or the call stack for the exception is misleading or uninteresting

I wouldn't mind the native exception message.

@lopper thanks for getting involved!
Actually there is a bunch of WIP stuff in master right now, including the native exception code, that is not in the current shipped version of sockets-for-pcl. Indeed, WrapNativeSocketExceptions is breaking pretty much every WinRT test right now. Assuming you are using the Nuget package Nick, that stuff isn't relevant to this issue.
In order to debug against the 1.2.1 code you would need to roll back to 31bcd81163f9cf74a73a859e8a0283b716916e3d I believe.
ReadByte is a stream method, it will block until there is a byte available to read; I'm not familiar with the ws protocol but in your example do you need to send any data to the remote server in order to initiate the handshake?
Just to cover the reasoning behind WrapNativeSocketExceptions, the purpose is to allow you to specifically catch socket related exceptions from the PCL. In WinRT they are all Exceptions with HResults anyway, but in .NET they are SocketException, which is not available in a PCL. The method wraps socket exceptions in a PCL socket exception provided by the library so that you can catch that type of exception specifically, from PCL code.

Actually there is a bunch of WIP stuff in master right now, including the native exception code, that is not in the current shipped version of sockets-for-pcl

Ooh ok. Hmmm I would prefer to use the latest, when do you expect to have a RC ?

I'm not familiar with the ws protocol but in your example do you need to send any data to the remote server in order to initiate the handshake?

Yes, I am sending a handshake.
https://github.com/NVentimiglia/WebSocket.Portable/blob/master/WebSocket.Portable/WebSocket.Portable/_Abstract/WebSocketBase.cs#L143
    private async Task TestRda()
    {
        var socket = new Sockets.Plugin.TcpSocketClient();

        await socket.ConnectAsync("echo.websocket.org", 80, false);

        // Send HS
        var handshake = "GET / HTTP/1.1\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Version: 13\r\nSec-WebSocket-Key: p2z/MFplfpRzjsVywqRQTg==\r\nHost: echo.websocket.org\r\nOrigin: http://echo.websocket.org/\r\n\r\n";
        var bytes = UTF8Encoding.UTF8.GetBytes(handshake);
        await socket.WriteStream.WriteAsync(bytes, 0, bytes.Length);

        // Read HS, Never Ending
        var b = socket.ReadStream.ReadByte();

        Debug.WriteLine("TestRda");
    }

Probably another week for the next version. 1.2.1 is easily the preferred and stable right now. Thanks for updating the test - I will have a bit of a play with that.

OK, I identified the issue. It is related to #18 / #19, and caused by the fact that without specifying a buffer size when getting a reference to a stream in WinRT, you get a buffered stream with a large buffer size; whereas on .NET the stream is unbuffered by default.
If you call FlushAsync after your await socket.WriteStream.WriteAsync(bytes, 0, bytes.Length); line, you will see that ReadByte returns - the issue therefore is that the 'sent data' is buffered by the OS and not sent along (if enough additional data was 'written', it would eventually shuttle it all across). Obviously with Android/iOS being .NET, their streams were already unbuffered so the data is sent instantly.
The workaround is to make a FlushAsync call; but this was addressed as part of #19 which will be in the next release - by default, WinRT sockets willl be unbuffered and you will also have the ability to specify a buffer size if you wish.

@NVentimiglia @lopper
1.2.2 is finally on NuGet with the ability to specify write buffering and consistent buffering between .NET and WinRT. The default is unbuffered - standard .NET behaviour - and I have verified that the above code fragment works as expected in a windows store app. Apologies for the delay and let me know how you go!

@rdavisau  Cool ! Ill double check tonight.

Works on my end, thanks again.


Upgrade Advisor and tooltip not displaying on Safari

Describe the bug
When logging in to the admin on safari the upgrade advisor and tool tip do not display. this does display fine on firefox and chrome.
What version are you running
latest unstable 7-13-2018
To Reproduce
Steps to reproduce the behavior:

Go to admin login
view home screen

Expected behavior
upgrade and tool tip display
Screenshots

Desktop (please complete the following information):

OS: macOS Sierra
Browser Safari
Version 11.0.1

Additional context
displays fine on firefox and chrome.
Javascript Errors:
Safari
[Warning] jQuery.Deferred exception: Can't find variable: showUpgradeAdvisorResults (2) (jquery-3.3.1.min.js, line 2)
(anonymous function) — home.php:89
l — jquery-3.3.1.min.js:2:29381
(anonymous function) — jquery-3.3.1.min.js:2:29679
undefined
[Error] ReferenceError: Can't find variable: showUpgradeAdvisorResults
(anonymous function) (jquery-3.3.1.min.js:2:31048)
[Error] Failed to load resource: the server responded with a status of 404 (HTTP/2.0 404) (bootstrap.min.css.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (HTTP/2.0 404) (popper.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (HTTP/2.0 404) (bootstrap.min.js.map, line 0)
This popped up on my firefox
Source map error: request failed with status 404
Resource URL: http://bmlt.charlestonna.org/yap3/admin/js/bootstrap-4.1.0.min.js
Source Map URL: bootstrap.min.js.map[Learn More]
Source map error: request failed with status 404
Resource URL: http://bmlt.charlestonna.org/yap3/admin/js/popper.min.js
Source Map URL: popper.min.js.map[Learn More]
Source map error: request failed with status 404
Resource URL: http://bmlt.charlestonna.org/yap3/admin/css/bootstrap-4.1.0.min.css
Source Map URL: bootstrap.min.css.map[Learn More]

Can you include the errors in your JavaScript console?

This is an odd issue.

Yes, works fine on my phone and both my other browsers. I take it it works fine on your safari

Works good on Safari on Mojave Beta 3.

Gotcha hopefully it's an isolated incident then, maybe I'll try clearing my browser cache and doing a control refresh

The only thing I can think of is that that yap.js is not getting loaded by the time the jquery deferred happens.
It’s looks like it’s not even getting to the point of making the request to upgrade-advisor.php.

I guess the easy fix here is to change it to a server side request.

Gotcha

pushed to latest unstable

@pjaudiomv can you verify?

My bad meant to and forgot, yes this works fine now. Thanks.


configurable item is still visible on search page when out of stock is disabled

Bug report
Title
configurable item is still visible on the search page when out of stock is disabled
Preconditions
1. framework Version- master

Steps to reproduce
1. step1- set 0 inventory  for configurable product
2. step2- disable out of stock item
3. step3- search the item on frontpage

Expected result
on search page configurable item is still visible
Actual result

@devansh-webkul
The out of stock item should not visible in related or link product section as well if configuration is disabled

It would be best if you can specify weather you want to show out of stock products via a parameter when making API calls to products, example use case would be if you want to show out of stock in the search or in "People also bought" slider etc.. Also wishlist products.. I am talking from the perspective of a headless API usage, but it will also be good for velocity theme


chore(release): 27.0.0-alpha.0

Pull Request Test Coverage Report for Build 357412955

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.532%

Totals

Change from base Build 357406877:
0.0%

Covered Lines:
964

Relevant Lines:
994

💛  - Coveralls


Write GPMF data to an MP4 file

Would it be possible to provide demo code of actually writing GPMF data to an MP4 file in a new or existing "GoPro MET" track?  Or at the very least write the GPMF data to a binary file that can then be multiplexed after-the-fact into an MP4 using ffmpeg?
It is not very clear what GPMF_demo.c is actually doing since it's not writing either to an MP4 file or even a simple file, from what I can gather it is writing in-memory to a buffer.

I have a demo of this working in the develop branch.
gpmf-writer <new_Filename.mp4> <file_time_base> <gpmf_payload_duration_timebase>
gpmf-writer newgpmf.mov 1000 1001
You can then use ffmpeg to mux this into a file with video and audio.
ffmpeg -i GF020101.MP4 -i newgpmf.mov -map 0:0:0 -map 0:1:1 -map 1:0:2 -c copy GF020101NEW.MP4

Awesome!  I'll have a look at it this week.  Thanks for making this!

Just want to let you guys know that I've made my own gstreamer implementation using this project. The demo is a work in progress in the sense that it uses a custom version of the mp4mux gstreamer element, and the modifications won't get picked up by gstreamer before there is more downstream support for gpmf. It works though.

Nice project, by the way.

The gstreamer pull request is here

Very nice.  GoPro has used GStreamer in the past, but never had GPMF writing abilities -- this is very good to know.


Items run away

Slowly, but noticeably.

Fun idea, but not worth the effort for a spell.

Fun idea, but not worth the effort for a spell.


Update curl library references to CURL

The cmake builtin FindCURL module looks for CURL and CURL::libcurl. This updates our references to curl, via our Open Telemetry plugin, to reference CURL the way FindCURL expects. I verified I can reference our CI's version of curl in /opt via -DCURL_ROOT=/opt with these updates.

[approve ci autest]

Cherry-picked to v10.0.x


Add 'renderChildrenCollapsed' to Accordion

Added the same 'renderChildrenCollapsed' prop to Accordion, which passes it to Collapsible.  Allowing deeply nested accordions.

Need this!


Figure out how to support executing visual mode commands

Right now we can only execute normal and visual mode commands, because I haven't found a way to programmatically enter visual mode.
As a last resort we could do something like:
vim.cmd('stopinsert')
vim.api.nvim_feedkeys('v', 't', true)

but hopefully there's a better, more stable way.

from :h visualmode
visualmode([{expr}])						*visualmode()*
		The result is a String, which describes the last Visual mode
		used in the current buffer.  Initially it returns an empty
		string, but once Visual mode has been used, it returns "v",
		"V", or "<CTRL-V>" (a single CTRL-V character) for
		character-wise, line-wise, or block-wise Visual mode
		respectively.
		Example: >
			:exe "normal " .. visualmode()
<		This enters the same Visual mode as before.  It is also useful
		in scripts if you wish to act differently depending on the
		Visual mode that was used.
		If Visual mode is active, use |mode()| to get the Visual mode
		(e.g., in a |:vmap|).
		If {expr} is supplied and it evaluates to a non-zero Number or
		a non-empty String, then the Visual mode will be cleared and
		the old value is returned.  See |non-zero-arg|.


[posix] examples in src/posix/README.md doesn't work

Describe the bug
The nrf52840 examples in src/posix/README.md stops working when start with command ./output/posix/x86_64-unknown-linux-gnu/bin/ot-cli /dev/ttyACM0 115200. The program exit silently with an exit code 6, which is represented as OT_EXIT_RADIO_SPINEL_NO_RESPONSE.
To Reproduce
Information to reproduce the behavior, including:

Git commit id: bfef9c6a035fe33e4727db6b85dd06750de74d51
IEEE 802.15.4 hardware platform: nrf52840 DK
Build steps: follow the examples in src/posix/README.md
Network topology: none.

Expected behavior
it is expected that the ot-cli will start successfully anf output a rpompt:
>

Console/log output
no output but has a non-zero exit value (6 = OT_EXIT_RADIO_SPINEL_NO_RESPONSE).
Additional context
The nrf52840 examples with USB=0 can be fixed by change the command to:
./output/posix/x86_64-unknown-linux-gnu/bin/ot-cli /dev/ttyACM0 115200N1H

Because the nrf52xxx drivers enable hardware flow control by default:
https://github.com/openthread/openthread/blob/bfef9c6a035fe33e4727db6b85dd06750de74d51/examples/platforms/nrf528xx/nrf52840/transport-config.h#L77
So enable flow control with the H at the end of the command works.
But the example with SUB=1 keeps failing and the exit with the same value, when started with same command above.

@wgtdkp , is this still an issue?

No, should be closed.


Document search api

This PR addresses #707 by adding some example documentation on search queries and a unit test for what GitHub terms "search qualifiers", e.g., "is:issue".

Apologies for the flurry of commits. I think this is good now.

@shurcooL ping as Travis has completed


After training my own data set successfully, you run demo.py with the following problems

(py35GPU) F:\desktop\shujudata\GPUFaster-RCNN-TensorFlow-Python3.5-master>python35 demo.py
2019-05-20 17:01:29.627866: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-05-20 17:01:30.098738: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1405] Found device 0 with properties:
name: GeForce GTX 1060 major: 6 minor: 1 memoryClockRate(GHz): 1.6705
pciBusID: 0000:01:00.0
totalMemory: 3.00GiB freeMemory: 2.42GiB
2019-05-20 17:01:30.186337: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1484] Adding visible gpu devices: 0
2019-05-20 17:01:39.729633: I tensorflow/core/common_runtime/gpu/gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-05-20 17:01:39.738410: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971]      0
2019-05-20 17:01:39.742103: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 0:   N
2019-05-20 17:01:39.767422: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 2117 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060, pci bus id: 0000:01:00.0, compute capability: 6.1)
WARNING:tensorflow:From F:\desktop\shujudata\GPUFaster-RCNN-TensorFlow-Python3.5-master\lib\nets\network.py:57: calling expand_dims (from tensorflow.python.ops.array_ops) with dim is deprecated and will be removed in a future version.
Instructions for updating:
Use the axis argument instead
Traceback (most recent call last):
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1278, in _do_call
return fn(*args)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1263, in _run_fn
options, feed_dict, fetch_list, target_list, run_metadata)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1350, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]
[[Node: save/Assign_1 = Assign[T=DT_FLOAT, _class=["loc:@vgg_16/bbox_pred/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](vgg_16/bbox_pred/weights, save/RestoreV2/_3)]]
[[Node: save/RestoreV2/_60 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_66_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1725, in restore
{self.saver_def.filename_tensor_name: save_path})
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 877, in run
run_metadata_ptr)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1100, in _run
feed_dict_tensor, options, run_metadata)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1272, in _do_run
run_metadata)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\client\session.py", line 1291, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]
[[Node: save/Assign_1 = Assign[T=DT_FLOAT, _class=["loc:@vgg_16/bbox_pred/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](vgg_16/bbox_pred/weights, save/RestoreV2/_3)]]
[[Node: save/RestoreV2/_60 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_66_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"]]
Caused by op 'save/Assign_1', defined at:
File "demo.py", line 143, in
saver = tf.train.Saver()
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1281, in init
self.build()
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1293, in build
self._build(self._filename, build_save=True, build_restore=True)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1330, in _build
build_save=build_save, build_restore=build_restore)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 778, in _build_internal
restore_sequentially, reshape)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 419, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 112, in restore
self.op.get_shape().is_fully_defined())
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\ops\state_ops.py", line 216, in assign
validate_shape=validate_shape)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\ops\gen_state_ops.py", line 60, in assign
use_locking=use_locking, name=name)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\util\deprecation.py", line 454, in new_func
return func(*args, **kwargs)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\ops.py", line 3155, in create_op
op_def=op_def)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\ops.py", line 1717, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]
[[Node: save/Assign_1 = Assign[T=DT_FLOAT, _class=["loc:@vgg_16/bbox_pred/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](vgg_16/bbox_pred/weights, save/RestoreV2/_3)]]
[[Node: save/RestoreV2/_60 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_66_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "demo.py", line 144, in
saver.restore(sess, tfmodel)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1759, in restore
err, "a mismatch between the current graph and the graph")
tensorflow.python.framework.errors_impl.InvalidArgumentError: Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]
[[Node: save/Assign_1 = Assign[T=DT_FLOAT, _class=["loc:@vgg_16/bbox_pred/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](vgg_16/bbox_pred/weights, save/RestoreV2/_3)]]
[[Node: save/RestoreV2/_60 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_66_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"]]
Caused by op 'save/Assign_1', defined at:
File "demo.py", line 143, in
saver = tf.train.Saver()
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1281, in init
self.build()
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1293, in build
self._build(self._filename, build_save=True, build_restore=True)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 1330, in _build
build_save=build_save, build_restore=build_restore)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 778, in _build_internal
restore_sequentially, reshape)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 419, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\training\saver.py", line 112, in restore
self.op.get_shape().is_fully_defined())
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\ops\state_ops.py", line 216, in assign
validate_shape=validate_shape)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\ops\gen_state_ops.py", line 60, in assign
use_locking=use_locking, name=name)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\util\deprecation.py", line 454, in new_func
return func(*args, **kwargs)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\ops.py", line 3155, in create_op
op_def=op_def)
File "E:\anaconda\envs\py35GPU\lib\site-packages\tensorflow\python\framework\ops.py", line 1717, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]
[[Node: save/Assign_1 = Assign[T=DT_FLOAT, _class=["loc:@vgg_16/bbox_pred/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](vgg_16/bbox_pred/weights, save/RestoreV2/_3)]]
[[Node: save/RestoreV2/_60 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_66_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Assign requires shapes of both tensors to match. lhs shape= [4096,84] rhs shape= [4096,20]

As written in the output, there is a mismatch between the model you are trying to restore and the one you saved, you should probably change the 21 in the following line(the same that causes the error)
    net.create_architecture(sess, "TEST", 21,
                            tag='default', anchor_scales=[8, 16, 32])

I opened a pull request that clarifies and improve the code

Resolved in relevant PR.


FileNotFoundException thrown for gatewayconfig.json file

System.IO.FileNotFoundException occurred   HResult=0x80070002   Message=Could not find file 'F:\gitHubRepo\opcPub\iot-edge-opc-publisher\src\GatewayApp.NetCore\bin\Debug\netcoreapp1.1\gatewayconfig.json'.   Source=<Cannot evaluate the exception source>   StackTrace:    at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent)    at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent)    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)    at System.IO.File.InternalReadAllText(String path, Encoding encoding)    at System.IO.File.ReadAllText(String path)    at GatewayApp.NetCore.Program.Main(String[] args) in F:\gitHubRepo\opcPub\iot-edge-opc-publisher\src\GatewayApp.NetCore\Program.cs:line 33
.NETCore app does not gatewayconfig.json file.
I wonder if it is because of the working directory has been changed in launchSettings.json.
 "workingDirectory": ".\\bin\\Debug\\netcoreapp1.1".
If I copy the file into above directory then application does not throw exception.

publish the app.


Geomoose - save-load and reading offline ?!

Hey guys ,
Actually I just wondering is there anyway to save shapes (point , line , polygons and so on.) to a file and then again just load that and it's shows again on the map ?
another question is, is there anyway to reading the offline map and use geomoose in offline mode ?
if yes how?
thanks a lot ...

Please try email the mailing list with questions:

<EMAIL_ADDRESS>


Milestone 6: Improve accessibility of the portfolio

Changes made to improve the accessibility

Page titles - change the title to descriptive and meaningful. Click Here to see the change.
Image text alternatives  - change alternative image text to be meaningful full Click here to see the code
Text headings - no issues found
Color contrast - there is a color contrast issues and we didn't change because of the figma design requirement
Resize  - no issues found.
Interaction - Add labels for the contact form input controls and make it hidden. Here is the code
Moving content - no issues found
Multimedia - no issues found
The basic structure of the page - no issues found

Hi @Team
There are some issues that you still need to work on to go to the next project but you are almost there!
To Highlight ✅ You used the correct Github flow ✅ Descriptive pull request message ✅ linter error checks validated ✅ Documented your work professionally ✅ Accessibility ok
Required Changes ♻ Check the comments under the review Optional suggestions _Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear. Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise. As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

@tufoinnkuo10 Thank you for your feedback. We really appreciate it if you could indicate the issues that we need to work on.


Allow specifying a chip via environment variable

Pretty minor change, but this solves a problem for me when using in conjunction with embedded-test :)
Wasn't totally sure on the env var naming, considered PROBERS_CHIP as well, or maybe something else would be better. Regardless, happy to change it.
Also wasn't sure whether or not any other options would benefit from this, but I'm happy to add more if requested.

Variable name is PROBE_RS_CHIP.
(Added this here because this feature was a lot easier to find via PR number)


typed deepmerge

https://github.com/TehShrike/deepmerge/issues/179
This deep merges more accurately than https://github.com/TehShrike/deepmerge/pull/181
I added a typescript test to validate some more complex use cases

This is good but it's not quite there yet.
Problems found:
Case 1:
const a = {
  a: 1,
  b: 'abc',
};
const b = {
  b: 2,
};

const r1 = deepmerge(a, b);

r1 is typed as { a: number; b: string | number; } here where it should be typed as { a: number; b: number; }
Case 2:
(possibly just another instance of the same issue)
interface T {
  a: string;
  b?: string;
}
const t1: T = { a: "foo" };
const t2: T = { a: "bar" };

const r2 = deepmerge(t1, t2);

r2 is typed as { a: string; b: string; } here where it should be typed as T. This issue is dangerous as console.log(r2.b.toLowerCase()) would not throw any compile errors, but a runtime error is thrown.

I've edited my above comment as I wasn't initially run in strict mode while test (why isn't strict on mode default???).
Anywho, @TehShrike I think this MR is good enough to merge in as is. There are slight issues with it and  improvements that can be made but this type def is a lot better than what's currently on master.


Bump to LLVM green commit from 2023-05-01

Bumps onnx-mlir to the latest green commit of May 1st 2023

The pipeline fails with CMake failing to find LibEdit. I can't reproduce this on my local machine. Does anyone have an idea of what to do with this?

The pipeline fails with CMake failing to find LibEdit. I can't reproduce this on my local machine. Does anyone have an idea of what to do with this?

not sure but maybe something to do with this https://reviews.llvm.org/D147153

Thanks for the review!
I didn't even realize that x.cast was deprecated. Thanks for letting me know

I updated NNPA to fix the build issues there.
As for LibEdit, I set in the Dockerfile.llvm-project to disable LibEdit. I hope that helps, but I'm not sure if all build bots are using this Dockerfile as a base.

I'm now running into issues around the removal of preloadDialectsInContext. @imaihal I saw a TODO addressed to you in the code to make onnx work without relying on this. Could this be fast-tracked, such that the bump can be completed? At the moment this is blocking it.

@tungld @AlexandreEichenberger
Thanks for trying to help move this forward. As @hamptonm1 probably pointed out to you, I am only allowed to work on this part-time and therefore don't have the resources to fix bigger TODOs that pop up as a consequence from bumping.
With this latest bump, MLIR has removed the option preloadDialectInContext from mlir-opt like tools. Details can be found under https://mlir.llvm.org/deprecation/ and https://discourse.llvm.org/t/psa-preloaddialectincontext-has-been-deprecated-for-1y-and-will-be-removed/68992.
I am not really sure what that option was doing under the hood, but the original description says the following:
/// - preloadDialectsInContext will trigger the upfront loading of all
///   dialects from the global registry in the MLIRContext. This option is
///   deprecated and will be removed soon.

You can trigger the same error as this bump PR is currently seeing by modifying this line of code in onnx-mlir-opt to:
              allowUnregisteredDialects, /*preloadDialectsInContext*/ false,

From looking at the commit that removed the option it looks like this was telling MLIR to load every available dialect instead of only the dialects that have been explicitly mentioned as being required. I assume that you will have to go through every pass that is causing a crash and double-check the list of dependent dialects for that pass. This can be fixed independently of this bump on the main branch.
This is all the information I currently have about this issue. Let me know if you need more information or if you feel like this should be part of the bump. I'm open to open the discussion internally in our team as well.

@gargaroff thank you for your effort and explanation!
It's a pity that MLIR completely removed this flag and we have no transition time.
It looks to me the finally solution should be implementing getDependentDialects for every pass. And even when we do that, I am not sure whether it affects DiposablePool proposed by @sorenlassen, because DiposablePool looks to be relevant to Dialect. @sorenlassen might have more comments on DiposablePool.
Be said that, it might take time to update our code. Do you have any recommendation on a short term solution? In one of the threads you cited, they mentioned If you will want to still preload dialects in the future, the only workaround will likely be to fork MlirOptMain.cpp in your own project.. Do you think it is possible?
@imaihal please give your comments on this, it seems you did something about this code in the past. Thanks!

@tungld I think we can just register all the dialects up front, see PR #2233

@AlexandreEichenberger Looks like this fixed the issue. I'm glad this turned out to be a super easy fix.

Now you can merge this in @gargaroff. Hard work paid off! 😊

Thanks @hamptonm1 for raising this internally in your team. I'm glad we were able to start this regular rotation

Thanks @hamptonm1 for raising this internally in your team. I'm glad we were able to start this regular rotation

All checks passed @gargaroff …. Do you have permissions to merge in this repository? If not I can merge it.

@hamptonm1 Unfortunately I don't, so please go ahead and merge it

Sure I can merge it!
@AlexandreEichenberger Can we get him write access for this repo?

Unfortunately I don't, so please go ahead and merge it

@gargaroff granted now. please use wisely.

@jenkins-droid test this please

Jenkins Linux amd64 Build #11077 [push] Bump to LLVM green commi... started at 13:16

Jenkins Linux ppc64le Build #10133 [push] Bump to LLVM green commi... started at 14:21

Jenkins Linux s390x Build #11086 [push] Bump to LLVM green commi... started at 14:16

Jenkins Linux amd64 Build #11077 [push] Bump to LLVM green commi... failed after 59 min

Jenkins Linux s390x Build #11086 [push] Bump to LLVM green commi... passed after 3 hr 9 min

Jenkins Linux ppc64le Build #10133 [push] Bump to LLVM green commi... passed after 3 hr 34 min


Recolor HP XP drops when praying

With split XP drops, HP XP drops are not recolored when using prayers.
I think they should be recolored. Why I think this would make sense:

HP is a combat skill.
Clarity (Makes it easier to see that you had pray enabled for the hit. Instead of seeing a non-colored drop and a colored drop, you'd see 2 colored drops.)

Before:

After:

Combined XP drops:

I agree, it would make sense to also colour the HP drop.

Fixed in #1791


[SPARK-34033][R] SparkR Daemon Initialization

What changes were proposed in this pull request?
A way of letting sparkR users preload libraries and other initialization
in the daemon before it starts forking. A full description can be found
in docs/sparkr.md.
Why are the changes needed?
Performance
Does this PR introduce any user-facing change?
Yes. It introduces two new sparkR session parameters,
spark.r.daemonInit and spark.r.daemonTimeout, as described in
docs/configuration.md.
How was this patch tested?
added pkg/tests/fulltests/test_daemon_initialization.R

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Greetings @HyukjinKwon
Thanks so much for your review of #31072! I had to close that PR as I forgot rebasing git causes bad things to happen in github.
Regarding parameterizing the path to the core components of sparkR, namely daemon.R and worker.R. I think this is an excellent solution if your objective is to implement coverage analysis. I just want my users to routinely move their initialization into the daemon.
I'm looking at python/test_coverage/coverage_daemon.py
I agree that spark.python.daemon.module is more general and more powerful than what I am proposing. This PR is for fixing one thing, whereas what you did was a very general solution to a different problem. I don't want to warn my users that this is for advanced users only. The concept is simple: put your initialization code here.
I propose we provide
spark.r.daemon.finalize
spark.r.daemon.initialize
spark.r.worker.finalize
spark.r.worker.initialize
where the value of each of those are strings of R code
that way we've achieved the same ends you have without forcing the user to understand the minutia of how and what to load. If you agree, I will change this PR to be the implementation of spark.r.daemon.initialize (instead of what it is now, spark.r.daemonInit). I would then open another ticket to implement the other flags.

Greetings @HyukjinKwon
Thanks so much for your review of #31072! I had to close that PR as I forgot rebasing git causes bad things to happen in github.
Regarding parameterizing the path to the core components of sparkR, namely daemon.R and worker.R. I think this is an excellent solution if your objective is to implement coverage analysis. I just want my users to routinely move their initialization into the daemon.
I'm looking at python/test_coverage/coverage_daemon.py
I agree that spark.python.daemon.module is more general and more powerful than what I am proposing. This PR is for fixing one thing, whereas what you did was a very general solution to a different problem. I don't want to warn my users that this is for advanced users only. The concept is simple: put your initialization code here.
I propose we provide
spark.r.daemon.finalize
spark.r.daemon.initialize
spark.r.worker.finalize
spark.r.worker.initialize
where the value of each of those are strings of R code
that way we've achieved the same ends you have without forcing the user to understand the minutia of how and what to load. If you agree, I will change this PR to be the implementation of spark.r.daemon.initialize (instead of what it is now, spark.r.daemonInit). I would then open another ticket to implement the other flags.

I still think it's better to have one solution to cover many cases. Having spark.r.daemonInit will fix one arguably corner case. You can wait for other committers to comment if you'd like to stick with the current approach.

I still think it's better to have one solution to cover many cases. Having spark.r.daemonInit will fix one arguably corner case. You can wait for other committers to comment if you'd like to stick with the current approach.

I think the solution you suggest would intimidate my users so yes, I would love a second opinion.

I think the solution you suggest would intimidate my users so yes, I would love a second opinion.

I dont' know much about R - why does this help improve performance?

I dont' know much about R - why does this help improve performance?

It is like moving the invariant expression out of the loop. It is the difference between loading supporting libraries once vs loading them millions of times.
It is described in detail in docs/sparkr.md

I see. This sounds a bit like proposals for executor-wide initialization, though this is a bit more acute as a new R process spawns for every task. I wonder if there are side effects, like, one-time init from one job being picked up in later ones and that causing surprise. I haven't thought that through though.


fix for #81 - added 2 methods

lazyLoaded
lazyLoadError

@devmark please add this fix to the repo

@Hargat, thank you a lot!


Requesting a specific plan with related attributes by direct API fails

Because of bug #129 the API calls below are unusable since it is impossible to obtain a correct plan ID (randomly guessing ID is not a solution).
To reproduce the bug:

Log into the DMPTool as institutional admin.

Call the following documented API https://github.com/CDLUC3/dmptool/wiki/API#for-a-specific-plan-with-all-related-attributes-this-api-request-requires-authentication either by direct CURLing or pasting into the browser:
$ curl -H "Authorization: Token token=token_number" https://dmptool.org/api/v1/plans_full/:id

expected result: The call returns a specific institutional plan (per ID number) with all related attributes.
actual result: The call returns the message "The plan you are looking for doesn't exist" (most of the randomly tested id-numbers don't refer to actual plans).

Looks like we just need to add id as part of plan output so users can map their plans id in the API call

https://www.pivotaltracker.com/story/show/99827726

This isn't a bug - the plan doesn't exist.  However, fixing issue #129 will help from encountering this issue.