Add ability to set a contact method your default contact method

@aimane-chnaif I'm sorry but you probably won't be able to complete these tests till https://github.com/Expensify/Web-Expensify/pull/36920 gets to staging
Also cc @cristipaval since you've been helping work on similar pages for a while now 👍
Details

Adds one more piece of functionality for contact methods: Being able to set them as default.
Note: In OldDot, we have some domain security settings that disable users from changing their default login. However, none of the domain functionality is on NewDot (yet) so we are only pulling in the user's domain security group data so we can make sure the user knows if they are or aren't able to update their primary login (default contact method).
Fixed Issues
$ https://github.com/Expensify/App/issues/16747
Tests

~If https://github.com/Expensify/Web-Expensify/pull/36920 isn't merged yet, check it out to start testing~
Open up OldDot, sign in with a domain admin account

Note: Your account should be on the passwordless beta (or if you're an Expensify employee, you should already have access to all betas)
You can probably fake this by returning true in Permissions.canUsePasswordlessLogins

Go to domain settings, check out the security group settings for that account you're signed in as. Make sure "Restrict primary login selection" is false

Log in to NewDot with that same account, go to http://localhost:8080/settings/profile/contact-methods
Add a secondary login and verify it
Now open that contact method's "details" page, and verify you see the "Set as default" button

Click the button, verify your secondary login was correctly set as default.

You should now see "This is your current default contact method. You will not be able to delete this contact method until you set an alternative default by selecting another contact method and pressing “Set as default”." on that contact's details page

Change back to your other login as default
Next, back in OldDot domain settings, change "Restrict primary login selection" to true

Back on http://localhost:8080/settings/profile/contact-methods, refresh NewDot
Open up your secondary login's "details" page
Verify you now only see the "Delete" option

[ ] Verify that no errors appear in the JS console

Offline tests

Switch your security group to not have primary login switching disabled again (same as step 3 above)
Refresh NewDot and open up the details page of your secondary login you've been testing with
Go offline, click "Set as default"
Verify you see the button is now grayed out, like this:

QA Steps
Same as above

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] 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)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

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

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

[x] 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)
[x] I followed proper code patterns (see Reviewing the code)

[x] 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)
[x] I verified that comments were added to code that is not self explanatory
[x] 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.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] 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.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] 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)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] 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
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] 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)
[x] 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)
[x] All JSX used for rendering exists in the render method
[x] 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

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

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

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

[x] 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)
[x] 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.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/3885503/230400750-ff0f6927-4294-4c16-bc8c-2a589531097b.mov
Domain setting change test:
https://user-images.githubusercontent.com/3885503/233671700-bb141e3f-429c-4cf8-bd29-91fcd10dac5f.mov

Mobile Web - Chrome
Domain setting change test:
https://user-images.githubusercontent.com/3885503/233676876-81551abd-dc4e-4666-af32-7ac1048793fc.mov

Mobile Web - Safari

Desktop
Domain setting change test:
https://user-images.githubusercontent.com/3885503/233673669-cf2a3098-7f5e-4895-9db7-870c0c443835.mov

iOS

Android
Domain setting change test:
https://user-images.githubusercontent.com/3885503/233676459-fe1cb4d6-562e-470d-9f62-7790a4998403.mov

@aimane-chnaif @deetergp One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

FYI I haven't completed the videos on all platforms yet, mainly because my wifi is MISERABLE today and it's really slowing down lots of things 🙃

One more point I'm thinking about with this PR: How to show the Password textinput for users not on the passwordless beta
Internal slack convo here

@aimane-chnaif

Not related to PR, but I am a bit confused why it says "Phone number" to add new contact method, while both email and phone number are acceptable.

Yeah good question, don't worry too much about that since that's the LoginField which @cristipaval is removing very very soon in this PR: https://github.com/Expensify/App/pull/15330

Though I am not in passwordless beta, it still shows magic code input. This is not handled yet, right?

Correct, it's noted in this polish issue for multiple contact methods-related updates: https://github.com/Expensify/App/issues/16666

Waiting on confirmation from one question - basically we've gone back 'n forth on showing or not showing a password field for "Set as default" functionality (for non-passwordless users).

Waiting on confirmation from one question - basically we've gone back 'n forth on showing or not showing a password field for "Set as default" functionality (for non-passwordless users).

Ok so the plan now is to only show "Set as default" functionality for passwordless users so that we don't need the password input at all on the contact method details page 👍

@aimane-chnaif @deetergp @cristipaval  I believe this PR is ready for review!!
Note: I didn't finish all the videos, sorry about that - I'm mainly OOO this week but I'd love if we can get this merged by EOW, so I'll try to jump on to respond to any questions / bugs you may find 😬

Alright @aimane-chnaif , it's ready for review. Please prioritize this tomorrow, we want to get Contact Methods out the door.

Bump @aimane-chnaif - any chance you can get to this early this week? If not maybe need to assign a new C+

@aimane-chnaif yes agreed - feel free to mention them here but I'd probably recommend posting them in Slack too and tagging me and / or @cristipaval

@aimane-chnaif I enabled passwordless beta for your accounts.

When both accounts are passwordless, this error happens. Is this expected?
I created 2 new accounts<EMAIL_ADDRESS><EMAIL_ADDRESS>and you made them passwordless. No other actions I did.
I tried to add<EMAIL_ADDRESS>as default method in<EMAIL_ADDRESS>account.

@aimane-chnaif yeah in this case, if both<EMAIL_ADDRESS>and<EMAIL_ADDRESS>are already completely unique accounts, you won't be able to add either as a 2ndary login, you'll have to merge them first. I'm not 100% sure where we're at with merging accounts in NewDot, I'll ask in Slack 👍

Ok so just so we're all on the same page:

We don't need to test the passwordless / non-passwordless combination accounts since all accounts will be passwordless very soon 💪
@aimane-chnaif doesn't have an account that's not on a public domain, so @deetergp @cristipaval @Beamanator one of us will have to test this flow (specifically, editing domain security group settings to allow / disallow the changing of primary logins)
@aimane-chnaif are you able to at least test the offline case & post videos of that & successfully setting a contact method as default on a public domain account? (a.k.a. an email address w/<EMAIL_ADDRESS>or a phone number account)

Ok finished & uploaded the test (changing domain settings & seeing the update reflected in EChat) on all platforms except iOS, will try to do that tonight

Uploaded videos on all platforms for changing domain security groups & seeing the updates in NewDot 👍
Thanks for the approval @cristipaval ! 👍
@aimane-chnaif are you able to finish testing today or no?

@aimane-chnaif thanks for noting what happens in that flow! @cristipaval and I agreed that is something we should handle eventually but is a super edge case so we'll add it to the list of contact method polish items (here). To add to this point, I believe that case could also happen if you have 2 clients logged in at the same time and you set the same contact method as default on both devices at the same time. AGain, this is an extreme edge case so we don't care to handle that now, but we'll handle as a follow-up.
Please proceed with testing, thanks 🙏 👍

@Beamanator when add new email (not signed up Expensify yet) as secondary contact and then set it as default, what's the expected behavior?

@aimane-chnaif  I'm not exactly sure what you mean - a secondary login / contact method is just another way for you to log in to the same account

Hmm this is being hit: https://github.com/Expensify/App/blob/7d23b518b953c6ea2caa7ea812b874c18bb4be5d/src/pages/settings/InitialSettingsPage.js#L270-L272

Ohhhhhh the user's new contact method is not set in personalDetails yet, which is why that returns undefined 👍

@aimane-chnaif great catch on that case, hopefully it's fixed now 🙏  Please test again when you get a chance!

@aimane-chnaif I added this test to cover the new case we just solved:

Final test to make sure personal details update correctly:

Create a brand new account on a public domain (ex<EMAIL_ADDRESS>Add a new contact method for this account
Set the new contact method as default
Close the sidebar, open settings
Verify the settings page shows all of the correct data immediately
Navigate to other pages of the app, send messages, etc - making sure nothing is broken and that no console errors show up

@aimane-chnaif I'm back to bump this 😬 Have you had a chance to test that flow again?

Thanks @aimane-chnaif - I will try to test that out soon 🙏

Another interesting thing happening is: When we get report actions (I assume using OpenReport), we send an actorEmail that matches the user's current default login. When the default login changes, report actions don't update (with the new user login) - but if we refresh they get updated.
So we either need to:

Optimistically change actorEmail in ALL reports & ALL actions sent by the logged in user, or
Figure out how to use the session email for the logged-in user

Note: In the future we "may" want to tell other users when your default login email changes. Iff we end up doing that, we'll run into the same issue for having to update all of the reportActions in other chat reports 🤔  I'll probably have to start a quick discussion in slack to get some ideas what we prefer here

Ok I asked for ideas / thoughts on the solutions here: https://expensify.slack.com/archives/C01GTK53T8Q/p1682697131052759

@aimane-chnaif yes thanks will do, I think I may have to put this on hold for a bit, but I'm planning to start a discussion in Slack soon

Alright in slack here I mentioned it would be nice to move forward without dealing with the updating of report actions (when a contact method is set as default) because:

This would be a very large undertaking for this PR
There's already a planned similar change (re-keying personal details by accountID)
We don't want to delay this PR any longer b/c this is the last major change for the Account Settings project!

So I'm working on pulling main & retesting, then I'll ask @aimane-chnaif to do the same before we move to hopefully get this merged soon!

Ok @aimane-chnaif I tested again and everything looks like it's working well 👍
Can you & @cristipaval please test when you have a chance? (I know @aimane-chnaif you can't test the domain security group changes, so hopefully @cristipaval / @deetergp can test that 🙏 )

Thanks @aimane-chnaif - yeah notifications are super mucked up right now haha

Good point @aimane-chnaif - I made the change to only update the current client instantly, I will definitely add that as a follow-up to make sure other devices get the same update 👍

Thanks for reviewing @aimane-chnaif !

Another bug:

X set profile avatar A
change default contact to Y
Y now has same avatar as X (A)
on Y, set profile avatar B
change default contact back to X
X's avatar changed to B

So my question is one profile avatar is shared between contacts?

It sounds like this is expected - the user should only ever have 1 profile avatar. If you change your default contact method, the avatar should stay the same. That's what's happening, right? Just making sure I followed correctly

I'm just about to jump into fixing merge conflicts & the requested change 👍

Merge conflict fixed & updated to make sure prettier is happy
Updated the function canChangeDefaultContactMethod to do all logic regarding if a user can change their default contact method or not 👍

Ready for re-review @deetergp @aimane-chnaif 🙏

Nice! @deetergp @cristipaval either of you want the merge honors? :D

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.13-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.13-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


App Transparency Tracking (ATT)

hello.
I updated the plugin to the latest version, tried updating ios but got the following message:

Missing Purpose String in Info.plist - Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSUserTrackingUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
Is it necessary to request the ATT permission popup to use the Facebook login SDK?
Or do you have any relevant information?

Instructions are here: https://facebook.meedu.app/docs/5.x.x/app-tracking-transparency/


DBZ-871 DBZ-875 Add tableId to source block

https://issues.jboss.org/browse/DBZ-871
https://issues.jboss.org/browse/DBZ-875

@jpechane, ping, just to make sure my comments don't go missed :)

@jpechane, seems we can close this one in favour of your new one from yesterday?

Superseded with https://github.com/debezium/debezium/pull/886


sbJSON contacts inherited from associated records

See adiwg/mdEditor#225.
Basically, the responsibility objects from associateResources should be excluded from the sbJSON output.
https://github.com/adiwg/mdTranslator/blob/f6868cb0c2eaae6c7611248fa23253c98b1478c7/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb#L23

I changed the method to exclude the search from any object named in the exclude list as shown below:
aResponsibility = @Namespace.nested_objs_by_element(intObj, 'roleName', ['associatedResources'])

Are we capturing the funding contacts in the search? Those contacts are only ids, see https://mdtools.adiwg.org/#viewer-page?v=2-6-0-0-0-3. We may need to add a role of "recipient" to support that....

Not sure.  In the sbJSON writer the name associated with sourceId and recipientId contacts are written into the annualBudgets.fundingSources array.  They would also be written as contacts to sbJSON IF they were included in allocation.responsibleParty.
Thus there is no guarantee the sourceId and recipientId are included as contacts.  This could be added using assumed role names.

Did this get resolved?


Add convenience scripts for running plurigrid agent and environment setup

This pull request introduces two new scripts in the scripts/ directory to streamline the process of running the plurigrid agent and setting up the development environment. The start_plurigrid.sh script automates the agent execution within a Docker container, handling environment variables and Poetry dependencies. The nix_install.sh script ensures that Nix is properly installed on macOS, installs Python dependencies using Poetry, and starts the Nix shell. These additions aim to improve the user experience and simplify the project setup for developers.

@blue-note in the future, please include the results of the testing steps you have run (easier with tests in pre-commit) and their outcomes / comments on review process.


feat(logo): add color.svg

https://github.com/gin-gonic/logo/issues/1 add svg version, https://cdn.rawgit.com/easonlin404/logo/svg/color.svg

@easonlin404 thanks for the pr, however I found strange the "source" of the svg file, and later figured it was not really a vectorization, rather than a digitalization. I did open #3 with svgs generated from inkscape, you can see the difference below:

closing, but thanks for the effort 😃

@javierprovecho I got it, thank you 😄


CompletableFuture support for java client

Added option to java client to send query with CompletableFuture response. It allows work in a functional style with asynchronous requests, as well as chaining and combining.
client.send(new TdApi.GetMe())
    .thenAccept(user -> System.out.println("I'm " + user.firstName + " " + user.lastName));

Because of CompletableFuture available since java 1.8, minimum supported version has been updated too.

Thank you, @p-vorobyev!
Unfortunately, this can't be merged now, because CompletableFuture is available on Android only since Android 7.0 and Telegram apps still support Android 4.*, but it can be merged after support for the old Android versions is dropped, which should happen someday.


A Gitter Room would be great !!

I think there should be a gitter room for people looking forward to learn these things and want to know some things and discuss things !!

Added a Gitter Room.


[WIP] Cooldown timer. Closes #126.

Added setup job for cooldown timer and Tweet timestamping.

@TheCrowbill may I ask what is the status on this?

I looked at doing this from several different directions and ran into a dead end or more serious obstacles than I was equipped to overcome.
First, I tried to find a method to incorporate the cooldown into the repo's Actions but that proved to be less than ideal. While it could theoretically be done from the Actions alone, the implementation would be crude and not very user-friendly.
The other method I investigated would involve modifications to the JacaScript itself. While this would produce the most versatile and functional solution,  unfortunately, the portion of the Twitter-Together Action that would require modification is not in this repo or fork. Rather, it is the GitHub Action itself that would require the modification, the code for which is in excess of 30,000 lines.
I started then looking for third-party solutions and came up empty.

We could also use https://github.com/marketplace/actions/merge-schedule and/or in conjunction with the contribunator bot if we need to add any custom logic to get things to work well together.
Ideally we'd give tweet submitters the option of setting a future publish (merge) date, but that is also using some kind of cooldown between tweets.
Edit: I think the easiest solution here will be to update the merge-schedule action slightly to add a cooldown option and auto-merge all approved PRs with this logic. I'll look into this, but would like to hear from crowbill also.

With your PR automation, this would likely be the best place to put in the cooldown delay. If you want the added functionality of specific scheduling, I still think that the base code may need modification or the Action may run continuously.
I will close this draft PR and we can address Issue #126 in a new one.


Add MSYS2 or cygwin support

I would like to add support for mintty on windows. Would you what it would take? Or if there are any things blocking for this task?

In theory this could be made to work using the XTerm escapes.  However the things that would have to be added relate to dealing with changing the terminal into raw vs cooked mode.  This is different on Windows as it lacks the termios ioctls.

I found that prefixing with winpty made tcell-using code usable for me in MSYS2, e.g.
cd $GOPATH/src/github.com/gdamore/tcell/_demos
go build boxes.go
winpty ./boxes.exe

@gdamore: I might be interested in delving into this, could you point me to some more details on what be necessary to implement the changes?

Well, I don't know how winpty works.  That might be a starting point.  The issue is that terminal handling (stty modes really) have to be made to work.  Frankly, this seems ... backwards; a better solution would be to figure out if we can use a more "correct" method of dealing with the terminal on these systems -- like we do with a native Win32 API.

no real surprise there. its really an ugly hack but so is the whole mintty
thing. Use a native app if you want decent performance.
On Fri, Mar 23, 2018 at 9:23 PM Nicholas Orr<EMAIL_ADDRESS>wrote:

performance wise, winpty kind of sucks.

cmd.exe > boxes.exe = 1.718ms / box
git-bash.exe > mitty.exe > winpty boxes.exe = 2.916 ms / box

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gdamore/tcell/issues/133#issuecomment-375845737, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABPDfX8VGOtlIzTtAuknIxpR-PJjRLH3ks5thcotgaJpZM4KyTig
.

I don't think the difference of ~1 ms for a one time operation as a performance issue. Not fixing the issue though, is a definite performance issue.  (I've never had any performance issues with Mintty, unlike the many iterations of CMD, PS, PWSH, etc.)
So what is the current status on this?

well you can use winpty now.

btw that is 1ms per box. not a one time operation. out another way winpty adds about 50 percent or more to the cost of drawing on screen.

This might be better in master now -- at least if $TERM is set, even on Windows, tcell no longer crashes out.  You do need to have a terminal that supports the real Windows console API though.
I'm looking at alternatives for the future -- because with Windows 10 it seems like we might want to support xterm style escape sequences in order to access the larger color space.

Cygwin support would be very helpful. e.g. https://github.com/zyedidia/micro#cygwin-mingw-plan9 depends on this project.

I still can't fathom why anyone would continue to use Mintty.  It's usefulness is rather severely limited since it cannot support generic Windows console applications.

@gdamore: I can tell you why I use it, and that's because a *nix-like environment in Windows is a nice way to get some of the large *nix ecosystem. I have used Windows most of my life as a professional and as a casual user, and I still prefer POSIX tools to the default Windows tools when developing cross-platform projects. I'm also a huge terminal nerd with all of the associated demand for easy scripting and avoiding specialized binary tools where reasonable, so that contributes enormously. :)

@ErichDonGubler that's all fine, you can use cygwin or msys tools from a normal Windows 10 console host, or the new Windows 10 Terminal app, as well as a number of third party consoles (e.g. ConEmu).
My specific complaint/issue is with mintty -- which implements only the POSIX TTY semantics and not the Windows console API.  This means it can only be used with pure POSIX tools.  Unfortunately, that's not tcell, as tcell attempts to be savvy about Windows vs. Linux.
You can work around this with winpty, which adds the missing semantics to mintty.
However, I would strongly advise trying out another terminal app.  Anything you choose will almost certainly be an upgrade over mintty.  (Back before Windows 10, having mintty was nice because it offered better support for resizing and tabbed usage.   That was enough for some users to overcome it's other deficiencies.  Since then numerous other options are available, and Microsoft has addressed the relevant short-comings in their own apps.  In this day and age there are no benefits to mintty -- only limitations.  From what I can tell, the mintty itself is largely abandonware, as they haven't addressed any of the short-comings.)

@gdamore:

However, I would strongly advise trying out another terminal app. Anything you choose will almost certainly be an upgrade over mintty.

Having tried the new Windows Terminal since your suggestion, and several apps before, I've yet to find an alternative that fully supports VT100 escapes, esp. mouse interactions. That might sound odd, coming from a terminal freak like myself, but using a pointer device with terminals is a big flow booster. So, naturally, I disagree that other options are universally better, and given that the MinTTY project still regularly puts out releases, I reject this notion of yours:

In this day and age there are no benefits to mintty -- only limitations. From what I can tell, the mintty itself is largely abandonware, as they haven't addressed any of the short-comings.

I'd be curious to know what escapes aren't supported.  I've found no issues and the modern terminal is a pretty close xterm implementation.  It does include support for mouse escapes (which actual vt100 of course does not.)

You do need to set TERM of course.

There was just recently a mintty release.  After over a 3 year hiatus.  The fails for my definition of regular releases and may explain why I assumed it was abandonware.

@gdamore:

It does include support for mouse escapes (which actual vt100 of course does not.)

Sorry, I did't mean VT100 escapes in the sense of the original device; my terminology was probably more offhanded than accurate. Apologies. :)

I'd be curious to know what escapes aren't supported.

Most escapes seemed to work just fine, though I've had Unclear Weirdness™ with random ANSI escapes from some tools I use regularly (); mouse escapes are the major ones I noticed not working. If you're interested, I'm more than happy to take that discussion offline.

You do need to set TERM of course.

I know I tried explicitly setting the TERM environmental variable in some situations, but my testing wasn't that rigorous. This might be an interesting lead.

There was just recently a mintty release. After over a 3 year hiatus. The fails for my definition of regular releases and may explain why I assumed it was abandonware.

Huh? Are we talking about the same project? There are 10 releases alone on the first page of the MinTTY Releases link I used above, all no earlier than February of this year, with an average of a few weeks between releases. A regular release cadence with gaps of at most a few months has been maintained since 2016 (maybe longer -- I abandoned looking further after going that far, since it goes longer than the 3 years you mention).

Huh.  Going back I think I misread Sep 17 and Sep 2017... Lol.  My apologies for that - it's what I get for looking at that link on a phone instead of a real computer.
As to mouse events; they Just Work.   I use WSL sometimes, and tcell running under WSL, in a windows terminal, works fine.  Mouse events including live mouse tracking Just Works.  And because that's under WSL, its using plain old xterm escape sequences for mouse reporting.
You can test this yourself by using a WSL session, the Windows 10 Terminal app, and then doing "go run _demos/mouse.go"
This also works reasonably well (at least the last time I tried) under conemu.  (Conemu may struggle with 24-bit colors.)
I have found no case where Windows Terminal is deficient relative to other terminals in escape sequence handling.  Indeed, these days it even supports 24-bit color using XTerm escapes.
Much more likely is that you have some applications which were built to only work with mintty's magical emulation of a Linux terminal system -- most specifically terminfo (think stty).  Yeah, Windows doesn't have that (although WSL does).  Those applications aren't going to work in anything except a mintty environment.  But you should consider running them in WSL instead -- your life will improve if you do.
The only issues I've found in Windows terminal recently have been related some incomplete Unicode fonts.  Unless you're using unusual characters (typically things like combing glyphs or newer Unicode glyphs) you're unlikely to even notice.  (Support for this under Linux terminals is also varied, and I'd be surprised if mintty got this all correct.)  The Microsoft team has worked hard to update the Terminal app to provide all the usual bells and whistles and compatibility that folks coming from a Linux background should expect, and I think they've done a good job.
In fact, if you're using many Linux apps, I highly recommend WSL.  It's a far more natural experience than the hackery that is attempting to run mingw apps.  (It's a much more complete emulation of Linux, regardless of whether you use WSL 1 or WSL 2.)
Minsys is an attempt to be a hybrid of both Windows and Linux, and in my opinion it simply brings the worst of both worlds; it's a compromise that maybe once made sense, but is no longer needed in this day and age.

For now I'm closing this issue.  I'm not interested in doing this.  If someone can provide a simple solution (I don't think one exists) for this problem I'm happy to reconsider.  I'm distinctly not interested in building a substantial amount of code just for mintty or to workaround the deficiencies in mintty.
I suggest folks that really, really want mintty to work better with native Windows console apps ask the mintty people to look at implementing the Win32 console API.  Good luck with that!

Latest mintty seems to Just Work.  It doesn't support mouse interaction, but the rest of it works well enough.

Latest mintty seems to Just Work.  It doesn't support mouse interaction, but the rest of it works well enough.

I have further feedback in response to (TL;DR: there are some fundamental limitations of WSL1/2 workflow that are interesting to note as caveats, part. file I/O being a sore point for performance in WSL2) that I haven't taken time to draft yet, but for now, I'm interested in clarifying:

Latest mintty seems to Just Work. It doesn't support mouse interaction, but the rest of it works well enough.

@gdamore: You're referring to the MinTTY 3.4.4 that was released last month, then? At time of writing, that's the latest release. Or...maybe you're referring to bleeding edge commits? I'm not sure.

I have further feedback in response to (TL;DR: there are some fundamental limitations of WSL1/2 workflow that are interesting to note as caveats, part. file I/O being a sore point for performance in WSL2) that I haven't taken time to draft yet, but for now, I'm interested in clarifying:

Latest mintty seems to Just Work. It doesn't support mouse interaction, but the rest of it works well enough.

@gdamore: You're referring to the MinTTY 3.4.4 that was released last month, then? At time of writing, that's the latest release. Or...maybe you're referring to bleeding edge commits? I'm not sure.

I used the latest Cygwin download and whatever mintty was included.
Get Outlookhttps://aka.ms/qtex0l for iOS

From: Erich Gubler<EMAIL_ADDRESS>Sent: Monday, January 25, 2021 11:45:37 AM
To: gdamore/tcell<EMAIL_ADDRESS>Cc: gdamore<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [gdamore/tcell] Add MSYS2 or cygwin support (#133)
I have further feedback in response to (TL;DR: there are some fundamental limitations of WSL1/2 workflow that are interesting to note as caveats, part. file I/O being a sore point for performance in WSL2) that I haven't taken time to draft yet, but for now, I'm interested in clarifying:
Latest mintty seems to Just Work. It doesn't support mouse interaction, but the rest of it works well enough.
@gdamorehttps://github.com/gdamore: You're referring to the MinTTY 3.4.4 that was released last monthhttps://github.com/mintty/mintty/releases/tag/3.4.4, then? At time of writing, that's the latest release. Or...maybe you're referring to bleeding edge commits? I'm not sure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/gdamore/tcell/issues/133#issuecomment-767068728, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJ4G7IUROCPEP4YIJYCMRLS3XC6DANCNFSM4CWJHCQA.

I used the latest Cygwin download and whatever mintty was included.
Get Outlookhttps://aka.ms/qtex0l for iOS

From: Erich Gubler<EMAIL_ADDRESS>Sent: Monday, January 25, 2021 11:45:37 AM
To: gdamore/tcell<EMAIL_ADDRESS>Cc: gdamore<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [gdamore/tcell] Add MSYS2 or cygwin support (#133)
I have further feedback in response to (TL;DR: there are some fundamental limitations of WSL1/2 workflow that are interesting to note as caveats, part. file I/O being a sore point for performance in WSL2) that I haven't taken time to draft yet, but for now, I'm interested in clarifying:
Latest mintty seems to Just Work. It doesn't support mouse interaction, but the rest of it works well enough.
@gdamorehttps://github.com/gdamore: You're referring to the MinTTY 3.4.4 that was released last monthhttps://github.com/mintty/mintty/releases/tag/3.4.4, then? At time of writing, that's the latest release. Or...maybe you're referring to bleeding edge commits? I'm not sure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/gdamore/tcell/issues/133#issuecomment-767068728, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJ4G7IUROCPEP4YIJYCMRLS3XC6DANCNFSM4CWJHCQA.

So, there's been an MinTTY release since the last few comments (3.4.5), which leads me to believe that the version of MinTTY you were referring to is in the history of whatever ended up being released. However, none of the _demo entries in the repo are working on that version of MinTTY. Could it be that there's some other setup going on, like Go programs being compiled differently?


Test Case 9

Summary
Details of Test Case 9
Description:
I failed test case 9 but I don't know what went wrong. Is there a way to see the entire output on code crunch? Trying to infer from part of the output make it quite difficult to pinpoint the problem.
Code Snippets
Attach code snippets (if any)
Screenshots

Just as your customer is about to leave, someone just stepped in.
Rather than accept that someone, you decide to kick that man out even if you are free.
you = the server

Hello, thanks for the reply
I don't think this is the problem. I tried out with 1 server and two customer with customer A finish time = customer B arrival time.

Just as your customer is about to leave, someone just stepped in.

If that customer was Kurt Tay Foo Wei, he will label you a HATER and will not hesitate to BAN or/and DELETE you.
Video of his ‘delete’ gimmick
you = the server

Now that you told me that...
You are someone directing people to the next available server. As you see one customer leave from one server, another customer comes and you direct them to the other server.
Then an argument ensued and if that customer was Kurt, he'll still BAN or/and DELETE you.
tl;dr something is wrong with your allocation logic

Did you try with 2 server and one customer?
If server 1 and server 2 are both avaliable to serve customer A, server 1 should be the one serving customer A.
One way to do this is to ensure that your servers are always sorted in the right order

Hello, thanks for the reply I don't think that is the problem. I tried out with 1 server and two customer with customer A finish time = customer B arrival time and server 1 is able to serve customer B

i would suggest doing a little bit of code tracing since the error occurs at the first 2 inputs so it should not be too difficult to see what went wrong with the logic. it may be due to using >= instead of > for comparing the server times and arrival times that is a possibility.

Now that you told me that...
You are someone directing people to the next available server. As you see one customer leave from one server, another customer comes and you direct them to the other server.
Then an argument ensued and if that customer was Kurt, he'll still BAN or/and DELETE you.
tl;dr something is wrong with your allocation logic

Yup, this is the problem. Thanks


Failing on rebuild

Here the link to my travis log.
When installing on Windows or Linux it gives me this error, how can i fix that? Is that a node-gyp issue?
Thanks.

Your compiler is too old.  Install g++ >= 4.8 or clang++ >= 3.4 and it should work.


Consider wrapping library's code in a namespace

It is a common practice for c++ libraries to avoid naming collisions.
For example, CDocument is a very common class name in C++ projects.
It could be namespace GumboQuery { or something like this.

Right, but that name is to lang...
And, I prefer a Boost style namespace use lower case letters, such as gQeury::doc

There's no need to shorten the namespace for user preference. That's why we have features like namespace short = some::long::possibly::nested::namespace; or namespace mypref = GumboQuery. :)
Namepace ought to be long, unique, and spell out explicitly at full length what the unique namespace is.

Also imo this is something so simple, somebody could do this in 2 minutes and create a pull request instead of throwing the burden on the repo maintainer.


Handle unassigned template literal

This will make #29 work without breaking the extension but it doesn't solve #29 completely. Looks like we don't handle nested template literals very well but we could fix that separately as an enhancement.

@Raathigesh - Can you confirm that the behavior I am seeing is what is expected? If so, then this LGTM.
Works (does not pull in properties, but also does not throw exception)
export const SearchCentering = styled.div`
  width: 100%;
  max-width: ${'1200px'};
`;

Does not work
export const SearchCentering = styled.div`
  width: 100%;
  ${mediaMin.xxl`
  margin: 0 auto;
  max-width: 1200px;
  `};
`;

Yes, That's something I want to look at separately. Thank you for the review.


test(plugins/rtf-to-html): check body not response payload

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
563

Relevant Lines:
563

💛  - Coveralls


LightningCLI does not recognize arguments when importing annotations from future

Bug description
I'm using Python 3.8 and to make it compatible with annotations from Python 3.9, I do an import:
from __future__ import annotations

But with this import, the LightningCLI gives me an error that my arguments are not recognized. Neither from the CLI nor from the yaml configuration files. See the minimal example below.
I've spent several days trying to figure out what the problem is.
How to reproduce the bug
"""Run ``--help`` on this script with and without commenting the import.
When importing, there is no ``path`` argument in the model section.
"""

# from __future__ import annotations

from pytorch_lightning.cli import LightningCLI
from pytorch_lightning import LightningModule

class Model(LightningModule):

    def __init__(self, path: str) -> None:
        super().__init__()

if __name__ == "__main__":
    LightningCLI(Model)

Error messages and logs
Without import:
<class '__main__.Model'>:
  --model CONFIG        Path to a configuration file.
  --model.path PATH     (required, type: str)

With import:
<class '__main__.Model'>:
  --model CONFIG        Path to a configuration file.

Environment
Lightning Component: LightningCLI
PyTorch Lightning Version: 1.8.2
PyTorch Version: 1.12.1
Python version: 3.8
OS: MacOS
How you installed Lightning: pip

More info
No response
cc @carmocca @mauvilsa

Thanks for reporting! This is a known issue and is tracked in https://github.com/omni-us/jsonargparse/issues/120 already. Closing this as a duplicate

@rusmux support for future annotations in jsonargparse has been implemented. Can you please try it out? Just install as:
pip3 install "jsonargparse[signatures] @ https://github.com/omni-us/jsonargparse/zipball/future-annotations"

@mauvilsa It's working on my machine. Thank you!


preprocess image for vgg_net (BGR or RGB)?

I notice there are two different ways to preprocess image before feeding in the data to vgg_net:
May I know which is correct? Please advise.
In jcjohnson's neural style: (using VGG_ILSVRC_19_layers.caffemodel)
image is converted to BGR before substracting the mean_pixel
https://github.com/jcjohnson/neural-style/blob/be42a12bc9f852596fbf37ea9d25b0139f66cfe6/neural_style.lua
function preprocess(img)
  local mean_pixel = torch.DoubleTensor({103.939, 116.779, 123.68})
  local perm = torch.LongTensor{3, 2, 1}
  img = img:index(1, perm):mul(256.0)
  mean_pixel = mean_pixel:view(3, 1, 1):expandAs(img)
  img:add(-1, mean_pixel)
  return img
end

In karpathy's neural talk 2: (using: VGG_ILSVRC_16_layers.caffemodel)
image is not converted to BGR before substracting the mean_pixel
https://github.com/karpathy/neuraltalk2/blob/3c81602809b8b9e5bd3e9e213bf955986485dda7/misc/net_utils.lua
function net_utils.prepro(imgs, data_augment, on_gpu)
  assert(data_augment ~= nil, 'pass this in. careful here.')
  assert(on_gpu ~= nil, 'pass this in. careful here.')

  local h,w = imgs:size(3), imgs:size(4)
  local cnn_input_size = 224

  -- cropping data augmentation, if needed
  if h > cnn_input_size or w > cnn_input_size then
    local xoff, yoff
    if data_augment then
      xoff, yoff = torch.random(w-cnn_input_size), torch.random(h-cnn_input_size)
    else
      -- sample the center
      xoff, yoff = math.ceil((w-cnn_input_size)/2), math.ceil((h-cnn_input_size)/2)
    end
    -- crop.
    imgs = imgs[{ {}, {}, {yoff,yoff+cnn_input_size-1}, {xoff,xoff+cnn_input_size-1} }]
  end

  -- ship to gpu or convert from byte to float
  if on_gpu then imgs = imgs:cuda() else imgs = imgs:float() end

  -- lazily instantiate vgg_mean
  if not net_utils.vgg_mean then
    net_utils.vgg_mean = torch.FloatTensor{123.68, 116.779, 103.939}:view(1,3,1,1) -- in RGB order
  end
  net_utils.vgg_mean = net_utils.vgg_mean:typeAs(imgs) -- a noop if the types match

  -- subtract vgg mean
  imgs:add(-1, net_utils.vgg_mean:expandAs(imgs))

  return imgs
end

Both VGG-16 and VGG-19 were trained using Caffe, and Caffe uses OpenCV to load images which uses BGR by default, so both VGG models are expecting BGR images.
In neural-style we swap images from RGB to BGR when reading them from disk; neuraltalk2 instead swaps the first-layer filters of the CNN so that it expects RGB images:
https://github.com/karpathy/neuraltalk2/blob/master/misc/net_utils.lua#L26

thank you for explaining the difference between both projects :) really appreciate your quick reply.


Coefficients in wOBA calculation needs to be season-dependent

In stats.js, a function for calculating wOBA named 'calcwOBA' was written in lines 155-159 using Tom Tango's wOBA formula from The Book.
function calcWOBA(results) {
    if (results.plateAppearances) {
        results.wOBA = ((results.walks * 0.72) + (results.hitByPitch * 0.75) + (results.singles * 0.9) + (results.doubles * 1.24) + (results.triples * 1.56) + (results.homeRuns * 1.95) + (results.rboe * 0.92)) / results.plateAppearances;
    }
}

However, Tango's formula from The Book were based on standardized linear weights in order to find those wOBA coefficients. Since then, Tango has developed customized wOBA calculations based on seasonal run environments in order to more accurately assign the relative value of events. wOBA coefficients should be seasonal.
For more information, here are some links to read:
http://www.beyondtheboxscore.com/2011/1/4/1912914/custom-woba-and-linear-weights-through-2010-baseball-databank-data
https://spreadsheets.google.com/spreadsheet/pub?key=0AuazhUE5lzIsdFgzdGlpUzktN2h4Q214a1dMTzBjd3c&gid=0
If we can write a script that determines wOBA coefficients after a season has completed (and use the default wOBA coefficients in Tom Tango's The Book during the season), that can feed the calcwOBA formula more accurately. Then we wouldn't have to rely on Matt Klaassen to update his numbers from the links above.
Edit: FanGraphs has the latest wOBA coefficients on their website. http://www.fangraphs.com/guts.aspx

I set up a column for "wOBA-against" for each starting pitcher using the season-specific coefficients in GUTS! Now I'm wondering if those coefficients can be used on a game-by-game basis such that there will be a "wOBA-against" value for each game of each starting pitcher for each season using the coefficients of a given season for the calculations the games within that season.
I'm wondering if those wOBA values for those games would even be meaningful, and if not, what is a meaningful way to calculate wOBA on a game-by-name basis for each year in a range of years? I'm thinking that some of the answer to that depends on how those season-specific weights are actually determined. I realize they are "based on the run environment", but specifically in what way?


Reenable draft edit

Closes #905

Reopening this PR from the pass-ember repo, instead of from my fork so that other people can make changes.

Only limited tests so far.
My biggest concern is the way Journal data is loaded in the case of a draft submission with a Publication with no DOI. This is handled similarly to how DOI would be loaded into the widget: if applicable, it will send the selectJournal action to kick off it's logic and add the Journal metadata to the workflow service. Applicability here is if a Journal object is passed to the component from the submission/new route, which should happen only when loading draft submissions.

I made a few cleanups and fixes. Looks good to me now.

Files are not yet persisted in a Draft submission yet. This means that if a user uploads a file (and clicks Next to get to the Review step), but then leaves the workflow, when they go to edit the submission, the file will no longer be attached to the submission. The user will have to re-add the file(s).
Workflow should be modified to persist the File objects when the submission is auto-saved (currently happens when the user transitions between steps).


Add a typical GKE application template

A standard simple GKE application template which has the following projects:

devops
audit
networks (one VPC and one subnet with a NAT)
apps (a SA and a Cluster)
kubernetes (placeholder k8s deployment yaml)

Isn't that the teams example? Or do you mean a dedicated template for it?

I was thinking of a more dedicated template for a simple GKE app with a shared VPC including a place holder k8s yaml config. team.hcl contains other stuff which seems over complicated for this use case and might cause some distraction?

Yeah I think that makes sense. A starter recipe that people can fork/use as starting point and make changes to their needs can be good.


[WFCORE-4471] Add version 8 of the WildFly Elytron subsystem schema and model

This is for WildFly Core 10.
https://issues.jboss.org/browse/WFCORE-4471

Core - Full Integration Build 8661 outcome was FAILURE using a merge of 08742ed5f1f0ead309edd2a2b2ee9707b88e9d35
Summary: Execution timeout (new); tests passed: 4932, ignored: 135 Build time: 04:00:59


NullPointerException requestDisallowInterceptTouchEvent(boolean)

I am not sure why this is happening, and it seems to appear pretty random.
I use a custom onTouchListener on the SubsamplingScaleImageView to detect swipe gestures and a ViewAnimator to create swipe animations between images.

FATAL EXCEPTION: main
PID: 31476
java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.ViewParent.requestDisallowInterceptTouchEvent(boolean)' on a null object reference
at com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.onTouchEvent(SubsamplingScaleImageView.java:591)
at android.view.View.dispatchTouchEvent(View.java:9377)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554) ......

Which version of the library are you using? There's nothing on line 591 in the current version.

I am using 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'

I think what must have happened is the view is detached from its parent when this happens. It it's still on screen I'm not sure how that can happen. To stop the exception being thrown I've added some null safety.

Thanks I think this should fix the issue


Implement MD5 Function in AST

Resolve: https://github.com/gluesql/gluesql/issues/1241

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 66 (13.64%)  changed or added relevant lines in 5 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.002%) to 98.754%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/src/plan/expr/function.rs
0
1
0.0%

core/src/translate/function.rs
1
4
25.0%

core/src/executor/evaluate/function.rs
0
9
0.0%

test-suite/src/function/md5.rs
0
44
0.0%

Files with Coverage Reduction
New Missed Lines
%

core/src/executor/validate.rs
1
99.24%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
45349

Relevant Lines:
45921

💛  - Coveralls


docs(rust): add a rust package with examples of the get-started guide

The examples in the guide compile without errors with cargo check --examples.
I have run cargo fmt on the examples, hence de changes to the markdown files.
Proposed Changes
Fixes issue https://github.com/ockam-network/ockam/issues/1377

Hi @kbeaulieu,
Thanks for your contribution! We'd love to get these changes merged. The formatting changes look great. Regarding creating a crate from the get started guide, could you have a look at this examples directory for get_started ? This is the same source as the guide. Would you mind working your improvements into that directory?
Also before we can merge, could you accept our CLA:
Read the CLA at
https://www.ockam.io/learn/how-to-guides/contributing/cla/
To accept the CLA please send a different PR to our contributors repo indicating that you accept the CLA by adding your Git/Github details in a row at the end of the CONTRIBUTORS.csv file:
https://github.com/ockam-network/contributors/blob/master/CONTRIBUTORS.csv
Thanks again @kbeaulieu !

@jared-s Of course, I will make the changes soon.
Here's the PR for the CLA.

I'm going to close this, as our guide source is already tracked under the higher level examples directory, and the source has since diverged. We've also added several more example guides and some automation around running them. Thank you!


Installation of AutoAWQ_kernels

I am using runpod torch2.2.0 image. I don't think AutoAWQ is getting installed properly.
Here's what's happening when Iam trying to install it from source.
root@30b7de36438a:/workspace/AutoAWQ_kernels# pip install -e .
Obtaining file:///workspace/AutoAWQ_kernels
Preparing metadata (setup.py) ... done
Requirement already satisfied: torch>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from autoawq_kernels==0.0.6+cu121) (2.2.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (3.13.1)
Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (4.9.0)
Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (1.12)
Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (3.2.1)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (3.1.3)
Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (2024.2.0)
Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (12.1.105)
Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (12.1.105)
Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (12.1.105)
Requirement already satisfied: nvidia-cudnn-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-cublas-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-cufft-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-curand-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-cusolver-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-cusparse-cu12==<IP_ADDRESS> in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (<IP_ADDRESS>)
Requirement already satisfied: nvidia-nccl-cu12==2.19.3 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (2.19.3)
Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (12.1.105)
Requirement already satisfied: triton==2.2.0 in /usr/local/lib/python3.10/dist-packages (from torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (2.2.0)
Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/dist-packages (from nvidia-cusolver-cu12==<IP_ADDRESS>->torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (12.3.101)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (2.1.5)
Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=2.0.1->autoawq_kernels==0.0.6+cu121) (1.3.0)
Installing collected packages: autoawq_kernels
Running setup.py develop for autoawq_kernels
It basically stops after running setup,py develop for autoawq_kernels. It's like this for 15-20 mins. I tried upgrading g++ version and it's giving me version not compatible error. can you tell me what should I do?

Please uninstall autoawq kernels and run pip install -v autoawq_kernels. It should enable you to see what's happening. I personally use RunPod too on torch 2.2 and it has worked for me.


logs2logs-db failure

make up and make lagoon-kickstart fail.
I think I managed to grab the relevant part of the make up logs, after where I've cut it, it goes into an endless cycle of uncaught exceptions. What is odd though is that I have had a successful lagoon-kickstart, so I'm guessing that time I won in a race.
logs2logs-db_1                    | [2018-05-02T09:20:07,055][INFO ][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://logstash_system:xxxxxx@logs-db:9200/, :path=>"/"} logs2logs-db_1                    | [2018-05-02T09:20:07,058][INFO ][logstash.licensechecker.licensereader] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://logstash_system:xxxxxx@logs-db:9200/, :path=>"/"} logs2logs-db_1                    | [2018-05-02T09:20:07,102][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://logstash_system:xxxxxx@logs-db:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://logstash_system:xxxxxx@logs-db:9200/][Manticore::ResolutionFailure] logs-db"} logs2logs-db_1                    | [2018-05-02T09:20:07,104][WARN ][logstash.licensechecker.licensereader] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://logstash_system:xxxxxx@logs-db:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://logstash_system:xxxxxx@logs-db:9200/][Manticore::ResolutionFailure] logs-db"} logs2logs-db_1                    | [2018-05-02T09:20:07,269][INFO ][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://logs-db:9200/]}} logs2logs-db_1                    | [2018-05-02T09:20:07,270][INFO ][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://logs-db:9200/, :path=>"/"} logs2logs-db_1                    | [2018-05-02T09:20:07,276][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://logs-db:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://logs-db:9200/][Manticore::ResolutionFailure] logs-db"} logs2logs-db_1                    | [2018-05-02T09:20:07,278][INFO ][logstash.outputs.elasticsearch] Using mapping template from {:path=>nil} logs2logs-db_1                    | [2018-05-02T09:20:07,281][ERROR][logstash.outputs.elasticsearch] Failed to install template. {:message=>"Template file '' could not be found!", :class=>"ArgumentError", :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/template_manager.rb:31:in read_template_file'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/template_manager.rb:17:in get_template'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/template_manager.rb:7:in install_template'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:57:in install_template'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:26:in register'", "/usr/share/logstash/logstash-core/lib/logstash/output_delegator_strategies/shared.rb:9:in register'", "/usr/share/logstash/logstash-core/lib/logstash/output_delegator.rb:43:in register'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:343:in register_plugin'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:354:in block in register_plugins'", "org/jruby/RubyArray.java:1734:in each'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:354:in register_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:743:in maybe_setup_out_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:364:in start_workers'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:288:in run'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:248:in block in start'"]}
logs2logs-db_1                    | [2018-05-02T09:20:07,283][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://logs-db:9200"]}
logs2logs-db_1                    | [2018-05-02T09:20:07,297][INFO ][logstash.pipeline        ] Starting pipeline {:pipeline_id=>"service-logs", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>1000, :thread=>"#<Thread:0x203a9c39 run>"}
logs2logs-db_1                    | [2018-05-02T09:20:07,607][INFO ][logstash.pipeline        ] Pipeline started {"pipeline.id"=>"service-logs"}
logs2logs-db_1                    | [2018-05-02T09:20:07,660][INFO ][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://logs-db:9200/, :path=>"/"}
logs2logs-db_1                    | [2018-05-02T09:20:07,663][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://logs-db:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://logs-db:9200/][Manticore::ResolutionFailure] logs-db"}
logs2logs-db_1                    | [2018-05-02T09:20:07,743][INFO ][logstash.agent           ] Pipelines running {:count=>4, :pipelines=>[".monitoring-logstash", "lagoon-logs", "router-logs", "service-logs"]}
logs2logs-db_1                    | [2018-05-02T09:20:07,769][ERROR][logstash.inputs.metrics  ] Monitoring is not available: License information is currently unavailable. Please make sure you have added your production elasticsearch connection info in the xpack.monitoring.elasticsearch settings.
logs-db-ui_1                      | {"type":"log","@timestamp":"2018-05-02T09:20:07Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://logs-db:9200/"}
logs-db-ui_1                      | {"type":"log","@timestamp":"2018-05-02T09:20:07Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
logs2logs-db_1                    | [2018-05-02T09:20:08,274][FATAL][logstash.runner          ] An unexpected error occurred! {:error=>#<NoMethodError: undefined method <' for nil:NilClass>, :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:213:in get_event_type'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:165:in event_action_params'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:39:in event_action_tuple'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:34:in block in multi_receive'", "org/jruby/RubyArray.java:2486:in map'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-output-elasticsearch-9.0.2-java/lib/logstash/outputs/elasticsearch/common.rb:34:in multi_receive'", "/usr/share/logstash/logstash-core/lib/logstash/output_delegator_strategies/shared.rb:13:in multi_receive'", "/usr/share/logstash/logstash-core/lib/logstash/output_delegator.rb:50:in multi_receive'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:487:in block in output_batch'", "org/jruby/RubyHash.java:1343:in each'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:486:in output_batch'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:438:in worker_loop'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:393:in block in start_workers'"]}
rabbitmq_1                        | 2018-05-02 09:20:08.775 [warning] <0.1358.0> closing AMQP connection <0.1358.0> (<IP_ADDRESS>:43328 -> <IP_ADDRESS>:5672, vhost: '/', user: 'guest'):
rabbitmq_1                        | client unexpectedly closed TCP connection
lagoon_logs2logs-db_1 exited with code 1
webhooks2tasks_1                  | 2018-05-02T09:20:09.775Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:20:09 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/webhooks2tasks, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/webhooks2tasks/src/index.js], rss=55701504, heapTotal=26075136, heapUsed=19509800, external=94840, loadavg=[3.4521484375, 1.48095703125, 1.06005859375], uptime=83820, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)]
openshiftbuilddeploy_1            | 2018-05-02T09:20:09.776Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:20:09 GMT+0000 (UTC), pid=44, uid=0, gid=0, cwd=/app/services/openshiftbuilddeploy, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftbuilddeploy/src/index.js], rss=65261568, heapTotal=23007232, heapUsed=20361440, external=37444, loadavg=[3.4521484375, 1.48095703125, 1.06005859375], uptime=83820, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)]
openshiftbuilddeploymonitor_1     | 2018-05-02T09:20:09.776Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:20:09 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftbuilddeploymonitor, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftbuilddeploymonitor/src/index.js], rss=80068608, heapTotal=35065856, heapUsed=28445168, external=78436, loadavg=[3.4521484375, 1.48095703125, 1.06005859375], uptime=83820, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)]
`
Here's a clip of a lagoon-kickstart:
make lagoon-kickstart IMAGE_REPO=lagoon CI_USE_OPENSHIFT_REGISTRY=false docker-compose -p lagoon up -d rabbitmq openshiftremove openshiftbuilddeploy openshiftbuilddeploymonitor logs2slack api ssh auth-server local-git local-api-data-watcher-pusher local-es-kibana-watcher-pusher tests rest2tasks lagoon_rest2tasks_1 is up-to-date lagoon_logs-db-ui_1 is up-to-date lagoon_api-db_1 is up-to-date lagoon_openshiftremove_1 is up-to-date Starting lagoon_tests_1 ...  lagoon_logs2slack_1 is up-to-date lagoon_openshiftbuilddeploymonitor_1 is up-to-date Recreating lagoon_openshiftbuilddeploy_1 ...  lagoon_local-git_1 is up-to-date lagoon_auth-server_1 is up-to-date Starting lagoon_logs-db_1                ...  lagoon_rabbitmq_1 is up-to-date Starting lagoon_tests_1                  ... done lagoon_api_1 is up-to-date Recreating lagoon_openshiftbuilddeploy_1 ... done lagoon_local-es-kibana-watcher-pusher_1 is up-to-date sleep 30 curl -X POST http://localhost:5555/deploy -H 'content-type: application/json' -d '{ "projectName": "lagoon", "branchName": "master" }' {"ok":"true","message":"lagoon-tasks: Successfully created task 'builddeploy-openshift': {\"projectName\":\"lagoon\",\"branchName\":\"master\",\"type\":\"branch\"}"}make logs make[1]: Entering directory '/home/jeff/projects/lagoon-learning/lagoon' IMAGE_REPO=lagoon docker-compose -p lagoon logs --tail=10 -f  Attaching to lagoon_openshiftbuilddeploy_1, lagoon_local-es-kibana-watcher-pusher_1, lagoon_cli_1, lagoon_ssh_1, lagoon_api_1, lagoon_local-api-data-watcher-pusher_1, lagoon_rabbitmq_1, lagoon_openshiftremove_1, lagoon_logs-db_1, lagoon_auth-server_1, lagoon_webhook-handler_1, lagoon_openshiftbuilddeploymonitor_1, lagoon_local-git_1, lagoon_remotedev_1, lagoon_drush-alias_1, lagoon_logs2logs-db_1, lagoon_hacky-rest2tasks-ui_1, lagoon_logs2slack_1, lagoon_rest2tasks_1, lagoon_webhooks2tasks_1, lagoon_api-db_1, lagoon_auto-idler_1, lagoon_logs-db-ui_1, lagoon_tests_1 openshiftbuilddeploy_1            |     at emitNone (events.js:111:20) openshiftbuilddeploy_1            |     at IncomingMessage.emit (events.js:208:7) openshiftbuilddeploy_1            |     at endReadableNT (_stream_readable.js:1064:12) openshiftbuilddeploy_1            |     at _combinedTickCallback (internal/process/next_tick.js:138:11) openshiftbuilddeploy_1            |     at process._tickDomainCallback (internal/process/next_tick.js:218:9) openshiftbuilddeploy_1            | 2018-05-02T09:25:04.444Z - warn: lagoon-logs: Send to lagoon-logs: *[lagoon]*masterERROR: openshiftbuilddeploy_1            | ``` openshiftbuilddeploy_1            | Error openshiftbuilddeploy_1            | ``` openshiftbuilddeploy_1            | Retrying deployment in 10 secs 100    73    0    61  100    12   6777   1333 --:--:-- --:--:-- --:--:--  8111 local-es-kibana-watcher-pusher_1  |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current local-es-kibana-watcher-pusher_1  |                                  Dload  Upload   Total   Spent    Left  Speed 100    73    0    61  100    12   7625   1500 --:--:-- --:--:-- --:--:--  9125 local-es-kibana-watcher-pusher_1  |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current local-es-kibana-watcher-pusher_1  |                                  Dload  Upload   Total   Spent    Left  Speed 100    73    0    61  100    12   5083   1000 --:--:-- --:--:-- --:--:--  6636 local-es-kibana-watcher-pusher_1  |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current local-es-kibana-watcher-pusher_1  |                                  Dload  Upload   Total   Spent    Left  Speed 100    73    0    61  100    12   5545   1090 --:--:-- --:--:-- --:--:--  6636 cli_1                             | sleep: invalid number 'infinity' cli_1                             | Agent pid 14 cli_1                             | Identity added: /home/.ssh/id_rsa (/home/.ssh/id_rsa) cli_1                             | sleep: invalid number 'infinity' cli_1                             | Agent pid 14 cli_1                             | Identity added: /home/.ssh/id_rsa (/home/.ssh/id_rsa) cli_1                             | sleep: invalid number 'infinity' cli_1                             | Agent pid 14 cli_1                             | Identity added: /home/.ssh/id_rsa (/home/.ssh/id_rsa) cli_1                             | sleep: invalid number 'infinity' lagoon_cli_1 exited with code 0 api_1                             |  api_1                             | debug: No Bearer Token api_1                             | info: ::ffff:<IP_ADDRESS> - - [02/May/2018:09:05:44 +0000] "GET /favicon.ico HTTP/1.1" 401 63 "http://localhost:3000/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36" api_1                             |  api_1                             | info: ::ffff:<IP_ADDRESS> - - [02/May/2018:09:25:04 +0000] "POST /graphql HTTP/1.1" 200 159 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" api_1                             |  api_1                             | info: ::ffff:<IP_ADDRESS> - - [02/May/2018:09:25:04 +0000] "POST /graphql HTTP/1.1" 200 - "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" api_1                             |  api_1                             | info: ::ffff:<IP_ADDRESS> - - [02/May/2018:09:25:04 +0000] "POST /graphql HTTP/1.1" 200 230 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" api_1                             |  ssh_1                             | Server listening on :: port 2020. ssh_1                             | Received signal 15; terminating. ssh_1                             | Server listening on <IP_ADDRESS> port 2020. ssh_1                             | Server listening on :: port 2020. ssh_1                             | Received signal 15; terminating. ssh_1                             | Server listening on <IP_ADDRESS> port 2020. ssh_1                             | Server listening on :: port 2020. ssh_1                             | Received signal 15; terminating. ssh_1                             | Server listening on <IP_ADDRESS> port 2020. ssh_1                             | Server listening on :: port 2020. openshiftremove_1                 | 2018-05-02T09:22:04.975Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:22:04 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62005248, heapTotal=32968704, heapUsed=24860192, external=78308, loadavg=[1.48193359375, 1.31494140625, 1.041015625], uptime=83935, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1                 | 2018-05-02T09:22:05.977Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:22:05 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62005248, heapTotal=32968704, heapUsed=24903880, external=78308, loadavg=[1.48193359375, 1.31494140625, 1.041015625], uptime=83936, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1                 | 2018-05-02T09:22:06.979Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:22:06 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62005248, heapTotal=32968704, heapUsed=24951056, external=78324, loadavg=[1.5234375, 1.32666015625, 1.04638671875], uptime=83937, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1                 | 2018-05-02T09:22:07.981Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:22:07 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62005248, heapTotal=32968704, heapUsed=24995000, external=78324, loadavg=[1.5234375, 1.32666015625, 1.04638671875], uptime=83938, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1                 | 2018-05-02T09:22:08.982Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:22:08 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62275584, heapTotal=32968704, heapUsed=25038744, external=78324, loadavg=[1.5234375, 1.32666015625, 1.04638671875], uptime=83939, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1                 | 2018-05-02T09:24:37.944Z - error: uncaughtException: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777 date=Wed May 02 2018 09:24:37 GMT+0000 (UTC), pid=50, uid=0, gid=0, cwd=/app/services/openshiftremove, execPath=/usr/local/bin/node, version=v8.11.1, argv=[node, /app/services/openshiftremove/src/index.js], rss=62545920, heapTotal=32968704, heapUsed=25404952, external=78804, loadavg=[2.7001953125, 2.123046875, 1.40869140625], uptime=84088, trace=[column=10, file=dns.js, function=errnoException, line=50, method=null, native=false, column=26, file=dns.js, function=GetAddrInfoReqWrap.onlookup [as oncomplete], line=92, method=onlookup [as oncomplete], native=false], stack=[Error: getaddrinfo ENOTFOUND logs2logs-db logs2logs-db:28777,     at errnoException (dns.js:50:10),     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)] openshiftremove_1

Closing due to inactivity. Feel free to reopen if needed.


Added margins to tabs widget

Closes #299
Margins can now be added to the tabs widget by using the Margin struct, which was previously used for margins between blocks I believe. The tabs.rs example was updated to reflect this.
The vertical field sets the margins/padding on the top and bottom of the widget, while the horizontal on the left and right. The tabs widget will be trimmed if these margins would push the contents off the screen. For example, setting vertical margins to 1 on a 2-line-tall tabs widget would display nothing, as the two lines would be used as margins.
The margins can be set with a .margin(...) builder method on the tabs widget.
Builder methods were also added for the Margin struct to facilitate creation. The Margin::default() sets both to zero, as is the visual default for other widgets, while the Margin::default().horizontal(x) and .vertical(x) builder methods set the horizontal and vertical components. .both(xy) sets both vertical and horizontal components to the same number.
Several new tests were added to the widgets_tabs.rs to ensure that the widget respects horizontal and vertical margins in a variety of cases.
Note that margins will still need to be added to other widgets in able to behave consistently with the new style of adding margins (.margin(...) with a Margin struct). These will be submitted as separate PRs.

Additionally, if this margin style works for you, please give me the go ahead to continue implementing this for all widgets.

As you offered to work on other widgets as well, I'm wondering if we should take this opportunity to rename Margin to Padding (as suggested sometime ago @teohhanhui) as it might make more sense to newcomers and people familiar with other UI libraries.

Sure!


Signature Help

This PR add a new route /signatureHelp which can be used to get information about signatures at a given position. It will return a list of signatures if invoked inside a constructor call or method call. Each signature represents an overload with its specific comment and parameters. The active signature and active parameter are denoted by the result object.

Minor niggle - not too important. Happy to merge this if you want.

@nosami I made it use two indices because it makes it easy to consume. Instead of iterating you can simply do something like response[activeSignature][activeParameter]. That will give you the most interesting information with ease.

working on the thing with different projects now

@davidfowl  overloads from different projects are now handled

Looks good


[Open Thread] General Questions

Please post your general questions here about Timber, Twig or what-have-you

Hi, just  curious as to what steps I need to take to add the cache. I want to cache the data and template and I've read the Performance guide. The only thing I'm changing is adding an integer to indicate when the cache should be reset:
	Timber::render( array( 'single-videography.twig' ), $context, 600 );

Is there anything else I have to do? At the moment, I can't see a cache folder being created in the Timber plugin folder or elsewhere. Have I over simplified this?
Thanks :)

Hi there,
I was wundering if it's somehow possible to use the TimberImage resize filter in a PHP function?
In my templates I'm using a custom php function to generate responsive picture markups with multiple breakpoints. I would like to generate all the different image sizes with the TimberImage resize filter within this function. Is this possible and if not, is there another way to achieve this?
Thanks!

Hi, I'm working with a multisite setup and I'm having trouble understanding how to query posts from the main site and have them display on the sub site.
As a proof of concept I was doing the following:
switch_to_blog(1);
$context = Timber::get_context();
$context['posts'] = Timber::get_posts();

Timber::render('index.twig', $context);

Where I was expecting that Timber::get_posts  this will return posts from the main site (site 1), instead I get the posts from the current site I'm on (site 2)
Do I need to do something different when instantiating the TimberSite ?
Right now I'm doing something similar to what's on the Timber Starter Theme:
class MySite extends TimberSite {

  public function __construct() {
        parent::__construct();
    }
}

new MySite();

Any help is greatly appreciated.

I've found something interesting.
If I run Timber::get_posts() with no arguments (after calling switch_to_blog()), Timber seems to ignore the switch and return just the current site posts.
If you pass arguments to Timber::get_posts($args) to the query instead, then it returns the posts from the other site, which is the behaviour that I'm looking for.

I have a problem with repeater fields in CFS, namely I am not able to display the content in the template in any way. I follow the documentation of TIMBER, Custom Field Suite and I even read about Advanced Fields, unfortunately it didn't help.
I created a custom field and in the template I added:
{% for field in post.meta('knowFields') %}

{{ field.fieldDesc }}

{% endfor %}
I also set the variable this way:
{% set fields = post.meta('knowFields') %}
{% for field in fields %}

{{ field.fieldDesc }}

{% endfor %}
Unfortunately, nothing works. Is anyone able to help me?


Anvil versions: naming convention

Anvil contains "core" which is independent of Android version.
Also it contains Attrs.java, which is a generated file with all views and their attributes for the given Android API level.
Previously I was bundling API level 10 and API level 15 and distributed it as the default Anvil package. Now I implement API-dependent bindings as gradle frlavors, so as a result I have multiple AARs being built - one for each supported API level (so far they are Android 2.3.3, Android 4.0 and Android 4.4). Each AAR contains Anvil "core" classes as well.
So previously co.trikita:anvil:+ has been the only latest version of Anvil. Now I see the following options:

Use different artifact names, like anvil-v10, anvil-v15 and anvil-v19. Use version to define Anvil core version. Pros: versioning is simple. Cons: requires creating multiple projects on maven central and bintray for each API level.

Use the same artifact name, e.g. anvil, but use major version number as API level, e.g. co.trikita:anvil:10.1.0 would be Anvil 1.0 for API level 10, co.trikita:anvil:15.1.0 would be Anvil 1.0 for API level 15 etc. Pros: single project to deploy. Cons: one must know this little trick with the versions, otherwise he might use co.trikita:anvil:+ and get KitKat minSdk without knowing why.

Like the first option, but publish only one most common API level, e.g. v15 as co.trikita:anvil:1.0.0. Leave API levels 10, 19 and others not-so-popular ones for local Anvil builds (e.g. git clone + gradle build publishToMavenLocal).

Please, vote and let me know your thoughts!

Ok, we did some brainstorming here, and ended up at option 1.
This means there is now three official Anvil builds and the artifacts are called anvil-sdkNN where NN is the minimal API level for each build. I've just published to jcenter and maven central co.trikita:anvil-sdk10:+ -- the minimal SDK version it still makes sense to support, co.trikita:anvil-sdk15:+ -- the most practical and recommended variant and co.trikita:anvil-sdk19:+ for those who care about top 50% of the users.
When picking "officially supported" SDK levels we rely on https://developer.android.com/about/dashboards/index.html
Ok, closing this. Goodbye co.trikita:anvil, welcome co.trikita:anvil-sdk15 and friends!


Further clarify node-types

Summary
Currently, node-types are mostly defined by the data they process. While this gives a relatively good idea of what the different node-types are, it does not really inform the implementation as there are open questions around what the node-types actually do.
Suggestions
Think of the node-types more from a less theoretic perspective and fully clarify their roles and responsibilities in the network beyond what the current definitions cover (data and fraud proofs only).
Action Items

[ ] First, make the node-types section a table. This gives a better overview of the differences and similarities of the existing types.
[ ] clarify what other network messages a node-type is intended to process/gossip etc (e.g. consensus messages and others) and if this is optional or not
[ ] clarify further node types and their relation in the network that are not yet covered (e.g. seed nodes, sentry nodes, etc)
[ ] if not obvious after the above is done: clarify the relation to the node-types in the specs and existing tendermint "modes" (not sure if this belongs in the specs or rather an adr but we really need this; either way, tracking it here as it should obviously be thought about when writing the specs too)
[ ] this all must result in an overview diagram (!) (could come first actually as it is way easier to discuss and faster to draft than writing a lot of text)

Related

storage nodes #175 and protocol #3
partial nodes adr issue: https://github.com/lazyledger/lazyledger-core/issues/388#issuecomment-860035943
https://github.com/lazyledger/lazyledger-core/discussions/384#discussioncomment-870427
https://github.com/lazyledger/lazyledger-core/issues/181#issuecomment-860931147
https://github.com/lazyledger/lazyledger-core/issues/279

Just to spark discussion and for my own clarification, I have a few questions.
From what I can tell, the only nodes that do not need the full commit, DAH, and header are the superlight nodes, which do not need the DAH. Is this correct?
side note: If we begin to propagate the DAH via IPFS, then this changes as we no longer need to include the DAH in anything as the DataHash will be included in the Header, and the DAH can be downloaded with that. The the question is how much time does downloading the DAH from IPFS add to each node’s operations and if that added time is worth not including the DAH?
As for how each node will be bootstrapped, the only nodes that do not need some form of seed and DHT bootstrapping nodes are again the superlight nodes. Is this correct?
What are the security differences between a partial node that downloads 1% block data and 24%, if any? (If it downloads the right 25% of block data, then it’s basically a full node that doesn’t repair the entire square.)

and to forward the more detailed questions from @liamsi
Which nodes care about consensus messages (proposals, votes etc)? (I think this will be answered by the answer to question 1 from the above comment)
Which only care about the headers the moment they are proposed?
Which only care about signed headers (headers plus signatures, plus validator sets)?


Support for zip files

We already support gzipped (.gz) and bzipped (.bz2) CSV files. Supporting zipped files (.zip) is a natural next step.
Should we support a zipped collection of files? That is more convenient, but raises questions directory traversal (e.g., do we select all .csv files or only top-level ones?).

This should only require modification to tensor_parser.csv_parser.open_file() unless we add directory logic?


RegEx Look Ahead/Behind Not Supported

I couldn't find anywhere that this was a known issue, but regex look ahead/behind is not supported. But it is in Chrome which caused me some headaches :-)
This gives an 'Unexpected quantifier' error (taken from a SO answer to find single digits):
var reSingleDigits = /(?<!\S)\d(?![^\s.,?!])/;

/cc @dilijev

Regex lookahead should work; if I do /a(?=b)/.exec("acab") then I get a match pointing to index 2, meaning it matched the ab and not the ac. We don't currently support lookbehind, which has only recently been accepted into the ES2018 spec.

There's a separate issue for implementing look behind: https://github.com/Microsoft/ChakraCore/issues/3448

Thank you, my error not finding the other issue


Possibility to reload variables if validations fail

Hi,
I can not figure out for myself one thing after reading the docs. I have such code in one of the controllers
def new
  @foos = Foo.all
  @bar = Bar.new
end

def create
  @bar = Bar.create(bar_params)
  respond_with @bar
end

And this is interesting for me, can I reload variable @foos if validations fail? Like in traditional controller:
if @bar.save
  ...
else
  reload_foos
  render :new

You can just check for errors.empty?:
reload_foos if @bar.errors.empty?

There's nothing builtin for anything like that, and I think that's fine. Thanks!


source'<array_function internals>':source unavailable"

we use the code
mapper=umap.UMAP().fit(fmnist.data)
then return"could not load source'<array_function internals>':source unavailable"

I must admit that I have never seen an error like that before. I am uncertain as to where it could be going astray; most likely at a lower level in some dependencies (numpy or numba most likely). Is there anything about your system (package versions, OS, etc.) or the dataset loading that are potentially different from the majority?

In fact that error shows when i use vscode "debug",the dataset also has error ,on vscode,the line"mapper=umap.UMAP().fit(minist.data)",there is a wavy line below "minist",shows "Instance of 'tuple'has no 'data'member".
when i run it with python ,return"TypeError:a bytes-like object is required,not 'list'",i think the dataset may has some thing wrong.But i really install the 'sklearn' correct.

------------------ Original ------------------
From:  "Leland<EMAIL_ADDRESS>Date:  Mon, Jun 29, 2020 10:29 PM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject:  Re: [lmcinnes/umap] source'<array_function internals>':source unavailable" (#458)

I must admit that I have never seen an error like that before. I am uncertain as to where it could be going astray; most likely at a lower level in some dependencies (numpy or numba most likely). Is there anything about your system (package versions, OS, etc.) or the dataset loading that are potentially different from the majority?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.