Fixed skipping subscription for mandatory webhooks

Description
Fixes #1123
This Pull Request addresses an issue that caused an error when trying to automatically subscribe to a webhook that does not require registration, such as CUSTOMERS_DATA_REQUEST, CUSTOMERS_REDACT, and SHOP_REDACT. The error occurs because the existing implementation tries to register these webhooks automatically, even though they do not require registration.
To solve the issue, we added a constant SUBSCRIPTION_NOT_REQUIRED_TOPICS to the ShopifyAPI::Webhooks::Registry class, which contains the list of topics that do not require registration. We also added a private method subscription_not_required_topic?(topic) that checks whether a given topic is in the list of topics that do not require registration. Finally, we updated the register and get_webhook_id methods to check whether a given topic requires registration before trying to subscribe to it.
Context
This PR fixes an issue that caused an error when trying to dynamically subscribe to a webhook that does not require registration, such as CUSTOMERS_DATA_REQUEST, CUSTOMERS_REDACT, and SHOP_REDACT.
Impact
This change improves the reliability of the ShopifyAPI::Webhooks::Registry class by preventing unnecessary registration requests for webhooks that do not require it.
How has this been tested?
We added a new test case test_register_when_mandatory_webhook_topic to the ShopifyAPITest::Webhooks::RegistryTest class to verify that the registration succeeds for webhooks that do not require it. We also updated the existing test cases to reflect the changes in the implementation.

[x] I have added tests that prove my fix is effective or that my feature works.
[x] I have updated the project documentation.
[x] I have added a changelog line.

Looking at how our app template shows how we are meant to use register mandatory webhooks, I don't think we will want to skip these topics. As I understand it, we still need to direct these topics to a specific address in our apps even if we don't need to register them.
If my understanding is wrong and/or you find that by following our template's example still produces errors feel free to reopen this issue and we can continue discussing. Thank you!


App crashes on installs after adding prepareInterstitial to code with wikipedia app

Hi,
I've been having a weird issue with my app ever since I've added interstitial ads: a new exception appears- able to reproduce only if wikipedia app is installed on device (Exception attached below).
Any idea as to where to start in solving this? aside to asking my users to not install wikipedia app or not use interstitial :P
Tried removing the prepareInterstitial  command and app works, tried removing the create banner which existed code above and return prepareInterstitial and still crashes.
The command i use for interstitial that leads to the crash:
prepareInterstitial({adId:adMobIds.interstitial, autoShow:false});
Thanks
exception:
W/dalvikvm(28718): threadid=1: thread exiting with uncaught exception (group=0x41b1fce0)
I/ActivityManager( 2271): START u0 {act=android.intent.action.VIEW dat=file:///android_asset/www/undefined cmp=org.wikipedia/.settings.LicenseActivity} from pid 28718
W/ActivityManager( 2271): Permission Denial: starting Intent { act=android.intent.action.VIEW dat=file:///android_asset/www/undefined cmp=org.wikipedia/.settings.LicenseActivity } from ProcessRecord{443d9778 28718:com.fitnessmeals.fitnessmealplanner/u0a137} (pid=28718, uid=10137) not exported from uid 10125
E/AndroidRuntime(28718): FATAL EXCEPTION: main
E/AndroidRuntime(28718): Process: com.fitnessmeals.fitnessmealplanner, PID: 28718
E/AndroidRuntime(28718): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=file:///android_asset/www/undefined cmp=org.wikipedia/.settings.LicenseActivity } from ProcessRecord{443d9778 28718:com.fitnessmeals.fitnessmealplanner/u0a137} (pid=28718, uid=10137) not exported from uid 10125
E/AndroidRuntime(28718): 	at android.os.Parcel.readException(Parcel.java:1472)
E/AndroidRuntime(28718): 	at android.os.Parcel.readException(Parcel.java:1426)
E/AndroidRuntime(28718): 	at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2115)
E/AndroidRuntime(28718): 	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1419)
E/AndroidRuntime(28718): 	at android.app.Activity.startActivityForResult(Activity.java:3424)
E/AndroidRuntime(28718): 	at org.apache.cordova.CordovaActivity.startActivityForResult(CordovaActivity.java:337)
E/AndroidRuntime(28718): 	at android.app.Activity.startActivityForResult(Activity.java:3385)
E/AndroidRuntime(28718): 	at android.app.Activity.startActivity(Activity.java:3627)
E/AndroidRuntime(28718): 	at android.app.Activity.startActivity(Activity.java:3595)
E/AndroidRuntime(28718): 	at org.apache.cordova.inappbrowser.InAppBrowser.openExternal(InAppBrowser.java:346)
E/AndroidRuntime(28718): 	at org.apache.cordova.inappbrowser.InAppBrowser$1.run(InAppBrowser.java:176)
E/AndroidRuntime(28718): 	at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(28718): 	at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(28718): 	at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(28718): 	at android.app.ActivityThread.main(ActivityThread.java:5146)
E/AndroidRuntime(28718): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(28718): 	at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(28718): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
E/AndroidRuntime(28718): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
E/AndroidRuntime(28718): 	at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 2271):   Force finishing activity com.fitnessmeals.fitnessmealplanner/.MainActivity
I/dalvikvm(28835): Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.a
W/dalvikvm(28835): VFY: unable to resolve virtual method 421: Landroid/content/pm/PackageManager;.getPackageInstaller ()Landroid/content/pm/PackageInstaller;
D/dalvikvm(28835): VFY: replacing opcode 0x6e at 0x000b
W/ActivityManager( 2271): Activity pause timeout for ActivityRecord{42b0ffa8 u0 com.fitnessmeals.fitnessmealplanner/.MainActivity t931 f}
W/BroadcastQueue( 2271): Skipping deliver [background] BroadcastRecord{43c55660 u-1 android.net.wifi.RSSI_CHANGED} to ReceiverList{435f00a8 28718 com.fitnessmeals.fitnessmealplanner/10137/u0 remote:42a98608}: process crashing

I did not find any relationship with this plugin.
Your app is visiting some files obviously not existing: file:///android_asset/www/undefined
Why your app will call activity from another process? Did your app or the wikipedia app do something wrong?
I/ActivityManager( 2271): START u0 {act=android.intent.action.VIEW dat=file:///android_asset/www/undefined cmp=org.wikipedia/.settings.LicenseActivity} from pid 28718
W/ActivityManager( 2271): Permission Denial: starting Intent { act=android.intent.action.VIEW dat=file:///android_asset/www/undefined cmp=org.wikipedia/.settings.LicenseActivity } from ProcessRecord{443d9778 28718:com.fitnessmeals.fitnessmealplanner/u0a137} (pid=28718, uid=10137) not exported from uid 10125

Good question, I have no idea as to what is going on with the Wikipedia plugin, but I do know that I'm not calling any activities in other processes (at least not intentionally).
What I do know this consistently happens when I use the prepareInterstitial with wikipedia app installed. Have emails from users that the same happens and they do not have wikipedia but do additional info.
I'm releasing a version soon where i disabled prepareInterstitial, I'll see if this indeed solves the issue for now...

I just guess, the wikipedia plugin hijack the http protocol in order to jump to wikipedia app. That should be the bug of the wikipedia plugin.

OK, so some updates:

Notice the correction i made able. there is not Wikipedia plugin in play, I meant wikipedia app. once it's installed my app does not work with prepareInterstitial (doesn't event download, showing error 505 for some users, which i do not understand how this happens before app code even runs...)
after the headache of upgrading cordova, attempting v4.1.1 and 5.0.0 of cordova-android, upgrading all the plugins (I'll have to do some major testing for the app later, but one problem at a time) I still have no problem running the app, WITHOUT wikipedia app installed without prepareInterstitial.

What i found so far looking around online did not help. tried changing keys for app since there was a suggestion there can be an issue with it, did not change anything. tried to add export="true" to activities in the config.xml, nothing. tried adding all whitelist approvals for cordova, same output.
commented prepareInterstitial, works. can't get what's going on...

Some more updates:
Don't know why I didn't start with this, i presume because interstitial ads worked, but removed wikipedia app and my app works, so far no news.
this time I wrote the method call with the success and failure callbacks, and it fails.
this shows me two errors in the alert depending the method i call:
AdMob.prepareInterstitial(appConfigService.adMobId.interstitial, function(){
alert("success");
}, function(err){
alert("failed " + err);
});
Shows:

Whereas running:
AdMob.prepareInterstitial({adId:appConfigService.adMobId.interstitial, autoShow:false}, function(){
alert("success");
}, function(err){
alert("failed " + err);
});
Shows:

Aside to receiving two different messages this seems weird because i'm calling AdMob.showInterstitial after the failure and it works and shows ad!
Now, looking at logcat there are two weird issues appearing, take note everything seems to be working, I wouldn't check the log if it wasn't for this issue.
Issue 1({adId:.., autoshow:...}):
I/ActivityManager(  479): START u0 {act=android.intent.action.VIEW dat=file:///android_asset/www/undefined (has extras)} from uid 10133 on display 0
Issue 2 (adId directly):
E/PluginManager(18723): Uncaught exception from plugin
E/PluginManager(18723): java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONObject.length()' on a null object reference
E/PluginManager(18723): 	at com.rjfun.cordova.ad.GenericAdPlugin.execute(GenericAdPlugin.java:195)
E/PluginManager(18723): 	at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:95)
E/PluginManager(18723): 	at org.apache.cordova.PluginManager.exec(PluginManager.java:130)
E/PluginManager(18723): 	at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
E/PluginManager(18723): 	at org.crosswalk.engine.XWalkExposedJsApi.exec(XWalkExposedJsApi.java:40)
E/PluginManager(18723): 	at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
E/PluginManager(18723): 	at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
E/PluginManager(18723): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/PluginManager(18723): 	at android.os.Looper.loop(Looper.java:135)
E/PluginManager(18723): 	at android.os.HandlerThread.run(HandlerThread.java:61)

@floatinghotpot , What would you recommend as next steps?

I am also running into this issue, hopefully a fix can be delivered.

the prepareInterstitial() has a bug and always return error even success, I will fix it soon. as no negative impact, you can simply ignore it now.
valid args should be an object, AdMob.prepareInterstitial({ adId: 'your_ad_unit_id' }, ...), will fail if pass string as arg only. however, I think passing a string is reasonable, and I will change to accept it later.

Can the error message be more informative? after the fix I will run it again and see it it gives better clues as to why app crashes with wikipedia app.
P.S has anyone else checked the bug out? download the wikipedia app and run your app with this plugin, do you reach the same failures?

Don't know what it was, but I can confirm issue is solved


Not able to save settings and image / dark theme not working

I have installed the app from the Flathub.org.
The app is working correctly, except it does not want to do two things:

after the "Prefer dark theme" box is checked, it doesn't do anything, even after the app restart
the same effect is when try to set custom icon for the server

The only thing I can retrieve from the terminal is the following:
Gtk-Message: 18:38:12.443: Failed to load module "xapp-gtk3-module"

@emmanueltouzery do you have some idea for further analysis?

so, for the dark theme... it works for me, i'm using the sway window manager under linux.
maybe it's also with the flatpak, although i think it should work.
BUT. i'm currently quite far in a rewrite of the GUI, because the current GUI is gtk3. The next GUI will be gtk4 and I believe dark mode works differently in gtk4. So hopefully that will work better for you. That said the rewrite is still months away. But it doesn't make me too motivated to look in that issue for now :(
I'm not sure what you mean about a custom icon for a server? Maybe you mean for a project? And otherwise i'm planning to remove project icons (maybe the only 'regression') in the upcoming rewrite of the GUI.
I'm also not sure about that error message from the terminal :(

update: another user using the projectpad flatpak on gnome confirmed to me that the dark mode works for him.

That's some great news! It is really pleasing to hear that you are preparing a new version.
I tried to build the app from source, but failed...
Can you consider adding some download link of compiled binary?


Composed styles

Basic skin implementation for components using composition.
Added unit tests U
Updated README file.

Please review and let me know your comments:
import React, {Component} from 'react'
import injectSheet from 'react-jss'

@injectSheet(parentProps => {
  const {
    buttonBackgroundColor = 'yellow',
    labelWeight = 'normal'
  } = parentProps;

  return {
    button: {
      backgroundColor: buttonBackgroundColor
    },
    label: {
      fontWeight: labelWeight
    }
  }
})
export default class Button extends Component {
  render() {
    const {sheet: {classes}, children} = this.props
    return (
      <button className={classes.button}>

          {children}

      </button>
    )
  }
}

cc @nathanmarks

Lots of things to be considered, I want a solid theming solution.

Have you seen https://github.com/nathanmarks/jss-theme-reactor ?

I understand about the need of a whole theming/skinning solution.  This is more like a meanwhile placeholder that allows us to somehow skinning reactively.  jss-theme-reactor seems more like a manager, which would be a good idea when considering skinning.  Thanks for the feedback ;)

Question: would your use case be solved this way?

@kof Indeed.  I am actually using it this way, works really nice.  Did you try?

Did you try?

Did I try classes composition? Sure, thats what I do all the time.

Oh sorry, I completely interpreted wrong the question. No, using classNames didn't solve my problem.  I wanted my component to react to the props of the component, where there would be logic that defines the skinned style object.

What would happen if your component renders multiple times with different props?

A sheet produced by react-jss is shared between all elements of a given component. This means that if a component can rerender the sheet, it neeeds to render a different sheet, it can't rerender the one shared between all elements.
By element I mean the result of React.createElement().

I kept the refs counter that allows a jss instance to be attached per element, so suppose we have a List component with decorated Item components
If for some reason List renders this:
<List>
  <Item skin="default" />
  <Item skin="other" />
</List>

the classes defined by default will attach the style, so the second item won't get new styles, so this approach won't work since the decorated Item would react onComponentUpdate, so, if the list re-renders to this:
<List>
  <Item skin="first" />
  <Item skin="second" />
</List>

Then the first item would detect a change to the first skin param, then the second would detect a new change, so at the end both items would have the second skin styles.  Obviously that is not ideal neither.
So:

There would be one skin for the elements of a class at all time no matter if all instances have different props that define the skin.
JSS won't attach a different style tag per skin and per element. I use the jss.removeStyleSheet(sheet) if a change is detected.

We can't do that. Its totally not what one would expect from this api.

If I render this, as a user, I expect both components styled properly.
      const WrappedComponent = injectSheet(props => ({
        button: {color: props.buttonColor || 'red'}
      }))()
      render(
<WrappedComponent /><WrappedComponent buttonColor="green" />
, node)

Yeah, that is not gonna happen with the approach of this PR since the problem I wanted to solve was the skinning and the reaction of all WrappedComponents via a shared skin prop used globally, if you want a button blue, you see it blue in every implementation (so in every React.createElement).
A better approach is to have a SkinProvider using a childContextType param that defines the skin (similar to what react-redux does for the store)... also we can leverage the use of @nathanmarks's jss-theme-reactor  so, the Wrapper Component inside the decorator will react on the context value and we can injectStyles like:
injectSheet(theme => ({
  button: {color: theme.buttonColor || 'red'}
}))

So you're right about it. in the meanwhile my approach solved the problem I had, but it is prune to misinterpretation of the actual solution.  I'll see the jss-theme-reactor soon and work in it too.

@nathanmarks @kof I updated the code so instead of props it uses the theme context.  We can encourage to use a Provider that works well with jss-theme-reactor.
Read the entry I left for the README.

Next is this one.

The support for a provider is very limited with this approach given the fact that I don't cover:

The used provider.
The fact that context is never propagated into pure components.

At the end I resolved my problematic with a custom implementation leveraging redux and extending jss outside jss-react.  I believe this PR won't be relevant anymore if there is a jss theme provider plugin.  @kof what are your thoughts?

Closing, since skin resolution would be on the side of jss not on the side of reacct-jss


Add usage examples

To help folks that want to make practical use of bevy_impulse, we should provide some examples where the library is being applied to use cases that are substantial enough to be instructive while simple enough to be easily understood. The unit and integration tests can be referenced to see how the API works, but those demonstrations take a lot of imagination to translate to real-world use cases.
Anyone who has an idea for a specific example use case can open an issue ticket describing what kind of use case they would like to see.

The thing I've struggled with most and the reason I haven't written an example yet is I've found it very difficult to think of a concrete example which is both complex enough to serve as a useful reference point and simple enough that users won't feel immediately overwhelmed by the details.
In my mind a good example should have one or more of these elements:

[ ] a REST API call inside of an async provider (e.g. to fetch a .png to use as a texture)
[ ] loading a file/asset from disk using an async provider
[ ] a continuous service that controls the motion of something in the scene
[ ] a workflow that defines the behavior of some agent(s) in the scene, switching between different modes and being able to loop

Maybe the best way to achieve "simplicity" is to put the key workflow code inside main.rs and then hide the implementation details in other module (.rs) files. So if the example uses egui then any systems that implement UI-related logic can go into a ui.rs file while main.rs is reserved for only the application setup and workflow building.

I share the same thoughts.
The examples should be simple enough for people to understand the concept and usage.
I see there can be two approaches from our discussion:
Centralized approach
Having 1 main.rs file that writes out the different services. (similar to bevy_egui)
Decentralized approach
Having multiple example files, (e.g. async_service.rs)  which contains just enough to showcase the service. (similar to zenoh)
Miscellaneous
Both ways should have all the code that the users do not need to see (e.g. struct definitions, ui) embedded in either main.rs or lib.rs in the src folder, maybe encapsulated by a bevy plugin.
We can also write a REST API server using the warp crate so users can call GET or PUT to trigger the services.


Update read_nctiles.m to improve performance of reading V4r4 files

Updated read_nctiles.m to improve the performance when reading V4r4 files.

Hi @owang01  you might try additional capacity of "dir" (to replace in-line "findfiles")
something like dir('**/*.nc'), more detail
https://www.mathworks.com/help/matlab/ref/dir.html#bvd_n8a

@hongandyan The MATLAB command dir is not as robust as the customized in-line routine findfiles I wrote, since the directory structures are not the same among the directories. For instance,  the *nc files for nctiles_monthly/OBP are in the sub-directories two levels down, while those for nctiles_daily/OBP are third levels down. The MATLAB command "dir" can't search files recursively in the sub-directories and we would have to explicitly specify the path. On the other hand, findfiles can search the files recursively and therefore the same calling command can be used for directories having different structures.

@owang01
"findfiles" is very smart. But I guess "dir" is concise.
dir('/*.nc') can collect nc files recursively.
Then one only needs to assemble the result, something like
flist=dir('/*.nc');
file1=fullfile(flist(1).folder,flist(1).name);
It's up to you :-)

@hongandyan Thank you for the follow-up. I tired your way to find *.nc under nctiles_monthly/OBP, but can't find any matches. Below please find the commands I used and the two lists: flist from using your way and flist2 from using findfiles. The latter correctly found the 312 monthly-mean files.

cd nctiles_monthly/OBP
flist=dir('/*nc');
whos flist
Name       Size            Bytes  Class     Attributes

flist      0x1               384  struct

flist2=findfiles('./','*nc');
whos flist2
Name        Size             Bytes  Class    Attributes

flist2      1x312            85488  cell

@gaelforget I submit a new pull https://github.com/MITgcm/gcmfaces/pull/13 to use the built-in function dir for recursive file search in read_nctiles.m as suggested by @hongandyan. Thank you @hongandyan for the suggestion.

Not that using ** will search directories recursively,  see https://uk.mathworks.com/help/matlab/ref/dir.html#bvd_n8a
So "flist=dir('**/*nc');" may work?

@emmomp Thank you. That is actually also what @hongandyan had suggested. I had implemented it in my PR #13 in May.

Appologies for not haven done this yet -- meant to test it and never did. My understanding is I that should merge #13 instead. Is that right?


Error: The result of this StaticQuery could not be fetched

Checked out lesson-20 branch from https://github.com/iamshaunjp/gatsby-tutorial.git.
After executing below two commands in the checked out repo :-
npm install
gatsby develop

server starteed listening on 8000 port.
Getting Error: The result of this StaticQuery could not be fetched
when I try to open http://localhost:8000/

This looks like a cache issue.
Clear your .cache and try again by running --> gatsby clean

I'm experiencing the same issue and have run the gatsby clean command to no avail.

As mentioned in his Youtube video, UseStaticQuery has issues with components that starts with lowercase. Just rename your layout.js and navbar.js to Layout.js and Navbar.js respectively.

Even with Uppercase I got this issue.
The only solution I found but its pretty annoying:
is to comment the area where it says useStaticQuery, run gatsby develop and uncomment that area.

Even with Uppercase I got this issue. The only solution I found but its pretty annoying: is to comment the area where it says useStaticQuery, run gatsby develop and uncomment that area.

but after uppercase, my problem solved.


Setting a layout

Hey there!
What about setting a layout for the view. We use twitter bootstrap and the output of the pdf should be styled in bootstrap styles. Is there a way to set a layout for the pdf-view or do we have to input the styles directly in the pdf-view?
$this->layout('foo/bar');

doesnt work

Also looking forward to this feature.

Hi @FabianKoestring, @BrunoSpy, and @NewtonsNerds
As you've noticed DOMPDFModule hasn't received the time and attention it deserves. I understand how frustrating this is and I'm sorry you've had to deal with this frustration :-(
I'm currently taking steps to stabilize DOMPDFModule which includes code updates as well as creating a backlog that will ensure its continued success.
You can follow project Phoneix  to see what immediate work is being prioritized.
Thank you for your understanding and patience.


[r] Replace vfs.is_dir with SOMADataFrame::exists et al.

Follow-up from merged PR #2704.
As discussed in detail here: https://github.com/single-cell-data/TileDB-SOMA/pull/2704#discussion_r1635386307

A VFS is-dir check -- in R, Python, or C++ -- will work for local-disk and S3 URIs but not tiledb://... URIs
exists -- in R, Python, or C++ -- is the method within the SOMA API that works regardless of storage backend. It does not assume VFS.

In libtiledbsoma, these are SOMADataFrame::exists, SOMASparseNDArray::exists, SOMADenseNDArray::exists
As noted at https://github.com/single-cell-data/TileDB-SOMA/pull/2704#discussion_r1635386307 we intentionally do not unit-test tiledb://... URIs within this open-source repository.

cc @eddelbuettel @nguyenv

Done in #2803


Added the excel dataset for S 02

Added an excel workbook sample.xlsx for the Set 2 module,

Thanks!


.github: Cancel outdated GitHub workflows

We increasingly rely on GitHub actions to run tests on pull requests and branches, including long end-to-end tests and per-commit builds. We are however limited to 20 concurrent workflow jobs, with excess jobs being queued. This recently led to issues where long waiting queues can delay releases and pull requests.
Looking at our queue of running jobs reveals an opportunity to eliminate unnecessary jobs. When updating a pull request, workflows associated with the previous version continue to run if they were not finished (and even if they didn't start yet). This can happen often as contributors notice a quick job failing and push an update version.
A way to prevent that and cancel outdated workflows is to use concurrency groups. We can define concurrency groups such that scheduling of a new job in a group will cancel all previously scheduled jobs in the same group.
A concurrency group is defined by its name. It is therefore simply a matter of defining a unique group name for each pull request. At the same time, we should ensure that jobs triggered by schedule or commit push also have a unique group name (if all commits share the same group name, each new push will cancel all jobs for previous commits).
The effect of the concurrency groups can be observed with workflows scheduled by previous versions of this pull request. For example:

https://github.com/cilium/cilium/actions/runs/852871612
https://github.com/cilium/cilium/actions/runs/852871620

if we cancel workflows in progress - this will mean that we won't be running cleanup steps.

@nebril I thought this meant we always cleaned up resources, no matter why we failed: https://github.com/cilium/cilium/blob/f436bf6fa2288f8e517748140023e2652f54ec29/.github/workflows/gke.yaml#L236-L237

@pchaigno
the cleanup steps will run, but if it takes more than 5 minutes to delete a cluster (which I think might happen for GKE, not sure for other providers), the action will be scrapped (at least according to the docs): https://docs.github.com/en/actions/managing-workflow-runs/canceling-a-workflow#steps-github-takes-to-cancel-a-workflow-run


Make subscription required and not topic for game stats

This prevents timing issues with PubSub

R: @aaltay


bpf: remove cilium_host ip addr scope link

make iptables masquerade choose cilium_host ip addr when access service external ip (backend is a pod in another node) in a pod

Fixes: #21737

@borkmann Hi, could you take a look?

Could you explain in the commit description why you are making this change? Is it fixing a bug and, if so, what is the bug?

The bug is when access service external ip / node port in a pod, and backend is a pod in another node, reply package will not't through cilium_vxlan, it maybe drop by network device like router, you can see https://github.com/cilium/cilium/issues/21737 more details.

I confirm the bug and fix.
We use metallb in ARP mode, and access from a pod in the cluster to a loadbalancer IP only works from the node elected as leader for the given IP. Once the scope of cilium_host IP is set to global, the issue is gone.

This PR is not stale.
The "link" scope was added 4 years ago by https://github.com/cilium/cilium/commit/2d099f479c3a8697038014115f340b85d0bbc7ef (https://github.com/cilium/cilium/pull/1614).
@tgraf @aanm @aalemayhu Any input on this PR?

I hit this same bug in a different context, so I resubmitted this as https://github.com/cilium/cilium/pull/23241, with a proper commit description.


fix: revert unreleased python39 splunk

We found a way to include additional configuration in the job matrix (https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#expanding-or-adding-matrix-configurations), the workaround in this repository is not needed anymore.

Can we release a v1.12.0 with these changes? It's better not to manipulate with tags and fix messages.

This PR is supposed to do exactly this to avoid tags manipulations.

:tada: This PR is included in version 1.12.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


refactor(tooltip): migrate to signals #430

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our
guidelines: https://github.com/goetzrobin/spartan/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Which package are you modifying?

[ ] accordion
[ ] alert
[ ] alert-dialog
[ ] aspect-ratio
[ ] avatar
[ ] badge
[ ] button
[ ] calendar
[ ] card
[ ] checkbox
[ ] collapsible
[ ] combobox
[ ] command
[ ] context-menu
[ ] data-table
[ ] date-picker
[ ] dialog
[ ] dropdown-menu
[ ] hover-card
[ ] icon
[ ] input
[ ] label
[ ] menubar
[ ] navigation-menu
[ ] pagination
[ ] popover
[ ] progress
[ ] radio-group
[ ] scroll-area
[ ] select
[ ] separator
[ ] sheet
[ ] skeleton
[ ] slider
[ ] sonner
[ ] spinner
[ ] switch
[ ] table
[ ] tabs
[ ] textarea
[ ] toast
[ ] toggle
[x] tooltip
[ ] typography

What is the current behavior?

Closes #430
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

@elite-benni  @goetzrobin I changed the naming as discussed in the other PR here as well


Mac binary manually install does not work

Command from README file
$ wget https://s3.amazonaws.com/tools.nanobox.io/nanobox/v1/linux/amd64/nanobox

[hvn:~/bin] [dream] 4s $ ./nanobox
-bash: ./nanobox: cannot execute binary file: Exec format error
[hvn:~/bin] [dream] 6s 126 $ file nanobox
nanobox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

The file seems only support linux.

Indeed. Note that the path includes linux as one of the subdirectories the binary is within.
Additionally, this link is to an outdated version of the app. You'll want to log in to your Nanobox account and download the Mac installer from there.
The README certainly needs updating, though. Thanks for bringing that up!

yes I saw that. So there is no other way to manualy install it?
I don't like the idea of have to enter my password to install and starting VM.
Then I installed go app "the go way" by go get ... and got nanobox, but after logged in, ran "run", I got
+ HEADS UP:
+ Nanobox will run a single VM transparently within VirtualBox.
+ All apps and containers will be launched within the same VM.
--------------------------------------------------------------------------------

  Launching VM :

Error   : : exec: "nanobox-machine": executable file not found in $PATH
Context : failed to create the provider

So the binary from Nanobox.io is the only way to install it, right?

The current intended behavior of nanobox is to install with the nifty installers we provide here https://dashboard.nanobox.io/download Nanobox requires some additionally binaries that it includes in the installers (nanobox-machine, nanobox-vpn and a few others).


Setting up Amplify Studio failed

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
arn:aws:amplify:eu-west-2:317162162073:apps/d2m9c57f2sqvug
Region
eu-west-2
Amplify Hosting feature
Backend builds
Describe the bug

I have tried several times with the ROOT user, and configured IAM users correctly according to this document (https://aws.amazon.com/getting-started/hands-on/build-react-app-amplify-graphql/module-two/?e=gs2020&p=build-a-react-app-one)
Also have attempted to just build an app on it's own and setting up also fails
Expected behavior
It should create an amplify backend
Reproduction steps
https://aws.amazon.com/getting-started/hands-on/build-react-app-amplify-graphql/
This is the tutorial that was followed
Build Settings
No response
Additional information
No response

having the same issue

Update on the issue, we have noticed that it has auto-generated an IAM role for each time we attempted to create but it failed, this has led to our AWS account being suspended because of too many IAM roles because we did not realise this was happening.

Hi @DanielRyderImmersify, this errors seems to be occurring because your Amplify app does not have an IAM service role attached to it which is required to create and deploy your backend resources.
Kindly attach an IAM service role to your Amplify app by following this documentation: https://docs.aws.amazon.com/amplify/latest/userguide/how-to-service-role-amplify-console.html.
Once you attach the role, you can then try to setup the Amplify Studio.

(https://aws.amazon.com/getting-started/hands-on/build-react-app-amplify-graphql/module-two/?e=gs2020&p=build-a-react-app-one)
Following this step in this tutorial creates an IAM user to manage the services for the project before then setting up the backend.  We successfully completed this step to create an IAM user but setting up still failed.
There is also a YouTube tutorial on how to configure the IAM role which we also followed successfully (https://www.youtube.com/watch?v=fWbM5DLh25U).
Would following these steps satisfy that an IAM service role was attached to the app @Jay2113 ?

facing the same issue after deleting multiple IAM roles that were created when I was playing around. Tried attaching an amplify service role to app and I'm still not able to enable studio.


Massive thanks!

Not an issue, just a massive thank you for the effort!

Thank you, @BerendWouters , you are welcome! 🙏


ability to add pokemon via a js file

There have been a few requets to add things like search in this app which would be quite hard to do when everything is hardcoded in the html file. So I have enhanced the app to load some of the pokemon via a js file and once/if all the pokemon get migrated, then we could do thing like searching and filtering.

Wow i think that would be really great. I will merge this one. If there are any more additions on your end, feel free to make a PR for them.


Improved type definitions to allow event typings

Backwards-compatible enhancements for #78.
// Event typings can be provided through module augmentation:
declare module 'mitt' {
  interface EventTypes {
    foo: { bar: string }
  }
}

// EventTypes not provided: No type errors;
// EventTypes provided: Type check error: Property 'baz' does not exist on type '{ bar: string; }'
emitter.on('foo', e => console.log(e.baz));
// EventTypes provided: No type errors, `bar` is of type `string`
emitter.on('foo', e => console.log(e.bar));

// EventTypes not provided: No type errors;
// EventTypes provided: Type check error: Type 'number' is not assignable to type 'string'.
emitter.emit('foo', { bar: 1 });
// EventTypes provided: No type errors, `bar` is of type `string`
emitter.emit('foo', { bar: 'data' });

function onFoo(event: { bar: string }) {}
function onFoo2(event: { baz: string }) {}

// EventTypes not provided: No type errors;
// EventTypes not provided: Type check error: Property 'baz' is missing in type '{ bar: string; }' but required in type '{ baz: string; }'
emitter.off('foo', onFoo2);
// EventTypes provided: No type errors
emitter.off('foo', onFoo);

We'll need to check if this is still necessary now that #99 is merged and Mitt is written in TypeScript.

@developit Updated PR for TypeScript

@deskoh I think this might need to be tweaked because all is now a Map?

This PR differs from the goals of #89 which could allow such usage:
// Typings for 'foo' event is defined twice, and not guaranteed to be consistent, but with no typings error
emitter.on<string>('foo', (x: string) => {})
emitter.emit<int>('foo', (x: int) => {})

This PR proposed usage is:
// Define event `foo` with specific event handler type
declare module 'mitt' {
  interface EventTypes {
    foo: { bar: string }
  }
}
emitter.on('foo', (x: string) => {})

// Typings error
emitter.emit('foo', (x: int) => {})

Furthermore, withModule Augmentation / Declaration Merging,  EventTypes can be defined across different files where subscribers are defined.
Let me know what you think.

This is really cool! The only question I have is around this PR being a breaking change. Providing the generics on the methods themselves no longer seems to work, as can be seen in the breaking test in the GitHub actions build:
const badHandler = (x: number) => {};
const goodHandler = (x: string) => {};

// @ts-expect-error
emitter.on<string>('foo', badHandler);
emitter.on<string>('foo', goodHandler);

TS no longer emits an error for this first usage, so consumers would need to update to some other way of enforcing type safety like mitt<{ foo: string }>() instead (which I would say is a superior option, but breaking nevertheless)

Hiya @deskoh - I really appreciate the PR and your patience as I took forever to review. I've merged #114, which was a TS implementation of roughly what you had here. Cheers!


Update feature policy article for.

What's changed, or what was fixed?
Update an old feature policy article. The JavaScript mentioned in it is shipping in Chrome 74.
Target Live Date: 2019-13-21

[ ] This has been reviewed and approved by (NAME)
[x] I have run npm test locally and all tests pass.
[ ] I have added the appropriate type-something label.
[ ] I've staged the site and manually verified that my content displays correctly.

CC: @petele

Whoops!
There were 3 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/06/feature-policy.md#L372 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2018/06/feature-policy.md#L212 - Common typo found: 'chrome' Should it be 'Chrome'?
src/content/en/updates/2018/06/feature-policy.md#L364 - Line must be at most 100 characters

Whoops!
There were 3 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/06/feature-policy.md#L372 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2018/06/feature-policy.md#L212 - Common typo found: 'chrome' Should it be 'Chrome'?
src/content/en/updates/2018/06/feature-policy.md#L364 - Line must be at most 100 characters

:tada: This has been pushed live to https://developers.google.com/web/


Add admins/users groups to the read acl for clients from < CS 12.5

Signed-off-by: Josh Hudson<EMAIL_ADDRESS>

Addresses https://github.com/chef-customers/knife-tidy/issues/63

👍


fix build failure due to gem update system

Fix build failure, error message is:
For more detailed failure reports, use JUnit XML formatting.
Failing command: gem update --system
Exit code: 1
Output:
ERROR:  While executing gem ... (RuntimeError)
    gem update --system is disabled on Debian, because it will overwrite the content of the rubygems Debian package, and might break your Debian system in subtle ways. The Debian-supported way to update rubygems is through apt-get, using Debian official repositories.
If you really know what you are doing, you can still update rubygems by setting the REALLY_GEM_UPDATE_SYSTEM environment variable, but please remember that this is completely unsupported by Debian.
Exited with code 1

This is currently blocking builds.  I think we could enable REALLY_GEM_UPDATE_SYSTEM.. is there a big disadvantage to doing so?

Resolved.


Welcome Bot Message

Signed-off-by: samhita-alla<EMAIL_ADDRESS>

I believe these changes should suffice. Please do let me know if there's anything else to be modified.

Nothing to be modified, but you should try out the change on couple repos and if they work then we are good to go. Just one comment and then +1

I tried validating welcomebot in the flyteidl repo, and it didn't work. I'm not sure if it's because of the fork. So, I've created a new repo and it worked fine.

The best way to validate this is to merge it into the boilerplate repo and then verify it in a couple of repos.


[tool_crash] OutOfMemoryError: (null)

Command
flutter run -t lib/get_fcm_token.dart

Steps to Reproduce

...
...
...

Logs
OutOfMemoryError: (null)
#0      new Uint8List (dart:typed_data-patch/typed_data_patch.dart:2307:3)
#1      _File.readAsBytesSync (dart:io/file_impl.dart:589:16)
#2      ForwardingFile.readAsBytesSync (package:file/src/forwarding/forwarding_file.dart:91:43)
#3      ForwardingFile.readAsBytesSync (package:file/src/forwarding/forwarding_file.dart:91:43)
#4      _calculateSha (package:flutter_tools/src/android/gradle.dart:926:32)
#5      AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:588:36)
#6      _rootRunUnary (dart:async/zone.dart:1407:47)
#7      _CustomZone.runUnary (dart:async/zone.dart:1308:19)
#8      _FutureListener.handleValue (dart:async/future_impl.dart:163:18)
#9      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:861:45)
#10     Future._propagateToListeners (dart:async/future_impl.dart:890:13)
#11     Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:736:7)
#12     _rootRun (dart:async/zone.dart:1399:13)
#13     _CustomZone.runGuarded (dart:async/zone.dart:1209:7)
#14     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249:23)
#15     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
#16     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5)

[✓] Flutter (Channel stable, 3.24.5, on Microsoft Windows [Version 10.0.22631.4602], locale en-BW)
    • Flutter version 3.24.5 on channel stable at C:\dev\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision dec2ee5c1f (7 weeks ago), 2024-11-13 11:13:06 -0800
    • Engine revision a18df97ca5
    • Dart version 3.5.4
    • DevTools version 2.37.3

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at C:\Users\leban\AppData\Local\Android\sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: C:\Program Files\Android\Android Studio1\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
    • All Android licenses accepted.

[✗] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[!] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.12.3)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.12.35527.113
    ✗ Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these
      components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[!] Android Studio (version 2023.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] Android Studio (version 2024.1)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version openjdk version "17.0.11" 2024-04-16

[✓] IntelliJ IDEA Community Edition (version 2024.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin version 242.22855.32

[✓] VS Code (version 1.96.2)
    • VS Code at C:\Users\leban\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.103.20241202

[✓] Connected device (3 available)
    • 23129RN51X (mobile) • 49TOFIWOAMY5DYYD • android-arm    • Android 14 (API 34)
    • Windows (desktop)   • windows          • windows-x64    • Microsoft Windows [Version 10.0.22631.4602]
    • Edge (web)          • edge             • web-javascript • Microsoft Edge 131.0.2903.112

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 3 categories.

Flutter Application Metadata
Type: malformed
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: null
Creation framework version: null
Plugins
cloud_firestore-5.6.0
cloud_firestore_web-4.4.0
firebase_auth-5.3.4
firebase_auth_web-5.13.5
firebase_core-3.9.0
firebase_core_web-2.19.0
firebase_messaging-15.1.6
firebase_messaging_web-3.9.5
google_sign_in-6.2.2
google_sign_in_android-6.1.34
google_sign_in_ios-5.7.8
google_sign_in_web-0.12.4+3

Closing this as a duplicate of https://github.com/flutter/flutter/issues/133371


[SPARK-23380][PYTHON] Make toPandas fall back to non-Arrow optimization if possible

What changes were proposed in this pull request?
This PR proposes to fall back to non-Arrow optimization if possible - for unsupported schema, PyArrow version mismatch and PyAarrow missing.
For example, see the unsupported schema case below:
df = spark.createDataFrame([[{'a': 1}]])

spark.conf.set("spark.sql.execution.arrow.enabled", "false")
df.toPandas()
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
df.toPandas()

Before
...
py4j.protocol.Py4JJavaError: An error occurred while calling o42.collectAsArrowToPython.
...
java.lang.UnsupportedOperationException: Unsupported data type: map<string,bigint>

After
...
          _1
0  {u'a': 1}

... UserWarning: Arrow will not be used in toPandas: Unsupported type in conversion to Arrow: MapType(StringType,LongType,true)
...
          _1
0  {u'a': 1}

Note that, in case of createDataFrame, we already fall back to make this at least working even though the optimisation is disabled:
df = spark.createDataFrame([[{'a': 1}]])
spark.conf.set("spark.sql.execution.arrow.enabled", "false")
pdf = df.toPandas()
spark.createDataFrame(pdf).show()
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
spark.createDataFrame(pdf).show()

...
... UserWarning: Arrow will not be used in createDataFrame: Error inferring Arrow type ...
+--------+
|      _1|
+--------+
|[a -> 1]|
+--------+

How was this patch tested?
Manually tested and unit tests were added in python/pyspark/sql/tests.py.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/770/
Test PASSed.

Seems it happened to fix this case too:
spark.conf.set("spark.sql.execution.arrow.enabled", "false")
df = spark.createDataFrame([[bytearray("a")]])
df.toPandas()
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
df.toPandas()

Before
     _1
0  [97]
  _1
0  a

After
     _1
0  [97]
... UserWarning...
     _1
0  [97]

cc @ueshin, @BryanCutler and @icexelloss, could you take a look please when you have some time?

Test build #87284 has finished for PR 20567 at commit d87547c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87284/
Test PASSed.

Since this PR is not a bug fix, we will not merge it to 2.3. How about submitting another PR to throw a better error message in to-be-released 2.3?

https://github.com/apache/spark/pull/20567#issuecomment-364639922 case is actually closer to a bug as both output from one without Arrow and with Arrow are different and inconsistent. The problem is, that we already allow inconsistent conversion in BinaryType where we don't allow in other paths like createDataFrame and pandas_udf.
In addition, I believe it is good to match the behaviour between toPandas and createDataFrame with Pandas's DataFrame as input in 2.3.0.
The change is kind of safe. Actual change is basically:
from
if # 'spark.sql.execution.arrow.enabled' true?
    require_minimum_pyarrow_version()
    # return the one with Arrow
else:
    # return the one without Arrow

to
if # 'spark.sql.execution.arrow.enabled' true?
    should_fall_back = False
    try:
        require_minimum_pyarrow_version()
        to_arrow_schema(self.schema)
    except Exception as e:
        should_fall_back = True

    if not should_fall_back:
        # return the one with Arrow
# return the one without Arrow

The error message looks already okay for now. If you feel strongly about this, I am fine with going ahead with this only into master.

@ueshin, yup, I initially thought so but realised that it might collect twice (_collectAsArrow, collect) and trigger two jobs due to one failure in execution time. Also, seems it could catch some arbitrarily exceptions in execution time.
For createDataFrame, I thought we are fine because it won't trigger multiple jobs at least.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/803/
Test PASSed.

Test build #87324 has started for PR 20567 at commit f46540e.

Test build #87324 has finished for PR 20567 at commit f46540e.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87324/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/805/
Test PASSed.

Test build #87327 has started for PR 20567 at commit f46540e.

Test build #87327 has finished for PR 20567 at commit f46540e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87327/
Test PASSed.

LGTM. I'd leave it to @HyukjinKwon and @gatorsmile whether we should merge this into branch-2.3 or not.

retest this please

Test build #87332 has started for PR 20567 at commit f46540e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/809/
Test PASSed.

Test build #87332 has finished for PR 20567 at commit f46540e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87332/
Test PASSed.

Sorry I am late to the party. https://github.com/apache/spark/pull/20567#issuecomment-364639922 Does look like a bug to me. However, I am a bit concerned that such magic behavior would be not ideal to some users. At least from python users at Two Sigma, most of they would prefer a "fail fast" exception rather than fall back to non-Arrow path as non-Arrow path, because the non-Arrow path could often take a long time to complete, or worse, "fail slow". Implementing this behavior and not having a way to turn it off could be problematic for users that transfers non trivial amounts of data from Spark to Pandas.

This is kind of like what we did for whole-stage codegen. We have a conf like spark.sql.codegen.fallback to decide whether we should fail fast or go back to the slow path. I would suggest to introduce a similar conf.

Regarding the error message, this is a good example to show how to provide a user-friendly message. To the external end users, they might not be aware of the internal implementation. They might not be aware of Apache ARROW is being used. They might not even know what is Apache Arrow. The conf might be set by the system admin or others. Thus, this error message is confusing to them.
...
py4j.protocol.Py4JJavaError: An error occurred while calling o42.collectAsArrowToPython.
...
java.lang.UnsupportedOperationException: Unsupported data type: map<string,bigint>

Ideally, we could let users know how to bypass the issue. For example, let them disable the conf spark.sql.execution.arrow.enabled.

A quick bit: fallback is a single word.

Yup, I also agree with adding a configuration to control this. I will work on it for master only later.
For https://github.com/apache/spark/pull/20567#issuecomment-364994740, yup. I agree with that but to do this, we should do something like:
if # 'spark.sql.execution.arrow.enabled' true?
    require_minimum_pyarrow_version()
    try:
        to_arrow_schema(self.schema)
        # return the one with Arrow
    except Exception as e:
        raise Exception("'spark.sql.execution.arrow.enabled' blah blah ...")
else:
    # return the one without Arrow

the diff and complexity is pretty similar with fallback one:
if # 'spark.sql.execution.arrow.enabled' true?
    should_fall_back = False
    try:
        require_minimum_pyarrow_version()
        to_arrow_schema(self.schema)
    except Exception as e:
        should_fall_back = True

    if not should_fall_back:
        # return the one with Arrow
# return the one without Arrow

Note that, in case of spark.sql.codegen.fallback, it's true by default, if I did't misunderstand. Also, we can match the behaviour to createDataFrame with Pandas as input for now in the latter way.
I have been thought this feature is in transition and am trying to fix and match the behaviour first before the release.

I mean I got that a nicer error message is useful of course but wouldn't it be better to match the behaviour between toPandas and createDataFrame before 2.3.0 if its complexity looks similar?

My proposal is to merge the fix after the 2.3 release. We can still backport it to SPARK 2.3, but it will be available in SPARK 2.3.1.

My proposal is to merge the fix after the 2.3 release. We can still backport it to SPARK 2.3, but it will be available in SPARK 2.3.1.

Mind if I ask to elaborate why? Want to know why this one is specially excluded in 2.3.0 alone although it can be backported to branch-2.3.
I thought it's good to add it into 2.3.0 because this this is kind of safe, fixes a actual bug and matches the behaviour with createDataFrame too.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/827/
Test PASSed.

Merged build finished. Test PASSed.

Test build #87355 has started for PR 20567 at commit 42dec46.

This issue does not cause the regression since spark.sql.execution.arrow.enabled is off by default. We need to make it configurable before merging it. Merging this to 2.3.0 might cause the regression and impacts the release date of SPARK 2.3. Thus, we would suggest to delay merging it until 2.3.0 is out.

This issue does not cause the regression since spark.sql.execution.arrow.enabled is off by default.

It doesn't block the release but we can still backport it because it fixes an actual bug fix with a minimal change whether 2.3.0 is released or not.

We need to make it configurable before merging it

I thought this is another step. We need to make them consistent first.

Merging this to 2.3.0 might cause the regression and impacts the release date of SPARK 2.3

Is there any specific worry from this change, that might shake the 2.3.0 release speficially? In this way, we can't backport anything. I am surprised that this PR is considered to be excluded specifically in 2.3.0.

The feedback is partially from @rxin Maybe he can provide more inputs later.

Test build #87355 has finished for PR 20567 at commit 42dec46.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87355/
Test PASSed.

I thought this is another step. We need to make them consistent first.

Based on the comments from @icexelloss , I do not think we should blindly switch back to the original version. At least, provide an option to the end users.

Is there any specific worry from this change, that might shake the 2.3.0 release speficially? In this way, we can't backport anything. I am surprised that this PR is considered to be excluded specifically in 2.3.0.

Yeah. This PR is not ready to merge yet.

^ I am not saying that we should merge it now. I can do the opposite for createDataFrame given https://github.com/apache/spark/pull/20567#issuecomment-365100434 . My point is why it should be exclueded in 2.3.0 specifically while this can be considered as a backport - https://github.com/apache/spark/pull/20567#issuecomment-365077913

RC3 is out. Just to avoid new regressions that might be introduced in the new PR.

RC3 is out. This change could be in 2.3.1 f the vote passes, or in 2.3.0 If the vote fails. For the reason above, we can't backport and change anything in the main codes until the release 2.3.0.
So, you are worried of delaying the release more because it has been delayed pretty much already? I understand this but I would like to ask to get this (whether it throws an exception for both toPandas and createDataFrame or fallback for both) in to make the new feature out with consistency please.
@rxin, do you think we should take this out in 2.3.0 too? Was this your opinion (https://github.com/apache/spark/pull/20567#issuecomment-365099515)?

@gatorsmile and @rxin,
The problem here is that toPandas just fails on unsupported types later and allows BinaryType with inconsistent conversion (https://github.com/apache/spark/pull/20567#issuecomment-364639922) in Arrow whereas createDataFrame allows fallback in both cases.
This is the last one left (for now) about PySpark/Pandas interoperability which I found during testing out and I was thinking about targeting 2.3.0.
So, for clarification, would you be uncomfortable with one of:

matching both toPandas and createDataFrame to fallback with a warning
matching both toPandas and createDataFrame to throw an exception
adding a configuration to control the fallback for both

to target 2.3.0 (or 2.3.1 if the vote fails)? FYI, the current one in this PR is 1.
If so, let me have two PRs, one for the error message for now to target 2.3.0 (or 2.3.1 if the vote fails), and one for adding a configuration to control the fallback to target master (and maybe 2.3.1).
Does that make sense to both of you?
cc @cloud-fan too.

We are unable to contain option 3 in Spark 2.3.0. This is too big to merge it in the current stage. We still can do it in 2.3.1.
If needed, I am fine to throw a better error message if the PR size is very small; otherwise, keep it unchanged in 2.3.0.
Also cc @liancheng @yhuai

Just FYI, except option 3., the complexity in other options and the PR size will be all similar - https://github.com/apache/spark/pull/20567#issuecomment-364806378 and https://github.com/apache/spark/pull/20567#issuecomment-365064243

Then, let us wait for the release of Spark 2.3.0. Thanks!

I mean the actual change here is small. The diff maybe looks larger here because of removed else. Please check out the diff. It's quite a safe change.

The behavior inconsistency between toPandas and createDataFrame looks confusing to end users, I have to admit.
In the current stage, we are unable to merge the fix for these new features to Spark 2.3 branch. Let us wait for the release of Spark 2.3.0

There is one more thing - https://github.com/apache/spark/pull/20567#issuecomment-364639922 We didn't complete binary type support yet in Python side but there is a hole here ..

What is the root cause? Do we have a trivial fix to resolve/block it?

The root cause is Arrow conversion in Python side interprets binaries as str, and I here avoided this by checking if the type is what we supported or not.
This is the most trivial fix. I made a fix safe and small as possible as I can here. I can fix the error message only but the size of change and diff is virtually the same - https://github.com/apache/spark/pull/20567#issuecomment-365064243.

The binary type bug sounds like a blocker, can we just fix it surgically by checking the supported data types before going to the arrow optimization path? For now we can stick with that the current behavior is, i.e. throw exception.
The inconsistent behavior between toPandas and createDataFrame is confusing but may not be a blocker. We can fix it in Spark 2.4 and add a note in the migration guide.

The binary type bug sounds like a blocker, can we just fix it surgically by checking the supported data types before going to the arrow optimization path? For now we can stick with that the current behavior is, i.e. throw exception.

That's basically (https://github.com/apache/spark/pull/20567#issuecomment-365064243):
if # 'spark.sql.execution.arrow.enabled' true?
    require_minimum_pyarrow_version()
    try:
        to_arrow_schema(self.schema)
        # return the one with Arrow
    except Exception as e:
        raise Exception("'spark.sql.execution.arrow.enabled' blah blah ...")
else:
    # return the one without Arrow

because to_arrow_schema(self.schema) checks the supported types like other Pandas/Arrow functionalities.

^ this change LGTM. Can we make a PR for this change only and leave the fallback part for Spark 2.4?

Sure.

@HyukjinKwon Will you submit a fix for the binary type today? We are very close to RC4. This is kind of urgent if we still want to block it in the Spark 2.3.0 release.

Yup, I will. Sorry for delaying it. I was trying to make the fix small as possible as I can. Let me just open it as a simplest way.

I just opened https://github.com/apache/spark/pull/20625. I believe this is the smallest and simplest change ..
Will turn this PR to add a configuration later.

Thanks! Happy Lunar New Year!

I just opened another PR for adding a configuration - https://github.com/apache/spark/pull/20678. Let me close this one.


GSoC blog post 2

blog post 2: The integration of ZX-calculus with the quantum compiler

excellent writing!


Added menu for extra actions:

Action to leave feedback.
Action to see documentation.
Action to close the application.
About ARRT message box

/azp run

/azp run

/azp run

Moved the github issue md files into #33

/azp run


Accessing isMounted inside its render()

The console gives me a warning that "ReactGridLayout is accessing isMounted inside its render()"
I know this doesn't affect the grid, but maybe in a later React version, this will become a real issue.
Only tested using React 0.13

Yeah, it appears they may be removing isMounted() - best I can tell is
that they say it won't work inside ES6 classes, but I haven't gotten any
coherent reason as to why, or why it would be removed.
We use it to switch to CSS transforms after mounting which have better
performance, but it is not possible to do this effectively on the
server-side. This is because CSS transforms don't support percentage
offsets - while top and left percentage values are equal to their
container ("move this element down 40% of its container's height"),
percentages with CSS transforms are relative to themselves ("move this
element down 40% of its own height"), which is not useful.
Since we don't know the browser's width on the server this leads to
breakage on initial load until the JS has time to run. I didn't want to
turn this into yet another app that shows a "loading..." screen, I want
the layout to be correct when starting, so that's why we use this. It's
not enough to simply check process.browser, because otherwise the
layout will fail the checksum.
On 3/23/15 8:42 AM, Sune Kibsgaard Pedersen wrote:

The console gives me a warning that "ReactGridLayout is accessing
isMounted inside its render()"
I know this doesn't affect the grid, but maybe in a later React
version, this will become a real issue.
Only tested using React 0.13
—
Reply to this email directly or view it on GitHub
https://github.com/STRML/react-grid-layout/issues/38.

Ahh makes sense, didn't really think about serverside. Didn't really think you didn't know, as you probably also are using the console :wink: but could'nt find an issue, so I thought I would ask.
Thank you for the detailed answer, and thank you for this really great project!


Fix storages deprecation warnings

Builds on top of #363 to resolve the deprecation warning coming out of the new unified STORAGES setting.
Fix #366
Closes #365

Hey @frankwiles and @jefftriplett,
Can you please check this and the other compatibility improvement PR (#363)?
Thank you!

@KOliver94 I'll ping Frank and see if he has time tomorrow to check it. He's a little closer to the project than me, and he can cut release.


fix: make creating a task with both Cancelled and Done not possible with the Edit Task modal

Types of changes
Changes visible to users:

[x] Bug fix (prefix: fix - non-breaking change which fixes an issue)

fixes #2986

Description

when validating edit modal input, check whether done and cancelled date have been input. If yes, invalidate the form and show error on cancelled and done date inputs for user to take action.

Motivation and Context

make editing with modal consistent and logical (a task cannot have cancelled and done date at the same time).

How has this been tested?

manual test in demo vault build on the commit with the fix

Screenshots

Checklist

[x] My code follows the code style of this project and passes yarn run lint.
[ ] My change has adequate Unit Test coverage.

this is not testable, developing tests here requires quite an effort, the fix is small and manually testable

Terms

[x] My contribution follows this project's contributing guide
[x] I agree to follow this project's Code of Conduct

Thanks for looking at this!
Looking at the code, I couldn't see how the values would be changed back to valid. So did a quick test.

Set Done
Set Cancelled
Delete Cancelled

Result:

Many thanks for this test!
I've done a fix for this, but it looks very ugly and confirms my hypothesis that we need to extract a validator function for EditableTask to implement this and other helpful stuff for the modal (I have another bug in my sleeve).
I don't think that this is mergeable, but it good that we explored this solution quickly. However if you find this solution to be Ok, I'm fine to merge this if we find a test framework together later.

I've done a fix for this, but it looks very ugly and confirms my hypothesis that we need to extract a validator function for EditableTask to implement this and other helpful stuff for the modal (I have another bug in my sleeve).

I have some ideas about approaches to take...

I don't think that this is mergeable, but it good that we explored this solution quickly. However if you find this solution to be Ok, I'm fine to merge this if we find a test framework together later.

How high a priority do you think the bug really is, though?
With regards to how we use our pairing time, I would much prefer to get the properties and sub-tsk facilities out first.

Should have said, yes, I don't think this is mergeable...

How high a priority do you think the bug really is, though?
With regards to how we use our pairing time, I would much prefer to get the properties and sub-tsk facilities out first.

No hurry at all, I just think this would open up a lot of space for improvement.
Let's finish what we have in the pipe for now and see later if we switch on this =)

Thanks for your understanding.


Add <Steps> component

Description

Adds a <Steps> component for styling more complex guided tasks.
The component wraps Markdown numbered lists, adding extra styling to help highlight the numbering and link the steps.
Preview of test page with various usage examples: https://starlight-git-dx-1012-steps-astrodotbuild.vercel.app/guides/components-steps/
Docs: https://starlight-git-dx-1012-steps-astrodotbuild.vercel.app/guides/components/#steps (will move these up the page after #1308 has merged)

size-limit report 📦

Path
Size

/index.html
5.6 KB (+7.07% 🔺)

/_astro/*.js
21.54 KB (0%)

/_astro/*.css
13.45 KB (0%)

Woo! These are looking so good! I love the step numbers and the lines. The headings look really good, too!
Some gut reaction feedback on the visuals (haven't looked at the authoring experience yet):

I first viewed this in dark mode and thought, "Oh, did we decide to NOT have the vertical lines?" I think the lighter grey for the lines, and honestly, maybe even the fill colour of the circles might be too subtle
in dark mode?

With component content: having the code snippet off to the right looks like it's a mistake? It feels off, I think?
What if it's a regular code block within Markdown? I don't see an example of that, and that's one of our big use cases.

I first viewed this in dark mode and thought, "Oh, did we decide to NOT have the vertical lines?" I think the lighter grey for the lines, and honestly, maybe even the fill colour of the circles might be too subtle in dark mode?

I did go back and forth a bit, but the more intense hairline felt kind of noisy and distracting, especially in medium viewports where it kind of competes with the border of the sidebar in light mode:

I’ll take another look though. Maybe this is a case where we need to tweak things in dark mode vs light mode.

With component content: having the code snippet off to the right looks like it's a mistake? It feels off, I think?

That’s just an example, not how things automatically behave — I threw a <CardGrid> in to split those two things vertically kind of like this example. But if someone wants to do that, they’d be on the hook for it and would make it look as good/bad as they want unrelated to <Steps>.

What if it's a regular code block within Markdown? I don't see an example of that, and that's one of our big use cases.

Do you mean like the example in the docs for the component?

Do you mean like the example in the docs for the component?

Ah, yes I did! Sorry, I was only looking on the test page! That looks great!

Wow! This looks so cool. We need it for our Astro docs tutorial.

Tested the new component in one project by replacing my existing <Steps> component with the new one as it uses a similar approach. Drop-in replacement worked perfectly :tada: (altho it's only basic lists without headings so this does not cover all use cases).
Also played a bit with VoiceOver and as expected considering this is beautifully built around lists, it works perfectly.
Some more general questions:

Did you already check what the pa11y errors are?
Are some parts of the docs good candidates to showcase the new component? Do we want to do that? I thought the 3 getting started steps (Create a new project - Start the development server - Add content) could maybe be a good candidate to do that. Could also totally be follow-up PRs. Any thoughts?

Did you already check what the pa11y errors are?

Yes, started investigating last night but didn’t complete it yet. AFAICT it seems to be a false positive where it somehow thinks a background colour from the ::before/::after pseudo elements are overlapping with something? I didn’t yet fully understand but will investigate and fix somehow.

Are some parts of the docs good candidates to showcase the new component? Do we want to do that? I thought the 3 getting started steps (Create a new project - Start the development server - Add content) could maybe be a good candidate to do that. Could also totally be follow-up PRs. Any thoughts?

Yes! Locally I tried it already in the numbered steps on the “Customizing Starlight” guide and worked quite well. I’ll try your suggestion too.
My thought was that it might be best to do in a follow-up PR that could also apply the formatting change to other languages in one pass with i18nIgnore.

Wrapped up some investigation into the pa11y failures:
In some cases, when axe can’t determine the contrast ratio for certain elements, for example if the element has a background image or contains a pseudo-element, it will report the issue as “needs review”. The problem is that pa11y is currently reporting these review items as errors
(see https://github.com/pa11y/pa11y/issues/633#issuecomment-1145384243)
We have this exact issue: if I remove a background colour from the ::before used as the list marker, the tests pass, but adding it back causes them to fail.
This is tracked as an issue in https://github.com/pa11y/pa11y/issues/623 and there’s a draft PR in https://github.com/pa11y/pa11y/pull/685 but no fix yet. (Also would be fixed in pa11y@7, but pa11y-ci is still on pa11y@6, so lots of stacks of maintenance needed there — shame that seems to be quite slow, wonder if there’s anything we can do to help?)
Given this, I think we’re out of options apart from disabling colour contrast checks in pa11y-ci for now. (We should bring them back once things update hopefully.) Colour contrast is luckily pretty easy to test manually — and even spot visually for the most part — so I think we have a fairly good handle on that and shouldn’t let anything slip by without the automated check 🤞 Made that change in 4214d5b and tests should now pass.

I also want at some point to take the time to test kayle

Interesting! Hadn’t seen that — seems early still with one developer although they are building a business of it looks like, so maybe there’ll be more investment in the tools if they are successful.

OK, one last update from me this morning: I decided to remove the wrapper <div> this component was outputting. We only had it there to get a scoped class name for styling, and I decided we could get by without that — just making the sl-steps class global. Simplifies things a bit and removes unnecessary wrapper elements. (Also as a side effect technically means people can slap the sl-steps class on anything they wanted I guess.)

@sarah11918 Re: your concern about the dark theme guide line — I did end up bumping up the contrast a touch on that, so hopefully should address that!


x/mobile: apps built with gomobile and Xcode 10.2 are using non-public APIs

What version of Go are you using (go version)?

$ go version
go version go1.12.4 darwin/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/johan/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/johan/golang"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.12.4/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.12.4/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/johan/golang/src/github.com/lightningnetwork/lnd/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/kq/3436m_v11sg0l7zqtmv2r1gw0000gn/T/go-build608163721=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

After having been unable to build the lnd framework on Xcode 10.2 because of a previous issue (see https://github.com/golang/go/issues/31284), I was able to build it using the latest gomobile (3e0bab5) and Xcode v10.2.1 (10E1001) after this fix was merged: https://github.com/golang/go/issues/31284#issuecomment-482591301
The iOS app (https://github.com/lightninglabs/lightning-app) using the framework was then built, and submitted to App Store connect.
What did you expect to see?
App builds, and app store distribution encounter no problems.
What did you see instead?
App Store submission fails with the following error:

We identified one or more issues with a recent delivery for your app, "Lightning: Fast Bitcoin Wallet". Please correct the following issues, then upload again.
Non-public API usage:
The app references non-public symbols in lightning: _ptrace
If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.

Additional info
Building and app store submission previously encountered no problems, when using Xcode 10.1 together with gomobile@ca80213619811c2fbed3ff8345accbd4ba924d45

/cc @hyangah

/cc @hyangah

/cc @hyangah

Any update on this? We're currently blocked to release an update to Testflight due to this issue. I'm going to try to downgrade to xcode 10.1 to work around the issue for now (see: https://stackoverflow.com/questions/14756026/how-to-downgrade-xcode-to-previous-version). Thanks

More research seems to indicate it is actually go 1.12 that introduces this failure, my hunch is changes related to: https://github.com/golang/go/issues/17490

Possibly related:

https://github.com/golang/go/issues/30933
https://github.com/golang/go/issues/28984
https://github.com/golang/go/issues/31244

Do you know of documentation about when ptrace is allowed?
I suspect it is ok on OSX but not on iOS. (The manpage on my 10.12 OSX box doesn't mention anything about disallowed/deprecated/...)
It's pretty easy to rip out ptrace support, and we can do that because it is package syscall. The stdlib itself doesn't use ptrace.  That said, I'd rather not break people's programs unnecessarily.

Do you know of documentation about when ptrace is allowed?
I suspect it is ok on OSX but not on iOS. (The manpage on my 10.12 OSX box doesn't mention anything about disallowed/deprecated/...)
It's pretty easy to rip out ptrace support, and we can do that because it is package syscall. The stdlib itself doesn't use ptrace.  That said, I'd rather not break people's programs unnecessarily.

I can confirm releasing to Testflight worked again with<EMAIL_ADDRESS>gomobile@ 3e0bab5405d63a8f5dd9d9764a24c8e5ac4997fa<EMAIL_ADDRESS>

@randall77 Tried to find any documentation on this, but to no luck.
Maybe best bet is to disable it, then check if that's enough for the app to pass App Store review? I think people's programs are broken already, if they want it on the App Store that is...

Any progress on this?
It may need to be back ported go 1.12 if a fix is found, since it renders Go 1.12 unusable in a mobile scenario.
cc @eliasnaur if he has an idea ?

I think the way forward is to disable ptrace in package syscall. It should be easy because the runtime doesn't depend on it according to Keith. And then, test it in Testflight or App Store.
I don't have a paid apple dev account so I can't do it.

I'm hoping to push a quick fix to the app store with the ptrace package disabled. Any guidance on disabling it would be appreciated! I'm taking some blind stabs now.

I've shamelessly removed ptrace from the syscall package here: https://github.com/textileio/go/tree/sander/ptrace-hackery
Our framework is being built with it in CI here: https://github.com/textileio/go-textile/blob/master/.circleci/config.yml#L186
I'll report back when we know whether or not Apple is happy with it.

thanks @sanderpick !

I'm happy to report that Apple has accepted the build 🎉. Thanks for the suggestion @eliasnaur.

Great! Can you send a CL with your changes so the fix can be included in Go 1.13?

Marking as Go 1.13 because this needs to go into the go standard library, not gomobile.

Here's a comparison (changes added on top of go1.12.5 tag): https://github.com/textileio/go/compare/3a1b4e7..ef7e9bd
Since this is just an issue with the app store, maybe a flag or env var with gomobile could be used to indicate to go that it ought to strip ptrace from the syscall package... ?

I think it is better to change syscall.Ptrace to always return an error (for example syscall.ENAVAIL) on darwin/arm and darwin/arm64, leaving darwin/386 and darwin/amd64 alone.
Note that you can submit your changes as a Github pull request.

I think it is better to change syscall.Ptrace to always return an error

Would this remove the reference from the syscall trampoline, though? The App store complains about it if it is present at all.

Sure, the trampolines and libc references need to go as well. They are already gone with @sanderpick's changes; I merely suggested the GOARCH dependent approach.

I was too slow... thanks for tackling this @eliasnaur!

Thanks a lot!


Implement the logic for users searching

This PR builds on what has been done by the games team regarding a universal search bar https://github.com/uchicago-cs/chigame/issues/93 . We are handling the logic specific for user searching but keeping things consistent. That is, we are using the same search results landing page but adding conditional check that displays specific information about each matching result according to the model being queried. We also added a message to be displayed if there are no matching result and prevented the form from being submitted if it is empty regardless of the model. In the search bar, you can search by username or email. First and last name are not currently handled since they are None in the User model.

Closing Statement: We added the user searching logic for the search box that takes username or email. Currently, the firstname and lastname fields are not queries since they are None in models.py  We used the same search results landing page that was created by the games team to keep things consistent. We also handled empty search and zero matching search queries.
@omarelkashef  worked on the query logic for searching
@24raniwalar  worked on edge cases for empty searches and queries with no matching results

Issue Score: Excellent
Comments:
Great job incorporating changes to make userprofile views more robust as well as implementing the search option.


Update dynamodb to 2.16.45

Updates software.amazon.awssdk:dynamodb from 2.16.17 to 2.16.45.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk", artifactId = "dynamodb" } ]

labels: library-update, semver-patch

Superseded by #1065.


alloc::allocator reexport of alloc::alloc removed; builds failing on latest nightlies

See https://github.com/rust-lang/rust/commit/26324d0abe1a8df228f8c758b870a38078549ddc. This is currently causing a build failure:
error[E0432]: unresolved import `alloc::allocator`
  --> /home/erin/.cargo/registry/src/github.com-1ecc6299db9ec823/linked_list_allocator-0.6.2/src/lib.rs:15:12
   |
15 | use alloc::allocator::{Alloc, AllocErr, Layout};
   |            ^^^^^^^^^ Could not find `allocator` in `alloc`

error[E0432]: unresolved import `alloc::allocator`
 --> /home/erin/.cargo/registry/src/github.com-1ecc6299db9ec823/linked_list_allocator-0.6.2/src/hole.rs:1:12
  |
1 | use alloc::allocator::{AllocErr, Layout};
  |            ^^^^^^^^^ Could not find `allocator` in `alloc`

error: aborting due to 2 previous errors

Thanks for reporting! Fixed in b2e5f75, released as version 0.6.3.


Not possible to Publish Asp.Net using Google Tools - Web.config transformation

Say I have Web.QA.config transformation and I select the QA configuration. When publishing using visual studio to some local folder or an IIS it works as expected. But when using the Google cloud extension and publish to the Google environment it always publish without transformation, meaning with the web.config configuration.
As described here:
http://stackoverflow.com/questions/43993490/publish-asp-net-using-google-tools-web-config-transformation

We have a hardcoded configuration sadly, need to fix this.


Clarification of some abbreviations?

Dear Deepminder:
During a group meeting I was raised a question about the meanings of abbreviations in the demo code of TRFL when I tried to introduce TRFL to my lab members. So I have to ask it here.
It reads:
q_tm1: the action value in the source state of a transition.
a_tm1: the action that was selected in the source state.

What does m1 mean here? I know "q" stands for action value, "t" stands for time step, I tried to figure "m1" stands for what, but it is not so intuitive.
Could you please help me on that? Thanks a lot.

BTW, I thought 'm1' might be 'minus 1', but I am not quite sure. I would like to hear the original naming convention from you. Thanks.

Hi, that's right, m1 stands for minus 1, i.e. at the previous timestep.
On Sat, 17 Nov 2018 at 04:52, Yurui MING<EMAIL_ADDRESS>wrote:

BTW, I thought 'm1' might be 'minus 1', but I am not quite sure. I would
like to hear the original naming convention from you. Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/deepmind/trfl/issues/7#issuecomment-439588226, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABeeDV53Yeg3uvmD0_goIjsbRSqRKL2Wks5uv5YCgaJpZM4YnRkv
.


FancyZones Edge drop down selection box issue

Microsoft PowerToys version
0.7.41
Installation method
Chocolatey
Running as admin
Yes
Area(s) with issue?
FancyZones
Steps to reproduce
After snapping an MS Edge window using FancyZones, drop down boxes open in the top left corner of the zone.

✔ Expected Behavior
Drop box to open in place
❌ Actual Behavior
Box choices appeared in top left corner of set FancyZone
Other Software
Microsoft Edge
Version 118.0.2088.33 (Official build) stable app, beta channel (64-bit)

Same issue here, and this bug has been present in the past.  Unchecking Allow popup window snapping "avoids" the problem.
This is the bug where it was referenced https://github.com/microsoft/PowerToys/issues/17955 on v0.57.2

Looks like https://github.com/microsoft/PowerToys/issues/29197.
Let me see the /bugreport please.

/dup https://github.com/microsoft/PowerToys/issues/29197


Implement Profiles tab (heap profiling)

This may be possible using a private API that powers DDMS' lame Allocation Tracking UI: https://android.googlesource.com/platform/libcore/+/android-5.1.0_r1/dalvik/src/main/java/org/apache/harmony/dalvik/ddmc/DdmVmInternal.java
This API has been stable for a very long time AFAICT (I looked all the way back to Ice Cream Sandwich).  I believe it will continue to be stable as well.
The format of the getRecentAllocations method is defined by ddmlib: https://android.googlesource.com/platform/tools/base/+/android-5.1.0_r1/ddmlib/src/main/java/com/android/ddmlib/AllocationsParser.java
The major issue to overcome is the seemingly incomplete heapsnapshot file format that Chrome uses.  In particular, there's limited UI and file format support for allocation stack traces and the format exported/imported by DevTools appears to even lose the limited information that does currently exist.  Upstream discussion started at: https://code.google.com/p/chromium/issues/detail?id=277984#c34

@paulirish any chance you have some context on this?  In particular, with: https://code.google.com/p/chromium/issues/detail?id=277984#c34?

Seems like a good bug. Can you file a new one?
On Mar 13, 2015 2:44 PM, "Josh Guilfoyle"<EMAIL_ADDRESS>wrote:

@paulirish https://github.com/paulirish any chance you have some
context on this? In particular, with:
https://code.google.com/p/chromium/issues/detail?id=277984#c34?
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/stetho/issues/92#issuecomment-79442606.

Filed upstream as: https://code.google.com/p/chromium/issues/detail?id=467222

Upstream is implementing the required changes, we're back in business!  Go Chromium team!

@paulirish any chance you can help out here?  The activity on https://code.google.com/p/chromium/issues/detail?id=467222 has mysteriously stalled just shy of having this perfectly wired up for our purposes.  The only bug remaining is that allocation stack traces are not recalled from the new .heaptimeline file format.

Sorry. We've had some activity in the project recently that had delayed our
look at this. If you can help me with a patch file I'll get it through code
review.
On Apr 30, 2015 4:09 PM, "Josh Guilfoyle"<EMAIL_ADDRESS>wrote:

@paulirish https://github.com/paulirish any chance you can help out
here? The activity on
https://code.google.com/p/chromium/issues/detail?id=467222 has
mysteriously stalled just shy of having this perfectly wired up for our
purposes. The only bug remaining is that allocation stack traces are not
recalled from the new .heaptimeline file format.
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/stetho/issues/92#issuecomment-97996397.

Woohoo!  Upstream finished the feature!

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Bump.  We need to keep this alive, though the implementation is seriously delayed due to unforeseen issues in the Dalvik/ART support for allocation profiling.


Even after logout access token remains active(Implicit flow)

Hi,
I am facing one issue, i have implemented implicit flow and the thing happening is when I duplicate a tab and logout from the first tab, I am still able to access my API without getting 401. Ideally if i do a logout then my access token should be become invalidate.
Startup of my api project which contains below
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options => {
               options.Authority = "http://localhost:50000/";
               options.RequireHttpsMetadata = false;
               options.ApiName = "***";
           });

and i have Authorize attribute implemented.
this.oidcConfigService.onConfigurationLoaded.subscribe(() => {
const openIDImplicitFlowConfiguration = new OpenIDImplicitFlowConfiguration();
openIDImplicitFlowConfiguration.stsServer = '';
openIDImplicitFlowConfiguration.redirect_url = '';
openIDImplicitFlowConfiguration.client_id = 'UiProject';
openIDImplicitFlowConfiguration.response_type = 'id_token token';
openIDImplicitFlowConfiguration.scope = 'openid profile ';
openIDImplicitFlowConfiguration.post_logout_redirect_uri = '';
openIDImplicitFlowConfiguration.start_checksession = false;
openIDImplicitFlowConfiguration.silent_renew = true;
openIDImplicitFlowConfiguration.silent_renew_url = '***';
openIDImplicitFlowConfiguration.post_login_route = '/';
// HTTP 403
openIDImplicitFlowConfiguration.forbidden_route = '/Forbidden';
// HTTP 401.
openIDImplicitFlowConfiguration.unauthorized_route = '/Unauthorized';
openIDImplicitFlowConfiguration.log_console_warning_active = true;
openIDImplicitFlowConfiguration.log_console_debug_active = true;
  openIDImplicitFlowConfiguration.max_id_token_iat_offset_allowed_in_seconds = 60;

  const authWellKnownEndpoints = new AuthWellKnownEndpoints();
  authWellKnownEndpoints.setWellKnownEndpoints(this.oidcConfigService.wellKnownEndpoints);

  this.oidcSecurityService.setupModule(
    openIDImplicitFlowConfiguration,
    authWellKnownEndpoints
  );
});
console.log('APP STARTING');

Identity server config.cs
new Client
{
ClientId = "UiProject",
ClientName = "Angular Client",
AllowedGrantTypes = GrantTypes.Implicit,
AccessTokenType = AccessTokenType.Jwt,
// Default 300 seconds
IdentityTokenLifetime = 300,
// Default 300 seconds
AuthorizationCodeLifetime = 50,
// Default is 1 hour or 3600 seconds
AccessTokenLifetime = 120,
// Default is 30 days
AbsoluteRefreshTokenLifetime = 259200,
RefreshTokenExpiration = TokenExpiration.Sliding,
SlidingRefreshTokenLifetime = 1296000,
AllowAccessTokensViaBrowser = true,
UpdateAccessTokenClaimsOnRefresh = true,
AlwaysIncludeUserClaimsInIdToken = true,
AllowRememberConsent = false,
RequireConsent = false,
AllowedCorsOrigins = new List
{
***
},
RedirectUris =           {
***
},
PostLogoutRedirectUris = { *},
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
""
}
}
Please let me know am I missing something or doing something wrong.
I do have one more question don't know if it is a issue or a feature requirement. the problem is, if i have 2 clients and open them together in one browser then i am able to login to one client with out any issue but for second client when i provide the credential to the login screen i get back 400 status code.
This issue is related to Hybrid flow.
If possible please help me with these 2 issues Thank you in advance...:-)
Thanks
Ravi

If the other tab has an in-memory copy of the access token, and the token is a JWT, then it would explain what you're seeing. JWTs aren't revocable. Reference tokens are, though.
Also, the other tab should listen for the UserSignedOut event to know when this has happened and handle it however you want to.

Hi brockallen,
Could you please provide me the link to the documentation where i can see how to use UserSignedOut event and if it is possible could you please help me with my second issue.
This issue is related to Hybrid flow. If i have 2 clients and open them together in one browser (different tabs) redirecting to same IDP, then i am able to login to one client with out any issue but for second client when i provide the credential and try to do login then i am getting back 400 status code from login screen, i am able to see the debug logs of IDP and able to figure out that my Antiforgerytoken validaton failed but i have no idea how to handle this. Could you please help me with this
Thank you
Ravi :-)

I was confused on your question (and thus my reply). I updated above.