Add a "last unread" indicator for reports

If you haven’t already, check out our contributing guidelines for onboarding!

Platform - version: web, ios, android, desktop - version number Version 1.0.1-444 (1.0.1-444)
Action Performed:

Create a group chat in e.cash desktop, web, ios, android
Send a message to the group chat
Go offline
Come back to the chat and look for the last message you read
Create a marker for responses to a thread that happened since the last time you read the thread.

Expected Result:

User should see a new message marker in all chat threads - even non-group chats
The new message marker needs to have a height of 0 so it can fit nicely between the chats

Actual Result:

At this time, the only method to see the last read message is looking at the time stamp.

Currently, the only method to determine the last message you've read is by the date of the messages

And some guidelines for a solution in the code:
UnreadActionIndicator
This simple component will render an <Animated.View /> as a horizontally-oriented flexbox containing:

A <Text /> component containing the word “new”
An empty <View/> with a width but no height, and a green borderBottom (AKA a horizontal rule in React Native).

It should have a very simple animation to fade out when being hidden.
ReportActionsView
We need to make sure that the last unread comment on the report remains unread until the user leaves the report and comes back. We’ll start by writing a new function called recordLastUnreadAction. It will grab the lastUnreadAction from the report. If none is found, we’ll use the highest visible sequence number, just like recordMaxAction does now.
Then we’ll rename recordMaxAction to recordMaxVisibleAction, and replace all uses of recordMaxAction with recordLastUnreadAction, except for this one, which is triggered when an inactive report becomes active again. In that case, we’ll call scrollToAction with the sequence number of the last unread action so that we display the last unread comment in the report, then call recordMaxVisibleAction.
We’ll then create a new function called insertUnreadIndicator, which will inject an object with {type: ‘unreadIndicator’} into the sortedReportAction array in the position immediately following the lastUnreadAction.
Then we’ll update renderItem to check the type of the item, and if it is unreadIndicator, it will render an <UnreadActionIndicator /> instead of a <ReportActionItem />. In markAllRead, we’ll trigger the hide animation on the <UnreadActionIndicator />, then when it’s completed remove it from the sortedReportActions array.

Extenal Upwork post - https://www.upwork.com/jobs/~0168a5128a533e2505
Internal Upwork job post - https://www.upwork.com/ab/applicants/1362207152733396992/job-details

here how i would solve this bugs
a. backend heavy approach

when user is leaving the chat room it will send request to backend and mark user as leave the room or going offline
create table or collection to save unread message id for each user table need have userId and
every new message will check the recipient of the message and if the recipient if offline in will add the message id to the unread message table
when user open the app it will get unreadmessage for the user, normalize the data from array to hash map using normalzr and then save it in redux
when we open the chat list it will get the using the chat id to check if the chat included in unread hasmap (ex state.unReadMessage[chatid]) if chat id available than it will mark as unread
when user mark message as read will trigger action removing redux state and send delete request to be

b. frontend heavy

when the user leave chat room or going offline will save data goingOffline on persistence storage
when the user online and open the chat room in the chat bubble component will check if the chat timeStamp > goingOffline if true it will trigger action to save chat id on unreadmessage redux state as hash map with chatId as key and empty obj as value and send the data to be so it will effect on any device the user use.
in every chat bubble it will listen unreadmessage redux state if the chat id is it that it will mark as unread
if user mark chat as read it will add the filed on the unreadmessage[chatId].isRead = true so it will change the bubble status
when the user go offline or leave the room it will replace goingOffline value and remove unreadmessage with isRead = true

upwork proposal https://www.upwork.com/ab/proposals/1363015601945636865

@Christinadobrzyn

At this time, the only method to see the last read message is looking at the time stamp.
Currently, the only method to determine the last message you've read is by the date of the messages

What about the unreadActionCount returned by ONYXKEYS.COLLECTION.REPORT? Can't we use that to determine the last unread message?
I'm not sure of how it works, but it is being used already to change the read / unread style on the Sidebar reports.
It's probably unreliable to have two separate methods to track unread messages.

That makes sense to me Lucas, but maybe I am missing something about the existing proposal.
cc @roryabraham since you have proposed the original solution

@lucas-neuhaus-dev Yep, the unreadActionCount should work 👍

@roryabraham
I have quite a few questions, this description on the ReportActionsView is not making that much sense to me.

We need to make sure that the last unread comment on the report remains unread until the user leaves the report and comes back. We’ll start by writing a new function called recordLastUnreadAction. It will grab the lastUnreadAction from the report. If none is found, we’ll use the highest visible sequence number, just like recordMaxAction does now.

This new function recordLastUnreadAction...
From my understanding, we want this function basically to call updateLastReadActionID() with (the reportID and) either the sequence number of the last unread message or the maxVisibleSequenceNumber, right? Depending on whether there are unread messages or not. Hopefully got at least this one right.

Then we’ll rename recordMaxAction to recordMaxVisibleAction, and replace all uses of recordMaxAction with recordLastUnreadAction, except for this one, which is triggered when an inactive report becomes active again.

The exception mentioned happens only when _.size(prevProps.reportActions) !== _.size(this.props.reportActions), in other words, when a new message is sent. That would mean that updateLastReadActionID() gets called with maxVisibleSequenceNumber just when a new message is sent.

In that case, we’ll call scrollToAction with the sequence number of the last unread action so that we display the last unread comment in the report, then call recordMaxVisibleAction

This scrollToAction, what exactly is it? Is it a new function that has to be created, and gets called when an inactive report becomes active? And scrolls the report view to the point of the last unread action?
I spent some reasonable time reading the explanation and testing things out on the code, but can't seem to figure this stuff out.
One more thing:

We’ll then create a new function called insertUnreadIndicator, which will inject an object with {type: ‘unreadIndicator’} into the sortedReportAction array in the position immediately following the lastUnreadAction.

What about, instead of inserting an object in the array, we don't leave it as it is, and add some conditional logic on the renderItem() function, based on the index? I did some tests and it seems to work just fine. We check if the index corresponds to the last action.
If we add a new object in the array, we need to make sure of a bunch of things before sending it to the <InvertedFlatList />.

Sorry for the long list of questions. I'm not sure of how strict I have to follow the instructions on the PR description, so I wanted to make sure I understood it well before anything really.

@lucas-neuhaus-dev sorry for the confusion. This implementation plan was copy/pasted from a document which outlines some features that do not yet exist, including the ability to mark conversations as unread. That an oversight on my part, so I'm sorry to have wasted some of your time. I should have been more careful in copy/pasting this out of its original context.
Allow me to clarify...

This new function recordLastUnreadAction...
From my understanding, we want this function basically to call updateLastReadActionID() with (the reportID and) either the sequence number of the last unread message or the maxVisibleSequenceNumber, right?

Actually, you shouldn't need to create this function or call updateLastReadActionID, because that would change a value in the API that we don't need changed. I think this can be safely ignored since you're using the unreadActionCount to determine last unread action.

This scrollToAction, what exactly is it?

This should be a new function similar to scrollToListBottom, or you can just use FlatList's scrollToIndex function directly. The goal is that when a user opens a report with unread chats, the FlatList will scroll to the oldest unread chat (where the new indicator will be).

What about, instead of inserting an object in the array, we don't leave it as it is, and add some conditional logic on the renderItem() function, based on the index? I did some tests and it seems to work just fine. We check if the index corresponds to the last action.

If you think it would be more complicated to inject an object into the sortedReportAction array, that's fine with me. But the reason I had opted for that approach (avoiding the need for conditional logic in the renderItem function) is because renderItem is pretty performance-critical, and I thought it would be better to avoid adding conditional logic in there if possible. I'll leave that up to you and/or @marcaaron

Again, sorry for the unnecessary confusion I caused here @lucas-neuhaus-dev. There is a lot of context missing in that explanation, so it makes no sense on its own.

No problem! Thanks for the explanation.
I should be good to go now (test some stuff out and create a good proposal).

If you think it would be more complicated to inject an object into the sortedReportAction array, that's fine with me. But the reason I had opted for that approach (avoiding the need for conditional logic in the renderItem function) is because renderItem is pretty performance-critical, and I thought it would be better to avoid adding conditional logic in there if possible. I'll leave that up to you and/or @marcaaron

I see, that's a good point.
I'm going to take a closer look at this and verify which solution I think fits best.

Just a heads up that I updated the mockup in the original comment of this issue - not a huge change, just moves the "New" over to the right.

@shawnborton since you mentioned that, let me ask:
When an unread message is within a group of recent messages (when it's not the first message with an avatar on the left), like on the image below:

Do you want it to be like the image, or do you prefer tagging that message as a new group? I mean, show the name, avatar and time again after the NEW view.

I think the general rule of thumb is that the unread indicator would immediately precede the last unread individual message. So basically what you have mocked up is perfect.

@shawnborton just thought of another question :sweat_smile: haha
For large screens, don't you think that it will look weird? The NEW on the far right of the screen?
You wouldn't have a mock of that for me, would you?

Here you go:

I think it's not too bad. What do you think?

Hmmmm I think your mock is a little bias.
It is a 1180px width screen, instead of other very normal 1920px, so it is more of a medium screen.
And you have a lot of text both at the top and at the bottom, so the text meets the end of the screen, and the NEW does not get so "alone" at one border.
I would encourage you to try a 1920px screen with very short messages. I believe that if we brought the NEW maybe to the center on large screens, it could be better.

I don't think we should be optimizing for screens that are quite that large, I would consider something in the 1300-1500px range to be normal.
With that being said, it would look like this:

I don't think it looks too bad, so I would be fine moving forward with implementing this as we have it mocked up.
The alternative you mentioned in centering it feels a bit strange and cramped when wedged between two individual messages, so I think we should avoid this:

Yeah, it really doesn't look great at the center, I had a different image in my head.
I'm on it, thanks!

Awesome, thanks for your feedback though and working through the mockups with me!

@roryabraham  @marcaaron
Obs.: I have one unrelated question at the end, I would appreciate it if someone could kill my curiosity on that, not necessary tho
Proposal

Create a new component called UnreadActionIndicator, that has height = 0. It receives an animatedOpacity prop;
In ReportActionsView, get the reports object from the Onyx store;
Use it to create a function getUnreadActionCountAndAnimateIndicator (I might want to re-think this name). This function gets the unreadActionCount of the report and returns it. If it is greater than 0, it also starts a setTimeout of three seconds, which fades out the unread indicator at the end of it. It does a couple of verifications to make sure the indicator just shows up when intended;
I did opt for not inserting anything in the sortedReportActions array as suggested in the description. From my tests it brings too many problems within the component children. Instead, I opt to check for the item's index and compare it with the unreadActionCount on the renderItem() function. If we think about it, we are just changing one conditional render with a different conditional render. For this reason, I don't think we should worry about performance;
For now, I'm kind of stuck with the scrollToAction function, I found a lot of problems and still haven't found a proper solution to it (mainly because we still don't have the FlatList ref at componentDidMount time, I'm doing some studying to try to figure something out).

I know it is better to show what I have if I'm having problems with something, that's why I'm writing this proposal without the scrollToAction solution. Maybe someone has a good idea to solve it with the PR in hands.
Unrelated question
On ReportScreen.js, why do we render other reports aside from the active one? I can't seem to figure out the benefit from that. I know that the other reports get a display of none, but it is still a lot of processing going on, which can easily be seen if we write a console.log on the renderItem function on ReportActionsView.

create a function getUnreadActionCountAndAnimateIndicator (I might want to re-think this name). This function gets the unreadActionCount of the report and returns it

Do we need to "get" the unreadActionCount I think it should just be attached to the report object?

I did opt for not inserting anything in the sortedReportActions array as suggested in the description. From my tests it brings too many problems within the component children. Instead, I opt to check for the item's index and compare it with the unreadActionCount on the renderItem() function

🎉

I'm kind of stuck with the scrollToAction function, I found a lot of problems and still haven't found a proper solution to it (mainly because we still don't have the FlatList ref at componentDidMount time, I'm doing some studying to try to figure something out).

I think FlatList having a dynamic height items could also make this difficult to do. But I would just try to see how far we can get and avoid anything hacky. If it can't be done properly then we will have to re-think this aspiration.

On ReportScreen.js, why do we render other reports aside from the active one? I can't seem to figure out the benefit from that. I know that the other reports get a display of none, but it is still a lot of processing going on, which can easily be seen if we write a console.log on the renderItem function on ReportActionsView (and you have large pinned and unread reports).

Yes so this is a practice that will end soon since we are switching to react-navigation the initial motivation as I understand it was so that these reports would get "pre-rendered" and make switching between them faster. After implementing pagination and react-navigation we are anticipating it to be much faster to switch between chats so the rendering cost will not need to be front loaded on app init.

Do we need to "get" the unreadActionCount I think it should just be attached to the report object?

Yeah, but we still have to write a little function to get it, since ONYXKEYS.COLLECTION.REPORT returns an array with all the reports. But the name is because I was actually returning this value from the function, but I am not anymore. I'll think of something better.
Below is how I extracted the unreadActionCount:
this.unreadActionCount = _.find(this.props.reports, report => (
      report.reportID === this.props.reportID
)).unreadActionCount;

I think FlatList having a dynamic height items could also make this difficult to do.

It does. I did some tests and it misses the action index by a decent margin.
The other way I can think of achieving this would be something like this. Try to calculate the height of each item on render time, do some calculations and call FlatList.scrollToOffset().

Yes so this is a practice that will end soon since we are switching to react-navigation the initial motivation as I understand it was so that these reports would get "pre-rendered" and make switching between them faster.

I see, thanks for the explanation.

Try to calculate the height of each item on render time, do some calculations and call FlatList.scrollToOffset()

I have fallen down this rabbit hole before :) Be careful not to lose yourself in there.

I noticed that in some cases (sorry, I have no idea how to reproduce) the app is showing the green unread line for message I sent myself (in the same browser window), which should never happen:

@lucas-neuhaus-dev seems like a bug in the implementation, can you take a look please?

Hi @iwiznia, I can already imagine what caused this, my bad.
I'll take a look at this in just a few minutes and open a new PR once I got a solution. Thanks for pointing that out.

Awesome, thanks for the fast response!

I was able to reproduce it when:

Open a report with unread messages;
Answer something before the indicator finishes fading out;
The indicator "jumps" to the next message for every new message sent in this timestamp;

Hopefully that is the only edge case, if you think what you are facing is a different issue, please let me know.

I think it is a different issue, since I had not sent any new messages, but let's fix the issue you found and se how that goes.

Just an update. I started a full-time job yesterday, so I didn't really have time to work on this.
But I promise I will do my best to get everything fixed this weekend and keep working on the following reviews. :+1:
I apologize for this.

Hi @lucas-neuhaus-dev - Just checking it to see if you have an update on these changes!

Contributor has been paid, the contract has been completed, and the Upwork post has been closed.


Not possible to collapse single line functions in the editor

It is not possible to collapse single line functions in the editor.
Example:
Could not be collapsed (no _minus _marker appears)
def f(*args, **kwargs):
    pass

Could be collapsed (_minus _marker appears)
def f(*args, **kwargs):
    # deliberate empty line
    pass

Is this a design decision or a bug?
System: Visual Studio 2015 Community Edition and corresponding PTVS

It's a design decision. The amount of space saved is minimal, and we are aware that having too many markers on the left-hand side can be confusing. (Bear in mind that we use the same rule for all compound statements, so once you factor in all the single-line if, elif, else, for, while, with, try, except, finally blocks too you can easily get a marker on every second line.)
That said, if you have a reason to change that we're certainly open to reconsidering the design. But if you're just checking whether it's a bug, then thanks, but it's deliberate.

Ok thanks, it was just for checking. (Since I migrated from Canopy IDE, I would already be happy with very minimal collapsing support.)


'latest' value for $version parameter ends up in the value for the package name.

'latest' value for $version parameter ends up in the value for the package name.
I'm simply running:
class { ::docker: version => 'latest' }

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install lxc-docker-latest' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package lxc-docker-latest
Error: /Stage[main]/Docker::Install/Package[docker]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install lxc-docker-latest' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package lxc-docker-latest

Well, commenting out the validate_re() actually fails the install of lxc-docker-latest:
Warning: /Apt_key[Add key: E56151BF from Apt::Source mesosphere]: The id should be a full fingerprint (40 characters), see README.
Info: Applying configuration version '1428766890'
Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install lxc-docker-latest' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package lxc-docker-latest
Error: /Stage[main]/Docker::Install/Package[docker]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install lxc-docker-latest' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package lxc-docker-latest

Actually, it appears this is causing the ensure value 'latest' to end up in the name of hte package when compiled since I get 'lxc-docker-latest' when I pass the 'latest' to the version parameter.

And lxc-docker-latest isn't an apt package.

Could I check what operating system you're running on?

I can reproduce this issue on CentOS 7.1.

This was happening on Ubuntu 14.04 Precise

^^ Wow, did I really take a year to reply?

Just test it: still breaks on Ubuntu 14.04

Yep this is breaking for me too on centos 6.5
Thanks

With v5.0 this should be fixed. Partly by the change to using the new repos which had a different versioning scheme and layout anyway. Thanks for reporting and apologies for the delay in responding.


knife bootstrap winrm script fails

Description
bootstrap fails with "The system cannot find the batch label specified - key_create"
Chef Version
Workstation 20.5.6
Infra Client 16.0.287
Platform Version
Ubuntu 18.04 workstation
Windows 10.0 18363 bootstrap target
Replication Case
knife bootstrap -o winrm -U username -P password ip.ip.ip.ip -N win10_azure -V
Client Output
 [ip.ip.ip.ip] )
 [ip.ip.ip.ip] Detected Windows Version 10.0 Build 18363
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>goto Version10.0
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>goto architecture_select
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>IF "AMD64" == "x86" IF not defined PROCESSOR_ARCHITEW6432
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>goto chef_installed
 [ip.ip.ip.ip] Checking for existing Chef Infra Client installation
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>WHERE chef-client  1>nul 2>nul
 [ip.ip.ip.ip]
 [ip.ip.ip.ip] C:\Users\btm\Documents>If !ERRORLEVEL! == 0 (
 [ip.ip.ip.ip]
 [ip.ip.ip.ip]  goto key_create
 [ip.ip.ip.ip] )  else (
 [ip.ip.ip.ip]
 [ip.ip.ip.ip]  goto install
 [ip.ip.ip.ip] )
 [ip.ip.ip.ip] Existing Chef Infra Client installation detected, skipping download
ERROR: The following error occurred on ip.ip.ip.ip:
ERROR: cmd.exe : The system cannot find the batch label specified - key_create
         + CategoryInfo          : NotSpecified: (The system cann...ed - key_create:String) [], RemoteException
         + FullyQualifiedErrorId : NativeCommandError

Same issue here on WIN Server 2012 R2 after updating workstation

We ran into something similar to this on knife version 16.0.287.
We discovered, what we think, is a mistake in this section.
https://github.com/chef/chef/blob/d657a69f13d97f2ae89f39b6632f576b13822c7d/chef-config/lib/chef-config/config.rb#L95
This is used in the bootstrap.bat-file for windows and results in:

Command created for If (Test-Path "C:/Users/Administrator/AppData/Local/Temp/d1713d29-b931-4a0b-8872-1a23ca7e4e10/bootstrap.bat") { Remove-Item -Force -Path "C:/Users/Administrator/AppData/Local/Temp/d1713d29-b931-4a0b-8872-1a23ca7e4e10/bootstrap.bat" }
@<IP_ADDRESS><{:transport=>:negotiate, :disable_sspi=>false, :basic_auth_only=>false, :endpoint=>"http://<IP_ADDRESS>:5985/wsman", :user=>"administrator", :password=>"", :no_ssl_peer_verification=>false, :realm=>nil, :service=>nil, :ca_trust_file=>nil, :ssl_peer_fingerprint=>nil}> (If (Test-Path "C:/Users/Administrator/AppData/Local/Temp/d1713d29-b931-4a0b-8872-1a23ca7e4e10/bootstrap.bat") { Remove-Item -Force -Path "C:/Users/Administrator/AppData/Local/Temp/d1713d29-b931-4a0b-8872-1a23ca7e4e10/bootstrap.bat" })
Exiting without bootstrapping due to download failure.
Failed to download "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=stable&v=14.14.29" with status code 1.
Failed download: download completed, but downloaded file not found
The argument 'C:/chef\wget.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the -File parameter.
The system cannot find the path specified.
The system cannot find the path specified.
+ FullyQualifiedErrorId : NativeCommandError
+ CategoryInfo          : NotSpecified: (The syntax of the command is incorrect.:String) [], RemoteException
ERROR: cmd.exe : The syntax of the command is incorrect.

This is because "mkdir" does not accept paths with forward slash.
so "mkdir c:/chef" will cause the syntax error.
We worked around it and hardcoded the correct path in our '--bootstrap-template', '/data/app/chef/bootstrap/windows-chef-client-msi.erb' hoping it would make things work again.
BUT
We hit yet another error.

[<IP_ADDRESS>] Starting chef-client to bootstrap the node...
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>SET "PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\ruby\bin;C:/opscode/chef\chef\bin;C:/opscode/chef\chef\embedded\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps"
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>chef-client -c C:/chef/client.rb -j C:/chef/first-boot.json -E win2016prod
DEBUG: [WinRM] cleaning up command_id: 9BE5E690-F973-45E8-BAD8-81E94F5AA9E8 on shell_id DE4D401D-7EF1-4D0C-9037-C01CC926AB51
ERROR: The following error occurred on <IP_ADDRESS>:
ERROR: cmd.exe : 'chef-client' is not recognized as an internal or external command,
+ CategoryInfo          : NotSpecified: ('chef-client' i...ternal command,:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
operable program or batch file.

Now chef is installing, but failed when trying to run the chef-client:
The paths added to %PATH% have similar wrong syntax (mix of forward slash and backward slash), that might make the command prompt not able to recognized the command 'chef-client'
or
the SET "PATH="-command is run and the chef-client command is run in the same shell, so the paths are not updated before a new shell is launched.
Hope this is helpful resolving the issues.
/Martin

@hamsjelv
https://github.com/chef/chef/blob/d657a69f13d97f2ae89f39b6632f576b13822c7d/chef-config/lib/chef-config/config.rb#L96-L100
While that comment says c:/chef/ that gets run through ChefConfig::PathHelper.cleanpath
https://github.com/chef/chef/blob/d657a69f13d97f2ae89f39b6632f576b13822c7d/chef-config/lib/chef-config/path_helper.rb#L143
On linux that returns that way:
2.5.3 :001 > require 'chef'
 => true
2.5.3 :002 > Chef::Config.c_chef_dir
 => "C:/chef"

but on Windows cleanpath replaces the slashes with escaped backslashes
irb(main):004:0> require "chef"
 => true
irb(main):005:0> Chef::Config.c_chef_dir
 => "C:\\chef"

I've got a fix for key_create, but I think there might be an issue with the bootstrap_directory and slashes though. Going to keep looking at that next.

The bootstrap_directory path issue is a regression from: https://github.com/chef/chef/pull/9371/files#diff-5248e81ebe7911aafaafe4e3073832a2L262-L264

Could you please let me know, if this fix has been released?  if yes, could you please provide the fix version?

Fixes are available in current release chef v16.1.7+.
Check out https://downloads.chef.io/chef/current

I am running knife bootstrap command. How to make sure that it will install chef client version 16.1.7+ ?

@AnamikaN you can pass --channel current --bootstrap-version 16.1.7 to knife bootstrap to get the "unreleased" builds. If you don't pass a version it will take the most recent build in current (builds in current have passed automatic testing).

@btm Thank you. some progress is there. I am still getting error. Initially, i got error that C:\chef\wget.vbs is not found, so it was not able to download client pkg.
I had this file on other machine, so I copied this. Now, I am getting below error-
Not sure why it is setting 'C:/opscode/chef\chef\bin' in path. isn't it should be C:\opscode\chef\bin
What I am missing?
C:\Users\Administrator\Documents>(echo.{"run_list":[]}) 1>C:/chef\first-boot.json
[<IP_ADDRESS>] Starting chef to bootstrap the node...
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>SET "PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\ruby\bin;C:/opscode/chef\chef\bin;C:/opscode/chef\chef\embedded\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Amazon\cfn-bootstrap;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps"
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>chef-client -c C:/chef/client.rb -j C:/chef/first-boot.json
ERROR: The following error occurred on <IP_ADDRESS>:
ERROR: cmd.exe : 'chef-client' is not recognized as an internal or external command,
+ CategoryInfo          : NotSpecified: ('chef-client' i...ternal command,:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
operable program or batch file.

I ran this command again and it worked. Weird. Dont know, what was wrong.
knife bootstrap --channel current --bootstrap-version 16.1.7 -o winrm <IP_ADDRESS> -U Administrator -P ‘xxxxxxx'

Everytime when i try to bootstrap windows node, i get below error-
No existing installation of chef detected
[<IP_ADDRESS>] Checking for existing downloaded package at "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] No existing downloaded packages to delete.
[<IP_ADDRESS>] Attempting to download client package using PowerShell if available...
[<IP_ADDRESS>] powershell.exe -ExecutionPolicy Unrestricted -InputFormat None -NoProfile -NonInteractive -File  C:/chef\wget.ps1 "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] Windows PowerShell
[<IP_ADDRESS>] Copyright (C) Microsoft Corporation. All rights reserved.
[<IP_ADDRESS>]
[<IP_ADDRESS>] Warning: Failed to download "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" to "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] Warning: Retrying download with cscript ...
[<IP_ADDRESS>] Input Error: Can not find script file "C:\chef\wget.vbs".
ERROR: The following error occurred on <IP_ADDRESS>:
ERROR: cmd.exe : The syntax of the command is incorrect.
+ CategoryInfo          : NotSpecified: (The syntax of the command is incorrect.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
The system cannot find the path specified.
The system cannot find the path specified.
The argument 'C:/chef\wget.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the -File parameter.
Failed download: download completed, but downloaded file not found
Failed to download "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" with status code 1.
Exiting without bootstrapping due to download failure.

@AnamikaN probably your workstation also needs to be updated with the latest version of the chef-workstation? these fixes for a workstation so that it can take the bootstrap path correctly.

@AnamikaN It's your local computer that is creating that script on the remote computer when bootstrapping. You local computer needs to have Chef 16.1.7+ on it as well.
We haven't released a version of Workstation yet that has Chef 16 in it, only the builds in current have it. So what version of Chef is on your workstation?

This is my workstation version. I installed latest one for mac os from https://downloads.chef.io/chef-workstation#mac_os_x
w7tbuent43:.chef anadkarni$ chef -v
Chef Workstation version: 0.18.3
Chef Infra Client version: 15.10.12
Chef InSpec version: 4.18.111
Chef CLI version: 2.0.10
Test Kitchen version: 2.5.0
Cookstyle version: 6.3.4

@AnamikaN It's your local computer that is creating that script on the remote computer when bootstrapping. You local computer needs to have Chef 16.1.7+ on it as well.
We haven't released a version of Workstation yet that has Chef 16 in it, only the builds in current have it. So what version of Chef is on your workstation?

Do I have to upgrade chef infra client version on my local as well? how to do that? I did install latest workstation.

@AnamikaN you can get the most latest workstation builds from the 'current' channel as well from: https://downloads.chef.io/chef-workstation/current#mac_os_x. You have the latest 'stable' build.

@AnamikaN you can get the most latest workstation builds from the 'current' channel as well from: https://downloads.chef.io/chef-workstation/current#mac_os_x. You have the latest 'stable' build.

I updated my workstation.
w7tbuent43:.chef anadkarni$ chef -v
Chef Workstation version: 20.5.46
Chef Infra Client version: 16.1.0
Chef InSpec version: 4.18.114
Chef CLI version: 3.0.1
Test Kitchen version: 2.5.1
Cookstyle version: 6.5.3
Still getting the same error-
$ knife bootstrap --channel current --bootstrap-version 16.1.7 -o winrm <IP_ADDRESS> -U Administrator -P 'xxxxx'
Connecting to <IP_ADDRESS>
Performing legacy client registration with the validation key at /Users/anadkarni/Documents/src/chef.deploy.rd.elliemae.io/.chef/newchef-validator.pem...
Delete your validation key in order to use your user credentials for client registration instead.
Bootstrapping <IP_ADDRESS>
[<IP_ADDRESS>] Checking for existing directory "C:/chef"...
[<IP_ADDRESS>] Existing directory not found, creating.
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>(
[<IP_ADDRESS>] echo.url = WScript.Arguments.Named("url")
[<IP_ADDRESS>]  echo.path = WScript.Arguments.Named("path")
[<IP_ADDRESS>]  echo.proxy = null
[<IP_ADDRESS>]  echo.'* Vaguely attempt to handle file:// scheme urls by url unescaping and switching all
[<IP_ADDRESS>]  echo.'* / into .  Also assume that file:/// is a local absolute path and that file://
[<IP_ADDRESS>]  echo.'* is possibly a network file path.
[<IP_ADDRESS>]  echo.If InStr(url, "file://") = 1 Then
[<IP_ADDRESS>]  echo.url = Unescape(url)
[<IP_ADDRESS>]  echo.If InStr(url, "file:///") = 1 Then
[<IP_ADDRESS>]  echo.sourcePath = Mid(url, Len("file:///") + 1)
[<IP_ADDRESS>]  echo.Else
[<IP_ADDRESS>]  echo.sourcePath = Mid(url, Len("file:") + 1)
[<IP_ADDRESS>]  echo.End If
[<IP_ADDRESS>]  echo.sourcePath = Replace(sourcePath, "/", "")
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.Set objFSO = CreateObject("Scripting.FileSystemObject")
[<IP_ADDRESS>]  echo.If objFSO.Fileexists(path) Then objFSO.DeleteFile path
[<IP_ADDRESS>]  echo.objFSO.CopyFile sourcePath, path, true
[<IP_ADDRESS>]  echo.Set objFSO = Nothing
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.Else
[<IP_ADDRESS>]  echo.Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
[<IP_ADDRESS>]  echo.Set wshShell = CreateObject( "WScript.Shell" )
[<IP_ADDRESS>]  echo.Set objUserVariables = wshShell.Environment("USER")
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.rem http proxy is optional
[<IP_ADDRESS>]  echo.rem attempt to read from HTTP_PROXY env var first
[<IP_ADDRESS>]  echo.On Error Resume Next
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.If NOT (objUserVariables("HTTP_PROXY") = "") Then
[<IP_ADDRESS>]  echo.proxy = objUserVariables("HTTP_PROXY")
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.rem fall back to named arg
[<IP_ADDRESS>]  echo.ElseIf NOT (WScript.Arguments.Named("proxy") = "") Then
[<IP_ADDRESS>]  echo.proxy = WScript.Arguments.Named("proxy")
[<IP_ADDRESS>]  echo.End If
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.If NOT isNull(proxy) Then
[<IP_ADDRESS>]  echo.rem setProxy method is only available on ServerXMLHTTP 6.0+
[<IP_ADDRESS>]  echo.Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0")
[<IP_ADDRESS>]  echo.objXMLHTTP.setProxy 2, proxy
[<IP_ADDRESS>]  echo.End If
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.On Error Goto 0
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.objXMLHTTP.open "GET", url, false
[<IP_ADDRESS>]  echo.objXMLHTTP.send()
[<IP_ADDRESS>]  echo.If objXMLHTTP.Status = 200 Then
[<IP_ADDRESS>]  echo.Set objADOStream = CreateObject("ADODB.Stream")
[<IP_ADDRESS>]  echo.objADOStream.Open
[<IP_ADDRESS>]  echo.objADOStream.Type = 1
[<IP_ADDRESS>]  echo.objADOStream.Write objXMLHTTP.ResponseBody
[<IP_ADDRESS>]  echo.objADOStream.Position = 0
[<IP_ADDRESS>]  echo.Set objFSO = Createobject("Scripting.FileSystemObject")
[<IP_ADDRESS>]  echo.If objFSO.Fileexists(path) Then objFSO.DeleteFile path
[<IP_ADDRESS>]  echo.Set objFSO = Nothing
[<IP_ADDRESS>]  echo.objADOStream.SaveToFile path
[<IP_ADDRESS>]  echo.objADOStream.Close
[<IP_ADDRESS>]  echo.Set objADOStream = Nothing
[<IP_ADDRESS>]  echo.End If
[<IP_ADDRESS>]  echo.Set objXMLHTTP = Nothing
[<IP_ADDRESS>]  echo.End If
[<IP_ADDRESS>] ) 1>C:/chef\wget.vbs
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>(
[<IP_ADDRESS>] echo.param(
[<IP_ADDRESS>]  echo.   [String] $remoteUrl,
[<IP_ADDRESS>]  echo.   [String] $localPath
[<IP_ADDRESS>]  echo.)
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.$ProxyUrl = $env:http_proxy;
[<IP_ADDRESS>]  echo.$webClient = new-object System.Net.WebClient;
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.if ($ProxyUrl -ne '') {
[<IP_ADDRESS>]  echo.  $WebProxy = New-Object System.Net.WebProxy($ProxyUrl,$true)
[<IP_ADDRESS>]  echo.  $WebClient.Proxy = $WebProxy
[<IP_ADDRESS>]  echo.}
[<IP_ADDRESS>]  echo.
[<IP_ADDRESS>]  echo.$webClient.DownloadFile($remoteUrl, $localPath);
[<IP_ADDRESS>] ) 1>C:/chef\wget.ps1
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>(
[<IP_ADDRESS>]
[<IP_ADDRESS>]
[<IP_ADDRESS>]
[<IP_ADDRESS>] )
[<IP_ADDRESS>] Detected Windows Version 10.0 Build 17763
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>goto Version10.0
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>goto architecture_select
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>IF "AMD64" == "x86" IF not defined PROCESSOR_ARCHITEW6432
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>goto chef_installed
[<IP_ADDRESS>] Checking for existing Chef Infra Client installation
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>WHERE chef-client  1>nul 2>nul
[<IP_ADDRESS>]
[<IP_ADDRESS>] C:\Users\Administrator\Documents>If !ERRORLEVEL! == 0 (
[<IP_ADDRESS>]
[<IP_ADDRESS>]  goto key_create
[<IP_ADDRESS>] )  else (
[<IP_ADDRESS>]
[<IP_ADDRESS>]  goto install
[<IP_ADDRESS>] )
[<IP_ADDRESS>] No existing installation of Chef Infra Client detected
[<IP_ADDRESS>] Checking for existing downloaded package at "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] No existing downloaded packages to delete.
[<IP_ADDRESS>] Attempting to download client package using PowerShell if available...
[<IP_ADDRESS>] powershell.exe -ExecutionPolicy Unrestricted -InputFormat None -NoProfile -NonInteractive -File  C:/chef\wget.ps1 "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] Windows PowerShell
[<IP_ADDRESS>] Copyright (C) Microsoft Corporation. All rights reserved.
[<IP_ADDRESS>]
[<IP_ADDRESS>] Warning: Failed to download "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" to "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
[<IP_ADDRESS>] Warning: Retrying download with cscript ...
[<IP_ADDRESS>] Input Error: Can not find script file "C:\chef\wget.vbs".
ERROR: The following error occurred on <IP_ADDRESS>:
ERROR: cmd.exe : The syntax of the command is incorrect.
+ CategoryInfo          : NotSpecified: (The syntax of the command is incorrect.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
The system cannot find the path specified.
The system cannot find the path specified.
The argument 'C:/chef\wget.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the -File parameter.
Failed download: download completed, but downloaded file not found
Failed to download "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=current&v=16.1.7" with status code 1.
Exiting without bootstrapping due to download failure.

@AnamikaN Sorry, Chef Workstation doesn't have Chef v15.11.3 or 16.1.7 in any builds yet. If you're using Chef Workstation. So you'll want to try Chef Workstation 0.16.33, which contains Chef 15.8 which was before the regression. https://downloads.chef.io/chef-workstation/stable/0.16.33#mac_os_x

@btm Thank you so much!! I made some progress.
Now it is throwing some other error. Looks like an issue with networking on  windows node. I am trying to fix it. But just in case, anyone here aware of the same problem and have resolved this before, can throw some ideas.
The following error occurred on <IP_ADDRESS>:
ERROR: cmd.exe : Exception calling "DownloadFile" with "2" argument(s): "Unable to connect to the remote server"
+ CategoryInfo          : NotSpecified: (Exception calli... remote server":String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
At C:\chef\wget.ps1:14 char:1
+ $webClient.DownloadFile($remoteUrl, $localPath);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
   Failed download: download completed, but downloaded file not found
   C:\chef\wget.vbs(47, 1) msxml6.dll: A connection with the server could not be established

   Failed download: download completed, but downloaded file not found
   Exiting without bootstrapping due to download failure.

I fixed the DNS name issue on windows node. I can run this command successfully on windows node-
C:\Users\Administrator\Documents>powershell.exe -ExecutionPolicy Unrestricted -InputFormat None -NoProfile -NonInteractive -File  C:\chef\wget.ps1 "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=stable&v=15" "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
C:\Users\Administrator\Documents>
But it is not working from knife bootstrap.

I fixed the DNS name issue on windows node.

What do you mean by that?

I fixed the DNS name issue on windows node.

What do you mean by that?

I did following settings on windows node. Found this in one of the article-
If your ISP is having issues with its DNS service, switching to OpenDNS' DNS will get you back online in just a few quick steps.
Select Control Panel from the Start menu.
Click Network Connections from the Control Panel choices.
Choose your connection from the Network Connections window.
If you have more than one, choose your default/current connection.
Click Properties button.
Select Internet Protocol (TCP/IP) and click Properties.
Click the radio button Use the following DNS server addresses and type <IP_ADDRESS> and <IP_ADDRESS> in the Preferred DNS server and Alternate DNS server fields.
Click OK

I hear you saying that this works locally but not over knife bootstrap. But this is most likely a networking issue that isn't related to knife bootstrap. There is a chance it's not, but
   Failed download: download completed, but downloaded file not found
   C:\chef\wget.vbs(47, 1) msxml6.dll: A connection with the server could not be established

   Failed download: download completed, but downloaded file not found
   Exiting without bootstrapping due to download failure.

This command might be useful in debugging network issues over winrm:
knife winrm -m HOSTNAME COMMAND -x USERNAME -P PASSWORD

e.g.
knife winrm -m HOSTNAME ping www.chef.io -x USERNAME -P PASSWORD

@btm Yes i was able to see some DNS issue on Target windows node. I fixed those by using open DNS server. And i can successfully ping the server now.
Also able to download file using below command.
powershell.exe -ExecutionPolicy Unrestricted -InputFormat None -NoProfile -NonInteractive -File  C:\chef\wget.ps1 "https://www.chef.io/chef/download?p=windows&pv=2016&m=x86_64&DownloadContext=PowerShell&channel=stable&v=15" "C:\Users\ADMINI~1\AppData\Local\Temp\chef-client-latest.msi"
But bootstrap is still not working.

Having the same original issue:
ERROR: cmd.exe : The system cannot find the batch label specified - key_create
when executing
chef> knife bootstrap -o winrm ServerFQDN --node-name NodeName --winrm-user "user" --winrm-password "Pa$$W0rd"
Workstation: Windows 10 Enterprise, version 10.017763 Build 17763
Bootstrap target: Windows Server 2019 Standard, version 10.0.17763 Build 17763
chef -v
Chef Workstation version: 0.18.3
Chef Infra Client version: 15.10.12
Chef InSpec version: 4.18.111
Chef CLI version: 2.0.10
Test Kitchen version: 2.5.0
Cookstyle version: 6.3.4
Suggestions for next steps

@opalus Can you try installing the latest current channel release of Workstation. We've packaged several bootstrap changes in that release:
https://downloads.chef.io/chef-workstation/current

Downloaded and installed the latest version:
chef -v
Chef Workstation version: 20.5.52
Chef Infra Client version: 16.1.16
Chef InSpec version: 4.18.114
Chef CLI version: 3.0.1
Test Kitchen version: 2.5.1
Cookstyle version: 6.5.3
New error:
[serverFQDM] C:\Users\UserName\Documents>chef-client -c C:\chef/client.rb -j C:\chef/first-boot.json
[serverFQDM] [2020-05-28T12:18:39-04:00] FATAL: Errno::EINVAL: Invalid argument @ dir_s_mkdir - C:ef
ERROR: The following error occurred on serverFQDN:
ERROR:
It wrote a client.rb file containing:
chef_server_url  "https://api.chef.io/organizations/umrms"
validation_client_name "Node-validator"
file_cache_path   "C:\chef/cache"
file_backup_path  "C:\chef/backup"
cache_options     ({:path => "C:\chef/cache/checksums", :skip_expires => true})
chef_license "accept"
node_name "NodeName"
log_level        :auto
log_location       STDOUT
I fixed the client.rb path syntax and "chef-client -c C:\chef\client.rb -j C:\chef\first-boot.json" ran successfully manually on the client. Is there anything that comes after this in the bootstrap or is this the last item? Thanks

@opalus @btm @tas50  @vsingh-msys It is working for me now. All errors are gone. I am using current release of chef workstation.


application crashes in builtin bridge type from dependency package HandyJSON

Hello @sacOO7 , We're experiencing a couple of crash due to handy JSON. can you please check this  - PFA screen shot of report

I've also raised this issues in Handy JSON https://github.com/alibaba/HandyJSON/issues/272

Hi @tech4solitude , will surely look into it 👍 . I am not sure, why it will be causing this issue.... It is a stable library.

@sacOO7  Thank you - Please update it here - if you find anything

Meanwhile it will be really useful if you can reproduce the issue locally.
In the error log it's saying, that it is something related to empty list.
Can you check it once again?
On Jul 26, 2018 12:28 PM, "Punith B M"<EMAIL_ADDRESS>wrote:

@sacOO7 https://github.com/sacOO7 Thank you - Please update it here -
if you find anything
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sacOO7/socketcluster-client-swift/issues/13#issuecomment-407996757,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AP8vSZ4X4EH_NoeTE6D7SyfZUCRriXXmks5uKWh6gaJpZM4VhCJo
.

@sacOO7  Sure thanks alot - meanwhile I'm also checking to reproduce the crashes

Also as a suggestion, You could also try SwiftyJSON once which is similar to HandyJSON

Actually I was planning to use SwiftyJson at first. But it does not allow to direct conversion from json to object. User need to write code that specifies mapping. It's not a good way to mention keys everytime a mapping is made. It creates problem while refactoring. In other languages, there are JsonMappers available to map object to json and vice versa. You can check this one https://www.newtonsoft.com/json.

@sacOO7  Ok got it..  Make sense

Hi @tech4solitude, you were able to get any updates on this?

@sacOO7  Nope - Tried couple of times - Didn't crash for me - Not sure when it'll crash

Will be closing the issue, if your app is working fine 👍

It has not crashed after update

Hi @tech4solitude , I will be closing the issue... since there are no updates regarding this...

Please open new issue, if you find any bugs in library


TS-4746: ParentRecord *secondary_parents malloc, but no place free,which will cause memery leak

ParentRecord *secondary_parents malloc, but no place free,which will cause memery leak

Just to be picky, but we should avoid typos in the commit messages (memory, not memory). I also think this could be simplified to just e.g.
4746 Fixes ParentRecord *secondary_parents memory leak

Also, I'm pretty sure this would fail the CI build, please run "make clang-format" on the code, and push this again with the updated commit message.
Thanks!

I don't think the NULL check on the pointer is required as ats_free does that under the hood.

Closing this PR on behalf of keith2008 due to merge conflicts.  I am creating a new PR for this.


Cannot install cask from tap

Hi, thanks for creating nix-homebrew!
I'm using nix-homebrew.mutableTaps = false, and I had difficulty when adding mtslzr/homebrew-marmaduke-chromium tap and trying to install marmaduke-chromium.
It fails with this following message:
Installing marmaduke-chromium
Warning: Cask 'marmaduke-chromium' is unavailable: No Cask with this name exists.
Error: No casks found for marmaduke-chromium.
==> Searching for similarly named casks...
Installing marmaduke-chromium has failed!

here's the relevant portion of my config:
{
  inputs = {
    ...
    ...
    marmaduke-chromium = {
      url = "github:mtslzr/homebrew-marmaduke-chromium";
      flake = false;
    };
  }
}

{
  ...
  modules = [
    ...
    nix-homebrew.nix-homebrew
    {
      nix-homebrew.enable = true;
      nix-homebrew.user = "maman";
      nix-homebrew.taps = {
        "mtslzr/marmaduke-chromium" = inputs.marmaduke-chromium;
        "homebrew/homebrew-core" = inputs.homebrew-core;
        "homebrew/homebrew-cask" = inputs.homebrew-cask;
        "homebrew/homebrew-bundle" = inputs.homebrew-bundle;
      };
      nix-homebrew.mutableTaps = false;
    }
  ]

{
  ...
  homebrew = {
    enable = true;
    global = {
      autoUpdate = false;
    };
    onActivation = {
      autoUpdate = false;
      upgrade = false;
      cleanup = "zap";
    };
    ...
    casks = [
      ...
      "marmaduke-chromium"
    ];
  }
}

when inspecting /usr/local/Homebrew/Library/Taps/mtslzr/marmaduke-chromium/Casks, I can see the homebrew recipes:
$ ls -als /usr/local/Homebrew/Library/Taps/mtslzr/marmaduke-chromium/Casks/
total 24
0 dr-xr-xr-x  5 root  nixbld  160 Jan  1  1970 .
0 dr-xr-xr-x  7 root  nixbld  224 Jan  1  1970 ..
8 -r--r--r--  2 root  nixbld  434 Jan  1  1970 marmaduke-chromium-nosync.rb
8 -r--r--r--  2 root  nixbld  401 Jan  1  1970 marmaduke-chromium-ungoogled.rb
8 -r--r--r--  2 root  nixbld  381 Jan  1  1970 marmaduke-chromium.rb

but brew search marmaduke-chromium can't see it (same with nix-darwin's homebrew cask install step above):
$ brew search marmaduke-chromium
Error: No formulae or casks found for "marmaduke-chromium".

do you have any pointers?

I too have the same or similar problem.  I cant install a formula from a tap.
Tap: smithy-lang/hombrew-tap
Formula:  smithy-cli.
Failure
...
Using mas
Warning: 'smithy-cli' formula is unreadable: No available formula with the name "smithy-cli". Did you mean mist-cli?
Installing smithy-cli
Warning: 'smithy-cli' formula is unreadable: No available formula with the name "smithy-cli". Did you mean mist-cli?
Warning: No available formula with the name "smithy-cli". Did you mean mist-cli?
==> Searching for similarly named formulae...
==> Formulae
mist-cli

To install mist-cli, run:
  brew install mist-cli
Installing smithy-cli has failed!
Using google-chrome
Using imagealpha
Using imageoptim
...

The tap appears to be installed, however when trying to install the formula brew or homebrew-bundle has no knowledge that the tap exists on my system.
/opt/homebrew/Library/Taps

❯ tree .
.
├── homebrew
│   ├── homebrew-bundle -> /nix/store/c8mwcknp92fg5kmkqbvci1zxnfy6xkwn-source
│   ├── homebrew-cask -> /nix/store/gqf6q6x2nza0f5rdxvcg46y7mfahkk2i-source
│   └── homebrew-core -> /nix/store/zw5xny8vclabk7lrvi0c3khlcsss3gxw-source
└── smithy-lang
    └── tap -> /nix/store/986w1dbzj9ji6c1jl27cf0s5nilhi12b-source

Here is the relevant portion of my config:
   ...
   nix-homebrew.darwinModules.nix-homebrew
    {
      nix-homebrew = {
        enable = true;
        enableRosetta = true;
        user = "${user}";
        taps = {
          "smithy-lang/tap" = pkgs.fetchFromGitHub {
            owner = "smithy-lang";
            repo = "homebrew-tap";
            rev = "main";
            sha256 = "QsIDIQotAFe8iY1NvhdwL8BCkUic5VrMjxzLDFKtOhk=";
          };
          "homebrew/homebrew-core" = homebrew-core;
          "homebrew/homebrew-cask" = homebrew-cask;
          "homebrew/homebrew-bundle" = homebrew-bundle;
        };
        mutableTaps = false;
        autoMigrate = false;
      };
    }
   ...

  homebrew = {
    enable = true;

    global = {
      brewfile = true;
      autoUpdate = false;
    };

    onActivation = {
      autoUpdate = false;
      upgrade = false;
      cleanup = "zap";
    };

    brewPrefix = "/opt/homebrew/bin";

    masApps = {
      "Bitwarden" =<PHONE_NUMBER>;
    };

    brews = with pkgs; [
      "smithy-cli"
    ];

    casks = with pkgs; [
      {
        name = "google-chrome";
        greedy = true;
      }
      "imagealpha"
      "imageoptim"
      "iterm2"
    ];

Brewfile
❯ bat /nix/store/25i8ccs08amfmxlzbb8cyzhw078vgqip-Brewfile
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /nix/store/25i8ccs08amfmxlzbb8cyzhw078vgqip-Brewfile
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ # Created by `nix-darwin`'s `homebrew` module
   2   │
   3   │ # Brews
   4   │ brew "mas"
   5   │
   6   │ # Casks
   7   │ cask "google-chrome", greedy: true
   8   │ cask "imagealpha"
   9   │ cask "imageoptim"
  10   │ cask "iterm2"
  12   │
  13   │ # Mac App Store apps
  14   │ mas "Bitwarden", id:<PHONE_NUMBER>
  15   │
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Brew Config
❯ brew config
HOMEBREW_VERSION: 4.2.16
ORIGIN: (none)
HEAD: (none)
Last commit: never
Core tap origin:
Core tap HEAD: (none)
Core tap last commit: never
Core tap branch: (none)
Core tap JSON: 17 May 12:31 UTC
Core cask tap origin:
Core cask tap HEAD: (none)
Core cask tap last commit: never
Core cask tap branch: (none)
Core cask tap JSON: 17 May 12:31 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_REPOSITORY: /opt/homebrew/Library/.homebrew-is-managed-by-nix
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: vim
HOMEBREW_MAKE_JOBS: 12
HOMEBREW_NO_AUTO_UPDATE: set
HOMEBREW_NO_INSTALL_FROM_API: set
Homebrew Ruby: 3.1.4 => /nix/store/13wkzs6y9pm2g5v88cc0kngvlhxc3zp9-ruby-3.1.4/bin/ruby
CPU: dodeca-core 64-bit arm_blizzard_avalanche
Clang: 15.0.0 build 1500
Git: 2.42.0 => /nix/store/f78v4xb0dpcqkw9bfya3wg1lncqzfb80-git-2.42.0/bin/git
Curl: 8.4.0 => /usr/bin/curl
macOS: 14.3.1-arm64
CLT: <IP_ADDRESS>.1.1700200546
Xcode: N/A
Rosetta 2: false

I've tried adding the Tap prefix but brew or brew-bundle attempts to install the tap.
    ...

    brews = with pkgs; [
       "smithy-lang/tap/smithy-cli"
    ];

    ...

Failure
Homebrew bundle...
Using mas
Installing smithy-lang/tap/smithy-cli
Warning: 'smithy-lang/tap/smithy-cli' formula is unreadable: No available formula with the name "smithy-lang/tap/smithy-cli".
Please tap it and then try again: brew tap smithy-lang/tap
==> Tapping smithy-lang/tap
fatal: could not create leading directories of '/opt/homebrew/Library/Taps/smithy-lang/homebrew-tap': Permission denied
Error: Failure while executing; `git clone https://github.com/smithy-lang/homebrew-tap /opt/homebrew/Library/Taps/smithy-lang/homebrew-tap --origin=origin --template= --config core.fsmonitor=false` exited with 128.
Installing smithy-lang/tap/smithy-cli has failed!
Using google-chrome
Using imagealpha
Using imageoptim
Using iterm2
Homebrew Bundle failed! 1 Brewfile dependency failed to install.

Missed this one. In Homebrew, the repo part of all taps always have homebrew- prepended. The mtslzr/marmaduke-chromium tap refers to the https://github.com/mtslzr/homebrew-marmaduke-chromium repo and should be stored under mtslzr/homebrew-marmaduke-chromium. Therefore, the following config should work:
       nix-homebrew.taps = {
-        "mtslzr/marmaduke-chromium" = inputs.marmaduke-chromium;
+        "mtslzr/homebrew-marmaduke-chromium" = inputs.marmaduke-chromium;


Add Example Code to Wiki

Would be handy to see patterns/examples of certain files in the wiki, e.g. setting up collections, security patterns, etc.

Working on this but open to contributions as well. Looking to catalog some common patterns used in Meteor apps to answer the "what's the best way to do ____." Not necessarily "best practices," but rather, "here's what's worked for me."

Closing this. This is more or less covered by snippets on the site now.


FIlter by : NOT Segment

Hello Oro Team,
Is there currently a way to build a marketing list using a pre-existing filter to exclude contacts  ? ( eg myField=123 AND NOT  My Segment)
Thanks,
Samuel

@sadortun Nope. But it is a good feature request.

@artml  Little bit that two years later, i've got it working ! I'll submit a PR in a few days

Hi @sadortun good feature, very useful for users.
We also added this feature in our customization. User also can apply segment to relation (i.e. case->contact ...), and select "NOT IN", "IN" in  drop-down list.

@vtsykun awesome !  Would you be OK sharing your custom implementation ?  I am also curious to see what other filters you have implemented

@artml Got the feature working, and it's great !
Are you interested ?  You probably will have to do some improvement since i am not 100% familiar with the platform internals.


Check for very large fonts

Hi,
Right now there is an LV_FONT_FMT_TXT_LARGE switch in LVGL to choose between a more compact description of glyphs or a larger one for large fonts.
It was already reported several times that LVGL is not working with large fonts but only LV_FONT_FMT_TXT_LARGE needed to be enabled.
I wonder if we could do a check in the generated fonts like:
#if (LV_FONT_FMT_TXT_LARGE == 0)
# error "Too large font or glyphs in <font_name>. Enable LV_FONT_FMT_TXT_LARGE in lv_conf.h")
#endif

These line neds to added if
bitmap_array_size >= 1024 * 1024
any adv_w > 4096
any abs(ofs_x) or abs(ofs_y) > 127
any box_w or box_h > 255

Let me know what you think.

If this is preferable solution for you, i see no principal problems. --format lvgl is based on your demands, and until it not break spec i don't care what happens inside.

What about switch to binary format and drop text one with all it's hacks? In v9, when tests arranged. Or you still think text format has some advantages?

If this is preferable solution for you, i see no principal problems. --format lvgl is based on your demands, and until it not break spec i don't care what happens inside.

Great!
Is it something you can add quickly or shall I play with it?

What about switch to binary format and drop text one with all it's hacks? In v9, when tests arranged. Or you still think text format has some advantages?

We need to estimate its impact on performance. Right now the details are not in my head so can't say anything about it.
Anyway, we can put it to the roadmap to discuss it.

Is it something you can add quickly or shall I play with it?

If it's not urgent, i can add in 1-2 weeks. May be sooner, but not sure.

We need to estimate its impact on performance. Right now the details are not in my head so can't say anything about it.
Anyway, we can put it to the roadmap to discuss it.

If now performance is the only concern for you, please add to roadmap. I think, this will not be a big deal. ~ to v9+ (without tests this will be fragile).

If it's not urgent, i can add in 1-2 weeks. May be sooner, but not sure.

It's not that urgent, so 1-2 weeks is perfect. Thank you in advance.

If now performance is the only concern for you, please add to roadmap. I think, this will not be a big deal. ~ to v9+ (without tests this will be fragile).

Added: https://github.com/lvgl/lvgl/blob/master/docs/ROADMAP.md

https://github.com/lvgl/lv_font_conv/commit/c23c5b95f7b173582722953849c95f8dc071c660
Could you check if it works as you need? (dev branch)

@kisvegabor thanks for review. Please check fixes (force-pushed)

Thanks! I got this error:
> lv_font_conv --font ../Roboto-Regular.woff --range 0x20-0x100 --size 100 --bpp 4 --format lvgl --output a.c
TypeError: Cannot read property 'glyph' of undefined
    at LvFont.large_format_guard (/home/kisvegabor/.nvm/versions/node/v11.2.0/lib/node_modules/lv_font_conv/lib/writers/lvgl/lv_font.js:37:15)
    at LvFont.toLVGL (/home/kisvegabor/.nvm/versions/node/v11.2.0/lib/node_modules/lv_font_conv/lib/writers/lvgl/lv_font.js:85:8)
    at Object.write_images [as lvgl] (/home/kisvegabor/.nvm/versions/node/v11.2.0/lib/node_modules/lv_font_conv/lib/writers/lvgl/index.js:15:25)
    at convert (/home/kisvegabor/.nvm/versions/node/v11.2.0/lib/node_modules/lv_font_conv/lib/convert.js:25:35)

Ups... sorry. Try bugfix. A least, it now injects condition with --size 400

It works well, thank you!

Published

Thank you very much!
I've also updated the online converter.


Cleanup palindrom

Fixes #224

The tests are failing.

I'm not done and I don't think it's a good idea to touch this PR before merging #228 as conflicts will blow up in my face anyways :\

This is ready for review after a long long painful journey. Two tests are flaky but I'm looking into them and they should be easy to fix.
This PR will make Palindrom much cleaner and more modern. Also, it made the bundle size go down from 50.2KB to 38KB. And uses native fetch :D

"Test With Apps" is failing: https://teamcity.starcounter.org/viewLog.html?buildId=95940&buildTypeId=Apps_WebPlatform_Palindrom_TestWithApps
I tried testing PR manually with UniformDocs and it fails after any local change. Am I doing something wrong?

Fixed tests and only one flaky test left in Firefox. I also addressed most review comments (the ones I put :+1: on) and I'll proceed tomorrow.

@tomalec can you please finish this PR?

@warpech I addressed all comments with :+1:, commented the others. I believe it's now ready for the review.
Questions to be answered:

[ ] https://github.com/Palindrom/Palindrom/pull/227#discussion_r286487293
[ ] https://github.com/Palindrom/Palindrom/pull/227#discussion_r287365804

Sorry that it took that long.

All comments addressed, except https://github.com/Palindrom/Palindrom/pull/227#discussion_r288196661, but I think Number.MAX_SAFE_INTEGER + 1 is fine, as it's done even at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

Let's address TODOs in separate issue, I believe they were not introduced here.


Windows

Windows

cargo run --example most_basic-> - ``error[E0432]: unresolved import `net2::unix```

Thruster is only Linux ?
Ami44

I'll have to get a VM to test this one, but that shouldn't be the case.

ok, but not "urgent"

i confirm, it's ok
thanks
ami44


Add robe pointe

Based on this specs: http://www.robe.cz/fileadmin/robe/downloads/dmx_charts/Robin_Pointe_DMX_charts.pdf

Thanks, I will fix one omission in a moment.

I've fixed some details. Would you please fill in gobos where possible (from the built-in gobos folder)?


fix: cannot create iptable chain in some environment

What type of PR is this?

/kind bug
What does this PR do?

Which issue(s) does this PR fix?

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

/cc  @GreatLazyMan

/lgtm

/approve


[Feature]: Single file template

What's missing?
I used to have a single file template for the old jupyterWith. I found this more convenient than adding a kernels folder with separate files when I just need 2-3 Python packages available. It would be great to have such a template available.
Possible solution
No response
Alternatives
No response
Additional context
No response

I think this is already possible, using mkJupyterlab function. We should document it, but I wouldn't change the template (or add additional template).

The previous version of jupyterWith followed the typical setup with a single flake which made writing https://github.com/collinarnett/stable-diffusion-nix very simple. I agree with @MMesch that there should be an example in a single flake so it makes migration from the previous version simple without intimate knowledge of nix or having to read the source of jupyterWith.


tandfonline has wrong DOI extracted

https://www.tandfonline.com/doi/full/10.1080/17425247.2017.1260118
result: https://sci-hub.ru/10.1080/iedd20.v014.i08

Duplicate of #22


KDI: Integrate hwi for signing

Signing not working for Trezor and Ledger tested.

Also it shows "invalid bitcoin address"

Also, the signing is working intermittently. When signed, the screen stays on the waiting screen and should come to the signing keys screen.

Trezor keypad should not be numbered.


[API] Non-specific exception throws in actors

The current actor model requires them to use a set of predefined exceptions if a checked exception is to be thrown.
This is inherited from earlier designs of the API and currently doesn't really serve any purpose apart from making the API stricter than it needs to. Using a more general Exception as part of the actor's interface signatures would be a big step towards a more inclusive model allowing for less Flow-specific code to be needed.

Resolved by https://github.com/noleme/noleme-flow/pull/42


Remove empty directories from release zip

This was a regression from #6383, when nodir was removed from globby but I accidentally removed it from direct gulp.src calls as well.
Reported on the forum: https://groups.google.com/d/msg/cesium-dev/709bHz4P_nQ/JMauc6bjAwAJ

@mramato, thanks for the pull request! Maintainers, we have a signed CLA from @mramato, so you can review this at any time.
:warning: I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:


Fix serialization bug with lists in components

Partially fixes #1945

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/276/
Hooray Jenkins reported success with all tests good!

In what way does this "partially" fix the problem? What is fixed and what is not?

The list bug is fixed by this commit alone.
To deserialize "complex" components such as quests, other means are required as well, for example #1948.


No Output in Default Sublime Build Window

OS:
Windows 7
Sublime 2.0
Works in terminal.
Low priority.
See gif.  When running under default python build env runs without error but not of the links show up.
from box import Box

class Job(object):
	"""Configure the job object via runner."""
	def __init__(self, **kwargs):
		self.job = Box(kwargs)

job = {
	'uuid': None,
	'started' : None,
	'force_stop': None,
	'created_by ': None,
	'created_date': None,
	'status': 'Building',
	'last_saved': None,
	'debug': True,
	'human_name': "Refusa Record Extractor - Restaurant SIC Codes",
	'record_tag': 'refusa-restaurant',
	'error_count': 0,
	'last_error': None,
	'extraction_last_event': None,
	'extraction_average_time': 0,
	'extraction_completion_time': 0, #Seconds
	'extraction_total_records': 0,
	'extraction_duplicate_records': None,
	'search_total_records_found': None,
	'page_current' : None,
	'page_last' : None,
	'driver' : None,
	'pending_tasks':[],
	'task': {
		'inputs': {
			'load_page': { 'url': "https://google.com" },
			'screenshot_as_base64' : { 'file_name' : None, }
		},
		'outputs': {
			'generate_refind_key' : None,
			'add_tag_record': None,
			'save_record': None,
			'refind_record': None,
		}
	},
	'completed_tasks':[],
}

tjob = Job(**job)

tjob.job.status
tjob.job.error_count
tjob.job.task.inputs.load_page.url
tjob.job.human_name
tjob.job.task.inputs.screenshot_as_base64.file_name

I think this is expected behavior. This is the same as just doing:
job["status"]
So when in a console, it will default show the output if there is no action being taken. but in a script to get it to go to stdout you would have to do:
`
print(job["status"])
or
print(tjob.job.status)
`
Is that what you mean / think is going on?
Thanks for the gif btw, would have been very hard to wrap my head around without it 👍

Yeah when I add print we're all good.   I can see the keys value.   Closing this.   I'll make the gifs smaller in the future.
Thanks!
Casey


gridded colour t-shirt thing

like in this video - https://www.youtube.com/watch?v=dFBQzRNsMK0

i might've meant this one:


bug: Switching to graphql-dgs-spring-graphql-starter breaks Upload GraphQL scalar

Expected behavior
Should work like before, as described by the documentation.
Actual behavior
Since switching from graphql-dgs-spring-boot-starter to graphql-dgs-spring-graphql-starter, we now have a runtime error at the start of our application, stating There is no scalar implementation for the named  'Upload' scalar type. We have followed the documentation and it was working before the switch.
Steps to reproduce

Following this doc : https://netflix.github.io/dgs/advanced/file-uploads/
Using codegen, we also added Upload: "org.springframework.web.multipart.MultipartFile" to the typeMapping plugin configuration
In our data-fetcher, we receive a MultipartFile as input, which does compile

We are using Gradle with Kotlin and are on the latest version of both dgs codegen (6.1.6), dgs framework (8.5.6) and spring-boot (3.2.4). Here are all the dgs libraries that we are using :
implementation("com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter")
implementation("com.netflix.graphql.dgs:graphql-dgs-extended-scalars")
implementation("com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer")
implementation("com.netflix.graphql.dgs:graphql-dgs-pagination")

We are also using the spring-boot-starter-web library.

WIth spring-graphql, you now need to add an external dependency for file uploads: https://netflix.github.io/dgs/spring-graphql-integration/#file-uploads

Wow thanks for the quick response! Should that section also be part of the "File Uploads" specific documentation page? Or at least a link that refers the page you mentioned?

Yes, that's a good idea. I will fix that.
On Fri, Apr 19, 2024 at 1:41 PM Gab S. @.***> wrote:

Wow thanks for the quick response! Should that section also be part of the
"File Uploads" specific documentation page? Or at least a link that refers
the page you mentioned?
—
Reply to this email directly, view it on GitHub
https://github.com/Netflix/dgs-framework/issues/1889#issuecomment-2067256649,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ5JPXNPUYYG4RPKN34EPDTY6F6NXAVCNFSM6AAAAABGPZIU7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRXGI2TMNRUHE
.
You are receiving this because you commented.Message ID:
@.***>


Re-factored build script and build environment

Added individual build scripts to build each component
Each build script can be called globally, as they are
symlinked in /usr/sbin
You can call build_all globally to run each build script
Eventually, the build_all script should be replaced with
a makefile so that the user does not have to choose or
manage each build script
Additionally added edge-core to the build
The addition of edge-core requires a mbed_cloud_dev_credentials.c
file

Refer to this link for build results (access rights to CI server needed):
https://edge-jenkins.isgtesting.com/job/test_team-build-maestro/51/

This will not be merged into maestro.
Instead will be staged in: https://github.com/armPelionEdge/dev-pelion-edge


Now that pip has a real dependency resolver...

hand it all dependencies in a single command so that resolver can do its magic.
https://pypi.org/project/virtualenv is now at v20.6.0 so is the special install still needed?
Description

Development notes

Checklist

[ ] Read the contributing guidelines
[ ] Opened this PR as a 'Draft Pull Request' if it is work-in-progress
[ ] Updated the documentation to reflect the code changes
[ ] Added a description of this change and added my name to the list of supporting contributions in the RELEASE.md file
[ ] Added tests to cover my changes

Notice

[ ] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.

I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorised to submit this contribution on behalf of the original creator(s) or their licensees.

I certify that the use of this contribution as authorised by the Apache 2.0 license does not violate the intellectual property rights of anyone else.

Thank you for the contribution @cclauss!
Technically Kedro's test_requirements.txt calls requirements.txt, so I guess if we are to simplify this, we can do:
command: pip install --upgrade -r test_requirements.txt

Thank you @cclauss for the contribution and for your patience! ⭐


Full library being pulled

I've put the below in my podfile, but I'm still getting everything.  I just want the push stuff, not any of the UI related.
pod 'UrbanAirship-iOS-SDK/Core', '6.2.2-bitcode'

6.3.0-update will fix this.


has_unique_tag policy is not compatible with image stored in a private registry

Bug Description
I would like to release my operator only when it will be certified, so I am doing the pre-flight tests with private registry.
Unfortunately the policy has_unique_tag failed in this scenario.
Version and Command Invocation
Version : quay.io/opdev/preflight:1.1.0-alpha2

time="2022-03-03T18:03:53Z" level=info msg="check completed: HasUniqueTag" ERROR="GET https://index.docker.io/v2/library/jumphost.xxxx.xxx.xxx/tags/list?n=1000: UNAUTHORIZED: authentication required; [map[Action:pull Class: Name:library/jumphost.xxxx.xxx.xxx/ Type:repository]]" result="GET https://index.docker.io/v2/library/jumphost.xxxx.xxx.xxx/tags/list?n=1000: UNAUTHORIZED: authentication required; [map[Action:pull Class: Name:library/jumphost.xxxx.xxx.xxx Type:repository]]"

Steps to Reproduce:
preflight check container jumphost.xxxx.xxx.xxx:5000/my_operator:v2.1.1

@pierreblanc Thanks for creating an issue. This issue is due to how the registry is configured and not allowing request to /tags/list endpoint then an issue with this check itself.
If you run crane ls <registry/repo/image> or skopeo inspect docker://<registry/repo/image:tag> --debug you should get the same 401 error for the tags/list route.
With that said we are talking about this check specifically and will reply back once we know more. Hope that info helps. Let us know if you have any more questions.

@pierreblanc We looked further and it seems that crane the tool we are using, uses different options for pull vs list we will have a fix for this in the next day or so.

There isn't an issue with preflights implementation of crane.ListTags from an authorization prospective (ie username/password) for registries with authentication. Crane takes care of using the DefaultKeychain on the system for ListTags just like it does for Pull.
The main issue that was causing this was that preflight was doing custom parsing of the URI, and not taking into account the possibility of port numbers being supplied. The port issue was fixed as a part of issue #467.


Website: Patterns, Style, and Support not highlighting default page

Info
When you visit either the Patterns, Style, or Support links in the AppHeader, the default page for each is not highlighted in the Side Menu as being the active page.
This is also seen in this new PR for the new Foundations pages.
Acceptance Criteria:

Default pages when clicked in the AppHeader should indicate they are selected in the Side Menu

@ArakTaiRoth Might be fixed in #1973 , review after that is pushed

Closing this issue as it is resolved


Not working in webplayer app when put on web server

I successfully integrated GA in my Unity webapp, and when I run the app locally on my PC, I did see hit and screen log on Google Analytics Real-time Overview.
But when I put the webapp on my web server and run it again, I can not get any hit or log from GA (there's nothing shown on the GA Real-time overview page).
What might be the problem?

I have exactly same issue, but with no hits being logged when running my app on Android


Score: bug fixes and some usability and performance improvements

You can see the improved app on my own copy of the App Loader.
I only have a Bangle2 so I couldn't test it on Bangle1 (and I couldn't get it to work properly on the Bangle1 emulator either). This is the first app I modify so let me know if I missed anything, thanks!
One of the changes is the correction of the tiebreak alignment problem, I attach the before and after screenshots:

Nice, thank you!


Fail to Initialize at Launch

Godot version:
3.1 RC-1 Win32
OS/device including version:
OS: Windows 7 Professional
CPU: Intel Core i5-2320 32 Bit
GPU: Intel HD Graphics <IP_ADDRESS>29
Issue description:
Godot will not load. I receive an error:
Unable to Initialize Video Driver
Your video card driver does not support any of the supported OpenGL versions.
Please update your drivers or if you have an old or integrated GPU upgrade it.
Steps to reproduce:
Start app.

Minimal reproduction project:

You need to wait for Godot 3.1 RC 2 because it is fixed in master

Okay. Thank you.
On Sun, Mar 10, 2019, 3:54 PM Rafał Mikrut<EMAIL_ADDRESS>wrote:

You need to wait for Godot 3.1 RC 2 because it is fixed in master
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/26883#issuecomment-471343468,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWfO1wdAxm8vCdniou1rPFhpyaC_fs2mks5vVXECgaJpZM4bnfBC
.

Duplicate of #26806.


Add docs

Title - sorry, too late to write a detailed description.

Still a WIP. Should be more community driven, everyone should be writing docs as issues come up.


Problem installing the sdk with the latest setuptools version: 61.0.0

Describe the bug
I get an error message while installing the sdk:
Step 6/11 : RUN pip3 install --upgrade pip setuptools
 ---> Using cache
 ---><PHONE_NUMBER>2d
Step 7/11 : RUN pip3 install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git
 ---> Running in b08018f7dc9d
Collecting git+https://github.com/vmware/vsphere-automation-sdk-python.git
  Cloning https://github.com/vmware/vsphere-automation-sdk-python.git to /tmp/pip-req-build-gw9dacg8
  Running command git clone --filter=blob:none --quiet https://github.com/vmware/vsphere-automation-sdk-python.git /tmp/pip-req-build-gw9dacg8
  Resolved https://github.com/vmware/vsphere-automation-sdk-python.git to commit d8ee747115e2ad7505692723c60765824104e3b7
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [14 lines of output]
      error: Multiple top-level packages discovered in a flat-layout: ['lib', 'samples', 'sample_template'].

      To avoid accidental inclusion of unwanted files or directories,
      setuptools will not proceed with this build.

      If you are trying to create a single distribution with multiple packages
      on purpose, you should not rely on automatic discovery.
      Instead, consider the following options:

      1. set up custom discovery (`find` directive with `include` or `exclude`)
      2. use a `src-layout`
      3. explicitly set `py_modules` or `packages` with a list of names

      To find more information, look for "package discovery" on setuptools docs.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

pip3 installs the latest version of setuptools 61.0.0
When i hardcode the setuptools version to 60.10.0, the installation is no problem.
Step 6/11 : RUN pip3 install --upgrade pip setuptools==60.10.0
 ---> Running in be9822409742
Requirement already satisfied: pip in /usr/local/lib/python3.8/site-packages (21.1.3)
Collecting pip
  Downloading pip-22.0.4-py3-none-any.whl (2.1 MB)
Collecting setuptools==60.10.0
  Downloading setuptools-60.10.0-py3-none-any.whl (1.1 MB)
Installing collected packages: setuptools, pip
  Attempting uninstall: setuptools
    Found existing installation: setuptools 41.6.0
    Uninstalling setuptools-41.6.0:
      Successfully uninstalled setuptools-41.6.0
  Attempting uninstall: pip
    Found existing installation: pip 21.1.3
    Uninstalling pip-21.1.3:
      Successfully uninstalled pip-21.1.3
Successfully installed pip-22.0.4 setuptools-60.10.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Removing intermediate container be9822409742
 ---> e51df3c78084
Step 7/11 : RUN pip3 install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git
 ---> Running in 1f75f5cf4ed0
Collecting git+https://github.com/vmware/vsphere-automation-sdk-python.git
  Cloning https://github.com/vmware/vsphere-automation-sdk-python.git to /tmp/pip-req-build-lcie6y5y
  Running command git clone --filter=blob:none --quiet https://github.com/vmware/vsphere-automation-sdk-python.git /tmp/pip-req-build-lcie6y5y
  Resolved https://github.com/vmware/vsphere-automation-sdk-python.git to commit d8ee747115e2ad7505692723c60765824104e3b7
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Processing //tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/vapi-client-bindings/vapi_client_bindings-3.7.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/vapi-common-client/vapi_common_client-2.30.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/vmc-client-bindings/vmc_client_bindings-1.57.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/nsx-python-sdk/nsx_python_sdk-<IP_ADDRESS>.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/nsx-policy-python-sdk/nsx_policy_python_sdk-<IP_ADDRESS>.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/nsx-vmc-policy-python-sdk/nsx_vmc_policy_python_sdk-<IP_ADDRESS>.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/nsx-vmc-aws-integration-python-sdk/nsx_vmc_aws_integration_python_sdk-<IP_ADDRESS>.0-py2.py3-none-any.whl
Processing //tmp/pip-req-build-lcie6y5y/lib/vmc-draas-client-bindings/vmc_draas_client_bindings-1.18.0-py2.py3-none-any.whl
Requirement already satisfied: lxml>=4.3.0 in /usr/lib64/python3.8/site-packages (from vSphere-Automation-SDK==1.74.0) (4.4.1)
Requirement already satisfied: pyVmomi>=6.7 in /usr/local/lib/python3.8/site-packages (from vSphere-Automation-SDK==1.74.0) (7.0.2)
Requirement already satisfied: six>=1.7.3 in /usr/lib/python3.8/site-packages (from pyVmomi>=6.7->vSphere-Automation-SDK==1.74.0) (1.12.0)
Requirement already satisfied: requests>=2.3.0 in /usr/lib/python3.8/site-packages (from pyVmomi>=6.7->vSphere-Automation-SDK==1.74.0) (2.22.0)
Requirement already satisfied: setuptools in /usr/local/lib/python3.8/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.74.0) (60.10.0)
Requirement already satisfied: pyOpenSSL>=18.0.0 in /usr/local/lib/python3.8/site-packages (from vapi-runtime@ file://localhost//tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.74.0) (19.1.0)
Requirement already satisfied: cryptography>=2.8 in /usr/lib64/python3.8/site-packages (from pyOpenSSL>=18.0.0->vapi-runtime@ file://localhost//tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.74.0) (2.8)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python3.8/site-packages (from requests>=2.3.0->pyVmomi>=6.7->vSphere-Automation-SDK==1.74.0) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/lib/python3.8/site-packages (from requests>=2.3.0->pyVmomi>=6.7->vSphere-Automation-SDK==1.74.0) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3.8/site-packages (from requests>=2.3.0->pyVmomi>=6.7->vSphere-Automation-SDK==1.74.0) (1.25.7)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.8/site-packages (from cryptography>=2.8->pyOpenSSL>=18.0.0->vapi-runtime@ file://localhost//tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.74.0) (1.13.2)
Requirement already satisfied: pycparser in /usr/lib/python3.8/site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.8->pyOpenSSL>=18.0.0->vapi-runtime@ file://localhost//tmp/pip-req-build-lcie6y5y/lib/vapi-runtime/vapi_runtime-2.30.0-py2.py3-none-any.whl->vSphere-Automation-SDK==1.74.0) (2.19)
Using legacy 'setup.py install' for vSphere-Automation-SDK, since package 'wheel' is not installed.
Installing collected packages: vapi-runtime, vapi-common-client, vapi-client-bindings, vmc-draas-client-bindings, vmc-client-bindings, nsx-vmc-policy-python-sdk, nsx-vmc-aws-integration-python-sdk, nsx-python-sdk, nsx-policy-python-sdk, vSphere-Automation-SDK
  Attempting uninstall: vapi-runtime
    Found existing installation: vapi-runtime 2.25.0
    Uninstalling vapi-runtime-2.25.0:
      Successfully uninstalled vapi-runtime-2.25.0
  Attempting uninstall: vapi-common-client
    Found existing installation: vapi-common-client 2.25.0
    Uninstalling vapi-common-client-2.25.0:
      Successfully uninstalled vapi-common-client-2.25.0
  Attempting uninstall: vapi-client-bindings
    Found existing installation: vapi-client-bindings 3.6.0
    Uninstalling vapi-client-bindings-3.6.0:
      Successfully uninstalled vapi-client-bindings-3.6.0
  Attempting uninstall: vmc-draas-client-bindings
    Found existing installation: vmc-draas-client-bindings 1.17.0
    Uninstalling vmc-draas-client-bindings-1.17.0:
      Successfully uninstalled vmc-draas-client-bindings-1.17.0
  Attempting uninstall: vmc-client-bindings
    Found existing installation: vmc-client-bindings 1.45.0
    Uninstalling vmc-client-bindings-1.45.0:
      Successfully uninstalled vmc-client-bindings-1.45.0
  Attempting uninstall: nsx-vmc-policy-python-sdk
    Found existing installation: nsx-vmc-policy-python-sdk <IP_ADDRESS>.1
    Uninstalling nsx-vmc-policy-python-sdk-<IP_ADDRESS>.1:
      Successfully uninstalled nsx-vmc-policy-python-sdk-<IP_ADDRESS>.1
  Attempting uninstall: nsx-vmc-aws-integration-python-sdk
    Found existing installation: nsx-vmc-aws-integration-python-sdk <IP_ADDRESS>.1
    Uninstalling nsx-vmc-aws-integration-python-sdk-<IP_ADDRESS>.1:
      Successfully uninstalled nsx-vmc-aws-integration-python-sdk-<IP_ADDRESS>.1
  Attempting uninstall: nsx-python-sdk
    Found existing installation: nsx-python-sdk <IP_ADDRESS>.1
    Uninstalling nsx-python-sdk-<IP_ADDRESS>.1:
      Successfully uninstalled nsx-python-sdk-<IP_ADDRESS>.1
  Attempting uninstall: nsx-policy-python-sdk
    Found existing installation: nsx-policy-python-sdk <IP_ADDRESS>.1
    Uninstalling nsx-policy-python-sdk-<IP_ADDRESS>.1:
      Successfully uninstalled nsx-policy-python-sdk-<IP_ADDRESS>.1
  Attempting uninstall: vSphere-Automation-SDK
    Found existing installation: vSphere-Automation-SDK 1.61.0
    Uninstalling vSphere-Automation-SDK-1.61.0:
      Successfully uninstalled vSphere-Automation-SDK-1.61.0
  Running setup.py install for vSphere-Automation-SDK: started
  Running setup.py install for vSphere-Automation-SDK: finished with status 'done'
Successfully installed nsx-policy-python-sdk-<IP_ADDRESS>.0 nsx-python-sdk-<IP_ADDRESS>.0 nsx-vmc-aws-integration-python-sdk-<IP_ADDRESS>.0 nsx-vmc-policy-python-sdk-<IP_ADDRESS>.0 vSphere-Automation-SDK vapi-client-bindings-3.7.0 vapi-common-client-2.30.0 vapi-runtime-2.30.0 vmc-client-bindings-1.57.0 vmc-draas-client-bindings-1.18.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Removing intermediate container 1f75f5cf4ed0
 ---> 13d896f8883b
Step 8/11 : RUN echo "runner ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
 ---> Running in e28721c14a30
Removing intermediate container e28721c14a30
 ---> c4815971ed34
Step 9/11 : RUN echo "runner:*:17532:0:99999:7:::" >> /etc/shadow
 ---> Running in 7d9e43c663ac
Removing intermediate container 7d9e43c663ac
 ---> 821966462bff
Step 10/11 : RUN ansible --version
 ---> Running in eeabb74a32e7
ansible [core 2.11.2.post0]
  config file = None
  configured module search path = ['/home/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
  ansible collection location = /home/runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.8 (default, Aug 25 2021, 16:13:02) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
  jinja version = 2.10.3
  libyaml = True
Removing intermediate container eeabb74a32e7
 ---> b3e0a07385ab
Step 11/11 : USER 1000:0
 ---> Running in cd6e4309d8c5
Removing intermediate container cd6e4309d8c5
 ---> 6a7cd10099e1
Successfully built 6a7cd10099e1
Successfully tagged awx-test:latest

Reproduction steps
1. pip3 install --upgrade pip setuptools
2. pip3 install --upgrade git+https://github.com/vmware/vsphere-automation-sdk-python.git

Expected behavior
Install the sdk without any problems like in the past
Additional context
The latest setuptools version 61.0.0 seems to have a problem with the package.

Same, using an older version of setuptools works fine.  I use version 57.5.0.
For version 61.0.0, seems like this can be fixed by updating the setup.py file to include:
     ...
     py_modules=["lib"],
     ...

facing the same issue here

Same issue here too

There is issue that has been reported in github setuptools,
Further there was new release yesterday 62.0.0 , but that is also resulting same error
I've reported the issue in github/setuptools
https://github.com/pypa/setuptools/issues/3227
https://github.com/pypa/setuptools/issues/3198

Running
pip install --upgrade setuptools==60.10.0
Helped me to resolve the problem.

Any updates on this?

@bb-Ricardo
Issue has been fixed.
Further if you face any issues, please feel free to raise .
Thanks,
Shweta


[cross] Add cross aware binutils package

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

Adds a first draft version of the binutils cross compile package. This creates
Change Log

Add binutils_cross.spec

Does this affect the toolchain?

NO
Test Methodology

Local builds, actual binaries are un-tested

@dmcilvaney consider taking this change too https://github.com/dmcilvaney/CBL-Mariner/pull/12


how to binding pytorch?

there is no folder named "pytorch_binding", so how can I bind pytorch?

It's a different fork: https://github.com/SeanNaren/warp-ctc


Revert "Add padding spaces before printing algo."

Some test files need to be updated.
This reverts commit 26a374a271dabd49f3fa7f43a74e05d34aca010e.
@beldmit can you give me updated test files for the cyrillic test?

Thanks, pushed.  Leaving open since maybe we can get help on the test_x509 failure (output of the cyrillic cert)

I think this is the wrong fix.  The right fix would have been this:
diff --git a/test/certs/cyrillic.msb b/test/certs/cyrillic.msb
index 87f76cb0b0..ec58ac9b2f 100644
--- a/test/certs/cyrillic.msb
+++ b/test/certs/cyrillic.msb
@@ -3,7 +3,7 @@ Certificate:
         Version: 3 (0x2)
         Serial Number:
             be:47:3c:53:a6:2a:c0:3a
-    Signature Algorithm: sha256WithRSAEncryption
+        Signature Algorithm: sha256WithRSAEncryption
         Issuer: C=RU, ST=\U041C\U043E\U0441\U043A\U0432\U0430, L=\U041C\U043E\U0441\U043A\U0432\U0430, O=\U0414\U043C\U0438\U0442\U0440\U0438\U0439 \U0411\U0435\U043B\U044F\U0432\U0441\U043A\U0438\U0439, OU=\U042F, CN=Dmitry Belyavskiy<EMAIL_ADDRESS>         Validity
             Not Before: Feb 21 19:35:22 2017 GMT
diff --git a/test/certs/cyrillic.utf8 b/test/certs/cyrillic.utf8
index 6eda733fa7..2096e4fb35 100644
--- a/test/certs/cyrillic.utf8
+++ b/test/certs/cyrillic.utf8
@@ -3,7 +3,7 @@ Certificate:
         Version: 3 (0x2)
         Serial Number:
             be:47:3c:53:a6:2a:c0:3a
-    Signature Algorithm: sha256WithRSAEncryption
+        Signature Algorithm: sha256WithRSAEncryption
         Issuer: C=RU, ST=Москва, L=Москва, O=Дмитрий Белявский, OU=Я, CN=Dmitry Belyavskiy<EMAIL_ADDRESS>         Validity
             Not Before: Feb 21 19:35:22 2017 GMT

I tried that and had utf8/output errors.  Maybe it was pilot error.  I'll try that later and push to this PR if it works.  Thank you!

I just tried it.  Worked like a charm.
I just noticed, btw, that a similar change is needed for the CRL output.  I'm lining up a PR as we speak.

Great, thanks for picking this up.  I'll close this PR now.


The app don't transmit

Good morning,
i have upgraded the last version of the app on my iphone 4.
But when i put the trigger on to start the transmission the app close and when I reopen it the trigger is off.
I'm using the traccar server version 2.11.
Thanks in advance for any helps.
Best Regards,
Max

It means that the app was kill either by user or the system. Did you kill it? If not, then most likely it was killed by the system because of low memory.

Hi Tananaev,
thanks for your reply.
The app close itself, but if I double click on home button i found it in the app running and if i reopen the app the trigger is off.
Seems like the app is autominimized
I hope to be clear, my english not is very good.
BR

If the service status flag was reset to off, it means that applicationWillTerminate method was called by the system (app was killed). There is nothing I can do to prevent the OS from killing the app. Are you sure you have Background App Refresh enabled in the phone settings?

Yes the Background App Refresh is enabled.
Thanks
BR

Don't have any other ideas. The only thing left to do is to get system logs from iPhone. Official tool to access console logs is Xcode, but there must be some third party apps for that as well.


docs(README.md): add badges

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
59

Relevant Lines:
59

💛  - Coveralls