Manual install example

In README.md please enter an example of how to download and install ctlptl manually.  It just states to download binaries, but no example of how to do this step.

thanks! Ya, I wondered if people would want this, or if everyone was on Brew now
Here's what the manual install might look like. The main thing is adding something to our release process that updates the release number automatically

On macOS:
curl -fsSL https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.mac.x86_64.tar.gz | tar -xzv ctlptl && \
  sudo mv ctlptl /usr/local/bin/ctlptl

On Linux:
curl -fsSL https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.linux.x86_64.tar.gz | tar -xzv ctlptl && \
  sudo mv ctlptl /usr/local/bin/ctlptl

On Windows:
Invoke-WebRequest "https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.windows.x86_64.zip" -OutFile "ctlptl.zip"
Expand-Archive "ctlptl.zip" -DestinationPath "ctlptl"
Move-Item -Force -Path "ctlptl\ctlptl.exe" -Destination "$home\bin\ctlptl.exe"

Nick,
Thanks for the reply.  I actually run ubuntu server 20.04 as well as
desktop.  But I ended up in a loop, as I clicked on release link in
README.md, expect to be provide the "curl" command to dl, and install.  I
figured it out and download correct release, and installed successfully.
I actually don't use 'brew' package installer, so curl was my choice.  I am
new to Kubernetes and was following some install instructions that took me
to Tilt then to ctlptl, so I am figuring it all out now.
Again thanks.
Respectfully,
Phil M.
On Tue, Dec 8, 2020 at 10:28 AM Nick Santos<EMAIL_ADDRESS>wrote:

thanks! Ya, I wondered if people would want this, or if everyone was on
Brew now
Here's what the manual install might look like. The main thing is adding
something to our release process that updates the release number
automatically
On macOS:
curl -fsSL https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.mac.x86_64.tar.gz | tar -xzv ctlptl &&
sudo mv ctlptl /usr/local/bin/ctlptl
On Linux:
curl -fsSL https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.linux.x86_64.tar.gz | tar -xzv ctlptl &&
sudo mv ctlptl /usr/local/bin/ctlptl
On Windows:
Invoke-WebRequest "https://github.com/tilt-dev/ctlptl/releases/download/v0.3.1/ctlptl.0.3.1.windows.x86_64.zip" -OutFile "ctlptl.zip"Expand-Archive "ctlptl.zip" -DestinationPath "ctlptl"Move-Item -Force -Path "ctlptl\ctlptl.exe" -Destination "$home\bin\ctlptl.exe"
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tilt-dev/ctlptl/issues/75#issuecomment-740822355, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AH4CAGYOMA4LJDNRPFICHXDSTZV4NANCNFSM4USI7FTA
.

--
Thanks,
Phil Melendez
<EMAIL_ADDRESS>619.500.3589
Phil Melendez PMP, SCPM, CSM | LinkedIn
https://www.linkedin.com/in/phil-melendez-pmp-scpm-csm-4907a51
NOTICES: This message, including attachments, is confidential and may
contain information protected by the attorney-client privilege or work
product doctrine. If you are not the addressee, any disclosure, copying,
distribution, or use of the contents of this message are prohibited. If you
have received this email in error, please destroy it and notify the sender
immediately.

No worries, the Kubernetes ecosystem is a lot to navigate and it's still evolving very fast! I'm hoping that we build towards simpler solutions that put everything together better, with less running around and figuring out different installers :smile:

Happy this issue exists, it really should be added to the readme because assuming every linux env will be using brew, or desires to, is a pretty bold assumption 🤔


Update http4s-blaze-client, ... to 0.21.27

Updates

org.http4s:http4s-blaze-client
org.http4s:http4s-blaze-server
org.http4s:http4s-circe
org.http4s:http4s-dsl
org.http4s:http4s-server

from 0.21.14 to 0.21.27.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-patch

Superseded by #540.


Add custom device power state to allow sending custom params

:wave: This small change allows to send custom params for advanced use cases - in my case changing the color temperature and brightness of an LED bulb. While injecting that into setDevicePowerState is not perfect, because we are not really changing the power state, it felt wrong also to create a different mixin just for this. Let me know if a test needs to be added.

This small change allows to send custom params for advanced use cases - in my case changing the color temperature and brightness of an LED bulb. While injecting that into setDevicePowerState is not perfect, because we are not really changing the power state, it felt wrong also to create a different mixin just for this. Let me know if a test needs to be added.

I would prefer a new mixin updateDevice which is a generic update method allowing all updates and for the setDevicePowerState  to eventually use updateDevice. Then more descriptive / specific methods could be easily added eg setDeviceBulb which would set the color temperature and brightness of the LED bulb using updateDevice.
Comments ?

Adding an updateDevice mixin and using that in setDevicePowerState seems like a viable solution to me. I'm reluctant, though, regarding the specific methods: I have a multi-white bulb here, and I'm not even sure if all other ewelink-supported multi-white bulbs have to be spoken to in the same way (or is that normalized by ewelink?). Then there's multi-color bulbs and bulbs that just can switch on/off. The more methods around specific devices we add, the more needs to be maintained. Imo adding a generic update mixin is already enough to "unlock" all different sorts of use cases. WDYT?

Adding an updateDevice mixin and using that in setDevicePowerState seems like a viable solution to me. I'm reluctant, though, regarding the specific methods: I have a multi-white bulb here, and I'm not even sure if all other ewelink-supported multi-white bulbs have to be spoken to in the same way (or is that normalized by ewelink?). Then there's multi-color bulbs and bulbs that just can switch on/off. The more methods around specific device groups we add, the more needs to be maintained. Imo adding a generic update mixin is already enough to "unlock" all different sorts of use cases. WDYT?

Perhaps a compromise, add the updateDevice mixin and use in setDevicePowerState and only add methods for things that are genuinely simple/universal, eg setDeviceWiFiState (led enabled or not).

Yes, there are all great ideas. Unfortunately I'm currently lacking time to work on that, so I'll close this PR for now and when I have more time I can reopen it.


Feature: State-based game admin flow

Disclaimer: Forgive me if I'm missing something as I'm still discovering everything in this repo.
While I can see the value of being able to control anything at any time from the admin page, there is a certain level of game play cognitive load that comes with that.
I propose a second admin page that follows the flow of the game. For example, loads as title page, button for start game, buzzers appear to first users, admin clicks answer or strike, etc...
The idea being that only the currently relevant information is displayed as the game progresses. Of course, catastrophic bugs can sometimes appear out of nowhere so I'd keep the current admin page as a failsafe.

That's not a bad idea.
I think if the admin controls in code all got out into reusable components then you could import them for the new window.
I could also get an iframe of the /game window so you don't need a separate browser window so see what's happening. This would be a quick and dirty solution

Ideally for a bug change like this it would be a good idea to create a mock up of the new admin page before digging in.


⚠ sandbox-api.piste.gouv.fr healthcheck has degraded performance

In a594d96, sandbox-api.piste.gouv.fr healthcheck (https://sandbox-api.piste.gouv.fr/cassation/judilibre/v1.0/healthcheck) experienced degraded performance:

HTTP code: 200
Response time: 2785 ms

Resolved: sandbox-api.piste.gouv.fr healthcheck performance has improved in 4eba542.


Canvas Prop for shouldCancelWhenOutside

Is your feature request related to a problem?
First of all, thanks for making this nice library!
I noticed that when your finger moves outside the canvas while drawing, the drawing stops. For some use cases that is quite annoying, especially when the user wants to draw near the edges.
Desired solution (feature)
The Canvas component should have a prop to tell whether the touch should be persisted when moving outside the Canvas or not. Something like:
<Canvas
   color={"#000"}
   thickness={20}
   opacity={1}
   shouldCancelWhenOutside={false}
/>

In Canvas.tsx i noticed a property ".shouldCancelWhenOutside(true)" which is hardcoded to true. Changing this to false seems to solve the problem. Would be nice to have this property controllable via the Canvas prop.
Alternatives considered
No response
Anything else?
No response

This should be an easy fix, like you mentioned. Unfortunately I do not have much time to work on this library, but if you can create a PR with the change, I'll happily merge it into the codebase. (or I'll maybe get the time in a couple of months)


Bug: toggleFormat behaves incorrectly in some subscript/superscript states

Lexical version: v0.12.4
Bug 1
Steps to reproduce

Go to https://playground.lexical.dev/.
Select some text.
Click on the ‘Subscript’ button.
Click on the ‘Superscript’ button.

The current behavior
Nothing happens.
The expected behavior
The selected text should change from subscript to superscript.
Bug 2
Steps to reproduce

Go to https://playground.lexical.dev/.
Select some text.
Click on the ‘Superscript’ button.
Click on the ‘Subscript’ button.
Click on the ‘Subscript’ button.

The current behavior
The selected text changes from subscript to superscript.
The expected behavior
The selected text should change from subscript to normal script.
Analysis
Both bugs occur because there are 4 states possible:

normal script;
subscript;
superscript;
subscript and superscript,

and in the last state subscript has priority. The last state should not exist because subscript and superscript are mutually exclusive.

Fixed in https://github.com/facebook/lexical/pull/5317


fix get ns pid/tgid of process

the problem is task->nsproxy can't show the real ns pid/tgid of a namespaced process.
I have a issue to explain this :https://github.com/aquasecurity/tracee/issues/1950#issue-1299924163
the fix is from the relevant PR.

Codecov Report

Merging #768 (0a9801d) into main (fd5028f) will decrease coverage by 34.78%.
The diff coverage is n/a.

:exclamation: Current head 0a9801d differs from pull request most recent head a4bd2d0. Consider uploading reports for the commit a4bd2d0 to get more accurate results

@@            Coverage Diff             @@
##             main    #768       +/-   ##
==========================================
- Coverage   43.51%   8.73%   -34.79%
==========================================
  Files          24      24
  Lines        8562    8578       +16
==========================================
- Hits         3726     749     -2977
- Misses       4353    7726     +3373
+ Partials      483     103      -380

Impacted Files
Coverage Δ

KubeArmor/monitor/processTree.go
0.00% <0.00%> (-95.70%)
:arrow_down:

KubeArmor/monitor/logUpdate.go
0.00% <0.00%> (-71.72%)
:arrow_down:

KubeArmor/monitor/syscallParser.go
0.00% <0.00%> (-64.82%)
:arrow_down:

KubeArmor/core/crioHandler.go
0.00% <0.00%> (-63.87%)
:arrow_down:

KubeArmor/core/containerdHandler.go
3.35% <0.00%> (-53.74%)
:arrow_down:

KubeArmor/core/dockerHandler.go
0.00% <0.00%> (-52.81%)
:arrow_down:

KubeArmor/feeder/policyMatcher.go
0.00% <0.00%> (-48.75%)
:arrow_down:

KubeArmor/enforcer/appArmorProfile.go
0.00% <0.00%> (-45.93%)
:arrow_down:

KubeArmor/core/kubeUpdate.go
4.68% <0.00%> (-44.34%)
:arrow_down:

KubeArmor/enforcer/runtimeEnforcer.go
0.00% <0.00%> (-43.69%)
:arrow_down:

... and 7 more

Continue to review full report at Codecov.

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

Hey @xjas Thanks a lot the PR. Can you please resolve the conflicts before we can merge it?

Hey @xjas, I rebased the PR and fixed the conflicts. Can you please take a look here, if the changes are fine now? Thanks again.

Hey @xjas, I rebased the PR and fixed the conflicts. Can you please take a look here, if the changes are fine now? Thanks again.

Yes, it's what I expected,thanks for your commit.


Add Inline Type Hints to Sway-Server

Inlay hints for variables were added in #3015.
Closing this issue. Individual issues for specific inlay hints can be opened for each feature.


Update and rename jira-dashboard to jira-dashboard.yaml

Hey, I just made a Pull Request!
In the last PR, the filename extension .yaml was missing. It has been added and the "addedDate" updated.
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Here it is @awanlin :+1:  Thanks!

Thanks @fridajac, sorry I missed this when it first came in 😞

No worries, I totally missed it too . Thanks for being so fast now :smiley:

To fix the build failure in the /microsite folder run yarn install and then yarn prettier --write ., that will fix the file. In this case it looks like there is some empty white space on the description line 👍


Rename Project For Greater Clarity

During a re-evaluation of the API the names of the endpoints will be renamed.
This makes the word 'persona' an odd duck, and as such requires mending.
This should now be Figurant Management - due to its dual function of not only generating, but also managing once generated.
This is only a name thing. Have to ask @WafflesMcDuff  how I could rename a git, or if that is impossible.

Renamed as intended


Add Sentry performance monitoring

Adding support for Sentry Error Logging, Release Tracking, and Application Performance Monitoring.
One big thing that makes the Map Template deviate from the standard Sentry docs is that we don't use React Routes, but keep everything on / as a single-page app. We can do profiling of individual components, and that might give us more insight into which ones are heavy/slow, or other bottlenecks they might create. Docs here: https://docs.sentry.io/platforms/javascript/guides/react/features/component-tracking/. I haven't seen a named Component automatically tracked, besides the one I made myself, so we need to go in and name all of the components.

Does this work for the built Web component and React component? I see that a lot of configuration is done on the app level, but we only build and export the MapsIndoorsMap component. Is this configuration passed down?

Does this work for the built Web component and React component? I see that a lot of configuration is done on the app level, but we only build and export the MapsIndoorsMap component. Is this configuration passed down?

Great question @ammapspeople. What would be the easiest way for me to test the React/Web Component locally to see if the data is actually sent off?

You can try to follow this guide: https://github.com/MapsPeople/web-ui/tree/main/packages/tests

Following the guide worked!
Moreover, I moved the Sentry initialization to MapsIndoorsMap.jsx based on your recommendation, @ammapspeople. Worked fine in my test 😀


Reimplement main state machine

Use jump tables instead of nested switch statements.
Only GET_VERSION is currently implemented. Other commands do nothing.
This is a work in progress. I'll continue to move missing command functions over from the old firmware.
Is this a good approach to the firmware architecture? I believe differences in performance and memory use compared to the old implementation should be negligible, but I haven't profiled it. The advantage of this proposed architecture is maintainability.

Looks interesting. Nice work @bessman 🙌🏼


fix for frame scrollbars

@csadilek PR master only (this should not go into other branches yet)

@jlindop can you please review? Thanks

@csadilek amended PR with the extra test. Moving the 3 when statements to @Before did not work as tests failed so I left them there.

@tsurdilo
The Process Dialog looks better, but seems to have a misshapen frame. See image:

@jlindop thats the popup presenter in the process state view. I wonder if there is actually something wrong with that popup. seems way smaller than before.

@jlindop I amended a change to popup presenter and the corresponding test. can you please give it another go and test ? Thanks!

@tsurdilo
To verify we're looking at the same thing, I bring up the dialog by deploying a project with a BP, then go to:
ProcessManagement->ProcessDefinitions, Select my BP, then in the right-hand-frame, select Options->Process model. (Some other ways of bringing up the process model dialog that used to work don't seem to work right now).
I'm still seeing the frame as before. If the main browser isn't very wide, the dialog looks like it's not all showing.

@jlindop yes the issue seems to be with the "Process Model" popup which is not part of Designer. If you revert all changes here the result is the same. I am looking into the console code to see what updates the underlying popup may need and will create a separate bz for that but for this scrollbar fix it seems that the issue you are showing is not related to Designer code.

@tsurdilo Ah, I see. Right now, the designer part of this dialog seems big - using my default size browser, I need to make the browser bigger to show the whole process-diagram and the scrollbars around it.

@jlindop yes - the parent container has to (and used to) control the displayed with and users can vertically scroll through the process. This no longer seems the case and that's why I said we should look at that popup widget to see what changed / needs to change instead of focus on the designer fix here that really has nothing to do w/ the problem.

@tsurdilo
I see - thanks for the update. This looks ok then.
+1

@tsurdilo before I merge, is there a BZ for this fix? If so, can you add it to the commit message. It looks a little terse as it doesn't say what it fixes.

@csadilek I think, there is no BZ or JIRA, because I warned @tsurdilo about this issue just by email, I considered it as the fastest way how to get the issue fixed

@jomarko yes it is the best/fastest way.
Thanks.
master: bacb3b750a1538650434a56ee7257dc0b8210aef

But someone, IMO, should have raised a JIRA to record the work. Normally we
try not to work from emails/IRC chat.

Yes @manstis is right. We should have created a JIRA and referenced it in the commit message then.

@csadilek @manstis I am sorry for this, In future I will always file the issue to JIRA or BZ. In this case I decided for email because I found the issue in one of the first 6.4.0 SNAPSHOT.


Outdated instructions on charts.zitadel.com

The instructions on charts.zitadel.com are seemingly outdated, as it states:

By default, this chart installs a highly available ZITADEL instance. Also it installs a highly available and secure CockroachDB by default.

The Readme in this repo however states:

In v4, the cockroachdb chart dependency is removed.

That's true, we should update that. Thanks for the hint.


Playing with initial lua transformer setup

Added initial idea for lua transformers setup with outFile bundler example/outline.

Closing in favor of #750


Make application responsive for various devices and screen sizes

Currently, the application is not optimized for various devices and screen sizes. This can lead to a poor user experience for those accessing the application from mobile devices, tablets, or smaller screens. To improve the user experience and ensure accessibility for all users, the application needs to be made responsive.
This issue involves implementing responsive design principles, such as using flexible layouts, fluid images, and media queries to adapt the application's layout and content to different screen sizes. The goal is to ensure that the application looks and functions well on a wide range of devices and screen resolutions, from large desktop monitors to small mobile screens.
By making the application responsive, we can improve the user experience, increase engagement, and make the application more accessible to a wider audience.

Please assign the issue to me.

@HarithaRaghu are you working on this or should I assign to someone else?

I would love to do this, please assign me @ank1traj

@singhcoder694 Few issues I can see after the deployment are

Black and black dropdown
If i am on mobile and dropdown is opened on switching to bigger screen causing issue
Header is missing from every page except home page.

I have added now the deployment also. So, please have a look into this. If need anything let me know.

@ank1traj I am unable to see nay other page link of which page are u telling for?

@ank1traj 3 issue which you mentioned is not due to my PR it was before also, I thought may be we don't need navbar on these pages... So didn't do anything.... So do we need whole navbar there or on navbar having Home and About links?

@singhcoder694 Points 1 and 2 are from your code only. And, point 3 was optional. Please. have a look https://testcase-generator.vercel.app/

Ya I have solved bugs from my code which you mentioned... I was just asking for 3 point if required?

If it's work fine then please add it too.


Document how to recover from terraform lock issues

Until we fix https://github.com/kinvolk/lokomotive/issues/45 we should document how to recover from terraform keeping the lock when interrupting lokoctl.
It could be something like this:

move to the terraform subdirectory

manually execute e.g. "terraform apply"; the output gives the Lock ID:
Lock Info:
  ID:        dff67962-f593-1593-4a36-cadf3d801600

remove the lock:
$ terraform force-unlock dff67962-f593-1593-4a36-cadf3d801600

Reported-by: @jpetazzo

After #483 I haven't experienced this. Closig.


Agora - Outfox High level merger document

This is a bulidout of ideas here in #53 and #52
Agora's original use case was as a flexible / easy to use LMS for coding coach content so that learners could benefit from community and curation of additional resources and even activities.  Goals and topics would help direct them along learning paths.
Outfox's goal was to create a open source, decentralized system that focused on the individual instead of the institution.  It's central model was a resource that could be a link, uploaded file (attachment), HTML (WYSIWYG driven), Embedded HTML (Video, google slide, etc) and making these resources easy to share and find allowing easier research and collaboration opportunities.
The merged platform will add the ability to use topics and threads from agora incorporated with the decentralized and sharing focused resource platform provided by outfox.
Things that need to happen: (high level list for milestone breakdown):

Remove coding coach site / branding create Agora branding
Agora resources need to be to be updated to support all of Outfoxes use cases
Tags and Categorization need to be incorporated. It was on Agora's TODO list, outfox had an implementation to review
Discussions for resources, but also goals and topics (maybe even tags for general area wide discussion not tied to a users particular goal and topic?)
Sharing needs to be implemented.  Agora did not have any mechanism for it, Outfox had a rudimentary one that needs to be reviewed
Discovery / Recommendations for resources, goals / topics, collaborations with other users based on interests / research. Agora does not have any of this currently, Outfox had an early effort written in python as a separate and related application to evaluate

This needs to be moved to a discussion as it is now in progress for building out the project and individual milestones.

Created https://github.com/briangormanly/agora/discussions/58
Closing


Add Edit payout button

What does this PR do and why?
closes https://github.com/jbx-protocol/juice-interface/issues/785
A bunch of rework and have made the modal form a bit more performant. I have already uncovered some bugs through some quick testing, but I think they may already exist in the codebase, so if reviewers are willing, i'd prefer to create issues and fix after merge to avoid growing this PR any bigger/longer.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the
changes.
Acceptance checklist

[ ] I have evaluated the
Approval Guidelines
for this PR.
[ ] I have tested this PR in
all supported browsers.

@wraeth-eth I've had a quick review of this but will need to go into greater depth later.

So good @wraeth-eth. My main comment is that I think we need to make it clear somehow why we can't adjust payouts by amounts in this modal (because distribution limit isn't set in this tx to save gas).

It's purely a way to edit percentages, so I'm wondering if we should even rename the button from 'Edit payouts' to 'Edit percentages' or something.

The modal description needs some info about how amounts can't be set in this modal because the transaction doesn't handle distribution limit, and that if they want to adjust payouts as amounts (adjust the overall distribution limit) they'll need to use the reconfigure transaction (possibly make a link to open the reconfigure funding cycle modal)

Can we show amounts in these cards (if limit is not infinite)?

When the percentages don't add up to 100%, I think we need to clearly indicate how much remainder will be allocated to the owner. We should match the extra hard-coded card we've got in the create flow for this. In this case we can remove the 'By default, all unallocated funds can be distributed to the project owner's wallet.' sentence from the description as it will be covered in the info tooltip of the remainder card. Also, will need to show a different message in this tooltip depending on if limit is infinite or specific

Thanks for feedback @johnnyd-eth - have made some comments on discord
Have also fixed up a couple of suggestions from you.
Re Modal needs the remainder split card (like in create/reconfig), not quite sure I follow. Do you mean the owner split card? If so, this is what it looks like:


Add go import path for Travis

This allows being able to run test builds when forking the repo.
Signed-off-by: Waldemar Quevedo<EMAIL_ADDRESS>/cc @nats-io/core

It wouldn't show up under our builds, only under the Travis builds from the user of the forked repo, otherwise test fail because of path issues: https://travis-ci.org/wallyqs/gnatsd/builds

Coverage increased (+0.01%) to 91.547% when pulling 2936e1b92a3c07f3ae179142285d7b956f787397 on wallyqs:travis-go-import-path into c329da72fcb1bac3f77635138920275e396414ec on nats-io:master.


Fun example

Monad instance for resolvers
Example using Monad transformers, STM, authentication.

How do i achieve something like liftEither with this ?
Example:
resolveLoginUser :: Mongo.Pipe -> LoginArgs -> Object MUTATION User
resolveLoginUser pipe LoginArgs { username, password } = liftEither
  (resolveLoginUser' pipe username password)
  where
    resolveLoginUser' :: Mongo.Pipe
                      -> Text
                      -> Text
                      -> IO (Either String (Object MUTATION User))

Essentially i want a Either return value, which gives back an gql error, when Left (like with the specific resolvers)

How do i achieve something like liftEither with this ?
Example:
resolveLoginUser :: Mongo.Pipe -> LoginArgs -> Object MUTATION User
resolveLoginUser pipe LoginArgs { username, password } = liftEither
  (resolveLoginUser' pipe username password)
  where
    resolveLoginUser' :: Mongo.Pipe
                      -> Text
                      -> Text
                      -> IO (Either String (Object MUTATION User))

Essentially i want a Either return value, which gives back an gql error, when Left (like with the specific resolvers)

Hi @diskroma
If you're using the example, I think resolveLoginUser' would be:
resolveLoginUser' :: Mongo.Pipe
                        -> Text
                        -> Text
                        -> Web (Either String (User (Resolver MUTATION () Web)))

Which looks unwieldy.
But why do you need resolveLoginUser'? Can the following work?:
resolveLoginUser :: Mongo.Pipe -> LoginArgs -> Object MUTATION User
resolveLoginUser pipe LoginArgs { username, password } = do
	userResult <- liftIO $ findUser pipe username password
	case userResult of
		Just userRow -> resolveUser userRow
		Nothing -> failRes "...."


Jesse: Watch hivelance(?!.com(?<=hivelance.com))

Jesse requests the watch of the watch_keyword hivelance(?!\.com(?<=hivelance\.com)). See the MS search here and the Stack Exchange search in text, in URLs, and in code.

hivelance(?!\.com(?<=hivelance\.com)) has been seen in 4 true positives, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


trtllm-build on GRID vGPU - nvml errors

System Info

Host: VMware ESXi 7
Host Nvidia drivers: 550.54.16
VM CPU architecture: x86_64
VM Nvidia drivers: 550.54.15
VM OS: Ubuntu LTS 22.04
Physical GPU: A100
TensorRT-LLM version: v0.11.0

Who can help?
@byshiue
Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[X] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[ ] My own task or dataset (give details below)

Reproduction
After proper checkpoint creation:
trtllm-build --checkpoint_dir Meta-Llama-3-8B-Instruct-bf16-ckpt --gemm_plugin bfloat16 --gpt_attention_plugin bfloat16 --output_dir Meta-Llama-3-8B-Instruct-bf16-engine

Expected behavior
Successful build of the engine.
actual behavior
[TensorRT-LLM] TensorRT-LLM version: 0.11.0.dev2024062500
[06/28/2024-06:35:05] [TRT-LLM] [I] Set bert_attention_plugin to auto.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set gpt_attention_plugin to bfloat16.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set gemm_plugin to bfloat16.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set gemm_swiglu_plugin to None.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set nccl_plugin to auto.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set lookup_plugin to None.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set lora_plugin to None.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set moe_plugin to auto.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set mamba_conv1d_plugin to auto.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set context_fmha to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set context_fmha_fp32_acc to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set paged_kv_cache to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set remove_input_padding to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set use_custom_all_reduce to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set reduce_fusion to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set multi_block_mode to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set enable_xqa to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set attention_qk_half_accumulation to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set tokens_per_block to 64.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set use_paged_context_fmha to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set use_fp8_context_fmha to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set multiple_profiles to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set paged_state to True.
[06/28/2024-06:35:05] [TRT-LLM] [I] Set streamingllm to False.
[06/28/2024-06:35:05] [TRT-LLM] [I] Compute capability: (8, 0)
[06/28/2024-06:35:05] [TRT-LLM] [I] SM count: 98
Traceback (most recent call last):
  File "/home/s2e/.local/bin/trtllm-build", line 8, in <module>
    sys.exit(main())
  File "/home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/commands/buil                                                                                d.py", line 428, in main
    cluster_config = infer_cluster_config()
  File "/home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/auto_parallel                                                                                /cluster_info.py", line 538, in infer_cluster_config
    cluster_info=infer_cluster_info(),
  File "/home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/auto_parallel                                                                                /cluster_info.py", line 460, in infer_cluster_info
    sm_clock = pynvml.nvmlDeviceGetMaxClockInfo(
  File "/usr/local/lib/python3.10/dist-packages/pynvml/nvml.py", line 2182, in n                                                                                vmlDeviceGetMaxClockInfo
    _nvmlCheckReturn(ret)
  File "/usr/local/lib/python3.10/dist-packages/pynvml/nvml.py", line 833, in _n                                                                                vmlCheckReturn
    raise NVMLError(ret)
pynvml.nvml.NVMLError_NotSupported: Not Supported

additional notes
The same procedure has already been successfully completed on a VM with GPU Passthrough.
The configuration of the VM with vGPU technology has been done correctly (details of the installed drivers at the bottom).
The problem arises during the execution of infer_cluster_info. I created a small test in python to go and check all the requests made in the function:
import pynvml
import torch
import sys

# Initialize NVML
pynvml.nvmlInit()

def test_nvml_calls():
    device_index = torch.cuda.current_device()
    handle = pynvml.nvmlDeviceGetHandleByIndex(device_index)

    # List of NVML functions to test
    nvml_functions = [
        ("nvmlDeviceGetCudaComputeCapability", lambda: pynvml.nvmlDeviceGetCudaComputeCapability(handle)),
        ("nvmlDeviceGetMaxClockInfo for SM Clock", lambda: pynvml.nvmlDeviceGetMaxClockInfo(handle, pynvml.NVML_CLOCK_SM)),
        ("nvmlDeviceGetMaxClockInfo for Mem Clock", lambda: pynvml.nvmlDeviceGetMaxClockInfo(handle, pynvml.NVML_CLOCK_MEM)),
        ("nvmlDeviceGetMemoryBusWidth", lambda: pynvml.nvmlDeviceGetMemoryBusWidth(handle)),
        ("nvmlDeviceGetNvLinkState", lambda: pynvml.nvmlDeviceGetNvLinkState(handle, 0)),
        ("nvmlDeviceGetNvLinkVersion", lambda: pynvml.nvmlDeviceGetNvLinkVersion(handle, 0)),
        ("nvmlDeviceGetCurrPcieLinkGeneration", lambda: pynvml.nvmlDeviceGetCurrPcieLinkGeneration(handle)),
        ("nvmlDeviceGetCurrPcieLinkWidth", lambda: pynvml.nvmlDeviceGetCurrPcieLinkWidth(handle)),
    ]

    results = {}
    for func_name, func in nvml_functions:
        try:
            result = func()
            results[func_name] = ("Success", result)
        except pynvml.NVMLError as e:
            results[func_name] = ("Failed", str(e))

    return results

# Run the tests and print the results
results = test_nvml_calls()
for func_name, (status, output) in results.items():
    print(f"{func_name}: {status} - Output/Error: {output}")

# Finalize NVML
pynvml.nvmlShutdown()

and this is the output:
nvmlDeviceGetCudaComputeCapability: Success - Output/Error: (8, 0)
nvmlDeviceGetMaxClockInfo for SM Clock: Failed - Output/Error: Not Supported
nvmlDeviceGetMaxClockInfo for Mem Clock: Failed - Output/Error: Not Supported
nvmlDeviceGetMemoryBusWidth: Success - Output/Error: 5120
nvmlDeviceGetNvLinkState: Failed - Output/Error: Not Supported
nvmlDeviceGetNvLinkVersion: Failed - Output/Error: Not Supported
nvmlDeviceGetCurrPcieLinkGeneration: Failed - Output/Error: Not Supported
nvmlDeviceGetCurrPcieLinkWidth: Failed - Output/Error: Not Supported

This despite setting pciPassthru0.cfg.enable_profiling for the VM as suggested in the NVIDIA AI Enterprise User Guide.
 ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA A100 80GB PCIe          Off |   00000000:03:00.0 Off |                    0 |
| N/A   30C    P0             42W /  300W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

Thanks @edesalve
We'll try to reproduce your issue internally but it more looks like a issue related with nvml package.
@yuxianq could we war this issue?

@edesalve Some nvml API is unavailable in vGPU environment due to safety. We have already workaround it by fallbacking to a default cluster key when any nvml API fails. This bugfix will be provided in the next weekly release of main branch.

Thank you for the very quick response, I will wait for next week's version!

@yuxianq Just installed the new version and the build finished successfully as expected:
[TensorRT-LLM] TensorRT-LLM version: 0.12.0.dev2024070200
[07/04/2024-13:50:35] [TRT-LLM] [I] Set bert_attention_plugin to auto.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set gpt_attention_plugin to bfloat16.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set gemm_plugin to bfloat16.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set gemm_swiglu_plugin to None.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set nccl_plugin to auto.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set lookup_plugin to None.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set lora_plugin to None.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set moe_plugin to auto.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set mamba_conv1d_plugin to auto.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set context_fmha to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set context_fmha_fp32_acc to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set paged_kv_cache to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set remove_input_padding to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set use_custom_all_reduce to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set reduce_fusion to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set multi_block_mode to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set enable_xqa to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set tokens_per_block to 64.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set use_paged_context_fmha to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set use_fp8_context_fmha to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set multiple_profiles to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set paged_state to True.
[07/04/2024-13:50:35] [TRT-LLM] [I] Set streamingllm to False.
[07/04/2024-13:50:35] [TRT-LLM] [I] Compute capability: (8, 0)
[07/04/2024-13:50:35] [TRT-LLM] [I] SM count: 98
[07/04/2024-13:50:36] [TRT-LLM] [W] Failed to infer cluster info for GRID A100D-7-80C MIG 7g.80gb, treat it as a L40 node with 79 GB memory. This setting makes no effect if you do not use auto parallel.
[07/04/2024-13:50:36] [TRT-LLM] [I] max_seq_len is not specified, using value 8192
[07/04/2024-13:50:36] [TRT-LLM] [W] remove_input_padding is enabled, while opt_num_tokens is not set, setting to max_batch_size*max_beam_width.

[07/04/2024-13:50:36] [TRT-LLM] [W] padding removal and fMHA are both enabled, max_input_len is not required and will be ignored
[07/04/2024-13:50:36] [TRT-LLM] [I] Set dtype to bfloat16.
[07/04/2024-13:50:36] [TRT] [I] [MemUsageChange] Init CUDA: CPU +2, GPU +0, now: CPU 150, GPU 6287 (MiB)
[07/04/2024-13:50:39] [TRT] [I] [MemUsageChange] Init builder kernel library: CPU +1927, GPU +354, now: CPU 2224, GPU 6641 (MiB)
[07/04/2024-13:50:39] [TRT] [W] profileSharing0806 is on by default in TensorRT 10.0. This flag is deprecated and has no effect.
[07/04/2024-13:50:39] [TRT-LLM] [I] Set nccl_plugin to None.
[07/04/2024-13:50:39] [TRT-LLM] [I] Set use_custom_all_reduce to True.
[07/04/2024-13:50:39] [TRT-LLM] [I] Build TensorRT engine Unnamed Network 0
[07/04/2024-13:50:39] [TRT] [W] Unused Input: position_ids
[07/04/2024-13:50:39] [TRT] [W] [RemoveDeadLayers] Input Tensor position_ids is unused or used only at compile-time, but is not being removed.
[07/04/2024-13:50:39] [TRT] [I] Global timing cache in use. Profiling results in this builder pass will be stored.
[07/04/2024-13:50:43] [TRT] [I] [GraphReduction] The approximate region cut reduction algorithm is called.
[07/04/2024-13:50:43] [TRT] [I] Detected 14 inputs and 1 output network tensors.
[07/04/2024-13:50:56] [TRT] [I] Total Host Persistent Memory: 92512
[07/04/2024-13:50:56] [TRT] [I] Total Device Persistent Memory: 0
[07/04/2024-13:50:56] [TRT] [I] Total Scratch Memory: 134250496
[07/04/2024-13:50:56] [TRT] [I] [BlockAssignment] Started assigning block shifts. This will take 559 steps to complete.
[07/04/2024-13:50:56] [TRT] [I] [BlockAssignment] Algorithm ShiftNTopDown took 19.7677ms to assign 16 blocks to 559 nodes requiring 838866432 bytes.
[07/04/2024-13:50:56] [TRT] [I] Total Activation Memory: 838865408
[07/04/2024-13:50:56] [TRT] [I] Total Weights Memory:<PHONE_NUMBER>0
[07/04/2024-13:50:56] [TRT] [I] Engine generation completed in 16.958 seconds.
[07/04/2024-13:50:56] [TRT] [I] [MemUsageStats] Peak memory usage of TRT CPU/GPU memory allocators: CPU 4 MiB, GPU 24576 MiB
[07/04/2024-13:51:06] [TRT] [I] [MemUsageStats] Peak memory usage during Engine building and serialization: CPU: 34869 MiB
[07/04/2024-13:51:06] [TRT-LLM] [I] Total time of building Unnamed Network 0: 00:00:26
[07/04/2024-13:51:06] [TRT] [I] Serialized 26 bytes of code generator cache.
[07/04/2024-13:51:06] [TRT] [I] Serialized 137497 bytes of compilation cache.
[07/04/2024-13:51:06] [TRT] [I] Serialized 6 timing cache entries
[07/04/2024-13:51:06] [TRT-LLM] [I] Timing cache serialized to model.cache
[07/04/2024-13:51:06] [TRT-LLM] [I] Serializing engine to Meta-Llama-3-8B-Instruct-bf16-engine/rank0.engine...
[07/04/2024-13:51:28] [TRT-LLM] [I] Engine serialized. Total time: 00:00:21
[07/04/2024-13:51:29] [TRT-LLM] [I] Total time of building all engines: 00:00:53

However trying the example inference through:
 python3 examples/run.py --engine_dir Meta-Llama-3-8B-Instruct-bf16-engine --max_output_len 100 --tokenizer_dir ~/meta-llama_Meta-Llama-3-8B-Instruct --input_text "How do I count to nine in French?"

gives the following error:
[TensorRT-LLM] TensorRT-LLM version: 0.12.0.dev2024070200
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Traceback (most recent call last):
  File "/home/s2e/TensorRT-LLM/examples/run.py", line 532, in <module>
    main(args)
  File "/home/s2e/TensorRT-LLM/examples/run.py", line 364, in main
    runner = runner_cls.from_dir(**runner_kwargs)
  File "/home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/runtime/model_runner_cpp.py", line 240, in from_dir
    executor = trtllm.Executor(engine_dir, trtllm.ModelType.DECODER_ONLY,
RuntimeError: [TensorRT-LLM][ERROR] CUDA runtime error in cudaDeviceGetDefaultMemPool(&memPool, device): operation not supported (/home/jenkins/agent/workspace/LLM/main/L0_PostMerge/tensorrt_llm/cpp/tensorrt_llm/runtime/bufferManager.cpp:211)
1       0x7fb2d6a9397e void tensorrt_llm::common::check<cudaError>(cudaError, char const*, char const*, int) + 94
2       0x7fb2d838953c tensorrt_llm::runtime::BufferManager::initMemoryPool(int) + 124
3       0x7fb2d838b567 tensorrt_llm::runtime::BufferManager::BufferManager(std::shared_ptr<tensorrt_llm::runtime::CudaStream>, bool) + 663
4       0x7fb2d845eb72 tensorrt_llm::runtime::TllmRuntime::TllmRuntime(tensorrt_llm::runtime::RawEngine const&, nvinfer1::ILogger*, float, bool) + 370
5       0x7fb2d867b42a tensorrt_llm::batch_manager::TrtGptModelInflightBatching::TrtGptModelInflightBatching(std::shared_ptr<nvinfer1::ILogger>, tensorrt_llm::runtime::ModelConfig const&, tensorrt_llm::runtime::WorldConfig const&, tensorrt_llm::runtime::RawEngine const&, bool, tensorrt_llm::batch_manager::TrtGptModelOptionalParams const&) + 954
6       0x7fb2d869ece3 tensorrt_llm::executor::Executor::Impl::createModel(tensorrt_llm::runtime::RawEngine const&, tensorrt_llm::runtime::ModelConfig const&, tensorrt_llm::runtime::WorldConfig const&, tensorrt_llm::executor::ExecutorConfig const&) + 419
7       0x7fb2d869f4e8 tensorrt_llm::executor::Executor::Impl::loadModel(std::optional<std::filesystem::path> const&, std::optional<std::vector<unsigned char, std::allocator<unsigned char> > > const&, tensorrt_llm::runtime::GptJsonConfig const&, tensorrt_llm::executor::ExecutorConfig const&, bool) + 1272
8       0x7fb2d86a4714 tensorrt_llm::executor::Executor::Impl::Impl(std::filesystem::path const&, std::optional<std::filesystem::path> const&, tensorrt_llm::executor::ModelType, tensorrt_llm::executor::ExecutorConfig const&) + 1764
9       0x7fb2d86992e0 tensorrt_llm::executor::Executor::Executor(std::filesystem::path const&, tensorrt_llm::executor::ModelType, tensorrt_llm::executor::ExecutorConfig const&) + 64
10      0x7fb36322d4b2 /home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/bindings.cpython-310-x86_64-linux-gnu.so(+0xb64b2) [0x7fb36322d4b2]
11      0x7fb3631d01dc /home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/bindings.cpython-310-x86_64-linux-gnu.so(+0x591dc) [0x7fb3631d01dc]
12      0x55dd7935210e python3(+0x15a10e) [0x55dd7935210e]
13      0x55dd79348a7b _PyObject_MakeTpCall + 603
14      0x55dd79360c20 python3(+0x168c20) [0x55dd79360c20]
15      0x55dd7935d087 python3(+0x165087) [0x55dd7935d087]
16      0x55dd79348e2b python3(+0x150e2b) [0x55dd79348e2b]
17      0x7fb3631cf7fb /home/s2e/.local/lib/python3.10/site-packages/tensorrt_llm/bindings.cpython-310-x86_64-linux-gnu.so(+0x587fb) [0x7fb3631cf7fb]
18      0x55dd79348a7b _PyObject_MakeTpCall + 603
19      0x55dd79341629 _PyEval_EvalFrameDefault + 27257
20      0x55dd793607f1 python3(+0x1687f1) [0x55dd793607f1]
21      0x55dd79361492 PyObject_Call + 290
22      0x55dd7933d5d7 _PyEval_EvalFrameDefault + 10791
23      0x55dd793529fc _PyFunction_Vectorcall + 124
24      0x55dd7933b26d _PyEval_EvalFrameDefault + 1725
25      0x55dd793379c6 python3(+0x13f9c6) [0x55dd793379c6]
26      0x55dd7942d256 PyEval_EvalCode + 134
27      0x55dd79458108 python3(+0x260108) [0x55dd79458108]
28      0x55dd794519cb python3(+0x2599cb) [0x55dd794519cb]
29      0x55dd79457e55 python3(+0x25fe55) [0x55dd79457e55]
30      0x55dd79457338 _PyRun_SimpleFileObject + 424
31      0x55dd79456f83 _PyRun_AnyFileObject + 67
32      0x55dd79449a5e Py_RunMain + 702
33      0x55dd7942002d Py_BytesMain + 45
34      0x7fb4bbb69d90 /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7fb4bbb69d90]
35      0x7fb4bbb69e40 __libc_start_main + 128
36      0x55dd7941ff25 _start + 37
*** The MPI_Comm_free() function was called after MPI_FINALIZE was invoked.
*** This is disallowed by the MPI standard.
*** Your MPI job will now abort.

I have found other people experiencing a similar issue, someone states it's solved but it's not clear how. Concerning pciPassthru parameters both pciPassthru.64bitMMIOSizeGB=256 and pciPassthru.use64bitMMIO=TRUE are set.


pr_check: Increase timeout to 90m

The actual image build can take up to 60 minutes and there is not enough time for the rest of the tests and cleanup then.

It hurts to see 60mins is not enough, I'd love to figure out a way around it. Tho at this point, better finish the tests then cut them short. Thank you @jrusz ! 🧡

There is a very easy solution to this. Increase the amount of stage workers :) ... The actual image build timeout is still at 60 minutes btw.

/retest

/retest


Unable to start unity after fresh install

name: trusty
Enter encryption passphrase for trusty:
encrypted: yes, unlocked
Entering /mnt/stateful_partition/crouton/chroots/trusty...
crouton: version 1-20161028111244~master:948ee6dc
release: trusty
architecture: armhf
xmethod: xorg
targets: unity-desktop,gtk-extra,cli-extra,extension,keyboard,xbmc,chrome
host: version 8743.76.0 (Official Build) stable-channel veyron_speedy
kernel: Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 25 23:32:44 PDT 2016 armv7l armv7l armv7l GNU/Linux
freon: yes
Unmounting /mnt/stateful_partition/crouton/chroots/trusty...
After installing unity from the guide located at chromebook.guide/crouton and running the command sudo startunity I get the following errors:
Loading extension GLX
crouton: version 1-20161028111244~master:948ee6dc
release: trusty
architecture: armhf
xmethod: xorg
targets: unity-desktop,gtk-extra,cli-extra,extension,keyboard,xbmc,chrome
host: version 8743.76.0 (Official Build) stable-channel veyron_speedy
kernel: Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 25 23:32:44 PDT 2016 armv7l armv7l armv7l GNU/Linux
freon: yes
Running exit commands...
/usr/bin/xinit: connection to X server lost
waiting for X server to shut down Hangup
Hangup
Hangup
(EE)
Unmounting /mnt/stateful_partition/crouton/chroots/trusty...
Does anybody know a way to fix this?

@steinbarge1,
It looks like both your 'crouton' version and your CrOS version are up to date, thanx for that info.
Just checking to be sure, does this happen each and every time?
Can you get into your chroot and start it there using:

sudo enter-chroot
startunity

You could try adding the 'xiwi' target/xmethod using:

sudo sh ~/Downloads/crouton -n trusty -t xiwi -u

And see if that will be satisfactory for you, it won't have hardware acceleration but it might be good enough.
Hope this helps,
-DennisL

unity doesn't really work on ARM on anything other than precise, due to missing DRI stuff yadda yadda yadda.  We'll probably be disabling it people don't install it expecting it to work.  Sorry for the bad news :/

Guess I missed that little tidbit, sorry... : (


id doesn't auto-increment when not default id field

Hi,
If a domain object's id is mapped using the name attribute, it doesn't increment the id. e.g

class Client {
   Long clientId

   static mapping = {
        id name: 'clientId'
   }

}

So the following would fail:

assert Client.build().clientId  != Client.build().clientId

Build test data doesn't do anything specific with the Id as the Grails test framework is responsible for handling it. I don't see how this could be something BTD is doing wrong.


Soliditypack function in Swift

Hi,
I'm looking for a way to do the Soliditypack function like in Ethers.js. Solidity uses a non-standard function to pack data.
I didn't find a similar function to do it in web3swift, do I have to recreate it from scratch?

For anyone having this question, just concatenate the different values to a string


Filer dataCenter parameter does not prioritize reads from the specified DC

For example, we write data through filer S2 (DC1) with replication 100, then we try to read same data from the same filer S2 (DC1) and as a result, some of the readings come from DC2.
According to weed filer -help , this doesn't seem to work as described
  -dataCenter string
        prefer to read and write to volumes in this data center

List the command line to start "weed master", "weed volume", "weed filer", "weed s3", "weed mount".
S1:
/opt/weed -logdir=/var/log/weed filer -ip=S1 -s3 -defaultReplicaPlacement=100 -dataCenter=DC1
/opt/weed -logdir=/var/log/weed master -ip=S1 -mdir=/srv/mweed/  -volumeSizeLimitMB=307200 -defaultReplication=100 -peers=S2:9333,S1:9333,S3:9333 -metrics.address=m_ip:9091
/opt/weed -logdir=/var/log/weed volume -ip=S1 -mserver=S2:9333,S1:9333,S3:9333 -dir=/backup/vweed -dir.idx=/srv/vweed/ -disk=hdd -compactionMBps=40 -dataCenter=vin1 -rack=V1 -max=0

S2:
/opt/weed -logdir=/var/log/weed filer -ip=S2 -s3 -defaultReplicaPlacement=100 -dataCenter=DC1
/opt/weed -logdir=/var/log/weed master -ip=S2 -mdir=/srv/mweed/  -volumeSizeLimitMB=307200 -defaultReplication=100 -peers=S2:9333,S1:9333,S3:9333 -metrics.address=m_ip:9091
/opt/weed -logdir=/var/log/weed volume -ip=S2 -mserver=S2:9333,S1:9333,S3:9333 -dir=/backup/vweed -dir.idx=/srv/vweed/ -disk=hdd -compactionMBps=40 -dataCenter=vin1 -rack=V2 -max=0

S3:
/opt/weed -logdir=/var/log/weed filer -ip=S3 -s3 -defaultReplicaPlacement=100 -dataCenter=DC2
/opt/weed -logdir=/var/log/weed master -ip=S3 -mdir=/srv/mweed/  -volumeSizeLimitMB=307200 -defaultReplication=100 -peers=S2:9333,S1:9333,S3:9333 -metrics.address=m_ip:9091
/opt/weed -logdir=/var/log/weed volume -ip=S3 -mserver=S2:9333,S1:9333,S3:9333 -dir=/backup/vweed -dir.idx=/srv/vweed/ -disk=hdd -compactionMBps=40 -dataCenter=hil1 -rack=H1 -max=0

output of weed version
version 8000GB 2.76 fc9e246592351085b31ce9ad0d6a4790fa54b4f1 linux amd64

Here some code that probably select volumes. The problem is that the volumes from other data centers also added to list even though to the end of the list. If it really needed to query only specific data center, then volumes from other data centers should be removed from that list.

Here some code that probably select volumes. The problem is that the volumes from other data centers also added to list even though to the end of the list. If it really needed to query only specific data center, then volumes from other data centers should be removed from that list.

Just in case, I note that there should be an opportunity to read from another data center in case of loss of volume in the current one.

Right. The dc option is more a preference. The remote dc is a backup.

added code to randomize local dc and remote dc servers.


File joinPath API fails for a path with space in Windows

Description:
Recently, a gRPC CLI test failed due to the $titile.
It indicated that the directory path with space didn't exist.
2021-04-20T05:14:48.4328653Z tests\resources\proto-files\a b\helloWorld.proto
2021-04-20T05:14:48.4401765Z Downloading protoc executor file - protoc-3.9.1-windows-x86_64.exe
2021-04-20T05:14:48.9412964Z Download successfully completed. Executor file path - C:\Users\RUNNER~1\AppData\Local\Temp\protoc-3.9.1-windows-x86_64.exe
2021-04-20T05:14:49.0507178Z Successfully extracted library files.
2021-04-20T05:14:49.0508460Z Error occurred when generating proto descriptor.
2021-04-20T05:14:49.0511201Z D:\a\module-ballerina-grpc\module-ballerina-grpc\grpc-ballerina\tests\resources\proto-files\a\: warning: directory does not exist.

1_windows-build.txt
Steps to reproduce:
Build gRPC after enabling https://github.com/ballerina-platform/module-ballerina-grpc/pull/188/commits/7da5c2c1ba1aa37e1744f2b14fbab3833fbfd44d
Affected Versions:
OS, DB, other environment details and versions:

Windows
Java11

This issue isn't dependent on the file module. When debugged the code, this error occurred by the incorrect proto path when reading the root/dependent file descriptor.
For more info, see these.
https://github.com/ballerina-platform/module-ballerina-grpc/blob/8dacfe5434e59b7040bdf73c193700a2c63dd1bb/grpc-native/src/main/java/org/ballerinalang/net/grpc/protobuf/cmd/GrpcCmd.java#L282
https://github.com/ballerina-platform/module-ballerina-grpc/blob/release-0.8.0-alpha8/grpc-native/src/main/java/org/ballerinalang/net/grpc/protobuf/cmd/GrpcCmd.java#L195


README: fix spelling

Suggest some spelling/grammar fixes.

Thank you very much! My english is not so good.
I really appreciate it!


Where an existing package is being split into package and package-core, need to add constraint in package-core

See https://github.com/conda-forge/geoviews-core-feedstock/issues/1
To do:

[x] geoviews
[ ] ? holoviews

This will happen as part of multiple outputs/split recipes (https://github.com/pyviz/pyctdev/pull/6)


Update URLs for some network plugins

Fix #31430

/retitle Update URLs for some network plugins
@championshuttler the commit message doesn't match the description: it says “Update CNI-Genie repo URLs” but the changes are broader than that. Can you amend it?

Done @sftim thanks

/lgtm
/approve


Weird full paths in generated code

I do not understand what i did for this to start happening. Has worked fine for months. Was making an unrelated change and suddenly it stopped building due to this and even reverting to yesterdays codebase does not compile anymore.
I have a header with this and some more:
includes...

struct RFKStruct(kodgen::ParseAllNested) MovementValues {
		Vector2l position;     // m
		Vector2l velocity;     // cm/s
		Vector2l acceleration; // cm/s²

		MovementValues() {
			position = {0, 0};
			velocity = {0, 0};
			acceleration = {0, 0};
		}

		MovementValues(Vector2l position2, Vector2l velocity2, Vector2l acceleration2) {
			position = position2;
			velocity = velocity2;
			acceleration = acceleration2;
		}

		MovementValues(uint32_t x, uint32_t y, uint32_t vx, uint32_t vy, uint32_t ax, uint32_t ay) {
			position = {x, y};
			velocity = {vx, vy};
			acceleration = {ax, ay};
		}

		Vector2l getPositionInKM() {
			return Vector2l { (signum(position.x()) * 500 + position.x()) / 1000, (signum(position.y()) * 500 + position.y()) / 1000};
		}

		MovementValues_GENERATED
};

template<typename T>
struct RFKStruct(kodgen::ParseAllNested) TimedValue {
		T value;
		uint64_t time;

		TimedValue_GENERATED
};

template<typename T>
struct RFKStruct(kodgen::ParseAllNested) TimedComponent {
		virtual TimedValue<T> get(uint64_t time) = 0;

		virtual ~TimedComponent() = default;

		TimedComponent_GENERATED
};

more code...

which used to work fine, that code is not touched recently.
But the generated output for this file now contains full paths for typenames.
#define MovementValues_GENERATED	\
...
#define __home_exuvo_code_Aurora_C_src_starsystems_components_TimedComponents_hpp_TimedValue_GENERATED	\
...
#define __home_exuvo_code_Aurora_C_src_starsystems_components_TimedComponents_hpp_TimedComponent_GENERATED	\
...

#define File_TimedComponents_GENERATED	\
template <>  rfk::Archetype const* rfk::getArchetype<MovementValues>() noexcept;\
template <>  rfk::Archetype const* rfk::getArchetype<::/home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp::TimedValue>() noexcept;\
template <>  rfk::Archetype const* rfk::getArchetype<::/home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp::TimedComponent>() noexcept;\
template <>  rfk::Archetype const* rfk::getArchetype<::/home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp::InterpolatedComponent>() noexcept;\
template <>  rfk::Archetype const* rfk::getArchetype<TimedMovementComponent>() noexcept;\

which is obviously giving me expression errors as that is not a valid typename.
Any clue what is happening? I have not done any system updates since yesterday (or earlier today) when it last worked.
I have tried a computer reboot in case it was a corrupt file cache problem but no luck there.
The only common thing i can see is that those 3 all use templates but that has only been a minor problem in the past with a warning on startup about multiple registrations.
Refureku log is not showing anything unusual:
[Info] Working Directory: /home/exuvo/code/Aurora-C
[Info] [TOML] Load cppVersion: c++20
[Info] [TOML] Load shouldParseAllNamespaces: false
[Info] [TOML] Load shouldParseAllClasses: false
[Info] [TOML] Load shouldParseAllStructs: false
[Info] [TOML] Load shouldParseAllVariables: false
[Info] [TOML] Load shouldParseAllFields: false
[Info] [TOML] Load shouldParseAllFunctions: false
[Info] [TOML] Load shouldParseAllMethods: false
[Info] [TOML] Load shouldParseAllEnums: false
[Info] [TOML] Load shouldParseAllEnumValues: true
[Info] [TOML] Load shouldAbortParsingOnFirstError: true
[Info] [TOML] Load shouldLogDiagnostic: false
[Info] [TOML] Load compiler: g++
[Info] [TOML] Load new project include directory: /usr/include/apr-1
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/Refureku/Refureku/Library/Include/Public
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/src
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/asmlib
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/tlsf
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/tracy
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/soloud/include
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/stb
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/SLikeNet/Source/include
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/mimalloc/include
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/entt/src
[Info] [TOML] Load new project include directory: /usr/include/freetype2
[Info] [TOML] Load new project include directory: /usr/include
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/imgui_sugar
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/tracy/client
[Info] [TOML] Load new project include directory: /home/exuvo/code/Aurora-C/lib/tracy/common
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/utils/Math.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/StrategicIconComponent.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/CargoComponent.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/ColonyComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/HealthComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/Components.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/SimpleComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/IDComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/PartStatesComponent.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/PowerComponent.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/MiscComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/MovementComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/SensorComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/MunitionComponents.hpp
[Info] [TOML] Load new file to parse: /home/exuvo/code/Aurora-C/src/starsystems/components/ShipComponent.hpp
[Info] [TOML] Load new ignored directory: /home/exuvo/code/Aurora-C/src/refureku
[Info] [TOML] Load output directory: /home/exuvo/code/Aurora-C/src/refureku
[Info] [TOML] Load generated header file name pattern: ##FILENAME##.rfkh.h
[Info] [TOML] Load generated source file name pattern: ##FILENAME##.rfks.h
[Info] [TOML] Load class footer macro pattern: ##FILENAME##.rfkh.h
[Info] [TOML] Load header file footer macro pattern: ##FILENAME##.rfkh.h
[Info] Output directory: /home/exuvo/code/Aurora-C/src/refureku
[Info] Parsed directories:
[Info] Ignored directories:
[Info] 	/home/exuvo/code/Aurora-C/src/refureku
[Info] Project include directories:
[Info] 	/home/exuvo/code/Aurora-C/lib/tracy/common
[Info] 	/home/exuvo/code/Aurora-C/lib/tracy/client
[Info] 	/home/exuvo/code/Aurora-C/lib/imgui_sugar
[Info] 	/usr/include/apr-1
[Info] 	/home/exuvo/code/Aurora-C/lib/Refureku/Refureku/Library/Include/Public
[Info] 	/home/exuvo/code/Aurora-C/src
[Info] 	/home/exuvo/code/Aurora-C/lib/asmlib
[Info] 	/home/exuvo/code/Aurora-C/lib/tlsf
[Info] 	/home/exuvo/code/Aurora-C/lib/tracy
[Info] 	/home/exuvo/code/Aurora-C/lib/soloud/include
[Info] 	/home/exuvo/code/Aurora-C/lib/stb
[Info] 	/home/exuvo/code/Aurora-C/lib/SLikeNet/Source/include
[Info] 	/home/exuvo/code/Aurora-C/lib/mimalloc/include
[Info] 	/usr/include/freetype2
[Info] 	/home/exuvo/code/Aurora-C/lib/entt/src
[Info] 	/usr/include
[Info] Start parsing: /home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp
[Info] /home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp: Found 0 namespace(s), 5 struct(s), 0 classe(s) and 0 enum(s).
[Info] Start parsing: /home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp
[Info] /home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp: Found 0 namespace(s), 5 struct(s), 0 classe(s) and 0 enum(s).
[Info] (Re)generated metadata for 2 file(s) in 1.636000 seconds.
[Info] Metadata of 15 file(s) up-to-date.

Okay i think this has actually been a problem for longer but i have just not modified those files in a very long while as i have been working on other parts and my generated folder is outside the build directory so it does not get reset with clean builds. I got another file to fail with the same problem if i added a space to it needing a regeneration.

Hi,
Okay that's super weird, indeed.
I do not have a computer to look into it right now but off the top of my head the only 2 possible reasons are:

from the beginning FILENAME uses the full path and is internally parsed to only retrieve the filename, but fails to do so for some reasons (a bug in the parsing on my side ?)
the used libclang dynamic library version changed and the returned value for the same function call changed, hence breaking the internal calls. Can you check that the library kodgen uses is indeed the one I shipped with the repo, or has the same version?

Ok, I've had an eye to your log file again, I noticed this log [Info] [TOML] Load class footer macro pattern: ##FILENAME##.rfkh.h
This is the pattern that defines how your strucs/classes macros should be generated.
The ##FILENAME## tag can only be used in for headerFileName and sourceFileName patterns, you probably want to use "##CLASSFULLNAME##_GENERATED" here.
This should fix the strucs/classes macro problem generating full paths like __home_exuvo_code_Aurora_C_src_starsystems_components_TimedComponents_hpp_TimedValue_GENERATED, but I don't see how it would have any effect on the template <>  rfk::Archetype const* rfk::getArchetype<::/home/exuvo/code/Aurora-C/src/starsystems/components/TimedComponents.hpp::TimedValue>() noexcept;\ thing.
Let me know how it turns out when you've fixed the first issue.

By the way, you have a similar issue with this log [Info] [TOML] Load header file footer macro pattern: ##FILENAME##.rfkh.h.
This is the pattern that defines how to generate the macro name to put at the very of each header file. It's not a file name, and you want it to be different from all other generated macros. The default value put in the library is "File_##FILENAME##_GENERATED", and you probably want to stick to it (or have a similar, unique pattern).

okay that is weird i actually already have
[CodeGenUnitSettings]
# Generated files will be located here
outputDirectory = "/home/exuvo/code/Aurora-C/src/refureku"

generatedHeaderFileNamePattern = "##FILENAME##.rfkh.h"
generatedSourceFileNamePattern = "##FILENAME##.rfks.h"
classFooterMacroPattern = "##CLASSFULLNAME##_GENERATED"
headerFileFooterMacroPattern = "File_##FILENAME##_GENERATED"

You log the wrong thing logger->log("[TOML] Load header file footer macro pattern: " + _generatedHeaderFileNamePattern);
Same bug in loadFileNamePatterns, loadClassFooterMacroPattern

I hope you don't read these on email, i make so much edits in the first minute.

the used libclang dynamic library version changed and the returned value for the same function call changed, hence breaking the internal calls. Can you check that the library kodgen uses is indeed the one I shipped with the repo, or has the same version?

This might be it, i have mine symlinked to the local version which is probably newer as the included one fails to load as i do not have the older versions of dependent libraries it wants.

Clang 13 is the oldest i can easily install and that gives the same problem. I'll see if i can build a 12.x version locally that loads.

Using the correct headers works with clang 14 and clang15!
I'll cancel my build of clang 12 then.
clang-c/Index.h has gone up a minor version between clang 12 and 15 it seems.
Thanks for your help on solving this!


[QUESTION] Why does training speed go down?

I noticed that comet-train (after encoder finetuning) has speed of ~12it/s at e.g. 30% which drops to ~7it/s at 60% and to ~6it/s at 90% of the epoch.

Is that something particular to only me or did anyone else observe this as well?
If yes, is this expected behaviour?

I'm using NVIDIA A10G GPUs and the following software versions:

Python - 3.10.9
COMET - upstream
torch - 2.0.1
pytorch-lightning - 1.9.5
transformers - 4.29.0
numpy - 1.24.3

Hi zouharvi,
I noticed this behavior as well. I think it has something to do with "Encoder model fine-tuning". After this the speed gradually decreases for me from 13.98it/s to 5.85it/s at the end of the epoch.
Could someone comment if this is an excepted behavior?

Indeed, without encoder fine-tuning (nr_frozen_epochs=1), this does not happen. Shot in the dark: I wonder if there is some memory leak associated with that which leaves some grad-able objects on the GPU?

In the second and the next epochs it converges to ~5it/s for me (A10G with batch size 6).

Hi, I trained two reference-free QE models on in-domain data with 300k segments. One with nr_frozen_epochs=0.3 (as proposed in the config in this repo), and the other with nr_frozen_epochs=1.  The rest of the parameters stayed the same.
The True Positive Rate is lower by about 10% when using nr_frozen_epochs=1. The training was indeed faster until the first epoch, after this the "Encoder model fine-tuning" took place (as intended).


[FEATURE] Update brew install wash to use new binaries from monorepo releases

Now that everything is moving into a monorepo, the homebrew recipes need to be updated to point to the new assets
Describe the solution you'd like
brew install wash should install the latest binary for the target arch for wash.
Additional context
Currently, the brew installation for wash will break rust environments. This should resolve that issue also.

https://github.com/wasmCloud/wasmCloud/issues/840

I would love to take a pass at fixing this up, it sounds like we'd like to:

Use the pre-built binaries for every platform they are readily available for (and quite possibly expand the platforms we make them available for).
Avoid installing Rust if it's already available on the machine.

Anything else you can think of?

We already have binaries for aarch64/x86_64 darwin (including a universal LIPO), aarch64/x86_64 linux static, aarch64 android and x86_64 Windows MSVC, so platform support-wise I think we have enough.
RISCV is coming soon as well

Resolved by https://github.com/wasmCloud/homebrew-wasmcloud/pull/51


how to add DN to Anchor DETR with 2D Anchors

Thanks for this amazing work!
DN-DETR: Accelerate DETR Training by Introducing Query DeNoising introduced that DN can be added to Anchor DETR, but I didn't find the relevant code in this project?
Looking forward to your reply!

Sorry for the late reply. We have not released the code yet. The implementation is easy, and you can add noise only to the 2D anchors.


Add RichText support to find.text()

Description
Adds support for matching standalone RichText widgets to find.text() in a backwards-compatible manner. That is, this does not break any existing tests (which https://github.com/flutter/flutter/pull/21964 did).
It adds the arguably better strategy for matching Text widgets (using only RichText) behind a skipRichText flag that has to be set to false.
Documentation
I have added both extensive additions to the existing find.text() docs as well as a comment to explain why we are using the inferior widget is Text method of looking up Text widgets (when we could just always only look for RichText as that is also inserted by Text widgets).
Tests
I have added test cases for every possible scenario, which ensures that both the new skipRichText: false strategy finds every text widget once, as well as testing that the old strategy does not match RichText at all.
The semantics test case is taken from https://github.com/flutter/flutter/pull/21964.
Issues
This resolves a popular issue:

Closes #21961.

Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc @mehmetf @jonahwilliams

@jonahwilliams  please review this pr

Hi @goderbauer - I addressed all of your concerns. Can you review again? :)

@goderbauer I addressed your comments from code review.

Looks the analyzer is unhappy and some tests are failing. Can you take a look?

@goderbauer Thanks - I cannot believe I missed that; updated it.

@goderbauer done 👍

@dnfield thx a lot ❤


new check: com.google.fonts/check/cjk_not_enough_glyphs

I've seen several families that are being classed as CJK when they shouldn't be. In most cases, a handful of the family's glyphs are being assigned cjk unicodes when it's clear that the glyphs belong to another block.
Before implementing this check, I thought about modifying the is_cjk_font condition to be less greedy. However, I'd personally prefer this condition to remain greedy and have this check instead since it may show designers errors in their fonts that would've otherwise have fallen through the cracks.
cc @chrissimpkins @vv-monsalve
Once this is merged, it should help you identify glyphs which are triggering the cjk vertical metrics check when it shouldn't as well.

@felipesanches I'm going to rename this check tomorrow. Something like cjk_glyphs_incorrectly_assigned.

@felipesanches thanks for the review. I've implemented your changes and renamed the check cjk_not_enough_glyphs which feels like a better name imo.

Thanks for the edits!

Thanks for the new check


[core] Upgrade prettier

One bit of #17612

Something is off with Netlify, we have to clear the re-run the build without the cache to pass a module missing issue.

@eps1lon I couldn't make sense of the explanation. I can't reproduce the issue, the proposed command exits with code 0.
yarn prettier write
yarn typescript

would it make sense to open an issue on prettier? Do we have an issue with the CI not reporting problems? Do we use the problematic syntax?

would it make sense to open an issue on prettier?

you have to answer this question. I'm not proposing to update it.

Do we have an issue with the CI not reporting problems?

CI only runs on changed files which you welcomed. CI does not run on all files when prettier changes. Since this rarely happens it isn't necessary to write custom logic for since you can verify manually.

Do we use the problematic syntax?

Prettier does on my system at least.

prettier playground reproduces as well
The generated code is not valid in<EMAIL_ADDRESS>

I can reproduce the problem too. Thanks for the patience. Now, it's clear. We can't move forward. Do you want me to report the problem on Prettier side?

I can reproduce the problem too. Thanks for the patience. Now, it's clear. We can't move forward. Do you want me to report the problem on Prettier side?

I can do that. I did some digging a few weeks ago when this came up but didn't put much time into it because I simply didn't have any.

No problem!

We could only add it when you set --trailing-comma all, which assumes you’re using recent versions of stuff.

-- https://github.com/prettier/prettier/issues/3662#issuecomment-355740039
I honestly don't want to argue about this. We'll never get more configurations for  this flag. Upgrading typescript (potentially breaking change) or using es5 and reformatting the entire workspace doesn't seem like a good tradeoff for nothing1
1 I'm still not aware why we need this upgrade. I could not identify a single feature or bug that affects us. 1.18.0 would be breaking. 1.17.1 should work.

@eps1lon If I understand correctly, TypeScript supports trailing comma in the most recent version (3.6.3). I agree I don't think that we should bother. An upgrade of TypeScript, in a few months, sounds like a better tradeoff. So far, we don't wait on a particular issue to be solved in Prettier. We can wait.
What do you think of keeping track, somewhere about the dependencies we can't upgrade and why?

What do you think of keeping track, somewhere about the dependencies we can't upgrade and why?

It could be as much valuable for the author as for the other members of the team. For instance, I don't precisely remember why babel-plugin-preval is freeze.

What do you think of keeping track, somewhere about the dependencies we can't upgrade and why?

That would be pretty helpful. IMO it should be sufficient to pin the dependencies in the upgrade attempt from prettier. This would enable a git blame that leads directly to the PR with the CI failures, changelogs and the responsible maintainer could add an explanation why it had to be pinned

pin the dependencies in the upgrade attempt from prettier

This sounds like a great approach 👍

We can find these dependencies with yarn outdated and find why with git blame.


Unable to change font size

As stated in the title, I'm unable to scale the font of the tray icon.. This is apparently (and definitely should be) an intended feature which isn't currently present.. Please add/fix this!!! @soleon

In addition, apparently the font gets stretched when the power is low enough.. Looks terrible.. please fix! @soleon

@regice202 thanks for reporting this issue.
The font size option was removed on purpose from the previous major version 1.x due to the new rendering method of the tray icon in version 2.
Windows limits the tray icon to a 16 x 16 pixel square. I've tuned the text display in the icon to be the maximum size it can contain in its allowed area. I'd like to know your use case of changing the font size.
I can't reproduce the stretching issue when the battery is at a single digit capacity. Do you mind sharing the font family you had set in the app, your Windows display scaling setting and accessibility text size setting?

@soleon So the font was just the default font that's loaded upon install (after it updated for me from MS store); Microsoft San Serif. I haven't touched the accessibility scaling, although my screen is scaled to 200% since I'm on a Surface Pro 8 (2k display). I also have ExplorerPatcher which might be messing with it a little bit.. But every other application I have in the tray has no issue with it.. Thanks again for the response, hopefully you can fix it soon! :)

@regice202 Thanks for providing the details.
I've tried installing ExplorerPatcher and scaling my UI to 200% on a 2K screen with 1920x1200 resolution (Dell XPS). Even tried manually enabling the hidden registry key to turn on "tablet mode" in Windows 11 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PriorityControl\ConvertibleSlateMode with no success to reproduce this issue.
I may need to source a Surface Pro device to further investigate this but there's no guarantee when I will be able to obtain the device anytime soon.

I’d like to second the request for the ability to adjust the font size. I'm interested not in making the font size any larger, but rather smaller. Before the Fluent UI update, I would reduce the size of the text to more closely match the size of the date and time.
I’ve attached a screenshot to illustrate how the current size appears a bit too large on my end. Adding an option to scale down the text would be helpful.

I have release version 2.1.3 with the setting to change the tray icon font size. It should be available in the Microsoft Store already.

Note that the tray icon region is limited by Windows system itself so if you set the font size to too large, it gets cut off by the system like this:


Browser TUI ("Gopher")

HTTP Server (basis for future #76 Web UI) serving MD instead of HTML to https://github.com/charmbracelet/glow!
E.g. glow https://raw.githubusercontent.com/enola-dev/enola/main/README.md (but dynamic, for all Entity).
Should eventually also be integrated (❓) with #100 Shell.

Actually, on very briefly testing glow just to get a feeling for how feasible this could be, I found that it does not (yet) support "browsing" (navigating) - only "paging". (It also does not support external hyperlinks and it's a ugly how it renders link path inline.)
There are other "Markdown CLI TUI Browsers", of course; from quick research, I've found (probably not exhaustive):

https://github.com/swsnr/mdcat
https://www.npmjs.com/package/msee
https://github.com/axiros/terminal_markdown_viewer#alternatives
https://textual.textualize.io/widgets/markdown/

The same idea could also be explored with something non-Markdown:

HTML and good ol' lynx, or https://www.brow.sh (see https://en.wikipedia.org/wiki/Text-based_web_browser)
https://gemini.circumlunar.space (https://en.wikipedia.org/wiki/Gemini_(protocol))
https://linux.die.net/man/1/info ;-)

mdcat also does not (yet) have a "browse" mode either.
Next step would be to try out one of those Node.JS-based thingies (msee? terminal_markdown_viewer#alternatives ?).
The Gemini stuff also looks "fun".
But HTML for Lynx likely best next.


Race condition in Build?

I have a project that implicitly depends on swift-nio-ssl (through GRPC and PostgresNIO I believe). When I am building on Linux Arm64 (not yet checked on amd64) through docker I sometimes get the following error:
Building for debugging...
In file included from /src/.build/checkouts/swift-nio-ssl/Sources/CNIOBoringSSL/crypto/bytestring/unicode.c:15:
In file included from /src/.build/checkouts/swift-nio-ssl/Sources/CNIOBoringSSL/include/CNIOBoringSSL_bytestring.h:18:
In file included from /src/.build/checkouts/swift-nio-ssl/Sources/CNIOBoringSSL/include/CNIOBoringSSL_base.h:64:
/usr/lib/clang/13.0.0/include/stddef.h:103:10: fatal error: could not build module '_Builtin_stddef_max_align_t'
#include "__stddef_max_align_t.h"
 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

The reasons I believe this is a race:

I don't see this problem always
This seems to happen on clean builds only
Running swift build after this happens seem to resolve the issue

This does not seem likely to be a timing issue per-se: I don't see how a timing window is likely to lead to that header being present or not present. However, in either case this seems likely to be a swift-package-manager issue more than a swift-nio-ssl issue, can you file an appropriate issue on that repository and link it here?

You think the dependency arc is missing in Clang's headers?

Not certain where the problem is, but it's usually the reason for "flaky" builds. It'd be nice if there were a more explanatory error — this is very much a "something didn't work" :-(

@al45tair @Lukasa
Here's a more detailed output log
swift-nio-ssl.log

error: the following command failed with exit code 0 but produced no further output
This seems to be fundamentally different than the original issue here. That looks to me like a SwiftPM problem: how are you trying to build? What build command are you running?

We have a normal Xcode iOS app that depends on some local SPM modules, one of those modules depends on grpc-swift.
The build command is a normal xcodebuild build.
Also, all the grpc-swift and it's dependencies takes really long to build, and since SPM doesn't have a robust cache (remote or local) infra, would love to have a pre-built release of the swift-nio-* libraries, this would cut our build times in half.

The build command is a normal xcodebuild build.

Hrm, this seems like an Xcode issue. Can you file a bug report using feedbackassistant.apple.com and provide the FB number here?

Also, all the grpc-swift and it's dependencies takes really long to build, and since SPM doesn't have a robust cache (remote or local) infra, would love to have a pre-built release of the swift-nio-* libraries, this would cut our build times in half. (If it's not possible to be done in the public repo, would love to hear some tips of how to do it on our side)

There is no way to provide pre-built releases in the SwiftPM ecosystem today unfortunately. This would be a good feature request for SwiftPM though!

Going to file a bug report then.
Got it, some libraries does it, but I think the dependency resolving times are really slow though.
But, if the swift-nio-* libs had some .xcframeworks as release assets, it would be pretty easy to integrate with other dependency manager systems. Our app uses mostly grpc-swift code, but we are not being able to pack it into a static library /XCFramework and distribute it because it doesn't support umbrella modules. And packing every dependency would be very hard to maintain it all up-to-date along the months.

We deliberately do not offer xcframeworks as the SwiftNIO projects do not provide a stable ABI.


🎨(scripts) improve OpenShift's env setting

Purpose
The OC_LOGIN flag to inactivate OpenShift's login via the oc client is too complex/ugly.
Proposal
Define an _set_openshift_env routine and use it whenever we require to login to our OpenShift server.

via GIPHY


BR-14: Refactor base structure

ApplicationContext extends BeanDactory and implements BeanRegistery. Has BeanPostProcessor as a dependency
BeanPostProcessor has BeanFactory as dependency


How to use the max-width property with grid-media?

Just getting started with Neat 2, and I'm trying to use the grid-media mixin. The documentation only shows output for min-width breakpoints. How do I specific that I want max-width?
When defining a custom grid, I've tried setting it to a string like so:
$neat-grid-tablet: (
  gutter: 2rem,
  media: "max-width: 500px",
);

But this behaves differently than I expect, outputting only the string max-width instead of a complete media query. In short, how do I (or can I?) use grid-media to output something like this:
@media only screen and (max-width: 1000px) {
  // code...
}

Almost got it. Grid media either takes a min width, or a string with the full media query. That allows you to be more verbose if you need more complex media queries.
$neat-grid-tablet: (
  gutter: 2rem,
  media: 'only screen and (max-width: 500px)',
);

@kgcreative Wonderful, thank you!


Publish the documentation

Looks quite easy: https://jupyterbook.org/en/stable/start/publish.html#publish-your-book-online-with-github-pages

It could also be published on read the docs. It requires a little bit more work though. (I slightly prefer the the readthedocs url to the pages one, but prefer the jupyter book theme.)

It is now published on github pages. Very easy to do.

It can be found here: https://macekuailv.github.io/seaduck/intro.html

I would edit the About section of GitHub (main page of sea duck), you can add a website.
I would add the link to the documentation there, easier to find.


Fix: Better integration icons

Fix: Better integration icons

Description

Problem: some icons were having white background around, github icon was not flexible besides current theme (dark logo looked awful in dark theme)
Solution: Adjusted iconsMap logic to match theming & changed icons
Any background context or related links?

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Refactoring (no functional changes, only code improvements)
[ ] Documentation update

Screenshots (if applicable)

Before changes

After changes

After changes (light theme)

Checklist

[x] My code follows the code style of this project.
[x] I have performed a self-review of my code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.
[ ] I have updated the documentation where necessary.

LGTM :)
We might want to consider using svg's or svg components since they can be styled with css.

Good point, but also we might switch to icons that LSP sends us in a short term.


Enable actor data race detection and fix resulting problems

This revealed a number of places where callbacks were invoked on a background thread but weren't marked as Sendable. It also unforunately revealed some more compiler bugs related to property wrappers and sendability; the projectedValue hack with @Locked doesn't work with data race detection enabled because it generates an actor-confined closure as part of the implementation.

CI failures appear to all be spurious.


Support Ubuntu 22.04 in KubeOne

Description of the feature you would like to add / User story
As Ubuntu 22.04 is the new LTS Version of Ubuntu we should also support this as an OS.
Solution details
Support Ubuntu 22.04 as OS in KubeOne

The prerequisite for this (and for KKP) is Ubuntu 22.04 support for MC and OSM. Once we have Ubuntu supported in MC and OSM, supporting it KubeOne or KKP should be simple.

Shall i create a ticket there accordingly?

Yes, please.

I also would like to see support for Ubuntu 22.04


Continuously getting provider change events (every 3 seconds)

Your Environment

Plugin version: 4.10.1

Platform: iOS or Android : Android

Device OS version: 11

Device manufacturer / model: samsung/ SM-G988N

XCode version:

Capacitor info (npx cap doctor)
Latest Dependencies:
@capacitor/cli: 5.5.1
@capacitor/core: 5.5.1
@capacitor/android: 5.5.1
@capacitor/ios: 5.5.1

Installed Dependencies:
@capacitor/cli: 5.0.1
@capacitor/core: 5.0.1
@capacitor/android: 5.0.1
@capacitor/ios: 5.0.1

Plugin config provided to #ready:

await BackgroundGeolocation.ready({
      /**
       * Application config
       */
      autoSync: true, // <-- Auto start tracking when device is powered-up.
      /**
       * Permissions Config
       */
      backgroundPermissionRationale: {
        message:
          'Chaine needs location permission when you are assigned load to provide updates. This app collects location data to enable sharing tracking updates with your customers even when the app is closed or not in use.',
        negativeAction: 'Cancel',
        positiveAction: 'Change to {backgroundPermissionOptionLabel}',
        title: "Allow Chaine to access to this device's location in the background?"
      },
      debug: false, // <-- Enable this hear sounds for background-geolocation life-cycle.
      desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_NAVIGATION,
      disableLocationAuthorizationAlert: true,
      distanceFilter: 200,
      elasticityMultiplier: 4,
      extras: {
        ...extras
      },
      headers: {
        ContentType: 'application/json'
      },
      isMoving: true,
      logLevel:
        config.app.STAGE == 'prod' ? BackgroundGeolocation.LOG_LEVEL_ERROR : BackgroundGeolocation.LOG_LEVEL_VERBOSE,
      reset: true,
      showsBackgroundLocationIndicator: false,
      startOnBoot: true, // <-- Auto start tracking when device is powered-up.
      stationaryRadius: 25,
      stopOnTerminate: false, // <-- Allow the background service to continue tracking when user closes the app.
      stopTimeout: 5,
      /**
       * HTTP Config
       */

      url: config.app.MOBILE_APP_LOCATIONS_URL,
      useSignificantChangesOnly: true //only uses locations determined to be "significant"
    })

Expected Behavior
The plugin shouldn't send me frequent updates if there is an issue on the OS level then it should be handled on the client side otherwise it is very difficult to handle these things on the backend.
Actual Behavior

Constantly getting the provider change event from the plugin and my API is hitting by it.

Steps to Reproduce

I am not able to reproduce this on my test Android phones

Context
I don't have any clue what is happening here you can help me or give me some idea what is the possible root cause of it?
Currently, this is impacting my backend server because I am getting an insane amount of updates from one user which causing multiple issues including server crashing.
Debug logs
--- This is happening in production with very few users, I don't have the logs of the user.
I am sending the screenshots of how frequently i am getting the updates:
all of the updates are from one user and all are providerChange events.

Location Update:
{
  "location": {
    "event": "providerchange",
    "provider": {
      "network": true,
      "gps": true,
      "enabled": true,
      "status": 3,
      "accuracyAuthorization": 0,
      "airplane": false
    },
    "is_moving": false,
    "uuid": "*******************",
    "timestamp": "2024-01-30T16:59:32.557Z",
    "odometer": 3268764.8,
    "coords": {
      "latitude": 47.38306662,
      "longitude": -122.23477168,
      "accuracy": 10,
      "speed": 0,
      "speed_accuracy": 0.01,
      "heading": 1,
      "heading_accuracy": 0.1,
      "altitude": 113.7,
      "ellipsoidal_altitude": 113.7,
      "altitude_accuracy": 0.1
    },
    "activity": {"type": "still", "confidence": 100},
    "battery": {"is_charging": false, "level": -21474836},
    "extras": {
      "androidSDKVersion": 30,
      "appVersion": "*******",
      "batteryLevel": 1,
      "connectionType": "unknown",
      "deviceID": "************",
      "deviceManufacturer": "samsung",
      "deviceModel": "SM-G988N",
      "deviceName": "SM-G988N",
      "deviceOS": "android",
      "deviceOSVersion": "11",
      "devicePlatform": "android",
      "driverPhone": "************",
      "iOSVersion": null,
      "isDeviceCharging": false,
      "isDeviceVirtual": false,
      "isNetworkConnected": true,
      "languageCode": "en",
      "userID": "**************************"
    }
  }
}

Let me know how to reproduce.

Let me know how to reproduce.

I am also not able to reproduce this, I don't get any clue how it is happening.
At this moment my app has more than 5K active users and this issue is coming for only around a few of the users for most of the users the plugin worked fine.
can you please let me give some suggestions on what might be a possible issue or how I can figure out the root cause of this?
@christocracy is it possible to find something from the location update object?

@christocracy One thing I noticed for each of these constantly received updates `connectionType": "unknown" is coming always but for the perfect scenario it should be 'wifi' or 'cellular'

@christocracy any idea on this, Today again i am facing this issue for different user but the device is same SM-G988N

See https://dontkillmyapp.com

See https://dontkillmyapp.com

But in my case, the background location isn't killed by OS. I am constantly getting the provider change events for only one specific device - SM-G988N, Approx 6-to 7 users using this phone and from all of them I am constantly getting the location updates.

@christocracy
I've identified the root cause of the issue. It seems that one of the users is employing certain techniques to generate a high volume of provider change events, resulting in frequent updates to the latitude and longitude coordinates. These updates often reflect minimal movements, typically within a 100-meter range.
Unfortunately, I haven't been able to determine how this user is achieving this behaviour. Do you have any suggestions on how we can address this situation either within the application or by implementing limitations within the plugin to control the frequency of updates?
Within the plugin, we currently detect fake locations or the use of virtual devices by checking the value of the isMock key. However, in this particular case, the isMock key is not present.
Please note that in the plugin configuration, I've specified values for distanceFilter and elasticityMultiplier, but despite this, I haven't been able to prevent the user from bypassing these limitations.
Your insights or recommendations would be greatly appreciated.

See api docs Config.disableProviderChangeRecord

See API docs Config.disableProviderChangeRecord

@christocracy
Is the purpose of this setting to cease capturing the providerChange event altogether, or does it only halt certain types of provider change events? My inquiry stems from a desire to ensure the providerChange event is triggered for any device whenever there's a change in provider.

By default, the plugin automatically posts a location containing providerchange event and associated data to your server.
If you don't want a providerchange location recorded and sent to your server each time that event fires, then disable it.

@christocracy
after disabling this,
do i get the provider change event update when genuinely a provider change occurred like changing cellular network to wifi
or disabling the Gps or other provider change-related scenarios?

The javascript event onProviderChange continues to operate.  The plugin NO LONGER SEND AN HTTP REQUEST when the onProviderChange event fires.

You can either enable it and accept to deal with your problem on your end, or disable it.

You can either enable it and accept to deal with your problem on your end or disable it.

hmm, ok Thanks buddy @christocracy