Parse SDK for tvOS

Please make available a tvOS-compatible version of the Parse frameworks. Apple TV apps will not be able to compile against the iOS frameworks upon official release of Apple's tvOS SDK.

Hey @waterclock, absolutely!
We are working hard to make it happen, and tracking this for release soon. Stay tuned.

Great news, thanks!

+1

+1

+1

+1

@nlutsenko any estimates? Thanks.

Amazing to see this level of excitement.
Let me output some updates here:

Since there is no local storage or push notifications on tvOS as of right now, we are investigating what parts of the SDK should be evicted from tvOS target
For user authentication and analytics tracking we still need a place to put currentUser and installationId (these are just files right now, but you don't really want them to be synced to all your devices)
We are aiming to nail down the list of all the things that we need to build/change/remove/rinse/repeat to support tvOS by mid next week
This list should appear on this issue, so we are publicly tracking it and can develop in the wild open (as well as accept contributions)

Any feedback so far about parts that you think are the most important to have, or even something new that you can see us building are very welcome!

As you pointed out, since we cannot store data locally, the first thing to get working is sending and retrieving information. I think the "nice to haves" like the custom UI and analytic, etc. can come later as we have a few weeks before apps will be released, but having the ability to store data remotely is the most important issue right now.

+1

Maybe there's a way to put a wrapper around the javascript API or create a lightweight IOS SDK that allows the basics?  It seems that the tvOS limits are such that maybe a better approach is to provide connectivity to Parse cloud code.

Llightweight local storage is available via NSUserDefaults (up to 500K). Also, caches can be written to disk for things like image caching, but they can be deleted by the system so will need to test for their existence prior to reading.
Definitely need the basic Objective-C API of Parse.framework and ParseUI.framework. All the social authentication frameworks can wait till twitter and Facebook figure out how to offer third-party authentication on a platform without a web view.

Agree with @WillChilcutt & @waterclock. Having the ability to retrieve and store information would be great before looking into the nice to haves.
There is some more discussion about the NSUserDefaults/local storage options here... https://forums.developer.apple.com/thread/16967

My wish list for tvOS support would be a Cloud Code framework that would allow serving various templates that Apple has defined.  It would be a shame to make a UIKit based TV app when TVML based UI is so nice looking on the TV.

Native UIKit apps look every bit as good or better than the TVML samples and a native Parse tvOS framework is a must.

I opened a bug report with Apple for requesting persistent local storage. It has already been marked by Apple as a duplicate. If we are enough people requesting this, we may be heard.

I understand persistent local storage is very nice to have, but it really shouldn't be a show-stopper for a tvOS Parse framework. Again, as I understand it, caches for things like PFFiles are supported. It's just that the framework will need to test for the expected existence of a cache before reading from or writing to it (as tvOS may have deleted it during routine or resource-constrained cleanup operations). The whole point of Parse is to act as our server-based datastore. Even no local storage at all were possible (which is not the case), it should still be possible to do 99.99 percent of what we need it to do outside of perhaps the transmission of extremely large data files.

Agree with waterclock, but, in a pinch, one can use the Parse REST API and SwiftyJSON (with or without Alamofire as the URL loading platform).  I do miss the convenience of PFFiles, however.

I started integrating the Parse REST API with AFNetworking last night and I'll move to the SDK when it's available.  I suggest you all do the same if you want to get any work done.

+1

Guys, we are aiming to have a precise list of things to be done as well as rough timeline for tvOS SDK by the EoD tomorrow. Thanks for bearing with us, we are going to get there soon!

+1

Any updates to the timeline?

+1 :)

+1

+1 @kuquert @pietrodegrazia

+1

+1

+1

+1

Nearly two weeks since any word on this. I sure hope it's coming along, as time is winding down on being able to submit Parse-enabled apps to the Apple TV App Store in time for release. Any updates appreciated!

+1

+1

+1

+1

Any update to this would love to implement Parse into our first app being that it can only use CloudKit for storage.

Fairly confident at this point that a team of assassins took out the engineers working on this.  Disaster.

I am with @SloanHawthorne on this.  I would rather use Parse than CloudKit for my tvOS app, especially since I already have a lot of code that works with Parse.

Hey guys, engineers behind this are still alive :grin:, though there was some suspicious assassin activity nearby.
The current rough plan is:

Finish up all the work for watchOS 2 SDK, since it overlaps tightly with requirements for tvOS
Add tvOS target and port over tests
Start including classes/features piece by piece, and exclude things that don't work or mark them as unavailable for tvOS
Enable things that make sense for tvOS

Here is the current idea of what the feature set of first tvOS release we are going to have:

PFObject and PFQuery
ACLs, Roles, Geo Points
PFUser for authentication, PFSession for sessions
Anonymous users
PFCloud
PFConfig
No Local Datastore (doesn't make much sense, since no local storage)
PFFile might be unavailable for uploads, since we need to change how we store the data for it

Anything not in this list is a nice to have, but might be unavailable.
I am going to come back to this issue and compile a brief list of explicitly actionable things, so we can rage through them together with everyone.
As well as include some instructions on how to compile the tvOS SDK for yourself.

PFImageView is a big one, and ours are typically populated with images form PFFiles. We're using it everywhere in our prototype Parse tvOS app. Would be pain to remove. Caching of such image PFFiles is helpful too, so any clever ways to allow caching of returned PFFile images is a big help. Have steered away from reliance upon other parts of ParseUI like table and collectionview subclasses, though they might not actually too difficult to bring over.
PFFile uploading is not important, and likely won't be for a long while for most tvOS apps as it is not currently a content-creation device.
Many thanks, glad the assassins failed! Cheers!

Sound like some progress!  If anyone has a wrapper around the Parse REST API that can be used in the interim, please let us know.

@waterclock PFFile transfer seems easy. Grab the PFObject through Rest API. Then grab url from that json
-> dictionary object.
Use SDWebImage library for caching images and loading images from url. It is one of the best image caching libraries I have ever used.

+1 Thanks.

Any idea if we will be able to get the Unity SDK updated for AppleTV support in the near future?

@Blueteak This is more of a discussion for our .NET repository: https://github.com/ParsePlatform/Parse-SDK-dotNET
Feel free to open an issue over there and we can begin tracking the things needed to support unity on tvOS.

+1
Beta 3 appears to now support Push Notifications, though I haven't been able to verify it yet (had anticipated using Parse to do it but clearly not an option currently).
[UIApplication registerForRemoteNotifications] compiles and the documentation indicates it is now supported by tvOS.
Personally I would love to see Push supported / included by Parse in their tvOS build.

+1
@nlutsenko Do we have any update on the timeline and/or how we should go about compiling on tvOS?

I use this lightweight parse sdk for my tvOS project https://github.com/hackiftekhar/IQParseSDK
so far been working fine.

@coolioxlr Looks nifty! No idea how well it's caching (assuming such exists) will work on tvOS, and it hasn't been updated in a year so it's evidently not changed anything to accommodate tvOS' lack of persistent local storage.
I guess if those rumored assassins succeed in taking out the proper Parse tvOS port team it's a good fallback. ;)

Hey guys, letting you know - I updated the second comment on this issue with a first pass on the list of things that we want to tackle to build required minimal SDK for tvOS. That issue is going to be constantly updating, as well as I am going to attach all Pull Requests to this issue.

Thanks for the update Nikita. Looking forward to that watchOS update.

watchOS 2 SDK is tracked in #179 (which also has instructions on how to you can start using it, even though it's still in beta)

I tried this lightweight parse (https://github.com/hackiftekhar/IQParseSDK) recommended by @coolioxlr above, but it's throwing piles of errors when I include the source files, I'm assuming I am just doing something dumb but I can't seem to figure out what. Anyone else have this problem?

I started working with it and found that there are a few #import statements missing, but eventually it compiles.  Added added into my tvOS app pch file lines like:
#define PFQuery IQ_PFQuery
#define PFObject IQ_PFObject
etc.
Basically I map all the IQ_ types to the normal PF ones we know and love so I don't have to change any of my existing code (in theory).  I also did not include the normal parse framework in my tvOS app code.  This works well except that there are some unsupported methods in the IQ_ code that don't work, or classes like IQ_PFRole that don't do anything.  The author kindly provided the method names, but commented them out.
The good news is that the very basic things work, and that's enough to at least make some progress.  I am using the IQ stuff like scaffolding to support things until the official version from Parse comes out.
I have great respect for the official parse IOS API, as digging through that code for reference, there are some very cool and complicated things they are doing that are not easily replicated in the IQ_ code base.

Thanks! So... I knew what I was doing was dumb. I had included the .pch file but not linked it properly. Been a while since I had to do that. Here's a link to how if anyone else is as noob as me at this.
https://techfuzionwithsam.wordpress.com/2014/11/29/how-to-add-pch-or-prefix-pch-file-in-xcode-6/

@waterclock If you combine 433+434+435+436 - it will compile now!
Will ping here once again when all of them are merged in master.

@nlutsenko Awesome news!

@nlutsenko Are you able to provide a Parse-iOS.zip? I can't for the life of me get $ rake package:frameworks working. (See here for my console output)

@waterclock All merged in, ready to be used from source. :)
@JackoPlane We don't have the bundling script just yet. Unfortunately you would have to build via Parse.xcworkspace.
Will make it happen though (as an optional thing), I think it's valuable to have it.
Do you guys want CocoaPods thing early as well or it's a nice-to-have?

@JackoPlane from reading the console output - try cleaning the derived data for your project, it's super strange that it fails to even package generic iOS framework for you, since we have Travis build specifically for this.

Not using CocoaPods in my project, so not urgent. Very excited!

Cocoapod Please!  Thanks so much for all you work on this.
-Peter
On Oct 19, 2015, at 6:45 PM, Nikita Lutsenko <notifications<EMAIL_ADDRESS>wrote:
@waterclockhttps://github.com/waterclock All merged in, ready to be used from source. :)
@JackoPlanehttps://github.com/JackoPlane We don't have the bundling script just yet. Unfortunately you would have to build via Parse.xcworkspace.
Will make it happen though (as an optional thing), I think it's valuable to have it.
Do you guys want CocoaPods thing early as well or it's a nice-to-have?
—
Reply to this email directly or view it on GitHubhttps://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/250#issuecomment-149397481.

@nlutsenko I managed to finally get it building, was related to Bolts.framework. Have you experienced the following?
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_PFPushManager", referenced from:
      objc-class-ref in Parse(ParseManager.o)
  "_OBJC_CLASS_$_PFPushState", referenced from:
      _OBJC_CLASS_$_PFMutablePushState in Parse(PFMutablePushState.o)
  "_OBJC_CLASS_$_PFPushUtilities", referenced from:
      objc-class-ref in Parse(PFPush.o)
  "_OBJC_METACLASS_$_PFPushState", referenced from:
      _OBJC_METACLASS_$_PFMutablePushState in Parse(PFMutablePushState.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@reggatta That is literally my job :grin:
@JackoPlane Strange, those symbols are explicitly not there, I wonder why they are trying to be referenced.
I think I know what it is though, will fix in a bit (tons of pull requests are coming).
CocoaPods and Rakefile building is coming very soon.
I am going to unbreak the linking first though.
Please keep in mind that a lot of things are still broken and not updated to be compatible with tvOS (like storage for PFUser.currentUser()).
What keeps me sane is that you guys are all here, so if anyone runs into anything that we didn't expect - those things get on the radar early and we can address them.

@JackoPlane can you try the branch of #441?
It should address the problem you are seeing + the same one around PFInstallation.

Yeah, I got to the same point. Basically built Bolts separately first then added it as a framework manually to Parse tvOS target and removed the unneeded Bolts build dependency.
Both Bolts and Parse tvOS targets I set to tvOS SDK 9.0 and enabled ARC in Xcode 7.1 beta 3. They build fine for tvOS Simulator, but after you add the resultant frameworks to your tvOS project you get the above linker errors.

@waterclock Race condition in commenting...lol.
I just sent couple of pull requests that should fix that.
Going to add the tests target, so we have something we link to.

@nlutsenko Ha, yep! Any way to accelerate getting those fixes approved and into the master? My git foo is weak.

@waterclock Unfortunately, I don't think so.
I can help you with git foo though :)
The only thing that would be different between a generic checkout of a repo - a branch that you are referencing. In this case - it would be nlutsenko.tvos.installation instead of master.
For future reference - all these branches are visible on top of pull requests, so you can simply glance on them and checkout the code behind it.

@nlutsenko Awesome, thanks!

Yuk, there is no support for tvOS in OCMock.
Created an issue to track in their repo https://github.com/erikdoe/ocmock/issues/257
I guess tests are coming after we have OCMock, since we depend on it very much.

Thanks for the updates @nlutsenko, worked for me this time! I really appreciate the support from Parse/Facebook/yourself - Yay for OSS!

Yay for OSS, indeed! :tada:
Love building things in the wild open, this is going to be the second big thing that we do purely in OSS. (the first one being watchOS 2 SDK aka #179)

@nlutsenko Awesome work on this. Would be awesome to have Cocoapod sooner, currently using a slim Swift REST wrapper but would love to switch over :+1:

All my tests so far in the Simulator show it's working great, though I don't exercise every part of the Parse API by any stretch. I guess the only major concern (In my case anyway) is when the dreaded tvOS system cache cleanup happens and what, if any, issues might result. @nlutsenko any chance for a similar down-and-dirty tvOS target for ParseUI?

@waterclock great to hear that!
Let me know if you run into issues at all.
ParseUI - do you have a specific component in mind? Not all of it makes sense on tvOS I hope.

@nlutsenko well you've done some great stuff so far, thank you! Only issues I ran into were:

Bolts dependency doesn't build (I forget why) so I manually add a pre-compiled tvOS Bolts framework and delete the dependency.
Parse.h includes this:

#if !TARGET_OS_WATCH
#import <Parse/PFInstallation.h>
#import <Parse/PFPush.h>
#endif
So that's a little compilation problem have to manually fix.
So far, in terms of the framework itself, no known issues. I'm able to subclass and register subclasses of PFObject. PFQuery and PFRelation seem to work fine. PFUser account log in, log out, creation, password reset, insertion of new objects, all good. Excellent!
In terms of ParseUI, I use PFImageView all over the place. I'm not sure if potential replacements like SDWebImage support tvOS caching any better than a naive ParseUI port would. So PFImageView would be big.

Bolts dependency, might be due to the fact that it's using xcodebuild and it's not automatically reset to the Xcode version that you are using it from, but rather using the setting. (change it via xcode-select)
Parse.h great catch! Totally missed it, fixing in a bit.

SDWebImage would be faster to adopt, since there is PFFile.url() property that gives you back a full url for any given file. We have something crazy in mind for ParseUI for tvOS, but it's still in discussion phase.

Cool, SDWebImage it is for now. Thanks again and will provide feedback on any issues that come up as the port progresses!

Pardon my git naiveté, but what is the best way to get the latest build?  Or is there a Cocoapod in the works?

Hey guys, I just pushed the podspec to nlutsenko.tvos.podtest branch of this repo.
We can't quite push it to master, since we are not ready to release.
Though - you can start using it right now via CocoaPods by modifying your Podfile:
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'

Let me know if you run in any problem with it. Also I am going to update the instructions on top of this issue.

Thank you for your dedication to this. I am figuratively toasting you with a huge glass of vodka.
Ed
Sent from my iPhone

On Oct 20, 2015, at 6:20 PM, Nikita Lutsenko<EMAIL_ADDRESS>wrote:
Hey guys, I just pushed the podspec to nlutsenko.tvos.podtest branch of this repo.
We can't quite push it to master, since we are not ready to release.
Though - you can start using it right now via CocoaPods by modifying your Podfile:
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
Let me know if you run in any problem with it. Also I am going to update the instructions on top of this issue.
—
Reply to this email directly or view it on GitHub.

@nlutsenko Do you have any idea on a release date for the full SDK?

Thanks for doing all this! - I used
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'

in my Podfile and got the error message:
[!] The platform of the target `Pods` (tvOS 9.0) is not compatible with `Bolts/Tasks (1.3.0)`, which does not support `tvos`.

I tried finding a solution online but couldn't find one - do you have an idea what I'm doing wrong?

@nlutsenko Thanks for your hard work. I used

pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'

The error is:

ld: framework not found Bolts
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Then i copied the pre-build framework to the project. It was succeed. But after i added a Parse bridge header, There were 30 errors and like this:

"_sqlite3_bind_blob", referenced from:
-[PFSQLiteDatabase _bindObject:toColumn:inStatement:] in Parse(PFSQLiteDatabase.o).

So how to fix it. Thank you.

Since the pod spec is evidently not working for people, can someone post a quick cheat-sheet for getting Parse and Bolts compiled multi-architecture for arm64 and Simulator? I'd like to get my app in the review queue and spent hours last night beating my head against a wall trying to get these two slotted into my project. Thanks!

i found a little annoying typo in build_framework.sh line 136:
it is now
xcode_build_target "appletv" "${BUILDCONFIGURATION}" "TVBolts"
but should be
xcode_build_target "appletvos" "${BUILDCONFIGURATION}" "TVBolts"

@helloxiaojin do not forget to add the frameworks like described here:
https://parse.com/apps/quickstart#parse_data/mobile/ios/swift/existing

platform :tvos, '9.0'
# Uncomment this line if you're using Swift
# use_frameworks!

target 'MyApp' do
	pod 'Bolts', :git => 'git@github.com:BoltsFramework/Bolts-iOS.git', :branch => 'nlutsenko.xcode71'
	pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
end```

result:

```Pre-downloading: `Bolts` from `git@github.com:BoltsFramework/Bolts-iOS.git`, branch `nlutsenko.xcode71`
Pre-downloading: `Parse` from `git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git`, branch `nlutsenko.tvos.podtest`
[!] The platform of the target `MyApp` (tvOS 9.0) is not compatible with `Bolts (1.3.0)`, which does not support `twos`.```

@waterclock :) The branch you are looking for on Bolts is nlutsenko.tvos, just pushed.

@skofgar @helloxiaojin et al, Bolts for tvOS is coming today, preparing few things right now before we fully ship it.

Out of interest, Is there a Parse (public) Slack?

@JackoPlane, nope, not even an internal one...
I've seen a huge debate on https://github.com/reactiflux/volunteers/issues/25 about it, though...
Maybe Gitter/Discord would be a better option?
The biggest concern that we probably have - if we commit to it, will the community use it?

@nlutsenko Thanks! That seemed to work, kinda. No sign of Bolts or Parse frameworks now anywhere but my xcworkspace has been filled with all sorts of  stuff and references to products like libParse.a and libBolts.a. It even made a static library out of my app target. I knew there was a reason i was avoiding Cocoapods...
Man, fifteen hours now struggling to get two bitcode-enabled, arm64, tvos frameworks of Bolts and Parse and still nowhere. Depressed.

@JackoPlane https://gitter.im/ParsePlatform/Chat Let's try it out, if it works - great.

Bolts 1.4.0 just shipped everywhere (repo/releases/cocoapods), which has support for tvOS.
Going to update it in this repo as well in a moment.

So I've been able to fix all of the linker error because not all of the if statements were set lol. But I get an error in the Parse.h file that says that there is a duplicate declaration of the interface for the class Parse. There's only 1 @interface declaration though so I'm wondering how I can fix this.

Was the version 1.9.1 that was just released today supposed to be for tvOS and watchOS?  Or will these changes be included in the next version?  Thanks.

Nope, we are still working on bringing support for these. (watchOS looks like done, tvOS is work in progress).

Ok cool.  Thank you.

Update: I fixed my header problem! Turns out it was just a conflict with CocoaPods. :/

@BananaFudgkins Whee!

When running on a real device. It gets stuck setting the applicationId and clientKey. Appears to be getting stuck in a loop of some kind of locking - I presume trying to save the applicationId to disk? I've attached a screenshot of the stack.

@JackioPlane Great catch! I've been going mad with one App Store rejection after another for my app hanging on launch, which doesn't happen on the Simulator but I have no hardware device to test on. Can we get a fix for this ASAP @nlutsenko?

+1 for the above-mentioned issue

+1 this is a blocker unfortunately

We do need a test device for this as well, let me see if I can find one.
@JackoPlane can you get us a path of the file its trying to lock onto?

@nlutsenko Sure! I'll be on bitter if live-chat is better to debugging

@JackoPlane @nlutsenko Pulling for you guys. T-minus a few more hours to have a shot at launch-day App Store approval. No pressure though. ;)

Hi all,
I'm using this branch, and everything works well on the simulator, but not on device. My model is using  PFSubclassing, and the block completion from -findObjectsInBackgroundWithBlock is never called.
Any suggestion? Thx

Yep, I'm in the same boat. We're all waiting for @nlutsenko to finish his testing and submit a functional build that works on the device. Till then, we're all kinda dead in the water unless you want to dive into the Parse code and start bailing water yourself...

Hey, thanks for all the work and documentation!
Is this tvOS build meant for projects that only run tvOS?  How do you use this SDK for a project that has both iOS and tvOS targets?
My project has two targets: iOS and tvOS.  The iOS target uses the Parse pod (pod 'Parse').  I get tons of compiling errors when having this installed on both targets:
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
If I use pod 'Parse' for the iOS target and, for the tvOS target include
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
Terminal gives me this error:
[!] There are multiple dependencies with different sources for `Parse` in `Podfile`:

- Parse
- Parse (from `git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git`, branch `nlutsenko.tvos.podtest`)

If I stick with  "pod 'Parse'" for the iOS target and then import nlutsenko.tvos.podtest as a folder into the tvOS target, the iOS target builds normally, but the tvOS target crashes with duplicate definition errors.
Is everyone just creating dedicated tvOS projects?  Or is there a way to compile a single project with two targets (so we get to re-use iOS classes for the tvOS target)?

@rrroni yeah I'm having this same problem. For my iOS target I'm using the frameworks I downloaded and then the pod for my tvOS one.

@BananaFudgkins thanks! Do both of your targets build with this setup? (also you have the best username ever :)

@rrroni yes both of my targets can build without error. I just had to use the pod in my tvOS target and I downloaded the Parse frameworks from their website and used them in my iOS target.

Thank you so much, @BananaFudgkins!  It worked for me, too.

Thanks for the update! @waterclock.

Hey guys, I just pushed the updated version to nlutsenko.tvos.podtest branch.
It should include the proper storage for tvOS of all the things that we care most about.
Let me know how it goes for you guys.
cc @waterclock

@nlutsenko It works!!! Thank you!! Have tested login, account creation, password recovery, queries, relation queries, PFObject creation, all good.
One issue I've seen that's broken is [PFUser logOut], which hangs at the notorious waitForResult:withMainThreadWarning: call in BFTask+Private.m
Another is that the currentUser authentication appears to go away after the app quits, requiring another login.  So it's like there's no persistence at all between launches of the app. Granted, most times apps run in the background and do not quit on Apple TV. For my app, requiring a login each time the app restarts is not ideal, but it's not a showstopper as most of the time the app is simply backgrounded by the tvOS dashboard as it would be on the iOS springboard.
If it's a bug, it would definitely be nice to to see it fixed, though I don't know if NSUserDefaults and the keychain are sufficient for Parse to store all it needs to store to make persistent login sessions work.
For  my case it's sufficient for now to let me submit my app to the store. Tremendous work in a short amount of time, kudos! :)

So exactly how do I get Parse to compile for tvOS? I downloaded the branch, switched to the 'nlutsenko.tvos.podtest' branch, ran submodule update --init --recursive, and hit compile on the Parse tvOS scheme, but it is telling me that it cannot find Bolts header files. Am I missing something?

@RVijay007 Follow typical CocoaPods install pattern. Set up your Podfile. Run pod install.
My Podfile looks like this, and works great:
# Uncomment this line to define a global platform for your project
platform :tvos, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!

workspace 'MyApp'

# target 'MyApp' do
    pod 'Bolts', '~> 1.4.0'
    pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
# end

Thanks @waterclock. I ended up just building Bolts myself and dragging into the project linked libraries as I don't use CocoaPods.

@RVijay007 Yep, I did that for a while too but it was all evolving so rapidly that I got on the CocoaPods bandwagon, and that eliminated a lot of headaches.

I'm not sure if this is a known problem with tvOS support but I added Parse into my tvOS project, Parse worked when using the simulator but when testing on an actual device no Parse methods would be called, just be completed skipped over. Didn't know if anyone else was having this problem.

I have only loosely been following this thread, but I concur.  Perhaps someone published a fix.
E

On Nov 10, 2015, at 12:53 PM, Mmarzex<EMAIL_ADDRESS>wrote:
I'm not sure if this is a known problem with tvOS support but I added Parse into my tvOS project, Parse worked when using the simulator but when testing on an actual device no Parse methods would be called, just be completed skipped over. Didn't know if anyone else was having this problem.
—
Reply to this email directly or view it on GitHub https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/250#issuecomment-155529857.

I have downloaded the latest SDK from parse.com that now supports tvOS and iOS, but:
I had to add a define to check the target OS like:
#if TARGET_OS_IOS
    NSString *installationId=[[PFInstallation currentInstallation] installationId];
    [currentUser setObject:installationId forKey:@"installationId"];
#endif

since PFInstallation it is not supported by the tvOS:
PF_TV_UNAVAILABLE PF_WATCH_UNAVAILABLE @interface PFInstallation : PFObject<PFSubclassing>

But which is a valid replacement for this on tvOS?

Also if I try to compile from sources I get
⌦  /3rdParty/Parse-SDK-iOS-OSX/Parse/Internal/PFWeakValue.m:18:1: @synthesize of 'weak' property is only allowed in ARC or GC mode

@implementation PFWeakValue
^

▸ Compiling PFCommandURLRequestConstructor.m
▸ Compiling PFCoreManager.m
▸ Compiling PFURLSessionUploadTaskDelegate.m
** BUILD FAILED **

The following build commands failed:
	CompileC /Volumes/MacHDD2/Caches/Parse-fnymdhdjubiqnedbfmcuxpyotmbu/Build/Intermediates/Parse.build/Release-iphoneos/Parse-iOS.build/Objects-normal/armv7/PFWeakValue.o Parse/Internal/PFWeakValue.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Failed to build framework for iphoneos.

and the same error from XCode opening the Parse.xcworkspace workspace file:
/3rdParty/Parse-SDK-iOS-OSX/Parse/Internal/PFWeakValue.m:18:1: @synthesize of 'weak' property is only allowed in ARC or GC mode

I really though that Parse would be ready for tvOS. Why guys?! Why?!

Works great for me, app already in store. Use Cocoapods and stop wasting time trying to manually compile the frameworks. That method is not ready for prime time.

@waterclock I couldn't make cocoapods install with your pod file. I get the error below:
[!] Error installing Parse
[!] /usr/bin/git clone git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git /var/folders/3d/6ftd0l6s4dd0h6_0zls3rfx80000gn/T/d20151111-12250-av6gf9 --single-branch --depth 1 --branch nlutsenko.tvos.podtest
Cloning into '/var/folders/3d/6ftd0l6s4dd0h6_0zls3rfx80000gn/T/d20151111-12250-av6gf9'...
Warning: Permanently added the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Also for me the pods for tvOS does not work properly for some reasons. Can't wait to have an official release on parse.com!

@magnett Make sure you have a valid ssh key.  Follow the instructions here and you should be able to install the framework and all dependencies:
https://help.github.com/articles/error-permission-denied-publickey/

@ebender001 when  this branch is going to be merged with the master?

@loretoparisi Although Parse/Facebook seems like a wonderful company, unfortunately, I don't work for them.  It appears that @nlutsenko is the person that can do that.

I had the same issue, try using https://github.com/ParsePlatform/Parse-SDK-iOS-OS.git instead of<EMAIL_ADDRESS>in the podfile

I was able to get everything up and running fine with Parse pulling in data on the tvOS simulator, tried to run my app on the actual device and the Parse code failed silently - no errors, just didn't execute.
I can dig in more tonight to try to figure out why but just making sure - @waterclock you were able to pull in data from Parse successfully on the actual device and not just the simulator?

@blangslet Yes, pull in data no problem. Login, registration, PFQueries, relation queries all work.  Attempting to log out will hang the app, however.

@waterclock thanks for your answer! That's good to know that it's possible. I'll see if I can get to the bottom of it after work.

Can I suggest to @waterclock to make a binary release of the static library or framework for tvOS? This can help all of us, in the meanwhile that possibile setup issues has been discovered/fixed.

Please don't do binary releases, as we are going to run into segmentation really quickly.
I just found an issue with persistence of currentUser/Installation, fixed it and updated the nlutsenko.tvos.podtest branch.
Let me know guys how it goes for you, specifically in persistence of data between app launches.
cc @waterclock Looking into logOut now, hold on tight.

@nlutsenko you are right, but I was talking about the same distribution we can download from https://www.parse.com/docs/downloads like the iOS one: https://www.parse.com/downloads/ios/parse-library/latest

Got you, yeah... We are going to ship it, including a pre-compiled version as well when it's ready.
As you might have seen, there are couple of issues here and there, so it's not yet fully ready for production.
The moment we are confident we can ship it - we will, which should happen very soon, but I don't have a precise date for it, just yet.

@nlutsenko great thank you, that would be super :+1: I'm confident in the official release!

@waterclock Found the problem with PFUser.logOut(), fix is incoming.

@nlutsenko Excellent! Will report once it's merged.

@waterclock Just merged to nlutsenko.tvos.podtest, let me know how it goes...
Both the persistence of login information as well as PFUser.logOut()

@nlutsenko Brilliant! It's now persisting currentUser between app launches and logOut works like a charm. Kudos!!!

@waterclock Awesome, that's great to know!
Next stop - fixing analytics, so it doesn't lock/not report.

@nlutsenko @waterclock updated to latest, and everything works now on the device! Thanks so much for the hard work! 🍻

Right now in my table view on tvOS whenever I try to retrieve data from a PFFile I'm getting this weird error:

Anyone have any ideas?

@BananaFudgkins You need to add the transport settings to your app's plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSAllowsArbitraryLoads</key>
	<true/>
</dict>
</plist>

@waterclock just tried that on iOS 9 and I'm still getting that error.  Currently my Info.plist looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>Clone</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>5</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>arm64</string>
	</array>
</dict>
</plist>

@BananaFudgkins the correct xml is
key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>

And... You don't need it, at all.
Disabling app transport security is not required at all, since we made sure everything works great, even before iOS 9 shipped.
If you guys are experiencing problems purely with files - I would suggest filing an issue on https://parse.com/help with details of your app, since we are still using FB Bug Tool to track backend issues.

:100:

Hey guys, quick update here...
There was a bug on master fixed in #558, that impacted File downloads purely.
I've just rebased and updated our test branch for tvOS aka nlutsenko.tvos.podtest.
Let me know if you run into any problems.
cc @loretoparisi, @BananaFudgkins You were explicitly running into this, I would appreciate if you would retest and let me know if it works for you now.

@nlutsenko Ok, let me check.

@nlutsenko tested it and it works! Thanks for the fix!

What  do I need to access this branch?  I would like to use parse with TVOS. Thanks in advance I am a noob.
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
Permission denied (publickey).
fatal: Could not read from remote repository.

@HUGEwindow try using https://github.com/ParsePlatform/Parse-SDK-iOS-OSX.git instead of the ssh URL.

Worked, thank you!

Anybody else get this error when installing the pod in the project file?
`[!] Unable to satisfy the following requirements:

Bolts/Tasks (= 1.4.0) required by Bolts (1.4.0)
Bolts/Tasks (= 1.4.0) required by Bolts/AppLinks (1.4.0)
Bolts/Tasks (~> 1.5) required by `Parse (1.9.1)``

This is what my pod file looks like.
`# Uncomment this line to define a global platform for your project
platform :tvos, '9.0'
Uncomment this line if you're using Swift
use_frameworks!
workspace 'Look Contorller'
target 'Look Contorller' do
pod 'Bolts', '~> 1.4.0'
pod 'Parse', :git => 'git@github.com:ParsePlatform/Parse-SDK-iOS-OSX.git', :branch => 'nlutsenko.tvos.podtest'
end`
Thank you!

@justColbs either remove pod 'Bolts' from your pod file or convert it to
pod 'Bolts', '~>1.4'
Or even
pod 'Bolts', '~>1.5'

Perfect @nlutsenko thank you sir! Changing it to 1.4 worked.

Hello, is there a manual for integrating the TVOS kit and does it support push (or something similar)? I tried integrate it with the instructions for ios, but I got errors, even I included the classes and copied the content.

Hey @frankcom,

Push Notifications are not user visible on tvOS, meaning that even if you send a notification - it won't be shown to the user and will be delivered to your application only.
Could you be more specific in regards to errors you are getting? The installation process is not different from iOS (opening a separate issue to track this would be very helpful).

Hi @nlutsenko I was wondering if there are plans for a native Swift implementation of the Parse framework. I know of course the existing one can be bridged to, but just wondering if a Swift re-write was being considered. Thanks!

@waterclock Yup! We are investigating on what would it take for us to make a native Swift SDK, and I'll share more details when I have them. :grin:

@waterclock Yup! We are investigating on what would it take for us to make a native Swift SDK, and I'll share more details when I have them. :grin:

@nlutsenko Awesome news, thanks!


Distribute via Homebrew

It'd be awesome if Octicons were part of https://github.com/caskroom/homebrew-fonts. I'd love to be able to install Octicons via brew cask install font-octicons in a way that can easily be kept up to date without manually downloading each time.

What's the process for maintaining this? We're already running into issues with working in having to manually publish to npm along with the rest of the publishing flow. Is this going to add another list of things that may get ignored, or is it something that can be/is automated?

Spiked out https://github.com/caskroom/homebrew-fonts/pull/396, which I believe should be all that's involved. The tradeoff with the way release-downloads work, it has to pull from master (or we'd have to submit a pull request with each release), but this way is set-it-and-forget-it.

I think that's fine. Master is generally always the latest release, with the exception of the delay between merging a pr and tagging a new release.

...and we're live.
You can now install the latest version of octicons via:
brew tap "caskroom/fonts"
brew cask install "font-octicons"

or, if you are using a .Brewfile (like so):
tap "caskroom/fonts"
cask "font-octicons"

@benbalter mind updating the readme to represent this?


Github Code Colors - Fix GitHub domains include

There was a rule that only included GitHub subdomains:
// @include     https://*.github.com/*
Due this, the script only worked with gists. This PR includes the github.com domain (as in other scripts) and fixes this issue.

Just a reminder

All of the @include rules need to be updated to use @match, so please update this PR and I'll merge it.

All of the @include rules need to be updated to use @match, so please update this PR and I'll merge it.

Done


Reach out to other direnv features

Hello @shikanime! 👋
I noticed you opened https://github.com/devcontainers-contrib/features/pull/501 and I figured you might be interested in this project.

@jcbhmr Yes definitly! What's the relation between devcontainers-community<->devcontainers-contrib<->devcontainers ?

The gist of it at present is:

@devcontainers: the official Microsoft organization devoted to standardizing and managing official stuffs. they do the spec, a small set of official features + templates and some base images.
@devcontainers-contrib: @danielbraun89's awesome collection of devcontainer features. currently limited by single-human bandwidth of the owner.
@devcontainers-community: intended to be run by many and cover the "does it make devcontainers better? is it not quite official? put it here!" for things like CMake, LLVM, GCC, etc. other popular tools that are not quite official-level but still widely used. and also more better github actions.

here's a discussion thingie since someone else had the same question in https://github.com/devcontainers-community/features-bazel/issues/1


Error handling - identify which block in which pipeline triggers an exception

See #118 for the background
In general, I think when there is an error with a block, we don't make it easy to know which block in which pipeline caused it
A config_path not found case looks like
  File "/home/markmc/sdg/src/instructlab/sdg/sdg.py", line 19, in generate
    dataset = pipeline.generate(dataset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/markmc/sdg/src/instructlab/sdg/pipeline.py", line 57, in generate
    block = block_type(self.ctx, **block_config)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/markmc/sdg/src/instructlab/sdg/llmblock.py", line 66, in __init__
    self.block_config = self._load_config(config_path)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/markmc/sdg/src/instructlab/sdg/block.py", line 54, in _load_config
    with open(config_path, "r", encoding="utf-8") as config_file:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/markmc/sdg/src/instructlab/sdg/configs/skills/freeform_questions.yaml.foobar'

Which isn't so bad, because you just have to find the block with that path
But in other cases it might not be so easy to identify which block is causing an error - if we catch exceptions and add the pipeline+block name, that would be a big improvement

Per a pointer from @russellb, I'm going to take a look at this one today and will report my progress here. I don't have write access to assign to myself though.

In #155, @russellb asked for before/after examples for the fix. What's currently proposed is to catch exceptions from block.generate(), so here's an example of the current behavior:
INFO 2024-07-17 07:08:14,120 pipeline.py:77: generate Running block: gen_questions
INFO 2024-07-17 07:08:14,120 pipeline.py:78: generate Dataset({
    features: ['task_description', 'seed_question', 'seed_response'],
    num_rows: 5
})
...
  File "/home/markmc/sdg/src/instructlab/sdg/sdg.py", line 20, in generate
    dataset = pipeline.generate(dataset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/markmc/sdg/src/instructlab/sdg/pipeline.py", line 80, in generate
    dataset = block.generate(dataset)
              ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/markmc/sdg/src/instructlab/sdg/llmblock.py", line 181, in generate
    raise Exception("TEST")
Exception: TEST

This case isn't actually so problematic because the context is logged - Running block: gen_questions


⚠ Fortnite has degraded performance

In 14fbf35, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1761 ms

Resolved: Fortnite performance has improved in a9e35be.


vitest clobbers playwright in a fresh SvelteKit installation.

Describe the bug
Installing vitest in a fresh SvelteKit project causes playwright tests to fail with a runtime error. The project's README.md provides the full error report, but a sample of the error message is as follows:
[WebServer] [vite-plugin-svelte] /home/my_home/vitest-playwright-bug/.svelte-kit/runtime/components/layout.svelte:15:1 The keyword 'let' is reserved
file: /home/my_home/vitest-playwright-bug/.svelte-kit/runtime/components/layout.svelte:15:1
 13 |
 14 |  function create_fragment(ctx) {
 15 |    let current;
         ^
 16 |    const default_slot_template = /*#slots*/ ctx[1].default;
 17 |    const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null);
[WebServer] > /home/my_home/vitest-playwright-bug/.svelte-kit/runtime/components/layout.svelte:15:1 The keyword 'let' is reserved
[WebServer] 13:
14: function create_fragment(ctx) {
15:   let current;
      ^
16:   const default_slot_template = /*#slots*/ ctx[1].default;
17:   const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[0], null);
    at error (file:///home/my_home/vitest-playwright-bug/node_modules/svelte/compiler.mjs:17716:19)
...

Reproduction
I have created a public repo that illustrates the problem:
https://github.com/kyllerss/vitest-playwright-bug
The commit history is clean to illustrate where things break.
System Info
Fresh SvelteKit installation w/ Typescript + Playwright.

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Please, follow SvelteKit support here: https://github.com/sveltejs/kit/pull/5094

@sveltejs/kit/experimental/vite has been released in @sveltejs/kit version 1.0.0-next.353. Feedback welcome in https://github.com/sveltejs/kit/issues/5184

The issue has shifted now. I will file a separate bug report as I think the issue now lies elsewhere. Considering this closed.


Add process for adding new classes to CONTRIBUTING.md

This is a fairly involved process at this point and I'd like to see it documented. This can probably done along with #257 since we're adding another class.

Closed by #262


fix: ServerFoundUnityEvent doesn't allow custom ServerResponse

I'm was currently trying to create a custom NetworkDiscovery like explained in the documentation and i encountered a problem with the ServerFoundUnityEvent object: i didn't allow to use a custom struct like suggested in the examples.
So here is my little fix: ServerFoundUnityEvent can now receive a generic type from the class to allow custom responses.

looks good to me.
@MrGadget1024 ?

looks good to me?

It's a breaking change...will look into it further this weekend.


Standardize templated data in target plugins

Use Case
The Target plugins are kind of confusing because they contain templated data intermixed with options for the plugin.

Users don't understand what options are template options vs other plugin options
Users try to use static values in templated object
Users try to use dynamic options outside the plugin(bad examples?)
plugins in templates are not evaluated in the expected order.

Solution
We should add a mappings key at the same level as _plugin, under which dynamic name, uri, and config keys are nested.
groups:
  - name: cloud-webs
    targets:
      - _plugin: terraform
        dir: /path/to/terraform/project1
        resource_type: google_compute_instance.web
        mappings:
          uri: network_interface.0.access_config.0.nat_ip
          config:
            ssh:
              user: path.to.user
    config:
      ssh:
        password: static
        user:
        _plugin: prompt
        message: "Enter user:"

Questions

Should we allow static data in the mappings key?
Bikeshed on mappings

I think mapping should maybe be singular?
more questions:
where does this code live?
how do we handle numbers in the dot indexing?


what is the different tmp.xcconfig and Config.xcconfig?

what is the different tmp.xcconfig and Config.xcconfig?

The doc is weak.


163682226 save signup details profile

UserStorage can now save profile fields
Signup fields name,mobile and email are persisted
Extended gundb with putAck which returns a promise that resolves once database has been updated

@sirpy 	solve conflicts


Release of version <IP_ADDRESS> of xCertificate

Releasing version <IP_ADDRESS>

Hi @kwirkykat, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Katie Keim). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


index_advisor might not work when filtering on JSONb columns

Hi!
First of all, thanks a lot for this extension, it's a really cool :)
Describe the bug
index_advisor function does not suggest indexes for queries where the WHERE close uses the ->> operator.
To Reproduce
Steps to reproduce the behavior:

Install HypopG
Install index_advisor

bla=> \d+ products
                                                                 Table "public.products"
   Column   |          Type          | Collation | Nullable |               Default                | Storage  | Compression | Stats target | Description
------------+------------------------+-----------+----------+--------------------------------------+----------+-------------+--------------+-------------
 id         | integer                |           | not null | nextval('products_id_seq'::regclass) | plain    |             |              |
 name       | character varying(255) |           | not null |                                      | extended |             |              |
 properties | jsonb                  |           |          |                                      | extended |             |              |
Indexes:
    "products_pkey" PRIMARY KEY, btree (id)
Access method: heap

bla=> SELECT
  id,
  name,
  properties
FROM
  products
WHERE
  properties ->> 'color' IN ('white');
 id |        name        |                    properties
----+--------------------+---------------------------------------------------
  3 | Ink Fusion T-Shirt | {"size": ["S", "M", "L", "XL"], "color": "white"}
(1 row)

bla=> select * from index_advisor('select id,name,properties FROM products WHERE properties ->> ''color'' IN (''white'')');
 startup_cost_before | startup_cost_after | total_cost_before | total_cost_after | index_statements | errors
---------------------+--------------------+-------------------+------------------+------------------+--------
 0.00                | 0.00               | 12.10             | 12.10            | {}               | {}
(1 row)

-- it works fine with a varchar column
bla=> select * from index_advisor('select id,name,properties FROM products WHERE name IN (''white'')');
 startup_cost_before | startup_cost_after | total_cost_before | total_cost_after |                    index_statements                    | errors
---------------------+--------------------+-------------------+------------------+--------------------------------------------------------+--------
 0.00                | 0.02               | 11.75             | 8.04             | {"CREATE INDEX ON public.products USING btree (name)"} | {}
(1 row)

Expected behavior
I expected the index_statements to have suggestion of an index.
This index seems like it could have been suggested:
bla=> CREATE INDEX IF NOT EXISTS idx_properties ON products ((properties->>'color'));
CREATE INDEX

bla=> select * from index_advisor('select id,name,properties FROM products WHERE properties ->> ''color'' IN (''white'')');
 startup_cost_before | startup_cost_after | total_cost_before | total_cost_after | index_statements | errors
---------------------+--------------------+-------------------+------------------+------------------+--------
 0.00                | 0.00               | 1.04              | 1.04             | {}               | {}
(1 row)

Versions:

PostgreSQL: 16 (Aurora)

Notes
This does not seem to be a hypopg limitations,
dre=> select * from hypopg_create_index('CREATE INDEX IF NOT EXISTS hypo_idx_properties ON products ((properties->>''color''))');
 indexrelid |         indexname
------------+----------------------------
      14498 | <14498>btree_products_expr
(1 row)

dre=> select * from hypopg_list_indexes;
 indexrelid |         index_name         | schema_name | table_name | am_name
------------+----------------------------+-------------+------------+---------
      14498 | <14498>btree_products_expr | public      | products   | btree
(1 row)

Nevermind, looks like it's intended behavior:
and pa.atttypid in (20,16,1082,1184,1114,701,23,21,700,1083,2950,1700,25,18,1042,1043)

the atttypid for jsonb is 3802.
If I remove the restriction it attempt to create an index but not a correct one:
 public      | products   | properties  | select public.hypopg_create_index($i$create index on public.products(properties)$i$)

Which, I assume, is why there was a limited list of supported attypid in the first place.


Add CoreFX/CoreCLR RTM branches

@mmitche I have created the RTM branches, is it safe to do this now?
/cc @Priya91

@ellismg Do we still need the rc2 branches?

@mmitche We want to keep them around until RTM is done in case we need to service RC2, we'd like Jenkins coverage until then, if that's ok?

OKay sounds good.  Wondering about some of the rolling jobs.  If the rate of change is really low we will be running a bunch of stuff unnecessarily.  I wonder whether the rolling stuff should instead be just checking source control on the rolling interval, and only running if something changes.

I wonder whether the rolling stuff should instead be just checking source control on the rolling interval, and only running if something changes.

Does Jenkins provide a way to not kick off a job if the SHA of HEAD hasn't changed and there's a successful build at that SHA?

Yeah, "poll scm".  Today we have our timed jobs on cron triggers.  You can set the same cron trigger to a poll scm, which will simply not run if the sha hasn't changed.  Of course, you probably don't want that in all cases, since the sha isn't the only thing that contributes to the builds (nuget, for instance)

Of course, you probably don't want that in all cases, since the sha isn't the only thing that contributes to the builds (nuget, for instance)

Sure, we'll look into what we can clean up for RC2 and RTM next week.


Use stream module to call exec/attach calls

As part of #341 this will add support for stream package added in https://github.com/kubernetes-client/python-base/pull/33.

LGTM 👍


Fix compiler error when building python module

Mesos code uses c++11 which if the compiler does not specify its std
leads to:
error: ‘function’ in namespace ‘std’ does not name a type

Adding -std=c++11 fixerates this.

Closing as requested in https://s.apache.org/V8r3


py3 support?

Any plans for Python 3 support? Can't seem to get this tool to run in Python 3.8, never recognizes tests that are recognized when I run successfully in a 2.7 venv
I've got some simple assert tests I'm trying to run that aren't recognized as tests when I run yarn jest
` FAIL  tests/assertEqual_test.py
● Test suite failed to run
Your test suite must contain at least one test.

  at onResult (node_modules/@jest/core/build/TestScheduler.js:173:18)
  at node_modules/jest-pytest/lib/index.js:35:101`

The test to which is just a simple
def func(x):
return x + 1
def test_ints_equal():
assert func(4) == 5,"false!"
Runs without any complaints when I pass the script through to pytest though. Kinda at my wits end.

Same problem. https://gitee.com/wind13/jest-pytest-demo

You can get more information by defining the environment variable JEST_PYTEST_DEBUG_IPC=1.
I got it to work with python 3 by commenting out the pytest_logwarning
method in the pytest_jest/plugin.py file.

Commenting out the pytest_logwarning did worked for me as well. But is there any general fix for the problem?
The workaround is not possible in a CI/CD pipeline environments.

With Python2 deprecated, this project is effectively useless. It's a shame. This is a really good idea but there's just no active maintenance.

With Python2 deprecated, this project is effectively useless. It's a shame. This is a really good idea but there's just no active maintenance.


bevy_reflect fails to build

Bevy version
5a0c09d38fd63383281991da9d6c353ad7228f50
Relevant system information
cargo 1.81.0 (2dbb1af80 2024-08-20)
stable-x86_64-pc-windows-gnu (default)
Windows 11
What you did
cargo build --all
What went wrong
output.txt

I don't get the error if I just cargo build. Only with cargo build --all.

what's the version of your windows-gnu toolchain?

what's the version of your windows-gnu toolchain?

gcc --version
gcc.exe (x86_64-win32-seh-rev1, Built by MinGW-W64 project) 12.2.0

Duplicate of #4758


Health setting name inquiry

Context for the question: Storage Spaces Direct cluster on Windows Server 2019
Health fault "Microsoft.Health.FaultType.Node.HighRootPartitionMemoryUsage" mentions "your configured threshold". The default appears to be 50%. The full text of an actual health fault is "Windows Server is consuming more than 50.000000 % of physical memory, which exceeds your configured threshold.".
How can the mentioned threshold be changed? I assume it's done via Set-StorageHealthSetting but I can't find the name for the setting.
Get-StorageHealthSetting only returns a small number of settings, none of which are relevant for the mentioned health fault. Other health settings can be retrieved by using the Name parameter, but this requires knowledge of the setting name.
For example, health setting "System.Storage.Volume.CapacityThreshold.Warning" can be retrieved using Get-StorageHealthSetting when the Name parameter is used but is not listed when the Name parameter is not used. Moreover, wildcards are not supported for the Name parameter.
There are other health faults for which a (seemingly configurable) threshold is mentioned but no information is provided on how to configure the threshold (https://docs.microsoft.com/en-us/azure-stack/hci/manage/health-service-faults).
PS: Health faults returned by Get-HealthFault are shown in Windows Admin Center. Windows Admin Center doesn't seem to provide a way to configure the thresholds either.

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

ID: 547f8d91-d685-c235-f9d8-378e5cb43cf6
Version Independent ID: 89784d2e-6a45-6f96-dbad-cf87013dc38f
Content: Modify Health Service settings - Azure Stack HCI
Content Source: azure-stack/hci/manage/health-service-settings.md
Service: azure-stack
Sub-service: azure-stack-hci
GitHub Login: @arduppal
Microsoft Alias: arduppal

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

@NodeNine Very sorry for the slow response here. This article has been updated since this issue was filed -- if you still need assistance, please reach out. Thank you -- #please-close


Incompatible with IE 11

In commit 16dde11e8d566771681dd6c39fd28716c9de69fa arrow function syntax has been introduced at several places causing our test suites to break on IE 11 after update. I understand from the commit message that the goal was

Start enforcing the use of newer syntax (as long as it's Node v4 compatible)

As logical as that seems, the chai eco system seems to be commited to supporting IE 11 (at least for now since it still plays an unfortunately big role). This change forces us to setup babel for chai-as-promised which violate typical practices.
I understand either way you are going but I'd love to have a commitment of this library to IE 11 support.

Thanks for the notice. I don't know anything about the "chai eco system", but for this library I'll be supporting Node v4 and above. You can use tools to convert it into something compatible with other systems. See https://github.com/domenic/chai-as-promised#browsernode-compatibility

Thank you for the quick response!
When I wrote "chai eco system" I was a bit lazy. I was referring to

chai itself being tested in all major browsers (including IE 11)
chai-enzyme which compiles down to ES2015 (hence, at least being commited to synatactically supporting IE 11 as well)

I admittedly overlooked this:

If your browser doesn't support modern JavaScript syntax, you'll need to transpile it down using a tool like Babel.

Would you be up to accept a PR to add transpilation down to ES2015 via babel?

No, that's up to individual application authors, and not something I want to maintain in my repository.


Sanitize input

Non-verbal text should not be translated, but (more often than not) should be kept as it complements the message with contextual, social, or emotional information. These non-verbal texts include:

[ ] Emojis
[ ] URLs

This issue aims to track down these kinds of text and link to the issues/PRs in which they are addressed individually.

no work is going to be done here, closing


Publicize JsonValue So It Can Be Passed Around

My zig is rusty so I'm probably just holding it wrong, but when trying to pass a JsonValue around the compiler errors out complaining that JsonValue isn't marked as pub.
An obvious case for this is json of the form
{
    "type": "some_understood_type",
    "payload": {....}
}

where I'd probably want to switch on type and feed root.payload into various handlers.

I'm not ignoring this - been out at a conference the past week and haven't had time to properly dig in.

No worries! I have another branch over on my account which publicizes JsonValue and it doesn't seem to break anything. I think it's branched off of my fix for building on 0.12 but since it's literally a one line change it's probably not worth opening a PR for anyway.

While I've got you here anyway: do you mind PRs via e-mail? I might knock deep equality together when I have a bit of time and I really don't like github c:

Up to you 👍; I appreciate the PRs however they manifest.

Should be fixed btw.

@tekktonic Have you had a chance to test this? It should be fixed but wanted to check in since you've been recent active.

Hey, I'll try to get to it this weekend if I can. It's been a busy week for me due to family things :)

Correction: next week. I forgot that the code I wrote this patch for originally is on my desktop, I'm currently on the other side of the state.

merged PR looks good to me. Just got back in last night :+1:


Dex error on building for Android with briefcase

When I build an app for android with briefcase, I get the following error
    Caused by: java.lang.IllegalArgumentException: bad descriptor: Lpython/__phello__.foo;
        at com.android.dx.rop.type.Type.intern(Type.java:356)
        at com.android.dx.rop.type.Type.internClassName(Type.java:420)
        at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:289)
        ... 27 more

1 error; aborting
:transformClassesWithDexForDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

Voc version: 0.1.5
Workaround:
By @eliasdorneles
This uses the previous version of the Android Support package
python setup.py android --support-pkg https://pybee-briefcase-support.s3-us-west-2.amazonaws.com/Python-Android-support/3.5/Android/Python-3.5-Android-support.b5.tar.gz

It appears the b6 support build has some issues that didn't show up in testing. We've just deleted this support package; we'll push a new update soon.

Maybe it is related to this:
tests (and only in tests), it's acceptable to use method names with spaces enclosed in backticks. (Note that such method names are currently not supported by the Android runtime.) Underscores in method names are also allowed in test code
From: https://stackoverflow.com/questions/46295418/cannot-use-kotlin-backticked-method-names-in-androidtest-bad-descriptor-except


fix(node-server): API class type name correction

Description
The current API type definition (getRecordings) does not match with the actual implementation (getRecording).
https://github.com/Netflix/pollyjs/blob/cbca602a5a446da46a4a2834f893670b8c577880/packages/%40pollyjs/node-server/src/api.js#L18
Motivation and Context
Correct the name so that we can avoid Typescript's compiler error.
TS2551: Property 'getRecording' does not exist on type 'API'. Did you mean 'getRecordings'?
Types of Changes

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

Checklist

[ ] I have added tests to cover my changes.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] My code follows the code style of this project.
[x] My commits and the title of this PR follow the Conventional Commits Specification.
[x] I have read the contributing guidelines.

Closing now after a long period of silence.


Review G-Cloud Services Journey Error Messages

https://trello.com/c/4SyHm8wo/14-2-review-error-messages-for-search-for-g-cloud-services-journey-in-buyer-frontend
Updates the error messages in the G-Cloud services journey to bring them in line with the Design System guidance.
See the equivalent changes for the G12 supplier application error messages: https://github.com/alphagov/digitalmarketplace-frameworks/pull/606
And for DOS Opportunities:
https://github.com/alphagov/digitalmarketplace-frameworks/pull/617
Notes

Commits are broken down by page, with a further commit for changes decided with content design.
In-place message fixes only - this PR doesn't address things like needing to feed back exactly what's missing from an incomplete date, or providing a dynamic character count on fields with character limits.

Added a new commit with content design suggestions

Small thing, but we should probably remove the "Please" from the WhyDidYouNotAwardForm message to keep it consistent
https://github.com/alphagov/digitalmarketplace-buyer-frontend/pull/1021/files#diff-9c9505cd2e36e479f9c6a0d2bcca4c90R137
        validators=[InputRequired(message="Select a reason why you didn't award a contract")]

Updated WhyDidYouNotAwardForm - good catch, @lfdebrux


How to investigate camera connection problems with Coral Mini

Brand new hardware (coral camera, coral dev board mini). Followed the getting started guide without any problems.
But when connecting the coral camera, it does not show up when running v4l2-ctl --list-devices and snapshot complains it can not find any camera. Already tried reflashing. Same result.
Imho the most probable issue is the ribbon cable. I have had that more than once with raspberry pi cameras that switching out the cable resolved connection issues. But since the cable is different to the raspberry pi connection, it is kind of hard to test. I am honestly having a hard time finding a replacement cable on the internet. (Is this the correct one?).
Any other ideas that could be causing issues and what I could check? Yes, the cables are correctly plugged in :)

@j-o-d-o
humn, I don't know of any replacement cable, unfortunately :/
How have you confirm that the cable/camera is working? Have you had a chance to try plugging it back to the original dev board to see if it detects it?

No, I just have one Dev Board. I currently see no option for testing the camera other than getting another board and/or camera.
The ribbon cable is just a wild guess on my side. I opened the issue to maybe get some more creative ideas on how to further test the hardware and to check that I would buy the correct ribbon cable.
But I understand that this issue is basically impossible to solve remotely from a github issue. Closing this.

Update, the replacement cables did not fix the issue.
And a word of advice, if you buy the cables from the link I posted, they have the blue coloring at the end of the cable flipped. Thus you will have one side different from what the official documentation shows. I had it the wrong way for the first time and afterwards the board wouldn't boot up anymore, had to force flash it again. Luckily it seems not more broken than before ; )
Next up, I will try to get my hands on another set of coral camera + coral dev board to check the hardware.

Update2: I got myself a new board and a new camera. Turns out the camera is just broken. That simple. The new one works fine on both boards.


mix() not generating hashes on mix watch

Laravel Mix Version: 6.0.49
Node Version: v16.16.0
NPM Version: 6.14.9
OS: Windows 10 Pro 21H2 19044.2006

Description:
I'm trying to setup a standalone project with Vue + Laravel Mix. I'm using laravel-mix-ejs to add hashes to files with the mix function like so:
<script src="<%= mix('/build/main.js') %>"></script>

When I run the mix --production command everything works just fine and the hashes are generated and appended to script tag, but when I run the mix watch command, new hashes are generated on the mix-manifest.json file, but the script path keeps just the plain path like so:
<script src="/build/main.js"></script>

Steps To Reproduce:
I made a repro on Stackblitz here

Run npm run prod on the terminal

Check the script tag in the build/index.html file (works)

Run npm run watch

Check the script tag in the build/index.html file (no hashes)

Closing as I realized this is not a problem with Laravel Mix but with the extension (that implemented a mix function).


Update versions of a few packages

Description
A few package updates, mostly bug fixes. I think the typed-ast change is the most crucial, as 1.4.2 contains a few bugs with python 3.10 which stopped it from working. Those were fixed in 1.4.3 by PRs 155 (me!) and 158.
Type of change
Please delete options that are not relevant.

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

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] pip install -r requirements.txt -U

Test Configuration:

Firmware version: Ubuntu 20.04.3
Hardware: AMD Ryzen 9 5900X 3-core VPS

Checklist:

[x] I have added in logging for all relevant areas
[x] I have performed a self-review of my own code
[x] My code follows the style guidelines of this project
[x] New and existing unit tests pass locally with my changes
[ ] I have made corresponding changes to the documentation
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added tests that prove my fix is effective or that my feature works

Ignoring the failing builds (Coveralls issue, global to repo), it looks good to me. I am happy to update these requirements, although I might as well add to this and remove the extras.


🐞[Bug]: no logo in contact form page

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Logo is not visible in contact form page navbar.
Expected behavior
there should be a logo at top left corner of navbar.
Add ScreenShots

What browsers are you seeing the problem on?
Chrome, Microsoft Edge
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Assigning

assign me


Release 0.3.7

@JuliaRegistrator register(branch=release)

Registration pull request created: JuliaRegistries/General/6516
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if Julia TagBot is installed, or can be done manually through the github interface, or via:
git tag -a v0.3.7 -m "<description of version>" db76161a93a0e79ae416ff53895263133778ca9e
git push origin v0.3.7


Unable to use --kill-running-proccesses

Rally version (get with esrally --version): 1.4.1
Invoked command: pipenv run esrally race --kill-running-processes --distribution-version=7.10.1 --target-hosts=XXX.XXX.XXX --track-params=params.json --pipeline=benchmark-only --track=$TRACK --report-file=~/esrally/$TRACK-result-$(date +%F%X)
Configuration file (located in ~/.rally/rally.ini)):
[meta]
config.version = 17

[system]
env.name = local

[node]
root.dir = /home/ubuntu/.rally/benchmarks
src.root.dir = /home/ubuntu/.rally/benchmarks/src

[source]
remote.repo.url = https://github.com/elastic/elasticsearch.git
elasticsearch.src.subdir = elasticsearch

[benchmarks]
local.dataset.cache = /home/ubuntu/.rally/benchmarks/data

[reporting]
datastore.type = in-memory
datastore.host =
datastore.port =
datastore.secure = False
datastore.user =
datastore.password =

[tracks]
default.url = https://github.com/elastic/rally-tracks

[teams]
default.url = https://github.com/elastic/rally-teams

[defaults]
preserve_benchmark_candidate = False

[distributions]
release.cache = true

OS version: ubuntu 18.04 on every computer
Description of the problem including expected versus actual behavior:
I was expected to be able to kill all my processes without using htop, unfortunatelly I get the following answer: "esrally: error: unrecognized arguments: --kill-running-processes"

Thanks for your report! This flag has been introduced with Rally 2.0.0 in https://github.com/elastic/rally/pull/954 and is therefore not available in the version 1.4.1 that you're using so I suggest you upgrade to the latest version of Rally if you want to use this.
You saw that flag probably in the documentation for the current stable version. You can use the versioned link for your version instead: https://esrally.readthedocs.io/en/1.4.1/


pyarrow 8.0 partitioning fix

In pyarrow=8 ds.partitioning.dictionaries started returning a list of Nones instead of just None (xref https://github.com/apache/arrow/pull/12791). This PR contains compatibility code so things work both with pyarrow<8 and pyarrow>=8
Closes https://github.com/dask/dask/issues/9142
cc @rjzamora @jcrist @jorisvandenbossche

The gpuCI failure is unrelated and will be resolved by https://github.com/dask/dask/pull/9139. I'm going to merge this PR in to unblock CI. Happy to push up a follow-up PR is folks have feedback


Valid SDS pre-authorized providers not always loading from additionalProviders

Crashes on home when attempting to load previously authorized providers in a multi login situation


Error playing 2 video stream (.m3u8)

Error playing 2 video stream (.m3u8) or more on the same page html.
Error displayed within minutes of live:  Error code: hls:networkError_levelLoadError
Note: The error is also displayed when it is on 2 different pages at the same time, it seems that limits by connection.
**Browser:**Google Chrome V 76.0.3809.132
My code:
`

var player = new Clappr.Player({
source: 'https://........./video1.m3u8',
plugins: [ChromecastPlugin],
parentId: '#player',
poster: 'https://.......cover.jpg',
chromecast: {
appId: '9DFB77C0',
contentType: 'video/mp4',
media: {
type: ChromecastPlugin.Movie,
title: 'A',
subtitle: 'A'
}
}
});
var player1 = new Clappr.Player({
source: 'https://........./video2.m3u8',
plugins: [ChromecastPlugin],
parentId: '#player1',
poster: 'https://....../cover2.jpg',
chromecast: {
appId: '9DFB77C0',
contentType: 'video/mp4',
media: {
type: ChromecastPlugin.Movie,
title: 'B',
subtitle: 'B'
}
}
});`

@jeferbr could you provide more info on what kind of streams you're trying to load? Perhaps sharing a test URL so we can check why the error occurs.
AFAIK the level load error is related to the hls.js playback being unable to load a given level and failing to fallback to a redundant one. This could mean your ABR is misconfigured somehow, or some of your variants are not available or accessible.


Missing Crawler

This seems to be a crawler, too: Mozilla/5.0 (compatible; Seekport Crawler; http://seekport.com/)
Regards, Andreas

This is already detected as a bot
https://crawlerdetect.io/?q=Mozilla/5.0 (compatible; Seekport Crawler; http://seekport.com/)


Panic when upgrading from v0.7.10 to any newer version

code panics while marshaling req variable:
type OtherStruct struct {
	FieldA *string `json:"fieldA,omitempty"`
	FieldB *string `json:"fieldB,omitempty"`
	FieldC *bool `json:"fieldC"`
	FieldD []string `json:"fieldD,omitempty"`
}

	req := &struct {
		Code string `json:"code"`
		*OtherStruct
	}{
		OtherStruct: &OtherStruct{},
	}

	var stringVar = "Test Field"
	req.Code = "Test"
	req.OtherStruct.FieldB = &stringVar

Thank you for reporting ! I'll fix this problem with #326

Can confirm that my issue is resolved with latest version. Thanks for fast response and great library!

Thank you for confirmation ! I released this fixing as v0.9.4


Update node versions used in CI to 14 when possible

Node 12 is EOF, we prefer using node 14 to run the environments.
Nonetheless, we keep using node 12 in tests to ensure support of strapi v3 with node 12.

bors merge


Get (not set) selectedIndex?

Hi,
Please forgive me if I've overlooked this in the documentation, but how do I get selectedIndex? I've tried various iterations of $('#myid').selectedIndex but no joy. This is supposed to work on select elements in 'plain' javascript, so I asume the syntax is changed in selectric?
Thanks!
SOLVED: Needed bracket thingie: $('#myid')[0].selectedIndex (which was not in 'generic' js docs I previously reviewed).
Found here:
http://stackoverflow.com/questions/13556941/get-index-of-selected-option-with-jquery

You can also use the jQuery .prop() method:
$('#myid').prop('selectedIndex');


Incorrect count returned to client

Due to use of cnt instead of cnt_d we are returning the incorrect number of results at least with respect to a corresponding entity query.

In the ReferenceAggregateFn functions we're switching between usage of cnt(*) and cnt_d(SHORTEST_KEY). Using the later will always return the correct value but because of performance issues we want to avoid using it.
We're seeing this only when there are facets that have inbound foreignkey in their path. It makes sense because for getting the data we are adding extra joins which might result in duplicate rows. So the function should check for this case too.
We need to test this further, this might not be the only case that this function should switch to cnt_d.

We decided to always use the cnt_d for getting the count since in most cases our urls will have facets in them. This should be fixed now.


Run our test validation on PRs

The test extractor / test validator should run on all PRs once this is merged.
Fixes #669

closing and reopening for a fresh build


Problems using both binary STDIN and STDOUT

Dear Kenneth,
Introduction
First things first: While staying for a while with the elder sister of Delegator.py, envoy, we salute you for giving this another attempt to finally regain sanity on Python subprocess handling. We are really looking forward to the outcome, cheers!
After successfully using it for a basic program called formailx.py, we just tried to apply Delegator.py to a slightly more advanced scenario.
Problem
We want to pipe binary data to the STDIN channel of a process and read its binary output from the STDOUT channel.
It is about image conversion using ImageMagick, so let's assume the command we want to execute is
convert - png:-

and we are trying to run Delegator.py like
with open(tiff_file, 'rb') as tiff:
    proc = delegator.run(command)
    proc.send(tiff.read())
    png = proc.out

Following the documentation, we also tried various combinations of the block and binary parameters and attempted to call proc.block() after proc.send(), but everything without success yet.
Status quo
We either get RuntimeError: send can only be used on non-blocking commands. as an answer or the program stalls completely when accessing proc.out .
On the other hand, everything works fine when using the pure subprocess module, see run_command in "util.py" from https://github.com/Patent2net/P2N/pull/26.
Help?
Can we humbly ask you to take a look into this?
Thanks in advance for your efforts!
With kind regards,
Andreas.

Closing due to inactivity :+1:


Explicitly printing exprs in the IR

I'm trying to print exprs explicitly in the IR, for example something that currently looks like:
%inst0 = instance %comp0[%e2];
should instead be:
%inst0 = instance %comp0[32];. @rachitnigam suggested using Printer::expr(..) to do this, but I ran into some questions about the structure of the existing code.
It looks like the way instances get printed is by this call to index_store(), which then calls fmt()? If this is the case, then I'm not sure how to make a call to expr(), since printing these exprs (in this case they are parameters) is done outside of the printer itself. This could just be me not understanding some Rust stuff so let me know if I'm missing something here?

Yup! You'll have to write a new function that takes an Instance and prints out the internals. Then, you can use the .iter() method on index store to get a (InstIdx, Instance) pair and call the function to print out each instance correctly. Does that make sense?

Yep, just got some of it working! Will do the rest soon. Thank you!

@gabizon103 was this addressed by #168? If so, please close the issue as well. For future PRs, you can configure them to automatically close the relevant issues using Github's closing keywords.

Oops, yes, this was addressed. Thank you for reminding me!


Double quoted strings not allowed in ClassRange

Double quoted strings seem to work like a list of single characters, but not inside a ClassRange. Possible simple enhancement?

Conceptually I like to separate the notions of sequence and disjunction.


New app: pace

This allows a runner to view their current pace and, when paused, splits from their run

@gfwilliams @thyttan @atjn I keep seeing memory errors with this but don't believe there's a memory leak in my code, any ideas?
Execution Interrupted during event processing.

 I don't suppose its clear function would help?

 I suppose its clear function wouldn't help?

Thanks for the quick response! I'm afraid not, that just wipes the layout's part of the screen, but thanks for the suggestion - I'll dig more into the layout module. Although thinking about it, my app isn't using it too differently from others such as rep 🤔

FW addr 0x0022bc00 fail is itself a bit concerning as that means that the Bangle hasn't been able to write to storage, although looking at it, that's probably caused by the MEMORY error. I'll have to look into that as potentially it could be a cause of storage corruption (if you can find an easy way to reproduce this please let me know!).
The app starts completely blank though and need two button presses just to display anything, so I feel like something's not right anyway.
Maybe run https://github.com/espruino/EspruinoMemView and see if you can visibly see what looks like the issue.
But I just noticed:
while (splitDist_1 >= 1) {
                splits_1.push(thisSplitTime_1());

and at no point does anything seem to take anything out of splits_1 so that looks a hell of a lot like a memory leak to me :)
>splits_1.length
=5597

By the way, it's interesting that splits has been renamed to splits_1 and so on. Maybe TypeScript has an option not to do that? It feels needlessly wasteful...

The GPS on my watch has never really worked so I unfortunately can't reproduce the issue. On the other hand, that is a pretty good indicator that your problem lies somewhere in the GPS handling. Taking a quick look at the code, my best bet is that you have made a mistake with this loop, which makes it loop infinetely:
for(; ; i++) {
        const split = splits[i + splitOffset];
        if (split == null) break;
...

FW addr 0x0022bc00 fail is itself a bit concerning as that means that the Bangle hasn't been able to write to storage, although looking at it, that's probably caused by the MEMORY error
[...]
if you can find an easy way to reproduce this please let me know!

Shall do - as far as I have seen, running the app as it stands reliably raises the error for me, perhaps the gradual increase in small memory usage (i.e. a number) is what brings it about?

The app starts completely blank though and need two button presses just to display anything, so I feel like something's not right anyway.

Interesting - the app for me starts with an initial split shown, that's quite odd!

Maybe run https://github.com/espruino/EspruinoMemView and see if you can visibly see what looks like the issue.

Didn't know about this, amazing

But I just noticed:
while (splitDist_1 >= 1) {
                splits_1.push(thisSplitTime_1());

and at no point does anything seem to take anything out of splits_1 so that looks a hell of a lot like a memory leak to me :)
>splits_1.length
=5597

I believe this is the issue, I expect my units are wrong, so it's adding to a split once per metre instead of once per K (or similar)

By the way, it's interesting that splits has been renamed to splits_1 and so on. Maybe TypeScript has an option not to do that? It feels needlessly wasteful...

I'll see what I can find

The GPS on my watch has never really worked so I unfortunately can't reproduce the issue. On the other hand, that is a pretty good indicator that your problem lies somewhere in the GPS handling. Taking a quick look at the code, my best bet is that you have made a mistake with this loop, which makes it loop infinetely:
for(; ; i++) {
        const split = splits[i + splitOffset];
        if (split == null) break;
...

Thanks for the pointer, but this is ok - if we had an issue here we'd see the app hanging since it would be an infinite loop :)

Switched to using exstats, will be testing this for a little while

All sorted - I'm thinking of doing something with run+ so runners can see their splits at the end of their run, is that something that'd be accepted or better kept as another app?

All sorted - I'm thinking of doing something with run+ so runners can see their splits at the end of their run, is that something that'd be accepted or better kept as another app?

I agree getting that summary at the end might be nice.

should it be optional through settings?
eventually, could pace be one of several "summary" apps that could be chosen to auto show?
should pace be even more tightly integrated with runplus, so one could navigate to it in much the same way you swipe to the karvonen hr-zones screen?

For the running layout, I'm unsure what differentiates this from what the run+ app can already do - since you can put current pace in one of it's boxes already? Is it the legibility?

I agree getting that summary at the end might be nice.

should it be optional through settings?

Yes I think so

EDIT: one may not want it to trigger if:

the recording was very short
there were no gps data recorded

Also very good points, agreed!

eventually, could pace be one of several "summary" apps that could be chosen to auto show?

Yes I like the sound of that, I think I'll keep this as a standalone app for anyone that might want something simpler (or to run on Bangle 1) and see about how we can integrate it into runplus

should pace be even more tightly integrated with runplus, so one could navigate to it in much the same way you swipe to the karvonen hr-zones screen?

Yeah that's what I was wondering, I think that'd be cool.

For the running layout, what differentiates this from what the run/run+ apps can do - since you can put current pace in one of it's boxes already? Is it the legibility? less taxing on battery?

Yes, a more lightweight app and you can see two things at once - the main things I need to see when racing are my pace and current time. So perhaps something else we consider for runplus is showing two boxes at once (now we can already show one - #3419), but I don't know if that would start to swell the app.

should pace be even more tightly integrated with runplus, so one could navigate to it in much the same way you swipe to the karvonen hr-zones screen?

Yeah that's what I was wondering, I think that'd be cool.

... So perhaps something else we consider for runplus is showing two boxes at once (now we can already show one - #3419), but I don't know if that would start to swell the app.

I'm inclined to favor a solution like this:

touch twice on a box to focus only that one.
touch once each on two different boxes to display only them together.

I think this post on the forum is relevant when thinking about this more:

Maybe exstats could be modified so it stores the current run status on exit [It already does], and then you could switch apps while running - which would be a huge benefit anyway. Then it'd be as easy as allowing run to just fast-load another app on swipe and it'd be super configurable? ... but then what the swipe did would need configuring which isn't quite as easy as having it work straight away.
It's a hard one... I feel like maybe a separate app that does it all (run-karvonnen / run+) is best for now, and then if we start to end up with a bunch of fitness apps/duplication we revisit it and see if there needs to be a whole new app type.

I'm inclined to favor a solution like this:

touch twice on a box to focus only that one.
touch once each on two different boxes to display only them together.
Edit: if there is not a second touch within some timeout I think the following touch should count as a first touch again - not triggering the behaviour.

I like the sound of that - the delayed first touch counting as a single tap to focus a box sounds great to me.

I think this post on the forum is relevant when thinking about this more:

Maybe exstats could be modified so it stores the current run status on exit [It already does], and then you could switch apps while running - which would be a huge benefit anyway. Then it'd be as easy as allowing run to just fast-load another app on swipe and it'd be super configurable? ... but then what the swipe did would need configuring which isn't quite as easy as having it work straight away.
It's a hard one... I feel like maybe a separate app that does it all (run-karvonnen / run+) is best for now, and then if we start to end up with a bunch of fitness apps/duplication we revisit it and see if there needs to be a whole new app type.

I think we stick with how it's been done with karvonnen for now, with the split display and we can split apart if the app does seem to bloat - I can get started on a PR over the next few weeks if that sounds good to you?

I think we stick with how it's been done with karvonnen for now, with the split display and we can split apart if the app does seem to bloat - I can get started on a PR over the next few weeks if that sounds good to you?

OK! If you want to - no rush of course 🙂
Regarding this PR
All's looking good on the watch now - nice work!
I don't know anything about typescript types, so no comment from me there.
Maybe @gfwilliams could just take a look at the changes to exstats - they seem innocent but I'm not really familiar with it.

Thank you! Ah yes - the exstats changes are to allow users/callers to adjust the .next property of the notify object, without it then being overwritten when the callback returns:
https://github.com/espruino/BangleApps/blob/47a8d264abdd80dc34056110758f195c162f9a47/apps/pace/app.ts#L188-L191

@gfwilliams are you ok with the changes to exstats ?

Looks good to me. I don't see anything else that uses 'notify' relies on the values so I think we're good?

Yes I think so - thanks for the check, @thyttan all good from you?

Yes!

Thanks!


chore: update TM dep + go.mod cleanup

Description

Update TM to v0.34.19
Cleanup go.mod
Update go 1.17

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] followed the guidelines for building modules
[ ] included the necessary unit and integration tests
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

This is blocked on another release which needs to include my fix: https://github.com/tendermint/tendermint/pull/8270

@Mergifyio backport v0.45.0x-osmo-v8


"you are offline"

Keybase GUI Version: 6.2.3-20230928111529+eba57c1814
Error reports you are offline (while I am not) when logging in

i'm also facing the same issue on computer, so fare mobile version are working well i think a fix is under deployment

You need to update manually to 6.2.4. The CA certificate has been updated.

Thank you so much, and I wish you the best.
On Mon, Jan 15, 2024 at 1:10 PM Nico Mexis @.***> wrote:

You need to update manually to 6.2.4. The CA certificate has been updated.
—
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/26166#issuecomment-1892049280,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3ORKGJ4RTPATKOVVAXJSA3YOUMBZAVCNFSM6AAAAABBZEHMXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJSGA2DSMRYGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

@ThexXTURBOXx Updated to version 6.2.4 still getting the same error.

@avkr003 I was also getting that on 6.2.4. Replacing my old app with the latest (6.2.5) .dmg (mac) from the website solved it for me.

Installing the updated version below fixed it for me (MacOS Apple Silicon)
Version 6.2.8-20240305171439+e38523abbe (6.2.8-20240305171439+e38523abbe)

Problem solved by passing the update

@th333boo Have uninstalled and installed it multiple times now. The version is:
Version 6.2.8-20240305171439+e38523abbe (6.2.8-20240305171439+e38523abbe)
You can also check the screenshot attached :

@avkr003 That is a completely different issue, see #26158 for reference

@avkr003 could you detag me on your comment please, if you need any help you can contact me on my socials>
PS: I do know where the issue come from, still managing my social in a better way correct could be presented under various other name for anon


RANGER-4626: Support trino to enable kerberos

What changes were proposed in this pull request?
issues: https://issues.apache.org/jira/projects/RANGER/issues/RANGER-4626
When trino to enable kerberos, the range Test Connection success
How was this patch tested?

@mneethiraj Can you help review it

Can you update below line

"boolean kerberosEnabled = Boolean.getBoolean(prop.getProperty("kerberos.enabled", "false"));"
to
"boolean kerberosEnabled = Boolean.valueOf(prop.getProperty("kerberos.enabled", "false"));"


MiniDLNA. ERROR: no matching manifest for linux/arm/v7 in the manifest list entries

Getting the error while trying to run the container on mini computers: odroid-xu4 and raspberry pi 3 model b+.

I added support for 32bit distros (arm/v6, arm/v7). For now only for the latest image. Let me know if it works.
When docker hub will support buildx I will update my build scripts.

It works, ty!
PS. Could you clarify what you have done to fix that? My guess from your comment:

you utilized https://github.com/docker/buildx for building versions for many platforms/architectures (linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64)
then just pushed all images to hub.docker.com manually?

PPS before the fix I used the repository https://github.com/fmartingr/docker-minidlna-arm where as the architecture was hardcoded FROM armhf/alpine:latest

You are correct. Below is the script I use to manually update the latest image for different platforms. I use this because it transparently downloads the right architecture. Another method would be to tag each architecture separately.
export DOCKER_CLI_EXPERIMENTAL=enabled
docker buildx create --name mybuilder --use
docker buildx build --rm --pull --push --platform linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 -t vladgh/minidlna .
docker buildx rm mybuilder


Enable saving without closing and provide a OpenXmlPackage.CanSave flag

Another attempt at #294

This is related to #380