Fixed Guild Bug, enabling Win <-> Linux transfer

Fixed the Guild bug. Guild data is stored in the level.sav as a raw byte array; member player GUIDs are stored as little endian 32 bit values within that array i.e.:
byte 4,  byte 3,  byte 2,  byte 1,  byte 8,  byte 7,  byte 6,  byte 5,  byte 12,  byte 11, etc..
Most everywhere else, GUIDs are hex, thus each byte corresponds to 2 characters of the GUID. Additionally, the JSON tool converts these bytes to decimal. Bodged the code to convert players' hex GUIDs to decimal, order them little endian, then search/replace the old GUID in every guilds' byte array.
The "give your friend ownership of the Guild" workaround works when moving from a Windows host to a Windows server, or Linux to Linux, but Windows and Linux generate different GUIDs for all players. As such, it was impossible to preserve Guild progress when moving from Windows host to Linux server. This change fixes that by directly changing the guild membership GUIDs.

Added new argv argument for replacing non-000....00001 IDs (i.e. when replacing someone's Windows GUID with their Linux one or vice versa). If you're just looking to use the script for its original function, leave this arg out and it'll default back to the 000....0001 value.

I apologize for my spaghetti, Python is not my forte. Tested confirmed working moving a save from Windows co-op to G-Portal (Linux).

I emphasize I'm a novice, and that Ive had the "confirmed working" save up for maybe 5 minutes.

My code has yet to be reviewed by anyone that has actual Python knowledge. Use at your own risk, and make plenty of backups. I dont expect this to work on any patch past PC v1.2.0, but hey maybe it will.

Note this does not fix the Pal bug; all Pals must be dropped and replaced to continue working at the base.

I saw the same extra occurrence of the 00000...00001 GUID in a hex editor, and also just ran the hex script in the latest commit which showed up at this location:
[root][properties][worldSaveData][Struct][value][Struct][GroupSaveDataMap][Map][value][35][value][Struct][Struct][RawData][Array][value][Base][Byte]
I am a C/C# guy so python is not my thing either but your PR changes mimicked what I was just working on (adding extra GUID's since I am converting from gamepass -> co-op on steam -> dedicated linux server) however when running your script it seems to make all the modifications, yet when I load in to the game I get the new character screen, almost like the game is rejecting something. I have run through it a few times from fresh and get the same result. If I run the original script on the same save files, I load into the map just fine as myself (Host) but with the guild glitch which is going to be tricky to try and fix since we didnt use a guild and every1 in the server's GUID is changing technically since I came from gamepass.

My background is C/C++; we think alike I guess :P
Very interesting. I didn't encounter anything like that. Since you're the co-op host, were you running the script without the optional arg?

Can confirm this works. Also the ability to migrate any guid to another was very helpful. Hopefully the saves stay intact for future updates.

My understanding is that character data (i.e. appearance, location, whether to display the "make a new character" screen) is tied to the .sav's inside the Players folder. The only change I made to how the script handles those was replacing the hardcoded<PHONE_NUMBER>0000000000000000000001 with that last arg; everything else affects only the Level.sav file, where guild data is stored.
The fact the original script works rules out a lot of options for Game Pass differences. However, since the player data is in Players, and guild in Level.sav, try taking the Level.sav generated by this PR and replace the Level.sav generated by the original script, leaving the Players folder untouched.

That was a good idea, however with the known-good player folder, and the level.sav produced by your modified script, it sent me to the character creation screen. I will have to diff the level.sav files and comb through them in the morning. Looking at your script changes I dont quite understand why its doing this as not much changed from the original aside from the edit to the byte array. I am considering making a fresh steam co-op save to then compare directly to look for any specific differences in that level.sav file when compared to the gamepass produced one. Gamepass is 2 patches behind at this point too iirc.

Thanks for the PR! I'll test it out later to confirm it works before merging. Strangely, I ended up trying something almost exactly like this, but it wouldn't work. Maybe I didn't get the signedness correct?
host_guid_bytes = list(bytes(host_guid.encode('utf-8')))
host_old_guid_bytes = list(bytes('00000000000000000000000000000001'.encode('utf-8')))

# Replace an instance of the 00001 GUID which corresponds to guild data with the former host's actual GUID.
group_save_data_map_len = len(level_json['root']['properties']['worldSaveData']['Struct']['value']['Struct']['GroupSaveDataMap']['Map']['value'])
for i in range(group_save_data_map_len):
    level_grouptype = level_json['root']['properties']['worldSaveData']['Struct']['value']['Struct']['GroupSaveDataMap']['Map']['value'][i]['value']['Struct']['Struct']['GroupType']['Enum']['value']
    if level_grouptype == 'EPalGroupType::Guild':
        level_bytes = level_json['root']['properties']['worldSaveData']['Struct']['value']['Struct']['GroupSaveDataMap']['Map']['value'][i]['value']['Struct']['Struct']['RawData']['Array']['value']['Base']['Byte']['Byte']
        if level_bytes[20:52] == host_old_guid_bytes:
            level_json['root']['properties']['worldSaveData']['Struct']['value']['Struct']['GroupSaveDataMap']['Map']['value'][i]['value']['Struct']['Struct']['RawData']['Array']['value']['Base']['Byte']['Byte'][20:52] = host_guid_bytes

I just tested this fix, and it worked flawlessly. I was able to recover full chars and the guild with it.

Same here, used this and everything seems to work as intended. My char works, not sure if the host works yet since he is not online yet, but there should be no problem

Works for me and my friends; we all remain in the same guild with all our pals.

works like a charm thanks!

Hello,
After script running we only need to upload the new 548DDBCA000000000000000000000000.sav or we need to re-upload all the save in the repertories 0?

@Ulryck57000  The entire save folder. Some changes are made outside the Players folder.

@xNul No problem! Thank you for the original script.
The guild byte array for my save was about 18KB, with the membership stored at the end. Had to search the full thing for replacement; I don't think fixed offsets will work.
Additionally, they are storing it as little endian 32-bit numerical values instead of strings. So:
00000000000000000000000000000001 would be in the array in the JSON as: [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0]
For a non-host example:
548DDBCA000000000000000000000000 becomes: [202 219 141 84 0 0 0 0 0 0 0 0 0 0 0 0]
202 = 0xCA, 219 = 0xDB, 141 = 0x8D, 84 = 0x54; the first four bytes of the GUID in reverse order.
Bizarrely, the player/guild names are stored as in-order strings shortly after the corresponding GUID. Thank goodness they are, or I'd have never found this.
EDIT: There is a<PHONE_NUMBER>0000000000000000000001 string at the start of the array, but truthfully I don't know what it's for, and I didn't edit it.
EDIT 2: That string seems to be tied to the creator, not the owner. A file that had guild ownership transferred off-host still has that string there. However it isn't just creator's GUID; a new player created a second guild on the save, and its equivalent string is:
'000000000000000000000000 + ��±�', with the last 4 bytes corresponding to the creator's GUID in the same pattern as above (slightly fuzzed for their privacy).

Yes that second string at the start of the array was the one I had ben looking at. I had noticed that the guilds can be added to the file out of order if guild changes were made by players in different guilds as well. I think your method of searching may be the best approach though with host could lead to that second occurrence in the binary blob, or even potentially false finds due to the nature of it being all 0's followed by a 1, which the pattern of 0's occurs a lot in the file, you just have to be unlucky enough to have a 1 follow one of those somewhere for a false positive. I believe the file size difference and potential for additional/lacking information in the gamepass save file on the older build of the client led to corruption of my levels file which was causing that new character screen?

@Magiwarriorx ahh that makes sense! I was able to test the code and it's working on my end as well! I'll go ahead and merge it. Thanks for the help!

Well done @Magiwarriorx and @xNul. I should have checked this thread much sooner!

Just a quick update, I was able to fix the guild associations of 1 non-host player who I had manually migrated/converted via json previously and he can now touch all of his old stuff. I ran the full updated script on another player who had not been converted yet and it works properly, he only has the pal bug.
After these successes I tried running only the guild portion of the code on the level.sav of a previously migrated host with just the guild glitch present, and it broke like before. So then I stepped back and tried on a fresh/unmodified save straight from gamepass, running the entire thing on just the host again, and it broke/character screen again.
It seems this method can be hit or miss for host depending on the save file, but definitely works perfectly for non-host player migration even from gamepass -> steam dedicated server.
Thanks for the work everyone, much appreciated!

@mel0n that's important information, thanks for writing it. I was able to migrate my host from a Steam co-op save and it worked perfectly, so it's able to work on hosts too, but maybe not gamepass hosts? I'm not sure because I haven't done any testing at all on gamepass saves.
The best and safest solution is being able to understand and parse every byte of the guild data so maybe we can make some headway toward that. It would be nice if we had someone capable enough to reverse engineer the game itself to help us figure that out because if not, then it will just be trial and error testing every byte.

If I leave in the guild related code, I have to create a new character and lose pretty much everything. Commenting it out and having another person from co-op give give me the guild master rank again works as a workaround. Was there any patches that might have moved the bytes around in the save file?

@Magiwarriorx @mel0n Do you know if I can use any of this information help my friend be able to log back in and play in the server? He's encountering the infinite loading screen bug because someone left the guild while he was offline. Will modifying the guild information in some way allow him to get in and keep his progress?
What happened was, I migrated my server and all of its save data to a new machine for reasons (needed more RAM). Everything worked fine: myself and a few other guys were able to hop in, and all of our pals and progress were intact (the only thing reverted was map exploration, and the tutorials were appearing again).
Unfortunately, two out of our 4 guild members decided to start horsing around and leave the guild to start a new one while our fourth was offline, so now he has this infinite loading screen bug (none of us knew about the issue at the time).
What can I do to help him get back in?

this fix doesn't work - if u have transferred/mirgrated your save from Microsoft/gamepass to steam previously

If I leave in the guild related code, I have to create a new character and lose pretty much everything. Commenting it out and having another person from co-op give give me the guild master rank again works as a workaround. Was there any patches that might have moved the bytes around in the save file?

@aksdad  Are you the host? If so, it sounds like you had a similar experience to myself including the work around. Were you on Steam or Gamepass when the co-op world was originally created? As far as patches go, I do not think so since the new code is simply grabbing the byte array which represents the guild membership list, then stepping through each entry in the list which is of fixed size (GUID in decimal), so that size/offset should not have changed.
@rub3z Unfortunately I do not know how to fix this, and its probably related to the issues with removing/changing ownership of a guild to an offline member. This code may be able to help if you know the GUID of the previous owner of the guild, and the GUID of the broken player. You could try running just the guild fix portion of code added here, replacing the old owner GUID with the broken player's GUID. Aside from that, rolling back to a backup save would probably be the best solution. I am frequently backing up my saves (about every 20 mins) on my server since I moved the entire thing onto a ramdisk due to the insane I/O pressure the game places on the server.
@bodnjenie14 please see my other comments on this as I migrated from gamepass and it does work on all players except host. For the host, you will need to have a fresh steam player join, add them to your guild as the host in co-op mode, make them the owner, then leave your guild, convert your host save without the guild fix code (comment that section out), then load the save onto your dedi server, join the steam player's guild, then have them give you ownership back. This was the only way I could get my host to work again and it has to be done first when converting from co-op to dedi. Once the host is migrated/fixed, you can migrate the other co-op players with this new script and it seems to fix their guild associations properly but they will still have the pal glitch r equiring dropping all palls and picking back up.

@mel0n I am the host, and this is on the steam version of the game.
Hmm, your explanation makes sense. I’ll try comparing the byte array from the original and the save modified by the dedicated server.

But this pr states it fixes guild bud it does not you still need to transfer ownership to a other user - how ever i got mine to work
by using the guild fix some one crossed out on the readme this pr needs correcting for allready converted saves
also having to do this to fix character creation bug
After character creation on the dedicated server, it overrides your player save. Take that new file, grab your backed up old local file, put it into the folder where you're running your script. Rerun script. and only copy the player file back in
example"\70FF2F994A4BECC8AF1380B6D0827DEB\Players"

If I leave in the guild related code, I have to create a new character and lose pretty much everything. Commenting it out and having another person from co-op give give me the guild master rank again works as a workaround. Was there any patches that might have moved the bytes around in the save file?

@aksdad Are you the host? If so, it sounds like you had a similar experience to myself including the work around. Were you on Steam or Gamepass when the co-op world was originally created? As far as patches go, I do not think so since the new code is simply grabbing the byte array which represents the guild membership list, then stepping through each entry in the list which is of fixed size (GUID in decimal), so that size/offset should not have changed.
@rub3z Unfortunately I do not know how to fix this, and its probably related to the issues with removing/changing ownership of a guild to an offline member. This code may be able to help if you know the GUID of the previous owner of the guild, and the GUID of the broken player. You could try running just the guild fix portion of code added here, replacing the old owner GUID with the broken player's GUID. Aside from that, rolling back to a backup save would probably be the best solution. I am frequently backing up my saves (about every 20 mins) on my server since I moved the entire thing onto a ramdisk due to the insane I/O pressure the game places on the server among other save/game destroying glitches such as this.
@bodnjenie14 please see my other comments on this as I migrated from gamepass and it does work on all players except host. For the host, you will need to have a fresh steam player join, add them to the host's guild as in co-op mode, make them the owner, then have the host leave the guild, convert your host save without the guild fix code (comment that section out), then load the save onto your dedi server, join the steam player's guild, then have them give you/host ownership back. This was the only way I could get my host to work again and it has to be done first when converting from co-op to dedi. Once the host is migrated/fixed, you can migrate the other co-op players with this new script and it seems to fix their guild associations properly but they will still have the pal glitch r equiring dropping all palls and picking back up.

Not sure if maybe this isn't fixed, or if I've found an edge case/done something wrong. So we've had an issue after transferring our saves where none of us show up as being in the guild. We've tried disbanding the guild and starting a new one.
Interestingly when one of the players created their second character they game it a different name, which is what they show up as in the guild list, but in the world their character name over their head shows their old name.

@mel0n that's important information, thanks for writing it. I was able to migrate my host from a Steam co-op save and it worked perfectly, so it's able to work on hosts too, but maybe not gamepass hosts? I'm not sure because I haven't done any testing at all on gamepass saves.
The best and safest solution is being able to understand and parse every byte of the guild data so maybe we can make some headway toward that. It would be nice if we had someone capable enough to reverse engineer the game itself to help us figure that out because if not, then it will just be trial and error testing every byte.

I think the Guild information in Level.sav is an Unreal TMap type from my investigation. UE5 is open source, so deserialising that into a TMap might yield some information.
level_json["root"]["properties"]["worldSaveData"]["Struct"]["value"]["Struct"]["GroupSaveDataMap"]

Should be a TMap.

But this pr states it fixes guild bug however it does not you still need to transfer ownership to a other user if you have previously migrated your save - how ever i got mine to work
by using the guild fix some one crossed out on the readme this pr needs correcting for allready converted saves
also having to do this to fix character creation bug
After character creation on the dedicated server, it overrides your player save. Take that new file, grab your backed up old local file, put it into the folder where you're running your script. Rerun script. and only copy the player file back in
example"\70FF2F994A4BECC8AF1380B6D0827DEB\Players"

@bodnjenie14 Thanks, By did what you said. Rerun the script using "ONLY" New dedi player save files .sav but this time put it in old Solo back-up files together with where 00001.sav are. And replace "ONLY" the new compiled .sav back to the dedi \players folder did bring everything back all progress and Pals. Thank you very much sir.

But this pr states it fixes guild bug however it does not you still need to transfer ownership to a other user if you have previously migrated your save - how ever i got mine to work
by using the guild fix some one crossed out on the readme this pr needs correcting for allready converted saves
also having to do this to fix character creation bug
After character creation on the dedicated server, it overrides your player save. Take that new file, grab your backed up old local file, put it into the folder where you're running your script. Rerun script. and only copy the player file back in
example"\70FF2F994A4BECC8AF1380B6D0827DEB\Players"

@bodnjenie14 Thanks, By did what you said. Rerun the script using "ONLY" New dedi player save files .sav but this time put it in old Solo back-up files together with where 00001.sav are. And replace "ONLY" the new compiled .sav back to the dedi \players folder did bring all progress and carried Pals back. However, I lose base as it is said "belong to other guild".

to fix this issue
Open CO-OP server again.

Pray that it works
Boot up the server again and have your friend join.
Have him invite you to the guild again
Change ownership back to you and you can kick him from the guild if you want.

Guys what's the workaround for my bug, i tried to understood but i'm lost.
I transfered the game and players normally, but who was in another 2 guilds after the transfer is now without a guild, if they goes to their base says "you're not in this guild".

I moved mine from Windows to Linux, everything is good except the guild and left click bug.
My base no longer belongs to me. I am the only player so far. Any help?

I found a way to fix this bug for temporary.
Just wait until the up right coner indicate that it was saving game and leave the game immediately.

I found a way to fix anyone who can't pick up pals and can't see guild member on map for temporary.
Just wait until the up right coner indicate that it was saving game and leave the game immediately.

Just wanted to contribute my reversals so far.
I made a script to find all "EPalGroupType::Guild" entries inside of "GroupSaveDataMap", and then I dumped the "RawData" bytes into a binary file so I could open it in a hex editor.
There appears to be a few strings present in each guild raw data, at the top, there's a GUID, presumably this is the guild owner.
At the end of the file, is an array of names, these are the guild members.
An example of a "broken" guild, i.e., this player experienced the bug where you cannot pick up pals after transferring saves:

An example of the original guild:

I'll continue to work on a script that will hopefully be able to display this information to you and give you the option to delete certain guilds, or possibly, automatically detect these "corrupt" guilds.
I'm not sure if this will actually fix the issue of not being able to pick up pals, or if it'll prevent the server from automatically creating new guilds.

I moved mine from Windows to Linux, everything is good except the guild and left click bug.
My base no longer belongs to me. I am the only player so far. Any help?

I think you'll need another player and transfer the guild to them. then run the fix again.
I did it today and was successful with a win co-op --> linux dedicated transfer.
I only needed to fix the host character, other players were fine.
the map and tutorials have been reset, and I needed to do the transfer/leave/rejoin guild trick, as well as the pick-up-and-drop trick to be able to interact with previously caught pals

I moved mine from Windows to Linux, everything is good except the guild and left click bug.
My base no longer belongs to me. I am the only player so far. Any help?

I think you'll need another player and transfer the guild to them. then run the fix again. I did it today and was successful with a win co-op --> linux dedicated transfer.
I only needed to fix the host character, other players were fine. the map and tutorials have been reset, and I needed to do the transfer/leave/rejoin guild trick, as well as the pick-up-and-drop trick to be able to interact with previously caught pals

Dang, I don't know anybody else. I wish you didn't start off having a "Guild". I didn't even make one, it just creates one for you that you can't leave.

Based upon my previous post, it appears if you remove the "empty" guilds for players that are already in a guild, the lifting bug will be fixed.
i.e., I'm in a guild with 5 other people, but inside of GroupSaveDataMap there's a guild with just myself and it's level 1, deleting this guild fixed the issue for me.
I've created a script to do this for every player, I'll clean it up and post it here once my friends play more and we can confirm there's no side effects.

Can you explain what you meant by this“ guild fix code (comment that section out)” did everything had friend take over guild but when they join guild is no longer under them

If I leave in the guild related code, I have to create a new character and lose pretty much everything. Commenting it out and having another person from co-op give give me the guild master rank again works as a workaround. Was there any patches that might have moved the bytes around in the save file?

@aksdad Are you the host? If so, it sounds like you had a similar experience to myself including the work around. Were you on Steam or Gamepass when the co-op world was originally created? As far as patches go, I do not think so since the new code is simply grabbing the byte array which represents the guild membership list, then stepping through each entry in the list which is of fixed size (GUID in decimal), so that size/offset should not have changed.
@rub3z Unfortunately I do not know how to fix this, and its probably related to the issues with removing/changing ownership of a guild to an offline member. This code may be able to help if you know the GUID of the previous owner of the guild, and the GUID of the broken player. You could try running just the guild fix portion of code added here, replacing the old owner GUID with the broken player's GUID. Aside from that, rolling back to a backup save would probably be the best solution. I am frequently backing up my saves (about every 20 mins) on my server since I moved the entire thing onto a ramdisk due to the insane I/O pressure the game places on the server among other save/game destroying glitches such as this.
@bodnjenie14 please see my other comments on this as I migrated from gamepass and it does work on all players except host. For the host, you will need to have a fresh steam player join, add them to the host's guild as in co-op mode, make them the owner, then have the host leave the guild, convert your host save without the guild fix code (comment that section out), then load the save onto your dedi server, join the steam player's guild, then have them give you/host ownership back. This was the only way I could get my host to work again and it has to be done first when converting from co-op to dedi. Once the host is migrated/fixed, you can migrate the other co-op players with this new script and it seems to fix their guild associations properly but they will still have the pal glitch r equiring dropping all palls and picking back up.Can you explain what you meant by this“ guild fix code (comment that section out)” did everything had friend take over guild but when they join guild is no longer under them

this fix doesn't work - if u have transferred/mirgrated your save from Microsoft/gamepass to steam previously

But this pr states it fixes guild bug however it does not you still need to transfer ownership to a other user if you have previously migrated your save - how ever i got mine to work
by using the guild fix some one crossed out on the readme this pr needs correcting for allready converted saves
also having to do this to fix character creation bug
After character creation on the dedicated server, it overrides your player save. Take that new file, grab your backed up old local file, put it into the folder where you're running your script. Rerun script. and only copy the player file back in
example"\70FF2F994A4BECC8AF1380B6D0827DEB\Players"

@bodnjenie14 Thanks, By did what you said. Rerun the script using "ONLY" New dedi player save files .sav but this time put it in old Solo back-up files together with where 00001.sav are. And replace "ONLY" the new compiled .sav back to the dedi \players folder did bring all progress and carried Pals back. However, I lose base as it is said "belong to other guild".

to fix this issue
Open CO-OP server again.  Pray that it works Boot up the server again and have your friend join. Have him invite you to the guild again Change ownership back to you and you can kick him from the guild if you want.

—Can you explain what you meant by this“ guild fix code (comment that section out)” did everything had friend take over guild but when they join guild is no longer under them

Open CO-OP server again.  Pray that it works Boot up the server again and have your friend join. Have him invite you to the guild again Change ownership back to you and you can kick him from the guild if you want.

@bodnjenie14 Can you explain what you meant by this“ convert your host save without the guild fix(comment that section out)” did everything had friend take over guild but when they join guild is no longer under them


Too easy to mistakenly move files

Does anyone else find it's way too easy to mistakenly drag and drop files into new folders?
Please excuse if you don't. But I've found it's very easy to move files by mistake when working on big projects and can be a nightmare trying to find where you dropped the file if, especially in a large file tree structure.
Again, this might be me and my clumsy hands so apologies, but I think it would be awesome to at least turn on an option to confirm file drag and drops. That way people who don't care for the feature wouldn't have it foisted on them.

As a workaround there is a setting: "explorer.enableDragAndDrop": false

https://github.com/Microsoft/vscode/issues/6486

cheers!


add test for upsampling and fix uint8 upsampling bug

Adds upsampling to decode_test. This test currently fails for uint8 output, due to an actual bug in that codepath. I haven't tried fixing the bug yet, but at least there's now an easy way to check if it is fixed :)
Fixes the upsampling bug in the uint8 codepath, thanks to @veluca93.

Might want to cherry pick this one for 0.6.x, unless we're doing a 0.7 soonish.

I guess #459 is fixed now...


What are the Blue Ribbon Panel Funding Needs?

From<EMAIL_ADDRESS><EMAIL_ADDRESS>On Behalf Of Sleeper, Harry A.
Sent: Friday, July 15, 2016 9:10 AM
To: Quina, Andre C<EMAIL_ADDRESS>shr-project-list Standard Health Record 10x Project List<EMAIL_ADDRESS>Subject: RE: Presentation for Micky
On the charter:
Great draft!
Treat as an online open source document with version control, please.
Not a stodgy, paper-based legal document collecting dust.
Ok?
I do NOT buy into the lock down mindset.
We need to keep the BRP member load to an absolute, essential minimum. We are not there yet.
What is the BRP funding needs?
On the BRP schedule:
We need to sync with a master SHR-10x schedule.
...H

From<EMAIL_ADDRESS><EMAIL_ADDRESS>on behalf of Quina, Andre C<EMAIL_ADDRESS>Sent: Friday, July 15, 2016 8:48:41 AM
To: shr-project-list Standard Health Record 10x Project List
Subject: Presentation for Micky
Attached is the final presentation for Micky and the charter for the Blue Ribbon Panel.  I plan to bring printed copies of the charter.
Andre

Potential BRP costs:
Honorarium (needed?)
Logistics (hotel, air, ground transport, per diem, meals) - for members and MITRE team

the more we require in-person meetings the higher this gets (and how far from the meeting place)
Venues and related costs to host meetings
Conference fees (e.g., if we made a HiMMS meeting count as a session)
Staff time to support BRP requests (content, operations, admin)

Aiming to have SHR team strategy sessions to flesh out the larger work plan and develop a schedule - specific goals from, and asks to, the BRP could drive what needs to sync up with the BRP meetings (e.g., development schedules and demos, plans for who to reach out to)


feat: support delete if empty for parquet writer

This PR lets the user indicate to delete the file if the writer doesn't write anything.

I don't add the test for this PR yet because I am not sure whether it's a reasonable design. Welcome to any suggestions. cc @liurenjie1024 @Xuanwo


Minimum set length for similarity calculation?

Hello, thanks a lot for predictor, it's a great library. I'd quite like to add a feature, and wanted your thoughts on it.
We have some items, in lists, and are calculating similarity based on how often items appear on lists with each other. We have lots of item that only appear on one list together, and we'd like to remove those from the prediction engine, forcing the distance to 0.
I can see that I can probably add a check in Distance for this, but I wanted to know if this was something you have an opinion about the design of, before I add a pull request.

Hi Tom - this is the kind of thing that would need to be rolled in to each of the three implementations for calculating distance. Modifying Distance would work for the Ruby implementation, but there's also Lua and Union to worry about (especially since they're so much faster that I think the Ruby implementation is mainly useful for backwards compatibility). I'm also curious what kind of API you were thinking of implementing for this? I don't have any thoughts about it off the top of my head, but it might warrant some discussion :smile:


ci: add dockerhub auth

Probably should have separated out the dep changes which are unrelated, but snyk was blocking this PR...


Confusing Default Value for HorizontalAlignmentRatio

Not sure if it's the comment on the code or where Visual Studio is getting this text (as I don't see it in the doc):

However, in the opening paragraph it says the default is 0.0f, but in the return value it says its 0.5f...
Which is it?

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

ID: 71ef9c03-bdee-d73d-0a88-c8a850ab081e
Version Independent ID: 19481190-ce4a-a8a6-8a66-805752b86b90
Content: CompositionSurfaceBrush.HorizontalAlignmentRatio Property (Windows.UI.Composition) - Windows UWP applications
Content Source: winrt-api-build/xml/Windows.UI.Composition/CompositionSurfaceBrush.xml
Product: uwp
Technology: winrt-reference
GitHub Login: @jwmsft
Microsoft Alias: jimwalk

Per this commit, the doc is correct, but IntelliSense is out-of-date. IntelliSense updates should happen on the VS side.
remove contradicting info


Updated apache arrow to latest version 17

Description
Updated the Apache Arrow crate to latest version

superceded by #703


Kernel Error while loading the Jupyter note book

When I opened the principles of Machine learning module 5 i.e Bias Variance trade off, most of the data like images or Graphs & code is not showing properly and top right corner showing as Kernel error. I opened through Firefox, windows.
Please help me on this account!
Thanks,
Krishna

Sorry, now I cleared cookies and  its working but still the images are not showing .


user guides: uniform structure of all cli_wallet_daemon_isolation_qubes_whonix.md

Part of #1270 (All user guides in all languages must have their structure standardized and fit the English version)

Reviewed


[MXNET-293] Navigation updates

Description
Updates to the website navigation to be in line with the new organization.
Changes

[ x ] Add ONNX to Docs
[ x  ] Remove Gluon
[  x ] Move Github to Community
[  x ] Rename Gluon Model Zoo --> Model Zoo

Preview link -http://<IP_ADDRESS>/

Updated the GitHub community URL. Please review http://<IP_ADDRESS>/

@piiswrong can we merge this ?

Not sure about making Gluon less visible. What's the reason?

Gluon is a Python API and being categorized at the top level was leading to some confusion. Also, the subsequent links were not that helpful. One led to an old About page that had outdated info. The other immediately led off-site, which was a jarring UX. Neither actual lead to the API, docs, or tutorials.
Gluon will be give top real estate and priority in tutorials and other information, so its visibility will not be diminished moving forward. It's positioning vis-a-vis the other ways of interacting with MXNet will be a little more clear.

So can this be merged now?

@piiswrong the gluon crash course has been added to the front page as part of this PR: #10570 . Do you think we still need the Gluon link at the top level or can it be moved to tutorials ?

CI preview is available at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-10449/4/index.html
In general, I feel this PR make the frontpage less well organized. We should have a proposal and reviewed by marketing experts, instead of patch it from time to time.

@mli @piiswrong So separately I've been rewriting the tutorials page, and a link to 'The Straight Dope' will be made clear in the Python tutorials section. In addition to this the relevant pages of the 'The Straight Dope' will be added to the tutorial list as their own items. So I don't think there's any concern that users will not be able to find the content from the 'The Straight Dope'.
I'm also working to combine the contents of the Gluon About page with the API Docs introductions for the Python and Gluon package, and then reference this from a number of sources including FAQ.

What if we put Gluon in the Docs menu? It would be highlighted there, and provide a link to the API docs page. This page will have the info Thom is mentioning, plus links to TSD, 60 min crash course, tutorials on site, etc.

The PR is blocking the 1.2 RC creation. Can we keep Gluon in navigation bar until we have a complete proposal in place, reviewed and agreed? We should not have this discussions past feature freeze.

Ok, I will add Gluon and its links back to the Navbar unless anyone has any objections.

@piiswrong @mli gluon has been added back. Is this good to merge ?


Fix clippy warnings

Fix clippy warnings, necessary to make further contributions.

Signed-off-by: Joseph Livesey<EMAIL_ADDRESS>

Approving running the workflows revealed more clippy warnings. I've fixed those and rebased into one commit.

@agunde406  Could you approve the workflows on this, please?

This does not currently build with all required feature combinations. The best way to make sure that its works is to run:
just build && just lint && just test
You can get just here: https://github.com/casey/just
This is (essentially) what CI does and what I'm doing locally to test.
An example of the compiler errors:
error[E0308]: mismatched types
  --> src/journal/publisher/batch_submitter/mod.rs:79:17
   |
79 |             Err(BatchSubmitterError::PoolFull(batch))
   |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Box`, found enum `BatchSubmitterError`
   |             |
   |             arguments to this enum variant are incorrect
   |
   = note: expected struct `Box<BatchSubmitterError>`
                found enum `BatchSubmitterError`
   = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
note: tuple variant defined here
help: store this in the heap by calling `Box::new`
   |
79 |             Err(Box::new(BatchSubmitterError::PoolFull(batch)))
   |                 +++++++++                                    +

Removing the addition of the Box<> around Errors will solve this (but not fix the lint). I suggest instead of changing the function signatures, change the errors themselves to reduce the size. For example:
diff --git a/libsawtooth/src/journal/publisher/batch_submitter/error.rs b/libsawtooth/src/journal/publisher/batch_submitter/error.rs
index b7b4fa5..cea1d5a 100644
--- a/libsawtooth/src/journal/publisher/batch_submitter/error.rs
+++ b/libsawtooth/src/journal/publisher/batch_submitter/error.rs
@@ -25,7 +25,7 @@ use crate::transact::protocol::batch::BatchPair;
 #[derive(Debug)]
 pub enum BatchSubmitterError {
     /// The pending batches pool is full; the batch could not be submitted.
-    PoolFull(BatchPair),
+    PoolFull(Box<BatchPair>),
     /// The pending batches pool has shutdown; no more batches can be submitted.
     PoolShutdown,
 }
diff --git a/libsawtooth/src/journal/publisher/batch_submitter/mod.rs b/libsawtooth/src/journal/publisher/batch_submitter/mod.rs
index a90dd21..32bb9b8 100644
--- a/libsawtooth/src/journal/publisher/batch_submitter/mod.rs
+++ b/libsawtooth/src/journal/publisher/batch_submitter/mod.rs
@@ -72,7 +72,7 @@ impl BatchSubmitter {
         self.check_backpressure()?;

         if self.pool_full && !force {
-            Err(BatchSubmitterError::PoolFull(batch))
+            Err(BatchSubmitterError::PoolFull(Box::new(batch)))
         } else {
             self.batch_sender
                 .send(batch.into())

Linting issues resolved in: https://github.com/hyperledger/sawtooth-lib/pull/163


Logging request results in no output

🐛 Bug Report

Environment

operating system: Linux Manjaro 20.0.2 Lysia
output of rustc -V: rustc 1.43.0
output of node -v: v14.3.0
output of wrangler -V: 1.9.2 (using master HEAD)
contents of wrangler.toml

Steps to reproduce
Attempting to console.log incoming request results in no output when using wrangler dev.
console.log(request);
console.log("wee weoo");

I expected to see the request printed out but instead just have nothing, other console logs seem to work fine though.
wee weoo
[2020-06-04 12:06:03] GET example.com/ HTTP/1.1 200 OK

This seems to be because the deserialize at socket.rs seems to fail when logging the request.

Found the issue to be a type missing in the deserialization of RemoteObject in chrome-devtools-rs. Should be fixed with this PR.


[BUG] YurtAppDaemon don't schedule the app into desired nodepool

What happened:
When I follow the yurtappdaemon doc to deploy my apps, the pod are not scheduled into the desired nodepool as expected.
The desired nodepool is np19b635d8ee844b188ef726a23914a676.

This nodepool only have one node

However the pod is schedule into

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

OpenYurt version: v1.4
Kubernetes version (use kubectl version):
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

others
/kind bug

@luc99hen Thank you for raising the issue. would you like to make a pull request to solve this bug?

I think the problem is from the webhook of yurtappoverrider. I will make a PR to resolve this.

/assign @luc99hen


release/2024-03-25

0.8.0 - 2024-03-25

Enable Semantic Highlighting and document symbols behind feature flag (#523)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 52.57%.  Consider uploading reports for the commit 247d3fa to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #550      +/-   ##
==========================================
- Coverage   53.23%   52.57%   -0.66%
==========================================
  Files         188      228      +40
  Lines        4824     5318     +494
  Branches      793      835      +42
==========================================
+ Hits         2568     2796     +228
- Misses       2019     2283     +264
- Partials      237      239       +2

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

https://github.com/SocketSecurity ignore<EMAIL_ADDRESS>Ignore the post install script sponsorship message.


Add Homebrew installation method

for those people who already use homebrew.

@Knight1 thanks for submitting the PR. Out of all the distributions channels of VS Code, code.visualstudio.com is the official one. We don't have any control over the other ones and therefore won't mention them in the Readme.


Issue with the source map in v4.0.3

Using the package in a vite project breaks because of source maps in version 4.0.3

This can be reproduced by simply creating a new vite project yarn create vite extract-colors-test --template vanilla, installing extract-colors and importing extractColors function.

Thanks for your ticket and your explanations @himanshu-satija
I've just fix this source maps bug with a new v4.0.4:

https://github.com/Namide/extract-colors/releases/tag/v4.0.4
https://www.npmjs.com/package/extract-colors/v/4.0.4

Can you remove the last version of your project and replace by the new?
Does this new version work well for you?

Works fine with 4.0.4. Thanks for the super quick fix @Namide 🙏


Deployment to localhost without ssh overhead

Inside deployer there is functionality for local deployment without ssh overhead.
I like the idea of executing deployer directly on the server(s). In this case you do not need to connect via ssh. You can execute all commands directly.
Inside the master branch there is a function localServer(). However it is not in the 2.x release. Building the phar from source doesn't result in a functional version.
Clould you provide a functional phar file for local deployments?

Yes, of course where will be phar version of Deployer available to download from site (in progress).
Now you can clone master branch and run php bin/build command to build phar archive yourself.

the api has changed somehow. how do you set server paths now? how do you configure stages?

New docs in process...
Example on server configuration:
server(...)
    ->env('deploy_path', '/home/web');

Stages:
serverGroup('pre', ['test', 'dev', 'production]);

thanks


After caching and loading an image with url, how to force re-caching and reloading the same url?

The scenario was I cached an an avatar with filter from an url, using this code:
//  self is an UIImageView
let filter = AspectScaledToFillSizeWithRoundedCornersFilter(
	size: CGSize(width: 100, height: 100),
	radius: 0
)
let url = URL(string: "some_url")!
self.af_setImage(withURL: url, placeholderImage: UIImage(named: "avatar_placeholder"), filter: filter)

Then, the avatar on the server changed, I have to reload it.
I tried this but failed:
//  self is an UIImageView
let url = URL(string: "some_url")!
(self.af_imageDownloader ?? UIImageView.af_sharedImageDownloader)
	.imageCache?.removeImage(
		for: URLRequest(url: url),
		withIdentifier: filter.identifier)

Could you help me with this?

I moved this question to stackoverflow


Consider adding AbuseIO

Hi there,
nice list, would you consider adding AbuseIO (listed on GIT, details on https://abuse.io).

Added in https://github.com/hslatman/awesome-threat-intelligence/commit/25d3ad4b64f62de97a97c1daf73cc663c9c50e84.
I think this is the proper category to put it in, as it (imo) only/mostly touches on the consumer side of threat intelligence feeds, correct?

i can do a full spectrum by enabling parsers. The consumer side is just another addon to simpilify enduser reporting, but it could as easily be TI being downstreamed.


Add release notes for <IP_ADDRESS>

Signed-off-by: Tyler Ohlsen<EMAIL_ADDRESS>Description
Add release notes for version <IP_ADDRESS>.
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Build failed, see such error

Could not find org.opensearch:common-utils:<IP_ADDRESS>-rc1.

Build failed, see such error

Could not find org.opensearch:common-utils:<IP_ADDRESS>-rc1.

Yep - this is fixed in #110 actually, but not part of this PR


add ability to build in Python 3.7 and 3.8

Can you bump the version as well so we can cut a release after?


refactor: use jasmine expectAsync instead of try/catch in tests

Currently tests that assert errors to be thrown/or not from
asynchronous methods use try/catch in order to use await.
We added a helper method for this in the private testing utilities. This
one reduced the try/catch burden. That helper method has downsides
though because it doesn't allow us to expect no error to be thrown.
We should remove this method in favor of using jasmine's expectAsync
function. This one gives us more flexibility and is also more
"jamsine"-idiomatic.

Temporarily blocked until #18545 is merged.


SMB to SMB Relay

Hi,
Thank you for creating such a tool!
While using InveighRelay, I noticed that it doesn't accept SMB1/2 to SMB1/2 Relay. From the description, InveighRelay does "NTLMv1/NTLMv2 HTTP/HTTPS/Proxy to SMB1/SMB2".
The idea is similar this article using Metasploit module (SMB_Relay).
https://pen-testing.sans.org/blog/2013/04/25/smb-relay-demystified-and-ntlmv2-pwnage-with-python
-AJ-

Hi,
Yeah, the big problem is getting control of port 445 on Windows systems. Right now Inveigh just sniffs SMB  traffic. It does not have the ability to impact SMB traffic.
I may end up including an actual SMB listener in Inveigh 1.4 for relay. Some changes will likely be needed on the host system to actually use it though. What I have so far for 1.4 is in the dev branch.


Reproducible whole-process crash in lovr.errhand when running specific code

Summary: Running very specific code causes lovr.errhand to fail with bad argument #1 to '?' (quat expected, got light userdata). This error is internal to errhand and not caused by user code.
Repro instructions

Build lovr 0.14 (I used steamvr driver)
Check out git@github.com:mcclure/lovr-ent.git, make sure you have commit 42a671f69a0
Edit lua/app/test/thread/init.lua. There is a line:
local ThreadTest = classNamed("ThreadTest", Ent)
Change this line to:
local ThreadTest = classNamed("ThreadTest")
IE, remove the "ent" argument.
Run this with lovr.exe lovr-ent/lua app.test.thread.

Result:
Error:
app/test/thread/init.lua:47: attempt to call method 'super' (a nil value)

Stack:
pl/class.lua:34: in function 'call_ctor'
pl/class.lua:164: in function 'CLS'
engine/common_ent.lua:40: in function 'load'
engine/common_ent.lua:47: in function <engine/common_ent.lua:44>
engine/ent.lua:143: in function 'route'
engine/ent.lua:80: in function 'insert'
main.lua:54: in function 'load'
boot.lua:177: in function <boot.lua:175>
[C]: in function 'xpcall'
Error occurred while trying to display another error:
bad argument #1 to '?' (quat expected, got light userdata)

Stack:
[C]: at 0x7ff7e906fb70
[C]: in function '__index'
boot.lua:274: in function <boot.lua:260>
[C]: in function 'xpcall'

Okay, what's the bug?
The first reported error-- "attempt to call method super"-- is correct. The "Ent" removed from init.lua is the superclass of the ThreadTest class; if ThreadTest has no superclass, then the self:super() call in its constructor is nil.
The bad argument #1 to '?' (quat expected, got light userdata), which triggers inside errhand, is the bug.
Variants
I can fiddle around with the app/test/thread code a great deal and the error-reporting crash still occurs. It doesn't seem to matter what kind of error it is. If an error occurs there, you get the "bad argument to ?".
Conversely, I can't find a way to reproduce this problem except by running this exact code.
One thing that does make the crash go way. In lua/main.lua in lovr-ent there is a variable "singleThread". If you set this to true, then app/test/thread/init.lua will not create its helper thread. If you turn on singleThread, the crash will not occur. The error will be reported normally.
Analysis
I think this is actually a luajit bug, which would mean there's not much we can do. The symptom (nonsense being passed to a C call) is characteristic of other luajit bugs, as is the fact that the bug seems to be more a byproduct of code structure than any one thing the code does.
Because of the "singleThread" thing, I thought for a bit this might actually be a bug related to entering errhand while a second thread is running. To test this, I made a small test program. Put these two in the same directory:
main.lua:
local y
local function x()
	local thread = lovr.thread.newThread("thread.lua")
	thread:start()
	local name = "test"
	local channelSend = lovr.thread.getChannel(name.."-up")
	local channelRecv = lovr.thread.getChannel(name.."-dn")

	lovr.timer.sleep(1)
end
x()
for i=1,300000 do
	local g = {}
	g.x = 3
end
collectgarbage()
y()

thread.lua:
local thread = require("lovr.thread")
local name = "test"
local channelSend = thread.getChannel(name.."-up")
local channelRecv = thread.getChannel(name.."-dn")

while true do
	channelRecv:pop(true)
end

This is an attempt to recreate the thread API calls that app.test.thread does, as well as wait a little bit and run a gc, before crashing. This succeeds (that is, it fails with a normal error).
There is one way this could still be a lovr.thread bug. That would be if printing the unusually deep stack in app.test.thread, with references to many different files is actually causing the gc to be invoked by lovr.errhand. It seems like a stretch and I don't know how to confirm that hypothesis.

Is it possible that the library is modifying the global lightuserdata metatable?  Does quat in the error refer to cpml's quat or lovr's quat?  Does modifying t.math.globals in lovr.conf change anything?  What is the implementation of lovr.errhand in this project?

This also reproduces 100% if I execute the above with the given steps and there is ANY error in the thread (ie, i always get the "bad argument #1 to '?' (vec4 expected, got light userdata)")

Is it possible that the library is modifying the global lightuserdata metatable?

The metatable for lightuserdata itself? I don't think so, It is loading cpml, but rather than that modifying the metatable it uses ffi.metatype(new, vec2_mt) for various types such as cpml_vec2.

Does quat in the error refer to cpml's quat or lovr's quat?

That's an interesting question but I'm not sure yet. It looks to me like a lovr internal error which would always be looking for lovr quat. Although CPML is being loaded, at this point in the code path no CPML objects (say, no CPML quats) would have been loaded.

Does modifying t.math.globals in lovr.conf change anything?

How should I modify it?

What is the implementation of lovr.errhand in this project?

It is the default. I have also performed this test with lodr, in which case it uses lodr's errhand (which calls lovr's default errhand). It fails the same way in the same place with lodr.

Another weird detail: Say that I run the test in the top of this thread, except

I do not remove the ", Ent"
I change lua/app/test/thread/action.lua so that instead of saying return x+1 it says return x+nil (in other words, I cause an error to happen on a helper thread)
I get the "bad argument to ?" error.

The lovr-ent main contains this:
function lovr.threaderror(thread, message)
	error(string.format("Error on thread:\n%s", (message or "[nil]")))
end

If I remove this, the "bad argument to ?" goes away.
If I try to reproduce this in my non-lovr-ent demo (the one quoted in my first post) by adding errors to the thread or by adding the lovr-ent threaderror to the simple demo, I do not reproduce it.
I don't know what to make of this. It seems to make the "luajit error" hypothesis less likely and a "lovr-ent is somehow breaking lightuserdata/quat" hypothesis (which you seem to be leaning toward) more likely

Added prints to boot.lua. The error is occurring on the line
local projection = mat4():perspective(.1, 100, math.rad(67), width / height)

The error is happening specifically in the mat4() call

The error occurs even if I never load CPML into the process

It's as if the Lua stack gets messed up in l_lovrMathMat4 or l_lovrMat4Set.

I thought the error was in mat4() but it wasn't. It is weirder than that.
The error occurs when mat4.perspective is accessed.
Not when it is called; when it is accessed.
In my current boot.lua, after if lovr.graphics.hasWindow() in lovr.errhand, i have the lines
local emptyMat = mat4()
print("_WINDOW2.3")
print("_WINDOW2.3025", type(emptyMat))
print("_WINDOW2.305", emptyMat)
print("_WINDOW2.31", emptyMat.perspective)

This prints
_WINDOW2.3
_WINDOW2.3025   userdata
_WINDOW2.305Error occurred while trying to display another error:
bad argument #1 to '?' (quat expected, got light userdata)

Stack:
[C]: at 0x7ff6fbadf870
[C]: at 0x7ff6fbacf7a0
[C]: in function 'print'
boot.lua:287: in function <boot.lua:264>
[C]: in function 'xpcall'

So:
  local width, lines = font:getWidth(message, wrap)

This specific line, in boot.lua.
My boot.lua currently says
    print("uhF", mat4().perspective)
  local width, lines = font:getWidth(message, wrap)
    print("uhG", mat4().perspective)

Assuming we have prepared the scene by instantiating ThreadTest, when I hit these lines it prints
in l_lovrMat4Set
top is 1
type is -1
none path 1.000000Returning
uhF     function: 0x0425e198
in l_lovrMat4Set
top is 1
type is -1
none path 1.000000Returning
Error occurred while trying to display another error: error in error handling

(The top, type, none path stuff are printfs inside mat4(); they show mat4() is not doing anything strange.)
So mat4().perspective returns something valid before calling font:getWidth; and something invalid after.
If I attempt to print message at this step, "message" is a reasonable looking string (a note I was calling a nil self.super, which I was, and a stacktrace)
That's if I got there by the route of instantiating ThreadError() and calling the nil self.super at the end of the constructor.
If I got there by the path of triggering an error in a thread, and then calling error() in lovr.threaderror, instead I fail here (in boot.lua):
function lovr.errhand(message, traceback)
  print("_IN ERRHAND")
  print("uh9", mat4().perspective)

This prints:
_IN ERRHAND
in l_lovrMat4Set
top is 1
type is -1
none path 1.000000Returning
Error occurred while trying to display another error: error in error handling

If I attempt to print "message" at THIS step, I get: bad argument #1 to '?' (quat expected, got light userdata)
If I attempt to print mat4().perspective before calling error() inside threaderror, that works fine.

If I get there by the path of triggering an error in a thread, and then calling error() in lovr.threaderror, mat4 is already broken by the time I enter lovr.threaderror.
If on the first line of lovr.threaderror I print a mat4().perspective, that triggers errhand with an error of bad argument #1 to '?' (quat expected, got light userdata)

Okay. I have figured it out.
The problem is require("lovr.math"). If this line is included in the helper thread, everything is fine. If this line is included, at some point mat4().perspective begins crashing. Moreover, knowing this, I can now create a truly minimal repro:
In folder demo2:
main.lua:
local thread = lovr.thread.newThread("thread.lua")
thread:start()

thread.lua:
require("lovr.math")
a()

This is fixed


[google_sign_in] Sign in window is not clickable on some Android devices.

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
I just installed the google sign in package. Everything works on the emulator and on some Android devices, but on a couple of those on which I tested the application, an error occurs that the google authorization pop-up screen is simply not clickable. Also, any links on it, such as privacy policy, are not clickable. At the same time, the application does not crash and continues to work after closing google auth window.
Expected results
The google authorization window should be clickable and after selecting an account, it should authorize the user
Actual results
Google sign in window is not clickable, even privacy policy or some other links
Code sample
Code sample
import 'package:google_sign_in/google_sign_in.dart';

class GoogleSigninApi {
  static final _googleSignIn = GoogleSignIn();

  static Future<GoogleSignInAccount?> login() => _googleSignIn.signIn();
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/100774881/09cf6f90-84c8-45bb-90e8-f15d524d816c

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.10.4, on Microsoft Windows [Version 10.0.22621.819], locale ru-RU)
    • Flutter version 3.10.4 on channel stable at D:\FlutterSDK\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 682aa387cf (2 weeks ago), 2023-06-05 18:04:56 -0500
    • Engine revision 2a3401c9bb
    • Dart version 3.0.3
    • DevTools version 2.23.1

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

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at C:\Users\Administrator\AppData\Local\Android\Sdk
    • Platform android-33-ext4, build-tools 33.0.2
    • ANDROID_HOME = C:\Users\Administrator\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\Administrator\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2022.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)

[√] VS Code (version 1.75.0)
    • VS Code at C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.66.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22621.819]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 114.0.5735.134
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 114.0.1823.51

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

! Doctor found issues in 1 category.

@awfulminded
Can you provide device / emulator devices on which this behavior occurs ?
Also, can you try the google sign in native Android app on same device / emulator and check if you are able to tap on the elements ?

@awfulminded Can you provide device / emulator devices on which this behavior occurs ? Also, can you try the google sign in native Android app on same device / emulator and check if you are able to tap on the elements ?

Google sign in is working properly in apk and production mode from google play store on:
Samsung A 51
Samsung Galaxy A30s
and Pixel 5 API 31 Emulator
And not working on Redmi 10C (showed in the video)
Im sorry but i dont really understand what you mean by trying google sign in in native android app

Im sorry but i dont really understand what you mean by trying google sign in in native android app

I meant try the google sign in on same affected device (Redmi) accessing your gmail or any other Android native app that uses google sign in and see if you are able to observe same behavior or not. That way we'll come to know if the behavior is specific to Flutter's google sign-in package or happens on native app as well.


Unable to install tensorflow 2.4.1 with python3.8.2 pip

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with the
documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go
here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script
provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue
happens on a mobile device:
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

@millenniumbismay,
In order to expedite the trouble-shooting process, could you please provide the following details

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):
TensorFlow version:
Python version:
Installed using virtualenv? pip? conda?:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory

and the exact sequence of commands / steps that you executed before running into the problem. Thanks!

Also, try running the below commands and let us know if you are still facing the same issue
pip3 install --upgrade pip
pip3 install --upgrade tensorflow

Thanks!


http-server does not get PORT from process.env by default

My command: http-server dist -a mysite.com -S -C cert.pem -K key.pem -o
My .env file: PORT=8081
Expected: The url should be: https://mysite.com:8081
The result: https://mysite.com:8080
Environment:

http-server: 0.12.3
Node version: 14.4.0
Platform: Windows 10

Other information: http-server does not get PORT from process.env.PORT by default

It seems that http-server does not read .env file.  I try using dotenv module and adding dotenv to http-server.js in order to load .env file and it works correctly, http-server can get the PORT from .env file

That's correct that http-server does not read any .env file, if you export the .env into your environment, does it pick up the port correctly?

Closing for now, please re-open if this turns out to be a bug in http-server

so http-server.js won't read the .env file

Correct.

my docker-entrypoint.sh has this command - http-server dist -p 3000 --cors -c1 -g

You're passing the port 3000 explicitly, so that should ignore not just the .env file but also any PORT environment variable set inside the container.

so http-server.js won't read the .env file

Correct.

my docker-entrypoint.sh has this command - http-server dist -p 3000 --cors -c1 -g

You're passing the port 3000 explicitly, so that should ignore not just the .env file but also any PORT environment variable set inside the container.

Great, thanks for the confirmation. Just for clarification , am trying to pass sensitive data and not the port. I’ll use the node command to run the server then.


Create Implement Linear Regression (without Library) in c++

Ok sir, can i further change in this code

Ok sir, can i further change in this code

Yes

now i fully change and explain with example

it wright or not could you check

@Durgesh4993 Is it possible if you can graph it since then only the results can be verified easily & please update the README.md


dropdown menu not displaying to full width on small screen after setting calcItemWidths to true to make more than 5 parent li fit on same line on big or full screen

As you suggested in my previous issue on https://github.com/indyplanets/flexnav/issues/140,
I set calcItemWidths to true such that I can make more li elements since by default flexnav fits only 5 li elements with calcItemWidths set to default (false), But doing so I found that on small screen the li elements are not displaying to full width.
here is image :

I have the same issue. Were you able to find a solution? Thanks.

I fixed it by adding "width:260px;" to ".flexnav li > ul":
.flexnav li > ul {
position: absolute;
top: auto;
left: 0;
width:260px;  /added this line/
}


[IE] if interactionDOMElement.getBoundingClientRect doesn't exist use empty rect

Founded and resolved by @POlITIC .

I assume you didn't mean to create a PR from master -> dev.


.d-desktop not working as intended

Hi,
First of all, great utility!!
I'm using the web interface to design my email. and then using it in PHP.
I have a small table inside another table which is a child to the "card" element.
I want this small table to be visible on desktop, but not on mobile. I read the documentation and found that to do this I would have to add .d-desktop to the element. So I added it to the inner (small) table. But this is not doing what I want it to do. The table still shows up on mobile.
I'm adding the class to the <table> element that I want hidden. I'm guessing that's how it's supposed to be done?
For testing, I'm using chrome browser and windows 10 mail app on the desktop and chrome browser/gmail app on mobile (Android).
I'm attaching some screenshots for your reference.
Please let me know if you need anymore info.
Thanks,
Bhavil Jain

sry, had not added the external classes in the code. silly me.. :P


Should c:insert/2, c:insert!/2, c:update/2, and others validate changes thru changesets?

I just noticed that most repo mutating callback functions validate structs through the schema module's respective changeset/2, which is different than what happens when Repo.insert/2 is used. I'm not sure what to do in this case.
Should it validate all changes through changeset/2 or should they dangerously allow inserts directly, without caring with changeset validations (effectively delegating it to the respective functions)?

I think it's wise to check how these functions differ in Ecto APIs (aka.: which ones validate changes w/ changesets and which do not) and replicate it in SwissSchema APIs.
Since it'll probably cause breaking changes, it's important to advertise, both in docs and social media, that a version bringing this change (probably v1.0.0) will be an API-breaking one.

To be continued on #20.


Add a null-check of TeleportMarker before instantiating the object.

#1112 Added a null-check of TeleportMarker before instantitiating the object.

We could put this on the master branch, if we get the back port in soon.


"pip install django-smart-selects" gives error and do not install

"pip install django-smart-selects" gives error and do not install

Actual behavior
Gives error
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f21b175fc88>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/django-smart-selects/
Expected behavior
installation of django-smart-selects

Sorry my error. It worked.


chore: Make the PnL of the Position a calculated value

We don't persist the PnL, but it is calculated in the UI using the latest price. The calculation is handled in Rust with a calculation endpoint.
@klochowicz this is relevant for wiring in the price events
In dart we will have to consume the price events in the TradeValueChangeNotifier and the PositionChangeNotifier.

Note on the pnl calculation: I pulled that in from ItchySats and simplified it fast to fit our current needs. This code really needs some cleanup and tests 😅
I am planning to finish the position lifecycle tomorrow (with the position in memory instead of DB) and am planning to do a small cleanup round after where I also add tests for this code :)

Note: The test output was validated against our good old Excel sheet CFD hedging model

bors r+


Added product and profile cards

What is the change?
Added product and profile cards with hover animation
Related issue?
closes: #40
How was it tested?
The feature was tested on multiple viewports and with devices without hover compatibility and the code works for pretty much all specification devices.
Checklist:

[x] Have you followed the Contribution Guidelineswhile contributing.
[x] Have you checked there aren't other open Pull Requests for the same update/change?
[x] Have you made corresponding changes to the documentation?
[x] Have you tested the code before submission?
[x] Have you formatted your code ? (You can use any html,css beautifier)
[x] My changes generates no new warnings.
[x] I'm Hacktoberfest'21 contributor.
[x] I have commented my code, particularly in hard-to-understand areas.

GIF/video of the working of component you created:
To preview this feature check out my original source code by clicking here

I just realized that I have to update the README.md, so I will do that and make a new PR.


[BUG/Help]

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
File "web_demo.py", line 19 SyntaxError: Non-ASCII character '\xe7' in file web_demo.py on line 19, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Expected Behavior
How to fix the error:
File "web_demo.py", line 19 SyntaxError: Non-ASCII character '\xe7' in file web_demo.py on line 19, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
when running "python web_demo.py"? Thanks.
Steps To Reproduce
When running "python web_demo.py"
Environment
- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :

OS: Ubuntu 20.04
Python: 3.8
Transformers: 4.26.1
PyTorch: 1.12

Anything else?
No response

This error message usually occurs when a Python file contains non-ASCII characters (here is Chinese characters), but the encoding format has not been specified at the top of the file. In Python 3.x, the default encoding format is UTF-8. However, it is still recommended to add a coding declaration at the top of the file if non-ASCII characters are included in the code, to avoid similar errors. For example:
# -*- coding: utf-8 -*-
Or you can replace the Chinese characters with English.


docs: examples for safeds.lang

Closes partially #1027
Summary of Changes
Add examples for user-facing declarations in safeds.lang.

:tada: This PR is included in version 0.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
npm package (@latest dist-tag)
v0.13.0
GitHub release

Your semantic-release bot :package::rocket:


add new script reverse_markers.py

This script will reverse the current marker selection.

Hello!
In which cases it is convenient to reverse markers selection? I would like to understand how often this can happen to other users.
P.S. Sorry for the long reply.

My use for this script was so that I could select markers for GCP's, then mark remaining markers for use as check points.
Example:
I have 10 markers.
I select 5 to use as CGP's. I marke photos for each marker.
I then reverse markers, which means now the check point markers are selected.
I can now mark photos in the remaining 5 markers.
Now I can reverse markers again, leaving GCP markers selected to continue processing, check accuracy etc.
Hope that makes sense?

I have 10 markers.
I select 5 to use as CGP's. I mark photos for each marker.
I then reverse markers, which means now the check point markers are selected.
I can now mark photos in the remaining 5 markers.

Hmm, but can't the same thing be achieved in a simpler way? F.e.:

Create 10 markers
Place their projections in all photos
And then select 5 GCPs from them

How does enabling/disabling markers affect the placement of marker projections in photos? Aren't they independent?

After importing reference file, I will de select markers to use as checkpoint, mark photos for GCP's, update transformations.
I then reverse markers, allow me to mark photos for the markers I want to use as check points, but I do not update transform based on check points.
You can't mark photos unless a marker is selected.
For checkpoints, I do not update transformation, to ensure they are truly independant and giving me a more realistic accuracy value.
So to recap with a bit more detail:

Import references
I have 10 markers (all selected by default)
I de select 5 to use as check points.
I mark photos for each selected marker (GCPs).
Update transform after I have completed marking photos for a single marker.
I then reverse markers, which means now the check point markers are selected.
I can now mark photos in the remaining 5 markers.
Now I can reverse markers again, leaving GCP markers selected to continue processing, check accuracy etc.

If I didnt have my script, on sites where I have 10 - 20 GCP's, I would have to manually select / deselect markers when switching from marking GCP's / Checkpoints. With the script its a single click of the menu, regardless of how many markers I have.
This the the workflow I am following from this video, which prompted me to create the script, to save time selecting deselecting markers.
https://youtu.be/ytvc0euMeKM?si=Dvgk4wiBFJP7LDcS&t=558

But if I correctly understand - your workflow will also work in the following way without the script:

Import references
you have 10 markers (all selected by default)
mark photos for all markers
de select 5 to use as check points
Update transform
continue processing, check accuracy etc.

Am I missing something?
P.S. this is not so important, but I also don't fully understand this - You can't mark photos unless a marker is selected. - you mean that Filter Photos by Markers doesn't work if a marker is de-selected? But it works for me - I opened a random project, un-selected the marker and Filter Photos by Markers worked as expected - only relevant photos were shown in the Photos pane below.


Add ergodox.hex to Download files for Bintray package version

The Bintray package version page has a downloads list but no files currently appear there by default. Update wercker.yml to add ergodox.hex to the downloads list using Bintray's API.

Done.


Adds protos for multipart blob uploads

Implementation and usage in followup PR

Would it make more sense if it's the same method (BlobCreate) on the server, but the server returns a different response if multipart uploads are needed? We would have to send the file size to BlobCreate for this to make sense.

Perhaps, but a multipart upload requires each part's md5 checksum to be known ahead of time when creating the presigned urls so it would then require another roundtrip to the server with that data attached if we do it like that. Unless we feel checksumming of each individual part is unnecessary? We do still have checksumming for the full file, so perhaps that make sense?

I think you might be right that there are advantages to having the server determine the upload specification that outweigh the need of using per-part MD5 checksumming. Refactored a bit


Give Finance Team Access to Marts Tables

User Story

As a member of the internal finance team, I should have access to all of the marts tables and be able to query that data.

Description/Context
Please update the grants statements in the appropriate .yaml files to give the "finance" role global "select" privileges to all the marts tables in Trino.
Acceptance Criteria

[ ] Any member of the finance team should be able to access the data in the marts tables when querying via Starburst.

Plan/Design
To give global access to the finance role, we would need to update the global dbt grants configuration for the marts tables.
It would probably be good to clean up the older, more specific grants provisioning we added for the finance role:
marts__combined__users
marts__combined__orders
marts__combined_course_enrollment_detail
marts__mitxpro_ecommerce_productlist

This pull request includes the required changes https://github.com/mitodl/ol-data-platform/pull/1393 and has been merged.


Data Loader RFC

Problem
The current way data is loaded into the engine is terrible. The Data class is nothing but static methods with hardcoded paths. This makes it impossible for someone to change where/how entities are stored without directly modifying core.
Goal

There should be an extensible datasource system in which one can specify which datasource an entity is loaded from.
A DataSource may be used for more than one entity, e.g., the current default setup of everything being in YAML files would be represented by all entities using the YamlDataSource.
To specify a datasource for an entity it must be configured and registered in the DataSourceRegistry. I'm envisioning something like this in ranvier.json

{
  // ...
  "dataSources": {
    "Yaml": {
      /* 'require' specifies which file or package to require. It will follow
      the same API as the node require() method, which is to say you could
      either have the class locally or it could be from a node module */
      "require": "./lib/path/to/classFile.js",
      /* An arbitrary config passed to the DataSource constructor.
      Each DataSorce might have a different config: file paths,
      database details, etc. */
      "config": {
        "bundlePath": "bundles",
      }
    },

    "Mysql": {
      "require": "ranvier-mysql-datasource",
      "config": {
        /* A config should also be able to pull from env variables
         to keep things like DB connection details out of source control */
        "hostname": "[ENV(RANVIER_MYSQL_HOSTNAME)]",
      }
    },

    "Json": {
      /* If a node module exports more than one data source you may specify
      which export to use with <module>.<object> */
      "require": "cool-datasources.JsonDataSource",
      "config": {
        "root": "data"
      }
    }
  },
  // ...
}

Configuring the entities to use a data source would also be done in ranvier.json

{
  // ...
  "entitySources": {
    /* The keys here will be a specific list of game entities which the
    BundleManager will use to load data. However, you should also be able
    to add additional entities if you have a bundle with some custom data
    like a vendor's product list or loot tables */
    "items": {
      /* specifies which registered DataSource to use */
      "source": "Yaml",
      /* Additional configuration for the datasource specific to this entity */
      "config": {
        "path": "items.yml",
      },
    },
    "npcs": {
      "source": "Mysql",
      "config": {
        "table": "npc",
      },
    },

    "players": {
      "source": "Json",
      "config": {
        "path": "data/players"
      }
    },
    "accounts": {
      "source": "Json",
      "config": {
        "path": "data/accounts"
      }
    }
  }
}

The DataSourceRegistry will be populated by instances of the classes defined/configured from the dataSources in ranvier.json. It will be the low-level API for data access, generally used only internally by each EntityLoader class.
Each configured EntityLoader instance will be registered to the EntityLoaderRegistry
The EntityLoader should have an async fetchAll() method to retrieve all data. As well as singular async fetch(key) method to fetch a single entity
For higher level data access there will be an EntityLoader class which will be constructed from the entitySources configuration in ranvier.json. It will be the class used to actually fetch entity data, example:

const itemLoader = state.EntityLoaderRegistry.getLoader('items');
/* EntityLoader will have setBundle/setArea methods to optionally specify
which bundle/area the data is coming from */
itemLoader.setBundle('example-areas');
itemLoader.setArea('limbo');
const items = await itemLoader.fetchAll();

/* player data won't be stored in a bundle, for example */
const playerLoader = state.EntityLoaderRegistry.getLoader('players');
const playerData = await playerLoader.fetch(playerName);
const player = new Player(playerData);

The default ranviermud setup will be the same as it is today: all game entities loaded from YAML. It will come with the ranvier-yaml-datasource already installed/configured. Additionally player/account data will be loaded from JSON using the preinstalled/configured ranvier-json-datasource

I think that sounds great Shawn!  I don't probably have very nuanced view of it, but I really like the idea of being able to easily adapt to different storages systems.  Thankyou!!!!