Add information about access modifiers

Added some information about 3 most common access modifiers and a simple example.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@Evaldas22 Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝


pluralize('datum') -> data but I wish 'datums'

>>> import inflection
>>> inflection.pluralize('datum')
'data'

>>> inflection.pluralize(inflection.singularize('datum'))
'data'

>>> inflection.singularize('datum')
'datum'

Yes, but that is wrong.

Well that is debatable according to https://nxg.me.uk/note/2005/singular-data/ and https://en.wikipedia.org/wiki/Data_(word).
In precise geodesy, for example, a ‘datum’ is the term for one of several models of the shape of the earth, relative to which the heights of mountains and the positions of telescopes are measured. This usage, which has nothing to do with our atom of data, has the perfectly regular plural ‘datums’.

Accoring to https://en.wikipedia.org/wiki/Data_(word)  data is most often used as a singular mass noun in everyday usage.  Some use it either in the singular or plural. The Associated Press style guide classifies data as a collective noun that takes the singular when treated as a unit but the plural when referring to individual items (e.g., "The data is sound" and "The data have been carefully collected").
In scientific writing data is often treated as a plural, as in "These data do not support the conclusions", but the word is also used as a singular mass entity like information, for instance in computing and related disciplines. British usage now widely accepts treating data as singular in standard English, including everyday newspaper usage.

I agree all your comments, except for the one mentioning the original topic, i.e “datums”, as I never heard of it, so I can’t really speak of it. To my understanding, the right way of pluralising such latin  terms is as “datum”-“data”,

My point is that "data" as a singular form is far more common according to https://en.wikipedia.org/wiki/Data_(word)  than the latin word "datum". In English, the word datum is still used in the general sense of "an item given", but is now-rarely-used. Any measurement or result is a datum, though data point is now far more common.
If you're writing for an academic audience, particularly in the sciences, "data" takes a plural verb.
For example: "The data are correct".
But most people treat 'data' as a singular noun, especially when talking about computers etc.
For example: "The data is being transferred from my computer to yours".
And I have to be honest, I've never heard anyone ask for a datum.
I think it is more usual to talk about 'datum' in geodesy. And in this context the plural is ‘datums’.
That is why I think  inflection.pluralize('datum') should return "datums",
and that inflection.pluralize('data') and inflection.singularize('data') both should return "data".
I think this convention is more practical in use.


why windows need python 2.7, python 3.0 is not?

python3 should be just fine if you have node-gyp v5.0.5 or v6.0.0 or later.


Roughness

Hello! Love this library - we use it on the home page of Exercism and I'm currently adding it to Kaido too 🙂
I'd like to make the lines slightly less rough, and was wondering if you'd be interested in a PR that allows consumers to vary the roughness option via the options hash? ie make this configurable: https://github.com/rough-stuff/rough-notation/blob/668ba82ac89c903d6f59c9351b9b85855da9882c/src/render.ts#L11
Thanks! :)

To pile on, we would like to see a "paintbrush" effect where it was more rough, looks to be hit with a paintbrush


Capture desktop renderer process logs to file

@roryabraham
Related to this comment: https://github.com/Expensify/App/issues/9794#issuecomment-1197106599
Details

Adds a few enhancements to Desktop logging

see main process logging in the Dev tools console (⌘ Cmd + ⌥ Option + I) (namely we see logs from the auto updater easily)
capture renderer logs to file - ~/Library/Logs/new.expensify.desktop/renderer.log (e.g. all the stuff we log through libs/Log (and more)
distinct logs with different scopes - auto updater logs are prefixed with autoUpdater, renderer logs are prefixed with renderer:generic or renderer:Log

Sample logs

main.log
[2022-08-09 00:07:13.815] [info]  (autoUpdater) Checking for update
[2022-08-09 00:07:14.951] [info]  (autoUpdater) Found version 1.1.88-7 (url: New Expensify-1.1.88-7-mac.zip, NewExpensify.dmg)
[2022-08-09 00:07:14.951] [info]  (autoUpdater) Downloading update from New Expensify-1.1.88-7-mac.zip, NewExpensify.dmg
[2022-08-09 00:07:14.954] [info]  (autoUpdater) Checked for macOS Rosetta environment (isRosetta=false)
[2022-08-09 00:07:14.956] [info]  (autoUpdater) Checked 'uname -a': arm64=true
[2022-08-09 00:07:15.165] [info]  (autoUpdater) Update has already been downloaded to /Users/kidroca/Library/Application Support/Caches/new.expensify.desktop-updater/pending/New Expensify-1.1.88-7-mac.zip).
[2022-08-09 00:07:15.179] [info]  (autoUpdater) / requested
[2022-08-09 00:07:15.182] [info]  (autoUpdater) /1827f488460-33e.zip requested
[2022-08-09 00:07:15.183] [info]  (autoUpdater) /1827f488460-33e.zip requested by Squirrel.Mac, pipe /Users/kidroca/Library/Application Support/Caches/new.expensify.desktop-updater/pending/New Expensify-1.1.88-7-mac.zip
[2022-08-09 00:07:20.285] [info]  (autoUpdater) Proxy server for native Squirrel.Mac is closed (fileToProxy=https://staging-expensify-cash.s3.amazonaws.com/New%20Expensify-1.1.88-7-mac.zip)
[2022-08-09 00:07:20.553] [warn]  (autoUpdater) Error: Code signature at URL file:///Users/kidroca/Library/Caches/com.expensifyreactnative.chat.ShipIt/update.mo69slL/New%20Expensify.app/ did not pass validation: code failed to satisfy specified code requirement(s)
[2022-08-09 00:07:20.553] [error] (autoUpdater) Error: Error: Code signature at URL file:///Users/kidroca/Library/Caches/com.expensifyreactnative.chat.ShipIt/update.mo69slL/New%20Expensify.app/ did not pass validation: code failed to satisfy specified code requirement(s)

renderer.log
[2022-08-09 00:07:14.333] [debug] (renderer:Log)     [info] [Onyx] set() called for key: currentDate - ""
[2022-08-09 00:07:14.408] [debug] (renderer:Log)     [info] [Migrate Onyx] start - ""
[2022-08-09 00:07:14.409] [debug] (renderer:Log)     [info] [Onyx] set() called for key: activeClients properties: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 - ""
[2022-08-09 00:07:14.409] [debug] (renderer:Log)     [info] [Migrate Onyx] Skipped migration MoveToIndexedDB (Not applicable to logged out users) - ""
[2022-08-09 00:07:14.409] [debug] (renderer:Log)     [info] [Onyx] set() called for key: activeClients properties: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 - ""
[2022-08-09 00:07:14.410] [debug] (renderer:Log)     [info] [Migrate Onyx] Skipped migration RenameActiveClientsKey - ""
[2022-08-09 00:07:14.410] [debug] (renderer:Log)     [info] [Migrate Onyx] Skipped migration RenamePriorityModeKey - ""
[2022-08-09 00:07:14.410] [debug] (renderer:Log)     [info] [Migrate Onyx] Skipped migration AddEncryptedAuthToken - ""
[2022-08-09 00:07:14.410] [debug] (renderer:Log)     [info] [Migrate Onyx] Skipped migration RenameExpensifyNewsStatus - ""
[2022-08-09 00:07:14.410] [debug] (renderer:Log)     [info] [Migrate Onyx] finished in 2ms - ""
[2022-08-09 00:07:14.422] [debug] (renderer:Log)     [info] [NetworkConnection] listenForReconnect called - ""
[2022-08-09 00:07:14.424] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"userWallet"}
[2022-08-09 00:07:14.424] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isLoadingReportData - ""
[2022-08-09 00:07:14.424] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"chatList"}
[2022-08-09 00:07:14.424] [debug] (renderer:Log)     [info] Making API request - {"command":"OpenApp"}
[2022-08-09 00:07:14.425] [debug] (renderer:Log)     [info] Making API request - {"command":"User_FixAccount","shouldUseSecure":false}
[2022-08-09 00:07:14.425] [debug] (renderer:generic) Timing:expensify.cash.homepage_initial_render 11
[2022-08-09 00:07:14.425] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0 - ""
[2022-08-09 00:07:14.427] [debug] (renderer:Log)     [info] [NetworkConnection] NetInfo state change - {"isInternetReachable":null,"isConnected":true,"type":"wifi","details":{"isConnectionExpensive":false,"ssid":null,"bssid":null,"strength":null,"ipAddress":null,"subnet":null,"frequency":null}}
[2022-08-09 00:07:14.427] [debug] (renderer:Log)     [info] Making API request - {"command":"SendPerformanceTiming"}
[2022-08-09 00:07:14.427] [debug] (renderer:Log)     [info] [Onyx] set() called for key: network properties: isOffline - ""
[2022-08-09 00:07:14.434] [debug] (renderer:Log)     [info] Navigating to route - {"path":"/"}
[2022-08-09 00:07:14.468] [debug] (renderer:Log)     [info] Navigating to route - {"path":"/r/71402263"}
[2022-08-09 00:07:14.469] [debug] (renderer:Log)     [info] [Onyx] set() called for key: session properties: loading,shouldShowComposeInput,authToken,accountID,email,encryptedAuthToken - ""
[2022-08-09 00:07:14.469] [debug] (renderer:Log)     [info] [Onyx] set() called for key: currentlyViewedReportID - ""
[2022-08-09 00:07:14.567] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isSidebarLoaded - ""
[2022-08-09 00:07:14.568] [debug] (renderer:generic) Timing:expensify.cash.sidebar_loaded 99
[2022-08-09 00:07:14.568] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0,1 - ""
[2022-08-09 00:07:14.608] [warn]  (renderer:generic) Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md
[2022-08-09 00:07:14.608] [debug] (renderer:Log)     [info] [Onyx] set() called for key: reportUserIsTyping_71402263 properties:  - ""
[2022-08-09 00:07:14.608] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"private-report-reportID-71402263","eventName":"client-userIsTyping"}
[2022-08-09 00:07:14.609] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isLoadingInitialReportActions_71402263 - ""
[2022-08-09 00:07:14.772] [debug] (renderer:Log)     [info] [Onyx] set() called for key: reportWithDraft_71402263 - ""
[2022-08-09 00:07:14.782] [debug] (renderer:Log)     [info] [NetworkConnection] NetInfo state change - {"isInternetReachable":true,"isConnected":true,"type":"wifi","details":{"isConnectionExpensive":false,"ssid":null,"bssid":null,"strength":null,"ipAddress":null,"subnet":null,"frequency":null}}
[2022-08-09 00:07:14.782] [debug] (renderer:Log)     [info] [Onyx] set() called for key: network properties: isOffline - ""
[2022-08-09 00:07:14.831] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"userWallet","jsonCode":200,"requestID":"737b38703e608eec-SAN"}
[2022-08-09 00:07:14.831] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"chatList","jsonCode":200,"requestID":"737b38703e5c8eec-SAN"}
[2022-08-09 00:07:14.857] [debug] (renderer:Log)     [info] Finished API request - {"command":"User_FixAccount","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38703e628eec-SAN"}
[2022-08-09 00:07:14.911] [debug] (renderer:Log)     [info] [Onyx] set() called for key: userWallet properties: availableBalance,bankAccountID,currentBalance,currentStep,tier,tierName,walletLinkedAccountID,walletLinkedAccountType,shouldShowFailedKYC - ""
[2022-08-09 00:07:14.978] [debug] (renderer:Log)     [info] [PusherConnectionManager] unhandled event - {"eventName":"state_change"}
[2022-08-09 00:07:14.978] [debug] (renderer:Log)     [info] [PusherAuthorizer] Attempting to authorize Pusher - {"channelName":"private-report-reportID-71402263"}
[2022-08-09 00:07:14.978] [debug] (renderer:Log)     [info] Making API request - {"command":"AuthenticatePusher"}
[2022-08-09 00:07:14.978] [debug] (renderer:Log)     [info] [PusherConnectionManager] connected event - ""
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"private-encrypted-user-accountID-9952973","eventName":"reportCommentEdit"}
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] [PusherAuthorizer] Attempting to authorize Pusher - {"channelName":"private-encrypted-user-accountID-9952973"}
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] Making API request - {"command":"AuthenticatePusher"}
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"private-encrypted-user-accountID-9952973","eventName":"onyxApiUpdate"}
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"private-encrypted-user-accountID-9952973","eventName":"preferredLocale"}
[2022-08-09 00:07:14.979] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"private-encrypted-user-accountID-9952973","eventName":"screenshareRequest"}
[2022-08-09 00:07:14.980] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"public-policyEditor-30A1181E5CC41BEA","eventName":"policyEmployeeRemoved"}
[2022-08-09 00:07:14.980] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"public-policyEditor-34EC92640D4C4FDE","eventName":"policyEmployeeRemoved"}
[2022-08-09 00:07:14.980] [debug] (renderer:Log)     [info] [Pusher] Attempting to subscribe to channel - {"channelName":"public-policyEditor-8B8FE0ED6446C0C3","eventName":"policyEmployeeRemoved"}
[2022-08-09 00:07:14.981] [debug] (renderer:Log)     [info] Finished API request - {"command":"OpenApp","jsonCode":200,"requestID":"737b38703e5d8eec-SAN"}
[2022-08-09 00:07:14.981] [debug] (renderer:Log)     [info] [Onyx] set() called for key: frequentlyUsedEmojis properties: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 - ""
[2022-08-09 00:07:14.982] [debug] (renderer:Log)     [info] [Onyx] set() called for key: loginList properties: 0 - ""
[2022-08-09 00:07:14.982] [debug] (renderer:Log)     [info] [Onyx] set() called for key: betas properties: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70 - ""
[2022-08-09 00:07:14.982] [debug] (renderer:Log)     [info] [Onyx] set() called for key: user properties: loginList,validated,isFromPublicDomain,isUsingExpensifyCard,isSubscribedToNewsletter - ""
[2022-08-09 00:07:14.982] [debug] (renderer:Log)     [info] [Onyx] set() called for key: nvp_priorityMode - ""
[2022-08-09 00:07:14.982] [debug] (renderer:Log)     [info] [Onyx] set() called for key: preferredLocale - ""
[2022-08-09 00:07:14.983] [debug] (renderer:Log)     [info] [Onyx] set() called for key: private_blockedFromConcierge properties:  - ""
[2022-08-09 00:07:14.983] [debug] (renderer:Log)     [info] [Onyx] set() called for key: personalDetails properties: alexbeaman@expensify.com,chronos@expensify.com,concierge@expensify.com,dbarrett@expensify.com,expensify10@kidroca.com,expensify11@kidroca.com,expensify12@kidroca.com,expensify13@kidroca.com,expensify14@kidroca.com,expensify15@kidroca.com,expensify2@kidroca.com,expensify3@kidroca.com,expensify5@kidroca.com,expensify6@kidroca.com,expensify7@kidroca.com,expensify8@kidroca.com,expensify9@kidroca.com,expensify@kidroca.com,ionatan@expensify.com,kbecciv+1110@gmail.com,mallen@expensify.com,mhaxhiu@expensify.com,rory@expensify.com,expense2@kidroca.com,expense3@kidroca.com,expensify4@kidroca.com,expensify.old-image-picker@kidroca.com,old-image-picker@kidroca.com,new-image-picker<EMAIL_ADDRESS>- ""
[2022-08-09 00:07:15.001] [debug] (renderer:Log)     [info] [Onyx] set() called for key: countryCode - ""
[2022-08-09 00:07:15.001] [debug] (renderer:Log)     [info] [Onyx] set() called for key: policy_30A1181E5CC41BEA properties: isFromFullPolicy,id,name,role,type,owner,outputCurrency,avatarURL,employeeList - ""
[2022-08-09 00:07:15.001] [debug] (renderer:Log)     [info] [Onyx] set() called for key: policy_34EC92640D4C4FDE properties: isFromFullPolicy,id,name,role,type,owner,outputCurrency,avatarURL,employeeList - ""
[2022-08-09 00:07:15.001] [debug] (renderer:Log)     [info] [Onyx] set() called for key: policy_8B8FE0ED6446C0C3 properties: isFromFullPolicy,id,name,role,type,owner,outputCurrency,avatarURL,employeeList - ""
[2022-08-09 00:07:15.124] [debug] (renderer:Log)     [info] Finished API request - {"command":"SendPerformanceTiming","jsonCode":200,"requestID":"737b38703e5e8eec-SOF"}
[2022-08-09 00:07:15.125] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0 - ""
[2022-08-09 00:07:15.143] [debug] (renderer:Log)     [info] Making API request - {"command":"SendPerformanceTiming"}
[2022-08-09 00:07:15.147] [debug] (renderer:Log)     [info] [Onyx] set() called for key: currencyList properties: AED,AFN,ALL,AMD,ANG,AOA,ARS,AUD,AWG,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BTN,BWP,BYN,BYR,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUC,CUP,CVE,CZK,DJF,DKK,DOP,DZD,EEK,EGP,ERN,ETB,EUR,FJD,FKP,GBP,GEL,GHS,GIP,GMD,GNF,GTQ,GYD,HKD,HNL,HRK,HTG,HUF,IDR,ILS,INR,IQD,IRR,ISK,JMD,JOD,JPY,KES,KGS,KHR,KMF,KPW,KRW,KWD,KYD,KZT,LAK,LBP,LKR,LRD,LSL,LTL,LVL,LYD,MAD,MDL,MGA,MKD,MMK,MNT,MOP,MRO,MRU,MUR,MVR,MWK,MXN,MYR,MZN,NAD,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SDG,SEK,SGD,SHP,SLL,SOS,SRD,STD,STN,SVC,SYP,SZL,THB,TJS,TMT,TND,TOP,TRY,TTD,TWD,TZS,UAH,UGX,USD,UYU,UZS,VEB,VEF,VES,VND,VUV,WST,XAF,XCD,XOF,XPF,YER,ZAR,ZMK,ZMW - ""
[2022-08-09 00:07:15.148] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isFirstTimeNewExpensifyUser - ""
[2022-08-09 00:07:15.148] [debug] (renderer:Log)     [info] [Onyx] set() called for key: nvp_paypalMeAddress - ""
[2022-08-09 00:07:15.148] [debug] (renderer:Log)     [info] [Onyx] set() called for key: preferredEmojiSkinTone - ""
[2022-08-09 00:07:15.224] [debug] (renderer:Log)     [info] Finished API request - {"command":"AuthenticatePusher","jsonCode":200,"requestID":"737b38735ceb8eec-SAN"}
[2022-08-09 00:07:15.224] [debug] (renderer:Log)     [info] [PusherAuthorizer] Pusher authenticated successfully - {"channelName":"private-encrypted-user-accountID-9952973"}
[2022-08-09 00:07:15.230] [debug] (renderer:Log)     [info] Finished API request - {"command":"AuthenticatePusher","jsonCode":200,"requestID":"737b38735ce78eec-SAN"}
[2022-08-09 00:07:15.259] [debug] (renderer:Log)     [info] [PusherAuthorizer] Pusher authenticated successfully - {"channelName":"private-report-reportID-71402263"}
[2022-08-09 00:07:15.391] [debug] (renderer:Log)     [info] Finished API request - {"command":"SendPerformanceTiming","jsonCode":200,"requestID":"737b38745ebe8eec-SAN"}
[2022-08-09 00:07:15.392] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties:  - ""
[2022-08-09 00:07:15.458] [debug] (renderer:Log)     [info] Making API request - {"command":"Report_GetHistory","shouldUseSecure":false}
[2022-08-09 00:07:15.470] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportSummaryList"}
[2022-08-09 00:07:15.714] [debug] (renderer:Log)     [info] Previous log requestID - {"requestID":"737b38766b628eec-SAN"}
[2022-08-09 00:07:15.731] [debug] (renderer:Log)     [info] Finished API request - {"command":"Report_GetHistory","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38766b5d8eec-SOF"}
[2022-08-09 00:07:15.752] [debug] (renderer:Log)     [info] [Onyx] set() called for key: reportActions_71402263 properties: 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97 - ""
[2022-08-09 00:07:15.752] [debug] (renderer:Log)     [info] [Onyx] set() called for key: report_71402263 properties: reportID,reportName,chatType,ownerEmail,policyID,unreadActionCount,maxSequenceNumber,participants,isPinned,lastVisitedTimestamp,lastReadSequenceNumber,lastMessageTimestamp,lastMessageText,lastActorEmail,notificationPreference,stateNum,statusNum,oldPolicyName,visibility,isOwnPolicyExpenseChat,lastMessageHtml,newMarkerSequenceNumber,optimisticReportActionIDs - ""
[2022-08-09 00:07:15.752] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isLoadingInitialReportActions_71402263 - ""
[2022-08-09 00:07:15.777] [debug] (renderer:Log)     [info] [Onyx] set() called for key: reportDraftComment_71402263 - ""
[2022-08-09 00:07:15.780] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportSummaryList","jsonCode":200,"requestID":"737b38766b5f8eec-SAN"}
[2022-08-09 00:07:15.780] [debug] (renderer:Log)     [info] [Report] successfully fetched report data - {"chatList":["71402263","71403817","71403849","71734617","71955477","72156283","72207410","73013597","73164379","75049759","75369514","75369778","75373284","77703941","78543753","78543754","78818182","79854977","81393827","81524148","84424326","84424995","84425187","84425417","86238969","86239793","87620615","87620616","87620698","87620699","87622023","87622024","87622104","87622105","87622125","87622126","87622461","87622462","88356939","88356940","88356956","88356957","88357606","88357607","88358400","88358401","88615879","88632597","89854950","89855182","89855240","89855272","89855312","89855351","89855429","89855494","89855647","89994867","93008089","93008101","93128210","93835793"]}
[2022-08-09 00:07:15.780] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:15.781] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:15.781] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:15.781] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:15.782] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:15.782] [debug] (renderer:Log)     [info] Making API request - {"command":"GetIOUReport","shouldUseSecure":false}
[2022-08-09 00:07:16.050] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38785f8c8eec-SAN"}
[2022-08-09 00:07:16.059] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.060] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38786f938eec-SAN"}
[2022-08-09 00:07:16.060] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.061] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38785f868eec-SAN"}
[2022-08-09 00:07:16.061] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.063] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38786f908eec-SAN"}
[2022-08-09 00:07:16.063] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.311] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387a1c0c8eec-SOF"}
[2022-08-09 00:07:16.323] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387a1c018eec-SAN"}
[2022-08-09 00:07:16.323] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387a1bf88eec-SAN"}
[2022-08-09 00:07:16.329] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387a1c0e8eec-SAN"}
[2022-08-09 00:07:16.567] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38785f8d8eec-SAN"}
[2022-08-09 00:07:16.568] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.598] [debug] (renderer:Log)     [info] Finished API request - {"command":"GetIOUReport","shouldUseSecure":false,"jsonCode":200,"requestID":"737b38786f958eec-SAN"}
[2022-08-09 00:07:16.607] [debug] (renderer:Log)     [info] Making API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff"}
[2022-08-09 00:07:16.728] [debug] (renderer:Log)     [info] Previous log requestID - {"requestID":"737b387c99bf8eec-SAN"}
[2022-08-09 00:07:16.830] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387d4b768eec-SAN"}
[2022-08-09 00:07:16.863] [debug] (renderer:Log)     [info] Finished API request - {"command":"Get","shouldUseSecure":false,"returnValueList":"reportStuff","jsonCode":200,"requestID":"737b387d8c0c8eec-SAN"}
[2022-08-09 00:07:16.873] [debug] (renderer:Log)     [info] Making API request - {"command":"PersonalDetails_GetForEmails","shouldUseSecure":false}
[2022-08-09 00:07:16.903] [debug] (renderer:Log)     [info] [Onyx] set() called for key: initialReportDataLoaded - ""
[2022-08-09 00:07:16.903] [debug] (renderer:Log)     [info] [Onyx] set() called for key: isLoadingReportData - ""
[2022-08-09 00:07:16.903] [debug] (renderer:generic) Timing:expensify.cash.homepage_reports_loaded 2489
[2022-08-09 00:07:16.903] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0 - ""
[2022-08-09 00:07:16.910] [debug] (renderer:Log)     [info] [Onyx] set() called for key: report_71402263 properties: reportID,reportName,chatType,ownerEmail,policyID,unreadActionCount,maxSequenceNumber,participants,isPinned,lastVisitedTimestamp,lastReadSequenceNumber,lastMessageTimestamp,lastMessageText,lastActorEmail,notificationPreference,stateNum,statusNum,oldPolicyName,visibility,isOwnPolicyExpenseChat,lastMessageHtml,newMarkerSequenceNumber,optimisticReportActionIDs - ""
[2022-08-09 00:07:16.911] [debug] (renderer:Log)     [info] Making API request - {"command":"SendPerformanceTiming"}
[2022-08-09 00:07:17.114] [debug] (renderer:Log)     [info] Finished API request - {"command":"PersonalDetails_GetForEmails","shouldUseSecure":false,"jsonCode":200,"requestID":"737b387f28808eec-SAN"}
[2022-08-09 00:07:17.116] [debug] (renderer:generic) Timing:expensify.cash.personal_details_formatted 0
[2022-08-09 00:07:17.116] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0,1 - ""
[2022-08-09 00:07:17.118] [debug] (renderer:Log)     [info] [Onyx] set() called for key: personalDetails properties: alexbeaman@expensify.com,chronos@expensify.com,concierge@expensify.com,dbarrett@expensify.com,expensify10@kidroca.com,expensify11@kidroca.com,expensify12@kidroca.com,expensify13@kidroca.com,expensify14@kidroca.com,expensify15@kidroca.com,expensify2@kidroca.com,expensify3@kidroca.com,expensify5@kidroca.com,expensify6@kidroca.com,expensify7@kidroca.com,expensify8@kidroca.com,expensify9@kidroca.com,expensify@kidroca.com,ionatan@expensify.com,kbecciv+1110@gmail.com,mallen@expensify.com,mhaxhiu@expensify.com,rory@expensify.com,expense2@kidroca.com,expense3@kidroca.com,expensify4@kidroca.com,expensify.old-image-picker@kidroca.com,old-image-picker@kidroca.com,new-image-picker<EMAIL_ADDRESS>- ""
[2022-08-09 00:07:17.192] [debug] (renderer:Log)     [info] Finished API request - {"command":"SendPerformanceTiming","jsonCode":200,"requestID":"737b387f79578eec-SOF"}
[2022-08-09 00:07:17.192] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties: 0 - ""
[2022-08-09 00:07:17.193] [debug] (renderer:Log)     [info] Making API request - {"command":"SendPerformanceTiming"}
[2022-08-09 00:07:17.467] [debug] (renderer:Log)     [info] Finished API request - {"command":"SendPerformanceTiming","jsonCode":200,"requestID":"737b38812d448eec-SAN"}
[2022-08-09 00:07:17.500] [debug] (renderer:Log)     [info] [Onyx] set() called for key: networkRequestQueue properties:  - ""
[2022-08-09 00:07:44.444] [debug] (renderer:Log)     [info] [BootSplash] splash screen status - {"appState":"active","status":"hidden"}
[2022-08-09 00:17:16.329] [debug] (renderer:Log)     [info] Flushing logs older than 10 minutes - {}

main logs in dev console

Fixed Issues

$ GH_LINK
Tests

[ ] Verify that no errors appear in the JS console

PR Review Checklist

Contributor (PR Author) Checklist

[ ] I linked the correct issue in the ### Fixed Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The Contributor+ will copy/paste it into a new comment and complete it after the author checklist is completed

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

QA Steps

[ ] Verify that no errors appear in the JS console

Screenshots

Web

Mobile Web

Desktop

iOS

Android

Hey @roryabraham, check this out and let me know whether this is useful so I can wrap up the PR

Overall I would say yes this looks useful to me. My only minor concern is that we might get a performance hit doing a ton of I/O for logging in staging and production.

@roryabraham

Overall I would say yes this looks useful to me. My only minor concern is that we might get a performance hit doing a ton of I/O for logging in staging and production.

I thought that too, though didn't notice anything unusual
Since /Log logs are already sent to the backend maybe we can skip capturing them and only capture the "accidental logs" to file, though capturing everything to file might help with issues that occur while offline
If you want to we can go on a more granular approach reverting the changes to Log.js - this would still show main message in the dev console and still capture renderer message to file, though it'll skip the debug channel

Going to close this for now since there isn't much demand for this after all


[SPARK-26840][SQL] Avoid cost-based join reorder in presence of join hints

What changes were proposed in this pull request?
This is a fix for https://github.com/apache/spark/pull/23524, which did not stop cost-based join reorder when the CostBasedJoinReorder rule recurses down the tree and applies join reorder for nested joins with hints.
The issue had not been detected by the existing tests because CBO is disabled by default.
How was this patch tested?
Enabled CBO for JoinHintSuite.

Test build #102157 has started for PR 23759 at commit 6949db5.

Merged build finished. Test PASSed.

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

Hi, @maryannxue .
I made a PR to you, https://github.com/maryannxue/spark/pull/1, which replaces all changes in CostBasedJoinReorder into the following one-liner like the following. Could you review and merge that?
   private def replaceWithOrderedJoin(plan: LogicalPlan): LogicalPlan = plan match {
-    case j @ Join(left, right, jt: InnerLike, Some(cond), _) =>
+    case j @ Join(left, right, jt: InnerLike, Some(cond), JoinHint.NONE) =>

cc @gatorsmile

Test build #102157 has finished for PR 23759 at commit 6949db5.

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

Merged build finished. Test PASSed.

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

Thank you, @dongjoon-hyun! I'll also change the file "patterns.scala".

@maryannxue . Please don't mix the bug fix PR and simple style improvement PR.

I don't think 'patters.scala' is releated the bug which this PR aims.

Merged build finished. Test PASSed.

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

Test build #102203 has started for PR 23759 at commit 41aa5ba.

@maryannxue . Do we need this in older branches, too?

Sorry, @dongjoon-hyun, I did not look carefully when I merged your PR. I thought you were to replace every occurrence of "case Join(..., hint) if hint == JoinHint.NONE" with "case Join(..., JoinHint.NONE)" which makes sense to me, but it turned out you had changed other logic too. Is there any specific reason you would have to revert the changes I made in "ExtractInnerJoins"?
I'll update this PR with an extra test.

Merged build finished. Test PASSed.

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

Test build #102208 has started for PR 23759 at commit d7c1567.

I just pushed in the latest changes together with two new tests.
The changes in "extractInnerJoins" are necessary for the first added test. The changes (which you suggested) in "replaceWithOrderedJoins" are necessary for the second test.
Once the join items are extracted by extractInnerJoins, they will be reordered, thus the hint info will be lost; once reordered, regardless of whether the join order has changed, the join operators should be marked "ordered" (replaced with OrderedJoin) to prevent further transform.

@dongjoon-hyun

For me, this one-liner prevents the start of the disaster.
You probably should take a closer look at the logic :) The place where you applied the one-liner happens after the reordering and is just to stop further transform on already ordered joins.

Thanks for the more test cases. I'll review tonight.

Test build #102203 has finished for PR 23759 at commit 41aa5ba.

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

Merged build finished. Test PASSed.

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

Test build #102208 has finished for PR 23759 at commit d7c1567.

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

Merged build finished. Test PASSed.

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

@dongjoon-hyun:

I reviewed again as you suggested.

I did not suggest you review it again. I suggested you understand the logic first. Thank you anyway for reviewing it! BTW, I don't totally agree with you on "don't mix the bug fix PR and simple style improvement PR". Ppl can always clean up a few places related to the issue in their PRs, like removing unused imports, correcting styles, refining code comments, etc. Plus, I don't think those two lines of so-called aesthetic changes would be worth another PR (that's going to waste everybody's time). I think we could together make the Spark community more efficient and more constructive if we can focus on important things rather than tell ppl to revert changes that are nice to have.

?

I did not suggest you review it again. I suggested you understand the logic first.

Hey, @maryannxue . This is an open source project.

You probably should take a closer look at the logic :)

If you said like the above, it causes another round of reviews.
I understand your enthusiasm to contribute more. But, please take a step back and look at what happens after your SPARK-26065.
98be8953c7 [SPARK-26065][SQL] Change query hint from a LogicalPlan to a field
2d01bccbd4 [SPARK-26065][FOLLOW-UP][SQL] Fix the Failure when having two Consecutive Hints
985f966b9c [SPARK-26065][FOLLOW-UP][SQL] Revert hint behavior in join reordering
ce7e7df99d [SPARK-26708][SQL] Incorrect result caused by inconsistency between a SQL cache's cached RDD and its physical plan
this PR.  [SPARK-26840][SQL] Avoid cost-based join reorder in presence of join hints
Are you 100% sure that there is no more bugs related to this? Until the branch becomes more stable back, please minimize the surface of changes by removing unnecessary refactoring. The unrelated refactoring really hurts the traceability.

@dongjoon-hyun: Just to be clear: the hint behaviors were not clearly documented or well tested. One of the reasons for this whole hint refactoring was to make optimizer work better when hints are present (rules could otherwise be stopped by this trivial ResolveHint node). I had wanted to make join re-ordering work with hints as well, but then found out we had to hold back given the duplicate expr id issue, and it'd probably be a good idea to define the behavior clearly first.
Back to "important things" I mentioned earlier, I think it would have been great if you could have pointed out the correctness problem in my first check-in 98be895. Assume that's what reviewers should do before all other things. And as to this PR, I think it'd be great to refine the code comments here as well, since it took me a little while to figure out what OrderedJoin is really for ( guess the same for you ;) )

@maryannxue . That's the reason why we prefer small steps. It's hard for a concise and succinct patch to become wrong. (Of course sometimes it is).
During review process, all reviews(including me) always track the commit history around it. If this PR was minimal as I suggested last night, I believe that this PR is already in master branch. Furthermore, it will help the next review precess burdens around this code base.

BTW, it's important to cooperate and to make other people to understand during review process for the best to the author and reviewers in my experience. A patch can be technically reviewed closely and double checked. FWIW, I also had a doubt about the reverted PR although I didn't express my concern there (at the PR you pointed out in the description).
I think I asked to fill the empty JIRA description as well. It is also important to make PR more readable, title, and description. Like .. as an extreme case, let's say there's someone only who understands a logic in an open source project. No one can touch the codes later if that person somehow happens to leave the community (that's an open source :D anyone can join and leave when they want).

Also, analuzer is pretty core. I know you're good at here and you have been working on this but it's a fix for a reverted PR. Usually it needs some more details rather than saying back to reread it closely to reviewers.

I am the reviewer of the original PRs. It takes me many days to finish the review. It is a little bit hard to refactor the whole Hint framework step by step. The goal of the whole hint refactoring is straightforward. We learned the lessons from AnalysisBarrier. Compared with AnalysisBarrier, Hint node is even worse. Users could see the regressions if they use Hint. Not all the the optimizer rules consider Hint when writing the case matching. Basically, the refactoring fixes various issues in the optimizer. The whole work is a very great and benefit all the users in the long term! In the next PR, we can add a new conf for enabling users to decide whether we should throw an exception when the hint is not applicable. Previously, we always silently drop the hints if they do not work.

I will merge it soon, if no any new comment.

Thanks! Merged to master.


Fixed typos and other suggested changes.

Thanks, Arthur.
On Tue, Dec 14, 2021 at 10:08 AM artanderson @.***>
wrote:

Merged #37
https://github.com/aerospike-examples/interactive-notebooks/pull/37
into main.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/aerospike-examples/interactive-notebooks/pull/37#event-5766064117,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN2IW4T43PFL37GPEGMKSB3UQ6BZHANCNFSM5JVBTFOA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


[NNVM] Bug fix Add missing check when deciding conv and injective ops are in the same group

Fix the bug found by @kazum in #1608. When an injective op's fuse type is kRealize, the change in #1608 should be nop, because the injective op will not be fused with conv anyway.
I added a check to make sure that injective op's fuse type is kFuseToMaster, which is the only relevant case when determining if conv and injective op are in the same group. A test case is added.
@tqchen @kazum please review.

Thanks @kazum @masahi , this is now merged


scenarios: add recon scenario

Adds a scenario with verbose comments that illustrates how to probe the network for vulnerable nodes and use the P2PConnection in python to serve them... unusual... messages

pushed an update that uses rpc getblocktemplate to determine the private signet magic bytes for the P2PConnection. That will be pretty important for tabconf! The scenario is tested on both regtest and signet in CI now as well


fix: c4 diagram deployment action syntax

Describe your changes
Syntax fixes for https://github.com/Planning-Inspectorate/applications-service/pull/1141
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[x] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[x] I have made corresponding changes to the documentation
[x] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[x] I have included unit tests to cover any testable code changes

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

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

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

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


replace contact form with link to email Debra

This PR prevents people from using the contact form, and just provides a link to email Debra. This way, no one will press "Submit" and see a "Success" message after no email has been sent, which is the current state of affairs.

@annamorphism yeah, that occurred to me as I've been thinking about the contact page over the past few days. For what it's worth, I have links like this on my personal website with my address and I've not yet noticed spam as a big issue, and Debra has her email address displayed on her profile on uwaterloo.ca anyways.

I worry a little that this will cause bot-spam to Debra's email--but maybe she gets that anyway.

Good point. We should have [at] email address.

@jacobdgm please use “[at]” not “@“.

I can do this - I'll roll it into #408. I suppose I should get rid of the <a href="mailto:... as well? - If I was writing a spambot crawler, that's the first thing I'd look for.
(I still think this approach looks messy and unprofessional, but if we think this is the best solution, I'll set it up.)

Relevant question: do we mean this to be a stopgap solution until we get the contact form set up to automatically send emails, or do we mean this as a more permanent solution? If it's just a temporary fix, using the suggested obfuscated email address seems fine to me.

Please contact Debra to see what she prefers.

Debra is good with us posting just her email address rather than creating a full form, though she's given us an @dal.ca address in place of the @uwaterloo.ca one. #408 has been updated to incorporate this.


Update upload-symbols binary

hey @godrei / @viktorbenei, just curious where you guys got this new upload-symbols binary? I'm seeing a similar issue and just wanted to know more details about this fix

From the official Crashlytics.framework (path is Crashlytics.framework/submit)

Awesome, thanks!


[Bugfix] Fix failed attempt to open nonexistent /proc/1/stat.

Fix failed attempt to open nonexistent /proc/1/stat.
Previously, when a terminal is not found, it climbs up the proccess tree
until it tries to open /proc/1/stat and fails with
__p9k_detect_terminal:23: no such file or directory: /proc/1/stat.
This appears to be harmless, but gives an annoying error whenever
starting zsh.
Sliding the pid check before the
proc_stat=(${(@f)$(</proc/${pid}/stat)}) solved this problem.
Also adds xfce4-terminal to list of terminal emulators.
Signed-off-by: Hal Gentz<EMAIL_ADDRESS>Btw, I'm liking this new next branch. The time between prompts showing up has gone from a sluggish ~0.5s to a wonderful ~0.05s. Thank you!

Hey @ZeGentzy ,
Thanks for the PR and welcome to P9K! Glad you like it!


PowerShell prompt on mac is displayed twice

Steps to reproduce
Put the following in the profile.ps1 file:
function prompt
{
Write-Host ("PS " + $($PWD) + ":" + $(Get-Content /Users/chat/fbsource/.hg/bookmarks.current) + ")]>") -nonewline -foregroundcolor White
return " "
}
Expected behavior
Something like the following is displayed:PS PS /Users/chat/fbsource/fbandroid:TestsForLoggingCallbacks)]>
Actual behavior
The prompt text is displayed twice and upon typiing any command, the prompt text disappears
PS /Users/chat/fbsource/fbandroid:TestsForLoggingCallbacks)]> PS /Users/chat/fbsource/fbandroid:TestsForLoggingCallbacks)]>
(Type something)
hello
(Prompt text is gone)
Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.0.0-alpha
PSEdition                      Core
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   <IP_ADDRESS>
GitCommitId                    v6.0.0-alpha.9
CLRVersion
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Duplicate of #1897.


chore: release v1.723.0

fix: chainflip UTXO sends don't narrow UTXOs by senderAddress (#8375)
fix: trade token2022 solana tokens (#8365)
feat: add warnings to open orders when order cannot be filled (#8359)
fix: proper error copy for not enough native asset trades (#8367)
feat: turn chainflip DCA on in develop env (#8368)
fix: trade confirm ShapeShift fee handle user currency rate (#8364)
fix: mergefix origin/release (#8362)
feat: limit orders card amounts polish (#8355)
fix: use getBip44Params for manual addressNList (#8353)
feat: allow users to submit limit orders with insufficient balance (#8354)
fix: li.fi unstable quotes use original rate (#8350)
feat: improve quote or rate discrimination (#8309)
feat: regenerate asset data 12/12/2024 (#8349)
feat: add mixpanel event tracking for limit orders (#8343)
fix: solana send max amounts (#8327)
fix: limit order selectBuyAmountCryptoBaseUnit return int (#8333)
fix: sparks line are not displayed on mobile home page (#8341)
feat: ledger solana support (#8261)
feat: add chainflip dca (#8152)
fix: send max behavior (#8328)
fix: jupiter quote is never fetched (#8340)

Ah doesn't look like https://github.com/shapeshift/web/pull/8389 worked :(


SEO indexing

Hi, I was curious if the initial server side render that's returned gets indexed by google and bing? I'm attempting to build a site that has each route indexed by search engines and I'm concerned that isomorphic-relay-router's preloaded json data that gets returned to the client will not have a chance to be loaded into the html before the search engine attempts to index the site. Has anyone tested this aspect with google and/or bing?

JSON data it's only needed to rehydrate components client-side.
If you render your components on the server, then the search engines will see meaningiful HTML alongside a bunch of JSON which would be ignored.
Try to navigate to your page with JS disabled, you'll see just what is rendered on the server (that is pretty much what web crawlers see).

great thank you @mattecapu I think I was confused by the example todo list which came out empty on initial render but that was because it doesn't have a persistent backend to keep the todo list items.


[MDM-407] Emm is sending all of its devices in a specific tenant to AppM when user's devices are needed.

In AppM EMM integration from OSGI[1] (line 163). I can see EMM retrieve all of its devices and send it to AppM when user's devices are needed. This should be filtered to get only users devices by AppM, not all devices which is in the tenant.[1] - https://github.com/wso2/product-mdm/blob/master/modules/components/app-mgt/org.wso2.mdm.appmgt/src/main/java/org/wso2/mdm/appmgt/service/MDMOperationsImpl.javaReference: https://wso2.org/jira/browse/MDM-407

This will be improved with the new rewrite of app management component.


New data sources

Adapts to changes in JHU's repo.
Unfortunately, they no longer report recovered, hence we cannot plot active, just confirmed :(
This needs to be QAed visually, to check that the numbers make sense (as always).

thanks, merging.


clspv crashes when reinterpretcast from int4* to int*

Hi,
clspv (273c9923) crashes when reinterpretcast from int4* to int* of member of local address struct.
local_struct.cl,
struct Storage
{
  void set(const int value)
  {
    __generic int* ptr = reinterpret_cast<__generic int*>(&m_storage);
    for (size_t i = 0; i < 4; ++i)
      ptr[i] = value + static_cast<int>(i);
  }

  int sum() const
  {
    return m_storage.x + m_storage.y + m_storage.z + m_storage.w;
  }

  int4 m_storage;
};

__kernel void localTest(__global int* out, __local Storage* storage)
{
  const size_t gindex = get_global_linear_id();
  const size_t lindex = get_local_linear_id();

  __local Storage* s = storage + lindex;
  s->set(static_cast<int>(gindex));
  out[gindex] = s->sum();
}

The reinterpretcast is in the set method.
Here is the build result,
clspv --cl-std=CLC++ --inline-entry-points local_struct.cl -o local_struct
%struct.Storage = type { <4 x i32> }i32*** stack smashing detected ***: terminated
[1]    8325 abort (core dumped)  clspv --cl-std=CLC++ --inline-entry-points local_struct.cl -o local_struct

I tried it on Ubuntu 22.04.
Thanks.

Hi @rjodinchr,
I tried it with latest clspv (2f4d28e0), but I still got the following error,
clspv --cl-std=CLC++ --inline-entry-points local_struct.cl -o local_struct
%struct.Storage = type { <4 x i32> }i32[1]    58383 segmentation fault (core dumped)  clspv --cl-std=CLC++ --inline-entry-points local_struct.cl -o local_struct

Thanks.

Which is completely expected as #1039 has not been merged yet...

Oops, I didn't realize that... yeah I'll try it after merged.
Thank you.

Should be fixed now

Thanks!


Why isn't it more popular?

I've created several videos that seem to match the quality of those generated with SVD. Even though this project has a more permissive license, it's far less popular than SVD. I wonder why this could be? Is it the computational efficiency?

Thanks for your recognition of our work. I really appreciate that.
Personally, umm some reasons could be:

StabilityAI is more widely recognized for open-source AIGC projects, like Stable Diffusion, DeepFloyd, and is well-supported by the community (thrid-party integration, optimization, etc.).
Currently we are focusing more on different kinds of research projects (different applications) instead of computational efficiency. So yeah the computational efficiency is a reason.

They should focus on making it faster, so it can be generated in realtime (turboXL) using only a 4090. That is key to making it spread out. If they require industrial GPU's such as A100, it wont be spreading as much. Just look at grok, a free 300B parameter model but nobody cares since its requirements are too large.


Make sure files named as libcudnn.so.4 or libcudnn.4.dylib are placed in your library load path on OS X

Hello,
I've set up neural-style, I've already got CUDA on my machine, and I can run in CUDA mode. However, 2GB VRAM doesn't seem enough and I'm getting out-of-memory errors so I want to try cuDNN backend.
I've installed cuDNN 4 from NVIDIA, put it into an appropriate directory. I also ran luarocks install cudnn and it executed with no errors. I do have libcudnn.4.dylib in my LD_LIBRARY_PATH and I verify it's correct:
    canp:~ Can$ echo $LD_LIBRARY_PATH
    /Users/Can/torch/install/lib:/Developer/NVIDIA/CUDA-7.5/lib

It's right there in /Developer/NVIDIA/CUDA-7.5/lib, however when I try neural-style with cuDNN backend I'm getting an error:
/Users/Can/torch/install/bin/luajit: /Users/Can/torch/install/share/lua/5.1/trepl/init.lua:384: /Users/Can/torch/install/share/lua/5.1/trepl/init.lua:384: /Users/Can/torch/install/share/lua/5.1/cudnn/ffi.lua:1278: 'libcudnn (R4) not found in library path.
Please install CuDNN from https://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so.4 or libcudnn.4.dylib are placed in your library load path (for example /usr/local/lib , or manually add a path to LD_LIBRARY_PATH)

Why am I getting this even though I have the library at the correct path?

Okay, after reading this https://github.com/soumith/cudnn.torch/issues/178 I've tried copying libcudnn to /usr/local/lib and it worked.


Move type_coercion to the front of logical optimizer

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
This is just a placeholder, which we can't do this until completing #4615.
Type_coercion and type checking is something we must do on a query, not an optional optimizing pass. So it is more reasonable to move it to the front of the logical optimization.
Also, we should try to remove the type_coercion in physical plan, so that our queries can be totally statically typed.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I commented on #4615 with a DF use case (for IOx) that I think also relevant here: https://github.com/apache/arrow-datafusion/issues/4615#issuecomment-1483288017

Close this as it has been fixed by #5831


Error when updating, installing module, and upgrading.

I tried to use: composer install doctrine/doctrine-orm-module and I get an error:
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package zfcampus/zf-apigility-admin-ui (locked at 1.2.2, required as ^1.2.3) is satisfiable by zfcampus/zf-apigility-admin-ui[1.2.2] but these conflict with your requirements or minimum-stability.
  Problem 2
    - Can only install one of: zendframework/zend-hydrator[1.1.0, 1.0.0].
    - Can only install one of: zendframework/zend-hydrator[1.1.0, 1.0.0].
    - Can only install one of: zendframework/zend-hydrator[1.1.0, 1.0.0].
    - doctrine/doctrine-orm-module 1.0.0 requires zendframework/zend-hydrator ^1.1 -> satisfiable by zendframework/zend-hydrator[1.1.0].
    - Installation request for doctrine/doctrine-orm-module ^1.0 -> satisfiable by doctrine/doctrine-orm-module[1.0.0].
    - Installation request for zendframework/zend-hydrator (locked at 1.0.0) -> satisfiable by zendframework/zend-hydrator[1.0.0].
```

If I try to update: `composer update`, error again:

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message
'Module (AssetManager) could not be initialized.' in C:\apigility\vendor\zendframework\zend-
modulemanager\src\ModuleManager.php:203 Stack trace: #0 C:\apigility\vendor\zendframework\zend-
modulemanager\src\ModuleManager.php(175): Zend\ModuleManager\ModuleManager-

loadModuleByName(Object(Zend\ModuleManager\ModuleEvent)) #1
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php(97):
Zend\ModuleManager\ModuleManager->loadModule('AssetManager') #2 [internal function]:
Zend\ModuleManager\ModuleManager-
onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) #3
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(490):
call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) #4
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(251): Zend\EventMa in
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php on line 203

If I try to solve the `AssetManager` removal with: `vendor/bin/apigility-upgrade-to-1.5.bat`, error again:

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message
'Module (ZF\DevelopmentMode) could not be initialized.' in C:\apigility\vendor\zendframework\zend-
modulemanager\src\ModuleManager.php:203 Stack trace: #0 C:\apigility\vendor\zendframework\zend-
modulemanager\src\ModuleManager.php(175): Zend\ModuleManager\ModuleManager-

loadModuleByName(Object(Zend\ModuleManager\ModuleEvent)) #1
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php(97):
Zend\ModuleManager\ModuleManager->loadModule('ZF\DevelopmentM...') #2
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(271):
Zend\ModuleManager\ModuleManager-
onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) #3
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(143):
Zend\EventManager\EventManager->triggerListeners(Object(Zend\ModuleManager\ModuleEven in
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php on line 203

edit:

I discovered what happened for the `DevelopmentMode` error. Before updating I used the zftool to create a module and it modified the `application.config.php` instead of the `modules.config.php`... After removing the `application.config.php` and renaming `application.config.php.old` to `application.config.php` I got new errors:

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message
'Module (Zend\Hydrator) could not be initialized.' in C:\apigility\vendor\zendframework\zend-
modulemanager\src\ModuleManager.php:203 Stack trace: #0
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php(175):
Zend\ModuleManager\ModuleManager-

loadModuleByName(Object(Zend\ModuleManager\ModuleEvent)) #1
C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php(97):
Zend\ModuleManager\ModuleManager->loadModule('Zend\Hydrator') #2
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(271):
Zend\ModuleManager\ModuleManager-
onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) #3
C:\apigility\vendor\zendframework\zend-eventmanager\src\EventManager.php(143):
Zend\EventManager\EventManager->triggerListeners(Object(Zend\ModuleManager\ModuleEvent)) #4
C:\ in C:\apigility\vendor\zendframework\zend-modulemanager\src\ModuleManager.php on line 203

I'm kinda stuck, what can I do?

PHP: 5.6.24

I solved following this manual  instead of using the script.

@viyirenov should be solved soon https://github.com/doctrine/DoctrineORMModule/pull/479

Closing as it's related to https://github.com/doctrine/DoctrineORMModule dependencies

@jguittard I though I solved but it's not working when I try to access any route, this is what I get:
Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' with
message 'A plugin by the name "translate" was not found in the plugin manager
Zend\View\HelperPluginManager' in C:\apigility\vendor\zendframework\zend-
servicemanager\src\AbstractPluginManager.php:133 Stack trace: #0
C:\apigility\vendor\zendframework\zend-view\src\Renderer\PhpRenderer.php(373):
Zend\ServiceManager\AbstractPluginManager->get('translate', NULL) #1
C:\apigility\vendor\zendframework\zend-view\src\Renderer\PhpRenderer.php(391):
Zend\View\Renderer\PhpRenderer->plugin('translate') #2
C:\apigility\module\Application\view\error\index.phtml(1): Zend\View\Renderer\PhpRenderer-
>__call('translate', Array) #3 C:\apigility\module\Application\view\error\index.phtml(1):
Zend\View\Renderer\PhpRenderer->translate('An error occurr...') #4
C:\apigility\vendor\zendframework\zend-vie in C:\apigility\vendor\zendframework\zend-
servicemanager\src\AbstractPluginManager.php on line 133
```

The only problem is that I can't do anything to install doctrine cause of the updates they made on the modules and I have to finish a job for tomorrow, I'm kinda stuck with errors. :(

It looks like there is a mess with your dependencies...
About the translate plugin, you may resolve it by adding:
composer require zendframework/zend-mvc-i18n

in your composer file and:
'modules' => [
    /** ... */
    'Zend\Mvc\I18n'
    /** ... */
],

As for Doctrine, there **are** solutions to make it work and compliant with ZF 3.0 packages. But it's in WIP for now. We are a few to work on it, should be available soon, but no release date. At least not tomorrow...

I'd suggest you either rollback to stable and compatible ZF 2.* packages, or dive into Doctrine config for your night...

Hope it helps (a bit)... Good luck anyway!

@jguittard
I installed composer require zendframework/zend-mvc-i18n, updated the configuration file and the error doesn't go away:

I'd suggest you either rollback to stable and compatible ZF 2.* packages, or dive into Doctrine config for your night...

I can't, if I install apigility and try to install the doctine I get an error saying: Your requirements could not be resolved to an installable set of packages. (the first error on this issue).
I can't require doctrine module, nor put it on my composer.json and try to update cause it will update to the latest apigility and all the other errors come with it.
I'm kinda stuck, I don't know how to solve that.

Yay, I solved the last error:
I had to delete the cache, use composer require zendframework/zend-mvc-i18n, and add this to my configuration file:
'modules' => [
     'Zend\I18n',
     'Zend\Mvc\I18n',
     // ...
],

That's a start... 👍
Now, do you intend to use zf-apigilty-doctrine or just doctrineORMModule?

I don't know how to use zf-apigility-doctrine, there are no documentation, at least I couldn't find anything helpful.
And now I can't install doctrineORMModule :-1:
Your requirements could not be resolved to an installable set of packages.
Oh gosh...
@Ocramius @weierophinney @webimpress @jguittard

@viyirenov zf-apigility-doctrine is not ready yet. I'm working on it in https://github.com/zfcampus/zf-apigility-doctrine/pull/267
Please be patient :)

Is there a way for me o rollback to apigility with ZF 2.* and install doctrine without getting errors?

@viyirenov There are some documentation, even an implementation in the UI Admin I myself made :)
I agree there is a lack of thorough documentation and/or (video) tutorials. But zf-apigility-doctrine basically just relies on your (existing) Doctrine configuration.
@webimpress thanks for taking care of it. I'm drowned with tons of work those last months. I'll review once you're done ;) 👍

@viyirenov Of course there is, just stick with a 1.3.* version of the skeleton. And watch your constraint keys when you add dependencies (~, *, ^, ...) like Doctrine. It has a huge impact when you launch composer update ;)

@jguittard
I tried to install the apigility 1.3.3 using:
composer create-project -sdev zfcampus/zf-apigility-skeleton:^1.3.3
and the doctrine orm module with:
composer require doctrine/doctrine-orm-module:0.*
And with no success, the error remains:
The requested package zfcampus/zf-apigility-admin-ui (locked at 1.2.2, required as ^1.2.3) is satisfiable by zfcampus/zf-apigility-admin-ui[1.2.2] but these conflict with your requirements or minimum-stability.

@viyirenov do a simple composer update after installing the skeleton and before requiring doctrine-orm-module ;)

@jguittard Thank you very much, it's solved. I hope the new version come soon.

I did and it updated to the latest version of the apigility and again, the same errors.

Is there anyone to help me with that?

I did install composer create-project -sdev zfcampus/zf-apigility-skeleton:^1.3.3 and a composer update and doctrine, everything went fine

@jguittard Have you tried to create the server php -S <IP_ADDRESS>:8080 -t public and enter? It doesn't load the assets, that is what is wrong. Doctrine is installing, but I think that some module updated and now it doesn't work no matter the skeleton version.

I solved the problem and here is the steps:
1 - Install the apigility skeleton version 1.3.1:
composer create-project -sdev zfcampus/zf-apigility-skeleton:^1.3.3
2 - Update using composer (using --lock to make sure it won't update to the latest versions and mess everything up):
composer update --lock
3 - Put the doctrine requirement on your composer.json:
    "require": {
        // ....
        "doctrine/doctrine-orm-module": "0.*"
    },

4 - Update using composer again in order to add the doctrine to the vendor folder - and to the lock file as well:
composer update --lock
I hope it helps someone.


Update bug-check-0x6b--process1-initialization-failed.md

I found this documentation on a website called Geoff Chappell, software analyst, and doing some testing I've discovered that the parameters are true, so it would be interesting to update this otherwise too bland documentation on this bugcheck. Thank you.

(Closed and reopened to get a build..)

Docs Build status updates of commit 8e841dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-driver-docs-pr/debugger/bug-check-0x6b--process1-initialization-failed.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@RubberWarrior1999 - Thanks for this contribution, I need to check with the dev team and confirm before we can publish this, thanks again.

Docs Build status updates of commit 8e841dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-driver-docs-pr/debugger/bug-check-0x6b--process1-initialization-failed.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 8e841dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-driver-docs-pr/debugger/bug-check-0x6b--process1-initialization-failed.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Refactor renumerate_stages

https://github.com/gogoair/foremast/blob/master/src/foremast/pipeline/renumerate_stages.py
This can be refactored to be more agnostic to stage names. Right now it is kind of specific to the Gogo workflow but there should be a better way.

I am going to take a stab on this.
some ideas are to use letters to signify main path or parallel stage.
Anything with a is main path, b is parallel and required, c is parallel and not required.
i'll experiment around


Guide for testing team!

Description
As described in Issue no. 141, I took screenshots of how to test a particular PR by using apks instead of Android Studio. Uploaded the screenshots in docs/images/testing and created the markdown file in docs/ folder.
Fixes #141
Type of Change:

Documentation

Code/Quality Assurance Only

This change requires a documentation update (software upgrade on readme file)

Checklist:
Delete irrelevant options.

[x] My PR follows the style guidelines of this project
[x] I have made corresponding changes to the documentation

Code/Quality Assurance Only

[x] My changes generate no new warnings

@anitab-org/qa-team please check how this is and add any suggestions if required

Would it be better to upload the screenshots to the issue as a comment and then use the links from there, rather than uploading them under the repo?

Ah! It would be better maybe but I don't know how to do so and when an issue is closed, we can still use the links?
Till now I've been using the links by uploading them in the repo itself. I created another folder in the docs/images and then uploaded the screenshots as I thought that it already had an images folder in the docs folder.

Hi, is this going to be checked? Is something wrong?

@rohankumawat any updates?

@rohankumawat any updates?

I'll do it soon as my exams came but I want to ask this thing that I only have to upload the images as an issue first. Then use those links to do the respective task or use the links in the README.md file. Is that how I'm supposed to do?

@rohankumawat any updates?

I'll do it soon as my exams came but I want to ask this thing that I only have to upload the images as an issue first. Then use those links to do the respective task or use the links in the README.md file. Is that how I'm supposed to do?

yep

@rohankumawat any updates?

I'll do it soon as my exams came but I want to ask this thing that I only have to upload the images as an issue first. Then use those links to do the respective task or use the links in the README.md file. Is that how I'm supposed to do?

yep

And I should create another pull request, right?


feat(cli): Views Introspection Warnings

Added new warnings for views introspection:

21: IntrospectionWarningsUnsupportedTypesInViews
22: IntrospectionWarningEnrichedWithMapOnFieldInViews
23: IntrospectionWarningEnrichedWithMapOnView
24: IntrospectionWarningViewsWithoutIdentifier
25: IntrospectionWarningEnrichedWithCustomPrimaryKeyNamesInViews

TODO
handling in DbPull.ts
closes #17578

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

hm, we seem to lose type information here when using includes. but also I don't see an easy way to just add the annotation manually. Do we want to update the imports to add that annotation? or should I manually check equality on all of the codes in this case

Warning Code 21
create table reservations(
  id int primary key,
  room varchar not null,
  dates daterange not null
);

create view res as select id, room, dates from reservations;

add to your schema.prisma -- otherwise the following warning message will be obfuscated by a warning that the view has no PK
view res {
  id    Int @id
}

then running db pull will yield:
view res {
  id    Int                       @id
  room  String?                   @db.VarChar
  dates Unsupported("daterange")?
}

and the following output in the cli

Warning Code 22
CREATE VIEW "A" AS SELECT 1 AS id;

running db pull will yield:
/// The underlying view does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client.
view A {
  id Int?

  @@ignore
}

and the following output in the cli

Warning Code 23
CREATE VIEW "if" AS SELECT 1 AS id;

running db pull will yield:
/// This view has been renamed to 'Renamedif' during introspection, because the original name 'if' is reserved.
/// The underlying view does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client.
view Renamedif {
  id Int @id

  @@map("if")
  @@ignore
}

and the following output in the cli -- note this cli output is obfuscated by the lack of id attribute so one would first need to manually add the following to their schema to get this output.
view Renamedif {
  id Int @id

  @@map("if")
}

Warning Code 24
CREATE TABLE "User" (
  id SERIAL PRIMARY KEY,
  first_name VARCHAR(255) NOT NULL,
  last_name VARCHAR(255) NULL
);

CREATE VIEW "Schwuser" AS
  SELECT id, first_name, last_name FROM "User";

running db pull will yield:
model User {
  id         Int     @id @default(autoincrement())
  first_name String  @db.VarChar(255)
  last_name  String? @db.VarChar(255)
}

/// The underlying view does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client.
view Schwuser {
  id         Int?
  first_name String? @db.VarChar(255)
  last_name  String? @db.VarChar(255)

  @@ignore
}

and the following output in the cli

Warning Code 25
CREATE VIEW "B" AS SELECT 1 AS a, 2 AS b;

running db pull will yield:
/// The underlying view does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client.
view B {
  a Int?
  b Int?

  @@ignore
}

and the following output in the cli -- note this cli output is obfuscated by the lack of id attribute so one would first need to manually add the following to their schema to get this output.
view B {
  a Int
  b Int

  @@id([a, b], name: "kekw")
}

Warning Code 26
CREATE VIEW "A" AS SELECT 2 AS foo, 1 AS "1";

running db pull will yield:
/// The underlying view does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client.
view C {
  foo Int?

  /// This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]*
  // 1 Int? @map("1")
  @@ignore
}

and the following output in the cli

22 is now tracked by test :)


Use proper Make target for EKS-A admin image build

PR #1456 referenced a new Make target that is not available in the Makefile.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


First draft of a dynamic select clause feature in diesel-dynamic-schema

Blocked on https://github.com/diesel-rs/diesel/pull/2182

Hi, is there a way to test this implementation? I tried importing both Diesel and diesel-dynamic-schema from the Git sources and I'm getting compiling errors, I'm using rustc 1.41.0-nightly (27d6f55f4 2019-12-11):
[dependencies.diesel]
git = "https://github.com/GiGainfosystems/diesel"
branch = "feature/dynamic_queries"
features = ["postgres", "chrono", "uuidv07"]

[dependencies.diesel-dynamic-schema]
git = "https://github.com/GiGainfosystems/diesel-dynamic-schema.git"
branch = "feature/dynamic_query"

I get a bunch of
error: cannot find macro `sql_function_proc` in this scope
   --> /home/razican/.cargo/git/checkouts/diesel-ef4452c01f35a8ae/25233a5/diesel/src/expression/functions/mod.rs:167:9
    |
165 | / macro_rules! sql_function {
166 | |     ($($args:tt)*) => {
167 | |         sql_function_proc! { $($args)* }
    | |         ^^^^^^^^^^^^^^^^^ help: a macro with a similar name exists: `sql_function`
168 | |     }
169 | | }
    | |_- similarly named macro `sql_function` defined here
    |
   ::: /home/razican/.cargo/git/checkouts/diesel-ef4452c01f35a8ae/25233a5/diesel/src/expression/functions/aggregate_folding.rs:3:1
    |
3   | / sql_function! {
4   | |     /// Represents a SQL `SUM` function. This function can only take types which are
5   | |     /// Foldable.
6   | |     ///
...   |
21  | |     fn sum<ST: Foldable>(expr: ST) -> ST::Sum;
22  | | }
    | |_- in this macro invocation

And
error: cannot find derive macro `NonAggregate` in this scope
  --> /home/razican/.cargo/git/checkouts/diesel-ef4452c01f35a8ae/25233a5/diesel/src/expression/operators.rs:64:65
   |
64 |         #[derive(Debug, Clone, Copy, QueryId, DieselNumericOps, NonAggregate)]
   |                                                                 ^^^^^^^^^^^^
   |
  ::: /home/razican/.cargo/git/checkouts/diesel-ef4452c01f35a8ae/25233a5/diesel/src/pg/expression/operators.rs:11:1
   |
11 | postfix_operator!(NullsLast, " NULLS LAST", (), backend: Pg);
   | ------------------------------------------------------------- in this macro invocation

And even:
error[E0277]: the trait bound `expression::operators::Eq<pg::metadata_lookup::pg_type::columns::typname, expression::bound::Bound<sql_types::Text, &str>>: expression::NonAggregate` is not satisfied
  --> /home/razican/.cargo/git/checkouts/diesel-ef4452c01f35a8ae/25233a5/diesel/src/pg/metadata_lookup.rs:34:25
   |
34 |                 .filter(typname.eq(type_name))
   |                         ^^^^^^^^^^^^^^^^^^^^^ the trait `expression::NonAggregate` is not implemented for `expression::operators::Eq<pg::metadata_lookup::pg_type::columns::typname, expression::bound::Bound<sql_types::Text, &str>>`
   |
   = note: required because of the requirements on the impl of `query_dsl::filter_dsl::FilterDsl<expression::operators::Eq<pg::metadata_lookup::pg_type::columns::typname, expression::bound::Bound<sql_types::Text, &str>>>` for `query_builder::select_statement::SelectStatement<pg::metadata_lookup::pg_type::table, query_builder::select_clause::SelectClause<(pg::metadata_lookup::pg_type::columns::oid, pg::metadata_lookup::pg_type::columns::typarray)>>

Am I doing something wrong? I'm using Rocket with Diesel, with the same repo (https://github.com/Razican/Rocket/tree/async_dynamic_diesel).

Just using a git dependency don't work for diesel, because we've a internal dependency on diesel_derives. You need to use a [replace] or [patch.crates-io] section for diesel and diesel_derives.

Cool! that worked. I will now try this :)
For those with the same issue, the required configuration was the following:
[dependencies]
diesel = { version = "=1.4.3", features = ["postgres", "chrono", "uuidv07"] }

[replace]
"diesel:1.4.3" = { git = "https://github.com/GiGainfosystems/diesel", branch = "feature/dynamic_queries" }
"diesel_derives:1.4.1" = { git = "https://github.com/GiGainfosystems/diesel", branch = "feature/dynamic_queries" }

The features can be any, and there is no need to fork Rocket if you are using it.

Hi @weiznich, I seem to be running into problems with this. I am using the code from the dynamic_query3() test, but I'm getting multiple errors:
error[E0277]: the trait bound `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>: diesel::Expression` is not satisfied
   --> src/lib.rs:107:15
    |
107 |         users.select(select).load(&*db_conn).unwrap();
    |               ^^^^^^ the trait `diesel::Expression` is not implemented for `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>`
    |
    = note: required because of the requirements on the impl of `diesel::query_dsl::select_dsl::SelectDsl<diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>>` for `diesel_dynamic_schema::table::Table<&str, &str>`

error[E0277]: the trait bound `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>: diesel::Expression` is not satisfied
   --> src/lib.rs:107:22
    |
107 |         users.select(select).load(&*db_conn).unwrap();
    |                      ^^^^^^ the trait `diesel::Expression` is not implemented for `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>`

error[E0277]: the trait bound `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>: diesel::Expression` is not satisfied
   --> src/lib.rs:107:30
    |
107 |         users.select(select).load(&*db_conn).unwrap();
    |                              ^^^^ the trait `diesel::Expression` is not implemented for `diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>`
    |
    = note: required because of the requirements on the impl of `diesel::query_dsl::LoadQuery<_, _>` for `diesel::query_builder::SelectStatement<diesel_dynamic_schema::table::Table<&str, &str>, diesel::query_builder::select_clause::SelectClause<diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>>>`

error[E0277]: the trait bound `diesel_dynamic_schema::dynamic_value::DynamicRow<diesel_dynamic_schema::dynamic_value::NamedField<list_table::{{closure}}#0::MyDynamicValue>>: diesel::Queryable<_, diesel::pg::Pg>` is not satisfied
   --> src/lib.rs:107:30
    |
107 |         users.select(select).load(&*db_conn).unwrap();
    |                              ^^^^ the trait `diesel::Queryable<_, diesel::pg::Pg>` is not implemented for `diesel_dynamic_schema::dynamic_value::DynamicRow<diesel_dynamic_schema::dynamic_value::NamedField<list_table::{{closure}}#0::MyDynamicValue>>`
    |
    = note: required because of the requirements on the impl of `diesel::query_dsl::LoadQuery<diesel::PgConnection, diesel_dynamic_schema::dynamic_value::DynamicRow<diesel_dynamic_schema::dynamic_value::NamedField<list_table::{{closure}}#0::MyDynamicValue>>>` for `diesel::query_builder::SelectStatement<diesel_dynamic_schema::table::Table<&str, &str>, diesel::query_builder::select_clause::SelectClause<diesel_dynamic_schema::dynamic_select::DynamicSelectClause<'_, diesel::pg::Pg, diesel_dynamic_schema::table::Table<&str, &str>>>>`

error: aborting due to 4 previous errors

I checked the code, and it seems that the Expression trait for DynamicSelectClause requires the postgres feature, not available in the crate's Cargo.toml:
#[cfg(feature = "postgres")]
impl<'a, QS> Expression for DynamicSelectClause<'a, diesel::pg::Pg, QS> {
    type SqlType = crate::dynamic_value::Any;
}

Maybe I'm doing something wrong? I tried to compile the crate and to run the tests, but I'm getting similar errors to those in Travis.

@Razican That PR version was not really meant to be used from someone, it was just there for discussion of the API.  I've uploaded a fixed version that should work as long as you use the same diesel version everywhere.

Thanks @weiznich, it compiles now. I will try it out to see how it feels to use it, but it seems pretty good to me for now. I would maybe add the MyDynamicValue as a type of this crate, with all the Diesel types, in order to enforce consistency.

In my opinion exposing something like MyDynamicValue is not a great idea, because it really depends on the use case what values you want to support there. Maybe adding a custom derive for the FromSql impl could be a variant. (That's something that should be discussed with @diesel-rs/contributors ).

After working with this for some time, I feel that DynamicRow would benefit from implementing Iterator<NamedField<I>> or IntoIterator, or something to be able to iterate on the fields of the row, without having to know the column names in advance.
I had to implement this to convert the row into JSON:
// Transform the list of records to JSON format.
Ok(record_list
    .into_iter()
    .map(|row| {
        let mut record = Record::new();
        for column_name in &column_list {
            if let Some(value) = row.get_by_name(column_name) {
                let _ = record.insert(column_name.to_owned(), value.clone().into());
            }
        }
        record
    })
    .collect())

But it would be easier being able to iterate over the row fields. It would be more efficient and I avoid passing the list of columns.

Hi @weiznich does this now depend on the 2.0 branch of Diesel? Is there a way to make it work wit 1.4? If not, I guess it will not be possible to integrate this with a Rocket application for the time being, right?

@Razican This depends on the diesel 2.0 branch from the beginning. There is no way to make this ever work with 1.4. Additionally to make this clear again: This is a development version. I do not want to support running that in third party applications in any way, for obvious reasons. If you really want to use a random unfinished WIP PR in your application your are on your own. Otherwise the fasted way to get this workable in an official release is by contributing to diesel/diesel-dynamic-schema for the remaining release blocker.


Codecov

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master       #2   +/-   ##
=======================================
  Coverage   50.00%   50.00%
=======================================
  Files           1        2    +1
  Lines           4        8    +4
=======================================
+ Hits            2        4    +2
- Misses          2        4    +2

Impacted Files
Coverage Δ

CodeCovExample/Classes/CDCVFuga.m
100.00% <ø> (ø)

CodeCovExample/Classes/CDCVHoge.m
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6ff3600...ed30d30. Read the comment docs.


Just launch IE and visit URL?

Is there a way to just launch IE and have it join the room hosted on another server?
I have my test server running on linux, and I want to test IE by using a VM.

Yes. Run testem in dev mode, and then point your browser to the host that's running that server. But in ci mode this is more difficult to do.

For the CI job, I am planning to

start the server in the master ( testem server )
and having downstream jobs to kick off ci mode in the slaves. ( testem ci --host=master --port=7327 )

Is this somewhat correct setup?

Testem doesn't have a way to support a master/slave configuration right now.


handle empty msgs

add handling to incoming empty log messages from cloudwatch

@neut0ne The build failed,
./parse.go:111:1: syntax error: unexpected EOF, expecting }
Also you have just added for cloudwatch, not for other services.

Ok, adding for all and fixing EOF


is "wait=true" implemented?

I used MathJax and knew you could postpone showing the text before rendering, but didn't see anything to control it in your readme, but noticed it in your source and also your example. It does not work. Is there more to it than just adding {{#mathjax wait=true}}?
Update:
If there is an Each loop inside of a Mathjax with wait=true, you get [Error] Error: {{#each}} currently only accepts arrays, cursors or falsey values.
Hmm, I'll figure this out!

@tikitariki Good catch! I will look into it.

Has this ever been solved?
Something like the following code will render immediately before mathjax is done processing it
  <p>$2+3 = 5$</p>
  {{/mathjax}}```

Thanks

@tikitariki I decided to get rid of this option because the latest version of MathJax is performing all rendering asynchronously by default and I am not sure if there's an option to change this behavior.


[teleport-ent-proxy] Allow configuration of a list of Kubernetes endpoints

what
Add the ability to configure a list of Kubernetes endpoints in the Teleport proxy
why
In a Trusted cluster configuration, the trusted proxy will proxy endpoints for every trusting cluster's Kubernetes cluster, and needs to know their names so that it can include their names in the X.509 certificates it generates.

$proxyurl is generally correct in the single-cluster case