Application Exception: Twitter was not able to perform your query within the Timeout limit of 10000ms.

This is an issue created automatically by GrammarNazi when an exception was captured.
Date (UTC): 03/30/2021 19:35:21
Exception:
Reason : https://api.twitter.com/1.1/statuses/user_timeline.json?user_id=211511505&count=200&since_id=1376667086861271042&tweet_mode=extended&exclude_replies=false&include_rts=false request timed out.
Code : 408
Date : 03/30/2021 19:35:16 +00:00
URL : https://api.twitter.com/1.1/statuses/user_timeline.json?user_id=211511505&count=200&since_id=1376667086861271042&tweet_mode=extended&exclude_replies=false&include_rts=false
Twitter documentation description : Twitter was not able to perform your query within the Timeout limit of 10000ms.

Same exception captured in #170. I'll have to implement some retry feature or ignore this exception if this keeps happening.


Better default regex to support jsx and tailwind

JSX (used mainly with React.js) uses the attribute "className" instead of "class". Also, Tailwind CSS uses columns in some of its classes (e.g. hover:underline). I think it would be good to support both React/JSX and Tailwind "out of the box" as they are both very popular

Hi @fzakfeld
Thanks for your contribution even though you closed it 😄
I think this regex is more suitable (it won't limit characters and it would support other arbitrary values and other modifiers)
https://regex101.com/r/yeO2hr/1
this is how your regex would work:
https://regex101.com/r/tKQ2io/1
I will change the default regex in next update.
Thanks


Makefile: Restrict $KUBECONFIG definition to 'test' target

Instead of making it global. It was causing issues on some e2e
tests.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: ldemailly
If they are not already assigned, you can assign the PR to them by writing /assign @ldemailly in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

cc @john-a-joyce @rcurran1

/lgtm
(This was an issue w/ running e2e tests on local servers. I don't think this was seen on any gate e2e tests because all/most of these set KUBECONFIG before executing.)

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: rcurran1
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: john-a-joyce, rcurran1
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/assign @linsun


[Backend] Add workaround to ensure Astarte datastreams are always parsed correctly

The workaround ensures that Edgehog is able to parse datastream data in the case that the values for its parametric paths are not returned as lists of values but as the last value directly. Indeed, when querying a Datastream interface on Astarte specifying limit=1 then the resulting data have a different structure depending on how many parametric paths have published data.
See the following issue for more details:
https://github.com/astarte-platform/astarte/issues/707

Pull Request Test Coverage Report for Build bb67bb0f24cae63890a360f08c02ea5bc75e795a-PR-194

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.09%) to 82.911%

Totals

Change from base Build 8b817437e672987c26090863105dfbda0dd8f462:
0.09%

Covered Lines:
655

Relevant Lines:
790

💛  - Coveralls

Pull Request Test Coverage Report for Build bb67bb0f24cae63890a360f08c02ea5bc75e795a-PR-194
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.09%) to 82.911%

Totals

Change from base Build 8b817437e672987c26090863105dfbda0dd8f462:
0.09%

Covered Lines:
655

Relevant Lines:
790

💛  - Coveralls


Double curly braces does not beautify

I am trying to use Bracket with Meteor.js, the code on double curly braces does not respect line breaks and indentation (see image)

Please provide text for input, expected output, actual output.


Fix/retain manually uploaded avatar

Summary
This PR addresses #2056. The OpenID authenticator strategy is modified to prevent overwriting an existing manually-loaded user avatar upon login.  It also prevents overwriting an existing IdP-supplied avatar upon a subsequent login when a new image can't be fetched.
Change Type
Please delete any irrelevant options.

[x ] Bug fix (non-breaking change which fixes an issue)

Testing

Configure LibreChat to use an OIDC IdP.
Log into LibreChat and manually upload an avatar image. Note that it is correctly displayed.
Log out and log back in again.
The avatar image uploaded in step 2 should still be present.

Test Configuration:
Checklist
Please delete any irrelevant options.

[x] My code adheres to this project's style guidelines
[x] I have performed a self-review of my own code
[x] Local unit tests pass with my changes

Closing due to handling this in https://github.com/danny-avila/LibreChat/pull/2344


Make offsets more accurate

closing this and leaving #622 open

#622 is only preventing column from being negative, which as I say in the comment on that PR doesn't solve the core problem. It also doesn't help offsets at all, which is what this issue was for.
@ryaneberly Did you actually mean #522? I think your keyboard is going a bit crazy lately. First there was the unrelated commit message for 5c34f3bef2a19ce41f473d7dae2a1485a66ceefd which doesn't have a single number in common with the actual issue  and then there's the crazy commit message with 5e6275ca6fd69a8f83f05bff4910321b92190ab7.


1.12 beta5 broken

/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task.js:52 Cannot find module '{{~}}/.atom/packages/terminal-plus/lib/fork.coffee' Error: Cannot find module '{{~}}/.atom/packages/terminal-plus/lib/fork.coffee'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task-bootstrap.js:110:13)
    at Object.<anonymous> (/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task-bootstrap.js:112:4)
    at Module._compile (module.js:541:32)
    at Object.value [as .js] (/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/compile-cache.js:201:21)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at [eval]:2:1
    at ContextifyScript.Script.runInThisContext (vm.js:25:33)
    at Object.exports.runInThisContext (vm.js:77:17)
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:541:32)
    at bootstrap_node.js:323:29
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)(anonymous function) @ /Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task.js:52
/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task.js:52 Cannot read property 'bind' of null TypeError: Cannot read property 'bind' of null
    at process.<anonymous> (/Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task-bootstrap.js:82:23)
    at emitTwo (events.js:106:13)
    at process.emit (events.js:191:7)
    at process.nextTick (internal/child_process.js:719:12)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)(anonymous function) @ /Applications/Atom-Beta.app/Contents/Resources/app.asar/src/task.js:52

I was afraid of that. I'll take a look but my javascript probably isn't good enough to fix this so we'll likely wait and see what the platformio devs do and act accordingly. :smile:
Thanks for the report!

No worries, I hope to we have more terminal options and you seem to have the most modern fork.

You're probably on the right track, it's probably related to outdated pty.js but I could be wrong. It's the same error in other forks.

See also https://github.com/jeremyramin/terminal-plus/pull/364 might help.

Thanks mate. I'll take a look at it. :smile:

I've got a potential fix in. Could you install faketerm2 in Atom Beta (disable/uninstall termination first and restart Atom or you'll get a cosmetic warning) and see if it works? If so I'll work on getting the code merged here. If not... we'll probably have to wait and see what PlatformIO does.
Cheers!
Fred

faketerm2 works, jeremyramin/terminal-plus works

Does it really? I can't get faketerm2 to work (I installed Atom Beta to test) - I get a compile error. Can you walk me through what you do, your environment, etc?
This looks promising: https://github.com/jeremyramin/terminal-plus/issues/362#issuecomment-256290818

(close atom 1.12.0-beta5)
$ mv ~/.atom ~/.atom.save # moves your real environment out of the way
$ apm-beta install faketerm2
Installing faketerm2 to {{~}}/.atom/packages ✓
$ atom-beta
(Ctrl-`)
Terminal appears

(Be sure to rm -rf ~/.atom; mv ~/.atom.save ~/.atom)

Thanks - will look into it. Since you can install faketerm2, I suspect that my trouble might be because I have both Atom and Atom Beta installed on my system (so two versions of electron?). The error messages would support this interpretation.
What OS are you using?

macOS. I removed atom stable because they do step on each other (not fully isolated, share ~/.atom) Plus, you MUST rename Atom Beta.app to Atom-Beta.app and patch atom.sh to support finding itself.

Yup - that was the trouble. Removed Atom and reinstalled Atom Beta and faketerm2 works.
I do my dev and testing work with faketerm2 so I'll probably break it in a few days. I could merge the current faketerm2 code into a new package (maybe termination-beta or something) if you want so you could use that until Atom 1.12 is stable and I apply the changes to termination. Is that something that could help you?

Update: working code pushed to the termination-beta branch. I'll merge it into master once Atom 1.12 becomes stable.

I believe that we're now fully compatible with Atom 1.11 and Atom 1.12-beta. https://github.com/Fred-Barclay/Termination/commit/0b057744c441ad46b65dc9ef9edb065bd67f2275 @steakknife can you verify?

Works!

Yahoo - thanks for opening the original bug and for testing! :smile:


:seedling: Do not manually generate iso sha

No Need to generate the sha sum for the iso manually, elemental already does it
Signed-off-by: Itxaka<EMAIL_ADDRESS>What this PR does / why we need it:
Less steps in earthfile

Codecov Report

Merging #668 (6bfeac4) into master (e3dbd41) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #668   +/-   ##
=======================================
  Coverage   19.94%   19.94%
=======================================
  Files          18       18
  Lines        1419     1419
=======================================
  Hits          283      283
  Misses       1088     1088
  Partials       48       48

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Port non-integer zoom level fix to 1.0 branch

PR #73 is not included in the Leaflet 1.0 branch, which causes erratic behaviour when pinch zooming.

Will be fixed when #91 is merged.

#91 is now merged!

Woop! :fireworks:


quantum/quantum-jobs/package.json

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Storage:0.5020448,EngSys:0.062038407,Machine Learning:0.01342657'


Tweak incremental builds

We produce a marker file with the inputs passed to tasks like linblazorapplicationassemblies and resolveapplicationreferences and we use that as the input to the task. We also need to pass in the actual inputs as the hash only hashes the item and not the contents.

Is this what you fixed yesterday?

Yes


Add PowerMock, a powerful extension of Mockito

Description:
Writing unit tests can be hard and sometimes good design has to be sacrificed for the sole purpose of testability. Often testability corresponds to good design, but this is not always the case. For example final classes and methods cannot be used, private methods sometimes need to be protected or unnecessarily moved to a collaborator, static methods should be avoided completely and so on simply because of the limitations of existing frameworks.
PowerMock is a framework that extends other mock libraries such as Mockito, EasyMock with more powerful capabilities. PowerMock uses a custom classloader and bytecode manipulation to enable mocking of static methods, constructors, final classes and methods, private methods, removal of static initializers and more (https://github.com/powermock/powermock).
Suggested Labels:
carbon 4.4.x, unit-tests, mockito, powermock
Related Issues:
https://github.com/wso2/carbon-kernel/issues/1567

This was resolved by:
https://github.com/wso2/carbon-kernel/pull/1590


Using 2.19.1 LTS from jenkins.io

Why
2.19.1 is latest LTS from https://jenkins.io.
Hence the PR.

Thanks for the update @nrshrivatsan!! I am testing now. In the mean time can you sign the CLAs as noted by the bots.

@k8s-bot ok to test

@k8s-bot test this

@k8s-bot test this

@nrshrivatsan I had to fix a false negative caused by output changes in helm v2.0.0-alpha.5 (released on Friday). Can you rebase this on master so that tests can rerun with the latest changes?

@nrshrivatsan we need you to sign the cla/linuxfoundation please.

@nrshrivatsan Can you provide an update on this PR?

In the interest of moving this forward I've resubmitted. Closing in favor of that PR -- https://github.com/kubernetes/charts/pull/194


Update date ranges

Currently date ranges are old ones from bash scripts.

At a minimum should be updated to more current date.

Should we automatically use last full month? Ask Paul about logic.

Old bash scripts have wrong end dates since TABLE_DATE_RANGE is inclusive. FIx!

Closed by PR #19


Please add the example as a json dashboard

As many resources are available it might be a good idea to add example.json files like this
https://github.com/asheniam/azure-grafana-dashboard-templates

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

ID: 05ed9bd2-21ae-6355-615a-1bcd3a4db313
Version Independent ID: 8c764ad2-714a-9e88-a1d2-c8290455bcb6
Content: Monitor Azure services and applications using Grafana
Content Source: articles/azure-monitor/platform/grafana-plugin.md
Service: azure-monitor
Sub-service: ****
GitHub Login: @rboucher
Microsoft Alias: robb

@marcowork Thank you for the feedback. This issue is being assigned to the content author to evaluate and update as appropriate.
@rboucher FYI

@marcowork, Thanks for posting your ask,
Indeed have couple example dashboard in the link you provided,
there are more that can be found in this link
in addition, we are working to add more samples in the future, do you have any specific ask for what is missing?
We would love to get you feedback.
Thanks.

#reassign @shemers

@shemers I think my main question was to provide more examples in the documentation. But I can think of a few dashboards like CPU memory disk utilisation
other dashboards like network traffic, firewall blockers egres ingres
AKS utilization #ofContainers #Namespaces #69872
Perhaps its even best if the dashboards you provide on Azure out of the box are also created in json for grafana?

#label:"CreateAzMonWIFeb2021"

#reassign:bwren given this is agent related.

Thank you for your contribution to the Azure Monitor documentation. We have created a workitem for this issue in our internal backlog database. We will prioritize it and make any necessary changes as we are able.
#please-close


drop preprocessing module and sklearn dependency

drop pipeline related features / module and reduce number of dependencies

This would be great. Had a working project that's now having scikit-learn version issues

@batmanscode v1.0.1 has just been released, which no longer requires scikit-learn
https://github.com/akanz1/klib/releases/tag/v1.0.1

@akanz1 brilliant, thank you! 😃


[WIP] Sage 9

work in progress, no ETA for release at this time
:warning: you can use this branch during development, but expect things to rapidly change
goals (wip, subject to change)

[x] restructure theme, use autoloader (@QWp6t)
[x] new templates folder organization — #1429 (@QWp6t)
[x] switch to eslint (@QWp6t)
[x] psr-2 coding standards — #1594 (@QWp6t)
[ ] new front-end workflow — introduce webpack, drop bower in favor of npm (@austinpray)
[ ] http/2 support? (in theme or as a plugin)
[ ] docs updates

more discussion/feedback needed

minimum php version requirement

npm WARN deprecated<EMAIL_ADDRESS>Please use gulp-cssnano instead.

I guess even gulp could be dropped in favor of something like:
browser-sync-webpack-plugin
or by looking at one recipe from browserSync repo (e.g. webpack.monkey-hot-loader)

drop bower in favor of npm

Why?

@rob006 with webpack you can use npm, bower, and or manually vendored scripts together with no problems. However, going forward, we are going to recommend using npm. The packages in npm's registry are higher-quality and usually built with UMD/module loading in mind.
As far as community sentiment: a lot of the react community doesn't even bother to publish to bower. Angular 2 dropped support for bower as well.

@austinpray I'm just curious what is wrong with bower so people want use package manager designed for JS for all frontend dependencies (which may not contain any JS content, for example css frameworks or font sets). And I always get some irrational arguments like "bower's tree is flat" or "bower is unreliable because depend on GitHub, and GitHub can be DDoSed". So Sage drop bower because some specific issue, or just because npm is cooler?
Personally I pretty like separation of PHP dependencies (composer), frontend dependencies (bower) and node dependencies which are used only as development tools (npm).

Angular 2 dropped support for bower as well.

No, it doesn't, it just not support all features of bower. It even use bower:
https://github.com/angular/angular/blob/master/bower.json
https://github.com/angular/angular/blob/master/package.json#L46

There have been a lot more times recently when a package I really wanted to use just wasn't available on bower, and I had to add it manually to my overrides files instead of just installing it.  Its not that you can't keep using bower, but I'd say that most things you'd install that have a bower.json file will also have a package.json file.

@rob006, I think you might have missed apray's opening sentence. Here it is again.

with webpack you can use npm, bower, and or manually vendored scripts together with no problems

So feel free to keep using Bower if that's what you're into. But we will most likely be pulling Sage 9 dependencies from npm.

@QWp6t I have not missed that, I just ask what is the reason of dropping bower and what is npm advantage. I'm not a bower fanboy, if there is something wrong with bower I'd like to know that. If it's only personal preferences, just say it, I'm fine with it.

@rob006 a 100% logical reason to drop bower is that it is not needed. For the purposes of sage as it appears out of the box: npm and bower have overlapping features. We simply do not require 3 package managers.
If you personally enjoy bower or your project calls for bower, it will still be just as easy to use. If not easier than before.

@ptrckvzn has been working on webpack with sage 9 :heart_eyes:  more info: https://discourse.roots.io/t/sage-9-webpack/6066

There appears to be an issue with autoloader and namespacing when including Sage 9 in as a composer dependency for a larger project.
I've got a stock clone of the Sage 9 branch that I'm then pulling in as a composer module into a bedrock project (via the main composer.json).  After doing a "composer update", WordPress throws errors about not being able to find App\add_action() and other WordPress global functions.  Could the generated autoloader code be forcing the App namespace and not defaulting to a recursive search to the global namespace?
If Sage 9 is just dumped into the /web/app/themes directory (followed by a composer update in the theme), it works just fine.
I believe Sage 8 works fine when being installed as a composer dependency.

Possibly consider deleting .babelrc and putting the preset into webpack.config.js, as in:
query: {
  "presets": [ "es2015"]
}

Gets rid of an otherwise unnecessary file.

Fixed the issue with autoloader when pulling in Sage into Bedrock via composer.json.  See #1628

We are loading $sage_includes before Composer but $sage_includes requires Roots\Sage\ classes that are autoloaded

I have custom classes on a new namespace loaded with PSR-4 through composer. However, they only work when I load composer before $sage_includes where they are being called. How is it possible the Roots\Sage\ namespace loads earlier and my namespace doesn't?

Possibly consider deleting .babelrc and putting the preset into webpack.config.js, as in:

Don't all kinds of other tools depend on it, like mocha? I've seen a few projects where they keep the .babelrc because all of their tooling accesses it.

Don't all kinds of other tools depend on it, like mocha? I've seen a few projects where they keep the .babelrc because all of their tooling accesses it.

I've seen arguments like that for keeping .babelrc in projects. But it just felt like a build process configuration should be kept with the rest of the build process configurations.
But whether it is decided to put the Babel configs in webpack.config.js and require overriding via a .babelrc for external tools or put them in a .babelrc and require overriding inside webpack.config.js for build process configurations... half a dozen of one, six of the other.


Caveat: Deletion of a file from a share does not delete the entry in the storage account.

Hi,
Will this caveat be fixed? If so, when?
Might be useful to make this an option : "When a file is deleted from the Azure Data Box Gateway, the file on the storage account needs to be:"

Not deleted in the Storage account
Deleted in the storage account.

And if deleted you might be able to add an option for example: Immediately or after x hours, days or months...

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

ID: 954e8423-01fe-9adf-9ff6-8b19ce85cb9e
Version Independent ID: 275683b7-04da-03f8-a344-d59320109df3
Content: Transfer data with Azure Data Box Gateway
Content Source: articles/databox-online/data-box-gateway-deploy-add-shares.md
Service: databox
Sub-service: gateway
GitHub Login: @alkohli
Microsoft Alias: alkohli

@akenens
Thanks for the feedback! We are currently investigating and will get back on this.

@akenens Thanks for the feedback and it has been shared with the content owner for further review.

@akenens This is a product enhancement, unfortunately not something that can be fixed in doc alone. Thanks!
@SumanthMarigowda-MSFT  This is not a doc issue but a request for a product change. Please triage appropriately to convey this info to product team.
#please-close


[SPARK-46468] [SQL] Handle COUNT bug for EXISTS subqueries with Aggregate without grouping keys

What changes were proposed in this pull request?

As Aggregates with no grouping keys always return 1 row (can be NULL), an EXISTs over such subquery should always return true.
This reverts some changes done when we migrated EXISTS/IN to DecorrelateInnerQuery framework, in particular the static detection of potential count bug aggregates is removed (just having an empty grouping key should trigger the count bug treatment now; scalar subqueries still have extra checks that are evaluating the aggregate on an empty input). I suspect the same correctness problem was present in the legacy framework (added one test in the legacy section of exists-count-bug.sql)
Why are the changes needed?

Does this PR introduce any user-facing change?

No
How was this patch tested?

Query tests
Was this patch authored or co-authored using generative AI tooling?

No

@jchen5

Should the title be something like handle COUNT bug for subqueries with aggregate and no group-by?
It looks like your PR just has reverting your earlier count bug changes, was there another part that was missed?

updated

Actually, on second thought, we already have DECORRELATE_EXISTS_IN_SUBQUERY_LEGACY_INCORRECT_COUNT_HANDLING_ENABLED which should take care of that

@cloud-fan

thanks, merging to master!


Cat screen

Hi,
I like the cat welcome screen, but when playing video via chromecast, the cat animation eats 67% of CPU (on MBP Retina 2013 i7 2,3GHz) which is quite a lot. Fortunately when minimizing the app CPU usage goes near 0%.

🐈         🔥 💻 🔥


Visible seams between GridMap tiles (sometimes only with MSAA enabled)

Is hard to see. You need to open the image full size. There are no visible seams with MSAA Disabled but with 2x or higher I start seeing seams and edges of 3D meshes.
My guess is the texture or mesh is shrunk by a small factor in order to produce the edge aliasing.
I use a Gridmap is a cell size 1 , 1 , 1 and the tiles are all designed to be exactly 1 x 1 x 1  and the UV maps are made exactly to the dot for 64 x 64 textures.
This is on latest Godot 3.0 release

Also happens on mesh edges, maybe related to unfiltered textures?
I have a repo here with a demo: https://github.com/Worgames/superspacearcade_godot

There is a cell_scale property you can use, with some values like 1.001 that will get rid of these problems.

Maybe we should document this better?

@reduz cell_scale is only relevant to grid map right? I have the same issue on an imported dae mesh.
@Bauxitedev I deleted the generated meshes, removed the "compress"  attribute from the import settings and reimported the mesh - sadly, the issue remains.

Are you using a texture atlas? With MSAA, the primitive doesn't have to cover the center of the pixel to be visible, but shading is calculated at the center of the pixel regardless. This can cause interpolated vertex attributes (such as UVs) to instead be extrapolated for a point slightly off the edge of the primitive. This is an issue with MSAA in general, not Godot. Try moving your UVs slightly inward so extrapolated UV coordinates will still use the same texel.

@Bauxitedev I disabled vertex compress by default because many were having issues with it, left compress of other stuff
@TomWor If you are using a recent master, i fixed this by disabling vertex compression by default

What is the state of this issue?

This still happens for me using 3.1 Beta 10, using a texture atlas and uncompressed meshes.
The seams only appear when MSAA is enabled, doesn't matter what level.

I think I can confirm that @randomness128 is right at least about the issue I'm facing.
I'm using a texture atlas and because of the nature of it (voxel-style, nearest neighbour) the pixels bleed over. I exported the same model with vertex colors and the problem was gone. (which sadly is not a solution for me because it yields to many vertices)
I also want to mention that this doesn't happen in Unity, their MSAA algorithm must do something different.
Maybe the problem happens because the texture atlas doesn't repeat itself at the edges or something?

Is the issue lessened if you slightly expand/shrink your meshes?

Does this still happen in latest 3.2 builds? If so, does it happen with both GLES2 and GLES3?
Finally, if you can reproduce it, please upload a minimal reproduction project that shows the issue.

Reproduction Project:
msaa_seams.zip
Very obvious seams, only when MSAA is enabled.
Tested in both GLES3 and GLES2 using 3.2 beta 5, and a nightly build: 7f56ef365, same results for both.

@EzraT Is the issue lessened if you slightly expand/shrink your meshes but keep the textures at the same size?

@Calinou No, not really, as far as I can tell that just introduces more problems, z-figthing flickering or physical seams between the meshes, along with the texture seams discussed here.

I'm unsure if its related, but I'm also getting some jittery artifacts along seams even with MSAA disabled. I'm hesitant to report this example as an actual issue, as I haven't ruled out external causes (assets, GridMap settings, Camera, etc) for the odd artifacting displayed here. You can see it here just to the left of the player.
The seams become permanently visible with MSAA enabled very similarly to examples that have already been provided.

Both the video in the link above as well as the attached image were taken while running 3.2.3.rc1 on win10 with a GTX 1080 Ti.
My GridMap settings in the attached media have a cell size of Vec3(2, 2, 2), and cell scale of 1.
Our game intends to make fairly heavy use of the GridMap node, so this is a bit of a sticking point for us.
Has anyone else with this issue found any workarounds that can help mitigate the issue?
We've tried slightly increasing cell scale to 1.001 as well as modifying cell size by small increments as well, but unfortunately they didn't seem to help.

Has anyone else with this issue found any workarounds that can help mitigate the issue?

Try adding a green plane below the GridMap floor to make seams less visible.

Try adding a green plane (with the same color as the grass) below the GridMap floor to make the seams less visible

Thanks for the suggestion! I just tried that out, as well as making a plane that just barely sticks out near the top of the grass tile in the MeshLibrary itself, and unfortunately it doesn't seem to have had any effect.
Here is the size of the plane I used just beneath the GridMap (changed to blue to show that it stretches across most of the GridMap.)

With the top face of ground level tiles in the GridMap being at Y coordinate 2.0, I changed the plane to be the same color as the grass, and moved it to Y 1.999, and I'm unfortunately still able to see seams. (You can see where the plane ends when its just underneath the GridMap tiles at the top of the picture)

cc @lawnjelly

This is very probably due to precision issues due to floating point error in the matrix math. Normal rendering hiding it and anti aliasing showing it up. I seem to remember answering a similar problem for the voxel addon guys a few months ago.
As reduz says, aside from merging vertices, a common solution is adding a small increase in scale for each element, although it has to be applied in the right way (relative to the element centre, not simply a global scale). I'll have a look in the source just to check it's being applied correctly.

Reproduction Project:
msaa_seams.zip
Very obvious seams, only when MSAA is enabled.

This project the seams look due to texture filtering. You need padding if you are using texture atlas.

After doing some research on MSAA and how its handled, as well as re-reading randomness128's suggestion after lawnjelly referred back to it, I wasn't able to entirely remove the seams, but they're much, much less noticeable.
Each face of our cubes were 64x64 pixels, and they were stored in one UV map making the entire albedo map 128x128.
We initially tried adding a single pixel border around the textures, and adjusted the UVs to be within that 1 pixel border.
For some reason this seemed to actually make the seams even more noticeable (at least on 2x MSAA)
But when we added a 10 pixel border around the entire albedo map, and reassigned the UVs to be wrap the initial 64x64 textures we've gotten this instead.

Here is a comparison of how our original and padded albedo map looked to get our results in case anyone stumbles upon this issue in the future.

The seams are still slightly visible in the top left corner of the world, but I think this should suffice. 😄 Worst case we can add a bit of a vignette or some sort of post processing to help cover up the remainder of it.

As a separate suggestion:
I'm not very familiar with the specifics with modern OpenGL, but would it be possible to have a GL_CLAMP_TO_EDGE type flag for materials to somewhat emulate this padding effect? I'm unsure if that would positively affect the MSAA, but it seems like it could help with it grabbing similar colors when it tries to sample outside of the UVs.

As a separate suggestion:
I'm not very familiar with the specifics with modern OpenGL, but would it be possible to have a GL_CLAMP_TO_EDGE type flag for materials to somewhat emulate this padding effect? I'm unsure if that would positively affect the MSAA, but it seems like it could help with it grabbing similar colors when it tries to sample outside of the UVs.

Unfortunately CLAMP_TO_EDGE only works for the absolute edges of textures, so won't help with texture atlases (it can help with non repeating regular single textures though).

We initially tried adding a single pixel border around the textures, and adjusted the UVs to be within that 1 pixel border.
For some reason this seemed to actually make the seams even more noticeable (at least on 2x MSAA)

Also note texture compression can affect this. Texture compression tends to work in blocks (I believe 4x4 is common) and if your atlas edges span a block this can result in artifacts on edges. Using uncompressed textures or better still avoiding these edges can help here.
i.e. If you original atlas tiles were 64x64, make them 68x68 including 4 texels of padding, giving 8 texels between the actual tiles (or use 8 texels of padding etc).

It's possible to clamp UV coordinates using a shader, but this has a performance cost. See also https://github.com/godotengine/godot-proposals/issues/651.

Like for https://github.com/godotengine/godot/issues/35067:
Would centroid sampling be able to alleviate this? I don't know if it's available in GLES3 though. If it's likely limited to desktop OpenGL only, would have to be conditionally added on shaders on desktop platforms only (which would add a fair amount of complexity).
Centroid sampling is definitely not available in OpenGL 2.x/GLES2.

One of these three solutions provided by clayjohn and lawnjelly may fix this issue.
https://github.com/godotengine/godot/issues/35067#issuecomment-1058617216

I have recently encountered this issue in 3.5.1. I'm using models made in MagicaVoxel, then processed in blender to reduce geometry. Seams on tiles are bad enough, but I'm also getting this on more complex objects (like ruined buildings) placed on map, and it is quite jarring. Since those are quite complex, padding the texture is not an option for me, it would take dozens of hours of manual work.
What is more interesting to me is that even with MSAA disabled, I am still getting this issue, although way, way less. I think the bug might actually not be linked to MSAA, and it only makes it more visible.

I'm also getting a similar issue, and it's quite bad on lower resolutions.

Can confirm, gridmap is showing weird artifcats even in godot 4.0, and scaling the size doesn't seems to change much :

@LunaticWyrm467 @FaerDerr Please upload a minimal reproduction project to make this easier to troubleshoot.
Note that if using a texture atlas (like in @EzraT's MRP), this is due to mipmap bleeding: https://github.com/godotengine/godot/issues/27837

Both issues occurred when someone tried MSAA in my Minecraft-like demo:

Atlased textures show seams everywhere
Gaps become visible between every face that cannot share vertices (way too common to be negligible)

The error renders the same size in screen space, so if a correction were to be done, it would have to support all view distances by not looking weird at close range and not happening again when far away.
In my case this happens within the meshes, which are chunks of voxels, where voxels are not necessarily cubes and can have been UV-mapped in Blender, so finding an easy algorithm to automate a fix doesn't sound straightforward.

I'm having this problem a LOT:

What's the current workaround to minimize seams?

What's the current workaround to minimize seams?

Several workarounds are mentioned in the above comments, outside of disabling MSAA and using another antialiasing solution.

What's the current workaround to minimize seams?

Several workarounds are mentioned in the above comments, outside of disabling MSAA and using another antialiasing solution.

I'm not using MSAA and I can't using antialiasing as it's a retro game. It only happens really when I move around, is there a fix for this?

I had a similar issue, I tried rotatin the gridmap along the y axis a couple of degrees and that helped reduce the number of lines

I have this too. The meshes are made with perfect snap in blender, but gridmap often places them with gaps. Disabling MSAA did not help. Scaling also doesn't help, since that straight up makes the planes missalign, though I would expect them all to remain centered - is the problem with how GridMaps determine cell center?

Can confirm that it's still a problem on 4.2.1. I haven't tested 4.3's rcs yet, so I don't know if a change there may have magically fixed it. I've tried everything people have suggested here and nothing really fixes it, or even noticeably reduces its effect
Hopefully this can get figured out and fixed soon
https://github.com/godotengine/godot/assets/16853086/5854b946-01df-4f2e-bf61-7b3465ea1fd3

I've discovered that there was a issue with blender that was causing it in my case. Even if based on the default cube and snapped to it, verteces are NOT in perfect positions. Instead, each vertex should be given position manually in the tool tab (key N to see). Assigning them manually fixed it in my case.
However, Kinematic character is unable to slide down without periodically hopping, unlike sliding in any direction that isn't same as gravity. Idk if that's gaps, or just a issue with GridMap+Kinematic body.

I wish i could say it was a blender issue for me, but it's also visible on the default box mesh made in Godot itself

so a friend of mine has discovered something that might help with fixing this. apparently this occurs only when the meshes that are next to each other have side-facing geometry. if i just have a plane, this doesn't happen

so a friend of mine has discovered something that might help with fixing this. apparently this occurs only when the meshes that are next to each other have side-facing geometry. if i just have a plane, this doesn't happen

I use plane meshes to cover up the worst looking of these that occur, but for games built with cubes with sides that are darker/lighter or have different textures the problem still remains.

apparently this occurs only when the meshes that are next to each other have side-facing geometry

It feels like that kinda forces the marching cubes approach, where there is only the geometry actually needed for the total shape. I suppose the cubes need to be separated into individual planes, and you combine planes instead of blocks. Would definately make it more of a hassle.

I am experiencing this issue in Godot 4.2.2
I am using a texture atlas on my gridmaps, however, I am not using MSAA of any kind, and MSAA is completely disabled. The gridmaps use a MeshLibrary (.tres) created in Godot based off of a .glb file exported from Blender.
If it would be helpful, I used this tutorial here.
I have tried:

Changing the cell scale, but that created more issues that it solved, with weird bleeding and clipping
Turning MSAA on, has the same issue regardless of if MSAA is present or not
In Blender, all normals are facing the proper direction
In Blender, all origins are at the correct location

I've also noticed that most of these artifacts are most visible at the periphery of the Player's vision, as you can see in the attached images.

I am using a texture atlas on my gridmaps, however, I am not using MSAA of any kind, and MSAA is completely disabled.

You need to add padding between the textures in the texture atlas so that mipmaps don't cause different textures to blend together.

You can troubleshoot whether mipmapping is the cause by disabling mipmaps on the atlas texture in the Import dock. This will cause textures to become grainy at a distance, but if the cause is indeed due to the texture atlas, the lines should be gone.

I tried disabling mipmaps on the atlas texture, however, the lines are indeed not gone.

Do lines disappear if you switch the material filter mode to Nearest in the BaseMaterial3D properties? (If the material was imported from Blender, you need to change the filter mode in Blender, or assign an external material from Godot.)

Do lines disappear if you switch the material filter mode to Nearest in the BaseMaterial3D properties? (If the material was imported from Blender, you need to change the filter mode in Blender, or assign an external material from Godot.)

That was it! I had my stuff set to cubic, rather than Closest, which is what I believe it's called in Blender. After switching to Nearest there are no gaps!
If you wouldn't mind, could you explain to me a bit further why changing the filtering mode to Closest fixed this? I assume it has something to do with the atlas and the bleed you said before?

If you wouldn't mind, could you explain to me a bit further why changing the filtering mode to Closest fixed this? I assume it has something to do with the atlas and the bleed you said before?

This is still due to a lack of padding between tiles in the atlas. When you use linear filtering, the edge of each tile will read from the nearest four pixels for linear interpolation. On each edge, two of those pixels will be from a different tile, possibly with a color that is very different. This is what leads to the visible line on tile edges.

Yes, you need padding on the edges of your atlas tiles.

How can I do this without losing the ability to "tile" my gridmap pieces, so that they line up with the texture of the next gridmap over? I think I might be misunderstanding how to do this. I appreciate your patience with me, I have to apologize, I'm very new to Godot.

I'm having a similar issue with v4.3.stable.mono.official [77dcf97d8], but with just boxes placed in a grid without the use of a GridMap, with MSAA and all antialiasing turned off, and all unshaded materials without any lighting or shadows. But it is occurring only for the Mobile and Compatibility renderers, not for the Forward+ renderer, and it's showing up when using either an orthographic camera or (especially) a perspective camera with a low FOV.
For example, with a perspective camera and low FOV:
Mobile:

Forward+:


Corrupt data when using C++ binding from C#

I'm using CppSharp to generate a binding for very complex C++ API, to use it from C#. This complex API involves calling a method with a big and deep structure. C++ code should populate structure with data and return it to me. The structure is 13384 size.
Now, what I was doing is next (C#):
var cfgParams = new __cfg_params(); // The structure generated by CppSharp
var cfgErrors = new __cfg_errors();
ErrorCodeCfg(cfg_dll.cfg_import_settings(cfgParams, cfgErrors));

// Here I read some (but only some) of the fields of cfgParams as random garbage (about 40% of the time)

But if I do this:
var cfgParamsT2 = __cfg_params.__CreateInstance(new __cfg_params.__Internal());
var cfgErrorsT2 = new __cfg_errors();
ErrorCodeCfg(cfg_dll.cfg_import_settings(cfgParamsT2, cfgErrorsT2));

It start to be working as expected and I receive proper data in cfgParamsT2
Unfortunately cannot provide .h files I'm generated code from, because it is proprietary code (Dialog Production Line Tool), so I can only hope somebody has some ideas/is aware of the issue. This might also be not an issue if CreateInstance is really supposed to be used here, and I should not use constructors, but in that case it makes sense to generate them as private?

Do you by any chance generate __cfg_params as a struct rather than a class (by marking it explicitly)? If you do, please remove it. We do not handle empty constructors of structs correctly yet.

The generated __cfg_params is a class, when it's __Internal is a struct. I do not mark anything explicitly, I actually use all defaults for CppSharp. The C corresponding structure of __cfg_params is a struct

I understand you may not share your header but I am then afraid this is about everything we can do. If you can replicate the problem with a made up, and possibly simplified, header, I'd be happy to take a look.

I will see what I can do, but I'm pretty sure I won't be able to reproduce it with simple example. My header files are very very complicated, and this is probably why it starts behaving weird.
Anyway I'm fine with using .CreateInstance(new Internal()) calls, it seems to work 100% of the cases.
I'm not closing the ticket in case somebody (or me) finds a simpler code example

Maybe you can send us (privately if you want) the relevant pieces of the generated code, that way we might be able to figure out what's going on. This seems like an important bug to get fixed.

I've stepped into the issue once again, and now it doesn't work even with CreateInstance. Please see the gist: https://gist.github.com/archeg/a669dc7cee744f41769824bfdeba41bc This is just a small piece of the project, but I haven't tried to run it separately, it's missing some parts. But maybe this will give you some ideas of what could be wrong?

Maybe I'm being stupid and missing some C++ concept I'm not aware, if this is true - I'm very sorry for taking your time. I clearly see those 5th in the memory

Guys, I'm sorry, it looks like the debugger just showed the wrong stuff. I think the issue is there - I've seen it, but my example is wrong. I had no idea you cannot trust the debugger in VS. I will keep working and if I happen at the issue again - I will post it here

Is the code you're trying to bind C or C++ code?
I think there might be an issue with C code in that AllocHGlobal never zero-initializes the allocated memory and why sometimes garbage shows up. This has never been a problem with C++ code because we usually call a native constructor which initializes the memory.

You are right, it is C, not C++, sorry for the confusion. Any known fix to this?

Our options contain a setting for the language, please use a C value there.

Yeah, I was going to mention, can you try setting:
driver.ParserOptions.LanguageVersion = Parser.LanguageVersion.C;
And see if that changes any of the struct offsets in the generated code?
About the other AllocHGlobal issue, we'll have to fix it and release a new version.

@archeg  In addition, could I ask a favour of you? Please use the regular constructor instead of __CreateInstance but initialise each field yourself. Using default values such as 0 or null is fine, just so that it's initialised similar to what a programmer in C would do. Then please run your code again and tell us if you still get garbage in your data.

Just tried to switch to C, received a lot of errors Cannot implicitly convert type 'bool' to 'sbyte' (and back). I will try to fix them manually tomorrow, and report the results.
@ddobrev I think I did this when I reported the issue, - I was initializing all the fields manually. I was still receiving garbage, but it was occasional and somehow dependent on the run (I had app runs where everything was ok, despite a lot of structures were used).  But I will try it again tomorrow, so to be sure

@ddobrev I have tried to return to invoking constructors, and initializing all the fields. The data I receive on C end is with garbage (but only part of the structure). Furthermore, even if I pass this initialized structure to fill to C code (this C code can read the structure from a file, but this method requires a pointer to existing empty structure in memory), the data I receive is still corrupt. This doesn't happen when I use CreateInstance (at least in this particular case).
I've done this test with CppSharp set to parse C++, because if I switch to C, suddenly generated public constructors are gone, and I am only left with CreateInstance as an option.
From time to time I also receive AccessViolation in the property setter of the binding generated by CppSharp. I think I also have seen this even with CreateInstance, and both C/C++ parser options, but I still want to check that again.
Just to give you some insight, here is the initialization code I use: https://gist.github.com/archeg/cc7bfaefbdcd0b55d97b65f02d8c50c2 I had to generate that, it is impossible to write that by hand.
Also I think you are aware of that, but I wanted to mention. It is not possible to write code like this:
A.B.C = 5

Because the getter of B makes a copy. Not sure this is a bug or intended, but it was not obvious to me

@archeg thank you for your tests. We now have some idea about what improvements can make but unfortunately we do not know precisely what the problem is. I am afraid we cannot help any further without a complete test case.
I do think, though, that I can offer you an alternative. Our main page has a support e-mail which, should you decide to, you could use to send us your headers. I can guarantee their privacy. Please also note that we only need your headers, not your implementation (.c files).

@ddobrev Thanks a lot for the proposal, much appreciate that. It is not a problem to send over our source code, but the issue is that .c and .h files are something we use but do not own. I can contact the owner of ip for that, but it is a bit complicated and it's not my decision. We have an option to write custom C wrapper that has a simpler API, and use CppSharp then, which will probably work ok (btw, CppSharp looks really great, and definitely the best tool I've seen, everything else does much worse). I think we should go this way, because I'm already out of planned time for the implementation, but if I find some more free time later, I could come back to the issue


Cleaning up the code and proposing style changing

FabulousContacts is the possibly the most complete sample for Fabulous.Xamarin. It is likely that FabulousContacts will be used by the majority of people that use Fabulous. This PR proposes some changes in code style for FabulousContacts, cleaning up its code and making it easier to be the baseline for larger apps.
Some of these changes are:

open packages from the most important (such as System) to least important
Keeping functions short enough so that they are possible to be read within a laptop screen
Keeping lines of code short, less than 80 characters, when it makes sense and it is possible
property=value should be property = value, to keep the pattern throughout the code (such as let binding = value
Replacing do! with Async.Start, when possible
Replacing do! ... |> Async.AwaitTask with ... |> Async.AwaitTask |> ignore, when possible
Replacing unused bindings with _
Keeping style of pattern matching. If one item is inline, all the others should be inline, if one item is in a new line, all the other should be in new lines

| pattern -> item

| pattern ->
    item

If a block in a pattern matching is too long, a function should be created
If tuples are too long (such as when we have records, then we should create bindings for each element of the tuple.

{ model with X = x; Y = y }, mkCmd (Some z) "string"

let m = { model with X = x; Y = y }
let cmd = mkCmd (Some z) "string"
m, cmd

Instead of checking for null (such as in pattern matching), we should use Option.ofObj to convert it to option
Use Option.toObj when you have to convert an option to a Nullable
Use Option.map whenever we have something like:

 match aOption with
 | None -> None
 | Some v -> Some (fn v)

 aOption |> Option.map fn

Use Option.defaultValue and Option.defaultWith whenever we have something like:

 match aOption with
 | None -> "default value"
 | Some v -> v

 aOption |> Option.defaultValue "default value"

Use active patterns whenever we have to check a n-tuple:

 match aboutPage, detailPage, editPage with
 | None, None, None -> [ mainPage ]
 | Some about, None, None -> [ mainPage; about ]
 | _, Some detail, None -> [ mainPage; detail ]
 | _, Some detail, Some edit -> [ mainPage; detail; edit ]
 | _, None, Some edit -> [ mainPage; edit ]

let getPages allPages =
   let mainPage = allPages.MainPage
   match allPages with
   | ActiveMatchIfSome <@ fun p -> p.AboutPage @> aboutPage ->
       [ mainPage; aboutPage ]
   | ActiveMatchIfSome <@ fun p -> p.DetailPage @> detailPage &
     ActiveMatchIfSome <@ fun p -> p.EditPage @> editPage ->
       [ mainPage; detailPage; editPage ]
   | ActiveMatchIfSome <@ fun p -> p.DetailPage @> detailPage ->
       [ mainPage; detailPage ]
   | ActiveMatchIfSome <@ fun p -> p.EditPage @> editPage ->
       [ mainPage; editPage ]
   | _ ->
       [ mainPage ]

Obs.: This last case would be huge if we had 20 pages in our app, thus, the active pattern would end up being much more elegant

Hi @TimLariviere, please let me know what you think of these changes. I've checked the code but I would like you to double-check it just to make sure that I kept its semantics.

Oh thanks! That's really interesting.
Will check the code later.
I agree with all your points, except the last one.
I find it too verbose even with just 3 cases.
It's not easily understandable unlike the current pattern matching.
Maybe there's a way to simplify this existing pattern matching though.

Also should we use Fantomas to enforce the style throughout the solution?

Replacing do! with Async.Start, when possible

Doesn't this change behaviour?

Replacing do! ... |> Async.AwaitTask with ... |> Async.AwaitTask |> ignore

Are those equivalent? The first seems more natural to me ("convert task to async and use it in the normal way"). The second requires thinking deeply about Task and how it works.

Note that
View.Image(source = "fsharp.png",
           heightRequest = 50.,
           widthRequest = 50.)

can be "undented":
View.Image(source = "fsharp.png",
    heightRequest = 50.,
    widthRequest = 50.)

This can keep all indentations to multiples of 4 and works well with tooling. I think it's smarter but it's a matter of taste.

Replacing do! with Async.Start, when possible

I'm not sure this is desirable, and I believe in most cases the developer should be awaiting the result (unless you have a specific use case not to).  It looks like in the changes that have been made, Async.Start has in a few cases been applied when displaying alerts.  I think these should be awaited on, as they're often waiting for user feedback.  I usually only use Async.Start when I want behavior that is "fire and forget,"  or when I want to do something in the background that won't hold up the main thread.

Replacing do! ... |> Async.AwaitTask with ... |> Async.AwaitTask |> ignore

These are not the same behavior.  Consider the following program:
open System.Threading.Tasks

[<EntryPoint>]
let main argv =

    async {

        do!
            Task.Run(fun () ->
                Task.Delay(1000).Wait()
                Console.WriteLine "Test 1"
            )
            |> Async.AwaitTask

        Console.WriteLine "Test 2"

    } |> Async.RunSynchronously

    0

This will print out
Test 1
Test 2

When converted to
open System.Threading.Tasks

[<EntryPoint>]
let main argv =

    async {
        Task.Run(fun () ->
            Task.Delay(1000).Wait()
            Console.WriteLine "Test 1"
        )
        |> Async.AwaitTask
        |> ignore

        Console.WriteLine "Test 2"

    } |> Async.RunSynchronously

    0

It prints out
Test 2

Hi @charlesroddie and @NatElkins

Replacing do! with Async.Start, when possible
For this first case the user can choose to use Async.RunSynchronously instead, if he/she wants it to wait
Replacing do! ... |> Async.AwaitTask with ... |> Async.AwaitTask |> ignore
In this case, I agree with you @NatElkins, this is even the case with the do! stream.CopyToAsync(memoryStream) |> Async.AwaitTask inside the Helpers.fs file, which will give an undesirable result if we ignore the result. However, for the other cases, I believe they should be fine, hence when possible. I know it can be confusing when or not to use it, so I will leave it to @TimLariviere to decide whether or not to use them. (In my opinion, I just really don't like do! inside my code)

Hi @TimLariviere,
I was thinking about what you wrote today and I came up with something like:
let getPages allPages =
  let mainPage = allPages.MainPage
  [| allPages.AboutPage
     allPages.DetailPage
     allPages.EditPage |]
  |> Array.choose id
  |> Array.append [| mainPage |]

This is a lot smaller and it is nearly equivalent to the pattern matching/active patterns, since if all of them are Some, we will stack all of them. That could be a problem, I guess, since the developer would need much more thinking about what to keep and what not. Do you have any other suggestion for that?

For this first case the user can choose to use Async.RunSynchronously instead, if he/she wants it to wait

@luizperes Using Async.RunSynchronously in the context of UI apps is dangerous. This will lock the calling thread until the task is done. (It will either waste 1 potentially available thread or even block the UI thread).
In Fabulous, async commands are started with Async.StartImmediate which will run the async construct on the UI thread by default (and only switch to another thread when using let!/do! for an actual asynchronous function).
So using Async.RunSynchronously will freeze the app...
And I do prefer do! over other ways of doing it. I find it more explicit and less verbose.
Lastly, I did check the code and every time do! is used, we need to wait its completion before continuing.

I was thinking about what you wrote today and I came up with something like:

Yes, we still lose the simplicity of the existing pattern matching.
Being too much functional can feel like black magic to newcomers.
And since this sample is mostly for them, I'm not sure we should change that.

Hi @TimLariviere, sorry for the delay, I have just done the modifications you aked me, both adding the do!s and the patterns matching (rather than active patterns) back, cheers!

Did a refactoring to make the code easier to understand.
Mostly just moving things around.
@luizperes You did a lot of good things!
I changed 3 main things from your refactoring:

Removed Async.RunSynchronously (because of dead locks)
Undo some changes making the code harder to read (e.g. match ... with => Option.ofObj |> Option.map |> Option.defaultValue)
Improved the splitting of subviews in pages. I do prefer to have only meaningful parts extracted into functions and not only some fields.

There is still some issues when entering text in fields, will check it before we can merge.
Tell me what you think about those changes.
On the subject of being "too much functional":
Like I said, being too much functional can be hard to understand at first sight.
One needs to stop and think what it's actually doing, whereas "simpler" code is way more instinctive.
value
|> Option.ofObj
|> Option.map toValue
|> Option.defaultValue xxx

vs
match value with
| null -> xxx
| Some data -> data

In my opinion, the second one is far better.

Hi @TimLariviere,
Yeah, I agree with you in that case.
Btw, I fixed one small typo I found when reviewing your changes, cheers!

Thanks! Merging this now.


Links out to docs in smart wallet tab

📝 Changed routes:

…d/wallets/smart-wallet

(view full size)

Commit 8179f69356912e2cf39123ea937f975b6b8e43b9 (https://thirdweb-4k74mcq8a.thirdweb-preview.com).


Is there a way to disable Dropdown

Discussed in https://github.com/vikramlearning/blazorbootstrap/discussions/371

Originally posted by powertec-dan September 20, 2023
There appears to be a way to disable all the DropDownItems, but I'd like to show the dropdown itself as unavailable.
I tried to add Disabled="@value" to the DropdownToggleButton but the dropdown stops functioning after any other event is thrown on the page.
Any help or advice would be appreciated.
Cheers,
Dan

How I get selected value (DropdownItem) from Modal class - Dropdown in side dropdown menu e.g. <Modal @ref="modal" Title="Modal title"> Dropdown button <DropdownMenu @OnHidden="OnDropdownHiddenAsync"> @foreach (var dept in DepartmentDatas) { @dept.DisplayText } <Button Color="ButtonColor.Secondary" @OnClick="OnHideModalClick">Close Save changes <Button Color="ButtonColor.Primary" @OnClick="OnShowModalClick">Show Modal

@girishus  Please ask this as a seperate question in the discussion. I think you have to implement a custom logic.

@girishus you can apply Disabled state for each item in the dropdown. This way the drop down opens but you cannot click on the elements which are disabled.
<Dropdown>
    <DropdownToggleButton Color="ButtonColor.Secondary">Dropdown button</DropdownToggleButton>
    <DropdownMenu>
        <DropdownItem To="#" Type="ButtonType.Link" Disabled="true">Action</DropdownItem>
        <DropdownItem To="#" Type="ButtonType.Link">Another action</DropdownItem>
        <DropdownItem To="#" Type="ButtonType.Link">Something else here</DropdownItem>
    </DropdownMenu>
</Dropdown>

I used the Disabled property on the  tag itself.  It disables the entire dropdown so you can't click it at all.
Here's an example from my code:
<Dropdown Size="Size.Small" Disabled="@(!EnablePoFields)">
</Dropdown>

@tjdennis Try this.
<Dropdown>
    <DropdownToggleButton Color="ButtonColor.Secondary">Dropstart</DropdownToggleButton>
    <DropdownMenu>
        <DropdownItem To="#" Type="ButtonType.Link">Action</DropdownItem>
        <DropdownItem To="#" Type="ButtonType.Link" Disabled="true">Another action</DropdownItem>
        <DropdownItem To="#" Type="ButtonType.Link">Something else here</DropdownItem>
    </DropdownMenu>
</Dropdown>

Hi @gvreddy04
The original question above asked how to disable the entire DropDown control, not just an individual item in the DropDown list.  Putting the Disabled property on the DropDown tag will do that.
His only error was trying to put it on the DropdownToggleButton tag instead of the DropDown tag.
Regards,

When using Dropdown with Split="true" and binding Disabled to a variable on the page (Disabled="@actionInProgress"), only the DropdownActionButton gets disabled, but the DropdownToggleButton stays active.
Trying to manually disable the ToggleButton as well with disabled="@actionInProgress" works for disabling, but after re-enabling the ToggleButton, the menu doesn't open anymore.
How can we fix this?

Hi @gvreddy04
The original question above asked how to disable the entire DropDown control, not just an individual item in the DropDown list. Putting the Disabled property on the DropDown tag will do that.
His only error was trying to put it on the DropdownToggleButton tag instead of the DropDown tag.
Regards,

Demo Link: https://demos.blazorbootstrap.com/dropdown#disabled
Sample code
<Dropdown Color="DropdownColor.Secondary" Disabled="@isDropdownDisabled">
    <DropdownToggleButton>Dropstart</DropdownToggleButton>
    <DropdownMenu>
        <DropdownItem To="#" Type="DropdownItemType.Link">Action</DropdownItem>
        <DropdownItem To="#" Type="DropdownItemType.Link">Another action</DropdownItem>
        <DropdownItem To="#" Type="DropdownItemType.Link">Something else here</DropdownItem>
    </DropdownMenu>
</Dropdown>

<div class="mt-3">
    <Button Color="ButtonColor.Primary" Size="ButtonSize.Small" @onclick="EnableDropdown">Enable</Button>
    <Button Color="ButtonColor.Danger" Size="ButtonSize.Small" @onclick="DisableDropdown">Disable</Button>
</div>
@code
{
    private bool isDropdownDisabled = true;
    private void EnableDropdown() => isDropdownDisabled = false;
    private void DisableDropdown() => isDropdownDisabled = true;
}

Screenshot


Does it work with the home 3 app?

 Is somebody using it or does somebody know if it works? I almost bought "Home 3" but the price is a bit steep if it doesn't work. Otherwise i'll have to live with elgato...

For thow who wants to know: Yes it works with the home 3 app but you can't make automations with it. So with a workaround I created a scene that presses the appletv menu button in a different app: Controller for Homekit. Now i have a fully automatable scene to work with. And I can control it how I please.

Found an even better solution: Somehow the alternate-playpause button and alternate-input-controls or the macro's couldn't be used together, that's why i couldn't get it to work for automation. But by pairing the same apple tv twice i could use the the first 'device' to do the alternate play-pause button and the second to do the alternate buttons and macro's. So now i have the best of both worlds. Fully automatable triggers without third party apps. I still think it should have worked straight out of the box but if it works, it works.


Collapsible: Update DOM Attributes

Per the conversations with @dsjen, @cptvitamin , and @AlasdairSwan , this work updates collapsible stateful and structural DOM attributes of the Collapsible Component.

TODOs in a separate line of work still include:

defining a .collapsible-container DOM element that contains directly or indirectly the other DOM elements already defined
toggling a class of is-collapsed on the collapsible-container element.

Reviewers

[ ] @dsjen and @AlasdairSwan

I pushed and update to this branch to toggle the is-collapsed class on the container.  The changes that @talbs make LGTM.  @AlasdairSwan, would you mind giving this a review?

@dsjen the changes look good. I do have a question re. the convention of aliasing this to self. I think it adds confusion around what's going on.

Ignore my comments, there are nothing to do with this PR. Ship it :+1:

Haha, okay. Thanks much!


Add testing...

The whole library is quite poorly tested, we need better unit testing.

Added #24 (Golang tests), I think issues to track each implementation would be easiest to follow.

Working on Python UTs.

Hi @brendanburns I would like to add some test for the dotnet code. xUnit okay?

Yeah xUnit is great. Thanks!
--brendan

From: Leigh Ciechanowski<EMAIL_ADDRESS>Sent: Monday, March 5, 2018 12:34:27 AM
To: metaparticle-io/package
Cc: Brendan Burns; Mention
Subject: Re: [metaparticle-io/package] Add testing... (#3)
Hi @brendanburnshttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbrendanburns&data=04|01|bburns%40microsoft.com|41f2d81d9c724cf6334708d58273e8b8|72f988bf86f141af91ab2d7cd011db47|1|0|636558356690106512|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-2&sdata=ZnbendNHPC%2Fnadx2V8kMlxiMtSHM0QjBiZiXq3GA4Q0%3D&reserved=0 I would like to add some test for the dotnet code. xUnit okay?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmetaparticle-io%2Fpackage%2Fissues%2F3%23issuecomment-370345269&data=04|01|bburns%40microsoft.com|41f2d81d9c724cf6334708d58273e8b8|72f988bf86f141af91ab2d7cd011db47|1|0|636558356690106512|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-2&sdata=5ReQp%2BrUa3VfcCJVoNTtj668TV2ZS32qbvkqH8RO%2Bd4%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFfDgsQeItYJaqdLZn9sZjX0P-JchvVlks5tbPiTgaJpZM4Q2jb4&data=04|01|bburns%40microsoft.com|41f2d81d9c724cf6334708d58273e8b8|72f988bf86f141af91ab2d7cd011db47|1|0|636558356690106512|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D|-2&sdata=MD3sFVqtQCVfe0Yb2GqbGh2q0DvPX5Hbj73fSDNpKRM%3D&reserved=0.


Issues with ng-model-options

I'm using the new debouncing features of ng-model-options. I noticed that with ng-currency and debouncing that the value in the form field isn't matching the value on the scope.
Here's an example that should reproduce the issue.

Update?

Again, sorry for the delay, I had some personal issues ;) no update yet. I'm not using angular 1.3 right now, may you write a simple plunk to test the problem so I can fix it?

Sure. I hope everything is okay with you.
-----Original Message-----
From: "Luis Aguirre"<EMAIL_ADDRESS>Sent: 2/6/2015 8:10 PM
To: "aguirrel/ng-currency"<EMAIL_ADDRESS>Cc: "Ronnie Overby"<EMAIL_ADDRESS>Subject: Re: [ng-currency] Issues with ng-model-options (#14)
Again, sorry for the delay, I had some personal issues ;) no update yet. I'm not using angular 1.3 right now, may you write a simple plunk to test the problem so I can fix it?
—
Reply to this email directly or view it on GitHub.

Hi ronnieoverby, yes it's all ok now :) thanks!  Please, may you give me some example to work in?
Best regards,

Here you go: http://plnkr.co/4OsyzyagtV72884uFXlY

Did you see the problem?

the fix is really simple, just add the following:
ngModel.$commitViewValue();
element.on('blur', function () {
ngModel.$commitViewValue();
element.val($filter('currency')(ngModel.$modelValue, currencySymbol()));
});

Are you going to include that in a new release?
On Fri, Feb 13, 2015 at 1:57 PM, Hugo<EMAIL_ADDRESS>wrote:

the fix is really simple, just add the following:
ngModel.$commitViewValue();
element.on('blur', function () {
ngModel.$commitViewValue();
element.val($filter('currency')(ngModel.$modelValue, currencySymbol()));
});
—
Reply to this email directly or view it on GitHub
https://github.com/aguirrel/ng-currency/issues/14#issuecomment-74306484.

Hi Ronnie,
Yes I will do some automated test and I will include it in the new release next week.
@gomflo Thanks a lot! ;)
Best regards,
Luis Aguirre

Hi Ronnie,
Please, update you ng-currency version to v0.8.2 to fix this issue.  If you have any problem please feel free to reopen this ticket.
Thanks!
Best regards.


Fix google assistant request sync service call

Description:
context.user_id will be None if request_sync service call was triggered by platform event in Automation.
The fix add an optional agent_user_id field to request_sync service, so that automation script can provide the user id
Related issue (if applicable): fixes #17380
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
Example entry for configuration.yaml (if applicable):
# automations.yaml
- id: refresh_google_assistant
  alias: "Refresh Google Assistant devices"
  hide_entity: true
  trigger:
    platform: homeassistant
    event: start
  action:
    - service: google_assistant.request_sync
      data:
        # you can find the owner user id from configuration -> users
        agent_user_id: OWNER_USER_ID

Checklist:

[ ] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

@CedrickFlocon can you direct apply my change to your production instance? Since the changes only 2 lines, you can directly edit your local homeassistant/components/google_assistant/__init__.py file

@awarecan I try but I wasn't able to locate the source code directory.
My production instance is base on HASS.IO and I can only access with SSH.
If I well understand the project, the source code should be in a docker container ?

Is this ready to be tested?

Sorry for the delay.  Had some things come up.
I tested three different ways.  And I am not clear on what is the appropriate method for automations relative to this PR.
#
  - id: ha_startup
    alias: HA Startup
    initial_state: 'on'
    trigger:
      platform: homeassistant
      event: start
    action:
      - service: google_assistant.request_sync

This above produces the same 400 error as noted in the related issue.
#
  - id: ha_startup
    alias: HA Startup
    initial_state: 'on'
    trigger:
      platform: homeassistant
      event: start
    action:
      - service: google_assistant.request_sync
        data:
          agent_user_id: <my_id>

This above produces a 404 not found.
Testing via the front end via services with no options doesn't seem to produce any log output.  I cannot tell if it is working or not via the UI.

@balloob This change causes a 404 on the request.  How does this change look fine?

You get a 404 if the ID is not the same as the one that you used to sync with. So you might have gotten the ID wrong.

I validated the ID was correct.  I even created a 2nd account and tried this on my dev environment.  Still gets a 404.  I think this needs more testing.

@balloob @awarecan I was able to find some time to test this further.  I was confused by the documentation where previously we could specify a user_agent_id.  I cannot recall the reasons why but most had used the user_id of their respective google accounts.  There was no particular reason.
You could use anything. This also matched in the Google Actions console.  Therefore when this PR was submitted, I mistakenly thought "agent_user_id" was the same as previous documentation indicated.  In fact the new documentation states that this user_id is in the config > users section.  However some also might interpret this as the "username" of the HA user.  Which I did.  The correct user_id is the random generated id in that same section.
Since the submission of this PR, the init.py has been updated to allow GA to "unlock".   This PR was never merged to master (At least that I can see).  I can provide a new PR and can confirm these changes do in fact resolve the issue.
Sorry for the long delay and thank you @awarecan for the help.

I opened https://github.com/home-assistant/home-assistant/pull/19113 but I guess the changes in this PR for init.py are already merged to dev so they just need to be merged to master.  I did update the services.yaml and the description.


can you make it for the new ionic 2?

thisrt i want to say thank you for the great repo, but i need a help with the some kind of apps but with ionic 2!!! can you help me?

I will be porting this to ionic 2 . But not very soon! Currently I am busy with my academics.  To get the latest updates, just subscribe to my blog.

ok thanks, i'm continue to wait

https://github.com/arjunsk/ionic2_firebase_shopping_cart


chore(package): update mock-repository-provider to version 5.1.39

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


JSON with Unicode values can cause parsing errors

Summary
During development of Damus, we noticed an issue with flatc that cause certain flatbuffer values to become NULL when parsing a JSON with Unicode values.
I apologize in advance if this report is missing information, flatc is still somewhat new to me.
Preconditions
flatc version: TBD (@jb55 might have more info on this)
Schema: A flatbuffer schema that allows a string value, with certain specific key name size of 4 characters or smaller
Reproduction steps
Minimal failing scenario code
I am working on a failing scenario code for this. Unfortunately I did not have time to make that repro case compile and fully work yet, but hopefully this draft provides some insight as to the nature of the issue: https://github.com/danieldaquino/flatc-unicode-issue-repro
Rough steps

Create a flatbuffer schema that allows a string value, with a key name of 4 characters or shorter (e.g. "name")
Create a JSON where the value of such key is non-english unicode text (e.g. "ひらがな" in UTF-8 encoding)
Try to parse this JSON into a flatbuffer
Check the value of "name" in the flatbuffer object. Should be "ひらがな", but if the issue is present it will show as NULL

Detailed root cause information
Note: I will present snippets of Damus code (not the minimal failing case) to more accurately present what we found.
Suppose the program is at this line (marked by an arrow) of the generated JSON parsing code ((...)_parse_json_table):
if (w == 0x646973706c61795f) { /* descend "display_" */
                        buf += 8;
---->               w = flatcc_json_parser_symbol_part(buf, end);
                        if ((w & 0xffffffff00000000) == 0x6e616d6500000000) { /* "name" */

static inline uint64_t flatcc_json_parser_symbol_part(const char *buf, const char *end)
{
    size_t n = (size_t)(end - buf);

#if FLATCC_ALLOW_UNALIGNED_ACCESS
    if (n >= 8) {
        return be64toh(*(uint64_t *)buf);
    }
#endif
---->    return flatcc_json_parser_symbol_part_ext(buf, end);
}

static inline uint64_t flatcc_json_parser_symbol_part_ext(const char *buf, const char *end)
{
    uint64_t w = 0;
    size_t n = (size_t)(end - buf);

    if (n > 8) {
        n = 8;
    }
    /* This can bloat inlining for a rarely executed case. */
#if 1
    switch (n) {
    case 8:
---> w |= ((uint64_t)buf[7]) << (0 * 8);
        goto lbl_n_7;
    case 7:
lbl_n_7:
        w |= ((uint64_t)buf[6]) << (1 * 8);
        goto lbl_n_6;
    case 6:
lbl_n_6:
        w |= ((uint64_t)buf[5]) << (2 * 8);
        goto lbl_n_5;
    case 5:
lbl_n_5:
        w |= ((uint64_t)buf[4]) << (3 * 8);
        goto lbl_n_4;
    case 4:
lbl_n_4:
        w |= ((uint64_t)buf[3]) << (4 * 8);
        goto lbl_n_3;
    case 3:
lbl_n_3:
        w |= ((uint64_t)ubuf[2]) << (5 * 8);
        goto lbl_n_2;
    case 2:
lbl_n_2:
        w |= ((uint64_t)ubuf[1]) << (6 * 8);
        goto lbl_n_1;
    case 1:
lbl_n_1:
        w |= ((uint64_t)ubuf[0]) << (7 * 8);
        break;
    case 0:
        break;
    }
#else
    /* But this is hardly much of an improvement. */
    {
        size_t i;
        for (i = 0; i < n; ++i) {
            w <<= 8;
            if (i < n) {
                w = buf[i];
            }
        }
    }
#endif
    return w;
}

Supposed that the text being parsed at the cursor is: name":"ひらがな(...)
In that case, buf[7] will be the first byte of ひ, which will be 0xE3 (I believe, or some other value where the Most significant bit is 1 as it is a Unicode character).
This value, being char, is interpreted as a signed value, which evaluates to -29 decimal.
When the program casts this 8-bit value into a 64-bit value, it ends up padding it with 0xFs (i.e. 0xFFF...E3)
Due to the way flatcc_json_parser_symbol_part_ext is currently forming the word in w, w will end up as 0xFFF...E3 no matter what the other bytes are.
Now, when the program reaches this line:
---> if ((w & 0xffffffff00000000) == 0x6e616d6500000000) { /* "name" */
                 buf = flatcc_json_parser_match_symbol(ctx, (mark = buf), end, 4);
                            if (mark != buf) {
                                buf = flatcc_json_parser_build_string(ctx, buf, end, &ref);

w will be 0xffffffffffffffe3, therefore it will not match 0x6e616d6500000000 ("name"), and thus the value will be discarded as if the JSON did not have the "name" value at all.
Potential fix
On our program, we fixed this by casting the char bytes into unsigned 8-bit values on flatcc_json_parser_symbol_part_ext.
That causes the values to be correctly padded with 0x0s when transformed into 64-bit values
Here is the diff that worked in our case:
https://github.com/damus-io/damus/pull/1673/commits/3f436cd60ceca2b52a8189f8953e67e993394f61
Other notes
@jb55 and @kunigaku might also have more information and insights on this. @jb55 mentioned he might have a fix that can be applied to flatc. Kudos to @kunigaku for finding the root cause and proposing the fix.
Hopefully this is enough info, but please let me know if you have more questions 🙏

Thanks for reporting this and suggesting a fix.
Could you please review the temporary branch https://github.com/dvidelabs/flatcc/tree/json-unicode
I adds uint8_t casts to avoid sign extension as suggested. I have not tested, but it does pass regular tests.
Also, if possible, please review code to see if there might be other similar cases.

Thank you @mikkelfj! It looks like it will solve the problem.
@jb55, do you have any other thoughts on @mikkelfj's fix? (88e2bc13f5fc6b40405091e6eff449fe0679b1cf)

On Mon, Nov 20, 2023 at 10:47:12AM -0800, Daniel D’Aquino wrote:

Thank you @mikkelfj! It looks like it will solve the problem.
@jb55, do you have any other thoughts on @mikkelfj's fix? (88e2bc13f5fc6b40405091e6eff449fe0679b1cf)

looks fine, I haven't had time to test it yet.

I'm going to close this assuming it works. If not feel free to reopen.


sourpls is just an empty void on the mac chatterino

Checklist

[X] I'm reporting a problem with Chatterino
[X] I've verified that I'm running the most recent nightly build or stable release
[X] I've looked for my problem on the wiki
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
it simply doesnt show up at all but I can hover over it and it says its sourpls but there's nothing there
Screenshots

OS and Chatterino Version
Chatterino 7.3.5 (commit 132b406cc) on macOS

someone said to clear my cache and that didn’t do anything

that's unlucky b/c that was my only idea

Please can u install the normal chatterino and check if the problem persists

ok got it to work thanks for the help
On Wed, May 18, 2022 at 6:17 PM HaveANiceDay @.***>
wrote:

yea this issue is just smth with my computer imma just clear anything
chatterino related on my computer and see
[image: Screen Shot 2022-05-18 at 6.15.48 PM.png]
On Wed, May 18, 2022 at 6:09 PM Troy @.***> wrote:

Please can u install the normal chatterino and check if the problem
persists
—
Reply to this email directly, view it on GitHub
https://github.com/SevenTV/chatterino7/issues/88#issuecomment-1130901323,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATFEIH4GUBD36VA4AJDLKALVKWIDZANCNFSM5V7N5YHQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

ok cool thanks, ill close this issue


Add observer guidelines for sharing

The previous policy did not make it clear what, if anything, observers could share from meetings. This commit attempts to clarify the policy by explicitly allowing observers to share observations but requesting care in what is shared and how it's shared.

This is my take on how to clarify the observer policy, but I want to treat it as an invitation to collaborate. Please make suggested edits or comment if you'd like to improve the wording, or if you don't think this is the right balance to strike.

@rfcbot poll

@nikomatsakis suggested something like this:

Everything is public but we encourage observers to be careful when summarizing or describing the comments of meetings. People in meetings are speaking freely and that words taken out of context can lead to misunderstands. Here are some guidelines you may wish to follow:

Chatham house rules: avoid transcribing exactly who said what and instead summarize the major points made.
xxx
yyy

What do folks think about this proposed version?
It seems to get at much the same idea I was going for. I like the idea of breaking the guidelines out into a bulleted list and being a bit more precise about what we mean by things like "discretion."

I checked my box, but I would be in favor of extending to at least the proposal from Niko. Ideally I think we should talk about finding a way to get official minutes turned around in ~days which would sort of address this better IMO.

I integrated some of Niko's suggestions. We have all the checkboxes, but I'll hold off on merging for a little bit in case anyone wants to object to the changes.

I decided to remove the mention of the Chatham House Rule, for a couple reasons:

We all checked our boxes before it was there, so it sounds like not mentioning it was acceptable to everyone.
The wording I used, "might want to consider" is incredibly weak. Does this mean they should use that rule? Can they say they considered it and decided not to?
I don't think I'm ready to go as far as requiring people follow the Chatham House Rule. I'm fine with norms that encourage it, but I don't want to codify it in policy at this point.

@rust-lang/leadership-council - Would someone mind giving this a review? I think it's otherwise ready to merge.


Cleanup block definitions

The reviewer can review by commit.
Changes:
1 > Remove unused BlockTemplate.CoinbaseCommitment
2 > Remove unused BlockTemplate.TxSigOpsCost
3 > Remove unused BlockTemplate.VTxFees
4 > Move CompareModifiedEntry  to own file
5 > Move CompareTxIterByAncestorCount  to own file
6 > Move TxMemPoolModifiedEntry to own file
7 > Remove abstract BlockDefinition.OnTestBlockValidity() as its only used in PowBlockDefinition
8> Rename abstract OnUpdateHeaders to UpdateHeaders

All unit tests pass and integration tests.

I can confirm that testnet has synced and staking still works as per normal.

Tomorrow I will do this first thing

I know sigop is not used but I would suggest to keep it there and create an issue to activate it.
We wont min on bitcoin and stratis does not have full blocks (yet) also due to shorter block time.


feat: add config for btp deployment with managed approuter

Added config files to build and deploy to BTP to use the spreadsheet importer as a standalone library which can be reused by other apps.

I was able to deploy it, but currently have problems with HANA Instance, so currently can´t test it further


32-bits support

My customer is implementing NPM, and some routers were not working. Looking at the "mibs" and the code, only the 64-bit counters are expected, e.g., ifHCInOctets. However, the router they are monitoring has only 32-bit counters, e.g., ifInOctets.
An essential piece of information is that all the other monitoring competitors they tested (check-mk, observium, prometheus, telegraf), already have 64 and 32-bit counters by default.
So having these accountants is extremely important for both this customer and others.

Could this be done via a new profile in https://github.com/kentik/snmp-profiles?
By default these OIDs are used: https://github.com/kentik/snmp-profiles/blob/main/profiles/kentik_snmp/_general/if-mib.yml
But other ones can be specified for a given device. If you can, I would recommend you submit a profile for the target device here as a PR to this repo. Thanks!

addressing in kentik/snmp-profiles#224


use Puppet Ruby for fact, use stash port from main class, remove ruby extension packages

This module supports Puppet 5.5.8+, which indicates, it can use the bundled Ruby
The bundled Ruby also provides JSON support
reference to system Ruby removed
install of JSON extension removed
the port used by Stash/Bitbucket is already set in the main class and can be used from there

@igalic I will rework this one

@igalic if you are fine with the PR, this can be merged


Maintenance of DL_for_neuroimaging module

Module to maintain
Website: https://school-brainhack.github.io/modules/dl_for_neuroimaging/
Code: https://github.com/school-brainhack/school-brainhack.github.io/tree/main/content/en/modules/DL_for_neuroimaging
Work to be done
Please ensure:

[ ] links, resources and exercises reflect the state-of-the-art
[ ] videos are of good quality and reflect the materials.

If any update / re-write of the module is needed, feel free to suggest alternative material in a comment!
If you think major changes are needed, we suggest you open an issue for new modules.

Hi! I can review this module!

Hi! I can review this module!

Great, thank you! I have assigned you.

Hi @Andjelaaaa, how are you getting on with maintenance of this module? Do you need any help? Just a reminder that we are hoping to have these done by April 21st

Hi @clarkenj it will be done tomorrow with my feedback on the module!

I've made a pull request for this module with minor corrections. Otherwise all links are functional!

@all-contributors please add @clarkenj for bug. please add @clarkenj for content. please add @clarkenj for doc. please add @clarkenj for eventOrganizing. please add @clarkenj for maintenance. please add @clarkenj for mentoring. please add @clarkenj for review. please add @clarkenj for ideas.

@all-contributors please add @clarkenj for bug, content, doc, eventOrganizing, maintenance, mentoring, review, ideas.


Port MultiscaleSpatialImage tests from itk-vtk-viewer

Operate in a "data" web worker?

Or, client-side implementation of buildImage delegates to a DataManager web worker?


Where and how do i specify the JAR file local path?

I did not try to run it but from reading the server.groovy source code, it seems that the configuration JSON file supports a "driver" parameter which can be used to specify the Java class.  I assume you need to add your JAR file path to CLASSPATH environment variable. However, it shouldn't be very hard patch the code to accept a JAR file path directly from the configuration JSON.


Np 9150 sort persons based on identifier

Since we are sorting only a subset of results and not the full resultset from upstream we will do it another way. Will maybe close this PR


Add parameter for key server

Currently the keyserver is hardcoded to keyserver.ubuntu.com, i want to make this so it is a parameter to globals that can be passed so it can be overriden either by hiera or by being passed when the class it called.

Looks like we still don't have a parameter for this but I'm going to close this because of its age.


ChatCohere with Agentic RAG and Langgraph

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
def agent(state):
    """
    Invokes the agent model to generate a response based on the current state. Given
    the question, it will decide to retrieve using the retriever tool, or simply end.

    Args:
        state (messages): The current state

    Returns:
        dict: The updated state with the agent response appended to messages
    """
    print("---CALL AGENT---")
    messages = state["messages"]
    model = AzureChatOpenAI(model="gpt-4o", temperature=0, streaming=True)
    # model = ChatCohere(model="command-r-plus-08-2024", temperature=0, streaming=True)
    model = model.bind_tools(tools)
    response = model.invoke(messages)
    # We return a list, because this will get added to the existing list
    return {"messages": [response]}

Error Message and Stack Trace (if applicable)
The last message is not an ToolMessage or HumanMessage
Description
I am building an Agentic RAG system with ChatCohere but when the agent tries to Transform a query, it keeps failing with the below error:
The last message is not an ToolMessage or HumanMessage
Looking at the class ChatCohere, it seems like it might be a design choice:
check if the last message is a tool message or human message
if not (
    isinstance(messages[-1], ToolMessage) or isinstance(messages[-1], HumanMessage)
):
    raise ValueError("The last message is not an ToolMessage or HumanMessage")

Does anyone know why is this the case? In terms of Agentic AI, the agent should have the ability to rewrite the question to generate a more optimal output but this code base does not allow rewrites.
Note that it works perfectly fine with AzureChatOpenAI
System Info
System Info
python-dotenv
pandas
langchain
langchainhub
langchain-cohere
azure-search-documents==11.6.0b7
azure-identity
langgraph
langchain_openai
cohere

I have created the following PR which will migrate ChatCohere to V2 and will take care of it.


feat(Message): implement new types

Summary
implements https://github.com/discord/discord-api-docs/pull/6558
I wasn't able to get a message with type 39

Checklist

[x] If code changes were made, then they have been tested

[x] I have updated the documentation to reflect the changes
[x] I have formatted the code properly by running pdm lint
[x] I have type-checked the code by running pdm pyright

[ ] This PR fixes an issue
[x] This PR adds something new (e.g. new method or parameters)
[ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[ ] This PR is not a code change (e.g. documentation, README, ...)

I wasn't able to get a message with type 39

Should be f"{self.author.name} resolved an Activity Alert.", if you want to add that as well:


AssertionError when importing pip before setuptools

    The following triggers the same error:

$ docker run -it python:3.9 bash
root@ccdb7166de24:/# pip install setuptools==65.4.1 pip==22.2.2
...
Successfully installed pip-22.2.2 setuptools-65.4.1

root@ccdb7166de24:/# python -c "import pip; import setuptools"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 8, in <module>
    import _distutils_hack.override  # noqa: F401
  File "/usr/local/lib/python3.9/site-packages/_distutils_hack/override.py", line 1, in <module>
    __import__('_distutils_hack').do_override()
  File "/usr/local/lib/python3.9/site-packages/_distutils_hack/__init__.py", line 77, in do_override
    ensure_local_distutils()
  File "/usr/local/lib/python3.9/site-packages/_distutils_hack/__init__.py", line 64, in ensure_local_distutils
    assert '_distutils' in core.__file__, core.__file__
AssertionError: /usr/local/lib/python3.9/distutils/core.py

Though perhaps not quite the reproducing case you are looking for, as it doesn't include get-pip?
Dockerfile form:
FROM python:3.9
RUN pip install setuptools==65.4.1 pip==22.2.2
RUN python -c "import pip; import setuptools"

Incidentally, a workaround is to import setuptools first, and filter warnings if you then want to import pip. This looks like:
python -c "import setuptools; import warnings; warnings.filterwarnings('ignore', 'Setuptools is replacing distutils'); import pip; import setuptools"

(I care about the latter setuptools because it is something that I don't have full control of in my real-world case)
Originally posted by @pelson in https://github.com/pypa/setuptools/issues/3439#issuecomment-1266923445

[importing pip then setuptools] triggers the same error.

Yes. It seems that's the case, and I'm tempted to say that usage is unsupported. pip is meant to be used as a command-line tool, so if it's imported that should generally only happen in an isolated interpreter, and furthermore pip should never import setuptools.
The distutils shim intentionally disables the distutils override when it detects that it's being imported by pip. That function references pypa/pip#8761 as the rationale. Thereafter, when setuptools is imported, it checks to ensure that the override was applied, but since it was disabled by the presence of an import pip, it fails the check. This behavior is by design to prevent edge use cases like these.
I also don't think it's wise to use the workaround either. By importing setuptools then pip, you're causing setuptools to get distutils from its own local copy, but pip and subsequent importers (including possibly late importers in setuptools) to get it from stdlib. This situation isn't great.
Is there a good reason to "import pip" against the guidance of that project?

Is there a good reason to "import pip" against the guidance of that project?

Yes, but not a supported reason. In my case, I need to patch pip. I do so at runtime during Python startup, rather than actually forking the codebase.
Until this issue occurred, I did this patching unconditionally (making sure to keep the patching quick to avoid any significant startup overhead). I have just updated this to only patch pip when it is first imported (by attaching a lazy module in sys.modules) - the resulting code is certainly more complex, but has the advantage of only affecting and importing pip if it is actually used (i.e. by pip), thus making the patching compatible with a process that imports setuptools.
It is unusual that one can't import two packages in the same process though. Thank you for providing the links on the history of the underlying reasons - I have one question that wasn't clear from what I read though (please feel free to link to a discussion elsewhere):
Why is it that setuptools knows that it needs to have a patched version of distutils, and yet cannot use a (setuptools) namespaced version of distutils? Is there fundamentally some design limitation of distutils that forced this upon you? This issue is fundamentally caused by setuptools calling its patched version distutils from what I can see, so would be interesting to know if that could be avoided.
In terms of this issue, I am happy in principle to resolve this as a wont-fix - import pip is clearly documented as not supported, and therefore no need for import pip, setuptools to be supported.